summaryrefslogtreecommitdiffstats
path: root/binutils-2.17/binutils
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.17/binutils')
-rw-r--r--binutils-2.17/binutils/BRANCHES34
-rw-r--r--binutils-2.17/binutils/ChangeLog266
-rw-r--r--binutils-2.17/binutils/ChangeLog-00012060
-rw-r--r--binutils-2.17/binutils/ChangeLog-02032181
-rw-r--r--binutils-2.17/binutils/ChangeLog-2004793
-rw-r--r--binutils-2.17/binutils/ChangeLog-20051350
-rw-r--r--binutils-2.17/binutils/ChangeLog-91975217
-rw-r--r--binutils-2.17/binutils/ChangeLog-98991908
-rw-r--r--binutils-2.17/binutils/MAINTAINERS251
-rw-r--r--binutils-2.17/binutils/Makefile.am611
-rw-r--r--binutils-2.17/binutils/Makefile.in1367
-rw-r--r--binutils-2.17/binutils/NEWS334
-rw-r--r--binutils-2.17/binutils/README273
-rw-r--r--binutils-2.17/binutils/acinclude.m41
-rw-r--r--binutils-2.17/binutils/aclocal.m4913
-rw-r--r--binutils-2.17/binutils/addr2line.c407
-rw-r--r--binutils-2.17/binutils/ar.c1263
-rw-r--r--binutils-2.17/binutils/arlex.c1856
-rw-r--r--binutils-2.17/binutils/arlex.l90
-rw-r--r--binutils-2.17/binutils/arparse.c1605
-rw-r--r--binutils-2.17/binutils/arparse.h92
-rw-r--r--binutils-2.17/binutils/arparse.y203
-rw-r--r--binutils-2.17/binutils/arsup.c478
-rw-r--r--binutils-2.17/binutils/arsup.h62
-rw-r--r--binutils-2.17/binutils/binemul.c105
-rw-r--r--binutils-2.17/binutils/binemul.h61
-rw-r--r--binutils-2.17/binutils/bucomm.c513
-rw-r--r--binutils-2.17/binutils/bucomm.h226
-rw-r--r--binutils-2.17/binutils/budbg.h58
-rw-r--r--binutils-2.17/binutils/budemang.c100
-rw-r--r--binutils-2.17/binutils/budemang.h25
-rw-r--r--binutils-2.17/binutils/coffdump.c553
-rw-r--r--binutils-2.17/binutils/coffgrok.c741
-rw-r--r--binutils-2.17/binutils/coffgrok.h225
-rw-r--r--binutils-2.17/binutils/config.in267
-rwxr-xr-xbinutils-2.17/binutils/configure12295
-rw-r--r--binutils-2.17/binutils/configure.com76
-rw-r--r--binutils-2.17/binutils/configure.in359
-rw-r--r--binutils-2.17/binutils/configure.tgt26
-rw-r--r--binutils-2.17/binutils/cxxfilt.c287
-rw-r--r--binutils-2.17/binutils/debug.c3373
-rw-r--r--binutils-2.17/binutils/debug.h792
-rw-r--r--binutils-2.17/binutils/deflex.c1881
-rw-r--r--binutils-2.17/binutils/deflex.l96
-rw-r--r--binutils-2.17/binutils/defparse.c1777
-rw-r--r--binutils-2.17/binutils/defparse.h111
-rw-r--r--binutils-2.17/binutils/defparse.y181
-rw-r--r--binutils-2.17/binutils/dep-in.sed21
-rw-r--r--binutils-2.17/binutils/dlltool.c3575
-rw-r--r--binutils-2.17/binutils/dlltool.h42
-rw-r--r--binutils-2.17/binutils/dllwrap.c1207
-rw-r--r--binutils-2.17/binutils/doc/Makefile.am186
-rw-r--r--binutils-2.17/binutils/doc/Makefile.in716
-rw-r--r--binutils-2.17/binutils/doc/addr2line.1265
-rw-r--r--binutils-2.17/binutils/doc/ar.1390
-rw-r--r--binutils-2.17/binutils/doc/binutils.info3835
-rw-r--r--binutils-2.17/binutils/doc/binutils.texi3907
-rw-r--r--binutils-2.17/binutils/doc/config.texi2
-rw-r--r--binutils-2.17/binutils/doc/cxxfilt.man345
-rw-r--r--binutils-2.17/binutils/doc/dlltool.1478
-rw-r--r--binutils-2.17/binutils/doc/fdl.texi368
-rw-r--r--binutils-2.17/binutils/doc/nlmconv.1243
-rw-r--r--binutils-2.17/binutils/doc/nm.1449
-rw-r--r--binutils-2.17/binutils/doc/objcopy.1795
-rw-r--r--binutils-2.17/binutils/doc/objdump.1634
-rw-r--r--binutils-2.17/binutils/doc/ranlib.1188
-rw-r--r--binutils-2.17/binutils/doc/readelf.1376
-rw-r--r--binutils-2.17/binutils/doc/size.1263
-rw-r--r--binutils-2.17/binutils/doc/strings.1249
-rw-r--r--binutils-2.17/binutils/doc/strip.1383
-rw-r--r--binutils-2.17/binutils/doc/windres.1343
-rw-r--r--binutils-2.17/binutils/dwarf.c3732
-rw-r--r--binutils-2.17/binutils/dwarf.h122
-rw-r--r--binutils-2.17/binutils/emul_aix.c173
-rw-r--r--binutils-2.17/binutils/emul_vanilla.c29
-rw-r--r--binutils-2.17/binutils/filemode.c248
-rw-r--r--binutils-2.17/binutils/ieee.c7399
-rw-r--r--binutils-2.17/binutils/is-ranlib.c3
-rw-r--r--binutils-2.17/binutils/is-strip.c4
-rw-r--r--binutils-2.17/binutils/makefile.vms-in98
-rw-r--r--binutils-2.17/binutils/maybe-ranlib.c4
-rw-r--r--binutils-2.17/binutils/maybe-strip.c4
-rw-r--r--binutils-2.17/binutils/nlmconv.c2140
-rw-r--r--binutils-2.17/binutils/nlmconv.h84
-rw-r--r--binutils-2.17/binutils/nlmheader.c2534
-rw-r--r--binutils-2.17/binutils/nlmheader.h125
-rw-r--r--binutils-2.17/binutils/nlmheader.y960
-rw-r--r--binutils-2.17/binutils/nm.c1639
-rw-r--r--binutils-2.17/binutils/not-ranlib.c3
-rw-r--r--binutils-2.17/binutils/not-strip.c4
-rw-r--r--binutils-2.17/binutils/objcopy.c3301
-rw-r--r--binutils-2.17/binutils/objdump.c3188
-rw-r--r--binutils-2.17/binutils/po/Make-in255
-rw-r--r--binutils-2.17/binutils/po/POTFILES.in61
-rw-r--r--binutils-2.17/binutils/po/binutils.pot5271
-rw-r--r--binutils-2.17/binutils/po/da.gmobin80846 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/po/da.po4800
-rw-r--r--binutils-2.17/binutils/po/es.gmobin137588 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/po/es.po6048
-rw-r--r--binutils-2.17/binutils/po/fi.gmobin127911 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/po/fi.po5770
-rw-r--r--binutils-2.17/binutils/po/fr.gmobin134234 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/po/fr.po5945
-rw-r--r--binutils-2.17/binutils/po/ja.gmobin97376 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/po/ja.po4110
-rw-r--r--binutils-2.17/binutils/po/ro.gmobin20265 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/po/ro.po5090
-rw-r--r--binutils-2.17/binutils/po/ru.gmobin130197 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/po/ru.po5612
-rw-r--r--binutils-2.17/binutils/po/rw.gmobin615 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/po/rw.po4990
-rw-r--r--binutils-2.17/binutils/po/sv.gmobin103077 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/po/sv.po5571
-rw-r--r--binutils-2.17/binutils/po/tr.gmobin129842 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/po/tr.po5790
-rw-r--r--binutils-2.17/binutils/po/vi.gmobin147286 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/po/vi.po5871
-rw-r--r--binutils-2.17/binutils/po/zh_CN.gmobin75903 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/po/zh_CN.po4742
-rw-r--r--binutils-2.17/binutils/po/zh_TW.gmobin121475 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/po/zh_TW.po5497
-rw-r--r--binutils-2.17/binutils/prdbg.c2795
-rwxr-xr-xbinutils-2.17/binutils/ranlib.sh3
-rw-r--r--binutils-2.17/binutils/rclex.c2615
-rw-r--r--binutils-2.17/binutils/rclex.l504
-rw-r--r--binutils-2.17/binutils/rcparse.c4144
-rw-r--r--binutils-2.17/binutils/rcparse.h255
-rw-r--r--binutils-2.17/binutils/rcparse.y1777
-rw-r--r--binutils-2.17/binutils/rdcoff.c874
-rw-r--r--binutils-2.17/binutils/rddbg.c447
-rw-r--r--binutils-2.17/binutils/readelf.c9362
-rw-r--r--binutils-2.17/binutils/rename.c219
-rw-r--r--binutils-2.17/binutils/resbin.c2318
-rw-r--r--binutils-2.17/binutils/rescoff.c766
-rw-r--r--binutils-2.17/binutils/resrc.c2596
-rw-r--r--binutils-2.17/binutils/resres.c663
-rwxr-xr-xbinutils-2.17/binutils/sanity.sh50
-rw-r--r--binutils-2.17/binutils/size.c552
-rw-r--r--binutils-2.17/binutils/srconv.c1881
-rw-r--r--binutils-2.17/binutils/stabs.c5399
-rw-r--r--binutils-2.17/binutils/stamp-h.in1
-rw-r--r--binutils-2.17/binutils/strings.c727
-rw-r--r--binutils-2.17/binutils/sysdump.c714
-rw-r--r--binutils-2.17/binutils/sysinfo.c1804
-rw-r--r--binutils-2.17/binutils/sysinfo.h67
-rw-r--r--binutils-2.17/binutils/sysinfo.y434
-rw-r--r--binutils-2.17/binutils/syslex.c1729
-rw-r--r--binutils-2.17/binutils/syslex.l79
-rw-r--r--binutils-2.17/binutils/sysroff.info504
-rw-r--r--binutils-2.17/binutils/testsuite/ChangeLog158
-rw-r--r--binutils-2.17/binutils/testsuite/ChangeLog-93031044
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/alias.def2
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/ar.exp256
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/bintest.s12
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/dlltool.exp80
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/fastcall.def2
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/group.s8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/hppa/addendbug.s23
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/hppa/freg.s23
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/hppa/objdump.exp96
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/link-order.s13
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/m68k/movem.s2
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/m68k/objdump.exp53
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/nm.exp123
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/objcopy.exp720
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/objdump.exp164
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/readelf.exp343
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/readelf.h20
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/readelf.r4
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/readelf.r-644
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/readelf.s24
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/readelf.s-6425
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/readelf.ss18
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/readelf.ss-6413
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/readelf.ss-mips15
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/readelf.ss-tmips15
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/size.exp81
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/testprog.c31
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/unknown.s4
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/vax/entrymask.s11
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/vax/objdump.exp64
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/README26
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/bmp1.bmpbin122 -> 0 bytes
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/bmpalign.rc9
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/bmpalign.rsd38
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/capstyle.rc5
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/capstyle.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/checkbox.rc5
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/checkbox.rsd12
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/combobox.rc8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/combobox.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/deflang.rc4
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/deflang.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/dialog0.rc4
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/dialog0.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/dialog1.rc5
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/dialog1.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/dialogid.rc9
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/dialogid.rsd18
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/dialogsignature.rc5
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/dialogsignature.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/dlgfont.rc29
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/dlgfont.rsd39
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/edittext.rc4
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/edittext.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/escapea.rc7
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/escapea.rsd7
-rwxr-xr-xbinutils-2.17/binutils/testsuite/binutils-all/windres/escapex-2.rc5
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/escapex-2.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/escapex.rc4
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/escapex.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/lang.rc15
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/lang.rsd10
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/listbox.rc4
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/listbox.rsd8
-rwxr-xr-xbinutils-2.17/binutils/testsuite/binutils-all/windres/msupdate40
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/nocaption.rc4
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/nocaption.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/printstyle.rc6
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/printstyle.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/quoteclass.rc8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/scrollbar.rc4
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/scrollbar.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/strtab1.rc8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/strtab1.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/sublang.rc5
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/sublang.rsd8
-rw-r--r--binutils-2.17/binutils/testsuite/binutils-all/windres/windres.exp149
-rw-r--r--binutils-2.17/binutils/testsuite/config/default.exp115
-rw-r--r--binutils-2.17/binutils/testsuite/config/hppa.sed4
-rw-r--r--binutils-2.17/binutils/testsuite/lib/utils-lib.exp169
-rw-r--r--binutils-2.17/binutils/unwind-ia64.c1082
-rw-r--r--binutils-2.17/binutils/unwind-ia64.h31
-rw-r--r--binutils-2.17/binutils/version.c40
-rw-r--r--binutils-2.17/binutils/windres.c1010
-rw-r--r--binutils-2.17/binutils/windres.h854
-rw-r--r--binutils-2.17/binutils/winduni.c147
-rw-r--r--binutils-2.17/binutils/winduni.h60
-rw-r--r--binutils-2.17/binutils/wrstabs.c2274
239 files changed, 0 insertions, 221352 deletions
diff --git a/binutils-2.17/binutils/BRANCHES b/binutils-2.17/binutils/BRANCHES
deleted file mode 100644
index b770ef4e..00000000
--- a/binutils-2.17/binutils/BRANCHES
+++ /dev/null
@@ -1,34 +0,0 @@
-Please keep the following tables alphabetical.
-
-Organization Tag Organization Name
----------------- -----------------
-csl CodeSourcery, LLC
-
-This table lists branches created by particular organizations. Please
-include the branch name, and a description of the branch. The branch
-description should name the owner of the branch (i.e., the person to
-contact regarding the branch) and a description of the commit policy
-for the branch (e.g., "no commits without permission of X or Y").
-
-Organization Branches Description
---------------------- -----------
-binutils-csl-arm-2005q1-branch
- CodeSourcery toolchain release branches.
- Please do not commit to these branches without
- permission from a CodeSourcery developer.
-
-binutils-csl-gxxpro-3_4-branch
-binutils-csl-2_17-branch
- CodeSourcery branded GNU Toolchain release branches.
- Please do not commit to this branch without
- permission from a CodeSourcery developer.
-
-Release Branches
-----------------
-binutils-2_10-branch
-binutils-2_11-branch
-binutils-2_12-branch
-binutils-2_13-branch
-binutils-2_14-branch
-binutils-2_15-branch
-binutils-2_16-branch
diff --git a/binutils-2.17/binutils/ChangeLog b/binutils-2.17/binutils/ChangeLog
deleted file mode 100644
index a89bde52..00000000
--- a/binutils-2.17/binutils/ChangeLog
+++ /dev/null
@@ -1,266 +0,0 @@
-2006-06-07 Joseph S. Myers <joseph@codesourcery.com>
-
- * po/Make-in (pdf, ps): New dummy targets.
-
-2006-06-02 Joseph S. Myers <joseph@codesourcery.com>
-
- * doc/Makefile.am (TEXI2DVI): Define.
- * doc/Makefile.in: Regenerate.
-
-2006-06-01 Daniel Jacobowitz <dan@codesourcery.com>
-
- Backport:
- 2006-05-19 Andreas Schwab <schwab@suse.de>
- * doc/Makefile.am (addr2line.1): Depend on $(binutils_TEXINFOS).
- (ar.1): Likewise.
- (dlltool.1): Likewise.
- (nlmconv.1): Likewise.
- (nm.1): Likewise.
- (objcopy.1): Likewise.
- (objdump.1): Likewise.
- (ranlib.1): Likewise.
- (readelf.1): Likewise.
- (size.1): Likewise.
- (strings.1): Likewise.
- (strip.1): Likewise.
- (windres.1): Likewise.
- (cxxfilt.man): Likewise.
- * doc/Makefile.in: Regenerated.
-
-2006-05-30 Nick Clifton <nickc@redhat.com>
-
- * po/es.po: Updated Spanish translation.
-
-2006-05-24 Nick Clifton <nickc@redhat.com>
-
- * po/fr.po: Updated French translation.
-
-2006-05-23 Nick Clifton <nickc@redhat.com>
-
- * po/vi.po: Updated Vietnamese translation.
-
-2006-05-22 Daniel Jacobowitz <dan@codesourcery.com>
-
- * po/ru.po: Updated translation.
-
-2006-05-02 Daniel Jacobowitz <dan@codesourcery.com>
-
- * doc/Makefile.am (AM_MAKEINFOFLAGS): New.
- (TEXI2POD): Use AM_MAKEINFOFLAGS.
- (config.texi): Don't set top_srcdir.
- * doc/binutils.texi: Don't use top_srcdir.
- * aclocal.m4, Makefile.in, doc/Makefile.in: Regenerated.
-
-2006-04-12 Nick Clifton <nickc@redhat.com>
-
- * objdump.c (objdump_symbol_at_address): Fix typo in comment.
-
-2006-04-10 Ben Elliston <bje@gnu.org>
-
- * MAINTAINERS (CGEN Maintainers): Remove myself.
-
-2006-04-06 Carlos O'Donell <carlos@codesourcery.com>
-
- * po/Make-in: Add install-html target.
- * Makefile.am: Add install-html and install-html-recursive targets.
- * Makefile.in: Regenerate.
- * configure.in: AC_SUBST datarootdir, docdir and htmldir.
- * configure: Regenerate.
- * doc/Makefile.am: Add install-html and install-html-am targets.
- * doc/Makefile.in: Regenerate.
-
-2006-04-05 Eric Botcazou <ebotcazou@adacore.com>
-
- * addr2line.c (long_options): Add new option 'section'.
- (usage): Document new -j/--section option.
- (find_offset_in_section): New function.
- (translate_addresses): Add 'section' parameter.
- If it is non-null, call find_offset_in_section on it.
- (process_file): Add 'section_name' parameter.
- If it is non-null, look for the section in the BFD object.
- Pass the section to translate_addresses.
- (main): Handle new -j option.
- Pass the section name to process_file.
- * doc/binutils.texi (addr2line): Document new -j/--section option.
-
-2006-03-29 Ben Elliston <bje@au.ibm.com>
-
- * resbin.c: Avoid duplicating constants in calls to reswr_alloc.
-
-2006-03-20 Nathan Sidwell <nathan@codesourcery.com>
-
- * BRANCHES: Remove binutils-csl-arm-2006q1-branch. Document
- binutils-csl-2_17-branch instead.
-
-2006-03-20 Paul Brook <paul@codesourcery.com>
-
- * BRANCHES: Mention binutils-csl-arm-2006q1-branch.
-
-2006-03-16 Alan Modra <amodra@bigpond.net.au>
-
- PR 2434
- * ieee.c (write_ieee_debugging_info): Adjust bfd_hash_table_init calls.
- * wrstabs.c (write_stabs_in_sections_debugging_info): Likewise.
-
-2006-03-13 Ben Elliston <bje@au.ibm.com>
-
- * bucomm.c (display_target_list): Make local variable `a' to be of
- type enum bfd_architecture. Thus no need to cast enums to int.
- (display_info_table): Likewise.
-
-2006-03-10 Paul Brook <paul@codesourcery.com>
-
- * readelf.c (decode_ARM_machine_flags): Handle EABIv5.
-
-2006-03-10 Alan Modra <amodra@bigpond.net.au>
-
- * dwarf.c (process_extended_line_op): Remove pointer_size param.
- Use length instead to determine address size.
- (get_pointer_size_and_offset_of_comp_unit): Delete.
- (display_debug_lines): Adjust for above.
- (display_debug_aranges): Don't stop on finding two zeros.
- (display_debug_frames): For warning, print offset not pointer.
-
-2006-03-09 Danny Smith <dannysmith@users.sourceforge.net>
-
- * dlltool.c: Update copyright year.
- * doc/binutils.texi: Likewise.
-
-2006-03-09 Danny Smith <dannysmith@users.sourceforge.net>
-
- * dlltool.c (add_stdcall_underscore): New flag.
- (xlate): Also add underscore to stdcall symbol if
- add_stdcall_underscore set.
- (usage): Document --add-stdcall-underscore option.
- (OPTION_ADD_STDCALL_UNDERSCORE): New define.
- (long_options): Use it for --add-stdcall-underscore option.
- (main): Handle it.
- * doc/binutils.texi: Document --add-stdcall-underscore option
- and differentiate from --add-underscore.
-
-2006-03-06 Nathan Sidwell <nathan@codesourcery.com>
-
- * readelf.c (get_machine_flags): Adjust.
-
-2006-03-03 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf.c (frame_display_row, display_debug_frames): Handle
- DW_CFA_val_offset, DW_CFA_val_offset_sf and DW_CFA_val_expression.
-
-2006-02-28 Nick Clifton <nickc@redhat.com>
-
- * objcopy.c (use_alt_mach_code): Change type to unsigned long.
- (copy_object): If bfd_alt_mach_code fails emit a more helpful
- message and if the target architecture is ELF use the alternative
- as replacement value for the e_machine number.
- (copy_main): Use strtoul to parse the number provided with the
- --alt-mach-code switch.
- * doc/binutils.texi (--alt-mach-code): Document that this switch
- can now set the absolute e_machine value.
-
-2006-02-27 Carlos O'Donell <carlos@codesourcery.com>
-
- * po/Make-in: Add html target.
-
-2006-02-17 Nick Hudson <nick.hudson@dsl.pipex.com>
-
- * readelf.c (get_machine_flags): Add logic for missing EF_SH flags.
-
-2006-02-14 Jakub Jelinek <jakub@redhat.com>
-
- * config.in: Rebuilt.
-
-2006-02-10 H.J. Lu <hongjiu.lu@intel.com>
-
- PR binutils/2258
- * readelf.c (process_program_headers): Use
- ELF_IS_SECTION_IN_SEGMENT_MEMORY.
-
-2006-02-09 Eric Botcazou <ebotcazou@libertysurf.fr>
-
- * configure.in (CHECK_DECLS): Add snprintf and vsnprintf.
- * configure: Regenerate.
- * objdump.c (fprintf): Remove declaration.
- * bucomm.h (fprintf): Declare if not already declared.
- (snprintf): Likewise.
- (vsnprintf): Likewise.
-
-2006-02-08 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (process_program_headers): Match PT_TLS segment
- only with SHT_TLS sections.
-
-2006-02-07 Nathan Sidwell <nathan@codesourcery.com>
-
- * readelf.c (get_machine_flags): Add logic for EF_M68K flags.
-
-2006-02-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (process_program_headers): Undo the last change.
-
-2006-02-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (process_program_headers): Undo the change made on
- 2004-09-22. Match PT_DYNAMIC segment only with SHT_DYNAMIC
- sections.
-
-2006-01-30 Nick Clifton <nickc@redhat.com>
-
- * objcopy.c (copy_object): Catch the case where an attempt is made
- to add a section that already exists and produce a more helpful
- warning message.
-
-2006-01-26 Nick Clifton <nickc@redhat.com>
-
- * po/vi.po: New Vietnamese translation.
- * configure.in (ALL_LINGUAS): Add vi.
- * configure: Regenerate.
-
-2006-01-18 Alexandre Oliva <aoliva@redhat.com>
-
- Introduce TLS descriptors for i386 and x86_64.
- * readelf.c (get_dynamic_type): Handle DT_TLSDESC_GOT and
- DT_TLSDESC_PLT.
-
-2006-01-18 Nick Clifton <nickc@redhat.com>
-
- PR binutils/1391
- * objcopy.c (copy_object): For PE format targets set the VMA of a
- newly created gnu_debuglink section to a non-zero, aligned,
- contiguous value.
- * Makefile.am (objcopy.c): Add a dependency upon libbfd.h.
- * Makefile.in: Regenerate.
-
-2006-01-17 Andreas Schwab <schwab@suse.de>
-
- PR binutils/1486
- * configure.in: Don't define DISASSEMBLER_NEEDS_RELOCS.
- * configure: Regenerate.
- * objdump.c (struct objdump_disasm_info): Don't check for
- DISASSEMBLER_NEEDS_RELOCS.
- (objdump_print_addr): Likewise.
- (disassemble_bytes): Check disassembler_needs_relocs from
- disassemble_info at run-time instead of DISASSEMBLER_NEEDS_RELOCS
- at compile-time.
- (disassemble_section): Likewise.
- (disassemble_data): Initialize it.
-
-2006-01-11 Alan Modra <amodra@bigpond.net.au>
-
- * objcopy.c (copy_object): Fix thinko.
-
- * objcopy.c (copy_object): Set isympp and osympp to NULL after free.
-
-2006-01-09 Mike Frysinger <vapier@gentoo.org>:
-
- * readelf.c (guess_is_rela): Add case for Nios/Nios II.
- (get_machine_name): Likewise.
-
-For older changes see ChangeLog-2005
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/binutils-2.17/binutils/ChangeLog-0001 b/binutils-2.17/binutils/ChangeLog-0001
deleted file mode 100644
index 9d148943..00000000
--- a/binutils-2.17/binutils/ChangeLog-0001
+++ /dev/null
@@ -1,2060 +0,0 @@
-2001-12-20 Julian v. Bock <julian@wongr.net>
-
- * readelf.c (print_symbol): New function: Print a formatted symbol
- name. If --wide is specified do not truncate it.
- (dump_relocations): Use print_symbol() to print symbol names.
- (process_symbol_table): Likewise.
- (process_syminfo): Likewise.
- (process_mips_specific): Likewise.
- (usage): Document new feature of --wide switch.
- * doc/binutils.texi (objdump): Document additional behaviour of
- --wide.
-
-2001-12-18 Michael Snyder <msnyder@redhat.com>
-
- * objcopy.c (copy_file): Accept corefiles (format bfd_core).
- (copy_object): Don't set the start address or flags of a core file.
- (copy_section): Don't relocate a core file. Don't copy contents
- if the input section has the contents flag set, but the output
- section does not (which happens with the fake 'note' pseudo-
- sections that BFD creates for corefiles).
-
-2001-12-18 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * readelf.c (get_machine_flags): Recognize header flags for ABI and
- ASE extensions. More robust code for ISA checking. Ignore empty fields
- in header flags for GNU extensions.
-
-2001-12-18 Alan Modra <amodra@bigpond.net.au>
-
- * objcopy.c (copy_archive): Set output bfd format outside the loop.
-
-2001-12-18 Nick Clifton <nickc@cambridge.redhat.com>
-
- * po/ja.po: Import from translation project.
- * configure.in (ALL_LINGUAS): Add ja.
- * configure: Regenerate.
-
-2001-12-18 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * addr2line.c (main): Protoype.
- * ar.c (main): Protoype.
- * nm.c (main): Protoype.
- * objcopy.c (main): Protoype.
- * objdump.c (main): Protoype.
- * size.c (main): Protoype.
- * strings.c (main): Protoype.
-
-2001-12-17 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (symtab_shndx_hdr): New global.
- (SECTION_HEADER_INDEX): Define.
- (SECTION_HEADER_NUM): Define.
- (SECTION_HEADER): Define.
- (GET_ELF_SYMBOLS): Pass two params rather than three.
- (get_32bit_elf_symbols): Take file and section args. Read and
- use SHT_SYMTAB_SHNDX.
- (get_64bit_elf_symbols): Likewise.
- (dump_relocations): Use SECTION_HEADER to index "section_headers".
- (process_section_headers): Likewise. Use SECTION_HEADER_NUM too.
- Remember symtab_shdx_hdr.
- (process_program_headers): Scan from index 1 for segment map.
- (slurp_ia64_unwind_table): Use SECTION_HEADER to index
- "section_headers".
- (process_relocs): Likewise. Also adjust call to GET_ELF_SYMBOLS.
- (process_unwind): Likewise.
- (process_version_sections): Likewise.
- (process_symbol_table): Likewise.
- (display_debug_info): Likewise.
- (process_dynamic_segment): Fake up a symtab section for changed
- GET_ELF_SYMBOLS.
- (get_symbol_index_type): Check SHN_LOOS before SHN_LORESERVE.
- (process_program_headers): Kill signed/unsigned warning.
- (load_debug_str): Likewise.
- (display_debug_info): Likewise.
-
-2001-12-13 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (get_segment_type): Support PT_GNU_EH_FRAME.
-
-2001-12-11 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (process_file_header): Print extended e_shnum and
- e_shdtrndx values. Set elf_header values for same.
- (get_32bit_section_headers): Add "num" arg to read "num" headers.
- (get_64bit_section_headers): Likewise.
- (process_section_headers): Update calls.
- (get_file_header): Call get_32bit_section_headers or 64bit variant.
-
-2001-12-10 Jakub Jelinek <jakub@redhat.com>
-
- * objcopy.c (setup_section): Copy entsize.
-
-2001-12-07 Geoffrey Keating <geoffk@redhat.com>
-
- * readelf.c (guess_is_rela): Add support for stormy16.
- (dump_relocations): Likewise.
- (get_machine_name): Likewise.
-
-2001-12-05 Nick Clifton <nickc@cambridge.redhat.com>
-
- * dllwrap.c (main) Replace multiple strings describing a
- single error with a single, newline escaped sentence to permit
- better translation into foreign languages.
-
- * readelf.c (get_elf_class): Remove internalionalisation of ELF
- class names.
-
-2001-12-04 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * strings.c (get_char): Initialize value.
-
-2001-12-04 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * arlex.l: Silence compile warnings.
- * arsup.h: Likewise. Fix formatting.
-
-2001-12-04 Jakub Jelinek <jakub@redhat.com>
-
- * strings.c: Include config.h before bfd.h.
- (file_off): New type.
- (file_open): Define.
- (print_strings): Use file_off instead of file_ptr. Print addresses
- which don't fit into long correctly.
- (get_char): Use file_off instead of file_ptr. Use getc_unlocked if
- available.
- (strings_file): Use file_off instead of file_ptr. Use file_open.
- * configure.in: Check for getc_unlocked.
- Check for fopen64 and whether _LARGEFILE64_SOURCE needs to
- be defined for it.
- * configure: Rebuilt.
- * config.h.in: Rebuilt.
-
-2001-11-29 H.J. Lu <hjl@gnu.org>
-
- * bucomm.c (make_tempname): Revert the changes made on
- 2001-11-14 and 2001-11-12. They won't work with directories.
-
-2001-11-23 John David Anglin <dave@hiauly1.hia.nrc.ca>
-
- * binutils/Makefile.am (check-DEJAGNU): Pass CC_FOR_TARGET and
- CFLAGS_FOR_TARGET to runtest in environment.
- * Makefile.in: Rebuild.
- * doc/Makefile.in: Rebuild.
-
-2001-11-28 Mike Stump <mrs@wrs.com>
-
- * objcopy.c (setup_section): Preserve SEC_RELOC when
- --set-section-flags is used.
-
-2001-11-19 Nick Clifton <nickc@cambridge.redhat.com>
-
- * readelf.c (do_debug_str): New variable.
- (display_debug_str): New function: Display the contents of a
- .debug_str section.
- (load_debug_str): New function: Load in the contents of a
- .debug_str section.
- (free_debug_str): New function: Free the memory used by
- load_debug_str().
- (fetch_indirect_string): Retrieve a string from the .debug_str
- section.
- (usage): Add -ws.
- (parse_args): Accept -ws.
- (process_section_headers): Allow the display of the .debug_str
- section.
- (read_and_display_attr_value): Use fetch_indirect_string. Show
- offset into .debug_str section.
- (display_debug_info): Use load_debug_str and free_debug_str.
- (debug_displays): Add .debug_str.
- * doc/binutils.texi: Document -ws.
-
-2001-11-19 Andreas Jaeger <aj@suse.de>
-
- * testsuite/binutils-all/objdump.exp: Add x86-64.
-
-2001-11-15 Andreas Schwab <schwab@suse.de>
-
- * readelf.c: Fix warnings without terminating newline.
-
-2001-11-15 Alan Modra <amodra@bigpond.net.au>
-
- * doc/binutils.texi (objdump): Document ppc -M options.
-
-2001-11-14 Andreas Jaeger <aj@suse.de>
-
- * doc/binutils.texi (objdump): Fix description to use x86-64.
-
-2001-11-14 Nick Clifton <nickc@cambridge.redhat.com>
-
- * bucomm.c (make_tempname): Use mkstemps instead of mkstemp, since
- not all systems provide mkstemp.
-
-2001-11-14 Alan Modra <amodra@bigpond.net.au>
-
- * doc/binutils.texi (objdump): Document x86 -M options.
-
-2001-11-13 Keith Walker <keith.walker@arm.com>
-
- * readelf.c (read_and_display_attr_value): New function to
- handle DW_FORM_indirect.
- (read_and_display_attr): Use it.
-
-2001-11-13 Geoffrey Keating <geoffk@redhat.com>
-
- * readelf.c (display_debug_lines): Deal with unknown standard
- opcodes. Handle DW_LNS_set_prologue_end, DW_LNS_set_epilogue_begin,
- DW_LNS_set_isa.
-
-2001-11-13 Timothy Wall <twall@alum.mit.edu>
-
- * MAINTAINERS: Add self as tic54x maintainer. This target
- includes the IBM C54XDSP clone.
-
-2001-11-12 * Steven J. Hill <sjhill@realitydiluted.com>
-
- * bucomm.c (make_tempname): Use mkstemp in place of mktemp.
-
-2001-11-09 Jeffrey A Law (law@cygnus.com)
-
- * unwind-ia64.c (unw_print_brmask): Fix ISO C portability glitch.
- (unw_print_grmask, unw_print_frmask, unw_print_abreg): Likewise.
- (unw_print_xyreg, unw_decode_x1, unw_decode_x2): Likewise.
- (unw_decode_x3, unw_decode_r1, unw_decode_r2): Likewise.
- (unw_decode_r3, unw_decode_p1, unw_decode_p2_p5): Likewise.
- (unw_decode_p6, unw_decode_p7_p10, unw_decode_b1): Likewise.
- (unw_decode_b2, unw_decode_b3_b4): Likewise.
-
- * readelf.c (get_elf_class): Fix ISO portability glitch.
- (get_data_encoding, get_osabi_name, request_dump): Likewise.
-
-2001-11-07 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (debug_str, debug_str_size): New.
- (display_debug_abbrev): If no abbrevs were read, skip the CU.
- Call free_abbrevs.
- (read_and_display_addr): Handle DW_FORM_strp.
- (display_debug_info): Read .debug_str section if present,
- so that DW_FORM_strp can be handled.
- Fix test for non-existant .debug_abbrev section.
-
-2001-11-05 Jakub Jelinek <jakub@redhat.com>
-
- * arlex.l: Accept `\' in filenames. Patch by <earl_chew@agilent.com>.
-
- * arsup.c (ar_open): Prepend tmp- to basename, not whole path.
-
-2001-11-05 Martin Schwidefsky <schwidefsky@de.ibm.com>
-
- * MAINTAINERS: Add self as s390/s390x maintainer.
-
-2001-11-02 Tom Rix <trix@bluey.cygnus.com>
-
- * MAINTAINERS: Add self as PPC XCOFF maintainer.
-
-2001-11-02 Nick Clifton <nickc@cambridge.redhat.com>
-
- * configure.in (ALL_LINGUAS): Add "fr" and "tr".
- * configure: Regernate.
- * po/fr.po: New file.
- * po/tr.po: New file.
-
-2001-10-30 Hans-Peter Nilsson <hp@bitrange.com>
-
- * MAINTAINERS: Add self as MMIX port maintainer.
- * readelf.c: Include elf/mmix.h.
- (guess_is_rela): MMIX is RELA.
- (dump_relocations): Handle MMIX relocations.
- * Makefile.am: Regenerate dependencies.
- * Makefile.in: Regenerate.
-
-2001-10-13 Nick Clifton <nickc@cambridge.redhat.com>
-
- * readelf.c (parse_args): Handle multiple options to the -w
- switch.
-
-2001-10-12 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (get_section_type_name): Don't print SHT_ prefix for
- LOPROC, LOOS and LOUSER.
-
-2001-10-11 J"orn Rennecke <amylaar@onetel.net.uk>
-
- * MAINTAINERS: Update my email address.
-
-2001-10-03 Alan Modra <amodra@bigpond.net.au>
-
- * doc/Makefile.in: Regenerate.
- * configure: Regenerate.
-
-2001-10-02 Nick Clifton <nickc@cambridge.redhat.com>
-
- * readelf.c (display_debug_line, display_debug_pubnames,
- display_debug_info, display_debug_frames): Detect and warn
- about 64-bit format entries.
- (display_debug_aranges): Reword 64-bit warning.
- (debug_displays): Add .debug_pubtypes as a known, but not yet
- supported, debug section.
-
-2001-10-02 Alan Modra <amodra@bigpond.net.au>
-
- * coffdump.c (PROGRAM_VERSION): Delete.
- (main <'V'>): Call print_version.
- * srconv.c: Likewise.
- * sysdump.c: Likewise.
- * version.c (program_version): Remove.
- (print_version): Use BFD_VERSION_STRING. Just print the current
- year in copyright message.
- * addr2line.c (program_version): Remove unused declaration.
- * objdump.c (display_target_tables): Use BFD_VERSION_STRING in
- place of BFD_VERSION.
- * Makefile.am (Makefile): Depend on bfd/configure.in.
- (cplus-dem.o): Depend on Makefile.
- Run "make dep-am".
- * Makefile.in: Regenerate.
-
-2001-10-01 Nick Clifton <nickc@cambridge.redhat.com>
-
- * readelf.c (display_debug_aranges): Detect and warn about DWARF64
- format .debug_arange sections.
- (main): Add missing prototype.
-
-2001-09-30 Hans-Peter Nilsson <hp@bitrange.com>
-
- * Makefile.am: Update dependencies with "make dep-am".
- * Makefile.in: Regenerate.
-
-2001-09-28 Richard Henderson <rth@redhat.com>
-
- * objdump.c (dump_section_header): Dump SEC_ARCH_BIT_0.
-
-2001-09-26 Alan Modra <amodra@bigpond.net.au>
-
- * bucomm.c (fatal): Define using VPARAMS, VA_OPEN, VA_FIXEDARG,
- VA_CLOSE.
- (non_fatal): Likewise.
- * objdump.c (objdump_sprintf): Likewise.
- * readelf.c (error): Likewise.
- (warn): Likewise.
-
-2001-09-25 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (do_wide): New.
- (options): Add --wide.
- (usage, parse_args): Likewise.
- (process_program_headers): Put each segment on a single line if
- --wide is given.
- (process_section_headers): Put each section on a single line if
- --wide is given.
- * doc/binutils.texi: Document it.
- * NEWS: Likewise.
-
-2001-09-25 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (print_vma): Print 8 digits of low hex value.
-
-2001-09-24 Andreas Jaeger <aj@suse.de>
-
- * nlmconv.c: Fix warnings about unused attributes and function
- prototypes.
-
- * strings.c: Add prototype for get_char.
-
-2000-09-19 H.J. Lu <hjl@gnu.org>
-
- * doc/Makefile.am ($(DEMANGLER_NAME).1): Try cxxfilt.man and
- $(srcdir)/cxxfilt.man.
- * doc/Makefile.in: Rebuild.
-
-2001-09-19 Alan Modra <amodra@bigpond.net.au>
-
- * objcopy.c (copy_main): Correct rename-section string parsing.
- Consolidate new_name parsing, and error messages.
-
-2001-09-18 Bruno Haible <haible@clisp.cons.org>
-
- * addr2line.c: Don't include <ctype.h>.
- (main): For gettext, also set the LC_CTYPE locate facet.
- * ar.c (main): Likewise.
- * coffdump.c (main): Likewise.
- * dlltool.c: Include "safe-ctype.h" instead of <ctype.h>.
- (main): For gettext, also set the LC_CTYPE locate facet.
- Use ISALNUM instead of isalpha/isdigit.
- * dllwrap.c: Don't include <ctype.h>.
- (main): For gettext, also set the LC_CTYPE locate facet.
- * nlmconv.c: Include "safe-ctype.h" instead of <ctype.h>.
- (main): For gettext, also set the LC_CTYPE locate facet.
- Use TOUPPER instead of islower/toupper.
- * nlmheader.y: Include "safe-ctype.h" instead of <ctype.h>.
- (yylex): Use ISSPACE/ISALNUM instead of isspace/isalnum.
- Use TOUPPER instead of islower/toupper.
- * nm.c (main): For gettext, also set the LC_CTYPE locate facet.
- * objcopy.c (main): Likewise.
- * objdump.c: Include "safe-ctype.h" instead of <ctype.h>.
- (disassemble_bytes): Use ISPRINT instead of isprint.
- (dump_section_stabs): Use ISDIGIT instead of isdigit.
- (dump_data): Use ISPRINT instead of isprint.
- (main): For gettext, also set the LC_CTYPE locate facet.
- * rclex.l: Include "safe-ctype.h" instead of <ctype.h>.
- (cpp_line, handle_quotes): Use ISSPACE instead of isspace.
- * rcparse.y: Include "safe-ctype.h" instead of <ctype.h>.
- Use TOUPPER instead of islower/toupper.
- * readelf.c (main): For gettext, also set the LC_CTYPE locate facet.
- * resrc.c: Include "safe-ctype.h" instead of <ctype.h>.
- (write_rc_accelerators): Use ISPRINT instead of isprint.
- (write_rc_rcdata): Likewise.
- * size.c (main): For gettext, also set the LC_CTYPE locate facet.
- * srconv.c (main): Likewise.
- * stabs.c: Include "safe-ctype.h" instead of <ctype.h>.
- (parse_number): Use ISDIGIT/ISUPPER/ISLOWER instead of
- isdigit/isupper/islower.
- (parse_stab_string, parse_stab_type, parse_stab_argtypes,
- parse_stab_array_type, stab_demangle_count, stab_demangle_get_count,
- stab_demangle_prefix, stab_demangle_qualified,
- stab_demangle_template, stab_demangle_type,
- stab_demangle_fund_type): Use ISDIGIT instead of isdigit.
- * strings.c: Include "safe-ctype.h" instead of <ctype.h>.
- (isgraphic): Use ISPRINT instead of isascii/isprint.
- (main): Remove HAVE_LC_MESSAGES dependency.
- * sysdump.c: Include "safe-ctype.h" instead of <ctype.h>.
- (pbarray): Use ISPRINT instead of isprint.
- (main): For gettext, also set the LC_CTYPE locate facet.
- * windres.c: Include "safe-ctype.h" instead of <ctype.h>.
- (format_from_filename): Use ISPRINT instead of isprint.
- (main): For gettext, also set the LC_CTYPE locate facet.
- * winduni.c: Include "safe-ctype.h" instead of <ctype.h>.
- (unicode_print): Use ISPRINT instead of isprint.
- * wrstabs.c: Include "safe-ctype.h" instead of <ctype.h>.
- (stab_variable): Use ISDIGIT instead of isdigit.
-
-2001-09-18 Alan Modra <amodra@bigpond.net.au>
-
- * ar.c (print_contents): Cast args of bfd_seek to the right types.
- Replace bfd_read call with call to bfd_bread.
- (extract_file): Likewise.
-
- * objdump.c (dump_section_header): Cast section->filepos to
- unsigned long to suit printf format string.
- * readelf.c (process_section_headers): Similarly for sh_offset.
- (process_unwind): Likewise.
-
-2001-09-14 Nick Clifton <nickc@cambridge.redhat.com>
-
- * strings.c (encoding, encoding_bytes): New variables.
- (long_options): Add --encoding.
- (main): Accept -e and --encoding.
- (get_char): New function. Read a, possibly wide, character from
- the input stream.
- (print_strings): Use get_char().
- (usage): Document new command line option.
- * doc/binutils.texi: Document new command line option.
- * NEWS: Announce new command line option.
-
-2001-09-12 Alexandre Oliva <aoliva@redhat.com>
-
- * readelf.c (guess_is_rela, dump_relocations, get_machine_name,
- get_machine_flags): Added EM_M32R, EM_D10V, EM_V850, EM_D30V,
- EM_MN10200, EM_MN10300, EM_FR30, EM_AVR_OLD and EM_PJ_OLD.
- Removed EM_CYGNUS_ARC.
-
-2001-09-04 Jeffrey A Law (law@cygnus.com)
-
- * readelf.c: Include elf/h8 for H8 series definitions.
- (guess_is_rela): H8 series if RELA.
- (dump_relocations): Handle H8 series relocations.
-
-2001-08-31 Eric Christopher <echristo@redhat.com>
-
- * readelf.c (get_machine_flags): Remove E_MIPS_MACH_MIPS32_4K.
-
-2001-08-29 Peter Targett <peter.targett@arccores.com>
-
- * MAINTAINERS: Include ARC Maintainer.
-
-2001-08-29 Ben Elliston <bje@redhat.com>
-
- * stabs.c (stab_demangle_template): Initialise s4.
-
-2001-08-27 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (dump_relocations): Recognise EM_PPC64.
-
-2001-08-26 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * readelf.c (get_machine_flags): Add detection of EF_MIPS_32BITMODE.
-
-2001-08-25 H.J. Lu <hjl@gnu.org>
-
- * nm.c (print_width): New.
- (display_rel_file): Set `print_width' according to
- bfd_sprintf_vma.
- (print_symbol_info_bsd): Check `print_width' instead of BFD64.
-
-2001-08-24 Alexandre Oliva <aoliva@redhat.com>
-
- * objcopy.c (use_alt_mach_code): New variable.
- (OPTION_ALT_MACH_CODE): Define.
- (copy_options): Added --alt-machine-code.
- (copy_main): Handle it.
- (copy_object): Switch to alternate machine code if requested.
- * doc/binutils.texi: Document new option.
- * NEWS: Likewise.
-
-2001-08-22 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * readelf.c (get_machine_flags): Add detection of EF_MIPS_UCODE.
-
-2001-08-21 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (dump_relocations): Support ELF64 on 32bit hosts.
- (display_debug_info): Cast for 64bit hosts.
- (display_debug_frames): Likewise.
- (process_mips_specific): Likewise.
-
-2001-08-21 Andreas Jaeger <aj@suse.de>
-
- * coffgrok.h: Add missing parameter for prototype of coff_grok.
-
- * sysdump.c: Add missing prototypes.
- * srconv.c: Likewise.
- * unwind-ia64.c: Likewise.
- * coffdump.c: Likewise.
-
- * sysinfo.y: Print prototypes, include <ansidecl.h>.
-
- * coffgrok.c: Add missing prototypes, include libiberty.h instead
- of declaring xcalloc.
-
-2001-08-10 H.J. Lu <hjl@gnu.org>
-
- * nm.c (print_value): Add one arg, bfd *.
- (print_value): Replace fprintf_vma with bfd_fprintf_vma.
- (print_symbol_info_bsd): Also pass `abfd' to print_value ().
- (print_symbol_info_sysv): Likewise.
- (print_symbol_info_posix): Likewise.
-
- * objdump.c (dump_section_header): Replace printf_vma with
- bfd_printf_vma.
- (print_section_stabs): Likewise.
- (dump_bfd_header): Likewise.
- (objdump_print_value): Replace sprintf_vma with
- bfd_sprintf_vma.
- (disassemble_bytes): Likewise.
- (dump_reloc_set): Likewise.
-
-2001-08-10 Andreas Jaeger <aj@suse.de>
-
- * configure.in: Add -Wstrict-prototypes and -Wmissing-prototypes
- to build warnings.
- * configure: Regenerate.
-
-2001-08-09 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c: Add missing prototypes.
- * objdump.c: Likewise. Format existing prototypes.
-
-2001-08-08 Alexandre Oliva <aoliva@redhat.com>
-
- * readelf.c (display_debug_info): Add to abbrev_offset the addend
- of any RELA relocation for the abbrev_offset memory location that
- refers to the .debug_abbrev section symbol.
-
-2001-08-07 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (process_file): Return 0 if OK, otherwise return 1.
- (main): Return process_file ().
-
-2001-08-05 Philip Blundell <philb@gnu.org>
-
- * doc/binutils.texi: Use "Thumb" not "THUMB".
-
-2001-08-03 John Healy <jhealy@redhat.com>
-
- Patch suggested by Frank Eigler <fche@redhat.com>.
- * objdump.c (disassemble_data): Fill in section member of the
- disasm_info structure.
-
-2001-08-03 Tom Walsh <tom@cyberiansoftware.com>
-
- * configure.in: Added --with-windres option.
- * configure: Regenerated.
-
-2001-07-11 Stephane Carrez <Stephane.Carrez@worldnet.fr>
-
- * doc/binutils.texi: Use @command{name} for commands;
- use @option{-opt} for options; use @table @env for list of options;
- remove spaces arround [ | ] in synopsis.
-
- * doc/Makefile.am (POD2MAN): Use 'GNU Development Tools' for the
- center title.
-
-2001-07-31 Nick Clifton <nickc@cambridge.redhat.com>
-
- * objcopy.c: Fix formatting.
- (section_rename): New structure.
- (OPTION_RENAME_SECTION): New switch.
- (copy_usage): Document new switch.
- (add_section_rename): New function: Add a node to the section
- rename list.
- (find_section_rename): New function: Find the new name and
- flags for a section.
- (setup_section): Call find_section_name to determine the name
- of the output section.
- (copy_main): Handle OPTION_RENAME_SECTION.
- * binutils.texi: Document new switch.
- * NEWS: Mention new switch.
-
-2001-07-30 Nick Clifton <nickc@cambridge.redhat.com>
-
- * README: Rename bug-gnu-utils@gcc.org to bug-binutils@gcc.org.
- * MAINTAINERS: Rename bug-gnu-utils@gcc.org to
- bug-binutils@gcc.org.
-
-2001-07-28 Matthias Kramm <kramm@quiss.org>
-
- * bucomm.c (list_supported_architectures): New function.
- * bucomm.h (list_supported_architectures): Declare.
- * objdump.c (usage): Call the above.
-
-2001-07-25 Dave Brolley <brolley@redhat.com>
-
- * objdump.c (SKIP_ZEROES): Only define it if it is not already defined.
- (SKIP_ZEROES_AT_END): Only define it if it is not already defined.
-
-2001-07-19 Nick Clifton <nickc@cambridge.redhat.com>
-
- * README: Update for 2.11. Change bug reporting email address.
- * MAINTAINERS: Tidy up. Change bug reporting email address.
-
-2001-07-16 DJ Delorie <dj@redhat.com>
-
- * resres.c (write_res_header): Align header size.
- (res_align_file): Calculate alignment correctly.
-
- * rcparse.y (styles): use SUBLANG_SHIFT instead of 8 (or the more
- correct 10).
- * resrc.c (write_rc_resource): Likewise.
- * windres.h (SUBLANG_SHIFT): Define - as 10.
-
-2001-07-15 Nick Clifton <nickc@cambridge.redhat.com>
-
- * MAINTAINERS: Add Christian Groessler as maintainer for z8k port.
-
-2001-07-11 Nick Clifton <nickc@cambridge.redhat.com>
-
- * MAINTAINERS: Add notes about branch checkins.
-
-2001-07-05 Daniel Berlin <dan@cgsoftware.com>
-
- * readelf.c (display_debug_macinfo): New function, display
- .debug_macinfo section.
- (do_debug_macinfo): New variable.
- (parse_args): Handle "-w[mM]" to mean display macro info.
- (process_section_headers): Handle debug_macinfo.
- (debug_displays): Replace unsupported function with macinfo
- function for .debug_macinfo display.
- * doc/binutils.texi: Document new command line switch.
- * NEWS: Document new feature of readelf.
-
-2001-07-05 H.J. Lu <hjl@gnu.org>
-
- * objcopy.c (filter_symbols): Don't turn undefined symbols
- into local.
-
-2001-07-03 H.J. Lu <hjl@gnu.org>
-
- * doc/Makefile.am (addr2line.1): Use addr2line.pod instead of
- $@.pod.
- (ar.1): Likewise.
- (dlltool.1): Likewise.
- (nlmconv.1): Likewise.
- (nm.1): Likewise.
- (objcopy.1): Likewise.
- (objdump.1): Likewise.
- (ranlib.1): Likewise.
- (readelf.1): Likewise.
- (size.1): Likewise.
- (strings.1): Likewise.
- (strip.1): Likewise.
- (windres.1): Likewise.
- (cxxfilt.man): Use $(DEMANGLER_NAME).pod instead of $@.pod.
- ($(DEMANGLER_NAME).1): Also substitute cxxfilt with
- $(DEMANGLER_NAME).
- (as.1): Removed.
- * doc/Makefile.in: Regenerated.
-
-2001-07-03 Nick Clifton <nickc@cambridge.redhat.com>
-
- * MAINTAINERS: Change MIPS maintainer to Eric Christopher.
-
-2001-07-01 Daniel Berlin <dan@cgsoftware.com>
-
- * readelf.c: Support DWARF 2.1 tags, encodings, languages.
-
-2001-06-29 James Cownie <jcownie@etnus.com>
-
- * readelf.c: Support DWARF 2.1 attributes.
-
-2001-06-28 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (GET_DATA_ALLOC): Remove.
- (GET_DATA): Remove.
- (get_data): New function combining above macros, with an extra
- test for zero size.
- (slurp_rela_relocs): Use get_data, and catch error return.
- (slurp_rel_relocs): Likewise.
- (get_32bit_program_headers): Likewise.
- (get_64bit_program_headers): Likewise.
- (get_32bit_section_headers): Likewise.
- (get_64bit_section_headers): Likewise.
- (get_32bit_elf_symbols): Likewise.
- (get_64bit_elf_symbols): Likewise.
- (process_section_headers): Likewise.
- (process_relocs): Likewise.
- (slurp_ia64_unwind_table): Likewise.
- (process_unwind): Likewise.
- (get_32bit_dynamic_segment): Likewise.
- (get_64bit_dynamic_segment): Likewise.
- (process_dynamic_segment): Likewise.
- (process_version_sections): Likewise.
- (process_symbol_table): Likewise.
- (dump_section): Likewise.
- (display_debug_info): Likewise.
- (display_debug_section): Likewise.
- (process_section_contents): Likewise.
- (process_corefile_note_segment): Likewise.
- (process_mips_specific): Likewise. Also free econf32, econf64.
-
-2001-06-25 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (dump_relocations): Print "bad symbol index" if
- symtab == NULL with non-zero symtab_index.
- (process_relocs): Don't bomb if reloc section has no symsec.
-
-2001-06-24 H.J. Lu <hjl@gnu.org>
-
- * objcopy.c (strip_main): Revert the change made on 2001-05-30
- by accident.
- (copy_main): Apply the the change made to strip_main on
- 2001-05-30 by accident.
-
-2001-06-23 Andreas Jaeger <aj@suse.de>
-
- * unwind-ia64.c (unw_decode_x1): Add unused attribute for
- parameter 'code'.
- (unw_decode_x2): Likewise.
- (unw_decode_x3): Likewise.
- (unw_decode_x4): Likewise.
-
-2001-06-23 Ben Elliston <bje@redhat.com>
-
- * MAINTAINERS: Add myself as M88k maintainer.
-
-2001-06-22 Jocelyn Mayer <jocelyn.mayer@netgem.com>
-
- * objcopy.c (strip_main): Support -o or --output-file command lien
- switch.
-
-2001-06-19 H.J. Lu <hjl@gnu.org>
-
- * doc/Makefile.in: Regenerated.
-
-2001-06-19 Nick Clifton <nickc@cambridge.redhat.com>
-
- * readelf.c: Restore formatting.
-
-2001-06-18 H.J. Lu <hjl@gnu.org> & Nick Clifton <nickc@redhat.com>
-
- * Makefile.am: Move documentation into doc subdirectory.
- * Makefile.in: Regenerated.
- * binutils.texi: Move into doc subdirectory.
- * addr2line.1: Removed.
- * ar.1: Likewise.
- * dlltool.1: Likewise.
- * nlmconv.1: Likewise.
- * nm.1: Likewise.
- * objcopy.1: Likewise.
- * objdump.1: Likewise.
- * ranlib.1: Likewise.
- * readelf.1: Likewise.
- * size.1: Likewise.
- * strings.1: Likewise.
- * strip.1: Likewise.
- * windres.1: Likewise.
- * cxxfilt.man: Likewise.
- * doc: New Directory.
- * doc/Makefile.am: New file.
- * doc/Makefile.in: Generate.
-
-2001-06-09 Alan Modra <amodra@bigpond.net.au>
-
- * NEWS: Fix a typo. Mention hppa64-elf. Add binutils-2.11 marker.
-
-2001-06-01 Alan Modra <amodra@bigpond.net.au>
-
- * MAINTAINERS: Update my email address.
-
-2001-05-30 Honda Hiroki <hhonda@kobe-catv.ne.jp>
-
- * objcopy.c: Add new switches: --keep-global-symbol,
- --keep-symbols, --localize-symbols, --keep-global-symbols and
- --weaken-symbols.
- * binutils.texi: Document new switches.
- * objcopy.1: Regenerate.
- * NEWS: Announce new feature.
-
-2001-05-28 Andreas Jaeger <aj@suse.de>
-
- * readelf.c (display_debug_frames): Fix warnings: Remove unused
- variables, fix format strings.
-
-2001-05-28 Nick Clifton <nickc@cambridge.redhat.com>
-
- * objdump.c (disassemble_bytes): Remove section VMA adjustment
- when computing the address of the line to show.
-
-2001-05-16 Richard Henderson <rth@redhat.com>
-
- * readelf.c (do_debug_frames_interp): New.
- (byte_get_little_endian): If BFD64, always read entire 8-byte fields.
- (byte_get_big_endian): Likewise.
- (parse_args) ['F']: Set do_debug_frames_interp.
- (Frame_Chunk): Make data_factor signed, add fde_encoding.
- (frame_display_row): Don't trunc pc_begin to int.
- (size_of_encoded_value): New.
- (display_debug_frames): Handle 64-bit targets. Print raw data
- unless do_debug_frames_interp.
- (debug_displays): Remove duplicate .debug_frame.
-
-2001-05-15 Ralf Baechle <ralf@gnu.org>
-
- * readelf.c: Replace uses of EM_MIPS_RS4_BE with EM_MIPS_RS3_LE.
- The former constant was never in active use and is used otherwise
- by the ABI.
-
-2001-05-11 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (process_unwind): Print all unwind sections, not just
- one.
-
-2001-05-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * readelf.c (process_unwind): Remove const specifier.
-
-2001-04-27 Michal Svec <rebel@atrey.karlin.mff.cuni.cz>
-
- * strings.c (isgraphic): Do not use isascii() unless it is needed
- for isprint() to work.
- (main): Set the locale domain to LC_ALL not just LC_MESSAGES.
-
-2001-04-27 Johan Rydberg <jrydberg@opencores.org>
-
- * NEWS: Announce support for OpenRISC.
-
-2001-04-17 Danny Smith <dannysmith@users.sourceforge.net>
-
- * dlltool.c (do_default_excludes): Initialise to true.
-
-2001-04-10 Alan Modra <amodra@one.net.au>
-
- * MAINTAINERS: Update my email address
- * nm.c (print_symbol_info_bsd): Use a simple printf string.
-
-2001-04-05 Hans-Peter Nilsson <hp@axis.com>
-
- * readelf.c (display_debug_lines): Fix typo for "Prologue".
-
-2001-03-30 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (process_unwind): Just return if do_unwind is 0.
-
-2001-03-28 Roger Sayle <roger@metaphorics.com>
-
- * dlltool.c (make_one_lib_file): Fix section flags for
- .text, .data and .bss in stub ds*.o files to match those
- generated by gas.
-
-2001-03-29 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (process_unwind): Only do unwind sections for
- IA64.
-
-2001-03-28 H.J. Lu <hjl@gnu.org>
-
- * Makefile.am ($(srcdir)/dlltool.1): Remove the extra target.
- * Makefile.in: Regenerate.
-
-2001-03-26 Andreas Jaeger <aj@suse.de>
-
- * binutils.texi (nm): Fix texi syntax.
-
-2001-03-25 Stephane Carrez <Stephane.Carrez@worldnet.fr>
-
- * binutils.texi: Put @c man begin and @c man end indications
- to generate man pages using texi2pod and pod2man. Put @c man title
- to identify each man. Add SEEALSO entries.
- * Makefile.am (MANCONF, TEXI2POD, POD2MAN): New variable.
- (man_MANS): Add dlltool.1, nlmconv.1, readelf.1, windres.1,
- sort the list.
- (*.1): Build the man pages from binutils.texi.
- * Makefile.in: Regenerate.
-
-2001-03-13 Eric Kohl <ekohl@rz-online.de>
-
- * defparse.y (opt_equal_name): allow "." in name.
- * dlltool.c (def_exports): Added ability to generate forwarded exports.
- (gen_exp_file): Likewise.
-
-2001-03-12 Stefan Geuken <mail@stefan-geuken.de>
-
- * NEWS: Document addition of -B switch to objcopy.
- * binutils.texi: Document addition of -B switch to objcopy.
- * objcopy.c: (copy_options): Add --binary-architecture.
- (copy_usage): Document -B/--binary-architecture.
- (copy_main): Support -B/--binary-architecture. Set
- bfd_external_binary_architecture.
-
-2001-03-11 Andreas Jaeger <aj@suse.de>
-
- * readelf.c (guess_is_rela): Handle EM_S390_OLD.
- (dump_relocations): Likewise.
- (get_machine_name): Likewise.
-
-2001-02-28 Nick Clifton <nickc@redhat.com>
-
- * readelf.c: (struct unw_aux_info): Remove const modifier for
- 'strtab' field.
- (process_unwind): Remove non-K&R compliant LHS type cast in call
- to GET_DATA_ALLOC macro.
-
-2001-02-28 Philip Blundell <pb@futuretv.com>
-
- * readelf.c (decode_ARM_machine_flags): Explicitly mention which
- ABI is in use; remove ambiguity between the "unknown" EABI and
- unrecognised ABIs. Handle version 2 ARM EABI. Update uses of
- renamed EF_xx constants.
-
-2001-02-27 Alan Modra <alan@linuxcare.com.au>
-
- * configure.in (BFD_VERSION): New.
- (AM_INIT_AUTOMAKE): Use $BFD_VERSION.
- * configure: Regenerate.
- * Makefile.am: Run "make dep-am"
- * Makefile.in: Regenerate.
-
-2001-02-14 Nick Clifton <nickc@redhat.com>
-
- * MAINTAINERS: Add "Obvious Fix" rule.
-
-2001-02-11 Michael Sokolov <msokolov@ivan.Harhan.ORG>
-
- * unwind-ia64.c: Don't use ANSI C preprocessor stringisation and string
- literal concatenation.
-
-2001-02-11 Michael Sokolov <msokolov@ivan.Harhan.ORG>
-
- * readelf.c (struct unw_aux_info): Remove const from the info member.
- (process_unwind): Don't type-cast the third argument to the
- GET_DATA_ALLOC macro.
-
-2001-02-11 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (dump_relocations): Free corrected allocated
- array.
- (process_unwind): Fix compile time warning.
-
-2001-02-10 Nick Clifton <nickc@redhat.com>
-
- * binutils.texi: Document new --unwind option to readelf.
-
-2001-02-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
-
- * readelf.c: Add linux target for S/390.
-
-2001-02-10 Alan Modra <alan@linuxcare.com.au>
-
- * nm.c (print_symbol_info_bsd): Don't #ifdef inside printf in case
- printf is a macro.
-
-2001-02-08 Hans-Peter Nilsson <hp@bitrange.com>
-
- * acinclude.m4 (AM_PROG_LEX): Override installed definition.
- * aclocal.m4: Regenerate.
- * configure: Regenerate.
-
-2001-02-07 Todd Vierling <tv@wasabisystems.com>
-
- * bucomm.c (bfd_target_vector): Change extern array to pointer.
- * objdump.c (bfd_target_vector): Likewise.
-
-2001-02-07 David Mosberger <davidm@hpl.hp.com>
-
- * readelf.c (process_unwind): New function.
- (slurp_ia64_unwind_table): Ditto.
- (dump_ia64_unwind): Ditto.
- (find_symbol_for_address): Ditto.
- (slurp_rela_relocs): New function (split off from dump_relocations()).
- (slurp_rel_relocs): Ditto.
- (parse_args): Handle '-u' option.
-
- * unwind-ia64.c: New file.
- * unwind-ia64.h: New file.
- * Makefile.am: Include unwind-ia64.c in readelf build.
- * Makefile.in: Regenerate.
- * po/binutils.pot: Regenerate.
-
-2001-02-04 Philip Blundell <philb@gnu.org>
-
- * configure.in (OBJDUMP_DEFS): Match `arm*-*', not just `arm-*'.
- * configure: Regenerate.
-
-2001-01-31 Steve deRosier <sderosier@vari-lite.com>
-
- * ieee.c (ieee_add_bb11): Don't check for backslashes
- unless HAVE_DOS_BASED_FILE_SYSTEM is defined.
-
-2001-01-24 Mark Elbrecht <snowball3@bigfoot.com>
-
- * ieee.c: Update copyright.
- (ieee_start_compilation_unit): Don't check for backslashes
- unless HAVE_DOS_BASED_FILE_SYSTEM is defined.
-
- * stabs.c: Update copyright. Include "filenames.h".
- (parse_stab): Use IS_ABSOLUTE_PATH. Ignore N_WARNING stabs.
-
-2001-01-23 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (process_version_sections): Check if VERDEF or VERNEED
- sections are present before using them. Remove code duplication.
- (process_symbol_table): Check if VERDEF or VERNEED sections are
- present before using them.
-
-2001-01-17 Nick Clifton <nickc@redhat.com>
-
- * objcopy.c (copy_object): Fail if attempting to convert the
- endianness of the input object file.
-
- * binutils.texi: Explain that objcopy cannot convert endianness.
-
-2001-01-16 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (string_table_length): New variable.
- (SECTION_NAME): Catch out of range indices and missing section
- pointers.
- (process_section_headers): Delete useless local variable
- string_table_offset. Set the value of string_table_length
- after loading the string table.
- (process_mips_specific): Use SECTION_NAME macro.
- (process_file): Set string_table_length to 0 when it is freed.
-
-2001-01-12 Nick Clifton <nickc@redhat.com>
-
- * version.c (print_version): Update copyright date.
-
-2001-01-11 Peter Targett <peter.targett@arccores.com>
-
- * readelf.c (dump_relocations): Include selection with EM_ARC.
- (get_machine_name) Update name to "ARC".
-
-2001-01-09 Nick Clifton <nickc@redhat.com>
-
- * Makefile.am: Add rule to build objdump.o from objdump.c and
- using OBJDUMP_DEFS.
- * Makefile.in: Regenerate.
-
- * configure.in: Define OBJDUMP_DEFS. Default to empty.
- (arm, xscale, d10v): For these targets define OBJDUMP_DEFS to
- -DDISASSEMBLER_NEEDS_RELOCS.
- * configure: Regenerate.
-
- * objdump.c (disassemble_bytes): If DISASSEMBLER_NEEDS_RELOCS
- is defined read in the relocs even if dump_reloc_info is
- false.
-
-2001-01-07 Philip Blundell <philb@gnu.org>
-
- * binutils.texi (Bug Reporting): Replace `bug-gnu-utils' with
- `bug-binutils'.
- * README: Likewise.
-
-2000-12-19 Nick Clifton <nickc@redhat.com>
-
- * dlltool.c: Add missing support for arm-epoc-pe.
- * configure.in: Add missing support for arm-epoc-pe.
- * configure: Regenerate.
-
-2000-12-15 Nick Clifton <nickc@redhat.com>
-
- * MAINTAINERS: Add Diego Novillo as a maintainer for the Intel
- Mode parts of the x86 port.
-
-2000-12-04 Andreas Jaeger <aj@suse.de>
-
- * readelf.c (guess_is_rela): Add EM_X86_64.
- (dump_relocations): Add EM_X86_64.
- (get_machine_name): Add EM_X86_64.
- Include "elf/x86-64.h".
-
-2000-12-12 Nick Clifton <nickc@redhat.com>
-
- * readelf.c: Fix formatting.
-
-2000-12-11 Jan Hubicka <jh@suse.cz>
-
- * MAINTAINERS: Add myself and Andreas Jaeger as x86_64 maintainer.
-
-2000-12-07 Andrew Haley <aph@redhat.com>
-
- * readelf.c (display_debug_frames): Only display columns that are
- referenced by the frame debug info.
-
-2000-12-05 Nick Clifton <nickc@redhat.com>
-
- * MAINTAINERS: Add Jason Merrill as DWARF2 maintainer.
-
-2000-12-04 Jason Merrill <jason@redhat.com>
-
- * readelf.c (process_section_headers): Handle linkonce.wi sections.
- (display_debug_section): Likewise.
- (display_debug_info): Display CU header before bailing.
-
-2000-12-01 Chris Demetriou <cgd@sibyte.com>
-
- * readelf.c (get_machine_flags): Recognize MIPS32 ISA in
- EF_MIPS_ARCH. Replace use of E_MIPS_MACH_MIPS32 with
- E_MIPS_MACH_MIPS32_4K and adjust printed CPU name similarly.
-
- * readelf.c (get_machine_flags): Add cases for E_MIPS_ARCH_5,
- and E_MIPS_ARCH_64.
-
- * readelf.c (get_machine_flags): Add case for
- E_MIPS_MACH_SB1.
-
-2000-11-30 Richard Earnshaw <rearnsha@arm.com>
-
- * readelf.c (frame_display_row): Output 's' for DW_CFA_same_value.
-
-2000-11-28 Hans-Peter Nilsson <hp@bitrange.com>
-
- * MAINTAINERS: Add Jörn Rennecke and self as SH maintainers.
- Change sourceware.cygnus.com to sources.redhat.com.
- Fix typo for "amongst".
-
-2000-11-28 Nick Clifton <nickc@redhat.com>
-
- * strip.1 (COPYING): Mention that the GNU Free Documentation
- License is present in the sources, but not the output, and
- also available from the GNU website.
- (GNU Free Documentation License): Comment out this section.
- * strings.1: Ditto.
- * size.1: Ditto.
- * ranlib.1: Ditto.
- * objdump.1: Ditto.
- * objcopy.1: Ditto.
- * nm.1: Ditto.
- * nlmconv.1: Ditto.
- * ar.1: Ditto.
- * addr2line.1: Ditto.
-
-2000-11-27 DJ Delorie <dj@redhat.com>
-
- * readelf.c (usage): Add -wf (--debug-dump=frames) option.
- (parse_args): Support -wf option.
- (process_section_headers): Ditto.
- (debug_displays): Ditto.
- (display_debug_frames): New, dump *_frame sections.
- (frame_need_space): Support for above.
- (frame_display_row): Ditto.
- * binutils.texi: Document it.
-
-2000-11-24 Nick Clifton <nickc@redhat.com>
-
- * NEWS: Announce support for v5t, v5te and XScale.
-
-2000-11-22 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (get_machine_name): Add EM_JAVELIN, EM_FIREPATH,
- EM_ZSP, EM_MMIX, EM_HUANY, EM_PRISM.
- (get_section_type_name): Add SHT_GROUP and SHT_SYMTAB_SHNDX.
- (get_elf_section_flags: Add SHF_GROUP.
- (process_section_headers): Adjust output for 32-bit binaries
- to look nice on an 80 column terminal.
-
-2000-11-20 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (get_osabi_name): Change ELFOSABI_MONTEREY to
- ELFOSABI_AIX.
-
-2000-11-17 Richard Henderson <rth@redhat.com>
-
- * readelf.c (display_debug_lines): Adjust last change to
- use sizeof (external->li_length).
-
-2000-11-17 Richard Henderson <rth@redhat.com>
-
- * readelf.c (display_debug_lines): Fix section length check
- and end_of_sequence computation.
-
-2000-11-06 Nick Clifton <nickc@redhat.com>
-
- * binutils.texi: Add GNU Free Documentation License.
- * objcopy.1: Add GNU Free Documentation License.
- * objdump.1: Add GNU Free Documentation License.
- * addr2line.1: Add GNU Free Documentation License.
- * ar.1: Add GNU Free Documentation License.
- * nlmconv.1: Add GNU Free Documentation License.
- * nm.1: Add GNU Free Documentation License.
- * ranlib.1: Add GNU Free Documentation License.
- * size.1: Add GNU Free Documentation License.
- * strings.1: Add GNU Free Documentation License.
- * strip.1: Add GNU Free Documentation License.
-
-2000-10-06 Luciano Gemme <ishitawa@yahoo.com>
-
- * objcopy.c (--srec-len=nn): New parameter to set the
- maximum length of generated Srecords.
- (--srec-forceS3): New parameter that restricts the generation of
- Srecords to type S3 only.
- * binutils.texi: Document new command line switches.
- * objcopy.1: Docuemnt the new command line switches.
- * NEWS: Announce the existence of the new command line switches.
-
-2000-10-31 Nick Clifton <nickc@redhat.com>
-
- * MAINTAINERS: Add Jim Wilson as the maintainer for the IA64
- code. Add Eric Chrisopher as maintainer of MN10300 port.
-
-2000-10-12 Roger Sayle <roger@metaphorics.com>
-
- * Make comma after string after icon/control optional.
-
-2000-09-13 Anders Norlander <anorland@acc.umu.se>
-
- * readelf.c (get_machine_flags): Also print EF_MIPS_MACH field.
-
- * NEWS: Mention support for MIPS32.
-
-2000-09-08 Nick Clifton <nickc@redhat.com>
-
- * MAINTAINERS: Add Stephane Carrez as maintainer for 68HC[11|12].
-
-2000-09-07 H.J. Lu <hjl@gnu.org>
-
- * configure.in (AC_ISC_POSIX): Put after AC_CANONICAL_SYSTEM.
- * configure: Rebuild.
-
-2000-09-06 Alexandre Oliva <aoliva@redhat.com>
-
- * configure: Rebuilt with new libtool.m4.
-
-2000-09-05 Nick Clifton <nickc@redhat.com>
-
- * aclocal.m4: Regenerate.
- * config.in: Regenerate.
- * configure: Regenerate.
-
-2000-09-04 Todd Vierling <tv@wasabisystems.com>
-
- * strip.1: Fix stray '\' in -o formatting.
-
-2000-09-02 Nick Clifton <nickc@redhat.com>
-
- * configure.in: Increase version number to 2.10.91.
- * configure: Regenerate.
- * aclocal.m4: Regenerate.
- * config.in: Regenerate.
- * po/binutils.pot: Regenerate.
-
-2000-08-31 Alexandre Oliva <aoliva@redhat.com>
-
- * acinclude.m4: Include libtool and gettext macros from the
- top level.
- * aclocal.m4, configure: Rebuilt.
-
-2000-08-30 Jamie Guinan <guinan@bluebutton.com>
-
- * resrc.c (close_input_stream): Delete extraneous logic
-
-2000-08-24 Hans-Peter Nilsson <hp@axis.com>
-
- * NEWS: Mention support for CRIS.
-
-2000-08-21 Nick Clifton <nickc@redhat.com>
-
- * addr2line.c: Changed email address for Ulrich Lauther.
-
-2000-08-17 Christopher C. Chimelis <chris@debian.org>
-
- * objdump.c (LONGEST_ARCH): Set to sizeof("powerpc:common").
-
-2000-08-17 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (display_debug_pubnames): Only issue warning
- message once. Terminate message with a new line.
- (display_debug_aranges): Only display version 2 debug info.
-
-2000-08-14 Todd Vierling <tv@wasabisystems.com>
-
- * objcopy.c (strip_main): Silently accept -d as an alias for -g
- for compatibility with old BSD systems.
-
-2000-08-14 Jason Eckhardt <jle@cygnus.com>
-
- * NEWS: Mention i860 support.
-
-2000-08-11 Carlo Wood <carlo@alinoe.com>
-
- * addr2line.c (main): Add const to char *.
-
-2000-08-11 Geoff Keating <geoffk@cygnus.com>
-
- * ar.c (main): Don't crash if called with no arguments
- or only '-X32_64' as an argument.
-
-2000-08-08 DJ Delorie <dj@redhat.com>
-
- * resrc.c: use "gcc -xc" instead of -xc-header
-
-2000-08-05 Jason Eckhardt <jle@cygnus.com>
-
- * readelf.c (elf/i860.h): Include.
- (dump_relocations): Add recognition of i860 architecture.
- (guess_is_rela): Add recognition of i860 architecture.
-
-2000-08-03 Nick Clifton <nickc@cygnus.com>
-
- * MAINTAINERS: Add information about CGEN maintainers.
-
-2000-07-26 Geoff Keating <geoffk@cygnus.com>
-
- * nm.c (main): Ignore '-X32_64' as an option.
- * ar.c (main): Likewise.
- * binutils.texi (nm): Document new option.
- (ar): Likewise.
-
-2000-07-23 Michael Sokolov <msokolov@ivan.Harhan.ORG>
-
- * rdcoff.c (external_coff_symbol_p): K&R-ise.
-
-2000-07-20 H.J. Lu <hjl@gnu.org>
-
- * binutils.texi: Put back "@end table" deleted by
- accident.
-
-2000-07-05 Kenneth Block <krblock@computer.org>
-
- * nm.c: Add optional style to demangle switch.
- * objdump.c: Add optional style to demangle switch.
- * addr2line.c: Add optional style to demangle switch.
- * binutils.texi: Document optional style to demangle
- switch.
-
-2000-07-20 Hans-Peter Nilsson <hp@axis.com>
-
- * MAINTAINERS: Add self as CRIS port maintainer.
- * readelf.c: Include elf/cris.h.
- (guess_is_rela): Handle EM_CRIS.
- (dump_relocations): Ditto.
- (get_machine_name): Ditto.
- * Makefile.am: Rebuild dependencies.
- * Makefile.in: Regenerate.
- * po/binutils.pot: Regenerate.
-
-2000-07-19 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (get_dynamic_type): Change "AUXILARY" to
- "AUXILIARY".
- (process_dynamic_segment): Print out strings for DT_CONFIG,
- DT_DEPAUDIT, DT_AUDIT and DT_RUNPATH.
-
-2000-07-19 Mark Kettenis <kettenis@gnu.org>
-
- * nm.c (usage): Change output of `nm --help' to include a
- description of the purpose of the program and a detailed
- description of the accepted options.
-
-2000-07-19 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (process_dynamic_segment): Change DF_1_NODEPLIB
- to DF_1_NODEFLIB.
-
-2000-07-19 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (get_dynamic_type): Fix DT_CHECKSUM.
-
-2000-07-19 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (get_dynamic_type): Change DT_FEATURE_1 to
- DT_FEATURE.
- (process_dynamic_segment): Likewise.
-
- * readelf.c (get_dynamic_type): Handle DT_CONFIG, DT_DEPAUDIT,
- DT_AUDIT, DT_PLTPAD, DT_MOVETAB and DT_CHECKSUM.
- (process_dynamic_segment): Handle DTF_1_CONFEXP, DF_1_NODEPLIB,
- DF_1_NODUMP and DF_1_CONLFAT.
-
-2000-07-18 Nick Clifton <nickc@cygnus.com>
-
- * binutils.texi (readelf): Fix spelling typo.
-
-2000-07-11 Mark Kettenis <kettenis@gnu.org>
-
- * objdump.c (usage): Make output of `objdump --help' more
- consistent with the rest of the GNU world. Add a line describing
- the purpose of the program.
-
-2000-07-10 David Huggins-Daines <dhd@linuxcare.com>
-
- * stabs.c (parse_stab_range_type): Cast to proper type to fix
- warning.
-
-2000-07-10 Ryan Bradetich <rbradetich@uswest.net>
-
- * readelf.c (get_dynamic_data): Add casts and use unsigned chars
- to fix warnings.
- (process_symbol_table): Ditto.
- (procesS_extended_line_op): Ditto.
- (display_debug_lines): Ditto.
- (display_debug_pubnames): Ditto.
- (read_and_display_attr): Ditto.
-
-2000-07-09 Nick Clifton <nickc@cygnus.com>
-
- * MAINTAINERS: Add several more port specific maintainers.
-
-2000-07-05 Nick Clifton <nickc@cygnus.com>
-
- * MAINTAINERS: Add blanket write privs for Michael Meissner.
-
-2000-06-05 DJ Delorie <dj@redhat.com>
-
- * MAINTAINERS: New.
-
-2000-07-01 Eric Fifer <EFifer@sanwaint.com>
-
- * dllwrap.c: Changed mistaken dyn_string_append() calls
- to dyn_string_append_cstr().
-
-2000-07-01 Alexander Aganichev <AAganichev@hypercom.com>
-
- * stabs.c (parse_stab_type): Divide size in bits by 8 as binutils
- struct debug_type stores size in bytes.
-
-2000-07-01 Alan Modra <alan@linuxcare.com.au>
-
- * Makefile.am (DEP): Fix 2000-06-22. grep after running dep.sed
- (CLEANFILES): Add DEPA.
- * Makefile.in: Regenerate.
-
-2000-06-27 Alan Modra <alan@linuxcare.com.au>
-
- * ar.c: Revert incorrect 2000-06-25 patch.
- * bucomm.c: Likewise.
-
-2000-06-25 Mark Elbrecht <snowball3@bigfoot.com>
-
- * rdcoff (parse_coff_symbol): Treat GNU weak symbols as external.
- (external_coff_symbol_p): New function.
- (parse_coff): Use it.
-
-2000-06-25 Alexander Aganichev <AAganichev@hypercom.com>
-
- * ar.c (normalize): Advance past both characters in a DOS based
- <letter>: filepath prefix.
- (main): Likewise.
- * bucomm.c (make_tempname): Likewise.
-
-2000-06-24 Nick Clifton <nickc@cygnus.com>
-
- * objdump.c (usage): Fix description of --stabs switch.
-
-2000-06-22 Alan Modra <alan@linuxcare.com.au>
-
- * Makefile.am (DEP): grep for leading `/' in DEP1, and fail if we
- find one.
- * Makefile.in: Regenerate.
-
-2000-06-20 Alexander Aganichev <AAganichev@hypercom.com>
-
- * ar.c (normalize): Correct pointer comparison when checking for
- backslashes.
- (main): Likewise.
- * bucomm.c (make_tempname): Likewise.
-
- * ieee.c (ieee_start_compilation_unit): Correct pointer comparison
- and search for backslashes in the original pathname.
- (ieee_add_bb11): Likewise.
-
-2000-06-18 Nick Clifton <nickc@redhat.com>
-
- * ar.c (print_contents): Improve verbose message.
-
-2000-06-15 H.J. Lu <hjl@gnu.org>
-
- * dyn-string.c: Removed. Not needed with dyn-string.c in
- libiberty.
- * dyn-string.h: Likewise.
-
- * Makefile.am: Remove references to dyn-string.c and
- dyn-string.h. Rebuild dependency.
- * Makefile.in: Rebuild.
-
-2000-06-15 H.J. Lu <hjl@gnu.org>
-
- * binutils.texi: Put a warning on copying relocatable object
- files between two different formats.
-
-2000-06-13 DJ Delorie <dj@cygnus.com>
-
- * rcparse.y (control): ICON controls take an id as the first
- parameter, not an optional string. Also, call new convenience
- function that takes res_id's.
- * resrc.c (define_control): missing text means zero-length string,
- not zero ID.
- (define_icon_control): New.
- * windres.h: declare define_icon_control.
-
-2000-06-13 H.J. Lu <hjl@gnu.org>
-
- * configure: Regenerate.
-
-2000-06-08 David O'Brien <obrien@FreeBSD.org>
-
- * configure.in (VERSION): Update to show this is the CVS mainline.
-
-2000-06-02 David O'Brien <obrien@FreeBSD.org>
-
- * strings.c (isgraphic): Interpret <TAB> as a printable character,
- analogous to <SPACE>.
-
-2000-05-30 Alan Modra <alan@linuxcare.com.au>
-
- * objdump.c (display_target_list): Use bfd_close_all_done, not
- bfd_close to fix crash caused by 2000-05-24 change.
-
-2000-05-25 DJ Delorie <dj@cygnus.com>
-
- * resrc.c (close_input_stream): zero out cpp_pipe after closing it.
-
-2000-05-26 Alan Modra <alan@linuxcare.com.au>
-
- * Makefile.am: Update dependencies with "make dep-am"
- * Makefile.in: Regenerate.
-
-2000-05-26 Eli Zaretskii <eliz@is.elta.co.il>
-
- * ar.c: Include filenames.h.
- (normalize) [HAVE_DOS_BASED_FILE_SYSTEM]: Support backslashes
- and drive letters in file names.
- (main): Support backslashes and drive letters in argv[0]. Drop
- the .exe suffix, if any, in argv[0] if is_ranlib is negative. Use
- FILENAME_CMP instead of strcmp to compare file names.
- (open_inarch) [__GO32__]: Don't ifdef errno != ENOENT test for
- DJGPP v2.
- (do_quick_append) [__GO32__]: Ditto.
- (get_pos_bfd, delete_members, move_members, replace_members):
- Compare file names with FILENAME_CMP.
-
- * bucomm.c: Include filenames.h.
- (make_tempname) [HAVE_DOS_BASED_FILE_SYSTEM]: Support mixed
- forward/backward slashes and drive letters in file names.
-
- * ieee.c (ieee_start_compilation_unit, ieee_add_bb11): Support
- mixed forward/backward slashes and drive letters in file names.
-
- * strings.c (O_BINARY, setmode, SET_BINARY): Define.
- (main) [SET_BINARY]: Use SET_BINARY to switch stdin into binary
- mode.
-
- * objcopy.c: Include filenames.h.
- (main) [HAVE_DOS_BASED_FILE_SYSTEM]: Drop the .exe suffix
- before comparing to "strip".
- Use FILENAME_CMP to compare file names.
-
- * arsup.c: Include filenames.h.
- (map_over_list, ar_delete, ar_replace, ar_extract): Use
- FILENAME_CMP to compare file names.
- (ar_open): Prepend "tmp-" instead of appending "-tmp", to create
- the temporary file name.
-
- * configure.in: Check for setmode.
- * configure: Regenerate.
-
-2000-05-24 Alan Modra <alan@linuxcare.com.au>
-
- * objdump.c (display_target_list): Close the bfd.
- (display_info_table): Likewise.
-
-2000-05-14 H.J. Lu (hjl@gnu.org)
-
- * objcopy.c (filter_symbols): Don't strip global symbols in
- relocatable object files.
-
-2000-05-14 Alan Modra <alan@linuxcare.com.au>
-
- * size.c (usage): Associate short options with corresponding long
- option to give a clue as to their function.
-
-2000-05-14 Philippe De Muyter <phdm@macqel.be>
-
- * size.c (main): Accept and ignore `-f' option.
-
-2000-05-13 Alan Modra <alan@linuxcare.com.au>
-
- * bucomm.h (gettext, dgettext, dcgettext, textdomain,
- bindtextdomain): Replace defines with those from intl/libgettext.h
- to quieten gcc warnings.
-
-2000-05-12 H.J. Lu <hjl@gnu.org>
-
- * nlmconv.c (temp_filename): Removed.
-
- * nlmconv.c (link_inputs): Use make_temp_file () instead of
- choose_temp_base ().
- * objdump.c (display_target_list): Likewise.
- (display_info_table): Likewise.
-
-2000-05-08 Alan Modra <alan@linuxcare.com.au>
-
- * objcopy.c (setup_section): Add const and gettext calls for err.
-
-2000-05-02 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (get_osabi_name): Handle ELFOSABI_NONE instead of
- ELFOSABI_SYSV. Also handle ELFOSABI_NETBSD, ELFOSABI_HURD,
- ELFOSABI_SOLARIS, ELFOSABI_MONTEREY, ELFOSABI_IRIX,
- ELFOSABI_FREEBSD, ELFOSABI_TRU64, ELFOSABI_MODESTO
- and ELFOSABI_OPENBSD.
-
-2000-05-02 Kazu Hirata <kazu@hxi.com>
-
- * coffgrok.c: Add ATTRIBUTE_UNUSED as appropriate.
- * srconv.c: Likewise.
- * sysdump.c: Likewise.
-
-2000-04-23 Denis Chertykov <denisc@overta.ru>
-
- * readelf.c (guess_is_rela): AVR uses RELA relocations.
- (get_machine_name): machine name for EM_AVR added.
-
-2000-04-21 Richard Henderson <rth@cygnus.com>
- David Mosberger <davidm@hpl.hp.com>
-
- * Makefile.am (readelf.o): Add elf/ia64.h.
- * Makefile.in: Rebuild.
- * readelf.c: Include elf/ia64.h.
- (guess_is_rela, dump_relocations): Handle EM_IA_64.
-
-2000-04-17 Timothy Wall <twall@cygnus.com>
-
- * objdump.c (disassemble_data): Set octets per byte *after*
- resolving arch/mach for binary files.
-
-2000-04-14 Michael Sokolov <msokolov@ivan.Harhan.ORG>
-
- * arlex.l: Add directives to increase lex buffer size.
-
- * objdump.c, readelf.c: Don't include strarg.h or varargs.h. They are
- already included by bucomm.h.
-
-2000-04-10 Philippe De Muyter <phdm@macqel.be>
-
- * readelf.c (dynamic_segment_mips_val): Call `sprintf', not
- `strftime' since strftime is not available on all systems.
- (process_mips_specific): Ditto.
-
-2000-04-07 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure.in (WARN_CFLAGS): Set to -W -Wall by default. Add
- --enable-build-warnings option.
- * Makefile.am (AM_CFLAGS, WARN_CFLAGS): Add definitions.
- * Makefile.in, configure: Re-generate.
-
-2000-04-06 Alan Modra <alan@linuxcare.com.au>
-
- * addr2line.c: Update copyright.
- * objcopy.1: Likewise, and title.
- * strings.1: Likewise.
-
- * version.c (print_version): Add 2000.
-
- * rddbg.c (read_section_stabs_debugging_info): Don't use
- bfd_size_type for strx to avoid printf problems if BFD64.
-
- * bucomm.c: (report): Remove `static'.
- Move inclusion of stdarg.h/vararg.h from here.
- * bucomm.h: To here.
- (CONST): Change all occurences to const.
- (report): Declare it.
- (bfd_fatal): Add ATTRIBUTE_NORETURN.
- (fatal): Add ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN.
- (non_fatal): Add ATTRIBUTE_PRINTF_1.
-
- * ar.c (main): Use fatal or non_fatal instead of fprintf.
- Correct a typo in an error message.
- (do_quick_append): Use non_fatal instead of fprintf.
- (move_members): Use fatal instead of fprintf, exit.
- * coffdump.c (main): Same here.
-
- * dlltool.c (display): Delete.
- (warn): Delete.
- (inform): Use `report' instead of `display'.
- (rvaafter): Remove trailing \n from fatal error msg.
- (rvabefore): Ditto.
- (asm_prefix): Ditto.
- (yyerror): Replace `warn' with `non_fatal', and remove \n.
- (def_name): Likewise.
- (run): Likewise.
- (scan_all_symbols): Likewise.
- (gen_lib_file): Likewise.
- (def_library): Likewise. Remove extra program_name too.
- (run): Remove \n from inform strings.
- (scan_drectve_symbols): Likewise.
- (add_excludes): Likewise.
- (scan_open_obj_file): Likewise.
- (gen_exp_file): Likewise.
- (gen_lib_file): Likewise.
- (process_duplicates): Likewise.
-
- * Makefile.am (dllwrap_SOURCES): Add version.c.
- * dllwrap.c (program_version): Delete.
- (print_version): Delete.
- (display): Always print trailing \n.
- (warn): New.
- (delete_temp_files): Use warn instead of fprintf. Use gettext.
- (run): Here too.
- (main): And here.
- (usage): gettext'ify.
- (long_options): Add missing initialisers.
-
- * nlmconv.c (main): Use fatal/non_fatal instead of fprintf.
- (select_output_format): Likewise.
- (powerpc_mangle_relocs): Likewise.
- (link_inputs): Likewise.
-
- * nm.c (set_print_radix): Use fatal instead of fprintf, exit.
- (set_output_format): Likewise.
- (main): Use non_fatal instead of fprintf.
- (display_rel_file): Likewise.
-
- * objdump.c (slurp_symtab): Use non_fatal instead of fprintf.
- (slurp_dynamic_symtab): Same here.
- (disassemble_data): And here.
- (read_section_stabs): And here.
- (read_section_stabs): And here.
- (dump_bfd): And here.
- (main): And here.
- (objdump_sprintf): Use fatal instead of fprintf, exit.
- (disassemble_data): Same here.
-
- * rdcoff.c (parse_coff_type): Use non_fatal instead of fprintf.
- (parse_coff_struct_type): Same here.
- (parse_coff_enum_type): And here.
- (parse_coff): And here.
- * rddbg.c (read_debugging_info): And here.
- * size.c (main): And here.
- * windres.c (format_from_name): And here.
- * wrstabs.c (stab_write_symbol): Here too.
- (write_stabs_in_sections_debugging_info): And here.
- (stab_int_type): And here.
- (stab_struct_field): And here.
- (stab_typdef): And here.
-
- * rescoff.c (read_coff_rsrc): Use fatal instead of fprintf, exit.
- * srconv.c (main): Same here.
- * strings.c (main): And here.
- (integer_arg): And here.
- * sysdump.c (main): And here.
-
-2000-04-06 Timothy Wall <twall@cygnus.com>
-
- * objdump.c (dump_section_header): Print CLINK and BLOCK flags.
-
-2000-04-06 Jason Merrill <jason@yorick.cygnus.com>
-
- * readelf.c (decode_location_expression): Loop through multiple
- operations.
- (read_and_display_attr): Pass in length.
-
- * readelf.c (read_and_display_attr): Add CU offset to references.
- (display_debug_info): Pass it in.
-
-2000-04-06 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (decode_ARM_machine_flags): New function.
- (get_machine_flags): Call decode_ARM_machine_flags for ARM
- targets.
-
- (get_machine_name): Catch EM_AVR
-
-2000-04-05 Alan Modra <alan@linuxcare.com.au>
-
- * binutils.texi: Remove optional `=' from long options that have
- an `=' in the argument.
- * objcopy.1: Here too. Remove extra space on discard-all.
-
- * binutils.texi (objcopy): Mention --redefine-sym.
- * objcopy.1: Here too.
- * NEWS: And here.
-
- * objcopy.c (parse_flags): Split off flag names from error message
- gettext as they are not translated.
- (copy_main): Similarly split off option name for --add-section,
- --set-section-flags, --change-section-vma, --change-section-lma
- error messages.
- Some white space changes.
-
- from Matthew Benjamin <matt@linuxbox.nu>
- * objcopy.c (struct redefine_node): New.
- (redefine_sym_list): New.
- (redefine_list_append): New.
- (lookup_sym_redefinition): New.
- (OPTION_REDEFINE_SYM): New.
- (copy_options): Add --redefine-sym option.
- (copy_usage): Mention it.
- (filter_symbols): Rename symbols on redefine_sym_list.
- (copy_object): Call filter_symbols if redefine_sym_list != NULL.
- (copy_main): Handle OPTION_REDEFINE_SYM.
-
-2000-04-04 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (process_symbol_table): Correctly read in symbol
- versioning information.
-
-2000-04-04 Alan Modra <alan@linuxcare.com.au>
-
- * po/binutils.pot: Regenerate.
-
- * addr2line.c (usage): Restore translated part of bug string.
- * ar.c (usage): Likewise.
- * nlmconv.c (show_usage): Likewise.
- * nm.c (usage): Likewise.
- * objcopy.c (copy_usage): Likewise.
- (strip_usage): Likewise.
- * objdump.c (usage): Likewise.
- * readelf.c (usage): Likewise.
- * size.c (usage): Likewise.
- * strings.c (usage): Likewise.
- * windres.c (usage): Likewise.
-
- * Makefile.am (MKDEP): Use gcc -MM rather than mkdep.
- (DEP): Quote when passing vars to sub-make. Add warning
- message to end.
- (DEP1): Rewrite for "gcc -MM".
- (CLEANFILES): Add DEP2.
- Update dependencies.
- * Makefile.in: Regenerate.
-
-2000-04-04 H.J. Lu <hjl@gnu.org>
-
- * Makefile.am (GENERATED_HFILES): Add rcparse.h
- (arparse.h): Depend on arparse.c
- (defparse.h, nlmheader.h, rcparse.h, sysinfo.h): Similarly.
-
-2000-04-03 H.J. Lu (hjl@gnu.org)
-
- * size.c (usage): Use REPORT_BUGS_TO.
-
-2000-04-03 Alan Modra <alan@linuxcare.com.au>
-
- * bucomm.h: #include "bin-bugs.h"
- * addr2line.c (usage): Use REPORT_BUGS_TO.
- * ar.c (usage): Likewise.
- * nlmconv.c (show_usage): Likewise.
- * nm.c (usage): Likewise.
- (OPTION_TARGET): Define.
- (long_options): Use OPTION_TARGET rather than 200.
- (main): Likewise.
-
- * objcopy.c (copy_usage): Use REPORT_BUGS_TO.
- (strip_usage): Likewise.
- * objdump.c (usage): Likewise.
- * readelf.c (usage): Likewise.
- * strings.c (usage): Likewise.
- * windres.c (usage): Likewise.
-
-2000-03-31 John David Anglin <dave@hiauly1.hia.nrc.ca>
-
- * readelf.c: Include sys/types.h before sys/stat.h for ultrix.
-
-2000-03-27 Nick Clifton <nickc@cygnus.com>
-
- * rddbg.c (read_section_stabs_debugging_info): Catch out of range
- string offsets in corrupt stabs entries.
-
-2000-03-27 Alan Modra <alan@linuxcare.com.au>
-
- * readelf.c: Include elf/avr.h
- (dump_relocations): Add EM_AVR case.
-
-2000-03-09 Tim Waugh <twaugh@redhat.com>
-
- * strings.1: Correct '-bytes' to '--bytes'.
-
-2000-03-08 H.J. Lu <hjl@gnu.org>
-
- * Makefile.am (install-exec-local): Depend on
- install-binPROGRAMS for parallel make.
- * Makefile.in: Regenerated.
-
-2000-02-27 Ian Lance Taylor <ian@zembu.com>
-
- From Brad Lucier <lucier@math.purdue.edu>:
- * readelf.c (process_dynamic_segment): Add cast to make sure
- argument to %* is int.
-
-2000-02-25 H.J. Lu <hjl@gnu.org>
-
- * configure.in (AC_SEARCH_LIBS): Pass m, not -lm.
-
-2000-02-24 Nick Clifton <nickc@cygnus.com>
-
- * configure.in: Add arm-wince, mips-pe and sh-pe targets.
- * configure: Regenerate.
-
- * dlltool.c: Add support for sh-pe and mips-pe targets.
- * rescoff.c: Add support for sh-pe and mips-pe targets.
-
-2000-02-23 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (get_osabi_name): Handle ELFOSABI_LINUX.
-
-2000-02-22 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (process_symbol_table): Remove use of ELF_ST_OTHER.
-
-2000-02-22 Ian Lance Taylor <ian@zembu.com>
-
- From Brad Lucier <lucier@math.purdue.edu>:
- * readelf.c (process_version_sections): Add casts to make sure
- argument to %* is an int.
- (process_mips_specific): Add casts to make printf arguments match
- format.
-
-2000-02-21 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * objdump.c (dump_section_header): Change `opb' to unsigned.
- (find_symbol_for_address): Same here.
- (disassemble_data): And here. Change `addr_offset',
- `stop_offset', `nextstop_offset' to unsigned long.
- (dump_data): Change opb to unsigned.
-
-2000-02-18 Frank Ch. Eigler <fche@redhat.com>
-
- * resrc.c: Remove unmatched #if for cygwin.
-
-2000-02-14 Fernando Nasser <fnasser@totem.to.cygnus.com>
-
- * binutils.texi: Document the change of flavor name from atpcs-special
- to special-atpcs to prevent name conflict in gdb.
-
-2000-02-08 Timothy Wall <twall@redhat.com>
-
- * objdump.c (show_line): Fix bug preventing printing of the very
- first line (line zero) of a file when interlisting source and
- assembly. Added option to print entire context from start of file
- when the first line from that file is encountered.
-
-2000-02-03 Timothy Wall <twall@redhat.com>
-
- * objdump.c (dump_section_header, find_symbol_for_address,
- show_line, disassemble_bytes, disassemble_data, dump_data):
- distinguish between octets and bytes.
-
-2000-01-27 Thomas de Lellis <tdel@windriver.com>
-
- * nm.c (print_symbol_info_bsd): Use bfd_is_undefined_symclass to
- check to unresolved symbols.
- (print_symbol_info_sysv): Ditto.
- (print_symbol_info_posix): Ditto.
-
- * binutils.texi: Document new 'V' symclass flag for nm.
-
-2000-01-27 Nick Clifton <nickc@redhat.com>
-
- * binutils.texi (objdump): Document new ARM specific
- disassembler options.
-
- * objdump.c (usage): Call disassembler_usage().
-
-2000-01-27 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * readelf.c (get_dynamic_flags): Return buff.
- (process_dynamic_segment): Don't pass error strings to printf
- as format arg.
- (read_and_display_attr): Use lx and ld to print longs.
- (process_corefile_note_segment): Cast bfd_vma to unsigned long
- before printing.
- Update copyright.
-
-2000-01-17 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (get_osabi_name): Recognise ELFOSABI_ARM.
-
-2000-01-15 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * debug.c (debug_name_type): Return DEBUG_TYPE_NULL rather than
- false.
- (debug_tag_type): Here too.
- * ieee.c (ieee_builtin_type): And here.
- * stabs.c (parse_stab_type, parse_stab_array_type): And here.
-
-2000-01-13 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (get_machine_name): Change EM_S370 to return "IBM
- System/370".
-
-2000-01-11 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (get_dynamic_type): Remove DT_ENCODING.
-
-2000-01-10 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (get_note_type): Display NT_WIN32PSTATUS notes.
-
-2000-01-07 Mumit Khan <khan@xraylith.wisc.edu>
-
- * windres.c (long_options): Add --use-temp-file and
- --no-use-temp-file options.
- (usage): Document.
- (main): Handle.
-
- * windres.h: Update read_rc_file prototype.
-
- * resrc.c (cpp_temp_file): New static variable.
- (istream_type): New static variable.
- (close_pipe): Delete function.
- (run_cmd): New static function.
- (open_input_stream): New static function.
- (close_input_stream): New static function.
- (look_for_default): Handle DOS directory separator. Use
- open_input_stream instead of popen.
- (read_rc_file): Likewise.
-
- * binutils.texi: Document --use-temp-file, --no-use-temp-file
- options.
-
-2000-01-04 Mumit Khan <khan@xraylith.wisc.edu>
-
- * dlltool.c (create_compat_implib): New variable.
- (gen_exp_file): Use.
- (make_one_lib_file): Use.
- (long_options): Add --compat-implib option.
- (usage): Handle.
- (main): Handle.
-
- * dllwrap.c (enum target_type): Rename MINGW32_TARGET to MINGW_TARGET.
- (main): Use. Don't look for "32" in cygwin and mingw target names.
-
-2000-01-03 Nick Clifton <nickc@cygnus.com>
-
- * binutils.texi: Document new, ARM specific disassembler
- command line switch "-M force-thumb".
-
-For older changes see ChangeLog-9899
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/binutils-2.17/binutils/ChangeLog-0203 b/binutils-2.17/binutils/ChangeLog-0203
deleted file mode 100644
index c6337750..00000000
--- a/binutils-2.17/binutils/ChangeLog-0203
+++ /dev/null
@@ -1,2181 +0,0 @@
-2003-12-31 Daniel Jacobowitz <drow@mvista.com>
-
- * MAINTAINERS: Rename CONFIGURE to BUILD SYSTEM and add myself.
-
-2003-12-29 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (debug_line_pointer_size): Replace with an array
- called 'debug_line_pointer_sizes'.
- (num_debug_line_pointer_sizes): New variable.
- (display_debug_lines): Extract pointer size from the
- debug_line_pointer_sizes array.
- (display_debug_loc): Likewise.
- (prescan_debug_info): Fill in the debug_line_pointer_sizes
- array.
-
-2003-12-23 Ralf Baechle <ralf@gnu.org>
- Maciej W. Rozycki <macro@ds2.pg.gda.pl>
-
- * objcopy.c (bfd_flags_to_set, bfd_flags_to_clear): New variables
- to handle flags for tweaking.
- (copy_options): New options: impure, pure, readonly-text,
- writable-text.
- (copy_usage, copy_object, command_line_switch): Handle the new
- options.
- * doc/binutils.texi: Document the new options.
-
-2003-12-22 Jakub Jelinek <jakub@redhat.com>
-
- * objdump.c (disassemble_bytes): Subtract rel_offset from printed
- reloc address.
- (disassemble_section): Set rel_offset to section->vma instead of
- pinfo->buffer_vma.
-
-2003-12-19 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
-
- * readelf.c (guess_is_rela): Changed m32r's default type to RELA.
-
-2003-12-11 Nick Clifton <nickc@redhat.com>
-
- * objcopy.c (strip_usage): Add --only-keep-debug.
- (copy_usage): Likewise.
-
-2003-12-04 Nick Clifton <nickc@redhat.com>
-
- * objcopy.c (copy_object): Do not copy the object if the
- output file's format cannot be set to that of the input file.
- If the input file's format is unknown, fail.
-
-2003-11-28 Ian Lance Taylor <ian@wasabisystems.com>
-
- * cxxfilt.c (usage): Mention new -p/--no-params options.
-
-2003-11-28 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am (install-exec-local): Remove common term from string
- comparison.
- * Makefile.in: Regenerate.
- * doc/Makefile.am: Don't use $<.
- * doc/Makefile.in: Regenerate.
-
-2003-11-27 Nick Clifton <nickc@redhat.com>
-
- * rename.c (smart_rename): Make sure that we have write
- permission on the destination file before renaming.
-
-2003-11-26 Daniel Jacobowitz <drow@mvista.com>
- Nick Clifton <nickc@redhat.com>
-
- * readelf.c: Add a comment describing the difference between
- readelf and objdump.
- * doc/binutils.texi (readelf): Likewise.
-
-2003-11-25 Danny Smith <dannysmith@users.sourceforge.net>
-
- * doc/binutils.texi (dlltool): Document dlltool --temp-prefix
- option.
- * dlltool.c (usage): Likewise.
-
-2003-11-22 Ian Lance Taylor <ian@wasabisystems.com>
-
- * cxxfilt.c (long_options): Add --no-params.
- (main): Handle -p/--no-params.
- * doc/binutils.texi (c++filt): Document -p/--no-params.
-
-2003-11-19 Alan Modra <amodra@bigpond.net.au>
-
- * objdump.c: Wrap long lines, init vars separately from decl.
- (disassemble_section): Reset require_sec after call to
- find_symbol_for_address.
-
-2003-11-14 Nick Clifton <nickc@redhat.com>
-
- * objdump.c (find_symbol_for_address): Change parameters so
- that the entire disassemble_info structure is passed, not just
- a few fields. Use the symbol_is_valid field to check the
- validity of located symbols and continue searching if they are
- not valid.
- (objdump_print_addr): Alter parameters passed to
- find_symbol_for_address.
- (objdump_symbol_at_address): Likewise.
- (disassemble_section): Likewise. Also use symbol_is_valid
- function to check the validity of located symbols.
-
-2003-11-13 Tobias Burnus <tobias.burnus@physik.fu-berlin.de>
-
- * ar.c (open_inarch): Emit a warning when an archive is created
- (only shown with -v) in order to confrom to POSIX specification.
-
-2003-11-11 Wang Li <charles@linux.net.cn>
-
- * objcopy.c (wildcard): New variable. True if wildcard pattern
- matching is allowed in symbol names.
- (strip_options): Add -w option to enable wildcard pattern
- matching.
- (copy_options): Likewise.
- (copy_usage): Mention new switch.
- (strip_usage): Likewise.
- (is_specified_symbol): If performing wildcard matches use fnmatch
- to compare symbol names with entries on the symbol list.
- (strip_main): Accept -w switch.
- (copy_main): Likewise.
- * Makefile.am: Add dependency on fnmatch.h for objcopy.c
- * Makefile.in: Regenerate.
- * doc/binutils.texi: Document new switch.
- * NEWS: Mention new switch.
-
-2003-11-11 Alan Modra <amodra@bigpond.net.au>
-
- * objdump.c: Revert rev 1.81 commit.
-
-2003-11-10 Tobias Burnus <tobias.burnus@physik.fu-berlin.de>
-
- * ar.c (print_contents): Remove "member" from verbose output in
- order to conform to POSIX specification.
-
-2003-11-10 Alan Modra <amodra@bigpond.net.au>
-
- * README: Expand bug reporting information.
-
-2003-11-07 Jonathan R. Grant <jg-binutils@jguk.org>
-
- * bucomm,c (get_file_size): New function. Returns the size of a
- file.
- * bucomm.h: Add prototype for get_file_size.
- * addr2line.c (process_file): Use new function.
- * ar.c (main, ranlib_only, ranlib_touch): Likewise.
- * nm.c (display_file): Likewise.
- * objcopy.c (add_specific_symbols, copy_file, strip_main,
- copy_main): Likewise.
- * objdump.c (display_file): Likewise.
- * size.c (display_file): Likewise.
- * strings.c (strings_file): Likewise.
- * readelf.c (process_file): Use similar code to get_file_size.
-
-2003-11-06 Bruno Rohee <bruno@rohee.com>
-
- * ieee.c: Fix "the the" typo.
- * stabs.c: Likewise.
-
-2003-10-30 Marshall T. Vandegrift <llasram@wuli.nu>
-
- * readelf.c (dump_section): Do not dump the contents of SHT_NOBITS
- sections - they have no file space assigned to their contents.
-
-2003-10-28 Segher Boessenkool <segher@kernel.crashing.org>
-
- * readelf.c (dump_section): Don't display DEL characters.
-
-2003-10-27 Kazu Hirata <kazu@cs.umass.edu>
-
- * ChangeLog: Fix typos.
- * ChangeLog-9197: Likewise.
- * ChangeLog-9899: Likewise.
- * NEWS: Likewise.
- * ar.c: Fix comment typos.
- * arsup.c: Likewise.
- * coffgrok.c: Likewise.
- * debug.c: Likewise.
- * debug.h: Likewise.
- * dlltool.c: Likewise.
- * ieee.c: Likewise.
- * nm.c: Likewise.
- * objdump.c: Likewise.
- * prdbg.c: Likewise.
- * readelf.c: Likewise.
- * resrc.c: Likewise.
- * sysinfo.y: Likewise.
- * windres.c: Likewise.
-
-2003-10-27 Nick Clifton <nickc@redhat.com>
-
- * objcopy.c (copy_section): Do not complain when a target does not
- support relocations.
- (mark_symbols_used_in_relocations): Likewise.
-
-2003-10-14 Anil Paranjpe <anilp1@KPITCummins.com>
-
- * objcopy.c (copy_main): Reads machine flags from arch_info
- structure.
-
-2003-10-20 Andrew Cagney <cagney@redhat.com>
-
- * coffgrok.h (coff_section): Replace 'struct sec" with "struct
- bfd_section".
-
-2003-10-07 Nathan Sidwell <nathan@codesourcery.com>
-
- * objdump.c (read_section_stabs): Just read one section, return
- pointer to it. Add size parameter.
- (print_section_stabs): Add string offset parameter. Adjust.
- (struct stab_section_names): Add string offset member.
- (find_stabs_sections): Correct check for split section suffix,
- adjust read_section_stabs and print_section_stabs calls.
- (dump_stabs_section): Clear string_offset, free string table.
-
-2003-10-01 Martin Fuchs <martin-fuchs@gmx.net>
-
- * resrc.c (define_icon): Fix storage of color attributes 'planes' and
- 'bit count' in icon groups.
-
-2003-09-30 Chris Demetriou <cgd@broadcom.com>
-
- * NEWS: Add an indication of the cutoff for 2.14.
-
-2003-09-30 Chris Demetriou <cgd@broadcom.com>
-
- * readelf.c (get_machine_flags): Handle E_MIPS_ARCH_64R2.
-
-2003-09-29 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (dump_relocations): Support SHN_IA_64_ANSI_COMMON.
- (get_symbol_index_type): Likewise.
-
-2003-09-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (process_version_sections): Indent version names.
-
-2003-09-15 Anthony Green <green@redhat.com>
-
- * dlltool.c (prefix_encode): Fix ISO C90 conversion.
- (dlltmp): Ditto.
- (dtab): Ditto.
-
-2003-09-14 Andreas Jaeger <aj@suse.de>
-
- * addr2line.c: Convert to ISO C90 prototypes, change PTR, remove
- unneeded (void *) casts.
- * ar.c: Likewise.
- * arlex.l: Likewise.
- * arparse.y: Likewise.
- * arsup.c: Likewise.
- * binemul.c: Likewise.
- * binemul.h: Likewise.
- * bucomm.c: Likewise.
- * bucomm.h: Likewise.
- * budbg.h: Likewise.
- * budemang.c: Likewise.
- * budemang.h: Likewise.
- * coffdump.c: Likewise.
- * coffgrok.c: Likewise.
- * cxxfilt.c: Likewise.
- * debug.c: Likewise.
- * debug.h: Likewise.
- * deflex.l: Likewise.
- * dlltool.c: Likewise.
- * dlltool.h: Likewise.
- * dllwrap.c: Likewise.
- * emul_aix.c: Likewise.
- * filemode.c: Likewise.
- * ieee.c: Likewise.
- * nlmconv.c: Likewise.
- * nlmconv.h: Likewise.
- * nlmheader.y: Likewise.
- * nm.c: Likewise.
- * prdbg.c: Likewise.
- * rclex.l: Likewise.
- * rcparse.y: Likewise.
- * rdcoff.c: Likewise.
- * rddbg.c: Likewise.
- * rename.c: Likewise.
- * resbin.c: Likewise.
- * rescoff.c: Likewise.
- * resrc.c: Likewise.
- * size.c: Likewise.
- * srconv.c: Likewise.
- * stabs.c: Likewise.
- * strings.c: Likewise.
- * sysdump.c: Likewise.
- * sysinfo.y: Likewise.
- * syslex.l: Likewise.
- * unwind-ia64.c: Likewise.
- * unwind-ia64.h: Likewise.
- * version.c: Likewise.
- * windres.c: Likewise.
- * windres.h: Likewise.
- * winduni.c: Likewise.
- * wrstabs.c: Likewise.
-
-2003-09-10 James E Wilson <wilson@specifixinc.com>
-
- * MAINTAINERS: Update my e-mail address.
-
-2003-09-09 Ian Lance Taylor <ian@wasabisystems.com>
-
- * MAINTAINERS: Update my e-mail address.
-
-2003-09-04 Nick Clifton <nickc@redhat.com>
-
- * MAINTAINERS: Make it clear what should be done with patches to
- the top level configure files (other than config.guess and
- config.sub). Add binutils@sources.redhat.com as an address to
- which patches can be sent.
-
-2003-09-04 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (get_machine_flags): Recognise V850E1 machine type.
-
-2003-09-03 Andrew Cagney <cagney@redhat.com>
-
- * objdump.c: Refer to init_disassemble_info in comments.
- (disassemble_data): Replace INIT_DISASSEMBLE_INFO with
- init_disassemble_info.
-
-2003-09-03 Nick Clifton <nickc@redhat.com>
-
- * objdump.c (struct objdump_disasm_info): Add new fields
- 'dynrelbuf', 'dynrelcount' and 'disassemble_fn'.
- (process_section_p): New function: Returns TRUE if a section
- can be dumped.
- (disassemble_section): New function: Contains the body of
- disassemble_data(), but just for one section.
- (disassemble_data): Use bfd_map_over_sections to walk section
- chain.
- (find_stabs_section): New function: Find a stabs containing
- section and then dump it.
- (dump_stabs_section): New function: Use bfd_map_over_sections
- to find the section to dump.
- (dump_stabs): Use dump_stabs_section.
- (dump_section): New function: Display the contents of a
- section.
- (dump_data): Use bfd_map_over_sections to display section
- contents.
- (dump_relocs_in_section): Display the relocs in a given section.
- (dump_relocs): Use bfd_map_over_sections to display relocs.
- (adjust_addresses): New function: Adjust the vma and lma of
- sections.
- (dump_bfd): Use bfd_map_over_sections.
- * doc/binutils.texi: Document the "objdump -s" (no longer)
- dumps empty sections.
-
-2003-08-24 Jonathan R. Grant <jg-binutils@jguk.org>
-
- * objdump.c: Improve comments/documentation.
- dump_data: Eliminate duplicate function calls to bfd_section_size.
-
-2003-09-02 Alan Modra <amodra@bigpond.net.au>
-
- * MAINTAINERS: Move Dave Anglin's entry to where it belongs.
-
-2003-08-21 Nick Clifton <nickc@redhat.com>
-
- * po/tr.po: Updated Turkish translation.
-
-2003-08-14 Alan Modra <amodra@bigpond.net.au>
-
- * dep-in.sed: Remove libintl.h.
- * Makefile.am (POTFILES.in): Unset LC_COLLATE.
- Run "make dep-am".
- * Makefile.in: Regenerate.
-
-2003-08-11 Ian Lance Taylor <ian@airs.com>
-
- * readelf.c (process_archive): Fix error handling. Remove memory
- leak.
-
- * readelf.c: Add ability to read archives.
- (archive_file_offset): New variable.
- (archive_file_size): New variable.
- (get_data): Include archive_file_offset in file offset
- calculation when fseeking.
- (process_program_headers): Likewise.
- (process_symbol_table): Likewise.
- (process_dynamic_segment): Handle computation of end of file
- position when the file is in an archive.
- (process_object): New function. Contains the body of
- process_file().
- (process_archive): New function. Call process_object on each
- member of an archive.
- (process_file): Detect archives and handle appropriately.
- * Makefile.am: Add dependency on aout/ar.h for readelf.c
- * Makefile.in: Regenerate.
- * NEWS: Document readelf's new ability.
- * doc/binutils: Alter text to say that readelf supports archives
- and 64-bit ELF files.
-
-2003-08-08 Nick Clifton <nickc@redhat.com>
-
- * po/fr.po: Updated French translation.
-
-2003-08-05 Alan Modra <amodra@bigpond.net.au>
-
- * objcopy.c: Remove unnecessary prototypes and casts.
- * objdump.c: Remove unnecessary casts.
- * readelf.c: Convert to C90. Remove unnecessary prototypes and casts.
- (get_osabi_name): Move so we don't need a forward declaration.
-
-2003-08-04 Bradley Harrington <bharring@us.ibm.com>
- Alan Modra <amodra@bigpond.net.au>
-
- * objdump.c (include_paths, include_path_count): New vars.
- (usage): Describe --include.
- (long_options): Add "include".
- (add_include_path): New function.
- (struct print_file_list): Make filename const. Add modname.
- (try_print_file_open, update_source_path): New functions.
- (show_line): Use them.
- (main): Handle 'I' option. Don't check for NULL xrealloc arg.
-
-2003-07-30 Alan Modra <amodra@bigpond.net.au>
-
- * objdump.c: Remove unnecessary prototypes.
- (disassemble_bytes): Add rel_offset parameter. Simplify reloc skipping
- code, and print relocs when dump_dynamic_reloc_info.
- (disassemble_data): Read and handle dynamic relocs. Correct reloc
- skip code. Formatting.
- (dump_bfd): Don't dump dynamic relocs when disassembling.
-
-2003-07-29 Ben Elliston <bje@wasabisystems.com>
-
- * MAINTAINERS: Remove self as M88k maintainer. Future M88k
- maintenance defaults to the blanket write privilege maintainers.
-
-2003-07-29 Michael Meissner <gnu@the-meissners.org>
-
- * MAINTAINERS: Updated my email address.
-
-2003-07-29 Nick Clifton <nickc@redhat.com>
-
- * objdump.c: Update to ISO C.
-
-2003-07-24 Nick Clifton <nickc@redhat.com>
-
- * objdump.c (disassemble_data): Do not ignore sections without the
- LOAD flag when disassemble_all is true. Only print a message
- about disassembling a section if it contains some data.
-
- * po/fr.po: Updated French translation.
-
-2003-07-23 Nick Clifton <nickc@redhat.com>
-
- * objcopy.c: Switch to ISO C. Remove debugging code accidentally
- left in. Some formatting tidy ups.
-
-2003-07-22 Salvador Eduardo Tropea <set@computer.org>
-
- * objdump.c: New command line option --debugging-tags.
- * doc/binutils.texi: Document new command line option.
- * prdbg.c: Code to print the debug info as tags compatible
- with ctags.
- * budbg.h: Adjust prototype.
- * NEWS: Mention new switch
-
-2003-07-18 Nick Clifton <nickc@redhat.com>
-
- * objdump.c (main) :Accept multiple -M switch.
- * doc/binutils.texi: Document that multiple -M switches are
- accepted and that a single -M switch can contain comma
- separated options.
-
-2003-07-17 Nick Clifton <nickc@redhat.com>
-
- * objdump.c (main): Issue a warning message if multiple -M
- switches are used.
-
- * doc/binutils.texi (objdump): Update documentation about -M
- option.
-
-2003-07-17 Nick Clifton <nickc@redhat.com>
-
- * po/es.po: New Spanish translation.
-
-2003-07-11 Alan Modra <amodra@bigpond.net.au>
-
- * po/binutils.pot: Regenerate.
-
-2003-07-05 Christopher Faylor <cgf@redhat.com>
-
- * dlltool.c (prefix_encode): Use a fixed length for alpha.
-
-2003-07-04 Christopher Faylor <cgf@redhat.com>
-
- * dlltool.c (prefix_encode): New function. Encode temp file prefix
- from pid.
- (dlltmp): Pass address of pointer being alloced or suffer neverending
- mallocs.
- (make_one_lib_file): Allocate enough space for new longer stub names.
- (gen_lib_file): Ditto.
- (main): Generate the temp file prefix from the pid if prefix was not
- specified on the command line.
-
-2003-07-04 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (get_data): Print (unsigned) hex values for size and
- offset in error messages.
- (process_section_headers): If the string table could not be
- allocated, do not continue.
-
-2003-07-01 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (dynamic_segment_ia64_val): Print address and newline
- for sections by default. Comment fix.
-
-2003-06-28 Danny Smith <dannysmith@users.sourceforge.net>
-
- * rcparse.y (res_text_field): New res_id variable.
- (res_null_text): New static const struct res_id object,
- with empty unicode name field.
- (control): Pop parsing of optresidc up one level. Set
- res_text_field to $2 except for controls which do not accept
- a text field. Set res_text_field to res_null_text for the
- special cases (viz. COMBOBOX, EDITTEXT, LISTBOX, SCROLLBAR).
- (control_params): Adjust to use res_text_field rather
- than optresidc.
- (COMBOBOX): Add comment about discrepency between documented
- vs. observed default style.
- * resrc.c (define_control): Make first param const.
- * windres.h (define_control): Adjust prototype.
-
-2003-06-27 Nick Clifton <nickc@redhat.com>
-
- * objcopy.c (copy_object): Replace call to
- bfd_create_gnu_debuglink_section with separate calls to
- bfd_add_gnu_debuglink_section and
- bfd_fill_in_gnu_debuglink_section, separated by a walk over the
- symbol tables.
-
-2003-06-26 Roland McGrath <roland@redhat.com>
-
- * readelf.c (loadaddr): Variable removed.
- (dynamic_info, version_info): Fix type long -> bfd_vma.
- (program_headers): New variable.
- (get_program_headers): New function, broken out of
- process_program_headers.
- (process_program_headers): Call it. Don't set `loadaddr'.
- (slurp_ia64_unwind_table): Use get_program_headers.
- (process_corefile_note_segments): Likewise.
- (offset_from_vma): New function.
- (process_relocs, process_dynamic_segment): Call that instead of
- subtracting `loadaddr'.
- (process_version_sections, process_symbol_table): Likewise.
- (process_mips_specific): Likewise.
-
-2003-06-26 Nick Clifton <nickc@redhat.com>
-
- * objcopy (enum strip_action): Add STRIP_NONDEBUG.
- (OPTION_ONLY_KEEP_DEBUG): New.
- (strip_options): Add --only-keep-debug.
- (copy_options): Likewise.
- (is_strip_section): Invert return value if STRIP_NONDEBUG is
- active.
- (copy_object): Do not copy private data when STRIP_NONDEBUG is
- active.
- (setup_section): Likewise.
- (strip_main): Handle --only-keep-debug.
- (copy_main): Likewise.
- * NEWS: Mention new switch
- * doc/binutils.texi: Document new switch.
-
-2003-06-25 Alan Modra <amodra@bigpond.net.au>
-
- * NEWS: Correct spelling of "relocatable".
- * objdump.c: Likewise.
- * sysroff.info: Likewise.
-
-2003-06-19 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (print_vma): When printing DEC_5 values, if the
- number is bigger than 99999 switch to using hexadecimal
- notation.
-
-2003-06-11 Nick Clifton <nickc@redhat.com>
-
- * objcopy.c (gnu_debuglink_filename): New variable.
- (OPTION_ADD_GNU_DEBUGLINK): New switch
- (copy_options): Describe --add-gnu-debuglink switch.
- Mention that --strip-debug removes sections as well.
- (is_strip_section): Process the sections removed and kept
- lists before checking for debugging sections.
- (add_redefine_syms_file): Make function static.
- (copy_object): Use is_strip_section.
- Check to see if a .gnu_debuglink section should be added. If
- so, call bfd_add_gnu_debuglink.
- (setup_section): Use is_strip_section.
- (copy_section): Use is_strip_section.
- (copy_main): Handle OPTION_ADD_GNU_DEBUGLINK.
- * NEWS: Mention new objcopy switch.
- * doc/binutils.texi: Document new switch.
-
-2003-06-11 H.J. Lu <hongjiu.lu@intel.com>
-
- * po/Make-in (DESTDIR): New.
- (install-data-yes): Support $(DESTDIR).
- (uninstall): Likewise.
-
-2003-06-11 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.in: Regenerate.
-
-2003-05-23 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (get_segment_type): Handle PT_GNU_STACK.
-
-2003-06-03 Elias Athanasopoulos <elathan@phys.uoa.gr>
-
- * NEWS: Document the new BSD/POSIX single-character mapping for
- .comment/.note sections.
-
-2003-06-02 Chris Demetriou <cgd@broadcom.com>
- Jason Thorpe <thorpej@wasabisystems.com>
-
- * objcopy.c (redefine_list_append): Add an argument that
- indicates the context from which this function is being
- called. Change all callers.
- (copy_options): Add a new option, --redefine-syms.
- (copy_usage): Document new option.
- (copy_main): Handle the --redefine-syms option.
- * doc/binutils.text (objcopy): Document new option.
-
-2003-05-31 Richard Henderson <rth@redhat.com>
-
- * readelf.c (byte_get_signed): New.
- (get_encoded_value): New.
- (display_debug_frames): Use it. Always pre-process opcodes.
-
-2003-05-20 Michal Ludvig <mludvig@suse.cz>
-
- * readelf.c (display_debug_frames): Print both registers
- for DW_CFA_register.
-
-2003-05-16 Kelley Cook <kelleycook@wideopenwest.com>
-
- * configure.in: Accept i[3-7]86 variants. Escape '[]' for
- i[3-7]86-*-interix.
- * configure.in: Regenerate.
-
-2003-05-13 Michael Eager <eager@mvista.com>
-
- * objcopy.c: Treat identical src/dst file names as if only one
- entered. One Windows creating an output file of the same name as
- the input file will delete the input file before it is read.
-
-2003-05-12 Salvador Eduardo Tropea <salvador@inti.gov.ar>
-
- * debug.c (debug_get_real_type): Extend test for circular debug
- references.
-
-2003-05-12 Nick Clifton <nickc@redhat.com>
-
- * configure.in (ALL_LINGUAS): Add zh_CN.
- * configure: Regenerate.
- * po/zh_CN.po: New file: Chinese (simplified) translation.
-
-2003-05-11 Jason Eckhardt <jle@rice.edu>
-
- * MAINTAINERS: Update my mail address.
-
-2003-05-07 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (dump_relocations): Enlarge the type field in wide
- mode by one character.
-
-2003-05-03 Richard Henderson <rth@redhat.com>
-
- * readelf.c (struct Frame_Chunk): Add cfa_exp.
- (frame_display_row): Just print "exp" for cfa or register
- defined by a location expression.
- (display_debug_frames): Handle DW_CFA_def_cfa_expression,
- DW_CFA_expression, DW_CFA_MIPS_advance_loc8.
-
-2003-04-30 H.J. Lu <hjl@gnu.org>
-
- * objdump.c (only): Change it to char **.
- (only_size): New.
- (only_used): New.
- (disassemble_data): Check only as an array.
- (dump_data): Likewise.
- (dump_relocs): Likewise.
- (main): Treat only as an array.
-
-2003-04-24 Dimitrie O. Paun <dpaun@rogers.com>
-
- * doc/binutils.texi: Fix the documentation for the -fo option.
-
-2003-04-23 J"orn Rennecke <joern.rennecke@superh.com>
-
- * readelf.c (get_machine_name) <EM_SH>: Amend return value
- to refer to SuperH.
-
- * readelf.c (decode_location_expression): Don't add a trailing ';'.
-
-2003-04-23 Dimitrie O. Paun <dpaun@rogers.com>
- Nick Clifton <nickc@redhat.com>
-
- * windres.c (long_options): Move close to main, where it is used.
- Add 'input' and 'output' long options.
- (main): Accept "-fo" as an alias for "-o". This is for rc
- comptibility.
- * doc/binutils.texi: Mention that -fo is accepted as an alias for
- -o, but discourage its use.
-
-2003-04-22 Dimitrie O. Paun <dpaun@rogers.com>
-
- * windres.c (format_from_name): Make the exit on error
- behaviour optional.
- (main): Rename the -I option to -J. Introduce -I as a synonym
- for --include-dir. For backwards compatibility also support the
- old -I behaviour, but issue a deprecation warning.
- * doc/binutils.texi: Rename -I to -J. Document the new behaviour
- of the -I option.
-
-2003-04-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
-
- * readelf.c: Replace references to Mitsubishi M32R with
- references to Renesas M32R.
-
-2003-04-15 Rohit Kumar Srivastava <rohits@kpitcummins.com>
-
- * readelf.c: Replace occurrances of 'Hitachi' with 'Renesas'.
-
-2003-04-09 Alexandre Oliva <aoliva@redhat.com>
-
- * doc/binutils.texi (objdump) [--debugging]: Suggest readelf -w
- for debugging information types not supported by objdump.
-
-2003-04-09 Bernd Jendrissek <berndj@prism.co.za>
-
- * configure.in: Recognize canonical form of i[3-6]86-pe*.
- * configure: Regenerate.
-
-2003-04-09 Alexandre Oliva <aoliva@redhat.com>
-
- * readelf.c (display_debug_info): Apply RELA relocations on the
- entire section.
- (byte_put_little_endian, byte_put_big_endian): New functions.
- (byte_put): New variable.
- (get_file_header): Initialize it.
-
-2003-04-05 Dimitrie O. Paun <dpaun@rogers.com>
-
- * windres.c: Add -l for compatibility with wrc, and rc.
- Use the short option as a key for long options that have
- a synonymous short option.
- * doc/binutils.texi: Added -l to the list of options.
-
-2003-04-03 Dimitrie O. Paun <dpaun@rogers.com>
-
- * windres.c: Add -U for compatibility with wrc, rc, and cpp.
- (main): Just pass the -U option down to the preprocessor.
- * doc/binutils.texi: Added -U to the list of options.
-
-2003-04-01 Dimitrie O. Paun <dpaun@rogers.com>
-
- * windres.c (usage): Report -r option.
- (main): Ignore the -r option.
- * doc/binutils.texi: Add -r to the list of options.
-
-2003-04-01 Bob Wilson <bob.wilson@acm.org>
-
- * MAINTAINERS: Add myself as Xtensa maintainer.
-
-2003-04-01 Bob Wilson <bob.wilson@acm.org>
-
- * readelf.c: Include "elf/xtensa.h".
- (guess_is_rela): Add EM_XTENSA and EM_XTENSA_OLD to list of
- targets that use RELA relocations.
- (dump_relocations): Call elf_xtensa_reloc_type for
- EM_XTENSA and EM_XTENSA_OLD.
- (get_machine_name): Handle EM_XTENSA and EM_XTENSA_OLD.
-
-2003-04-01 Nick Clifton <nickc@redhat.com>
-
- * configure.in: Change "arm-pe*" to "arm-*-pe*". Similarly for
- thumb-pe*, mcore-pe and mcore-*elf.
- * configure: Regenerate.
-
-2003-03-31 Alexandre Oliva <aoliva@redhat.com>
-
- * objdump.c (dump_data): Don't truncate the address to long; make
- the width large enough, and uniform for all entries in a section.
-
-2003-03-31 H.J. Lu <hjl@gnu.org>
-
- * readelf.c: Include "libiberty.h".
- (dynamic_relocations): New.
- (process_relocs): Properly handle dynamic relocation.
- (process_dynamic_segment): Fill relocation elements in
- dynamic_info.
-
-2003-03-31 Kevin Buettner <kevinb@redhat.com>
-
- * readelf.c (read_and_display_attr, read_and_display_attr_value):
- Add new arguments ``offset_size'' and ``dwarf_version''. Adjust
- all callers.
- (display_debug_lines, display_debug_pubnames, display_debug_info)
- (display_debug_aranges, display_debug_frames, read_and_display_attr)
- (read_and_display_attr_value): Add 64-bit DWARF support.
-
-2003-03-31 Ian Lance Taylor <ian@airs.com>
-
- * rcparse.y: Replace uses of 'optstringrc' with 'optresid'.
- (optresid): Handle a resource id that can be a string or a number.
- * resrc.c (define_control): Replace 'text' parameter with 'iid' a
- struct res_id.
- (define_icon_control): Pass a struct res_id to define_control.
- * windres.h (define_control): Change prototype.
-
-2003-03-24 Elias Athanasopoulos <elathan@phys.uoa.gr>
-
- * objcopy (OPTION_FORMATS_INFO): Define.
- (strip_options): Add "info"/OPTION_FORMATS_INFO option.
- (copy_options): Likewise.
- (strip_usage): Add "--info" to usage.
- (copy_usage): Likewise.
- (strip_main): Declare formats_info. Iniatilize it to FALSE.
- Handle "info".
- (copy_main). Likewise.
- * doc/binutils.texi. Document the "--info" option for
- objcopy/strip.
- * NEWS: Mention the new command line switch.
-
- * objdump.c (endian_string): Move to bucomm.c.
- (display_info): Likewise.
- (display_target_list): Likewise.
- (display_info_table): Likewise.
- (display_target_tables): Likewise.
- (main): Assign the return value of display_info to exit_status.
- * bucomm.c: Include bfdver.h and libbfd.h
- (display_target_list): Call bfd_nonfatal instead of nonfatal and
- return 0 on a non-fatal error, 1 on success.
- (display_info_table): Likewise.
- * bucomm.h (display_info): Provide a prototype.
- * Makefile.am (bucomm.o): Add dependencies on bfdver.h and
- libbfd.h.
- * Makefile.in: Regenerate.
-
-2003-03-22 Danny Smith <dannysmith@users.sourceforge.net>
-
- * dlltool.c (gen_def_file): Put demangled name comments on
- own line preceding export name.
-
-2003-03-17 Nick Clifton <nickc@redhat.com>
-
- * objdump.c (disassemble_data): Use disasm_info.fprintf_func not
- printf for emitting new lines.
-
-2003-03-16 Elias Athanasopoulos <elathan@phys.uoa.gr>
-
- * nm.c (print_symbol_info_bsd): Print the symbol's size instead of
- the symbol's value when --size-sort is used, unless -S is used.
- doc/binutils.texi (--size-sort): For non-bsd formats both the
- value and size of the symbols are displayed.
-
-2003-03-13 Nick Clifton <nickc@redhat.com>
-
- * po/da.po: Update.
-
-2003-03-12 Nick Clifton <nickc@redhat.com>
-
- * MAINTAINERS: Remove Peter Targett as ARC maintainer.
-
-2003-03-10 Ben Elliston <bje@wasabisystems.com>
-
- * MAINTAINERS: Update my mail address.
-
-2003-03-06 Elias Athanasopoulos <elathan@phys.uoa.gr>
-
- * stabs.c (BYTES_IN_WORD): Remove definition.
- * wrstabs.c (BYTES_IN_WORD): Likewise.
-
-2003-03-04 Nick Clifton <nickc@redhat.com>
-
- * nm.c (main): Print a warning message if --size-sort and
- --undefined-only are used together.
-
-2003-03-04 Elias Athanasopoulos <elathan@phys.uoa.gr>
-
- * nm.c (print_symbol): Remove check for undefined_only.
-
-2003-03-03 Nick Clifton <nickc@redhat.com>
-
- * po/da.po: Installed latest translation.
-
-2003-02-24 Nick Clifton <nickc@redhat.com>
-
- * README: Update binutils references to 2.13.
- Add paragraph about using --disable-nls.
-
-2003-02-24 Elias Athanasopoulos <elathan@phys.uoa.gr>
-
- * doc/binutils.texi (nm --size-sort): Update.
-
-2003-02-21 James E Wilson <wilson@tuliptree.org>
-
- * MAINTAINERS: Update email address.
-
-2003-02-21 Ian Wienand <ianw@gelato.unsw.edu.au>
-
- * readelf.c (get_ia64_dynamic_type): New function.
- (dynamic_segment_ia64_val): New function.
- (get_dynamic_type): If machine type is EM_IA_64 call
- get_ia64_dynamic_val.
- (get_ia64_section_type_name): Handle sections with types in the
- SHT_IA_64_LOPSREG to SHT_IA_64_HIPSREG range.
- (get_dynamic_flags): If machine type is EM_IA_64 call
- dynamic_segment_ia64_val.
-
-2003-02-21 Bob Wilson <bob.wilson@acm.org>
-
- * doc/binutils.texi: Fix typos and obvious texinfo mistakes. Make
- section title capitalization more consistent. Update descriptions
- of various options to be consistent with the code. Fix errors and
- incomplete list in the description of c++filt format options. Remove
- information about the linker. Change to be more polite about poor
- bug reports. Replace FDL appendix with include of fdl.texi.
- * doc/fdl.texi: New file.
-
-2003-02-21 Roger Sayle <roger@eyesopen.com>
-
- * objcopy.c (filter_symbols): Fix compilation problems with
- HP-UX's C compiler.
-
-2003-02-19 Christopher Faylor <cgf@redhat.com>
-
- * rclex.l (handle_quotes): Fix minor formatting problems introduced in
- previous change.
-
-2003-02-19 Mark Blackburn <marklist@fangorn.ca>
-
- * rclex.l (handle_quotes): Handle strings spanning more than one line.
-
-2003-02-12 Bob Wilson <bob.wilson@acm.org>
-
- * nm.c (usage): Add `java' and `gnat' demangle styles and make
- quotes consistent.
- * objdump.c (usage): Ditto. Also fix some typos.
-
- * readelf.c (parse_args): Include 'H' option in call to getopt_long.
-
- * debug.c (debug_record_variable): Handle global register variables.
-
- * stabs.c (parse_stab): For N_SLINE only include
- function_start_offset if the symbol is within a function;
- otherwise, the value is absolute.
-
-2003-02-10 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (decode_ARM_machine_flags): Handle the
- EF_ARM_MAVERICK_FLOAT flag.
-
-2003-02-04 Andreas Schwab <schwab@suse.de>
-
- * rddbg.c (read_section_stabs_debugging_info): Cast ptrdiff_t to
- long and use %ld in printf format.
-
-2003-01-28 Richard Sandiford <rsandifo@redhat.com>
-
- * readelf.c (dump_relocations): Reorder the r_info field for
- little-endian mips elf64. Move #ifdef BFD64 to cover the new code.
-
-2003-01-21 Daniel Berlin <dan@dberlin.org>
-
- * readelf.c (display_debug_loc): Skip address base changes.
-
-2003-01-17 Fabio Alemagna <falemagn@aros.org>
-
- * readelf.c (get_osabi_name): Handle ELFOSABI_AROS, ELFOSABI_OPENVMS
- and ELFOSABI_NSK.
-
-2003-01-16 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c: Include elf/ppc64.h.
- (dump_relocations <EM_PPC64>): Use elf_ppc64_reloc_type.
- * Makefile.am: Run "make dep-am".
- * Makefile.in: Regenerate.
-
-2003-01-02 Ben Elliston <bje@redhat.com>
-
- * readelf.c (guess_is_rela): Handle EM_IQ2000.
- (get_machine_name): Likewise.
- (dump_relocations): Likewise.
- * NEWS: Mention IQ2000 support.
-
-2003-01-02 Richard Sandiford <rsandifo@redhat.com>
-
- * readelf.c (get_machine_flags): Handle E_MIPS_ARCH_32R2.
-
-2002-12-30 Chris Demetriou <cgd@broadcom.com>
-
- * doc/binutils.texi (objdump): Note MIPS HWR (Hardware Register)
- changes in MIPS -M options.
-
-2002-12-30 Dmitry Diky <diwil@mail.ru>
-
- * Makefile.am: Add msp430 target.
- * Makefile.in: Regenerate.
- * readelf.c: Add support for msp430 target.
-
-2002-12-27 Chris Demetriou <cgd@broadcom.com>
-
- * doc/binutils.texi (objdump): Document MIPS -M options.
-
-2002-12-23 Andreas Schwab <schwab@suse.de>
-
- * readelf.c (main): Reset dump request after each file.
-
-2002-12-23 Nick Clifton <nickc@redhat.com>
-
- * nlmconv.c (main): Pass TRUE as third argument to
- bfd_arch_get_compatible.
-
-2002-12-23 Nick Clifton <nickc@redhat.com>
-
- * strings.c (isgraphic): Replace definition with STRING_ISGRAPHIC
- macro. Handle 'S' encoding, accepting 8-bit characters.
- (main): Parse 'S' encoding.
- (get_char): Accept 'S' encoding.
- (print_strings): Use STRING_ISGRAPHIC.
- (usage): Document support of 'S' encoding.
- * doc/binutils.texi: Document support of 'S' encoding/
- * NEWS: Mention new feature.
-
-2002-12-20 Alan Modra <amodra@bigpond.net.au>
-
- * README <building ar>: Don't use libibery's needed_list or
- required_list, instead link libiberty/*.o.
-
-2002-12-19 Kazu Hirata <kazu@cs.umass.edu>
-
- * doc/binutils.texi: Fix typos.
-
-2002-12-14 John David Anglin <dave@hiauly1.hia.nrc.ca>
-
- * doc/binutils.texi: Add missing parenthesis.
-
-2002-12-15 Nick Kelsey <nickk@ubicom.com>
-
- * objcopy.c: Add --prefix-symbols=<prefix> option to rename all
- symbols by adding the given prefix to the begining of the symbol
- name. This is useful to provide name space separation regardless
- of how the object file was created. Added --prefix-sections=
- <prefix> and --prefix-alloc-sections=<prefix> options to rename all
- sections (or all sections with the alloc flag set) by adding the given
- prefix to the begining of the symbol name.
- * NEWS: Mention this new feature.
- * doc/binutils.texi: Document this new feature.
-
-2002-12-13 Alan Modra <amodra@bigpond.net.au>
-
- * dlltool.c (mcore_elf_gen_out_file): Replace all occurrences of
- dyn_string_append with dyn_string_append_cstr.
-
- * emul_aix.c (ar_emul_aix_create): Remove unused function.
-
-2002-12-10 James Cownie <jcownie@etnus.com>
-
- * readelf.h (get_TAG_name, get_AT_name,
- read_and_display_attr_value): Add support for UPC extensions to
- DWARF2 spec.
- * NEWS: Mention this new support.
-
-2002-12-08 Alan Modra <amodra@bigpond.net.au>
-
- * NEWS: Mention that bfd no longer declares a "boolean" type.
-
-2002-12-07 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (process_program_headers): When setting loadaddr, don't
- assume segment size is 4k. Use p_align instead.
- (loadaddr): Change from int to long.
- (dynamic_addr, dynamic_info, version_info): Likewise.
- (process_dynamic_segment <syminsz>): Likewise.
- (process_dynamic_segment): Adjust print format string.
- (rela_addr, rela_size): Delete.
- (process_relocs): Formatting.
-
-2002-12-05 Jim Wilson <wilson@redhat.com>
-
- * configure.in (OBJDUMP_DEFS): Define SKIP_ZEROES as 16 for IA-64.
- * configure: Regenerate.
-
-2002-12-04 Ian Lance Taylor <ian@airs.com>
-
- * MAINTAINERS: Change e-mail address back to airs.com.
-
-2002-12-04 Aldy Hernandez <aldyh@redhat.com>
-
- * MAINTAINERS: Add self.
-
-2002-11-30 Alan Modra <amodra@bigpond.net.au>
-
- * addr2line.c, ar.c, arsup.c, binemul.c, binemul.h, bucomm.c, bucomm.h,
- budbg.h, debug.c, debug.h, dlltool.c, emul_aix.c, ieee.c, nlmconv.c,
- nlmconv.h, nlmheader.y, nm.c, objcopy.c, objdump.c, prdbg.c, rdcoff.c,
- rddbg.c, readelf.c, rename.c, size.c, stabs.c, strings.c,
- unwind-ia64.h, wrstabs.c: Replace boolean with bfd_boolean, true with
- TRUE, false with FALSE. Simplify comparisons of bfd_boolean vars
- with TRUE/FALSE. Formatting.
-
-2002-11-29 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c Replace occurrences of Elf32_Internal_* and
- Elf64_Internal_* with Elf_Internal_*.
- (slurp_rel_relocs): Change Elf_Internal_Rel to Elf_Internal_Rela.
- Zero r_addend fields.
- (dump_relocations): Remove relas variable, change Elf_Internal_Rel to
- Elf_Internal_Rela.
-
-2002-11-23 Nick Clifton <nickc@redhat.com>
-
- * size.c (usage): Fix typo describing switch for hex format.
-
-2002-11-18 Svein E. Seldal <Svein.Seldal@solidas.com>
-
- * testsuite/binutils-all/objcopy.exp: Disable tic4x from test
- * testsuite/binutils-all/objdump.exp: Setup proper values for tic4x
- testcase
-
-2002-11-14 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (process_program_headers): Add comment about return
- value. Ensure that 0 is returned if the headers are not loaded.
- (process_file): If process_section_headers failed to load the
- headers disable any tests that rely upon them. Similarly for
- process_program_headers.
-
-2002-11-12 Nick Clifton <nickc@redhat.com>
-
- * po/da.po: Updated Danish translation.
-
-2002-11-12 Klee Dienes <kdienes@apple.com>
-
- * rddbg.c (read_section_stabs_debugging_info): Also recognize
- LC_SYMTAB.stab/LC_SYMTAB.stabstr as a valid pair of sections.
-
-2002-11-11 Christopher Faylor <cgf@redhat.com>
-
- * MAINTAINERS: Reinstate DJ Delorie as COFF maintainer. Drop COFF from
- cgf maintainership.
-
-2002-11-11 Christopher Faylor <cgf@redhat.com>
-
- * MAINTAINERS: Replace DJ Delorie as PE/COFF maintainer.
-
-2002-11-07 Nick Clifton <nickc@redhat.com>
-
- * configure.in (ALL_LINGUAS): Add 'da'.
- * configure: Regenerate.
- * po/da.po: New Danish translation.
-
- * readelf.c (get_symbol_index_type): Revert part of previous
- patch: Display unknown symbol types in decimal, not hex.
-
-2002-11-07 Danny Smith <dannysmith@users.sourceforge.net>
-
- * dlltool.c (add_excludes): Don't prefix excluded fastcall
- symbols with underscore.
- (xlate): Ignore add_underscore for decorated fastcall symbols.
-
-2002-11-07 Eric Kohl <ekohl@rz-online.de>
-
- * deflex.l: Accept '@' as first character of an ID.
- * dlltool.c (gen_exp_file): Use existing '@' prefix rather than
- ASM_PREFIX for fastcall symbols.
- (scan_drectve_symbols): Handle fastcall symbols when generating
- undecorated aliases for symbols in drectve section.
- (scan_filtered_symbols): Likewise, with export-all.
- (xlate): Likewise, with --kill-at.
- (make_imp_label): New function to handle fastcall symbols
- correctly.
- (make_one_lib_file): Use make_imp_label instead of make_label
- for imp symbols.
-
-2002-11-06 Svein E. Seldal <Svein.Seldal@solidas.com>
-
- * MAINTAINERS: Add self as TIC4X maintainer.
-
-2002-11-06 Hiroyuki Machida <machida@sm.sony.co.jp>
-
- * readelf.c (get_symbol_index_type): Add hex number to
- PROCESSOR-specific, OS-specific, reserved and unknown symbol
- types.
-
-2002-11-04 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (byte_get_little_endian): Comment typo fix.
- (print_symbol): Constify "symbol" arg. Don't pass "symbol" to printf
- as the format string.
- (dump_relocations): Correct section sym names.
- (process_section_headers): Clear symtab_shndx_hdr.
- (read_and_display_attr_value): Don't pass indirect string to printf
- as the format string.
- (display_debug_frames): Indicate when zero terminator found. Decode
- DW_EH_PE_pcrel addresses.
-
-2002-10-23 Svein E. Seldal <Svein.Seldal@solidas.com>
-
- * configure.in: Define SKIP_ZEROES as 32 for tic4x target in
- order to ensure proper disassembly of the valid 0-value opcode.
- * configure: Regenerate.
- * aclocal.m4: Regenerate.
- * config.in: Regenerate.
- * configure.in: Regenerate.
- * doc/Makefile.in: Regenerate.
- * po/binutils.pot: Regenerate.
-
-2002-10-23 Kaz Kojima <kkojima@rr.iij4u.or.jp>
-
- * MAINTAINERS: Add self as SH maintainer.
-
-2002-10-23 Ben Elliston <bje@redhat.com>
-
- * doc/binutils.texi (objdump): Document -z and move the entry for
- --disassemble-zeroes to the end of the options section (for `z').
-
-2002-10-21 Nick Clifton <nickc@redhat.com>
-
- * MAINTAINERS: Discontinue Hans-Peter Nilsson as SH maintainer.
-
-2002-10-21 Svein E. Seldal <Svein.Seldal@solidas.com>
-
- * objdump.c (dump_data): Correct addr_offset for opb != 1.
-
-2002-10-15 Alan Modra <amodra@bigpond.net.au>
-
- * bucomm.c (list_supported_targets): Use bfd_target_list.
-
- * objcopy.c (copy_file): Report ambiguous bfd_object matches, and
- other object errors in preference to bfd_core errors.
-
-2002-10-14 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am: Run "make dep-am".
- * objdump.c: #include "bfdver.h".
- * version.c: Likewise.
- * Makefile.in: Regenerate.
- * config.in: Regenerate.
- * configure: Regenerate.
- * po/POTFILES.in: Regenerate.
-
-2002-10-09 Daniel Jacobowitz <drow@mvista.com>
-
- * readelf.c (display_debug_info): Ignore empty .rela.debug_info
- sections. Allow relocations against the absolute symbol. Don't
- use the value in compunit.cu_abbrev_offset if we found a RELA
- relocation.
-
-2002-10-07 Gordon Chaffee <chaffee@netvmg.com>
-
- * addr2line.c (slurp_symtab): Read in dynamic symbols if no
- ordinary ones are available.
-
-2002-09-30 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (get_machine_flags): Handle E_MIPS_MACH_4120,
- E_MIPS_MACH_5400 and E_MIPS_MACH_5500.
-
-2002-09-17 Zack Weinberg <zack@codesourcery.com>
-
- * Makefile.am (CFILES): Add cxxfilt.c.
- (cxxfilt_SOURCES): Now just cxxfilt.c $(BULIBS).
- (cxxfilt_LDADD): Delete.
- Remove all references to underscore.c.
- Regen dependencies.
- * configure.in: Define TARGET_PREPENDS_UNDERSCORE in
- config.h from $UNDERSCORE, rather than AC_SUBSTing it.
- * binutils/cxxfilt.c: Moved here from gcc/cp, minor
- adjustments to fit into binutils framework.
- * configure, config.in, Makefile.in, doc/Makefile.in: Regenerate.
-
-2002-09-12 Roland McGrath <roland@redhat.com>
-
- * readelf.c (decode_location_expression): DW_OP_calli -> DW_OP_call_ref
- Handle DW_OP_GNU_push_tls_address.
-
-2002-09-11 Nick Clifton <nickc@redhat.com>
-
- * po/tr.po: Updated Turkish translation.
-
-2002-09-10 Nick Clifton <nickc@redhat.com>
-
- * MAINTAINERS: Add Ben Elliston as a maintainer for configure and
- testsuite changes. Add paragraphs about testsuite and config
- patches.
-
-2002-08-29 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (get_machine_flags): Remove redundant reference to
- E_V850EA_ARCH.
-
-2002-08-28 Alan Modra <amodra@bigpond.net.au>
-
- * objdump.c (dump_bfd): Restore lines accidentally deleted in
- last commit.
-
-2002-08-28 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
-
- * objdump.c (dump_headers): Add printing of HAS_LOAD_PAGE flag.
- (dump_bfd_header): Likewise.
-
-2002-08-27 Alan Modra <amodra@bigpond.net.au>
-
- * nm.c: Revert last change.
-
-2002-08-26 Alan Modra <amodra@bigpond.net.au>
-
- * nm.c (display_rel_file): Don't report "no symbols" as an error.
- * objdump.c (slurp_symtab): Likewise.
- (slurp_dynamic_symtab): Likewise.
- (dump_symbols): Likewise. Do print "no symbols" to stdout.
-
-2002-08-24 Geoffrey Keating <geoffk@redhat.com>
-
- * MAINTAINERS: Change my mailing address.
-
-2002-08-23 John David Anglin <dave@hiauly1.hia.nrc.ca>
-
- * MAINTAINERS: Add Dave Anglin as HPPA co-maintainer.
-
-2002-08-22 Nick Clifton <nickc@redhat.com>
-
- * MAINTAINERS: Add Jeff Law as (maintainance) maintainer for
- HPPA.
-
-2002-08-21 John David Anglin <dave@hiauly1.hia.nrc.ca>
-
- * readelf.c (parse_args): Change debug_dump_opt to static.
-
-2002-08-16 Sivaguru Sankaridurg <siva@eternal-systems.com>
-
- * stabs.c (parse_stab_argtype): Pass length of physname to
- stab_demangle_argtypes.
- (stab_demangle_argtypes): Add new parameter - length of physname.
- Pass length of physname on to stab_demangle_prefix.
- (stab_demangle_prefix): Add new parameter - length of physname.
- Use length of physname (if supplied) to compute end of function
- name.
-
-2002-08-15 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c: Include elf/i370.h.
- (dump_relocations): Handle EM_S370.
- (dynamic_segment_parisc_val): Print \n.
- (process_dynamic_segment <DT_BIND_NOW>): Here too.
-
-2002-08-14 Nick Clifton <nickc@redhat.com>
-
- * nm.c (usage): Change 'gnu-new-abi' to 'gnu-v3'.
- * objdump.c (usage): Likewise.
- * doc/binutils.texi: Likewise.
-
-2002-08-14 Luke Dunstan <infidel@users.sourceforge.net>
-
- * rcparse.y (acc_entry): Don't warn about ALT use with
- non-VIRTKEY.
-
-2002-08-13 H.J. Lu <hjl@gnu.org>
-
- * objcopy.c (copy_object): Don't warn about the unsupported
- architecture unless the input target is defaulted or the
- output architecture is different from the input.
-
-2002-08-09 Nick Clifton <nickc@redhat.com>
-
- * po/sv.po: Updated Swedish translation.
-
-2002-08-05 Alan Modra <amodra@bigpond.net.au>
-
- * prdbg.c (pr_fix_visibility): Remove assert.
-
-2002-07-31 Nick Clifton <nickc@redhat.com>
-
- * addr2line.c (process_file): Rename parameter 'filename' to
- 'file_name' in order to avoid shadowing global symbol of the
- same name.
- (main): Likewise.
-
-2002-07-30 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (OPTION_DEBUG_DUMP): Define.
- (options): Use it.
- (usage): Update help.
- (parse_args): Handle --debug-dump separately from -w.
- * doc/binutils.texi (readelf): Update documentation.
-
-2002-07-25 Nick Clifton <nickc@redhat.com>
-
- * po/es.po: Updated Spanish translation.
- * po/fr.po: Updated French translation.
-
-2002-07-24 Nick Clifton <nickc@redhat.com>
-
- * po/es.po: Updated Spanish translation.
-
-2002-07-23 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am: Run "make dep-am".
- * Makefile.in: Regenerate.
-
-2002-07-23 Nick Clifton <nickc@redhat.com>
-
- * po/fr.po: Updated French translation.
-
-2002-07-23 Eric S. Raymond <esr@golux.thyrsus.com>
-
- * doc/binutils.texi (addr2line <man synopsis>): Correct brackets.
-
-2002-07-20 Alan Modra <amodra@bigpond.net.au>
-
- * budemang.c: Include config.h and string.h/strings.h.
-
-2002-07-18 Denis Chertykov <denisc@overta.ru>
- Frank Ch. Eigler <fche@redhat.com>
-
- * readelf.c: Include "elf/ip2k.h".
- (guess_is_rela): Add support for EM_IP2K and EM_IP2K_OLD.
- (dump_relocations): Likewise.
- (get_machine_name): Likewise.
- * NEWS: Mention IP2K support.
-
-2002-07-16 Nick Clifton <nickc@cambridge.redhat.com>
-
- * NEWS: Add 'Changes in 2.13'.
-
-2002-07-10 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (get_dynamic_type): Handle DT_GNU_PRELINKED,
- DT_GNU_CONFLICT* and DT_GNU_LIBLISZ*.
- (get_section_type_name): Handle SHT_GNU_LIBLIST.
- (process_dynamic_segment): Handle DT_GNU_CONFLICTSZ,
- DT_GNU_LIBLISTSZ and DT_GNU_PRELINKED.
- (process_gnu_liblist): New.
- (process_file): Call it.
-
-2002-07-03 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am (check-DEJAGNU): Revert 2002-06-25 change.
- * Makefile.in: Regenerate.
-
-2002-07-02 Alan Modra <amodra@bigpond.net.au>
-
- * budemang.c: New file, "demangle" function.
- * budemang.h: New file.
- * addr2line.c (translate_addresses): Use "demangle".
- * nm.c (print_symname): Likewise.
- * objdump.c (objdump_print_symname): Likewise.
- (dump_symbols): Likewise. Also, don't use bfd_asymbol_name macro
- here since that obfuscates.
- * rdcoff.c: Don't #include demangle.h.
- * Makefile.am (CFILES): Add budemang.c, emul_aix.c,
- emul_vanilla.c. Remove emul_$(EMULATION).c. Sort.
- (HFILES): Add budemang.h. Sort.
- (nm_new_SOURCES, objdump_SOURCES, addr2line_SOURCES): Add budemang.c.
- Run "make dep-am".
- * Makefile.in: Regenerate.
-
-2002-07-01 Matt Thomas <matt@3am-software.com>
-
- * readelf.c: Include "elf/vax.h".
- (guess_is_rela): Move EM_VAX from unknown to RELA case.
- (dump_relocations): Handle VAX relocations.
- (get_machine_flags): Handle VAX machine flags.
-
-2002-06-29 Stephane Carrez <stcarrez@nerim.fr>
-
- * readelf.c (dump_relocations): Handle 68HC11/68HC12 relocations.
-
-2002-06-26 Nick Clifton <nickc@cambridge.redhat.com>
-
- * MAINTAINERS: Remove Tom Rix from d10v and pcc maintainerships.
-
-2002-06-26 Alan Modra <amodra@bigpond.net.au>
-
- * nm.c (print_symname): When demangling, strip leading dots from
- symbol names to avoid confusing the demangler.
-
-2002-06-25 H.J. Lu <hjl@gnu.org>
-
- * Makefile.am (check-DEJAGNU): Set LC_ALL=C and export it.
- * Makefile.in: Regenerated.
-
-2002-06-21 Igor Schein <igor@txc.com>
-
- * configure.in: Quote bu_cv_have_fopen64.
- * configure: Regenerate.
-
-2002-06-21 Mitsru Chinen <chinen@jp.ibm.com>
-
- * configure.in: Check for strcoll.
- * configure: Regenerate.
- * config.in: Regenerate.
- * nm.c (main): Set locale for LC_COLLATE category.
- (non_numeric_forward): Use strcoll if available.
-
-2002-06-20 Dave Brolley <brolley@redhat.com>
-
- * MAINTAINERS: Add self as fr30 and frv maintainer.
-
-2002-06-18 H.J. Lu (hjl@gnu.org)
-
- * nm.c: Include "elf/common.h".
- (extended_symbol_info): Add elfinfo, a pointer to
- elf_symbol_type.
- (SYM_SIZE): Use elfinfo if it is not NULL.
- (get_symbol_type): New function.
- (display_archive): Set print_width for each archive member.
- (display_file): Likewise.
- (display_rel_file): Don't set print_width here.
- (print_object_filename_sysv): Handle print_width.
- (print_archive_member_sysv): Likewise.
- (print_symbols): Pass (bfd_vma) 0 to print_symbol.
- (print_symbol): Set the elfinfo field in extended_symbol_info
- for ELF.
- (print_object_filename_sysv): Fix the output format.
- (print_symbol_info_sysv): Print type and section for ELF.
-
-2002-06-18 Elias Athanasopoulos <eathan@otenet.gr>
-
- * nm.c (print_size_symbols): Remove assignment, which makes
- the symbol's size equal to its value when --size-sort is
- used.
-
-2002-06-18 Dave Brolley <brolley@redhat.com>
-
- From Catherine Moore:
- * readelf.c (elf/frv.h): #include it.
- (guess_is_rela): Support EM_CYGNUS_FRV.
- (dump_relocations): Ditto.
- (get_machine_name): Ditto.
- * Makefile.am (readelf.o): add dependency on $(INCDIR)/elf/frv.h.
-
-2002-06-18 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (get_file_header): Only read the first section header if
- e_shoff is non-zero.
-
-2002-06-15 H.J. Lu (hjl@gnu.org)
-
- * nm.c (print_size): New variable. Initialize to 0.
- (long_options): Add 'S'/"print-size".
- (main): Handle 'S'.
- (print_symbol_info_bsd): Print size only if print_size is not
- 0.
-
- * doc/binutils.texi: Document -S/--print-size.
-
-2002-6-13 Elias Athanasopoulos <eathan@otenet.gr>
-
- * nm.c (struct extended_symbol_info): New structure: Add the size
- of the symbols to the information provided by the symbol_info
- structure.
- (print_symbols): Pass the symbol size to print_symbol.
- (print_size_symbols): Pass the symbol size to print_symbol.
- (print_symbol): Extra argument: The size of the symbol. Store
- this in the extended_symbol_info structure.
- (print_symbol_info): Change type of info parameter to
- extended_symbol_info. Display the size, if known.
- (print_symbol_info_posix): Likewise.
- (print_symbol_info_sysv): Likewise.
-
-2002-06-08 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am: Run "make dep-am".
- * Makefile.in: Regenerate.
- * doc/Makefile.in: Regnerate.
-
- * bucomm.c: Replace CONST with const.
- * nm.c: Likewise.
- * objdump.c: Likewise.
-
-2002-06-07 H.J. Lu <hjl@gnu.org>
-
- * readelf.c (DW_CFA_GNU_args_size): Don't define.
- (DW_CFA_GNU_negative_offset_extended): Likewise.
- (DW_CFA_GNU_window_save): Likewise.
- (display_debug_frames): Handle DW_CFA_offset_extended_sf,
- DW_CFA_def_cfa_sf and DW_CFA_def_cfa_offset_sf.
-
-2002-06-07 Elias Athanasopoulos <eathan@otenet.gr>
-
- * nm.c: When computing size of symbols for an ELF target use the
- internal size field.
-
-2002-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
-
- * testsuite/binutils-all/objcopy.exp: clear xfail for
- "hppa*64*-*-hpux*".
- * testsuite/binutils-all/hppa/objdump.exp: Return if
- "*64*-*-*".
-
-2002-06-05 Alan Modra <amodra@bigpond.net.au>
-
- * objcopy.c (copy_section): Don't copy SEC_GROUP sections.
-
-2002-06-03 Elias Athanasopoulos <eathan@otenet.gr>
-
- * objdump.c: Fix formatting.
-
-2002-05-29 Ben Elliston <bje@redhat.com>
-
- * MAINTAINERS: Add self as M68k maintainer.
-
-2002-05-28 Kuang Hwa Lin <kuang@sbcglobal.net>
-
- * readelf.c: Modified/Added DLX elf support.
-
-2002-05-27 Nick Clifton <nickc@cambridge.redhat.com>
-
- * arsup.c: Fix formatting.
- * debug.c (debug_record_label): Add missing colon to error
- message.
- * ieee.c (parse_ieee_ty): Fix spelling typo.
- * readelf.c (process_program_headers): Remove English assumption
- about making a plural word.
- (process_section_headers): Likewise.
- (process_relocs): Allow quotes to be translated.
- (process_unwind): Likewise,
- (process_mips_specific): Improve error message.
- (get_note_type): Fix spelling typo.
-
- * configure.in (ALL_LINGUAS): Add sv
- * po/sv.po: New file.
-
-2002-05-27 Alan Modra <amodra@bigpond.net.au>
-
- * unwind-ia64.c (unw_print_brmask): Don't use sprintf.
- (unw_print_grmask): Likewise.
- (unw_print_frmask): Likewise.
-
-2002-05-26 Kazu Hirata <kazu@cs.umass.edu>
-
- * arsup.c: Remove ARGSUSED.
- * debug.c: Likewise.
- * ieee.c: Likewise.
- * nlmconv.c: Likewise.
- * prdbg.c: Likewise.
- * stabs.c: Likewise.
- * wrstabs.c: Likewise.
-
-2002-05-25 Alan Modra <amodra@bigpond.net.au>
-
- * arlex.l: Use #include "" instead of <> for local header files.
- * coffdump.c: Likewise.
- * coffgrok.c: Likewise.
- * nlmconv.c: Likewise.
- * nlmheader.y: Likewise.
- * srconv.c: Likewise.
- * strings.c: Likewise.
- * sysdump.c: Likewise.
- * unwind-ia64.h: Likewise.
- * windres.h: Likewise.
- * winduni.h: Likewise.
-
-2002-05-24 Tom Rix <trix@redhat.com>
-
- * MAINTAINERS: Add self as the d10v maintainer.
-
-2002-05-24 TAMURA Kent <kent@netbsd.org>
-
- * configure.in: Builds dlltool for i386-netbsdpe.
- * configure: Regenerate.
-
-2002-05-23 Kazu Hirata <kazu@cs.umass.edu>
-
- * size.c: Fix formatting.
- * srconv.c: Likewise.
- * stabs.c: Likewise.
- * sysdump.c: Likewise.
- * unwind-ia64.c: Likewise.
- * wrstabs.c: Likewise.
-
-2002-05-23 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (get_segment_type): Add PT_TLS.
- (get_elf_section_flags): Add SHF_TLS.
- (get_dynamic_flags): Optimize. Add DF_STATIC_TLS.
- (process_dynamic_segment): Use puts instead of printf.
- (get_symbol_type): Support STT_TLS.
- * objdump.c (dump_section_header): Remove SEC_CONSTRUCTOR_TEXT,
- SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS.
- Add SEC_THREAD_LOCAL.
-
-2002-05-23 Kazu Hirata <kazu@cs.umass.edu>
-
- * rdcoff.c: Fix formatting.
- * rddbg.c: Likewise.
- * readelf.c: Likewise.
- * rename.c: Likewise.
- * resbin.c: Likewise.
- * resrc.c: Likewise.
- * resres.c: Likewise.
-
-2002-05-21 Kazu Hirata <kazu@cs.umass.edu>
-
- * filemode.c: Fix formatting.
- * ieee.c: Likewise.
- * is-ranlib.c: Likewise.
- * is-strip.c: Likewise.
- * maybe-ranlib.c: Likewise.
- * maybe-strip.c: Likewise.
- * nlmconv.c: Likewise.
- * nm.c: Likewise.
- * not-ranlib.c: Likewise.
- * not-strip.c: Likewise.
- * objcopy.c: Likewise.
- * objdump.c: Likewise.
-
-2002-05-21 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * objdump.c (dump_headers): Fix output formatting for ELF32
- architectures in a BFD64 enabled toolchain.
-
-2002-05-20 Kazu Hirata <kazu@cs.umass.edu>
-
- * debug.c: Fix formatting.
- * debug.h: Likewise.
- * dlltool.c: Likewise.
- * dllwrap.c: Likewise.
- * emul_aix.c: Likewise.
- * emul_vanilla.c: Likewise.
-
-2002-05-19 Kazu Hirata <kazu@cs.umass.edu>
-
- * addr2line.c: Fix formatting.
- * ar.c: Likewise.
- * arsup.c: Likewise.
- * arsup.h: Likewise.
- * binemul.c: Likewise.
- * binemul.h: Likewise.
- * bucomm.c: Likewise.
- * coffdump.c: Likewise.
- * coffgrok.c: Likewise.
- * coffgrok.h: Likewise.
-
-2002-05-16 Marek Michalkiewicz <marekm@amelek.gda.pl>
-
- * MAINTAINERS: Add myself as the second AVR port maintainer.
-
-2002-05-16 Stephane Carrez <stcarrez@nerim.fr>
-
- * MAINTAINERS: Update my email address.
-
-2002-05-09 Nick Clifton <nickc@cambridge.redhat.com>
-
- * MAINTAINERS: Add Jason Thorpe as VAX maintainer.
-
-2002-05-09 Alan Modra <amodra@bigpond.net.au>
-
- * configure.in: Replace `*pe' with `pe' throughout.
- * configure: Regenerate.
-
-2002-05-07 Federico G. Schwindt <fgsch@olimpo.com.br>
-
- * Makefile.am: Honour DESTDIR.
- * Makefile.in: Regenerate.
-
-2002-05-06 Alan Modra <amodra@bigpond.net.au>
-
- * dlltool.c (process_def_file): Add missing prototype.
- (new_directive, assemble_file, main): Likewise.
- (process_def_file, new_directive): Make static.
- (inform): Rewrite using VA_FIXEDARG.
- * dllwrap.c (mybasename): Add missing prototype.
- (strhash, main): Likewise.
- (inform): Rewrite using VA_FIXEDARG.
- (warn): Likewise.
- (cleanup_and_exit): Use old style function definition.
- (strhash): Likewise.
- * windres.c (define_resource): Use one memset to clear all of
- struct res_resource.
-
- * rcparse.y: Remove newcmd rule. Move rcparse_discard_strings
- call to rules that need no lookahead. Check for no lookahead.
-
-2002-05-06 Borut Razem <borut.razem@siol.net>
-
- * rclex.l (get_string): Correct "strings" list handling.
- * resrc.c (read_rc_file): Discard strings.
-
-2002-05-04 Alan Modra <amodra@bigpond.net.au>
-
- * ar.c (replace_members): Remove unused var. Formatting fix.
- * binemul.c (ar_emul_default_parse_arg): Add ATTRIBUTE_UNUSED.
-
- * MAINTAINERS: Sort port maintainers by CPU.
-
-2002-05-04 Bob Byrnes <byrnes@curl.com>
-
- * size.c (display_archive): Add last_arfile and code to close archives.
-
-2002-05-01 Alan Modra <amodra@bigpond.net.au>
-
- * nm.c (print_symbol): Check returned filename from
- bfd_find_nearest_line is non-NULL.
-
-2002-04-25 Elena Zannoni <ezannoni@redhat.com>
-
- * readelf.c (get_AT_name): Handle DW_AT_GNU_vector.
-
-2002-04-24 Christian Groessler <chris@groessler.org>
-
- * MAINTAINERS: Changed my email address.
-
-2002-04-17 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * arparse.y: Fix syntax warning.
-
-2002-04-16 Nick Clifton <nickc@cambridge.redhat.com>
-
- * readelf.c (fetch_location_list): Remove unused function.
-
- * readelf.c (process_corefile_note_segment): Catch corrupt notes
- and display a warning message, then exit the loop.
-
- * rcparse.y: Set MEMFLAG_DISCARDABLE by default.
-
-2002-04-15 Nick Clifton <nickc@cambridge.redhat.com>
-
- * resrc.c (write_rc_dialog): If charset is non-default value
- display all of the DIALOGEX parameters.
-
-2002-04-15 Eric Kohl <ekohl@rz-online.de>
-
- * rcparse.y: Allow two to five parameter in FONT statement of
- DIALOGEX resources.
- * resbin.c (bin_to_res_dialog): Fixed read/write code for dialogex
- resource data.
- (res_to_bin_dialog): Likewise.
- * windres.h: Added misssing charset variable to dialog_ex
- structure.
-
-2002-04-10 Nick Clifton <nickc@cambridge.redhat.com>
-
- * rcparse.y: Set MEMFLAG_PURE by default.
-
-2002-04-09 Bernd Herd <info@herdsoft.com>
-
- * rcparse.y: CLASS definitions in DIALOG resources
- are quoted.
- Fix typo in BEDIT warning.
- Don't add default dialog style when explicit style specified.
- Add WS_CAPTION dialog style if CAPTION is specified.
-
- * rclex.l (handle_quotes): "\xhex" encoding in strings corrected.
- (handle_quotes) "\a" escape (used for right justified key
- definitions in menus) is encodes as binary 8.
-
- * resrc.c (write_rc_dialog): Print style even if it is 0.
- (write_rc_directory): Fix overlooked sublang shift bug.
- (bin_to_res_dialog): Don't print empty dialog caption.
-
- * resbin.c (bin_to_res_dialog): Use signature to identify
- DIALOGEX.
-
- * windres.c (main): Set default LANGUAGE to english/us.
-
-2002-04-09 Gunnar Degnbol <degnbol@danbbs.dk>
-
- * resrc.c: print CLASS names in quotes
-
-2002-04-09 J"orn Rennecke <joern.rennecke@superh.com>
-
- * MAINTAINERS: Update my email address.
-
-2002-04-04 Alan Modra <amodra@bigpond.net.au>
-
- * dep-in.sed: Cope with absolute paths.
- * Makefile.am (dep.sed): Subst TOPDIR.
- Run "make dep-am".
- * Makefile.in: Regenerate.
-
-2002-03-27 Peter Targett <peter.targett@arc.com>
-
- * MAINTAINERS: Update my email address.
-
-2002-03-21 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am: Run "make dep-am".
- * Makefile.in: Regenerate.
- * doc/Makefile.in: Regenerate.
- * po/POTFILES.in: Regenerate.
- * aclocal.m4: Regenerate.
- * config.in: Regenerate.
- * configure: Regenerate.
-
-2002-03-20 Daniel Berlin <dan@dberlin.org>
-
- * readelf.c: Add support for displaying dwarf2 location lists.
- (do_debug_loc, debug_loc_section, debug_loc_size): New.
- (parse_args): Use 'O' as shorthand for displaying location list
- section.
- (process_section_headers): Handle debug_loc as well.
- (load_debug_loc): New.
- (free_debug_loc): New.
- (fetch_location_list): New.
- (display_debug_loc): New.
- (display_debug_info): Call load_debug_loc and free_debug_loc.
- (debug_displays): We can display .debug_loc now, too.
- (usage): Update usage string.
- (read_and_display_attr_value): Note location lists, but don't
- display them inline.
-
-2002-03-18 Tom Rix <trix@redhat.com>
-
- * Makefile.am: Add binutils emulation support.
- * configure.in: Same.
- * configure.tgt: New file. Same.
- * ar.c (main): Use ar_emul_parse_arg.
- (usage): Use ar_emul_usage.
- (replace_members): Use ar_emul_replace, ar_emul_append.
- * binemul.c: New file. Define the binutils emulation
- layer. Define default methods.
- * binemul.h: New file. Binutils emulation layer header file.
- * emul_aix.c: New file. AIX binutils emulation.
- * emul_vanilla.c: New file. Default binutils emulation.
- * Makefile.in: Regenerate.
- * configure: Same.
-
-2002-03-18 Nick Clifton <nickc@cambridge.redhat.com>
-
- * po/fr.po: Updated version.
-
-2002-03-13 Nick Clifton <nickc@cambridge.redhat.com>
-
- * po/fr.po: Updated version.
-
-2002-03-07 Daniel Jacobowitz <drow@mvista.com>
-
- * README: Update some version numbers.
-
-2002-03-07 Daniel Jacobowitz <drow@mvista.com>
-
- * doc/binutils.texi (Target Selection): Fix LD crossreferences.
- (Architecture Selection): Likewise.
-
-2002-03-01 Dmitry Timoshkov <dmitry@baikal.ru>
-
- * dlltool.c (gen_exp_file): Take into account --kill-at (-k) while
- generating .exp file.
-
-2002-02-21 Nick Clifton <nickc@cambridge.redhat.com>
-
- * readelf.c (dump_relocations): Fix typo.
-
-2002-02-20 Nick Clifton <nickc@cambridge.redhat.com>
-
- * NEWS: Mark 2.12 branch.
-
-2002-02-18 Timothy Daly <remote_bob@yahoo.com>
-
- * readelf.c (dump_relocations): Display 2nd and 3rd reloc
- types for 64-bit MIPS. Narrow some fields for 80-char
- output.
- (dump_relocations): Change spelling from 'unrecognised'
- to 'unrecognized'.
- (decode_ARM_machine_flags): Likewise.
- (parse_args): Likewise.
- (read_and_display_attr_value): Likewise.
- (display_debug_section): Likewise.
-
-2002-02-15 Hans-Peter Nilsson <hp@bitrange.com>
-
- * NEWS: Mention support for MMIX.
-
-2002-02-13 Matt Fredette <fredette@netbsd.org>
-
- * readelf.c (get_machine_flags): Recognize EF_M68000.
-
-2002-02-12 Alexandre Oliva <aoliva@redhat.com>
-
- * MAINTAINERS: Added self as MN10300 co-maintainer.
-
-2002-02-12 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (get_ppc64_dynamic_type): Handle DT_PPC64_OPD and
- DT_PPC64_OPDSZ.
-
-2002-02-11 Daniel Jacobowitz <drow@mvista.com>
-
- * MAINTAINERS: List myself as branch maintainer.
-
-2002-02-11 Alan Modra <amodra@bigpond.net.au>
-
- * configure: Regenerate.
- * objcopy.c: Update copyright date.
- * doc/Makefile.in: Regenerate.
-
-2002-02-10 Daniel Jacobowitz <drow@mvista.com>
-
- * nlmconv.c: Back out localtime PARAMS change.
-
-2002-02-11 Alan Modra <amodra@bigpond.net.au>
-
- * objcopy.c (MKDIR): Define.
- (copy_archive): Make name_list.name const. Use MKDIR.
- Handle duplicate files in archives by making more temp dirs.
-
-2002-02-10 Daniel Jacobowitz <drow@mvista.com>
-
- * coffdump.c: Include "getopt.h" after "bucomm.h"
- so that macros are defined correctly.
- * nlmconv.c: Add PARAMS ((const time_t *)) to localtime
- prototype. Prototype main.
- * nlmheader.y: Add PARAMS ((int)) to strerror prototype.
-
-2002-02-06 Alexandre Oliva <aoliva@redhat.com>
-
- * MAINTAINERS: Added self as SH co-maintainer.
-
-2002-02-05 Nick Clifton <nickc@redhat.com>
-
- * po/tr.po: Updated translation.
-
-2002-02-01 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am: Run "make dep-am"
- * Makefile.in: Regenerate.
-
-2002-01-29 Daniel Jacobowitz <drow@mvista.com>
-
- * nm.c (print_value): Mark abfd unused.
-
-2002-01-29 Daniel Jacobowitz <drow@mvista.com>
-
- * unwind-ia64.c (unw_decoder): Change second argument
- to unsigned int, to match function prototypes.
-
-2002-01-29 Daniel Jacobowitz <drow@mvista.com>
-
- * objdump.c: Include "getopt.h" after "bucomm.h" so that
- __GNU_LIBRARY__ will be defined.
- * size.c: Likewise.
-
-2002-01-27 Daniel Jacobowitz <drow@mvista.com>
-
- * configure: Regenerated.
-
-2002-01-26 Hans-Peter Nilsson <hp@bitrange.com>
-
- * doc/Makefile.am (install): Depend on install-info.
- * doc/Makefile.in: Regenerate.
-
-2002-01-25 Jason R. Thorpe <thorpej@wasabisystems.com>
-
- * objcopy.c (strip_usage): Document -d as an alias
- --strip-debug.
-
- * size.c (usage): Document [-t | --totals] options.
- (long_options): Add --totals option.
- (main): If the [-t | --totals] option is specified and
- the output format is Berkeley-style, print the total
- text, data, and bss sizes of all objects listed.
- (print_berkeley_format): If the [-t | --totals] option
- is specified, track the total text, data, and bss
- sizes.
- * doc/binutils.texi (size): Document [-t | --totals] options.
- (strip): Document -d as an alias for --strip-debug.
- * NEWS: Mention new feature of size.
-
-2002-01-25 Nick Clifton <nickc@cambridge.redhat.com>
-
- * po/fr.po: Updated version.
- * po/es.po: Updated version.
-
-2002-01-23 Nick Clifton <nickc@cambridge.redhat.com>
-
- * addr2line.c (usage): Update text to provide verbose
- description of the command line options.
- * ar.c (usage): Update text to provide verbose
- description of the command line options.
- (main): Accept -h and -H when running as ranlib.
- * coffdump.c (show_usage): Update text to provide verbose
- description of the command line options.
- * dlltool.c (main): Accept -H as an alias for --help.
- * nlmconv.c (show_usage): Update text to provide verbose
- description of the command line options.
- * nm.c (usage): Replace OPTIONS with option(s).
- (main): Accept -H as an alias for --help.
- * objcopy.c (strip_main): Accept -H as an alias for --help.
- * objdump.c (main): Accept -v as an alias for --verbose.
- * readelf.c (usage): Adjust format to match style used in
- other binutils.
- * size.c (usage): Update text to provide verbose description
- of the command line options.
- (main): Accept -v, -h and -H as command line options.
- * srconv.c (show_usage): Update text to provide verbose
- description of the command line options.
- * strings.c (main): Accept -H and -v as command line options.
- (usage): Update text to provide verbose description of the
- command line options.
- * sysdump.c (show_usage): Update text to provide verbose
- description of the command line options.
- * windres.c (usage): Adjust format to match style used in
- other binutils.
-
- * coffdump.c: Fix formatting.
- * nlmconv.c: Fix formatting.
- * srconv.c: Fix formatting.
- * sysdump.c: Fix formatting.
-
-2002-01-22 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am: Run "make dep-am".
- * Makefile.in: Regenerate.
-
-2002-01-18 Andreas Jaeger <aj@suse.de>
-
- * version.c (print_version): Update year.
-
-2002-01-17 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (get_machine_name): Handle EM_PPC64.
- (guess_is_rela): Here too.
-
-2002-01-17 Nick Clifton <nickc@cambridge.redhat.com>
-
- * po/binutils.pot: Regenerate.
- * po/fr.po: Regenerate.
- * po/tr.po: Regenerate.
-
-2002-01-16 Nick Clifton <nickc@cambridge.redhat.com>
-
- * po/tr.po: Import new version.
-
-2002-01-16 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (get_ppc64_dynamic_type): New.
- (get_dynamic_type): Call it.
-
-2002-01-15 Nick Clifton <nickc@cambridge.redhat.com>
-
- * objcopy.c (copy_usage): Use "options" instead of "switches".
- (strip_usage): Use "options" instead of "switches".
- * doc/binutils.texi (dlltool): Refer to "options" instead of
- "switches".
-
-2002-01-14 Richard Earnshaw <rearnsha@arm.com>
-
- * MAINTAINERS: Add self as co-maintainer for the ARM code.
-
-2001-12-18 Nick Clifton <nickc@cambridge.redhat.com>
-
- * po/es.po: Import from translation project.
- * configure.in (ALL_LINGUAS): Add es.
- * configure: Regenerate.
-
-2002-01-09 Jason Thorpe <thorpej@wasabisystems.com>
-
- * readelf.c (get_netbsd_elfcore_note_type): Use
- NT_NETBSDCORE_PROCINFO and NT_NETBSDCORE_FIRSTMACH.
-
-2002-01-09 Jason Thorpe <thorpej@wasabisystems.com>
-
- * readelf.c: Update copyright years.
- (get_note_type): Return a const char *.
- (get_netbsd_elfcore_note_type): New function.
- (process_note): Use get_netbsd_elfcore_note_type to get
- the note type string for NetBSD ELF core files.
-
-2002-01-06 Steve Ellcey <sje@cup.hp.com>
-
- * readelf.c (get_ia64_segment_type): Add support for macros.
- (get_segment_type): Add support for IA64 specific macros.
-
-For older changes see ChangeLog-0001
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/binutils-2.17/binutils/ChangeLog-2004 b/binutils-2.17/binutils/ChangeLog-2004
deleted file mode 100644
index c5ad00eb..00000000
--- a/binutils-2.17/binutils/ChangeLog-2004
+++ /dev/null
@@ -1,793 +0,0 @@
-2004-12-31 Alan Modra <amodra@bigpond.net.au>
-
- * objdump.c (remove_useless_symbols): Discard section symbols.
-
-2004-12-27 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (read_leb128): Support 64bit host.
-
-2004-12-23 Nick Clifton <nickc@redhat.com>
-
- PR binutils/616
- * readelf.c (debug_info): Add 'cu_offset' field.
- (get+pointer_size_of_comp_unit): Rename to
- 'get_pointer_size_and_offset_of_comp_unit'. Add code to return
- the offset of the comp_unit if requested.
- (get_debug_info): Record comp_unit offsets as well.
- (display_debug_lines): Call get_pointer_size_of_comp_unit.
- (decode_location_expression): Add an extra parameter - the offset
- of the current comp-unit. Use this when decoding the DW_OP_call2
- and DW_OP_call4 operators.
- (display_debug_loc): Call get_pointer_size_of_comp_unit, pass the
- comp_unit offset on the decode_location_expression.
- (read_and_display_attr_value): Pass the comp_unit offset on the
- decode_location_expression.
- (display_debug_frames): Pass 0 as the comp_unit offset to
- decode_location_expression.
-
-2004-12-22 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (last_pointer_size, warned_about_missing_comp_units):
- New variables associated with obtaining the pointer size for a
- comp_unit.
- (get_pointer_size_of_comp_unit): Add an extra parameter - the name
- of the section requesting the pointer size. Use this name in
- error messages. If there are not enough comp_units available
- produce a warning message, but return the last known pointer size
- so that section dumping can continue.
- (get_debug_info): Reset the new variables.
- (display_debug_lines): Add extra parameter to invocation of
- get_pointer_size_of_comp_unit and remove error message when it
- returns 0.
- (display_debug_loc): Likewise.
-
-2004-12-15 Jan Beulich <jbeulich@novell.com>
-
- * doc/binutils.texi: Document --strip-unneeded-symbol and
- --strip-unneeded-symbols.
- * objcopy.c (strip_unneeded_list): New.
- (enum command_line_switch): Add OPTION_STRIP_UNNEEDED_SYMBOL
- and OPTION_STRIP_UNNEEDED_SYMBOLS.
- (copy_options): Add --strip-unneeded-symbol and
- --strip-unneeded-symbols.
- (copy_usage): Likewise.
- (filter_symbols): Suppress copying of symbol if in strip_unneeded_list
- and the symbol is not needed.
- (copy_main): Handle OPTION_STRIP_UNNEEDED_SYMBOL and
- OPTION_STRIP_UNNEEDED_SYMBOLS.
-
-2004-12-09 Ian Lance Taylor <ian@wasabisystems.com>
-
- * readelf.c (get_machine_flags): Handle E_MIPS_MACH_9000.
-
-2004-12-08 Ben Elliston <bje@au.ibm.com>
-
- * arlex.l: Fix formatting.
-
-2004-12-08 Ben Elliston <bje@au.ibm.com>
-
- * doc/Makefile.am (config.texi): Emit a @set UPDATED command to
- config.texi whose value is the current month and year.
- * doc/Makefile.in: Rebuild.
- * doc/binutils.texi: Set the document subtitle to be the value of
- the Texinfo UPDATED variable (obtained from config.texi).
-
-2004-12-07 Ben Elliston <bje@au.ibm.com>
-
- PR binutils/249
- * doc/binutils.texi (def file format): New node.
- (dlltool): Use the tool name as the @chapter name, like all the
- other binutils. Use @file{.def} throughout for consistency.
-
-2004-12-06 Ben Elliston <bje@au.ibm.com>
-
- * dlltool.c: Comment fix.
-
-2004-12-06 Ben Elliston <bje@au.ibm.com>
-
- * doc/binutils.texi: Update copyright years.
-
-2004-12-03 Richard Sandiford <rsandifo@redhat.com>
-
- * MAINTAINERS: Remove mention of config.if.
-
-2004-11-30 Tero Niemela <tero_niemela@yahoo.com>
-
- * Makefile.am: Change LOCALEDIR to $(datadir)/share.
- * Makefile.in: Regenerate.
-
-2004-11-10 Ian Lance Taylor <ian@wasabisystems.com>
-
- PR binutils/536
- * stabs.c (stab_demangle_template): Call stab_demangle_count
- rather than stab_demangle_get_count to get the length of a pointer
- target.
-
-2004-11-10 Danny Smith <dannysmith@users.sourceforge.net>
-
- * defparse.y: Remove unnecessary commas from token list.
-
-2004-11-08 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
-
- * doc/binutils.texi (nm): Update description of weak symbols.
-
-2004-11-03 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (do_debug_ranges): New variable.
- (usage): Document new switch: -wR or --debug-dump=Ranges.
- (parse_args): Handle new switch. Replace switch statement for the
- long options with a more compact table structure.
- (process_section_headers): Allow the dumping of .debug_ranges
- sections if so requested.
- (debug_displays): Likewise.
- (load_debug_range): New function: Grabs the contents of a
- .debug_ranges section.
- (free_debug_range): New function: Releases the grabbed
- .debug_ranges section.
- (decode_64bit_range): New function: Displays a 64-bit range in a
- .debug_ranges section.
- (decode_range): New function: Displays a 32-bit range in a
- .debug_ranges section.
- (read_and_display_attr_value): Record the value of DW_AT_low_pc
- attributes. Use decode_ranges() to display a DW_AT_ranges
- attribute.
- (display_debug_info): Use load_debug_range() and
- free_debug_range().
- (display_64bit_debug_ranges): New function. Displays the contents
- of a 64-bit format .debug_ranges section.
- (display_debug_ranges): New function: Displays the contents of a
- 32-bit .debug_ranges section.
-
- (main): Move cmdline_dump_sects and num_cmdline_dump_sects into the
- global scope.
- (process_object): Initialise the dump_sects array from the
- cmdline_dump_sects array before processing each object file.
-
- (streq, strneq): New macros. Use them to replace occurrences of
- strcmp() and strncmp().
-
- (debug_information): New structure array to replace
- debug_line_pointer_sizes array.
- (num_debug_info_entries): New variable to replace
- num_debug_line_pointers.
- (get_pointer_size_of_comp_unit): New function: Returns the pointer
- size of a given compilation unit.
- (get_debug_info): New function to replace
- get_debug_line_pointer_sizes.
- (display_debug_lines): Use the new functions.
- (display_debug_loc): Likewise.
-
- (disassemble_section): Change return type to int.
- (display_debug_lines): Move local variables to their
- innermost scope.
- (display_debug_section): Likewise. Also record the return value
- of functions called and pass this back to the parent. Also only
- warn about undumped sections when the user explicitly requested
- their dumping.
-
- (debug_apply_rela_addends): Allow relocations against STT_OBJECT
- types as well.
-
- * NEWS: Mention the support for decoding .debug_ranges sections.
- * doc/binutils.texi: Document the new command line switch to
- readelf.
-
-2004-11-03 Randolph Chung <tausq@debian.org>
-
- * readelf.c (ia64_unw_aux_info, ia64_unw_table_entry): Rename from
- unw_aux_info and unw_table_entry.
- (find_symbol_for_address): Pass symtab and strtab info explicitly.
- (dump_ia64_unwind): Rename unw_{aux_info,table_entry} with ia64_
- prefix.
- (slurp_ia64_unwind_table): Likewise.
- (ia64_process_unwind): Rename from old process_unwind.
- (hppa_unw_aux_info): New.
- (dump_hppa_unwind): New.
- (slurp_hppa_unwind_table): New.
- (hppa_process_unwind): New.
- (process_unwind): Factor out common unwinding checks; dispatch to
- unwind handler based on machine type.
-
-2004-11-02 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (display_debug_lines): Fix typo in error message.
-
-2004-10-26 Mark Mitchell <mark@codesourcery.com>
-
- * readelf.c (get_note_type): Handle notes not in core files.
- (process_note_sections): New function.
- (process_corefile_contents): Rename to ...
- (process_notes): ... this.
- (process_object): Call process_notes, not
- process_corefile_contents.
- * doc/binutils.texi: Update readelf -n documentation.
-
-2004-10-26 Jakub Jelinek <jakub@redhat.com>
-
- * ar.c (extract_file): Set atime to mtime for ar xo.
-
-2004-10-25 Ian Lance Taylor <ian@wasabisystems.com>
-
- * stabs.c (stab_demangle_v3_arglist): New static function, broken
- out of stab_demangle_v3_argtypes.
- (stab_demangle_v3_argtypes): Call it.
- (stab_demangle_v3_arg): Handle DEMANGLE_COMPONENT_FUNCTION_TYPE.
- If we find an unrecognized component, print out its number.
-
-2004-10-25 David Mosberger <davidm@hpl.hp.com>
-
- * readelf.c (slurp_ia64_unwind_table): Support relocations against
- non-section symbols by adding in the symbol value.
-
-2004-10-25 Nick Clifton <nickc@redhat.com>
-
- PR 465
- * readelf.c (dynamic_strings_length): New global variable.
- (VALID_DYNAMIC_NAME, GET_DYNAMIC_NAME): New macros for accessing
- strings in the dynamic string table.
- (process_section_headers): Initialise dynamic_strings_length.
- (process_dynamic_section): Likewise.
- (process_object): Reset dynamic_string_length when the buffer is freed.
- (dynamic_sections_mips_val): Use the new macros.
- (process_dynamic_section): Likewise.
- (process_version_sections): Likewise.
- (process_symbol_table): Likewise.
- (process_syminfo): Likewise.
- (process_mips_specific): Likewise.
- (dump_relocations): Add a new parameter 'strtablen' and use this
- to verify that string offset in a given reloc is valid. Print a
- suitable error message otherwise.
- (process_relocs): Pass the new argument to dump_relocations.
-
-2004-10-23 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
-
- * dlltool.c: Include <assert.h>.
- (PREFIX_ALIAS_BASE): Define.
- (struct export): Add member import_name;
- (def_exports): Set import_name.
- (make_one_lib_file): Remove prefix alias code, use import_name
- in .idata$6.
- (gen_lib_file): Create and delete aliases.
-
-2004-10-19 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (process_section_groups): Free symtab after use.
-
-2004-10-18 Tommy Pettersson <ptp@lysator.liu.se>
- Nick Clifton <nickc@redhat.com>
-
- * strings.c (usage): Place radix values for -t option into the
- correct order.
-
- * objcopy.c (add_redefine_syms_file): Change error messages to use
- <filename>:<linenumber>: format for easier parsing by automatic
- tools.
-
- * srconv.c (show_usage): Fix spelling typo.
-
- * windres.c (format_from_filename): Suggest the use of -J instead
- of -I if the file type cannot be determined.
-
-2004-10-18 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
-
- * strings.c: Include <sys/stat.h>.
-
-2004-10-18 Alan Modra <amodra@bigpond.net.au>
-
- * budemang.c (demangle): Fix thinko.
-
- * budemang.c (demangle): Handle "@plt" suffix.
-
-2004-10-14 Nick Clifton <nickc@redhat.com>
-
- * nm.c (usage): Fix description of --special-syms switch.
-
-2004-10-13 Jakub Jelinek <jakub@redhat.com>
-
- * strings.c (statbuf): New typedef.
- (file_stat): Define.
- (strings_object_file): Avoid using get_file_size, instead do the
- checks here, using file_stat.
- * configure.in (HAVE_STAT64): New test.
- * configure: Rebuilt.
- * config.in: Rebuilt.
-
-2004-10-12 Paul Brook <paul@codesourcery.com>
-
- * readelf.c (decode_ARM_machine_flags): Support EABI version 4.
-
-2004-10-11 Alan Modra <amodra@bigpond.net.au>
-
- * objdump.c (dump_symbols): Fix thinko last change. Improve error
- messages.
-
-2004-10-08 Nick Clifton <nickc@redhat.com>
-
- * nm.c: Add a new switch --special-syms which, if enabled, will
- include the ARM Mapping symbols in nm's output.
- (usage): Mention the switch.
- (filter_symbols): Handle the switch.
- * objdump.c: Add a similar switch.
- (usage): Mention the switch.
- (dump_symbols): Handle the switch.
- * doc/binutils.texi: Document the new switches.
- * NEWS: Mention the new switches.
-
-2004-10-08 Daniel Jacobowitz <dan@debian.org>
-
- * readelf.c (get_x86_64_section_type_name): New function.
- (get_section_type_name): Use it.
-
-2004-10-08 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
-
- * dlltool.c (make_one_lib_file): Revert 2004-09-02 and 2004-09-04
- patches.
- * doc/binutils.texi (dlltool): Revert 2004-09-06 patch.
-
-2004-10-07 Alexandre Oliva <aoliva@redhat.com>
-
- * readelf.c (get_machine_flags): Don't fall through into m68k cpu
- types.
-
-2004-10-01 Paul Brook <paul@codesourcery.com>
-
- * readelf.c (get_arm_section_type_name): New function.
- (get_section_type_name): Use it.
-
-2004-09-28 Nick Clifton <nickc@redhat.com>
-
- * nm.c: Reorder functions to eliminate most of the static function
- prototypes.
-
-2004-09-22 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (process_program_headers): Don't include .tbss in non-TLS
- segments.
-
-2004-09-17 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am: Run "make dep-am".
- * Makefile.in: Regenerate.
- * config.in: Regenerate.
- * configure: Regenerate.
- * doc/Makefile.in: Regenerate.
- * po/binutils.pot: Regenerate.
-
-2004-09-12 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (decode_location_expression): Sign extend value for
- DW_OP_const1s, DW_OP_const2s, DW_OP_const4s, DW_OP_bra, DW_OP_skip.
-
-2004-09-09 Nick Clifton <nickc@redhat.com>
-
- PR 363
- * ar.c (replace_members): Do not use get_file_size as
- ar_emul_append correctly handles missing files.
-
-2004-09-07 H.J. Lu <hongjiu.lu@intel.com>
-
- * configure: Regenerated with autconfig 2.13.
-
-2004-09-06 Danny Smith <dannysmith@users.sourceforge.net>
-
- * doc/binutils.texi (dlltool): Update --add-underscore, --kill-at
- documentation.
-
-2004-09-06 Michael Wardle <mbw@endbracket.net>
-
- * doc/binutils.texi (objdump): Document that the -x switch includes
- the effect of the -p switch.
-
-2004-09-04 Danny Smith <dannysmith@users.sourceforge.net>
-
- * dlltool.c (make_one_lib_file): Test if internal_name was
- specified by user before using it.
-
-2004-09-02 Carlo Wood <carlo@alinoe.com>
-
- PR binutils/351
- * dlltool.c (make_one_lib_file): For IDATA6 take the name from
- exp->internal_name if it is present.
-
-2004-09-02 Alexandre Oliva <aoliva@redhat.com>
-
- * MAINTAINERS: Add self as co-maintainer of FR-V.
- * readelf.c (get_machine_flags): Print FR-V cpu types.
-
-2004-08-28 Alan Modra <amodra@bigpond.net.au>
-
- * nm.c (show_synthetic): New var.
- (long_options): Add "synthetic".
- (usage): Here too.
- (display_rel_file): Handle show_synthetic.
-
-2004-08-28 Alan Modra <amodra@bigpond.net.au>
-
- * objdump.c (dump_bfd): Pass both symbol tables to
- bfd_get_synthetic_symtab.
-
-2004-08-17 Jakub Jelinek <jakub@redhat.com>
-
- * objdump.c (dump_bfd): For relocatable objects, pass syms instead
- of dynsyms to bfd_get_synthetic_symtab.
-
-2004-08-16 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (debug_apply_rela_addends): New function, extracted from..
- (display_debug_info): ..here.
- (display_debug_frames): Call debug_apply_rela_addends. Don't do
- DW_EH_PE_pcrel adjustment for ET_REL.
-
-2004-08-06 Andreas Schwab <schwab@suse.de>
-
- * readelf.c (dump_relocations): Fix typo when calculating
- sec_index.
-
-2004-08-02 Jakub Bogusz <qboosh@pld-linux.org>
-
- * dllwrap.c (deduce_name): Fix typos introduced when program_name
- was renamed to prog_name.
-
-2004-07-29 Alexandre Oliva <aoliva@redhat.com>
-
- * readelf.c (get_machine_flags <EM_SH>): Handle EF_SH2A and
- EF_SH2A_NOFPU.
-
-2004-07-28 Alexandre Oliva <aoliva@redhat.com>
-
- 2003-07-08 Alexandre Oliva <aoliva@redhat.com>
- * readelf.c (get_machine_flags <EM_SH)): Handle EF_SH4_NOFPU and
- EF_SH4A_NOFPU.
- 2003-06-12 Alexandre Oliva <aoliva@redhat.com>
- * readelf.c (get_machine_flags <EM_SH>): Print SH ISA name.
-
-2004-07-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * objcopy.c (filter_symbols): Use bfd_coff_get_comdat_section
- to access comdat.
- * objdump.c (dump_section_header): Likewise.
-
-2004-07-15 Aravinda PR <aravindapr@rediffmail.com>
-
- * nlmconv.c (main): Pass map_file argument to link_inputs.
- (link_inputs): Use map_file argument if it is defined.
-
-2004-07-13 Nick Clifton <nickc@redhat.com>
-
- * dllwrap.c: Replace 'program_name' with 'prog_name' to avoid
- conflicts with exported global defined in bucomm.h.
- (deduce_name): Rename parameter 'program_name' to 'name' to avoid
- shadowing the global defined in bucomm.h.
-
-2004-07-12 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
-
- * dlltool.c (ext_prefix_alias): New global variable.
- (make_one_lib_file): Add aliases with prefixes for external
- and import definitions.
- (usage): Document -p option.
- (long_options): Add --ext-prefix-alias option.
- (main): Handle -p.
- * doc/binutils.texi: Document new switch.
- * NEWS: Mention new switch.
-
-2004-07-09 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
-
- * binutils/dlltool.c (asm_prefix): Add parameter: name.
- No underscore for symbols beginning with ?.
- (ASM_PREFIX): Add parameter: NAME.
- (gen_exp_file): Use new parameter.
- (make_label): Likewise.
- (make_imp_label): Likewise.
- (make_one_lib_file): Likewise.
-
-2004-07-07 Tomer Levi <Tomer.Levi@nsc.com>
-
- * MAINTAINERS: Added myself to the list.
- * readelf.c: Include "elf/crx.h".
- (guess_is_rela): Handle EM_CRX.
- (get_machine_name): Likewise.
- (dump_relocations): Likewise.
-
-2004-07-03 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
-
- * doc/binutils.texi (nm): Clarify weak symbol description.
-
-2004-06-24 Ben Elliston <bje@au.ibm.com>
-
- * readelf.c (get_segment_type): Display "GNU_STACK", not just
- "STACK", when a PT_GNU_STACK segment is encountered.
-
-2004-06-24 Alan Modra <amodra@bigpond.net.au>
-
- * objcopy.c (copy_section): Don't set _cooked_size.
-
-2004-06-22 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (Elf32_Word): Delete.
- (get_32bit_dynamic_section): Handle SGI ELF dynamic segment.
- (get_64bit_dynamic_section): Likewise.
-
- * readelf.c (get_32bit_dynamic_section): Stop at first DT_NULL entry.
- (get_64bit_dynamic_section): Likewise.
-
- * readelf.c (dynamic_nent): New variable.
- (get_32bit_dynamic_section): Set it.
- (get_64bit_dynamic_section): Here too.
- (process_dynamic_section): Use it instead of dynamic_size.
- (process_syminfo): Likewise.
-
- * readelf.c (get_32bit_dynamic_section): Correct number of entries
- translated from external to internal form.
- (get_64bit_dynamic_section): Likewise.
-
-2004-06-18 Jie Zhang <zhangjie@magima.com.cn>
-
- * readelf.c (process_program_headers): When locating the dynamic
- section use the section table if it is present.
- (dynamic_segment): Renamed to dynamic_section.
- Replace references to dynamic segment with references to dynamic
- section, except where appropriate.
- (dynamic_segment_mips_val): Rename to dynamic_section_mips_val.
- (dynamic_segment_parisc_val): Rename to dynamic_section_parisc_val.
- (dynamic_segment_ia64_val): Rename to dynamic_section_ia64_val.
- (get_32bit_dynamic_segment): Rename to get_32bit_dynamic_section.
- Remove tag counting code as it is no longer needed.
- (get_64bit_dynamic_segment): Rename to get_64bit_dynamic_section.
- Remove tag counting code as it is no longer needed.
- (process_dynamic_segment): Rename to process_dynamic_section.
-
-2004-06-15 Alan Modra <amodra@bigpond.net.au>
-
- * objcopy.c (copy_section): Use bfd_get_section_size instead of
- _raw_size or bfd_get_section_size_before_reloc. Don't set reloc_done.
- (compare_section_lma): Likewise.
- * addr2line.c (find_address_in_section): Likewise.
- * coffgrok.c (do_sections_p1): Likewise.
- * dlltool.c (scan_drectve_symbols): Likewise.
- * nlmconv.c (main): Likewise.
- (copy_sections): Likewise.
- (powerpc_mangle_relocs): Likewise.
- * objdump.c (disassemble_section): Likewise.
- * prdbg.c (find_address_in_section): Likewise.
- * size.c (berkeley_sum): Likewise.
- * srconv.c (wr_ob): Likewise.
- * strings.c (strings_a_section): Likewise.
-
-2004-05-28 Ian Lance Taylor <ian@wasabisystems.com>
-
- * readelf.c (decode_ARM_machine_flags): Add EF_ARM_VFP_FLOAT.
-
-2004-05-17 David Heine <dlheine@tensilica.com>
-
- * objcopy.c (setup_bfd_headers): New function.
- (copy_object): Call setup_bfd_headers.
-
-2004-05-13 Paul Brook <paul@codesourcery.com>
-
- * readelf.c (display_debug_frames): Handle dwarf3 format CIE
- entries.
-
-2004-05-13 Nick Clifton <nickc@redhat.com>
-
- * po/fr.po: Updated French translation.
-
-2004-05-11 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (get_segment_type): Handle PT_GNU_RELRO.
-
-2004-05-07 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (section_groups): New.
- (group_count): New.
- (section_headers_groups): New.
- (process_section_groups): Populate group_count, section_groups
- and section_headers_groups.
- (process_unwind): Support section group.
- (process_object): Always call process_section_groups. Free
- section_groups and section_headers_groups.
-
-2004-04-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (process_section_headers): Use %3lu on sh_info.
-
-2004-04-30 Michael Deutschmann <michael@talamasca.ocis.net>
-
- * ranlib.sh: Quote $1 argument in case it contains spaces.
-
-2004-04-27 John Paul Wallington <jpw@gnu.org>
-
- * objcopy.c (copy_usage, strip_usage): Fix spelling.
-
-2004-04-26 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (do_section_groups): New.
- (options): Add --section-groups/-g.
- (usage): Mention --section-groups/-g.
- (parse_args): Support --section-groups/-g.
- (get_group_flags): New.
- (process_section_groups): New.
- (process_object): Call process_section_groups.
-
-2004-04-24 Alan Modra <amodra@bigpond.net.au>
-
- * objdump.c (disassemble_section): Don't disassemble sections
- without SEC_HAS_CONTENTS.
-
-2004-04-22 Jakub Jelinek <jakub@redhat.com>
-
- * objdump.c (synthsyms, synthcount): New variables.
- (disassemble_data): Use dynsyms for stripped binaries or libraries.
- Add synthetized symbols.
- (dump_bfd): For disassemble, initialize dynsyms always and
- also synthsyms. Free synthsyms and clear {sym,dynsym,synth}count
- before returning.
-
-2004-04-14 Alan Modra <amodra@bigpond.net.au>
-
- * strings.c (print_strings): Cast file_off to unsigned long in
- printf arg list.
-
-2004-04-07 Benjamin Monate <benjamin.monate@cea.fr>
-
- PR 86
- * arsup.c (ar_save): Use smart_rename.
-
-2004-04-01 Dean Luick <luick@cray.com>
-
- * readelf.c (display_debug_pubnames): Align offset and data
- columns.
- (read_and_display_attr_value): Add missing break;
- (debug_displays): Enable the display of the .debug_pubtypes
- section.
-
-2004-03-30 Stan Shebs <shebs@apple.com>
-
- * mpw-config.in, mpw-make.sed, mac-binutils.r: Remove MPW
- support files, no longer used.
-
-2004-03-23 Paul Brook <paul@codesourcery.com>
-
- * readelf.c (decode_ARM_machine_flags): Add EABI v3.
-
-2004-03-21 Richard Henderson <rth@redhat.com>
-
- * readelf.c (display_debug_frames): Don't crash for mismatched
- DW_CFA_restore_state.
-
-2004-03-19 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am: Run "make dep-am".
- * Makefile.in: Regenerate.
- * aclocal.m4: Regenerate.
- * config.in: Regenerate.
- * configure: Regenerate.
- * po/binutils.pot: Regenerate.
-
-2004-03-15 Nathan Sidwell <nathan@codesourcery.com>
-
- * objdump.c (struct SFILE): Replace current pointer with pos
- offset, rename size to alloc.
- (objdump_sprintf): Avoid unnecessary copies in the common case
- (disassemble_bytes): Keep sfile live throughout the
- function. Adjust usage appropriately.
-
-2004-03-10 Ben Elliston <bje@gnu.org>
-
- * MAINTAINERS: Update my mail address.
-
-2004-03-08 Danny Smith <dannysmith@users.sourceforge.net>
-
- * deflex.l: Handle "PRIVATE" string.
- * defparse.y (%token): Add PRIVATE.
- (%type): Add opt_PRIVATE.
- (expline): Pass opt_PRIVATE to def_exports.
- (opt_PRIVATE): Handle PRIVATE token.
- * dlltool.h (def_exports): Add 7th param for private flag to
- declaration.
- * dlltool.c: Add PRIVATE to comment on EXPORTS syntax.
- (struct export): Add 'private' field.
- (def_exports): Set 'private' field of struct exports.
- (scan_drectve_symbols): Adjust calls to def_exports.
- (scan_filtered_symbols): Likewise.
- (dump_def_info): Print 'private' field.
- (gen_def_file): Likewise.
- (gen_lib_file): Skip generation of lib object if private.
- Delete tmp object files in same order as they were generated.
- Don't delete non-existent private object files.
-
-2004-02-27 Andreas Schwab <schwab@suse.de>
-
- * ar.c (main): Support POSIX-compatible argument parsing.
-
-2004-02-23 Daniel Lucq <daniel@lucq.org>
-
- * readelf.c (process_mips_specific): Print conflictsno as an
- unsigned long.
-
-2004-02-21 Dmitry Timoshkov <dmitry@baikal.ru>
-
- * dlltool.c (gen_exp_file): Always output names for forwarded symbols.
-
-2004-02-19 Jakub Jelinek <jakub@redhat.com>
-
- * objcopy.c (copy_section): Avoid warnings.
-
-2004-02-14 Andrew Cagney <cagney@redhat.com>
-
- * ar.c (remove_output): Use bfd_cache_close.
- * arsup.c (ar_end): Ditto.
-
-2004-01-21 Roland McGrath <roland@redhat.com>
-
- * readelf.c (get_note_type): Match NT_AUXV.
-
-2004-01-20 Nick Clifton <nickc@redhat.com>
-
- * version.c (print_version): Update copyright year to 2004.
-
-2004-01-14 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
-
- * acinclude.m4: Quote names of macros to be defined by AC_DEFUN
- throughout.
- * aclocal.m4: Regenerate.
- * configure: Regenerate.
-
-2004-01-12 Jakub Jelinek <jakub@redhat.com>
-
- * objcopy.c: Include elf-bfd.h.
- (is_strip_section): Don't strip debugging sections if
- STRIP_NONDEBUG.
- (setup_section): If STRIP_NONDEBUG make SEC_ALLOC sections
- ~(SEC_LOAD | SEC_HAS_CONTENTS) and on ELF targets also SHT_NOBITS.
-
- * objcopy.c (copy_section): Free relpp if relcount == 0.
-
-2004-01-12 Ian Lance Taylor <ian@wasabisystems.com>
-
- * stabs.c (parse_stab_argtypes): Handle g++ ABI version 3 names.
- (stab_demangle_argtypes): Likewise.
- (stab_demangle_v3_argtypes): New static function.
- (stab_demangle_v3_arg): New static function.
-
-2004-01-12 Nick Clifton <nickc@redhat.com>
-
- * objcopy.c (copy_object): Make the function boolean, returning
- FALSE upon failure.
- (copy_archive): Handle the return value from copy_object.
- (copy_file): Likewise.
-
-2004-01-07 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (find_section): New function. Locates a named
- section.
- (get_debug_line_pointer_sizes): New function: Initialises the
- debug_line_pointer_sizes array.
- (display_debug_lines): Call get_debug_line_pointer_sizes.
- (display_debug_loc): Likewise.
- (load_debug_loc): Use find_section.
- (load_debug_str): Likewise.
- (display_debug_info): Likewise.
- (prescan_debug_info): Delete.
- (debug_displays): Remove prescan field.
- (process_section_contents): Do not perform prescans.
-
-2004-01-03 Alan Modra <amodra@bigpond.net.au>
-
- * objcopy.c (filter_bytes): Delete. Move code to..
- (copy_section): ..here. Simplify size adjustment. Divide
- section lma by interleave.
-
-2004-01-02 Nick Clifton <nickc@redhat.com>
-
- * po/ru.po: New file: Russian translation.
- * configure.in (ALL_LINGUAS): Add ru
- * configure: Regenerate.
-
-For older changes see ChangeLog-0203
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/binutils-2.17/binutils/ChangeLog-2005 b/binutils-2.17/binutils/ChangeLog-2005
deleted file mode 100644
index 38b7fd00..00000000
--- a/binutils-2.17/binutils/ChangeLog-2005
+++ /dev/null
@@ -1,1350 +0,0 @@
-2005-12-30 Jie Zhang <jie.zhang@analog.com>
-
- * readelf.c (get_machine_name): Add case for Blackfin.
-
-2005-12-27 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am: Run "make dep-am".
- (Makefile): Remove dependency.
- * Makefile.in: Regenerate.
-
-2005-12-26 Jan-Benedict Glaw <jbglaw@lug-owl.de>
-
- * MAINTAINERS: Add myself as VAX maintainer.
-
-2005-12-22 Randolph Chung <tausq@debian.org>
-
- * rddbg.c (read_section_stabs_debugging_info): Add $GDB_SYMBOLS$
- entry to names[] array for SOM binaries.
-
-2005-12-21 H.J. Lu <hjl@gnu.org>
-
- * MAINTAINERS: Add myself as x86_64 maintainer.
-
-2005-12-16 Nathan Sidwell <nathan@codesourcery.com>
-
- Second part of ms1 to mt renaming.
- * readelf.c (guess_is_rela): Use EM_MT.
- (dump_relocations, get_machine_name): Adjust.
-
-2005-12-12 Nathan Sidwell <nathan@codesourcery.com>
-
- * Makefile.am: Replace ms1 files with mt files.
- * Makefile.in: Rebuilt.
- * readelf.c (elf/mt.h): Adjust #include.
-
-2005-11-30 Nick Clifton <nickc@redhat.com>
-
- * configure.in (ALL_LINGUAS): Add fi.
- * configure: Regenerate.
- * po/fi.po: New file: Finnish translation.
-
-2005-11-21 Arnold Metselaar <arnoldm@sourceware.org>
-
- * MAINTAINERS: add myself as Z80 maintainer
-
-2005-11-17 Andrew Haley <aph@redhat.com>
-
- * cxxfilt.c (main): Flush output at newline.
-
-2005-11-16 Mark Mitchell <mark@codesourcery.com>
-
- * doc/binutils.texi: Include config.texi and @file documentation
- for manual pages.
-
-2005-11-15 Jan Beulich <jbeulich@novell.com>
-
- * objcopy.c (keep_file_symbols): New.
- (enum command_line_switch): Add OPTION_KEEP_FILE_SYMBOLS.
- (strip_options): Add --keep-file-symbols.
- (copy_options): Likewise.
- (copy_usage): Likewise.
- (strip_usage): Likewise.
- (filter_symbols): Act upon keep_file_symbols.
- (strip_main): Handle OPTION_KEEP_FILE_SYMBOLS.
- (copy_main): Likewise.
- * doc/binutils.texi: Document --keep-file-symbols for objcopy
- and strip.
-
-2005-11-14 Daniel Jacobowitz <dan@codesourcery.com>
-
- * readelf.c (struct dump_list_entry, request_dump_byname)
- (initialise_dumps_byname): New.
- (parse_args): Call request_dump_byname.
- (process_section_contents): Call initialise_dumps_byname.
- * doc/binutils.texi (readelf): Mention -x NAME.
- * NEWS: Likewise.
-
-2005-11-11 Nick Clifton <nickc@redhat.com>
-
- PR 1150
- * readelf.c (get_mips_symbol_other): New function.
- (get_symbol_other): New function.
- (process_symbol_table): Call get_symbol_other() to get a
- description of the st_other field if it contains more information
- than just the visibility.
-
-2005-11-07 Steve Ellcey <sje@cup.hp.com>
-
- * configure: Regenerate after modifying bfd/warning.m4.
-
-2005-10-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * Makefile.am: Run "make dep-am".
- * Makefile.in: Regenerated.
-
- * dep-in.sed: Replace " ./" with " ".
-
-2005-10-25 Alan Modra <amodra@bigpond.net.au>
-
- * po/POTFILES.in: Regenerate.
- * po/binutils.pot: Regenerate.
-
-2005-10-24 Bernd Schmidt <bernd.schmidt@analog.com>
-
- * MAINTAINERS: Add self as BFIN maintainer.
-
-2005-10-18 Jie Zhang <jie.zhang@analog.com>
-
- * MAINTAINERS: Add self as BFIN maintainer.
-
-2005-10-11 Danny Smith <dannysmith@users.sourceforge.net>
-
- * rclex.l (handle quotes): Stop parsing hex notation escaped
- chars after the first two digits,
-
-2005-10-11 Nick Clifton <nickc@redhat.com>
-
- PR binutils/1437
- * cxxfilt.c (flags): Remove DMGL_TYPES;
- (long_options): Rename --no-types to --types.
- (usage): Likewise.
- (demangle_it): Add a comment describing why _ and $ prefixes are
- skipped. Use printf rather than puts to emit the demangled output
- in order to avoid emitting a new line character.
- (main): Have the -t flag enable type demangling.
- Emit a newline after every demangled command line argument.
- Copy whitespace from stdin to stdout.
- * doc/binutils.texi (c++filt): Document the change to the -t
- switch.
- Document why demangling names on the command line is slightly
- different to demangling names read from the standard input.
-
-2005-10-10 Mark Mitchell <mark@codesourcery.com>
-
- * doc/Makefile.am (config.texi): Set top_srcdir.
- * doc/Makefile.in: Regenerated.
- * doc/binutils.texi: Use at-file.texi from libiberty.
-
-2005-10-10 H.J. Lu <hongjiu.lu@intel.com>
-
- PR binutils/1436
- * readelf.c (ABSADDR): New.
- (dump_ia64_unwind): Use ABSADDR to get the unwind info address.
-
-2005-10-10 Thomas Weidenmueller <w3seek@reactos.com>
-
- * resbin.c (res_to_bin_accelerator): Place the terminating NUL at
- the correct location in the bindata structure.
-
-2005-10-10 Bryce Schober <bryce.schober@dynonavionics.com>
-
- * doc/binutils.texi (objdump): Fix typo: -reg-name-std should be
- -reg-names-std.
-
-2005-10-04 Nick Clifton <nickc@redhat.com>
-
- * cxxfilt.c: Treat mangled names specified on the command line in
- the same way as mangled names read from stdin.
- Add -i switch to disable the display of implementation details.
- Add -t switch to disable the demangling of types.
- * NEWS: Mention the new switches.
- * doc/binutils.texi (cxxfilt): Document the -i and -t switches.
-
-2005-10-03 Mark Mitchell <mark@codesourcery.com>
-
- * addr2line.c (usage): Document @file.
- * ar.c (usage): Likewise.
- * coffdump (usage): Likewise.
- * cxxfilt.c (usage): Likewise.
- * dlltool.c (usage): Likewise.
- * dllwrap.c (usage): Likewise.
- * nlmconv.c (usage): Likewise.
- * nm.c (usage): Likewise.
- * objcopy.c (usage): Likewise.
- * objdump.c (usage): Likewise.
- * readelf.c (usage): Likewise.
- * size.c (usage): Likeise.
- * srconv.c (usage): Likewise.
- * strings.c (usage): Likewise.
- * windres.c (usage): Likewise.
- * doc/binutils.texi: Add section on common options.
-
-2005-10-03 H.J. Lu <hongjiu.lu@intel.com>
-
- * NEWS: Mention -W/--dwarf.
-
- * doc/binutils.texi: Document -W/--dwarf for objdump.
-
-2005-10-01 Paul Brook <paul@codesourcery.com>
-
- * readelf.c (arm_attr_tag_CPU_arch, arm_attr_tag_ARM_ISA_use,
- arm_attr_tag_THUMB_ISA_use, arm_attr_tag_VFP_arch,
- arm_attr_tag_WMMX_arch, arm_attr_tag_NEON_arch,
- arm_attr_tag_ABI_PCS_config, arm_attr_tag_ABI_PCS_R9_use,
- arm_attr_tag_ABI_PCS_RW_data, arm_attr_tag_ABI_PCS_RO_DATA,
- arm_attr_tag_ABI_PCS_GOT_use, arm_attr_tag_ABI_PCS_wchar_t,
- arm_attr_tag_ABI_FP_rounding, arm_attr_tag_ABI_FP_denormal,
- arm_attr_tag_ABI_FP_exceptions, arm_attr_tag_ABI_FP_user_exceptions,
- arm_attr_tag_ABI_FP_number_model, arm_attr_tag_ABI_align8_needed,
- arm_attr_tag_ABI_align8_preserved, arm_attr_tag_ABI_enum_size,
- arm_attr_tag_ABI_HardFP_use, arm_attr_tag_ABI_VFP_args,
- arm_attr_tag_ABI_WMMX_args, arm_attr_tag_ABI_optimization_goals,
- arm_attr_tag_ABI_FP_optimization_goals, arm_attr_public_tags): New.
- (display_arm_attribute, process_arm_specific): New functions.
- (process_arch_specific): Add EM_ARM.
-
-2005-09-30 Mark Mitchell <mark@codesourcery.com>
-
- * dlltool.c (main): Fix typo.
- * windres.c (main): Likewise.
-
-2005-09-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * Makefile.in: Regenerated.
-
-2005-09-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * sysinfo.y (main): Undo last change.
-
-2005-08-30 Mark Mitchell <mark@codesourcery.com>
-
- * addr2line.c (main): Use expandargv.
- * ar.c (main): Likewise.
- * coffdump.c (main): Likewise.
- * cxxfilt.c (main): Likewise.
- * dlltool.c (main): Likewise.
- * dllwrap.c (main): Likewise.
- * nlmconv.c (main): Likewise.
- * nm.c (main): Likewise.
- * objcopy.c (main): Likewise.
- * objdump.c (main): Likewise.
- * readelf.c (main): Likewise.
- * size.c (main): Likeiwse.
- * srcconv.c (main): Likewise.
- * strings.c (main): Likewise.
- * sysdump.c (main): Likewise.
- * sysinfo.y (main): Likewise.
- * windres.c (main): Likewise.
-
-2005-09-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * Makefile.am: Run "make dep-am".
- * Makefile.in: Regenerated.
- * aclocal.m4: Likewise.
-
-2005-09-30 Catherine Moore <clm@cm00re.com>
-
- * Makefile.am: Bfin support.
- * Makefile.in: Regenerated.
- * aclocal.m4: Regenerated.
- * readelf.c (elf/bfin.h): Include.
- (guess_is_rela): EM_BLACKFIN support.
- (dump_relocations): Likewise.
-
-2005-09-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * dwarf.c (fetch_indirect_string): Adjust for section address.
- (process_debug_info): Likewise.
- (display_debug_loc): Likewise.
- (display_debug_ranges): Likewise.
-
- * objdump.c (mach_o_dwarf_sections): New.
- (generic_dwarf_sections): Likewise.
- (check_mach_o_dwarf): Likewise.
- (dump_dwarf): Call check_mach_o_dwarf.
-
-2005-09-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * Makefile.am (objdump_SOURCES): Add dwarf.c.
- * Makefile.in: Regenerated.
-
- * objdump.c: Include "dwarf.h".
- (usage): Add -W/--dwarf.
- (long_options): Likewise.
- (dump_dwarf_section_info): New.
- (load_debug_section): Likewise.
- (free_debug_section): Likewise.
- (dump_dwarf_section): Likewise.
- (dump_dwarf): Likewise.
- (dump_bfd): Load symbol table and call dump_dwarf if
- dump_dwarf_section_info isn't zero.
- (main): Handle -W/--dwarf.
-
-2005-09-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c: Reordered.
- (is_relocatable): New.
- (dwarf_section): New structure for DWARF section.
- (load_debug_section): New.
- (free_debug_section): Likewise.
- (debug_str_section): Likewise.
- (debug_abbrev_section): Likewise.
- (debug_str_contents): Removed.
- (debug_str_size): Likewise.
- (debug_loc_contents): Likewise.
- (debug_loc_size): Likewise.
- (debug_range_contents): Likewise.
- (debug_range_size): Likewise.
- (load_debug_str): Likewise.
- (free_debug_str): Likewise.
- (load_debug_loc): Likewise.
- (free_debug_loc): Likewise.
- (load_debug_arange): Likewise.
- (free_debug_arange): Likewise.
- (load_debug_abbrev): Likewise.
- (free_debug_abbrev): Likewise.
- (fetch_indirect_string): Updated.
- (debug_apply_rela_addends): Likewise.
- (process_debug_info): Likewise.
- (get_debug_info): Likewise.
- (display_debug_lines): Likewise.
- (display_debug_pubnames): Likewise.
- (display_debug_macinfo): Likewise.
- (display_debug_abbrev): Likewise.
- (display_debug_loc): Likewise.
- (display_debug_str): Likewise.
- (display_debug_info): Likewise.
- (display_debug_aranges): Likewise.
- (display_debug_ranges): Likewise.
- (display_debug_frames): Likewise.
- (display_debug_not_supported): Likewise.
- (debug_displays): Likewise.
- (display_debug_section): Likewise.
- (get_file_header): Set is_relocatable.
-
-2005-09-30 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (debug_apply_rela_addends): Relocate the whole
- section.
- (process_debug_info): Don't call debug_apply_rela_addends.
- (display_debug_frames): Likewise.
- (get_debug_info): Call debug_apply_rela_addends.
- (debug_displays): Add the "relocate" field.
- (display_debug_section): Call debug_apply_rela_addends if
- needed.
-
-2005-09-30 Matthias Kurz <mk@baerlap.north.de>
-
- * bucomm.h: Prevent the inclusion of <libintl.h> from the Solaris
- version of <locale.h> when ENABLE_NLS is not defined.
-
-2005-09-26 Mark Mitchell <mark@codesourcery.com>
-
- * BRANCHES: Mention binutils-csl-gxxpro-3_4-branch.
-
-2005-09-20 Richard Henderson <rth@redhat.com>
-
- * readelf.c (display_debug_lines): Use unsigned long for address
- increments. Use 0x prefix for all hex numbers.
-
-2005-09-09 Richard Earnshaw <richard.earnshaw@arm.com>
-
- * readelf.c (get_arm_section_type_name): Add SHT_ARM_PREEMPTMAP and
- SHT_ARM_ATTRIBUTES.
-
-2005-09-07 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (get_elf_section_flags): Handle 64bit sh_flags.
-
-2005-09-02 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (debug_abbrev_contents): New.
- (debug_abbrev_size): Likewise.
- (load_debug_abbrev): Likewise.
- (free_debug_abbrev): Likewise.
- (process_debug_info): Use them.
-
-2005-08-17 H.J. Lu <hongjiu.lu@intel.com>
-
- PR binutils/1179
- * objdump.c (disassemble_bytes): Don't adjust
- adjust_section_vma.
- (adjust_addresses): Don't adjust vma for debugging section.
- Adjust lma only for relocatable files.
- (dump_bfd): Tell adjust_addresses if it is a relocatable file.
-
-2005-08-16 H.J. Lu <hongjiu.lu@intel.com>
-
- * bucomm.h (stpcpy): Declare if HAVE_DECL_STPCPY isn't defined.
-
- * configure.in (AC_GNU_SOURCE): Added.
- (AC_CHECK_DECLS): Add stpcpy.
- * configure: Regenerated.
- * config.in: Likewise.
-
-2005-08-16 Jakub Jelinek <jakub@redhat.com>
-
- * unwind-ia64.c (UNW_DEC_SPILL_SPREL, UNW_DEC_SPILL_PSPREL,
- UNW_DEC_RESTORE, UNW_DEC_SPILL_REG): Increase {,ab,t}regname
- buffer sizes.
-
-2005-08-15 Daniel Jacobowitz <dan@codesourcery.com>
-
- * doc/binutils.texi (objdump): Document -M e300.
-
-2005-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * readelf.c (slurp_hppa_unwind_table): Fix entry size on hppa64-hpux.
- Don't access table entries past the end of the table.
-
-2005-08-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * readelf.c (get_parisc_segment_type): Handle PT_PARISC_WEAKORDER.
- (get_parisc_section_type_name): Handle SHT_PARISC_DLKM.
-
-2005-08-11 H.J. Lu <hongjiu.lu@intel.com>
-
- * NEWS: Mention "-t/--section-details" and
- "-N/--full-section-name".
-
- * doc/binutils.texi: Document "-t/--section-details". Remove
- "-N/--full-section-name".
-
- * readelf.c (do_full_section_name): Renamed to ...
- (do_section_details): This.
- (option): Rename "-N/--full-section-name" to
- "-t/--section-details".
- (usage): Likewise.
- (parse_args): Likewise.
- (get_elf_section_flags): Support do_section_details.
- (process_section_headers): Updated for do_section_details.
-
-2005-08-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- * readelf.c (get_parisc_dynamic_type): Add new dynamic types.
- (get_dynamic_type): Use old values for DT_LOOS and DT_HIOS when
- e_machine is EM_PARISC.
- (get_parisc_segment_type): Add new segment types.
- (get_parisc_section_type_name): Add new section names.
- (dynamic_section_parisc_val): Add new table entries.
-
-2005-08-01 Filip Navara <navaraf@reactos.com>
-
- * dlltool.c (alphafunc): Remove and replace usage with nfunc.
- (nfunc): Fix sorting of fastcall symbols when --kill-at is used.
-
-2005-07-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (dump_relocations): Handle SHN_X86_64_LCOMMON.
- (get_symbol_index_type): Likewise.
- (get_elf_section_flags): Handle SHF_X86_64_LARGE.
-
-2005-07-21 Eric Christopher <echristo@apple.com>
-
- * MAINTAINERS: Change affiliation.
-
-2005-07-19 Ben Elliston <bje@au.ibm.com>
-
- * readelf.c (read_and_display_attr_value): Remove comment adjacent
- to DW_ATE_decimal_float about it being a GNU extension.
-
-2005-07-18 Nick Clifton <nickc@redhat.com>
-
- * binemul.c: Fix name of Red Hat.
- * binemul.h: Likewise.
- * emul_aix.c: Likewise.
- * emul_vanilla: Likewise.
-
-2005-07-18 Ben Elliston <bje@au.ibm.com>
-
- * readelf.c (read_and_display_attr_value): Handle a DW_AT_encoding
- value of DW_ATE_decimal_float instead of DW_ATE_GNU_decimal_float.
-
-2005-07-16 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am: Run "make dep-am".
- * Makefile.in: Regenerate.
-
-2005-07-15 Eric Christopher <echristo@redhat.com>
-
- * MAINTAINERS: Change affiliation.
-
-2005-07-14 Jim Blandy <jimb@redhat.com>
-
- * readelf.c: #include "elf/m32c.h"
- (guess_is_rela, dump_relocations, get_machine_name): Add cases for
- EM_M32C.
- * Makefile.am (readelf.o): Update dependencies.
- * Makefile.in: Regenerated.
-
-2005-07-08 Ben Elliston <bje@au.ibm.com>
-
- * bucomm.h: Include <stdarg.h> unconditionally, not only when
- ANSI_PROTOTYPES is defined. Remove #ifdef logic.
- * dlltool.c: Likewise.
- * dllwrap.c: Likewise.
-
-2005-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-
- * bucomm.h (report): Add format attribute.
- * dlltool.c (inform): Likewise.
- * dllwrap.c (display, inform, warn): Likewise.
- * objdump.c (objdump_sprintf): Likewise.
- * readelf.c (error, warn): Likewise. Fix format bugs.
-
-2005-07-05 Dmitry V. Levin <ldv@altlinux.org>
- Nick Clifton <nickc@redhat.com>
-
- * strings.c (filename_and_size_t): New typedef.
- (strings_a_section): Skip sections with size greater or equal to
- the file size. Cache the file size to avoid repeated stat()s.
- (strings_object_file): Pass filename_and_size_t argument to
- strings_a_section() via bfd_map_over_sections().
-
-2005-07-04 Alan Modra <amodra@bigpond.net.au>
-
- PR 1004
- * objcopy.c (copy_object): Use bfd_make_section_with_flags.
- (write_debugging_info): Likewise.
- (setup_section): Use bfd_make_section_anyway_with_flags.
-
-2005-07-01 Steve Ellcey <sje@cup.hp.com>
-
- * configure.in (AM_BINUTILS_WARNINGS): Add.
- (BFD_NEED_DECLARATION): Replace with AC_CHECK_DECLS.
- * configure: Regenerate.
- * config.in: Regenerate.
- * objdump.c (NEED_DECLARATION_*): Replace with !HAVE_DECL_*.
- * bucomm.h: (NEED_DECLARATION_*): Ditto.
-
-2005-06-30 Ben Elliston <bje@gnu.org>
-
- * Makefile.am (check-DEJAGNU): Don't search for expect.
- * Makefile.in: Regenerate.
-
-2005-06-30 Ben Elliston <bje@gnu.org>
-
- * Makefile.am (EXPECT): Set to expect.
- (RUNTEST): Likewise, set to runtest.
- * Makefile.in: Regenerate.
-
-2005-06-17 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (CHECK_ENTSIZE_VALUES, CHECK_ENTSIZE): Define.
- (process_section_headers): Use it.
- (process_relocs): Don't crash if symsec is not SHT_SYMTAB
- or SHT_DYNSYM.
- (process_version_sections): Use sizeof (Elf_External_Versym)
- instead of sh_entsize.
-
-2005-06-16 Nick Clifton <nickc@redhat.com>
-
- * rename.c (simple_copy): Only define if it is going to be used.
- (smart_rename): Mark the preserve_dates parameter as possibly
- being unused.
-
- * resres.c (write_res_data): Prevent a potential compile time
- warning by casting the return value from fwrite.
-
-2005-06-14 H.J. Lu <hongjiu.lu@intel.com>
-
- PR 995
- * ar.c (BUFSIZE): Moved to ...
- * bucomm.h (BUFSIZE): Here.
-
- * bucomm.c: Include <assert.h>.
- (bfd_get_archive_filename): New.
- * bucomm.h (bfd_get_archive_filename): New.
-
- * objcopy.c (copy_unknown_object): New.
- (copy_object): Use bfd_get_archive_filename when reporting input
- error. Don't call fatal on unknown arch.
- (copy_archive): Call copy_unknown_object on unknown format or
- arch.
-
-2005-06-14 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (cmalloc, xcmalloc, xcrealloc): New functions.
- (get_data): Add nmemb argument. Return NULL if nmemb * size
- overflows. If var == NULL, allocate one extra byte and
- clear it.
- (slurp_rela_relocs, slurp_rel_relocs, get_32bit_program_headers,
- get_64bit_program_headers, get_program_headers,
- get_32bit_section_headers, get_64bit_section_headers,
- get_32bit_elf_symbols, get_64bit_elf_symbols, process_section_headers,
- process_section_groups, process_relocs, slurp_ia64_unwind_table,
- ia64_process_unwind, slurp_hppa_unwind_table, hppa_process_unwind,
- get_32bit_dynamic_section, get_64bit_dynamic_section,
- process_dynamic_section, process_version_sections, get_dynamic_data,
- process_symbol_table, dump_section, load_debug_str, load_debug_loc,
- load_debug_range, read_and_display_attr_value, process_debug_info,
- get_debug_info, frame_need_space, display_debug_frames,
- display_debug_section, process_mips_specific, process_gnu_liblist,
- process_corefile_note_segment): Adjust get_data callers. Use
- cmalloc, xcmalloc and xcrealloc instead of {m,xm,xre}alloc where
- passed size is a product of 2 numbers.
-
- * readelf.c (print_mode): Fix comment typo.
- (slurp_rela_relocs, slurp_rel_relocs): Fix memory leaks.
- (dump_relocations): Fix a thinko in check for invalid st_name.
- (process_program_headers): Don't crash if string_table is NULL.
- (process_section_headers): Don't crash if e_shstrndx is invalid.
- Ensure string_table_length is 0 if string_table == NULL.
- Don't return just because string_table is NULL.
- (process_section_groups): Don't crash if symtab's sh_link or
- symbol's st_name is invalid. Fix a memory leak. Fix check for
- invalid section number entry.
- (process_relocs): Don't crash if relocation or symbol section's
- sh_link is invalid.
- (slurp_ia64_unwind_table, slurp_hppa_unwind_table): Don't crash if
- relocation section's sh_info is invalid.
- (ia64_process_unwind, hppa_process_unwind): Don't crash if symbol
- table's sh_link is invalid.
- (process_version_sections): Don't crash on version or symbol
- section's sh_link is invalid. Don't crash if symbol's st_shndx
- is invalid.
- (process_symbol_table): Don't crash if string table is corrupt
- or symbol's st_name, st_shndx, vna_name or vda_name is invalid.
- (debug_apply_rela_addends): Don't crash if relocation section's
- sh_info or sh_link is invalid.
- (display_debug_loc): Warn for unterminated .debug_loc section
- or start offsets not within .debug_loc section boundaries.
- (process_gnu_liblist): Don't crash if liblist section's sh_link
- or entry's l_name is invalid.
-
-2005-06-09 Jakub Jelinek <jakub@redhat.com>
-
- * objdump.c (disassemble_bytes): Don't crash if q->howto == NULL.
- If q->howto->name == NULL, print q->howto->type as number instead.
- (dump_reloc_set): Likewise.
-
-2005-06-07 Eric Christopher <echristo@redhat.com>
-
- * readelf.c (guess_is_rela): Support ms1.
- (dump_relocations): Ditto.
- (get_machine_name): Ditto.
-
-2005-06-07 Aldy Hernandez <aldyh@redhat.com>
- Michael Snyder <msnyder@redhat.com>
- Stan Cox <scox@redhat.com>
-
- * Makefile.am (readelf.o): Depend on ms1.h.
-
- * Makefile.in: Regenerate.
-
- * readelf.c: Include ms1.h.
-
-2005-06-06 H.J. Lu <hongjiu.lu@intel.com>
-
- PR 990
- * nm.c (print_symbol): Call bfd_find_line before
- bfd_find_nearest_line.
-
-2005-06-06 Alan Modra <amodra@bigpond.net.au>
-
- * NEWS: Mention new powerpc ld support.
-
-2005-06-03 Steve Ellcey <sje@cup.hp.com>
-
- * configure.in: Check for getc_unlocked prototype.
- * configure: Regenerate.
- * config.in: Regenerate.
- * strings.c (get_char): Only call getc_unlocked if we have seen a
- prototype.
-
-2005-06-03 Nick Clifton <nickc@redhat.com>
-
- * configure.in (ALL_LINGUAS): Add zh_TW
- * configure: Regenerate.
- * po/zh_TW.po: New Chinese (traditional) translation.
-
-2005-05-31 Richard Henderson <rth@redhat.com>
-
- * readelf.c (dump_relocations): Special case R_ALPHA_LITUSE.
-
-2005-05-29 Richard Henderson <rth@redhat.com>
-
- * readelf.c (get_alpha_dynamic_type): New.
- (get_dynamic_type): Call it.
-
-2005-05-24 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (process_section_groups): Report group section
- index. Check if the section member index is valid.
-
-2005-05-23 Fred Fish <fnf@specifixinc.com>
-
- * addr2line.c (unwind_inlines): New flag for 'i' option.
- (usage): Document '-i' option.
- (long_options): Recognize '--inlines'.
- (translate_addresses): Loop, calling bfd_find_inliner_info as
- necessary and printing multiple output lines.
- (main): Handle 'i' option.
- * doc/binutils.texi (addr2line): Document '-i' option.
- * NEWS: Mention new addr2line '-i' option.
-
-2005-05-23 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (fetch_indirect_string): Display a warning message
- when a corrupt DW_FORM_strp value is encountered.
-
- (process_debug_info): Mention that the compilation unit offset is
- being displayed in hexadecimal.
-
- (display_debug_lines): Fix typo in name of .debug_line section.
-
-2005-05-19 Zack Weinberg <zack@codesourcery.com>
-
- * Makefile.am: Have 'all' depend on 'info'.
- * Makefile.in: Regenerate.
-
-2005-05-19 Ben Elliston <bje@au.ibm.com>
-
- * readelf.c (read_and_display_attr_value): Handle a DW_AT_encoding
- value of DW_ATE_GNU_decimal_float.
-
-2005-05-17 Daniel Jacobowitz <dan@codesourcery.com>
-
- * doc/Makefile.am (config.texi): Don't use $<.
- * doc/Makefile.in: Regenerated.
-
-2005-05-15 Yitzchak Scott-Thoennes <sthoenna@efn.org>
-
- * deflex.l: Ignore CRs
-
-2005-05-15 Daniel Jacobowitz <dan@codesourcery.com>
-
- * acinclude.m4: Remove obsolete code.
- * configure.in: Update AC_PREREQ.
- * doc/Makefile.am (binutils_TEXINFOS): Define.
- (config.texi): Depend on distributed files instead of built
- files.
- (binutils.dvi, binutils.info): Remove unnecessary rules.
- (DISTCLEANFILES): Remove.
- (install-data-local): Renamed from install.
- (info-local): Renamed from info.
- * Makefile.in, aclocal.m4, config.in, configure,
- doc/Makefile.in: Regenerated.
-
-2005-05-14 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (get_ppc_dynamic_type): Display DT_PPC_GOT, not
- DT_PPC_GLINK.
-
-2005-05-13 Fred Fish <fnf@specifixinc.com>
-
- * readelf.c: Fix a couple of obvious comment typos,
- 'debug_str' -> 'debug_ranges' and proecess' -> 'process'.
-
-2005-05-13 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (dump_ia64_unwind): Get stamp with proper size.
-
-2005-05-12 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (display_debug_lines): If pointer_size has not been
- found then assume that it is 4 in order to prevent a seg fault
- when process_extend_line_op attempts to read the line data.
-
-2005-05-11 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (get_ppc_dynamic_type): New function for DT_PPC_GLINK.
- (get_dynamic_type): Call the above.
-
-2005-05-07 Nick Clifton <nickc@redhat.com>
-
- * Update the address and phone number of the FSF organization in
- the GPL notices in the following files:
- aclocal.m4, addr2line.c, ar.c, arlex.l, arparse.y, arsup.c,
- arsup.h, binemul.c, binemul.h, bucomm.c, bucomm.h, budbg.h,
- budemang.c, budemang.h, coffdump.c, coffgrok.c, coffgrok.h,
- cxxfilt.c, debug.c, debug.h, deflex.l, defparse.y, dlltool.c,
- dlltool.h, dllwrap.c, emul_aix.c, emul_vanilla.c, filemode.c,
- ieee.c, nlmconv.c, nlmconv.h, nlmheader.y, nm.c, objcopy.c,
- objdump.c, prdbg.c, rclex.l, rcparse.y, rdcoff.c, rddbg.c,
- readelf.c, rename.c, resbin.c, rescoff.c, resrc.c, resres.c,
- size.c, srconv.c, stabs.c, strings.c, sysdump.c, sysinfo.y,
- syslex.l, unwind-ia64.c, unwind-ia64.h, version.c, windres.c,
- windres.h, winduni.c, winduni.h wrstabs.c, doc/fdl.texi
-
-2005-05-06 Jan Beulich <jbeulich@novell.com>
-
- * objcopy.c (copy_file): Don't delete output upon error here.
- (copy_main): Delete output upon error.
-
-2005-05-02 Ben Elliston <bje@au.ibm.com>
-
- * dlltool.c (dtab): Remove empty function.
- (process_duplicates): Remove calls to dtab().
-
-2005-05-01 Maciej W. Rozycki <macro@linux-mips.org>
-
- * doc/binutils.texi (strip, objcopy): Clarify the description of
- the "--strip-debug" option. Fix a typo.
-
-2005-04-29 H.J. Lu <hongjiu.lu@intel.com>
-
- * bucomm.c: Undo the last change.
- * bucomm.h: Likewise.
-
-2005-04-29 Ben Elliston <bje@au.ibm.com>
-
- * syslex.l (word, number, unit): Remove unused variables.
- * nlmheader.y (keyword_tokens): Make static.
- * coffdump.c (dump_coff_symbol, coff_dump): Make static.
- * coffgrok.c (lofile, last_function_symbol, last_function_type,
- last_struct, last_enum, cur_sfile): Make variables static.
- * sysdump.c (getCHARS, fillup, getBARRAY, getINT, getBITS,
- sysroff_swap_tr_in, sysroff_print_tr_out): Make static.
- * sysinfo.y (writecode, it, code, repeat, oldrepeat, name, rdepth,
- names, pnames): Likewise.
-
-2005-04-29 Ben Elliston <bje@au.ibm.com>
-
- * ar.c (mri_mode): Make static.
- * arsup.c (obfd, real_name, outfile): Likewise.
- * binemul.c (ar_emul_create): Remove unused function.
- (ar_emul_default_create): Likewise.
- * binemul.h (ar_emul_create): Remove declaration.
- (ar_emul_default_create): Likewise.
- (struct bin_emulation_xfer_struct): Remove ar_create member.
- * bucomm.c (report): Make static.
- * bucomm.h (report): Remove declaration.
- * cxxfilt.c (mbuffer): Make static.
- (main): Use unsigned ints for some loop control variables.
- * readelf.c: Make many global variables static.
- * size.c (berkeley_format): Make static.
- (long_options): Likewise.
- * emul_aix.c (bin_aix_emulation): Remove ar_emul_default_create
- structure initialiser.
- (bin_aix5_emulation): Likewise.
- * emul_vanilla.c (bin_vanilla_emulation): Likewise.
-
-2005-04-27 Ben Elliston <bje@au.ibm.com>
-
- * syslex.l: Adjust top-of-file comment: this file is part of GNU
- binutils, not GNU ld.
-
-2005-04-25 Nick Clifton <nickc@redhat.com>
-
- PR872
- * objcopy.c (copy_archive): Initialise 'obfd' field of new
- name_list structure.
-
- * objcopy.c (copy_usage): Fix description of -K switch.
-
- * doc/binutils.texi (strip, objcopy): Fix description of -K
- switch.
-
-2005-04-20 Daniel Jacobowitz <dan@codesourcery.com>
-
- * readelf.c (display_debug_frames): Use data factor for
- DW_CFA_def_cfa_sf and DW_CFA_def_cfa_offset_sf.
-
-2005-04-19 H.J. Lu <hongjiu.lu@intel.com>
-
- * objdump.c (dump_section_header): Skip linker created section.
-
-2005-04-17 H.J. Lu <hongjiu.lu@intel.com>
-
- * objdump.c (dump_section_header): Support SEC_GROUP.
-
-2005-04-16 Nick Clifton <nickc@redhat.com>
-
- * readelf.c (debug_apply_rela_addends): Remove redundant %s from
- printf string.
-
-2005-04-15 Nick Clifton <nickc@redhat.com>
-
- * objcopy.c (copy_file): Issue an error message when attmepting to
- copy an empty input file.
-
-2005-04-14 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am (NO_WERROR): Define. Use instead of -Wno-error.
- * configure.in: Include ../bfd/warning.m4 contents.
- * Makefile.in: Regenerate.
- * configure: Regenerate.
- * doc/Makefile.in: Regenerate.
-
-2005-04-12 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am: Run "make dep-am".
- (syslex.o, sysinfo.o, arparse.o, arlex.o): Add -Wno-error to command.
- (sysroff.o, defparse.o, deflex.o): Likewise.
- (nlmheader.o, rcparse.o, rclex.o): Likewise.
- * Makefile.in: Regenerate.
- * aclocal.m4: Regenerate.
- * config.in: Regenerate.
- * configure: Regenerate.
-
-2005-04-11 Jan Beulich <jbeulich@novell.com>
-
- * MAINTAINERS: Add myself as ix86 Intel mode maintainer.
-
-2005-04-06 Nick Clifton <nickc@redhat.com>
- H.J. Lu <hongjiu.lu@intel.com>
-
- * po/rw.po: New translation: Kinyarwanda.
- * configure.in (ALL_LINGUAS): Add rw.
- * configure: Regenerate.
-
-2005-04-04 Maciej W. Rozycki <macro@linux-mips.org>
-
- * readelf.c (debug_apply_rela_addends): Reorder r_info as
- necessary for 64-bit MIPS.
-
-2005-04-04 Maciej W. Rozycki <macro@linux-mips.org>
-
- * doc/binutils.texi (readelf): Remove a duplicate paragraph.
-
-2005-04-04 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
-
- PR binutils/813
- * objdump.c (dump_symbols): Add a check to see if the section for
- the symbol is chosen using process_section_p.
-
-2005-04-01 H.J. Lu <hongjiu.lu@intel.com>
-
- * NEWS: Mention new readelf options, "-N/--full-section-name"
- and "-g/--section-groups".
-
- * doc/binutils.texi: Document new readelf options,
- "-N/--full-section-name" and "-g/--section-groups".
-
-2005-03-31 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (do_full_section_name): New.
- (options): Add "--full-section-name"/'N'.
- (usage): Add -N/--full-section-name.
- (parse_args): Handle 'N'.
- (process_section_headers): Print out the full section name if
- do_full_section_name isn't 0.
-
-2005-03-31 Nick Clifton <nickc@redhat.com>
-
- * configure.in: Add a check for <unistd.h> providing a prototype
- for getopt() which is compatible with the one in
- include/getopt.h. If so then define HAVE_DECL_GETOPT.
- * configure: Regenerate.
- * config.in (HAVE_DECL_GETOPT): Add.
- * aclocal.m4: Regenerate.
- * addr2line.c: Include "config.h" before "bfd.h" so that
- HAVE_DECL_GETOPT is defined before getopt.h is included.
-
-2005-03-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
-
- * doc/binutils.texi: Document new VAX disassembler-specific option
- -M entry:0xfooba8.
- * NEWS: Mention the new option.
-
-2005-03-29 Anil Paranjpe <anilp1@kpitcummins.com>
-
- * MAINTAINERS: Add myself as H8300 maintainer.
-
-2005-03-28 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
-
- * objdump.c (disassemble_bytes): Remove cast.
-
-2005-03-25 Daniel Jacobowitz <dan@codesourcery.com>
-
- * BRANCHES: Add binutils-csl-arm-2005q1-branch and
- binutils-2_16-branch.
-
-2005-03-25 Mark Kettenis <kettenis@gnu.org>
-
- * MAINTAINERS: Add myself as M88k maintainer.
-
-2005-03-24 Danny Smith <dannysmith@users.sourceforge.net>
-
- * winduni.c (unicode_from_ascii): Don't declare variables
- 's' and 'w' if _WIN32. Use MultiByteToWideChar to set the unicode
- string len.
-
-2005-03-24 Dmitry Diky <diwil@spec.ru>
-
- * MAINTAINERS: Add myself as MSP430 maintainer.
-
-2005-03-23 Nick Clifton <nickc@redhat.com>
-
- * po/fr.po: Updated translation.
-
-2005-03-22 Nick Clifton <nickc@redhat.com>
-
- * MAINTAINERS: Add Daniel Jacobwitz to the blanket write
- privileges list.
-
-2005-03-17 Paul Brook <paul@codesourcery.com>
- Dan Jacobowitz <dan@codesourcery.com>
- Mark Mitchell <mark@codesourcery.com>
-
- * binutils/readelf.c (get_arm_segment_type): New function.
- (get_segment_type): Use it.
-
-2005-03-18 Paul Brook <paul@codesourcery.com>
-
- * objdump.c (objdump_print_addr): Avoid uninitialized warning.
-
-2005-03-17 Diego Novillo <dnovillo@redhat.com>
-
- * MAINTAINERS: Remove self as maintainer of x86 intel
- mode.
-
-2005-03-16 Nick Clifton <nickc@redhat.com>
- Ben Elliston <bje@au.ibm.com>
-
- * configure.in (werror): New switch: Add -Werror to the
- compiler command line. Enabled by default. Disable via
- --disable-werror.
- * configure: Regenerate.
-
-2005-03-15 Daniel Marques <marques@cs.cornell.edu>
- Nick Clifton <nickc@redhat.com>
-
- * objcopy.c (globalize_specific_list): New linked list of symbols
- to convert from local binding into global binding.
- (command_line_switch): Add OPTION_GLOBALIZE_SYMBOL and
- OPTION_GLOBALIZE_SYMBOLS.
- (copy_options): Add "globalize-symbol" and "globalize-symbols".
- (copy_usage): Document the new switches.
- (filter_symbols): Convert defined local symbols mentioned on the
- globalize_specific_list into global symbols.
- (copy_object): Perform actions if the globalize_specific_list is
- not empty.
- (copy_main): Handle new switches.
- * NEWS: Mention new feature.
- * doc/binutils.texi: Document new switches.
-
-2005-03-15 Alan Modra <amodra@bigpond.net.au>
-
- * po/es.po: Commit new Spanish translation.
-
- * po/fr.po: Commit new French translation.
-
-2005-03-14 Alan Modra <amodra@bigpond.net.au>
-
- * po/tr.po: Commit new Turkish translation.
-
-2005-03-11 Nick Clifton <nickc@redhat.com>
-
- * po/fr.po: Updated French translation.
-
-2005-03-10 Nick Clifton <nickc@redhat.com>
-
- * configure.in (ALL_LINGUAS): Add Romanian lingua "ro".
- * configure: Regenerate.
- * po/ro.po: New file.
-
- * po/ru.po: Updated file.
-
-2005-03-05 Alan Modra <amodra@bigpond.net.au>
-
- * po/binutils.pot: Regenerate.
-
-2005-03-02 Jan Beulich <jbeulich@novell.com>
-
- * ar.c (remove_output): Use unlink_if_ordinary instead of unlink.
- * objcopy.c (copy_file): Likewise.
- (strip_main): Likewise.
-
-2005-03-01 Stig Petter Olsroed <stigpo@users.sourceforge.net>
- Nick Clifton <nickc@redhat.com>
-
- * objdump.c: Fix coding for DISASSEMBLER_NEEDS_RELOC:
- (struct objdump_disasm_info): Add 'reloc' field.
- (disassemble_bytes): Fix check for when an insn has a reloc
- associated with it. Improve comment explaining why the use of
- octets is wrong. Set the 'reloc' field in objdump_disasm_info
- structure.
- (objdump_print_addr): Use new 'reloc' field to lookup the correct
- address for the symbol associated with the current instruction's
- relocation.
- (disassemble_info): Initialise 'reloc' field.
-
-2005-02-28 Jakub Jelinek <jakub@redhat.com>
-
- * readelf.c (get_file_type, get_machine_name, get_osabi_name,
- get_segment_type, get_section_type_name, get_elf_class,
- get_data_encoding, get_group_flags, dynamic_section_mips_val,
- get_symbol_binding, get_symbol_type, get_TAG_name, get_FORM_name,
- get_AT_name, process_mips_specific, process_gnu_liblist,
- get_note_type, get_netbsd_elfcore_note_type): Use snprintf instead of
- sprintf where needed.
- (get_dynamic_type): Likewise. Increase buff to 64 bytes.
- (get_elf_section_flags): Increase buff to 33 bytes. Avoid
- using strcat.
- (get_dynamic_flags): Renamed to...
- (print_dynamic_flags): ... this. Print the flags to stdout instead
- of returning them as string.
- (process_dynamic_section): Adjust caller.
-
-2005-02-25 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (display_debug_ranges): Print out offset for end of
- list.
-
-2005-02-23 Alan Modra <amodra@bigpond.net.au>
-
- * dlltool.c: Warning fixes.
- * objdump.c: Likewise.
-
-2005-02-22 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am (syslex.o, sysinfo.o): Pass AM_CFLAGS to compiler.
- (syslex.o, sysinfo.o, dlltool.o, rescoff.o): Remove duplicate
- dependencies. Run "make dep-am".
- * nlmconv.c: Warning fixes.
- * readelf.c: Likewise.
- * srconv.c: Likewise.
- * sysdump.c: Likewise.
- * sysinfo.y: Likewise.
- * syslex.l: Likewise. Use yyleng instead of strlen, memcpy instead
- of strcpy.
- * Makefile.in: Regenerate.
-
-2005-02-21 H.J. Lu <hongjiu.lu@intel.com>
-
- * objcopy.c (parse_flags): Replace SEC_SHARED with
- SEC_COFF_SHARED.
-
- * objdump.c (dump_section_header): Dump SEC_TIC54X_BLOCK and
- SEC_TIC54X_CLINK for TI c54x only. Remove SEC_ARCH_BIT_0. Dump
- SEC_COFF_SHARED for COFF only.
-
-2005-02-21 Alan Modra <amodra@bigpond.net.au>
-
- * Makefile.am: Run "make dep-am"
- * Makefile.in: Regenerate.
- * doc/Makefile.in: Regenerate.
-
-2005-02-21 Alan Modra <amodra@bigpond.net.au>
-
- * readelf.c (BYTE_GET8): Delete. Replace uses with BYTE_GET.
- (byte_get_little_endian): Don't handle size of -8.
- (byte_get_signed, byte_get_big_endian): Likewise.
- (print_dec_vma, print_hex_vma): New functions.
- (print_vma): Use them. Return chars output.
- (get_dynamic_data): Return a bfd_vma array. Add ent_size parm.
- (process_symbol_table): Handle alpha and s390 .hash.
-
-2005-02-18 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (display_debug_loc): Print out offset for end of
- list.
-
-2005-02-18 Joseph S. Myers <joseph@codesourcery.com>
-
- * Makefile.am (TOOL_PROGS): Add objdump.
- * Makefile.in: Regenerate.
-
-2005-02-17 Alan Modra <amodra@bigpond.net.au>
-
- * deflex.l (YY_NO_UNPUT): Define.
- * rclex.l (YY_NO_UNPUT): Define.
- * rcparse.y (null_unichar): New static var.
- (res_null_text): Use it rather than attempting to init from wchar_t.
- * windres.c: Include assert.h and time.h before getopt.h.
- Include config.h and unistd.h too.
-
-2005-02-15 Nick Clifton <nickc@redhat.com>
-
- * nlmconv.c: Provide a full prototype for the localtime() function
- in order to avoid a compile time warning.
-
-2005-02-11 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (group_count): Don't initialize it.
- (process_section_groups): Reurn 1 if we won't do unwind nor
- section groups. Set group_count to 0 before counting group
- sections and return 1 if there are no group sections. Reread
- SHT_SYMTAB/SHT_STRTAB sections only when needed. Don't skip
- section 0.
- (process_object): Only set do_unwind to 0 if
- process_section_groups return 0.
-
-2005-02-10 Ian Lance Taylor <ian@airs.com>
-
- * MAINTAINERS: Update my e-mail address.
-
-2005-02-10 Mark Mitchell <mark@codesourcery.com>
-
- * MAINTAINERS: Add Paul Brook and Mark Mitchell as ARM (Symbian)
- maintainers.
-
-2005-02-07 Inderpreet Singh <inderpreetb@noida.hcltech.com>
-
- * MAINTAINERS: Add self as maintainer of MAXQ.
-
-2005-01-31 Richard Sandiford <rsandifo@redhat.com>
-
- * readelf.c (eh_addr_size): New variable.
- (find_section): Move earlier in file. Return empty sections too.
- (process_program_headers): Use find_section to find .dynamic.
- (process_section_headers): Initialize eh_addr_size.
- (dump_ia64_unwind, slurp_ia64_unwind_table, ia64_process_unwind)
- (dump_hppa_unwind, slurp_hppa_unwind_table, hppa_process_unwind)
- (display_debug_frames): Use it instead of local addr_size variable.
- (size_of_encoded_value): Get pointer size from eh_addr_size rather
- than is_32bit_elf.
-
-2005-01-31 Andrew Cagney <cagney@gnu.org>
-
- * configure: Regenerate to track ../gettext.m4.
-
-2005-01-31 Nick Clifton <nickc@redhat.com>
-
- * version.c (print_version): Bump the copyright date to 2005.
-
-2005-01-25 Alan Modra <amodra@bigpond.net.au>
-
- * nm.c (display_rel_file): Read dynamic syms before calling
- bfd_get_synthetic_symtab.
-
-2005-01-21 Ben Elliston <bje@au.ibm.com>
-
- * dlltool.c (dump_iat): Remove unused function.
- (gen_exp_file): Remove #if 0'd code.
- (make_one_lib_file): Likewise.
- * srconv.c: Remove #if 0'd code throughout.
- * size.c (lprint_number): Remove.
- (print_berkeley_format): Remove #if 0'd code.
- * ar.c (do_quick_append): Remove declaration and definiton.
- (main): Remove #if 0'd code.
- * filemode.c (filemodestring): Remove #if 0'd function.
- * sysdump.c (unit_info_list): Remove function.
- (object_body_list): Likewise.
- (program_structure): Likewise.
- (debug_list): Likewise.
- (module): Remove #if 0'd code.
-
-2005-01-20 Mark Mitchell <mark@codesourcery.com>
-
- * BRANCHES: Add binutils-2_15-branch.
-
- * MAINTAINERS: Document branch policy.
- * BRANCHES: New file.
-
-2005-01-19 Fred Fish <fnf@specifixinc.com>
-
- * NEWS: Make note of the new MIPS disassembly option "no-aliases".
- * doc/binutils.texi (objdump): Document the "no-aliases"
- disassembly option.
-
-2005-01-17 Eugene Kotlyarov <ekot@narod.ru>
-
- PR binutils/647
- * rcparse.y (RCDATA): Allow a filename to be supplied as the
- parameter. Parse it with define_rcdata_file().
- * resrc.c (define_rcdata_file): New function.
- * windres.h: Provide a prototype for the new function.
-
- * resrc.c (define_user_file): Fix typo by replacing "font file"
- with "file".
-
-2005-01-16 Jason Thorpe <thorpej@netbsd.org>
-
- * MAINTAINERS: Update my email address.
-
-2005-01-16 Danny Smith <dannysmith@users.sourceforge.net>
-
- * dlltool.c (set_dll_name_from_def): New function. Strip name
- to basename, with warning.
- (def_name): Use it.
- (def_library): Likwise.
- (main): Strip arg of --dllname to basename, with warning.
- Only use basename of exp_name when inferring dll_name.
-
-2005-01-11 Nick Clifton <nickc@redhat.com>
-
- PR binutils/637
- * doc/binutils.texi (c++filt): Use uppercase CXXFILT in the
- footnote in order to prevent the sed script in the Makefile from
- converting it into c++filt.
-
-2005-01-10 H.J. Lu <hongjiu.lu@intel.com>
-
- BZ 635
- readelf.c (saved_base_address): Removed.
- (decode_64bit_range): Likewise.
- (decode_range): Likewise.
- (display_64bit_debug_ranges): Likewise.
- (debug_info): Add range_lists, num_range_lists and
- max_range_lists.
- (read_and_display_attr_value): Handle do_debug_ranges.
- (process_debug_info): Likewise.
- (display_debug_ranges): Rewrite.
- (process_object): Free range_lists.
-
-2005-01-10 Andreas Schwab <schwab@suse.de>
-
- * configure.in: Don't define SKIP_ZEROES.
- * configure: Regenerate.
- * objdump.c (disassemble_data): Set skip_zeroes and
- skip_zeroes_at_end in disasm_info to defaults.
- (DEFAULT_SKIP_ZEROES): Rename from SKIP_ZEROES and always define.
- (DEFAULT_SKIP_ZEROES_AT_END): Rename from SKIP_ZEROES_AT_END and
- always define.
- (disassemble_bytes): Use skip_zeroes and skip_zeroes_at_end from
- objdump_disasm_info.
-
-2005-01-05 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (display_debug_loc): Display base address
- specifiers. Always output <End of list>.
-
-2005-01-05 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (have_frame_base): New.
- (need_base_address): Likewise.
- (saved_base_address): Likewise.
- (decode_location_expression): Return 1 if DW_AT_frame_base is
- needed.
- (debug_info): Add base_address and a have_frame_base pointer.
- (read_and_display_attr_value): Replace saved_DW_AT_low_pc with
- saved_base_address. Record base address. Set have_frame_base.
- Record if a location list has DW_AT_frame_base. Display if a
- location expression has no DW_AT_frame_base but needs one. Set
- saved_base_address only if needed.
- (process_debug_info): Clear have_frame_base, saved_base_address
- and set need_base_address.
- (display_debug_loc): Display if a location expression has no
- DW_AT_frame_base but needs one. Display if start >= end. Don't
- adjust for section address. Properly handle base address.
- (process_object): Free the have_frame_base pointer in
- debug_info.
-
-2005-01-04 H.J. Lu <hongjiu.lu@intel.com>
-
- * readelf.c (display_debug_loc): Display offsets for hole and
- overlap.
- (display_debug_str): Add a newline at the end.
-
-2005-01-04 Armin Diehl <diehl@nordrhein.de>
-
- PR binutils/630
- * nlmconv.c (main): Only store the basename of the output filename
- in the module table.
-
-2005-01-04 H.J. Lu <hongjiu.lu@intel.com>
-
- BZ 615
- * readelf.c (process_debug_info): New.
- (debug_info): Add num_loc_offsets, loc_offsets and
- last_loc_offset_p.
- (get_debug_info): Use process_debug_info.
- (display_debug_loc): Properly handle location list. Warn if bad
- location lists are encoutnered.
- (read_and_process_attr_value): New.
- (read_and_display_attr_value): Use "%lx" for DW_FORM_data4.
- (display_debug_info): Use process_debug_info.
- (process_object): Also free loc_offsets in debug_information.
-
-For older changes see ChangeLog-2004
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/binutils-2.17/binutils/ChangeLog-9197 b/binutils-2.17/binutils/ChangeLog-9197
deleted file mode 100644
index 98613157..00000000
--- a/binutils-2.17/binutils/ChangeLog-9197
+++ /dev/null
@@ -1,5217 +0,0 @@
-Mon Dec 29 16:58:05 1997 Ian Lance Taylor <ian@cygnus.com>
-
- From Matthew Bellantoni <matthew@chrysalis.com>:
- * ar.c (get_pos_bfd): Add default_posname parameter. Change all
- callers.
- (replace_members): Default to replacing in the same position.
-
-Mon Dec 22 11:27:22 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * rclex.l: Don't permit a comma in a STRING.
- * rcparse.y (acc_entry): Warn if an inappropriate modifier is used
- with a non VIRTKEY.
- (acc_event): For a control character, set VIRTKEY, and force the
- character to uppercase.
- (acc_options): Don't require a comma separator.
-
-Tue Dec 9 13:25:42 1997 Michael Meissner <meissner@cygnus.com>
-
- * size.c (size_number): New function to provide size of field.
- ({l,r}print_number): For octal and hex fields, print field using
- '0' and '0x' suffixes. Do not include following tab.
- (sysv_internal_sizer): Size section name, section size, and vma
- address fields.
- (sysv_internal_printer): Use calculated sizes for the columns.
- (print_sysv_format): Size columns before printing.
- (print_berkeley_format): Print tabs between numbers now that
- {l,r}print_number doesn't. Print fields right justified.
-
-Mon Dec 8 11:22:04 1997 Nick Clifton <nickc@cygnus.com>
-
- * objdump.c (objdump_print_addr_with_sym): Remove call to
- disasm_symaddr() as this function no longer exists.
-
-Tue Dec 2 10:23:50 1997 Nick Clifton <nickc@cygnus.com>
-
- * objdump.c (objdump_print_addr_with_sym): Call disasm_symaddr()
- to allow backend to know which symbol has just been displayed.
-
-Tue Dec 2 13:06:46 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * windres.h (ESCAPE_*): Define standard escape sequences.
- * rclex.l (handle_quotes): Handle standard escape sequences. Warn
- about an unrecognized escape character.
- * windres.c (unicode_print): Print standard escape sequences.
- * rcparse.y (acc_event): Initialize $$.next.
- * resbin.c (bin_to_res_menuitems): Don't set MENUITEM_POPUP or
- MENUITEM_ENDMENU in the menu item flags.
- (bin_to_res_accelerators): Allocate a structure (the old code
- never worked).
- (res_to_bin_accelerator): Correct the test for setting ACC_LAST.
- (res_to_bin_dialog): Save the extended style rather than saving
- the style twice. Remove useless shadowing length variable. Set
- the length of control data correctly.
- * resrc.c (write_rc_dialog): Don't print the class or menu if the
- string length is zero.
-
-Mon Nov 24 18:52:43 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * stabs.c (parse_stab_argtypes): Don't try to parse the name of a
- destructor as mangled argument types.
-
-Mon Nov 10 17:51:41 1997 Gavin Koch <gavin@cygnus.com>
-
- * addr2line.c (translate_addresses): Use bfd_scan_vma rather
- than strtol to scan addresses.
-
-Sun Nov 9 11:01:31 1997 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.am (bin_PROGRAMS): Don't use line continuations here.
-
-Tue Nov 4 11:56:14 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c (copy_section): Don't crash if there is no particular
- information for a section.
-
-Mon Nov 3 12:36:19 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c (parse_flags): Make flag check case insensitive.
- Check for `contents' flag. Give an error for unrecognized flags.
- (copy_section): If the contents flag was set for a section that
- had no contents, zero out the new contents.
- * binutils.texi (objcopy): Document contents section flag.
-
-Sun Nov 2 14:49:56 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c: Move new struct and variable definitions to top of
- file. Remove obsolete add_strip_symbol and is_strip_symbol
- declarations. Add prototype declarations for add_specific_symbol
- and is_specified_symbol.
-
-Mon Oct 20 15:31:43 1997 Klaus K"ampf <kkaempf@progis.de>
-
- * configure.com (HAVE_SBRK): Undefine.
-
-Tue Oct 14 16:14:35 1997 Nick Clifton <nickc@cygnus.com>
-
- * objdump.c (objdump_symbol_at_address): New function. Returns
- true if a symbol can be found at the address passed in.
- (disassemble_data): Set the symbol_at_address_func field to point
- to objdump_symbol_at_address.
-
-Fri Oct 10 14:13:09 1997 Richard Henderson <rth@cygnus.com>
-
- * objcopy.c, objcopy.1, binutils.texi: "localize" is a better name
- than "privatize". Update all references.
-
-Thu Oct 9 15:57:29 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils.texi (strip): Remove duplicate --target. From Marty
- Leisner <leisner@sdsp.mc.xerox.com>.
-
- * nm.c (lineno_cache_bfd): New file static variable.
- (lineno_cache_rel_bfd): New file static variable.
- (display_archive): Clear lineno_cache_bfd and lineno_cache_rel_bfd
- when closing a BFD.
- (display_file): Likewise.
- (print_symbol): Use lineno_cache_bfd and lineno_cache_rel_bfd
- instead of cache_bfd and cache_rel_bfd. Make seccount static, and
- only set it when setting relocs.
-
-Wed Oct 8 21:19:11 1997 Richard Henderson <rth@cygnus.com>
-
- * objcopy.c (keep_specific_list, privatize_specific_list,
- weaken_specific_list): New variables.
- (keep_symbols): Removed.
- (add_specific_symbol): New function from the carcas of
- add_strip_symbol. Takes a list as an argument.
- (is_specified_symbol): Likewise from is_strip_symbol.
- (filter_symbols): Honor the new privatize and weaken lists.
- Optimize bfd_asymbol_name handling.
- (copy_object, copy_options, copy_usage): Add privatize-symbol &
- weaken-symbol options.
-
- * objcopy.1, binutils.texi: Update docs.
-
-Sun Oct 5 09:05:44 1997 Frank Ch. Eigler <fche@cygnus.com>
-
- * objdump.c (disassemble_data): Make "--prefix-addresses"
- disassembly adjust to mixed-length instructions.
- (objdump_print_addr_with_sym): Add "0x" prefix for hexadecimal
- symbol-offsets in disassembly.
-
-Fri Oct 3 12:04:25 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c (set_times): New static function, replacing
- make_same_dates.
- (strip_main): If preserve_dates, stat the input file before
- copying it, and call set_times afterward.
- (copy_main): Likewise.
-
- * wrstabs.c (write_stabs_in_sections_debugging_info): Cast p to
- char * when calling strcpy and strlen.
-
-Wed Sep 24 11:34:05 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils.texi (ar cmdline): Document that q now works like r.
- From Marty Leisner <leisner@sdsp.mc.xerox.com>.
-
- * binutils.texi (size): The object file argument is optional.
- From Marty Leisner <leisner@sdsp.mc.xerox.com>.
-
- * aclocal.m4: Rebuild with new libtool.
- * configure: Rebuild.
-
-Tue Aug 26 17:48:34 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.am (EXEEXT_FOR_BUILD): New variable. Use it in all
- references to the sysinfo program.
- * configure.in: Rebuild with new bfd/acinclude.m4.
- * Makefile.in: Rebuild.
-
-Fri Aug 8 15:32:49 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * windres.c: Include <time.h>.
- (define_resource): Set a timestamp for the resource.
-
-Wed Aug 6 13:37:58 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Define TARGET in header file.
- * acconfig.h (TARGET): Add #undef.
- * Makefile.am (version.o, bucomm.o): Remove special targets.
- * bucomm.c (target): Remove.
- * nm.c (program_name): Don't declare.
- (target): Make static.
- * size.c (target): Make static.
- * configure, config.in, Makefile.in: Rebuild.
-
-Tue Aug 5 00:01:41 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.am (check-DEJAGNU): Export r.
- (.dep1): Use $(INCLUDES) rather than $(ALL_CFLAGS).
- * Makefile.in: Rebuild.
-
- * nlmheader.y: Use VERSIONK rather than VERSION.
-
- * Makefile.am (STRIP_PROG): Change from strip.new to strip-new.
- (NM_PROG): Change from nm.new to nm-new.
- (TOOL_PROGS, install-exec-local): Adjust accordingly.
- * Makefile.in: Rebuild.
-
-Mon Aug 4 11:47:31 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Remove AC_ARG_PROGRAM; it's invoked by
- AM_INIT_AUTOMAKE.
- * configure: Rebuild.
-
- * Makefile.am (install-exec-local): Create $(tooldir)/bin before
- trying to install anything into it.
- * Makefile.in: Rebuild.
-
- * Makefile.am (TOOL_PROGS): Use an explicit $(EXEEXT).
- (install-exec-local): When handling $(noinst_PROGRAMS), only use
- $(EXEEXT) on the installed file. When handling $(TOOL_PROGS),
- handle $(EXEEXT) correctly.
- * configure.in: Add an explicit $(EXEEXT) when substituting for
- the name of a program to build.
- * Makefile.in, configure: Rebuild.
-
- * aclocal.m4, configure, Makefile.in: Rebuild with new automake
- patches.
-
- * deflex.l, defparse.y: Use VERSIONK rather than VERSION.
- * rclex.l, rcparse.y: Likewise.
- * Makefile.am (windres_SOURCES): Add $(BULIBS).
- * Makefile.in: Rebuild.
-
-Fri Aug 1 13:08:39 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * acinclude.m4: Include bfd/acinclude.m4, not bfd/acmacros.m4.
- * aclocal.m4, configure: Rebuild with new libtool.
-
-Thu Jul 31 11:51:35 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.am: New file, based on old Makefile.in.
- * acinclude.m4: New file, from old aclocal.m4.
- * configure.in: Call AM_INIT_AUTOMAKE and AM_PROG_LIBTOOL. Remove
- shared library handling; now handled by libtool. Replace
- AC_CONFIG_HEADER with AM_CONFIG_HEADER. Call AC_PROG_YACC,
- AC_PROG_LEX, AC_DECL_YYTEST, AM_MAINTAINER_MODE, AM_CYGWIN32, and
- AM_EXEEXT. Replace AC_PROG_INSTALL with AM_PROG_INSTALL. Remove
- stamp-h handling in AC_OUTPUT.
- * acconfig.h: Mention PACKAGE and VERSION.
- * stamp-h.in: New file.
- * Makefile.in: Now built with automake.
- * aclocal.m4: Now built with aclocal.
- * config.in, configure: Rebuild.
-
- From Ton van Overbeek <tvoverbe@wk.estec.esa.nl>:
- * rcparse.y (dialog): Default menu and class to be named.
- (styles): If FONT is seen, set DS_SETFONT in dialog style.
- * resbin.c (res_to_bin_dialog): Correct computation of font
- information length.
-
-Wed Jul 30 11:21:06 1997 Ian Lance Taylor <ian@cygnus.com>
-
- From Ton van Overbeek <tvoverbe@wk.estec.esa.nl>:
- * resbin.c (res_to_bin_menu): Correct computation of menu
- vs. menuex length.
- * resrc.c (define_stringtable): Add 1 to resource ID.
-
-Tue Jul 29 11:06:03 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * resbin.c (bin_to_res_string): Correct adjustment of data and
- length. From Ton van Overbeek <tvoverbe@wk.estec.esa.nl>.
-
-Tue Jul 22 18:01:23 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * nlmconv.c (link_inputs): Call libiberty pexecute function.
- (pexecute) [multiple versions]: Remove.
-
-Tue Jul 22 16:19:34 1997 Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>
-
- * bucomm.c (make_tempname): If we might be using a DOS filesystem,
- check for a backslash as well as a slash.
-
-Thu Jun 26 13:53:17 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * windres.c (main): Quit if we didn't get any resources.
- (usage): Fix --yydebug usage message.
- * rescoff.c (write_coff_file): Don't free the relocation array
- until after we've closed the BFD.
- (read_coff_rsrc): Quit rather than try to read standard input.
- (write_coff_file): Quit rather than try to write to standard
- output.
- * rcparse.y: Add a couple of missing semicolons (accepted by bison
- but not byacc).
- * binutils.texi: Document windres.
-
-Wed Jun 25 20:57:06 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * resbin.c: New file.
- * rclex.l, rcparse.y, rescoff.c, resrc.c, windres.c, windres.h:
- Numerous fixes and improvements.
- * Makefile.in: Rebuild dependencies.
- (CFILES): Add resbin.c.
- (WINDRES_OBJS): Add resbin.o.
-
-Sun Jun 22 17:29:41 1997 Ian Lance Taylor <ian@cygnus.com>
-
- First stab at Windows resource compiler:
- * windres.h: New file.
- * windres.c: New file.
- * resrc.c: New file.
- * rcparse.y: New file.
- * rclex.l: New file.
- * rescoff.c: New file.
- * configure.in: Define and substitute BUILD_WINDRES.
- * configure: Rebuild.
- * Makefile.in: Rebuild dependencies.
- (WINDRES_PROG): New variable.
- (PROGS): Add @BUILD_WINDRES@.
- (HFILES): Add dlltool.h and windres.h.
- (CFILES): Add windres.c and resrc.c.
- (GENERATED_CFILES): Add rcparse.c and rclex.c.
- (WINDRES_OBJS): New variable.
- $(WINDRES_PROG): New target.
- (rcparse.c, rcparse.h, rclex.c): New targets.
-
-Thu Jun 12 12:27:51 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * dlltool.c (export_type): Add data field.
- (def_exports): Add data parameter. Change all callers.
- (dump_def_info): Print data field.
- (gen_def_file): Likewise.
- (make_one_lib_file): Handle data field by not emitting simple
- label and not emitting anything in SEC_TEXT.
- (dtab): Print data field.
- (process_duplicates): Merge data field.
- * dlltool.h (def_exports): Update declaration.
- * defparse.y (expline): Accept opt_DATA. Pass it to def_exports.
- (opt_DATA): New non-terminal.
-
-Wed Jun 11 17:15:47 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * dlltool.h: New file.
- * deflex.l: Include dlltool.h and libiberty.h. Don't declare
- strdup. Use xstrdup rather than strdup.
- * defparse.y: Include bfd.h, bucomm.h, and dlltool.h.
- * dlltool.c: Include dlltool.h and time.h. Make a lot of
- variables and functions static. Make a lot of char * variables
- and parameters const. Add declarations for static functions. Do
- some reindenting. Hide more PowerPC stuff inside DLLTOOL_PPC.
-
-Wed Jun 11 12:05:52 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
-
- * ar.c (bfd_special_undocumented_glue): Add const.
-
-Mon May 12 22:09:35 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * Makefile.in (check): Pass CC_FOR_TARGET and CFLAGS_FOR_TARGET
- to runtest.
-
-Mon May 12 13:14:22 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Don't clear OPCODES when --enable-commonbfdlib is
- used on HP/UX.
- * configure: Rebuild.
-
-Fri Apr 25 14:22:08 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
-
- * Makefile.in (maintainer-clean realclean): Change *.info*
- to binutils.info* to save sysroff.info.
-
-Tue Apr 15 13:42:22 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (INSTALL): Set to @INSTALL@.
- (INSTALL_XFORM, INSTALL_XFORM1): Remove.
- (install): Depend upon installdirs. Use $(program_transform_name)
- directly, rather than using $(INSTALL_XFORM) and
- $(INSTALL_XFORM1).
- (installdirs): New target.
- (install-info): Run mkinstalldirs.
-
-Mon Apr 14 11:52:39 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (INSTALL): Change install.sh to install-sh.
-
- From Thomas Graichen <graichen@rzpd.de>:
- * Makefile.in: Always use $(SHELL) when running move-if-change.
- * configure.in: Use ${CONFIG_SHELL} when running $ac_config_sub.
- * configure: Rebuild.
-
-Fri Apr 4 13:28:02 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Add AC_FUNC_ALLOCA.
- * configure, config.in: Rebuild.
- * bucomm.h: Add alloca handling, copied from gas/as.h.
- * dlltool.c: Add #pragma alloca for AIX to start of file.
- * nlmconv.c: Likewise.
-
- * Makefile.in (distclean): Remove site.exp and site.bak. Remove
- everything that clean removes.
-
-Thu Apr 3 13:18:39 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (VERSION): Set to 2.8.1.
-
- * Branched binutils 2.8.
-
-Tue Apr 1 16:21:44 1997 Klaus Kaempf <kkaempf@progis.de>
-
- * configure.com: New file.
- * config.h-vms: Remove file.
- * makefile.vms: Update for new configure scheme.
-
-Mon Mar 31 15:30:43 1997 Philippe De Muyter <phdm@info.ucl.ac.be>
-
- * objcopy.c (make_same_dates): Use statbuf, not buf, if not
- HAVE_GOOD_UTIME_H.
-
-Fri Mar 28 17:57:53 1997 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * Makefile.in ($(OBJDUMP_PROG)): Don't link against BFDLIB twice.
- * configure.in: Add AC_ARG_ENABLE for commonbfdlib. If it is set,
- set OPCODES to empty.
- * configure: Rebuild.
-
-Thu Mar 27 16:03:02 1997 Ian Lance Taylor <ian@cygnus.com>
-
- Based on patch from Marty Leisner <leisner@sdsp.mc.xerox.com>:
- * objcopy.c: Include <utime.h> or <sys/time.h>.
- (strip_options): Add "preserve-dates".
- (copy_options): Likewise.
- (copy_usage): Mention -p and --preserve-dates.
- (strip_usage): Likewise.
- (make_same_dates): New static function.
- (strip_main): Handle -p.
- (copy_main): Likewise.
- * binutils.texi, strip.1, objcopy.1: Document new option.
-
- addr2line.c contributed by Ulrich Lauther
- <Ulrich.Lauther@zfe.siemens.de>:
- * addr2line.c: New file.
- * Makefile.in: Rebuild dependencies.
- (ADDR2LINE_PROG): New variable.
- (MANPAGES): Add addr2line.
- (PROGS): Add $(ADDR2LINE_PROG).
- (CFILES): Add addr2line.c.
- ($(ADDR2LINE_PROG)): New target.
- * binutils.texi: Document addr2line.
- * addr2line.1: New file.
-
- * version.c (print_version): Update copyright date.
-
-Mon Mar 24 10:52:45 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * objdump.c (disassemble_data): Don't exit if a file cannot be
- disassembled, instead just return.
-
-Thu Mar 20 21:16:51 1997 Jeffrey A Law (law@cygnus.com)
-
- * size.c (usage): Make definition match its prototype.
- (display_bfd, lprint_number, rprint_number): Likewise.
- (print_berkeley_format, sysv_internal_printer): Likewise.
- (print_sysv_format): Likewise.
- * nm.c (set_print_radix, set_output_format): Likewise.
- * objcopy.c (filter_bytes): Likewise.
-
-Tue Mar 18 16:39:55 1997 H.J. Lu <hjl@lucon.org>
-
- * Many files: Add function prototypes.
- * ar.c (mri_emul, get_pos_bfd): Make static.
- * arlex.l: Include "libiberty.h". Don't declare strdup. Use
- xstrdup rather than strdup.
- * arparse.y (yyerror): Make argument const. Correct typo.
- * arsup.c (strdup): Don't declare.
- (ar_save): Use xstrdup rather than strdup.
- * filemode.c: Include "bucomm.h".
- * nm.c (usage): Make static.
- (print_symname): Make format and name const.
- * objcopy.c (cat): Remove.
- (copy_archive): Make output_target const. Use concat, not cat.
- (copy_file, simple_copy, smart_rename): Make arguments const.
- * objdump.c (read_section_stabs): Likewise.
- (print_section_stabs): Likewise.
- (display_target_tables): Don't declare getenv.
- * strings.c (strings_object_file): Change file to const.
- (print_strings): Change filename to const.
- * Makefile.in: Rebuild dependencies.
-
-Tue Mar 18 11:37:24 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Add BFD_NEED_DECLARATION(getenv).
- * acconfig.h: Add NEED_DECLARATION_GETENV.
- * bucomm.h (getenv): Declare if NEED_DECLARATION_GETENV.
- * configure, config.in: Rebuild.
- * nlmconv.c (getenv): Don't declare.
-
- * Makefile.in: Rebuild dependencies.
-
-Sat Mar 15 15:35:56 1997 Ian Lance Taylor <ian@cygnus.com>
-
- Based on patches from Jamie Lokier <jamie@rebellion.co.uk>:
- * objdump.c: Include "demangle.h".
- (do_demangle): New static variable.
- (usage): Mention -C/--demangle.
- (long_options): Add "demangle".
- (objdump_print_symname): New static function.
- (objdump_print_addr_with_sym): Use objdump_print_symname.
- (disassemble_bytes): Likewise.
- (dump_reloc_set): Likewise.
- (dump_symbols): Demangle symbol name.
- (main): Handle -C.
- * binutils.texi, objdump.1: Document -C/--demangle.
-
- * objdump.c (usage): Mention --no-show-raw-insn.
- (long_options): Add "no-show-raw-insn".
- (disassemble_bytes): Handle --no-show-raw-insn.
- * binutils.texi, objdump.1: Document --no-show-raw-insn.
-
-Wed Mar 12 11:42:00 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * rddbg.c (free_saved_stabs): Set the strings to NULL after being
- freed.
-
-Fri Feb 28 17:18:45 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * bucomm.c (set_default_bfd_target): New function.
- * bucomm.h (set_default_bfd_target): Declare.
- * ar.c (main): Call set_default_bfd_target.
- * nlmconv.c (main): Likewise.
- * nm.c (main): Likewise.
- * objcopy.c (main): Likewise.
- * objdump.c (main): Likewise.
- * size.c (main): Likewise.
- * strings.c (main): Likewise.
- * Makefile.in (bucomm.o): New target, to define TARGET.
-
-Tue Feb 25 21:28:38 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (adjust_section_vma): New static variable.
- (usage): Mention --adjust-section-vma.
- (OPTION_ADJUST_VMA): Define.
- (long_options): Add "addjust-vma".
- (display_bfd): If adjust_section_vma is not 0, add it to all the
- section addresses.
- (main): Handle OPTION_ADJUST_VMA.
- * binutils.texi, objdump.1: Document --adjust-vma.
-
-Fri Feb 14 18:46:47 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * nm.c (print_symbol): Cache the BFD as well as the symbols and
- relocs, and don't try to use the symbols or relocs with a
- different BFD.
-
-Thu Feb 13 21:34:43 1997 Klaus Kaempf (kkaempf@progis.de)
-
- * config.h-vms: sbrk() is provided on openVMS/Alpha.
- * makefile.vms: allow compiling with current gcc snapshot.
-
-Thu Feb 13 20:14:40 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * arsup.c, coffgrok.c, dlltool.c, nlmconv.c: Use xmalloc rather
- than malloc.
-
-Wed Feb 12 16:12:02 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (disassemble_data): Correct VMA argument to
- find_symbol_for_address. Improve handling of code with no symbol
- followed by code with a symbol.
-
-Wed Feb 12 12:16:47 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * objdump.c (disassemble_bytes): Make output of raw instructions
- work better for non-standard values of bytes_per_chunk and
- bytes_per_line.
-
-Thu Feb 6 14:14:59 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
-
- * objdump.c (disassemble_bytes): Added code to allow some control
- over the way raw instructions are displayed.
-
-Thu Feb 6 12:36:03 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * stabs.c (struct bincl_file): Add next_stack field.
- (push_bincl): Put the new file on both bincl_list and
- bincl_stack. Clear the file_types field.
- (pop_bincl): Use the next_stack field when popping the stack.
- Don't put the file on bincl_list.
- (find_excl): Include the file name when warning about an unfound
- N_EXCL.
-
- * debug.c (debug_type_samep): Don't crash if we are passed NULL.
-
-Thu Feb 6 11:54:24 1997 Alan Modra <alan@spri.levels.unisa.edu.au>
-
- * objcopy.1: Add missing space after .B.
-
-Fri Jan 31 10:33:07 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * objdump.c (disassemble_data): Initialize `aux.require_sec'.
-
-Wed Jan 29 13:21:21 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (objdump_print_value): Add skip_zeroes parameter.
- Change all callers.
- (objdump_print_addr_with_sym): Likewise. Call objdump_print_value
- to print address.
- (objdump_print_addr): New static function.
- (objdump_print_address): Just call objdump_print_addr.
- (disassemble_bytes): Print real address, not function offset.
- Skip a certain number of leading zeroes.
-
- * objdump.c (disassemble_zeroes): New static variable.
- (usage): Mention --disassemble-zeroes.
- (long_options): Add "disassemble-zeroes".
- (disassemble_bytes): Check disassemble_zeroes.
-
-Tue Jan 28 16:47:26 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (disassemble_bytes): Don't skip zeroes if the
- disassembler has told us that we are in a branch delay slot.
-
-Mon Jan 20 14:24:04 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * size.c (berkeley_sum): Rewrite. Skip sections which are not
- SEC_ALLOC. Count SEC_READONLY sections as text.
-
-Tue Jan 14 15:14:14 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (maintainer-clean realclean): Remove *.info*, not
- just *.info. From H.J. Lu <hjl@lucon.org>.
-
-Tue Dec 31 15:42:54 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (ALL_CFLAGS): Add -D_GNU_SOURCE.
-
-Fri Dec 27 11:19:26 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Work around bug in AC_FUNC_VFORK in autoconf 2.12.
- * configure: Rebuild.
-
-Thu Dec 19 13:11:20 1996 Ian Lance Taylor <ian@cygnus.com>
-
- Based on patch from Andrew J Klossner <andrew@pogo.wv.tek.com>:
- * objcopy.c (OPTION_WEAKEN): Define.
- (copy_options): Add "weaken".
- (copy_usage): Mention --weaken.
- (weaken): New static variable.
- (filter_symbols): Handle weaken.
- (copy_object): Call filter_symbols if weaken.
- (copy_main): Handle OPTION_WEAKEN.
- * binutils.texi, objcopy.1: Document --weaken.
-
-Wed Dec 18 22:49:13 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-make.sed: Use NewFolderRecursive for installation.
-
-Sat Dec 7 10:17:25 1996 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (install): Add "else true" clause to cater to
- broken "make" on some systems.
-
-Fri Dec 6 17:21:41 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.c (parse_ieee_bb): Always initialize namcopy to avoid gcc
- warning about uninitialized variable.
- (ieee_read_cxx_class): Likewise, for pf.
- (ieee_enum_type): Likewise, for i.
-
-Tue Nov 26 17:01:25 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * wrstabs.c (stab_array_type): Add casts when printing
- bfd_signed_vma values.
-
- * configure: Rebuild with autoconf 2.12.
-
-Mon Nov 25 16:53:18 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (disassemble_data): Don't crash if there is no
- symbol.
-
-Fri Nov 22 17:29:14 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * ar.c (open_inarch): Don't call bfd_openr with a null name.
-
-Fri Nov 1 12:08:13 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils.texi: Add section on reporting bugs.
-
-Thu Oct 31 18:20:53 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * stabs.c (struct stab_handle): Add bincl_list field.
- (parse_stab): Pass value to push_bincl. Call find_excl for
- N_EXCL.
- (struct bincl_file): Add hash, file and file_types fields.
- (push_bincl): Add hash parameter. Save it in the new hash field.
- Save the file number in the new file field.
- (pop_bincl): Put the bincl_file on bincl_list, rather than freeing
- it. Save the file types in the new file_types field.
- (find_excl): New static function.
-
- * ieee.c (ieee_lineno): Don't compare line number addresses to
- info->highaddr (undo part of October 28 patch).
-
-Tue Oct 29 16:40:22 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (objdump_print_value): Don't print the empty string
- for zero.
-
-Mon Oct 28 16:58:14 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * stabs.c (struct stab_handle): Add function_end field.
- (start_stab): Initialize function_end.
- (finish_stab): Pass info->function_end to debug_end_function.
- (parse_stab): If info->function_end is set, use it as the address
- which ends a function.
-
- * ieee.c (ieee_array_type): Remember the correct size.
-
- * ieee.c (ieee_finish_compilation_unit): Permit coalescing ranges
- that are up to 0x1000 bytes apart, not just 64.
- (ieee_add_bb11_blocks): Don't bother to emit a BB11 that is less
- than 0x100 bytes.
- (ieee_lineno): Only emit line numbers that are less than
- info->highaddr.
-
-Fri Oct 25 12:12:17 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.c (struct ieee_defined_enum): Add defined field.
- (ieee_enum_type): If the enum tag has been seen before but not
- defined, reuse the same type index, and define it.
- (ieee_tag_type): If this enum has not been defined, add an
- undefined entry to the list of enums.
-
- * objdump.c (disassemble_bytes): Let the disassembler override the
- number of bytes printed on a line.
-
-Thu Oct 24 16:42:10 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (prefix_addresses): New static variable.
- (long_options): Add "prefix-addresses".
- (compare_symbols): Sort BSF_FUNCTION symbols before other
- symbols.
- (find_symbol_for_address): New static function, broken out of
- objdump_print_address.
- (objdump_print_addr_with_sym): New static function, broken out of
- objdump_print_address.
- (objdump_print_address): Call new functions.
- (disassemble_bytes): New static function, broken out of
- disassemble_data. Change disassembly format, unless
- prefix_addresses is set.
- (disassemble_data): Call disassemble_bytes. Unless
- prefix_addresses is set, disassemble in chunks headed by a
- symbol.
- * binutils.texi, objdump.1: Document --prefix-addresses.
-
- * rddbg.c (read_section_stabs_debugging_info): Preserve the
- backslash when concatenating multiple stabs strings.
-
-Thu Oct 10 11:36:31 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * dlltool.c (scan_open_obj_file): Fix loop exit test.
- Add missing parameter to def_exports.
-
-Tue Oct 8 12:06:17 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (LEX_OPTIONS): Set to empty string. -I -Cem is the
- default for flex, and is not recognized by lex.
-
-Thu Oct 3 17:41:23 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils.texi (Target Selection): Document that you can now
- specify targets using configuration triplets.
-
- * ar.c (usage): Declare. Make sure all callers pass an argument.
-
-Thu Oct 3 15:39:42 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (clean): Remove config.log.
-
-Wed Oct 2 15:49:16 1996 Klaus Kaempf <kkaempf@progis.de>
-
- * makefile.vms: Bump version date.
-
-Tue Oct 1 15:00:59 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * version.c (print_version): New function.
- * bucomm.h (print_version): Declare.
- * ar.c (program_version): Don't declare.
- (do_show_version): Remove.
- (usage): Add help parameter. Print bug report address.
- (main): Set is_ranlib at start. Check for --help and --version.
- Call print_version, not do_show_version.
- * nlmconv.c (program_version): Don't declare.
- (main): Call print_version.
- (show_usage): Print bug report address.
- * nm.c (program_version, print_version): Don't declare.
- (usage): Print bug report address.
- (main): Call print_version.
- * objcopy.c (program_version): Don't declare.
- (copy_usage): Print bug report address.
- (strip_usage): Likewise.
- (strip_main): Call print_version.
- (copy_main): Likewise.
- * objdump.c (program_version): Don't declare.
- (usage): Print bug report address.
- (main): Call print_version.
- * size.c (program_version): Don't declare.
- (usage): Print bug report address.
- (main): Call print_version.
- * strings.c (program_version): Don't declare.
- (main): Call print_version.
- (usage): Print bug report address.
- * Makefile.in: Update dependencies.
-
-Thu Sep 19 14:53:15 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.c: Revert Monday's reflocalp patch, and apply this patch
- instead:
- (write_ieee_debugging_info): Write a dummy type at the end of the
- global type block.
-
-Mon Sep 16 15:30:54 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.c (struct ieee_write_type): Add reflocalp field.
- (ieee_pointer_type): Set reflocalp after pushing type.
- (ieee_function_type): If reflocalp is set, make this type local.
- (ieee_range_type, ieee_array_type, ieee_set_type): Likewise.
- (ieee_const_type, ieee_volatile_type): Likewise.
- (ieee_struct_field, ieee_class_baseclass): Likewise.
-
- * ieee.c (struct ieee_info): Add global_types field.
- (parse_ieee_bb): When starting a BB1, initialize the types field
- to the global_types field.
- (parse_ieee_be): When ending a BB2, copy the types field to the
- global_types field.
-
-Fri Sep 13 17:32:21 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c (change_leading_char): New static variable.
- (OPTION_CHANGE_LEADING_CHAR): Define.
- (copy_options): Add "change-leading-char".
- (copy_usage): Mention --change-leading-char.
- (filter_symbols): Add obfd parameter. Change all callers.
- Implement change_leading_char.
- (copy_object): Call filter_symbols if change_leading_char.
- (copy_main): Handle OPTION_CHANGE_LEADING_CHAR.
- * binutils.texi, objcopy.1: Document --change-leading-char.
-
-Tue Sep 3 14:05:29 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.c (ieee_enum_type): Don't check index into a NULL names
- array.
- * nm.c (sort_symbols_by_size): Always initialize next.
- * rdcoff.c (parse_coff_type): Warn about an incomprehensible
- type rather than crashing.
- * rddbg.c (read_symbol_stabs_debugging_info): Initialize f.
- * stabs.c (parse_stab_members): Set context in all cases.
-
-Thu Aug 29 16:56:52 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure.in (i[345]86-*-*): Recognize i686 for pentium pro.
- * configure: Regenerate.
-
-Thu Aug 29 11:29:20 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (L_tmpnam): Never define.
- (display_target_list): Use choose_temp_base instead of tmpnam.
- (display_info_table): Likewise.
-
-Tue Aug 27 18:15:01 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * stabs.c (parse_stab): An N_FUN symbol with an empty string
- indicates the end of a function.
-
-Thu Aug 22 17:08:00 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * wrstabs.c (struct string_hash_entry): Add next field.
- (struct stab_write_handle): Change strings to a pointer to
- string_hash_entry. Add last_strings field. Remove strings_alloc
- field.
- (string_hash_newfunc): Initialize next field.
- (stab_write_symbol): Copy string into hash table rather than into
- buffer. Keep a list of hash table entries.
- (write_stabs_in_sections_debugging_info): Initialize last_string.
- Copy strings from list of hash table entries in memory.
- (stab_modify_type): If the entry on the stack is a definition,
- make a new definition rather than failing an assert.
- (stab_array_type): The size is only zero if high is strictly less
- than low.
-
- * ieee.c (struct ieee_info): Add saw_filename field.
- (parse_ieee): Initialize saw_filename.
- (parse_ieee_bb): Set saw_filename for a BB1 or BB2. In a BB1,
- discard the current variables and types. In a BB10, if no
- filename has been seen, call debug_set_filename.
- (parse_ieee_ty): In case 'g', the type is optional.
-
- * prdbg.c (pr_fix_visibility): Don't abort on
- DEBUG_VISIBILITY_IGNORE.
-
- * debug.c (debug_name_type): Correct error message.
-
- * configure.in: Substitute HLDENV.
- * configure: Rebuild.
- * Makefile.in (HLDENV): New variable. Use it whenever linking a
- program.
-
-Thu Aug 15 19:30:41 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-make.sed: Add symbolic doublequotes around the version
- number.
-
-Thu Aug 8 12:27:52 1996 Klaus Kaempf <kkaempf@progis.de>
-
- * makefile.vms: Add better support for DEC C compilation.
- Add new macros as in Makefile.in.
-
-Wed Aug 7 14:27:33 1996 Philippe De Muyter <phdm@info.ucl.ac.be>
-
- * configure.in: Call BFD_NEED_DECLARATION on strstr and sbrk.
- * acconfig.h (NEED_DECLARATION_STRSTR): New macro.
- (NEED_DECLARATION_SBRK): New macro.
- * configure, config.in: Rebuild.
- * bucomm.h (strstr): Declare if NEED_DECLARATION_STRSTR.
- (sbrk): Declare if HAVE_SBRK and NEED_DECLARATION_SBRK.
-
- * prdbg.c (pr_end_struct_type): Avoid using a string constant in
- assert, for the benefit of broken assert macros.
-
-Fri Jul 26 14:06:50 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (disassemble_data): Set disasm_info.flavour from
- abfd.
-
-Tue Jul 23 13:59:54 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * dlltool.c (secdata): In non DLLTOOL_PPC case, change alignment
- of .text section to 2.
-
-Mon Jul 22 08:46:15 1996 Stu Grossman (grossman@lisa.cygnus.com)
-
- * objdump.c (dump_section_stabs): Fix test for stabs sections
- ending with numbers. This fixes a problem with .stab being
- confused with .stab.index.
-
-Wed Jul 10 13:32:28 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * stabs.c (stab_demangle_fund_type): Return a void * for a
- template, rather than simply aborting.
-
-Mon Jul 8 15:28:05 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ar.c (open_inarch): Add file parameter. Change all callers. If
- this is a newly created archive, set the target based on the
- file.
- * arsup.h (open_inarch): Update declaration.
-
-Thu Jul 4 12:00:55 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (VERSION): Set to cygnus-2.7.1.
-
- * Released binutils 2.7.
-
- * rdcoff.c (parse_coff): Get address to pass to debug_end_function
- from function size, not value of .ef symbol. From Ning
- Mosberger-Tang <ning@AZStarNet.com>.
-
-Sat Jun 29 21:18:09 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c (strip_main): Add -o option, and handle it.
- (strip_usage): Mention -o.
- * binutils.texi, strip.1: Mention -o.
-
-Mon Jun 24 17:19:02 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
- INSTALL_PROGRAM, INSTALL_DATA): Use autoconf set values.
- (docdir): Removed.
- * configure.in (AC_PREREQ): Autoconf 2.5 or higher.
-
-Mon Jun 24 11:59:13 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (endian): New static variable.
- (usage): Mention -EB/-EL/--endian.
- (long_options): Add "endian".
- (disassemble_data): If endianness was specified, replace
- abfd->xvec with a copy of itself with the given endianness.
- (main): Handle -EB/-EL/--endian.
- * binutils.texi, objdump.1: Mention -EB/-EL/--endian.
-
- * objdump.c: Make most variables and functions static.
-
- * configure.in: On alpha*-*-osf*, link against libbfd.a if not
- using shared libraries.
- * configure: Rebuild with autoconf 2.10.
-
-Sun Jun 23 14:47:36 1996 Kim Knuttila <krk@cygnus.com>
-
- * dlltool.c (secdata): Changed .rdata to .reldata so .reloc will work.
- (make_one_lib_file): Removed cruft. (#if 1)
-
-Wed Jun 19 14:46:38 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (stabs): Change from struct internal_nlist * to
- bfd_byte *.
- (print_section_stabs): Fetch stabs information directly, rather
- than assuming that struct internal_nlist is the right size.
-
- * binutils.texi: Document change to binary format: file position
- based on load address, not section VMA.
-
- * bucomm.h: Define SEEK_SET, SEEK_CUR, and SEEK_END if they are
- not already defined.
-
-Tue Jun 18 18:25:00 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (DISTSTUFF): Add deflex.c.
-
-Tue Jun 18 15:03:44 1996 Klaus Kaempf <kkaempf@progis.de>
-
- * config.h-vms, makefile.vms: New files.
-
-Mon Jun 17 09:47:31 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * dlltool.c (make_one_lib_file): Use BFD_RELOC_RVA rather than
- BFD_RELOC_32 in IDATA7.
-
-Wed Jun 12 11:52:06 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * nm.c (struct get_relocs_info): Define.
- (line_numbers): New static variable.
- (long_options): Add "line-numbers".
- (usage): Mention -l and --line-numbers.
- (main): Handle -l.
- (print_symbol): Print line numbers if requested.
- (get_relocs): New static function.
- * binutils.texi, nm.1: Document -l/--line-numbers.
-
-Tue Jun 11 20:12:15 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (dump_reloc_set): Add sec parameter. Change all
- callers. If with_line_numbers is set, display line numbers of
- relocation entries.
- * binutils.texi, objdump.1: Document -l with -r.
-
-Mon Jun 10 23:42:59 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ar.c (open_inarch): Report BFD error message if an archive can
- not be recognized. List matching formats if the file is
- ambiguously recognized.
- (ranlib_touch): Likewise.
-
-Thu Jun 6 13:56:14 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * README: Add notes on how to build if you don't have ar.
-
- * Makefile.in: Remove old incorrect setting of CC.
-
-Tue Jun 4 10:52:49 1996 Tom Tromey <tromey@csk3.cygnus.com>
-
- * Makefile.in (install): Don't check to see if tooldir exists.
- Make $(tooldir) and $(tooldir)/bin.
-
-Mon Jun 3 17:40:23 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * strings.c (main): Make main an int function, not void.
-
-Fri May 31 13:59:24 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * nm.c (filter_symbols): Check for BSF_WEAK as well as
- BSF_GLOBAL.
- * objcopy.c (filter_symbols): Likewise.
-
-Wed May 8 16:57:20 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c (copy_object): Make clear that it is only a warning
- when the output file can not represent the architecture.
-
-Fri May 3 11:30:17 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (disassemble_data): Don't refer to bytes past the end
- of data.
-
-Wed Apr 24 14:10:21 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * rddbg.c (read_symbol_stabs_debugging_info): Move call to
- free_saved_stabs outside the loop over the symbols.
-
-Tue Apr 23 12:56:11 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (compare_symbols): Sort symbols whose names start with
- `.' after other symbols. If no other decision can be made, sort
- symbols by name.
-
-Thu Apr 18 16:02:11 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * dep-in.sed: Substitute $(BFDDIR) for @BFDDIR@.
- * Makefile.in: Rebuild dependencies.
- (dep.sed): Substitute $(BFDDIR) for @BFDDIR@.
-
-Tue Apr 16 13:50:22 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * rdcoff.c: New file.
- * rddbg.c (read_debugging_info): Read COFF symbols if COFF flavour
- and no stabs were found.
- * budbg.h (parse_coff): Declare.
- * Makefile.in: Rebuild dependencies.
- (CFILES): Add rdcoff.c.
- (DEBUG_OBJS): Add rdcoff.o.
-
-Mon Apr 15 15:55:01 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * nlmconv.c (choose_temp_base{,_try}): Delete, in libiberty now.
- (link_inputs): Update call to choose_temp_base.
-
-Mon Apr 8 14:40:05 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Permit --enable-shared to specify a list of
- directories.
- * configure: Rebuild.
-
-Fri Mar 29 16:11:33 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (dump_section_header): Print the SEC_LINK_ONCE flag
- and the SEC_LINK_DUPLICATES field.
-
-Fri Mar 29 11:35:55 1996 J.T. Conklin (jtc@lisa.cygnus.com)
-
- * nlmconv.1: Changed to be recognized by catman -w on Solaris.
-
-Thu Mar 28 14:17:02 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * wrstabs.c (stab_enum_type): Set buf before using it.
-
-Fri Mar 22 15:49:08 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * stabs.c (struct stab_handle): Add field abfd.
- (start_stab): Add abfd parameter.
- (parse_stab_string): Skip the symbol leading char when searching
- for the value of a global symbol.
- * budbg.h (start_stab): Update declaration.
- * rddbg.c (read_section_stabs_debugging_info): Pass abfd to
- start_stab.
- (read_symbol_stabs_debugging_info): Likewise.
-
-Thu Mar 21 12:40:48 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * wrstabs.c (stab_function_type): Output an empty typedef for an
- unused argument, rather than making up a meaningless name.
- (stab_variable): Use N_RSYM for a DEBUG_REGISTER variable.
-
- * ieee.c (struct ieee_info): Add global_vars field.
- (parse_ieee_be): When ending the global typedef block, copy the
- variables into info->global_vars.
- (parse_ieee_atn): Don't require an NN record for a pmisc ATN.
- (ieee_read_reference): Search the global variables after the local
- variables.
-
-Wed Mar 20 18:08:19 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * objdump.c (disassemble_data): Make sure sym_name is always set.
- (dump_section_header): Always put a space after the section name.
- (dump_bfd_header): Terminate output with newline.
-
-Wed Mar 20 16:35:20 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * wrstabs.c: New file.
- * budbg.h (write_stabs_in_sections_debugging_info): Declare.
- * objcopy.c (write_debugging_info): For COFF or ELF, output stabs
- in sections.
- * Makefile.in: Rebuild dependencies.
- (CFILES): Add wrstabs.c.
- (WRITE_DEBUG_OBJS): New variable.
- ($(OBJCOPY_PROG)): Use $(WRITE_DEBUG_OBJS), not $(DEBUG_OBJS).
- ($(STRIP_PROG)): Likewise.
-
- * stabs.c (parse_stab_members): Make type stub detection more like
- gdb.
-
- * ieee.c (struct ieee_handle): Add fields complex_float_index and
- complex_double_index.
- (ieee_complex_type): Cache type index in complex_float_index and
- complex_double_index, depending upon size. Set size on type stack
- to size * 2.
-
- * ieee.c (ieee_empty_type): Use builtin_unknown, not 0.
- (ieee_void_type): Use builtin_void, not 1.
-
- * ieee.c (parse_ieee_ty): Handle 'V' type code.
- (parse_ieee_atn): Don't require two numbers for type 10.
-
- * ieee.c (parse_ieee_be): Add one to offset at end of function or
- block.
-
- * ieee.c (struct ieee_block): Add field skip.
- (parse_ieee_bb): Don't call debug_record_function for __XRYCPP
- function, and set skip field.
- (parse_ieee_be): Don't call debug_end_function if skip is set.
-
- * debug.c (struct debug_handle): Add fields current_write_lineno
- and current_write_lineno_index.
- (debug_write): Initialize current_write_lineno and
- current_write_lineno_index for each unit. Call
- debug_write_linenos rather than writing out the line numbers
- directly.
- (debug_write_function): Call debug_write_linenos.
- (debug_write_block): Likewise.
- (debug_write_linenos): New static function.
-
- * debug.c (debug_write_type): For DEBUG_KIND_FUNCTION, push return
- type before arguments.
-
-Mon Mar 18 18:05:33 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Add AC_FUNC_VFORK.
- * configure, config.in: Rebuild.
- * dlltool.c, nlmconv.c: Include <vfork.h> if HAVE_VFORK_H is
- defined.
-
- * stabs.c (parse_stab_range_type): A complex type is defined as a
- subrange of itself with the high bound zero.
- * ieee.c (ieee_complex_type): Don't crash on sizes of 12 or 16.
-
-Tue Mar 12 12:09:43 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.c (ieee_write_undefined_tag): Switch to global_types even
- if it is not empty.
- (ieee_tag_type): For an enum, look through info->enums.
-
- * configure: Rebuild with autoconf 2.8.
-
- * debug.c (debug_type_samep): Don't loop endlessly in
- DEBUG_KIND_ENUM case. From Eric Baur <ecb@nexen.com>.
-
-Mon Mar 11 12:35:03 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * rddbg.c (read_section_stabs_debugging_info): Call save_stab for
- each stab entry, call stab_context on an error, and call
- free_saved_stabs before rturning.
- (read_symbol_stabs_debugging_info): Likewise.
- (SAVE_STABS_COUNT): Define.
- (struct saved_stab): Define.
- (saved_stabs, saved_stabs_index): New static variables.
- (save_stab, stab_context, free_saved_stabs): New static functios.
-
- * objdump.c (stab_name): Remove.
- (struct stab_print): Remove.
- (stab_print): Remove.
- (dump_stabs): Don't initialize stab_name.
- (print_section_stabs): Call bfd_get_stab_name rather than using
- the stab_name array.
-
-Tue Feb 27 19:52:01 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * prdbg.c (pr_int_constant): Initialize info correctly.
- (pr_float_constant): Likewise.
-
-Mon Feb 26 18:11:37 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-make.sed: Update to handle shared library support.
-
-Sat Feb 24 11:21:49 1996 Alan Modra <alan@spri.levels.unisa.edu.au>:
-
- * Makefile.in ($(OBJDUMP_PROG)): Search $(BFDLIB) before
- $(OPCODES).
-
-Thu Feb 15 12:44:45 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Don't tamper with LDFLAGS. Call AC_PROG_CC before
- configure.host.
- * configure: Rebuild.
-
- * configure.in: Substitute RPATH_ENVVAR.
- * configure: Rebuild.
- * Makefile.in (RPATH_ENVVAR): New variable.
- (check): Use $(RPATH_ENVVAR) rather than LD_LIBRARY_PATH.
-
- * objcopy.c (smart_rename): Rather than doing chmod then chown, do
- chmod without setuid, then chown, then chmod with setuid.
-
-Wed Feb 14 16:46:42 1996 Martin Anantharaman <martin@mail.imech.uni-duisburg.de>
-
- * arsup.c (map_over_list): Reindent. Don't assume that the
- function does not delete the BFD.
- (ar_addlib_doer): Don't set prev->next if prev is NULL.
-
-Wed Feb 14 15:12:17 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.c (ieee_regno_to_genreg): Convert register numbers for m68k
- and i960.
- (ieee_genreg_to_regno): Likewise.
-
-Mon Feb 12 14:19:59 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.c: Extensive changes to write code to put types in the
- global type block when possible, to output ranges for all memory
- occupied by the module, and to improve efficiency.
-
- * debug.c (struct debug_handle): Remove class_mark field. Add
- id_list and compare_list fields.
- (struct debug_class_id): Define.
- (struct debug_type_compare_list): Define.
- (debug_write): Initialize info->id_list
- (debug_write_name): Remove reference to info->class_mark.
- (debug_write_type): Get id for all structs and classes. Simplify
- test for whether struct has already been written.
- (debug_write_class_type): Get id for all classes. Simplify test
- for whether class has already been written.
- (debug_write_block): Don't write out blocks other than the top
- level block if they have no local variables.
- (debug_set_class_id): New static function.
- (debug_type_samep): New static function.
- (debug_class_type_samep): New static function.
- * prdbg.c (pr_start_struct_type): Always print id.
- (pr_start_class_type): Likewise.
- (pr_tag_type): Likewise.
-
- * stabs.c (struct stab_handle): Add syms and symcount fields.
- (start_stab): Add syms and symcount parameters. Change all
- callers.
- (parse_stab_string): Look up global variables in the symbol table
- to get the right value.
- * budbg.h (start_stab): Update declaration.
- * rddbg.c (read_section_stabs_debugging_info): Add syms and
- symcount parameters. Change all callers.
-
- * stabs.c (parse_stab_array_type): If the index type is 0, use
- int.
-
-Wed Feb 7 14:17:45 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.c (ieee_start_compilation_unit): Clear modified and
- modified_alloc fields of info.
-
- * configure.in: Check for --enable-shared. Substitute new
- variables BFDLIB and OPCODES.
- * configure: Rebuild.
- * Makefile.in (BFDLIB): Set to @BFDLIB@.
- (OPCODES): Set to @OPCODES@.
-
-Mon Feb 5 16:18:42 1996 Ian Lance Taylor <ian@cygnus.com>
-
- Support for building bfd and opcodes as shared libraries, based on
- patches from Alan Modra <alan@spri.levels.unisa.edu.au>:
- * configure.in (HLDFLAGS): New substitution.
- * configure: Rebuild.
- * Makefile.in (HLDFLAGS): New variable. Make all links use
- $(HLDFLAGS) before $(CFLAGS) and $(LDFLAGS).
- (BFDLIB_DEP): New variable. Replace all occurrences of $(BFD) as
- a dependency with $(BFDLIB_DEP). Remove $(BFD) as a dependency if
- there is also a dependency on $(ADDL_DEPS).
- (BFDLIB): Rename from BFD; change all uses; set to -L../bfd -lbfd.
- (OPCODES_DEP): New variable. Replace all occurrends of $(OPCODES)
- as a dependency with $(OPCODES_DEP).
- (OPCODES): Set to -L../opcodes -lopcodes.
- (ADDL_DEPS): New variable. Replace all occurrences of
- $(ADDL_LIBS) as a dependency with $(ADDL_DEPS).
- (check): Set LD_LIBRARY_PATH in the environment.
- (config.status): Depend upon BFD configure.host and config.bfd.
-
-Fri Feb 2 17:02:59 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * objdump.c: #include stdarg.h or varargs.h.
- (objdump_print_value): Change FILE* arg to struct disassemble_info*.
- All callers updated. Use fprintf_func.
- (objdump_print_address): Consistently use fprintf_func.
- (objdump_sprintf): New function.
- (disassemble_data): Print insn into a buffer, print raw insn ourselves,
- then print insn mnemonic.
-
-Fri Feb 2 16:48:55 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Regenerate.
-
-Thu Feb 1 09:38:18 1996 Steve Chamberlain <sac@slash.cygnus.com>
-
- * configure.in (i[3-6]86-*-win32): Becomes i[3-6]86-*-cygwin32.
- (powerpc*-*-cygwin32): New.
- * configure: Regenerated.
-
-Wed Jan 31 13:22:03 1996 Richard Henderson <rth@tamu.edu>
-
- * Makefile.in (distclean): Remove $(DEMANGLER_PROG).1.
-
-Mon Jan 29 17:36:29 1996 Ian Lance Taylor <ian@cygnus.com>
-
- Based on patches from H J Lu <hjl@zoom.com>:
- * objcopy.c (remove_leading_char): New static variable.
- (OPTION_REMOVE_LEADING_CHAR): Define.
- (copy_usage): Mention --remove-leading-char.
- (filter_symbols): If remove_leading_char, and the first character
- of a global symbol matches the symbol leading char of the BFD,
- remove the first character.
- (copy_object): Filter the symbols if remove_leading_char is set.
- (copy_main): Handle --remove-leading-char.
- * binutils.texi, objcopy.1: Document --remove-leading-char.
-
-Sat Jan 27 15:40:13 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * objdump.c (fprintf): Add prototype to avoid compiler warning on
- SunOS.
-
-Fri Jan 26 11:53:42 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils.texi (nm): Improve documentation on symbol types.
- (objdump): Reference the stabs manual from the discussion of the
- --stabs option.
-
-Thu Jan 25 11:21:46 1996 Raymond Jou <rjou@mexican.cygnus.com>
-
- * mpw-make.sed: Add a "stamps" target.
-
-Thu Jan 25 13:51:44 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (dump_headers, dump_section_header): Change objdump -h
- output to be simpler and to include section file offsets.
-
-Wed Jan 24 12:06:05 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * stabs.c (parse_stab_members): Don't adjust voffset.
-
- * ieee.c (ieee_read_cxx_class): Don't multiply voffset by 4.
- (struct ieee_write_type): Add name field.
- (struct ieee_type_class): Remove name field. Change all uses to
- use new name field in type instead.
- (struct ieee_name_type): Likewise.
- (ieee_start_struct_type): Initialize name field of type.
- (ieee_start_class_type): Don't initialize classdef entry of tag.
- (ieee_class_method_var): Don't adjust voffset.
- (ieee_end_class_type): Likewise.
- (ieee_tag_type): Initialize new name field of type.
- (ieee_typdef): Set name after copying in type information.
-
- * debug.c (VOFFSET_STATIC_METHOD): Define as -1, not 1.
-
- * ieee.c (struct ieee_modified_type): Define.
- (struct ieee_handle): Add modified and modified_alloc fields.
- (ieee_get_modified_info): New static function.
- (ieee_pointer_type): Cache type index.
- (ieee_const_type): Likewise.
- (ieee_volatile_type): Likewise.
-
- * ieee.c (ieee_define_named_type): When creating a tag for an
- anonymous struct, copy the name into memory.
- (ieee_tag_type): Likewise.
- * debug.c (debug_write_type): Only check and set id field for an
- unnamed object.
- (debug_write_class_type): Likewise.
-
- * ieee.c: Various changes to write out types for functions and
- references, and to not write out unnecessary function types.
-
- * ieee.c (struct ieee_var): Remove variable field. Add kind
- field, and define some enum constants for it.
- (parse_ieee_ty): Set kind field of variable for 'x' and 'X' types.
- (parse_ieee_atn): Make an indirect slot for an external variable,
- although we otherwise don't record it. Set kind field rather than
- variable field of pvar.
- (ieee_read_cxx_class): Try to get the type of a static member.
- (ieee_read_reference): Check kind field rather than variable
- field.
-
-Tue Jan 23 15:54:18 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.c: Various changes to handle reading C++ reference type
- information.
-
- * debug.h (enum debug_var_kind): Add DEBUG_VAR_ILLEGAL.
- (enum debug_parm_kind): Add DEBUG_PARM_ILLEGAL.
- * debug.c (debug_get_parameter_types): Handle DEBUG_KIND_FUNCTION.
-
- * ieee.c: Various changes to write out definitions of C++ classes.
-
- * debug.c (debug_append_filename): Remove.
- * debug.h (debug_append_filename): Don't declare.
-
- * stabs.c (struct stab_handle): Remove last_type field. Add
- so_string and so_value fields.
- (finish_stab): Call stab_emit_pending_vars before calling
- debug_end_function. Don't warn about pending variables.
- (parse_stab): Accumulate N_SO strings until a non N_SO symbol is
- seen, rather than calling debug_append_filename. Call
- stab_emit_pending_vars before calling debug_end_function. Don't
- set info->last_type.
-
-Tue Jan 23 09:53:54 1996 Doug Evans <dje@charmed.cygnus.com>
-
- * objdump.c (disassemble_data): Handle unknown endianness.
- Pass fprintf to INIT_DISASSEMBLE_INFO.
-
-Mon Jan 22 16:46:43 1996 Doug Evans <dje@charmed.cygnus.com>
-
- Add new option --show-raw-insn.
- * objdump.c (show_raw_insn): New global.
- (usage): Update.
- (long_options): Update.
- (disassemble_data): Set disasm_info.flags if --show-raw-insn.
-
- * objdump.c (disassemble_data): Set new arch,mach,endian fields in
- disasm_info.
-
-Mon Jan 22 19:29:36 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.c: Extensive changes to pass a single info argument around
- in the reading routines, rather than several arguments. Add code
- to read C++ debugging records.
-
- * debug.h (debug_get_type_size): Declare.
- (debug_get_field_name): Declare.
- (debug_get_field_bitpos): Declare.
- (debug_get_field_bitsize): Declare.
- (debug_get_field_visibility): Declare.
- (debug_get_field_physname): Declare.
- * debug.c (debug_get_real_type): Handle DEBUG_KIND_TAGGED.
- (debug_get_type_size): New function.
- (debug_get_field_name): New function.
- (debug_get_field_bitpos): New function.
- (debug_get_field_bitsize): New function.
- (debug_get_field_visibility): New function.
- (debug_get_field_physname): New function.
- (debug_write_type): Make sure we pass the real kind, not INDIRECT,
- to tag_type. Pass the name recursively for INDIRECT.
-
-Fri Jan 19 12:31:57 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * debug.h (struct debug_write_fns): Remove ellipsis_type. Add int
- and boolean parameters to function_type. Add boolean parameter to
- method_type.
- (debug_make_ellipsis_type): Don't declare.
- (debug_make_function_type): Add debug_type * and boolean
- parameters. Change all callers.
- (debug_make_method_type): Add boolean parameter. Change all
- callers.
- (debug_get_parameter_types): Add boolean * parameter. Change all
- callers.
- (debug_get_target_type): Declare.
- * debug.c (struct debug_function_type): Add fields arg_types and
- varargs.
- (struct debug_method_type): Add field varargs.
- (debug_ellipsis_type, ELLIPSIS_P): Remove.
- (debug_make_ellipsis_type): Remove.
- (debug_make_function_type): Add arg_types and varargs parameters.
- (debug_make_method_type): Add varargs parameter.
- (debug_get_parameter_types): Add pvarargs parameter.
- (debug_get_target_type): New function.
- (debug_write_type): In case DEBUG_KIND_FUNCTION, push argument
- types and pass count to function_type. In DEBUG_KIND_METHOD, use
- a signed int for the count, don't call ellipsis_type, and pass
- varargs to method_type.
- * stabs.c (struct stab_demangle_info): Add varargs field.
- (stab_demangle_argtypes): Add pvarargs parameter. Change all
- callers.
- (stab_demangle_args): Likewise.
- (stab_demangle_type): In case 'F', pick up argument types.
- * prdbg.c (pr_ellipsis_type): Remove.
- (pr_function_type): Add argcount and varargs parameters.
- (pr_method_type): Add varargs parameter.
- * ieee.c (ieee_ellipsis_type): Remove.
- (ieee_function_type): Add argcount and varargs parameters.
- (ieee_method_type): Add varargs parameter. Remove most of
- function body, and just call ieee_function_type.
-
- * stabs.c: Include "demangle.h". Added several new static
- functions not listed below to demangle argument types; they are
- all called via stab_demangle_argtypes.
- (finish_stab): If the kind of an undefined tag is
- DEBUG_KIND_ILLEGAL, use DEBUG_KIND_STRUCT instead. Warn if there
- are any pending variable.
- (parse_stab): Don't close the function when the block depth goes
- to zero. Pass value to debug_end_function.
- (parse_stab_string): In case 'T', pass the name to
- parse_stab_type.
- (parse_stab_type): In case 'x', use stab_find_tagged_type. In
- case '#', handle functions with variable numbers of arguments.
- (parse_stab_struct_type): Add tagname parameter. Change all
- callers.
- (parse_stab_members): Add tagname and typenums parameters. Change
- all callers. If the type of a method is a stub, call
- parse_stab_argtypes to demangle the argument types and get the
- physical name of the function.
- (parse_stab_argtypes): New static function.
- (stab_record_variable): For a DEBUG_GLOBAL or DEBUG_STATIC
- variable, call debug_record_variable immediately.
- (stab_find_tagged_type): New static function.
-
- * debug.h (enum debug_type_kind): Add DEBUG_KIND_ILLEGAL.
- (struct debug_write_fns): Add field ellipsis_type. Add id
- parameter to start_struct_type, start_class_type, and tag_type.
- (debug_make_ellipsis_type): Declare.
- (debug_find_named_type): Declare.
- (debug_get_type_kind): Declare.
- (debug_get_return_type): Declare.
- (debug_get_parameter_types): Declare.
- (debug_get_fields): Declare.
- (debug_get_field_type): Declare.
- * debug.c (struct debug_handle): Add fields class_id and base_id.
- (struct debug_class_type): Add field id.
- (struct debug_method_variant): Rename argtypes to physname.
- Change all uses.
- (debug_ellipsis_type): New static variable.
- (ELLIPSIS_P): New macro.
- (debug_make_ellipsis_type): New function.
- (debug_make_method_variant): Rename argtypes to physname.
- (debug_make_static_method_variant): Likewise.
- (debug_name_type): Always put types in the global namespace.
- (debug_find_named_type): New function.
- (debug_find_tagged_type): Treat DEBUG_KIND_ILLEGAL specially,
- rather than DEBUG_KIND_VOID.
- (debug_get_real_type): New static function.
- (debug_get_type_kind): New function.
- (debug_get_return_type): New function.
- (debug_get_parameter_types): New function.
- (debug_get_fields): New function.
- (debug_get_field_type): New function.
- (debug_write): Initialize base_id.
- (debug_write_type): Pass new id argument to tag_type. Handle
- DEBUG_KIND_ILLEGAL. Use id for DEBUG_KIND_STRUCT and
- DEBUG_KIND_UNION. Handle ellipsis for method arguments.
- (debug_write_class_type): Don't dereference kclass if it is NULL.
- Use id.
- * prdbg.c (pr_fns): Add pr_ellipsis_type.
- (pr_ellipsis_type): New static function.
- (pr_pointer_type): If this is a pointer to an array, parenthesize
- it correctly.
- (pr_start_struct_type): Add id parameter.
- (pr_start_class_type): Likewise.
- (pr_tag_type): Likewise.
- (pr_fix_visibility): Add the visibility to the top of the stack,
- not the second element on the stack.
- (pr_struct_field): Pop the stack before calling pr_fix_visibility.
- (pr_class_static_member): Likewise.
- (pr_class_start_method): Don't push a type, just set the method
- name in the type on the top of the stack.
- (pr_class_end_method): Don't pop the stack.
- (pr_class_method_variant): Rename argtypes parameter to physname.
- Append const and volatile rather than prepending them. Add a
- space after the physname.
- (pr_class_static_method_variant): Likewise.
- * ieee.c (ieee_fns): Add ieee_ellipsis_type.
- (ieee_define_named_type): Use DEBUG_KIND_ILLEGAL rather than
- DEBUG_KIND_VOID.
- (write_ieee_debugging_info): Likewise.
- (ieee_typdef): Likewise.
- (ieee_ellipsis_type): New static function.
- (ieee_start_struct_type): Add id parameter.
- (ieee_start_class_type): Likewise.
- (ieee_tag_type): Likewise.
- (ieee_class_method_variant): Rename name to physname.
- (ieee_class_static_method_variant): Likewise.
-
- * Makefile.in (DEBUG_OBJS): Remove prdbg.o.
- ($(OBJDUMP_PROG)): Depend upon, and link against, prdbg.o.
-
-Thu Jan 18 17:35:06 1996 Kim Knuttila <krk@cygnus.com>
-
- * dlltool.c (make_tail): Changed the order of the sections to avoid
- an alignment problem.
-
-Wed Jan 17 14:23:00 1996 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * srconv.c (wr_du): Set du.stackfrmt to 0.
- (wr_un, wr_sc): Emit all sections, even those with 0 size.
-
-Tue Jan 16 16:15:49 1996 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * srconv.c (wr_hd): Space size within segment was being
- stored in segment identifier field.
-
-Tue Jan 16 12:07:25 1996 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-config.in (BUILD_NLMCONV, BUILD_SRCONV, SYSINFO_PROG,
- BUILD_DLLTOOL): Put definitions for these into makefile when
- configuring, instead of always clearing in mpw-make.sed.
- * mpw-make.sed: Edit out any host_alias or target_alias settings,
- fix pathname to BFD internal include files, remove dependency
- calculation rules.
-
-Thu Jan 11 17:31:38 1996 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * objdump.c (dump_section_header): Add new section flags
- SEC_{EXCLUDE,SORT_ENTRIES}.
-
-Thu Jan 11 11:45:34 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c (filter_symbols): NULL terminate the output symbols.
- (copy_object): Allocate space for a possible extra NULL pointer.
-
- * debug.c (debug_make_undefined_tagged_type): Make sure we are
- given a kind of type we can handle.
- (debug_write_type): Handle undefined enums and structs.
- (debug_write_class_type): Handle undefined classes.
- * prdbg.c (pr_enum_type): Handle an undefined enum.
- * ieee.c (ieee_enum_type): Likewise.
-
-Wed Jan 10 15:33:18 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in: Updated dependencies.
- (ALLOCA, MALLOC): Remove variables.
- (ADDL_LIBS): Remove $(MALLOC) from definition.
- * alloca.c, gmalloc.c: Remove.
-
-Mon Jan 8 18:02:29 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.c: Add global function write_ieee_debugging_info and a
- bunch of static functions and structs used to write out IEEE
- debugging information.
- * budbg.h (write_ieee_debugging_info): Declare.
-
- * ieee.c (struct ieee_type): Add pslot field.
- (enum builtin_types): Define.
- (ieee_builtin_type): For a pointer, return a pointer to the named
- type. Use enum values rather than numbers.
- (ieee_alloc_type): New static function.
- (ieee_read_type_index): Use ieee_alloc_type.
- (parse_ieee_bb): Likewise.
- (parse_ieee_ty): Likewise. Use ieee_builtin_type for array range,
- rather than making a new integer type. Store the new type in the
- slot, if there is one.
- (parse_ieee_atn): Treat ATN10 as defining a register variable.
- (ieee_regno_to_genreg): Rename from ieee_regno_to_gen. Change all
- callers.
- (ieee_genreg_to_regno): New static function.
-
- * stabs.c (parse_stab_type): Add new typename parameter. Change
- all callers.
- (parse_stab_range_type): Add new typename parameter. Change all
- callers.
-
- * debug.h (struct debug_write_fns): Add tag parameter to
- enum_type, start_struct_type, and start_class_type.
- * debug.c (debug_write_type): Pass any tag name to
- start_struct_type, debug_write_class_type, and enum_type. If
- DEBUG_KIND_TAGGED, pass the name in the recursive call.
- (debug_write_class_type): Accept a new tag parameter, and pass it
- to start_class_type.
- * prdbg.c (pop_type): Don't remove '+' character.
- (pr_enum_type): Accept and use tag parameter.
- (pr_start_struct_type): Likewise.
- (pr_start_class_type): Likewise.
- (pr_class_baseclass): Adjust algorithm used to find where to put
- the baseclass name.
- (pr_tag): Don't bother to insert the tag name.
-
- * objcopy.c: Include budbg.h.
- (convert_debugging): New static variable.
- (OPTION_DEBUGGING): Define.
- (copy_options): Add "debugging".
- (copy_usage): Mention --debugging.
- (is_strip_section): Skip debugging sections if convert_debugging.
- (setup_section, copy_section): Likewise.
- (filter_symbols): Skip debugging symbols if convert_debugging.
- (copy_object): If convert_debugging, read and write debugging
- information.
- (write_debugging_info): New static function.
- (copy_main): Handle --debugging.
- * Makefile.in (DEBUG_OBJS): New variable.
- ($(OBJCOPY_PROG)): Depend upon and link against $(DEBUG_OBJS).
- ($(STRIP_PROG)): Likewise.
- (OBJDUMP_OBJS): Remove variable.
- ($(OBJDUMP_PROG)): Use objdump.o $(DEBUG_OBJS) rather than
- $(OBJDUMP_OBJS).
- * binutils.texi, objcopy.1: Document --debugging.
-
-Thu Jan 4 16:31:21 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * ieee.c: New file with code to read IEEE debugging information.
- * budbg.h (parse_ieee): Declare.
- * rddbg.c (read_debugging_info): Handle IEEE flavour files.
- (read_ieee_debugging_info): New static function.
- * Makefile.in: Rebuild dependencies.
- (CFILES): Add ieee.c.
- (OBJDUMP_OBJS): Add ieee.o.
-
- * bucomm.h (xrealloc): Change type of first parameter from char *
- to PTR.
-
-Tue Jan 2 17:44:07 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in: Add targets to automatically rebuild dependencies.
- Remove targets which just listed dependencies of .o files.
- (DEP): New variable.
- (HFILES, GENERATED_HFILES): New variables.
- (CFILES, GENERATED_CFILES): New variables.
- (underscore.c): Don't do anything, just depend upon stamp-under.
- (stamp-under): New target; do what underscore.c used to do.
- (nlmconv.o): Depend upon sym.h and ecoff.h.
- (.dep, .dep1, dep.sed, dep, dep-in): New targets.
- (stage1, stage2, stage3, against, comparison): Remove.
- (de-stage1, de-stage2, de-stage3): Remove.
- (clean, distclean): Remove stamp-under and dep.sed.
- * dep-in.sed: New file.
-
- Implement generic debugging support. Implement a stabs reader and
- a generic printer.
- * budbg.h, debug.c, debug.h, prdbg.c, rddbg.c, stabs.c: New files.
- * objdump.c: Include "debug.h" and "budbg.h".
- (dump_debugging): New global variable.
- (usage): Mention --debugging.
- (long_options): Add "debugging".
- (display_bfd): Handle --debugging.
- * Makefile.in (OBJDUMP_OBJS): New variable.
- ($(OBJDUMP_PROG)): Use $(OBJDUMP_OBJS).
- * binutils.texi, objdump.1: Document --debugging.
-
-Sat Dec 30 09:59:51 1995 Jeffrey A Law (law@cygnus.com)
-
- * nm.c ( long_options): Add "--defined-only" option.
- (usage): Update for new "--defined-only" option.
- (filter_symbols): Handle "--defined-only".
-
-Fri Dec 29 16:04:56 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * arparse.y: Include "bucomm.h", not <sysdep.h>.
- * nlmheader.y: Don't include "sysdep.h".
-
-Tue Dec 26 18:23:18 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * nm.c (print_symdef_entry): Check return value of
- bfd_get_elt_at_index.
-
-Sat Dec 23 11:03:16 1995 Michael Meissner <meissner@tiktok.cgynsu.com>
-
- * configure.in (DLLTOOL_DEFS): Build dlltool for PowerPC if target
- is powerpc*-*-win* in addition to powerpc*-*-*pe*.
-
-Fri Dec 15 16:30:57 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (endian_string): New static function.
- (display_target_list): Use it.
- * nlmconv.c (main): Use new bfd_big_endian macro.
-
-Fri Dec 15 07:51:34 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * dlltool.c (fill_ordinals): Start from 1 if no other instructions
- given.
-
-Tue Dec 12 12:05:21 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (clean): Remove $(DEMANGLER_PROG).1. From Ronald
- F. Guilmette <rfg@monkeys.com>.
-
-Mon Dec 11 14:33:05 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * mac-binutils.r: Fix copyright and version strings.
-
- * Makefile.in (version): Remove, no longer used.
-
-Fri Dec 1 14:41:56 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-make.sed (install, install-only): Edit in Mac-specific
- install procedure.
-
-Thu Nov 30 20:26:02 1995 Kim Knuttila <krk@cygnus.com>
-
- * dlltool.c (ppc_jtab): The binary glue for PowerPC dll linkage,
- including the return instruction.
- sinfo: added a preferred alignment field.
- (secdata): section data for the PowerPC version.
- (make_one_lib_file): More symbols, More sections (pdata, rdata)
- (make_tail): Use idata$6 instead of idata$7 for ppc. Also added a
- NULL idata$3 descriptor (temporary).
-
-Tue Nov 28 17:23:44 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * dlltool.c (fill_ordinals): Don't reference d_export_vec if
- there are no exported functions.
-
-Mon Nov 27 13:05:59 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Regenerate with autoconf 2.7.
-
-Wed Nov 22 13:17:15 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * dlltool.c (fill_ordinals): Start assigning ordinals at 1.
-
- * Makefile.in (EXPECT): Use $$r, not $${rootme}.
- (check): Set r, not rootme.
-
-Tue Nov 21 18:04:09 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Use BFD_NEED_DECLARATION.
- * acconfig.h: Put NEED_DECLARATION_FPRINTF in @TOP@ section.
- * configure, config.in: Rebuild with autoconf 2.6.
-
-Fri Nov 17 10:34:37 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (CC_FOR_TARGET): Use @host@ and @target@, not
- $(host_canonical) and $(target_canonical).
-
-Thu Nov 16 03:39:20 1995 Ken Raeburn <raeburn@cygnus.com>
-
- Version 2.6 released.
- * Makefile.in (VERSION): Update to 2.6.
-
-Wed Nov 15 12:14:17 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (CC_FOR_TARGET): Define.
- (check): Pass CC and CFLAGS to runtest.
-
- * nm.c (display_rel_file): Don't require a DYNAMIC object when
- dumping the dynamic symbol table.
-
- * objdump.c (compare_symbols): Sort global symbols before local
- symbols before debugging symbols.
- (objdump_print_address): Don't futz around looking for a global
- symbol with the same value.
-
-Tue Nov 14 17:19:11 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * dlltool.c: Use FOPEN_* macros rather than "r" or "w".
-
- * dlltool.c (fill_ordinals): Correct memset call.
-
-Sun Nov 12 12:56:05 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-make.sed (DEMANGLER_PROG): Edit out attempts to do anything
- with the man page.
-
-Fri Nov 10 11:41:22 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c (setup_section): Copy the section lma independently of
- the vma.
-
-Wed Nov 8 11:33:00 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * arsup.c (ar_open): Cast malloc return value.
-
-Tue Nov 7 09:01:26 1995 Kim Knuttila <krk@cygnus.com>
-
- * configure.in, configure (DLLTOOL_DEFS): Added ppc target.
- * dlltool.c (MPPC): Added basic PPC definitions.
-
-Tue Nov 7 14:02:57 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Don't treat rs6000-*-lynx* specially.
- * configure: Rebuild.
- * config/rslynx: Remove.
- * Makefile.in: Remove @target_makefile_fragment@.
-
-Mon Nov 6 15:00:50 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * bucomm.h: Include <sys/types.h>.
- * ar.c: Don't include <sys/types.h> or <stdio.h>.
- * bucomm.c, dlltool.c, nlmconv.c, objcopy.c, objdump.c: Likewise.
-
-Fri Nov 3 12:38:09 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c: Include <sys/types.h>.
-
- Permit user to override DEMANGLER_PROG from command line. From
- Manfred Hollstein <manfred@lts.sel.alcatel.de>.
- * Makefile.in ($(DEMANGLER_PROG)): Depend upon
- $(DEMANGLER_PROG).1.
- (install): Don't depend upon $(DEMANGLER_PROG).1. Only install
- $(DEMANGLER_PROG).1 if $(DEMANGLER_PROG) is not empty.
-
-Wed Nov 1 15:04:57 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de>
-
- * Makefile.in (syslex.o): add -I$(srcdir) if compiling in a
- separate directory.
-
-Mon Oct 30 14:24:18 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (objdump_print_value): New static function.
- (objdump_print_address): Use it. If we need the right section for
- the symbol, and we can't find it, print an offset from the section
- rather than using a symbol from some other section.
-
-Thu Oct 26 10:23:14 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * dlltool.c (no_idata4, no_idata5): New.
- (arm_jtab): Use correct encoding of jump instruction.
- (usage, main, make_head, make_tail): Act on no_idata4, no_idata5.
-
-Wed Oct 25 12:10:07 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-make.sed: Edit paths to generated y.tab.[ch] files.
-
-Fri Oct 20 18:40:34 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils.texi: Change --with-targets to --enable-targets.
-
-Thu Oct 19 17:47:41 1995 Fred Fish <fnf@cygnus.com>
-
- * Makefile.in: Remove extraneous tab on otherwise empty line,
- which confuses many non-GNU versions of "make".
-
-Wed Oct 18 16:31:58 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * dlltool.c (i386_jtab, arm_jtab): New
- (gen_lib_file): Rewritten to use bfd.
-
-Fri Oct 13 16:10:07 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * Makefile.in (install): Don't give error message if dlltool
- wasn't built.
-
-Fri Oct 13 11:04:37 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * deflex.l: Allow quoting of IDs.
- * defparse.y (%union): string deleted.
- (command): DESCRIPTION takes ID.
- * dlltool.c (gen_def_file): Quote outgoing name if
- necessary. Preserve NONAME.
- (gen_lib_file): Run ranlib.
- (workout_prefix): Deleted.
- (main, usage, long_options): Add --as, --ranlib, --ar options.
-
-Wed Oct 11 13:36:13 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * dlltool.c (mtable): HOW_ALIGN_LONG, new.
- (d_ord): Deleted.
- (d_low_ord, d_high_ord, d_named_funcs): New.
- (gen_exp_file): Create noname entries correctly.
- (gen_lib_file): Dump exports alphabetically.
- (process_duplicates): Count nonamed functions.
- (fill_ordinals): Keep track of highest ord too.
- (mangle_defs): Create alphabetically ordered list of names.
-
-Tue Oct 10 09:39:09 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * Makefile.in (TOOL_PROGS): Include DLLTOOL_PROG.
-
-Mon Oct 9 13:06:31 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * dlltool.c (add_underscore): New.
- (xlate): Use new name.
- (main, usage): Update.
-
-Fri Oct 6 14:08:51 1995 Ken Raeburn <raeburn@cygnus.com>
-
- * sysinfo.y: Eliminate unused terminals "[" and "]" and unused
- nonterminal "name". One s/r conflict remains.
-
- Mon Sep 25 22:49:32 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * nm.c (print_symname): Don't try to demangle an empty
- name.
- * objdump.c (slurp_symtab): Reset symcount if there are
- no symbols.
- (slurp_dynamic_symtab): Likewise, for dynsymcount.
- (disassemble_data): Fix memory leak: free sorted_syms when done.
- (display_bfd): Likewise, for syms and dynsyms.
- (dump_relocs): Don't print header before possibly generating an
- error message.
- (dump_dynamic_relocs): Likewise.
-
- * ar.1, nm.1, objdump.1, size.1, strings.1, strip.1: Fix typos and
- formatting bugs.
-
-Fri Oct 6 12:00:25 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * ar.c (do_quick_append): Comment out.
- (replace_members): Add quick argument.
- (main): Don't call do_quick_append.
- (open_inarch): Don't call quick_append to create an empty archive.
- Instead call bfd_openw/bfd_set_format/bfd_close.
-
-Thu Oct 5 20:53:08 1995 Ken Raeburn <raeburn@cygnus.com>
-
- * bucomm.c: Always include time.h.
-
-Thu Oct 5 17:25:21 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (compare_symbols): Sort gnu_compiled and gcc2_compiled
- symbols after other symbols with the same value. Likewise for
- symbols which look like file names.
- (objdump_print_address): Always chose the first reasonable symbol
- with a given value.
-
-Tue Oct 3 22:38:55 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * arsup.c (ar_save): Use rename, not unlink/link/unlink.
-
-Mon Oct 2 12:10:25 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * strings.c (main): Exit with zero status if no files are given
- and standard input is read.
-
-Thu Sep 28 20:03:07 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-config.in: Calculate underscore and put into makefile
- fragment, generate config.h.
- * mpw-make.sed: New file, sed commands to edit Unix makefile
- into MPW syntax.
- * mpw-make.in: Remove.
- * mac-binutils.r: New file, Mac resources.
-
-Thu Sep 28 15:49:00 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * dlltool.c: (gen_exp_file): Always emit a .reloc section if
- relocatable.
- (imp_name_lab): New.
- (gen_def_file): New.
- (gen_lib_file): Use imp_name_lab.
- (main): Initialize imp_name_lab.
-
-Mon Sep 25 12:05:34 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Call AC_HEADER_SYS_WAIT.
- * configure: Rebuild.
- * config.in: Rebuild.
- * dlltool.c: Include "libiberty.h" and "bucomm.h". Don't include
- <stdio.h>, <stdlib.h>, or <string.h>. Don't include <wait.h>.
- Include <sys/types.h>. Use HAVE_SYS_WAIT_H to control whether to
- include <sys/wait.h> or define the wait macros by hand. Don't
- declare xmalloc.
- (gen_lib_file): Don't assume that sprintf returns the number of
- characters; use strlen instead.
-
-Fri Sep 22 17:16:41 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (disassemble_data): Don't use the old BFD based
- disassembler interface. Make info a const pointer.
-
-Wed Sep 13 18:33:44 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (start_address): New variable.
- (stop_address): New variable.
- (usage): Mention --start-address and --stop-address.
- (OPTION_START_ADDRESS, OPTION_STOP_ADDRESS): Define.
- (long_options): Add "start-address" and "stop-address".
- (disassemble_data): Handle start_address and stop_address.
- (dump_data, dump_reloc_set): Likewise.
- (main): Don't set seenflag for -l. Handle OPTION_START_ADDRESS
- and OPTION_STOP_ADDRESS.
- * objcopy.c (parse_vma): Move to bucomm.c.
- * bucomm.c (parse_vma): New function, moved in from objcopy.c.
- * bucomm.h (parse_vma): Declare.
- * binutils.texi, objdump.1: Document new objdump options.
-
-Tue Sep 12 12:37:39 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (maintainer-clean): New target.
-
- * ar.c (replace_members): Don't call write_archive if nothing
- changed.
-
- * objdump.c (disassemble_data): Add casts to avoid gcc warnings.
-
-Thu Sep 7 12:12:17 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * config.in: Rename from config.h.in.
- * configure.in: Call AC_CONFIG_HEADER with config.h:config.in.
- Check for config.h:config.in when creating stamp-h.
- * configure: Rebuild.
- * Makefile.in (stamp-h): Depend upon config.in rather than
- config.h.in. Set CONFIG_HEADERS to config.h:config.in when
- calling config.status.
-
- * Makefile.in (distclean): Remove config.h, stamp-h, and
- config.log.
-
- * nm.c (value_format): Initialize based on BFD64 and
- BFD_HOST_64BIT_LONG.
- (print_radix): New static variable.
- (set_print_radix): Set print_radix. Adjust changes to
- value_format.
- (print_value): New static function, to print 64 bit octal and
- decimal values correctly.
- (print_symbol_info_bsd): Check BFD64, not BFD_HOST_64_BIT. Use
- print_value.
- (print_symbol_info_sysv): Use print_value.
- (print_symbol_info_posix): Likewise.
-
-Wed Sep 6 15:02:55 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (*.o): Remove incorrect dependencies on
- $(BFDDIR)/hosts/std-host.h.
-
- * Makefile.in (INSTALL_DATA): Add -m 644.
- (INSTALL_XFORM1): Likewise.
- (CC_FOR_BUILD): Set to @CC_FOR_BUILD@ rather than $(CC).
- (mostlyclean): Remove config.log.
- (distclean): Remove config.cache.
-
- * configure.in: Call BFD_CC_FOR_BUILD and BFD_BINARY_FOPEN.
- * configure: Rebuild.
-
-Tue Sep 5 20:22:42 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Rewrite to use autoconf.
- * aclocal.m4: New file.
- * configure: New file, built by autoconf.
- * acconfig.h: New file.
- * config.h.in: New file, built by autoheader.
- * Makefile.in: Various changes for new configure script. Also:
- (PROGS): Remove $(SYSINFO_PROG).
- (ALL_CFLAGS): Remove $(TDEFINES).
- (version.o): Use $(ALL_CFLAGS).
- (cplus-dem.o, dlltool.o, nlmconv.o): Likewise.
- (sysdump.o): Depend upon bucomm.h and config.h.
- (srconv.o, arsup.o, strings.o): Depend upon config.h.
- (filemode.o): Don't depend upon ../bfd/sysdep.h.
- (bucomm.o): Depend upon config.h, not ../bfd/sysdep.h.
- (size.o, objdump.o, nm.o, ar.o, objcopy.o): Likewise.
- (nlmheader.o, nlmconv.o): Likewise.
- (distclean): Don't remove sysdep.h.
- * bucomm.h: Include "ansidecl.h", <stdio.h>, and "config.h".
- Include "fopen-same.h" or "fopen-bin.h", based on
- USE_BINARY_FOPEN. Include <errno.h>, and declare errno if it is
- not a macro. Include <unistd.h>, <string.h>, <strings.h>,
- <stdlib.h>, and <fcntl.h> if they are present. Declare strchr,
- strrchr, and strstr if no string header file exists. Include
- <sys/file.h> if it exists and <fcntl.h> does not. Define
- O_RDONLY and O_RDWR if necessary.
- * ar.c: Don't include "sysdep.h". Do include <sys/types.h> and
- <sys/stat.h>. Use HAVE_GOOD_UTIME_H rather than POSIX_UTIME. Use
- HAVE_UTIMES rather than !USE_UTIME. Don't include <errno.h>, and
- don't declare errno.
- * arsup.c: Don't include <sysdep.h>.
- * bucomm.c: Don't include "sysdep.h". Include <stdio.h>,
- <sys/types.h>, and <sys/stat.h>. Include <time.h> if it defines
- time_t. Define time_t if necessary.
- * coffdump.c: Don't include "sysdep.h".
- * coffgrok.c, filemode.c, nlmconv.c, size.c: Likewise.
- * srconv.c, strings.c: Likewise.
- * nm.c: Don't include "sysdep.h". Don't try to define HAVE_SBRK.
- * objcopy.c: Don't include "sysdep.h". Include <sys/types.h> and
- <sys/stat.h>.
- (simple_copy): Use creat rather than assuming that O_CREAT is
- defined.
- * objdump.c: Don't include "sysdep.h". Use
- NEED_DECLARATION_PRINTF rather than !FPRINTF_ALREADY_DECLARED.
- * sysdump.c: Include "bfd.h" and "bucomm.h". Don't include
- "sysdep.h" or <stdlib.h>.
- (dump_symbol_info): Rename from symbol_info. Change all callers.
-
-Mon Sep 4 14:30:00 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in (host_makefile_frag): Don't set. Substitute for
- @CC@, @CFLAGS@, @HDEFINES@ and @LDFLAGS@ in Makefile.
- * Makefile.in (AR_FLAGS): Set to rc rather than qv.
- (CC): Define as @CC@.
- (CFLAGS): Set to @CFLAGS@.
- (LDFLAGS): Define as @LDFLAGS@.
- (ALL_CFLAGS): Use @HDEFINES@ rather than $(HDEFINES).
-
- * configure.in: Don't bother to call config.bfd for each target.
- Just call it for the default target, and use the shell variable to
- decide whether underscores are used.
-
-Thu Aug 31 19:21:48 1995 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * configure.in: match i[3-6]86-*-win32, not just i386-*-win32.
-
-Thu Aug 31 16:30:22 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * dlltool.c (add_indirect): New.
- (asm_prefix): New
- (gen_exp_file): Timestamp should be 0. Insert prefix when
- needed. New code for indirection.
- (gen_lib_file): Timestamp should be 0. Insert prefix
- when needed.
- (usage): Document --add-indirect.
- (main): Cope with new option.
-
- * objdump.c (dump_private_headers): New.
- (usage): Document new option.
- (long_option): Add private-headers.
- (dump_bfd_private_header): New.
- (main): Cope with new option.
-
-Thu Aug 31 04:09:16 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * dlltool.c (run): Add missing 3rd arg to waitpid.
-
-Wed Aug 30 11:02:11 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * Makefile.in (TOOL_PROGS): Include dlltool if needed.
-
-Tue Aug 29 13:25:21 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * dlltool.c (rva): Deleted.
- (rvaafter, rva_before): Use new assembler pseudo.
- (flush_page, gen_exp_file, gen_lib_file): Use new way of RVAing.
- (gen_exp_file): Don't generate .edata if no need.
- (gen_lib_file): Don't make timestamp.
- Put _iname in idata$7.
- (workout_prefix): Fix memory initialization bug.
- (usage): Tidy up, delete many single char options.
- (main): rva option is gone.
-
-Mon Aug 21 18:41:28 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * dlltool.c (options): image-base is a synonym for rva.
- (gen_lib_file): Put dll name into ibase$7.
-
-Sun Aug 20 09:59:00 1995 steve chamberlain <sac@slash.cygnus.com>
-
- Modified to generate archives and objects rather than .s files.
- * dlltool.c (run) New function.
- (gen_exp_file, gen_lib_file): Use run.
- (workout_prefix): New.
- (usage): Document new options.
- (main): Parse new options.
-
-Wed Aug 16 16:26:52 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * dlltool.c (gen_exp_file): Fix RVA handling.
- (rva_s, rva_n): Delete.
-
-Fri Aug 11 18:27:18 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * nm.c (main): Ignore -e.
-
-Thu Aug 10 17:35:00 1995 Ken Raeburn <raeburn@cygnus.com>
-
- * Makefile.in (config.texi): New target. Write out a setting for
- texinfo variable VERSION.
- (binutils.dvi, binutils.info): Depend on it.
- * binutils.texi: Include it, and reference @value{VERSION} instead
- of explicitly specifying 2.2(!).
-
-Thu Aug 10 16:07:53 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * coffgrok.c (do_type): Handle array dimensions the same way gdb
- does.
-
-Tue Aug 8 17:10:42 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * dlltool.c (mtable): New fields.
- (ASM_RVA_BEFORE, ASM_RVA_AFTER): New.
- (flush_page): Use new macros.
-
-Sat Aug 5 00:16:37 1995 Jeff Law (law@snake.cs.utah.edu)
-
- * objcopy.c (mark_symbols_used_in_relocations): Handle sections
- with no relocations.
- * coffgrok.c (do_sections_p1): Likewise.
-
-Mon Jul 31 12:51:06 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * strings.c (print_strings): For compatibility with existing
- strings programs, print strings which are not terminated with a
- null byte or a newline.
- * binutils.texi, strings.1: Update documentation accordingly.
-
- * ar.c (replace_members): For compatibility with existing ar
- programs, permit users to add the same file multiple times.
-
-Tue Jul 25 11:21:53 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * strings.c (DATA_FLAGS): Remove SEC_DATA.
- (main): If no file names are given, scan standard input.
- * binutils.texi, strings.1: strings now scans non-data sections by
- default.
-
-Mon Jul 24 13:52:28 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * srconv.c (wr_hd): Set afl field to 4 for bfd_arch_sh.
- (writeINT): When size == -2, use 2 bytes for the h8300 and 4 bytes
- for the sh.
-
- * sysdump.c (fillup): Return size - 1, the last byte is a checksum
- and shouldn't be counted.
- * sysroff.info (hd): Changed segment identifier from a byte to a 1
- bit field. The sysroff 2.0-01 specification seems to be in error
- here. Reduce width of following "spare" field from 4 to 3 bits.
- (rl): Changed order and width of first 4 bitfields to correspond
- to sysroff specification.
- (dln_head, dln_inside, dln_tail): Removed.
-
-Tue Jul 18 23:00:03 1995 Fred Fish <fnf@cygnus.com>
-
- * nm.c (sort_symbols_by_size): Enclose expression being casted
- in parens so result is casted, not just first operand. Can't
- do pointer arithmetic on void* pointers.
-
-Fri Jul 14 13:42:42 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * sysdump.c (dh): Changed format of output to be 16 hex digits
- followed by 16 ascii characters, similar to Emacs' hexl-mode,
- to make it easier to read.
- (xcalloc): fix typo.
-
-Thu Jul 13 15:27:44 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * srconv.c (wr_tr): Write out handcrafted tr block.
- (walk_tree_symbol): Use evallen and evalue instead of
- vallen & value because of corresponding changes in
- sysroff.info.
-
- * sysdump.c (sysroff_swap_tr_in, sysroff_print_tr_out): New
- functions.
-
- * sysroff.info (tr): the tr block is a special case --- a block
- without contents --- which can't be handled by generated code.
- (den, dpp): only first byte is present for DENend, DPPend.
- (dsy): describe a conditional portion of block, rename some fields.
- (dps): describe a conditional portion of block.
- (dfl): removed.
-
- * sysinfo.y (yyerror): write error message to standard error.
-
-Thu Jul 13 10:43:59 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (DISTSTUFF): Add arparse.h and sysinfo.h.
- (mostlyclean): Remove y.output.
- (clean): Remove sysroff, sysroff.c, sysroff.h, and sysinfo.
-
- * nlmconv.c (powerpc_mangle_relocs): Cast memset arg to size_t.
- * objcopy.c (copy_object): Likewise.
-
- * nm.c (HAVE_SBRK): Define except on amigados and WINDOWS_NT.
- (struct size_sym): Define.
- (show_stats): New static variable.
- (long_options): Add undocumented option "stats".
- (main): Print memory stats if requested.
- (sort_bfd, sort_dynamic, sort_x, sort_y): New static variables.
- (numeric_forward): Use minisymbols rather than asymbols.
- (non_numeric_forward): Likewise.
- (size_forward1): Rename from size_forward. Use minisymbols.
- (size_forward2): New static function.
- (sort_symbols_by_size): Take new arguments dynamic, size, and
- symsizep. Use minisymbols. Don't store the size back in the
- symbol; store in a newly allocate struct size_sym array.
- (display_rel_file): Read minisymbols rather than asymbols. Set
- sort_* variables. Call print_size_symbols if sorting by size.
- (filter_symbols): Take new arguments dynamic and size. Use
- minisymbols.
- (print_symbols): Likewise. Call print_symbol for actual printing.
- (print_size_symbols): New static function.
- (print_symbol): New static function.
-
-Wed Jul 12 10:43:05 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (dump_section_stabs): Only print each stabs section
- once.
- (compare_relocs): Make it clear to gcc that this always returns a
- value.
-
-Wed Jul 12 10:40:23 1995 H.J. Lu <hjl@nynexst.com>
-
- * objcopy.c (simple_copy): Preserve errno on failure.
- (smart_rename): Print error mesage if simple_copy fails.
-
-Tue Jul 11 13:10:52 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * sysdump.c: re-indented file.
- (module): read blocks sequentially instead of trying to parse
- them, as that would require changing the parser recognize the
- difference between a DPSstart and DPSend block.
- (getone): Add break's between switch blocks as appropriate.
- (object_body_list): parse blocks according to sysroff spec.
-
-Mon Jul 10 12:37:25 1995 J.T. Conklin <jtc@poseidon.cygnus.com>
-
- * sysroff.info: re-indented file, prior formatting was confusing
- because it was indentation did not reflect nesting of conditional
- records. Change "space size within segment" record in hd record
- from bit to byte.
-
- * sysinfo.y (cond_it_field): Use xcalloc instead of calloc.
-
- * srconv.c (wr_cs): Reformatted cs header array, tag each byte
- with a comment describing the field.
- (wr_unit_info): Use SEEK_SET macro instead of constant 0.
- (main): Use FOPEN_WB macro instead of literal "wb".
- * sysroff.info: Remove fdl (dfl) field from cs block. Compare
- ptr->type with ED_TYPE_CONST instead of constant 2 in ed block.
-
-Tue Jul 4 14:48:42 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * nm.c (size_forward): Check yf against yn, not xn.
-
- * objcopy.c (copy_archive): Record all output BFD's, and close
- them before unlinking them and removing the temporary directory,
- to avoid NFS problems.
-
- * ar.c (replace_members): In verbose messages, use 'r' when
- replacing a member, and 'a' when adding one.
-
- * ar.c (ar_truncate): New static variable.
- (normalize): Change return type to const char *. Add abfd
- argument. Change all callers. If ar_truncate, chop the filename
- to abfd->ar_max_namelen.
- (main): For the 'f' modifier, set ar_truncate to true. Don't
- change quick_append to replace if ar_truncate is true.
- (do_quick_append): If ar_truncate, set BFD_TRADITIONAL_FORMAT.
- (write_archive): Likewise.
- * binutils.texi, ar.1: Document 'f' modifier.
-
- * objcopy.c (enum strip_action): Define strip_unneeded.
- (OPTION_STRIP_UNNEEDED): Define.
- (strip_options): Add "strip-unneeded".
- (copy_options): Likewise.
- (copy_usage): Mention --strip-unneeded.
- (strip_usage): Likewise.
- (is_strip_section): Strip debugging sections if strip_unneeded.
- (filter_symbols): If strip_unneeded, only keep BSF_KEEP symbols.
- (copy_object): If strip_all, discard symbols without checking
- discard_locals.
- (copy_object): Call filter_symbols if strip_unneeded.
- (setup_section): Strip debugging sections if strip_unneeded.
- (copy_section): Likewise.
- (strip_main): Handle OPTION_STRIP_UNNEEDED.
- (copy_main): Likewise.
- * binutils.texi, objcopy.1, strip.1: Document --strip-unneeded.
-
-Mon Jul 3 14:16:47 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * configure.in (i386-*-win32): New configuration.
- * dlltool.c (killat, xlate, usage, long_options, main):
- Understand and cope with -k option.
-
-Sat Jul 1 12:25:15 1995 Fred Fish <fnf@cygnus.com>
-
- * ar.c: (extract_file): Change "#if POSIX_UTIME" to
- "#ifdef POSIX_UTIME" to match other tests of POSIX_UTIME
- and avoid lossage when POSIX_UTIME is not defined at all.
-
-Wed Jun 28 17:51:24 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * ar.c: (print_contents.c, extract_file, do_quick_append):
- Malloc buffers rather than allocate on stack (so it works
- on NT).
- * deflex.l: Names can have an @ in them.
- * dlltool.c: Loads of stuff. Can now generate .imp files which
- work with NT .dlls.
-
-Thu Jun 22 19:10:50 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * mpw-make.in (demangle.c.o): Remove.
- (arparse.h): Depend on arparse.c instead of arparse.y.
-
-Wed Jun 21 17:32:45 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * Makefile.in (DISTSTUFF): Don't include info here.
- (diststuff): Include it here.
- (realclean): Remove *.info.
-
- * objdump.c (compare_relocs): If relocation entries have the same
- address, keep them in file order.
-
-Mon Jun 19 09:06:49 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * dlltool.c: Change names of generated files. .*.s-> -*.s
-
- * objdump.c (dump_section_stabs): Check for names
- which are supersets of selected names.
-
-Wed Jun 14 19:43:52 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * dlltool.c (mtable, ARM jump): Must redirect via pc offsetable ptr.
-
-Wed Jun 14 13:27:22 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * deflex.l, defparse.y, dlltool.c: New files.
- * Makefile.in, configure.in: Support for them.
-
-Mon Jun 12 11:27:54 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * sysdump.c: Include sysdep.h
- (main): Open input with FOPEN_RB.
-
-Fri Jun 9 17:26:11 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * objdump.c (wide_output): New flag variable.
- (usage): Print new -w, --wide options.
- (long_options): Add --wide support.
- (dump_section_header): If --wide, don't print a newline between
- the section's first line and the flags.
- (objdump_print_address): Use unsigned comparisons for the binary
- search, not signed.
- (disassemble_data): If --wide, don't put a \n between the
- disassembly output and relocation information.
- (main): Support -w option being the same as --wide.
-
-Thu Jun 1 17:09:27 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- Sat May 6 08:52:24 1995 H.J. Lu (hjl@nynexst.com)
-
- * objcopy.c (smart_rename): make it smarter, clean up
- if rename () fails.
-
-Tue May 30 14:24:15 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * Makefile.in: Delete lines with lots of #### because four or more
- indicate a point for makefile fragment substitution.
-
-Tue May 9 17:17:05 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure.in: Don't build nlmconv on PowerPC eabi any more, it
- is not needed.
-
-Thu Apr 27 20:21:24 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * Makefile.in (EXPECT): Define.
- (RUNTEST): Use one in source tree if present.
- (check): Set `rootme' for $(EXPECT).
-
-Wed Apr 26 18:26:21 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * srconv.c (main): Add support for -n option which disables
- prescan of common symbols.
- (wr_ob): If reading past the end of a section, fill with zeros.
-
-Tue Apr 25 19:14:37 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * objdump.c (dump_section_header): Display load address after
- virtual memory (run-time) address.
-
-Wed Apr 19 09:44:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
-
- * Makefile.in (cplus-dem.o): Pass -DVERSION='"$(VERSION)"' to the
- compile.
- (DEMANGLER_PROG): No longer uses version.o.
-
-Mon Apr 10 13:29:49 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- Merge in support for Mac MPW as a host.
- (Old change descriptions retained for informational value.)
-
- * mpw-config.in (TDEFINES): Define as empty in makefile frag.
-
- * mpw-config.in: Create mk.tmp, define ARCHDEFS in it.
-
- * mpw-config.in: New file, MPW configure fragment for binutils.
- * mpw-make.in (install-only): New target.
- (install): Also depend on install-only.
-
- * mpw-make.in (cplusfilt): Renamed from c++filt.
- (INCLUDES): Add more paths.
-
- * mpw-make.in: New file, MPW makefile fragment for binutils.
- (Normally automatically generated from Makefile.in.)
-
-Mon Mar 27 11:52:57 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * ar.c (write_archive): Call make_tempname to get output file
- name, rather than using a fixed name based on the input file.
-
- * objcopy.c (make_tempname): Copy from here...
- * bucomm.c (make_tempname): ...to here, and make global.
- * bucomm.h (make_tempname): Declare.
-
-Fri Mar 24 11:47:42 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * strings.c: Include "bfd.h" before other headers. Include
- "sysdep.h".
- * bucomm.c (print_arelt_descr): Cast st_uid and st_gid to long,
- and print them with %ld.
-
-Fri Mar 10 13:09:42 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c (strip_options): Add --keep-symbol.
- (copy_options): Likewise.
- (copy_usage): Mention --keep-symbol and -K.
- (strip_usage): Likewise.
- (keep_symbols): New static variable.
- (is_strip_symbol): Adjust the return value according to
- keep_symbols.
- (strip_main): Handle -K. For -N, check that -K was not given.
- (copy_main): Likewise.
- * binutils.texi, objcopy.1, strip.1: Document -K.
-
-Mon Mar 6 13:33:47 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * objcopy.c (copy_archive): Check result of mkdir.
- (copy_main): Cast an xmalloc result.
-
- * objdump.c (usage): Break long format string into shorter ones.
-
-Mon Mar 6 13:46:12 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * bucomm.c (list_supported_targets): New function.
- * bucomm.h (list_supported_targets): Declare.
- * ar.c (usage): Call list_supported_targets.
- * nm.c (usage): Likewise.
- * objcopy.c (copy_usage, strip_usage): Likewise.
- * objdump.c (usage): Likewise.
- * size.c (usage): Likewise.
- * strings.c (usage): Likewise.
-
-Tue Feb 28 15:13:58 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * bucomm.c (print_arelt_descr): Cast st_size to long before
- passing it to fprintf.
-
-Fri Feb 17 13:36:45 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c (struct section_list): Add fields remove, set_flags,
- and flags. Change adjust from boolean to enum.
- (remove_sections): Remove static variable.
- (sections_removed): New static variable.
- (copy_options): Add --set-section-flags.
- (copy_usage): Mention --set-section-flags.
- (parse_flags): New static function.
- (find_section_list): New static function.
- (is_strip_symbol): Change return type from int to boolean.
- (is_strip_section): New static function.
- (filter_symbols): Call is_strip_section.
- (copy_object): When adding sections, check for specified flags or
- VMA. Call filter_symbols if any sections are being removed.
- (setup_section): Use find_section_list function rather than
- looking through remove_sections and adjust_sections. Handle
- --set-section-flags.
- (copy_section): Use find_section_list rather than looking through
- remove_sections.
- (strip_main): Use find_section_list instead of adding items to
- sections_removed.
- (copy_main): Use find_section_list instead of adding items to
- sections_removed and adjust_sections. Handle --set-section-flags.
- * binutils.texi, objcopy.1: Document --set-section-flags.
-
-Tue Feb 14 18:03:03 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (with_source_code): New global variable.
- (usage): Mention -S/--source.
- (long_options): Add --source.
- (prev_functionname, prev_line): New static variables.
- (struct print_file_list): Define.
- (print_files): New static variable.
- (skip_to_line, show_line): New static functions.
- (disassemble_data): Call show_line to handle -l and -S.
- (main): Handle -S.
- * binutils.texi, objdump.1: Document -S/--source.
-
-Thu Feb 9 16:11:53 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c (copy_usage): Rename parameter to avoid shadowing.
- (strip_usage): Likewise.
-
- * objcopy.c (struct section_add): Define.
- (add_sections): New static variable.
- (copy_options): Accept --add-section.
- (copy_usage): Mention --add-section.
- (copy_object): Add sections from the add_sections list.
- (copy_main): Handle --add-section.
- * binutils.texi, objcopy.1: Document --add-section.
-
-Wed Feb 1 15:04:57 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * objdump.c (disassemble_data): Pass section offset, not absolute
- address, to bfd_find_nearest_line.
-
- * nlmconv.c (powerpc_mangle_relocs): Don't use const with
- reloc_howto_type.
-
-Thu Jan 26 18:50:06 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (compare_symbols): Use bfd_asymbol_value (VAR) rather
- than VAR->value.
- (objdump_print_address): Likewise.
- (disassemble_data): Don't change the symbol values. It can
- confuse bfd_canonicalize_reloc.
-
-Thu Jan 26 12:03:56 1995 Michael Meissner <meissner@tiktok.cygnus.com>
-
- * configure.in: Add support for powerpc-*-ebai.
-
-Wed Jan 18 10:02:12 1995 Steve Chamberlain <sac@splat>
-
- * coffdump.c: Include sysdep.h.
- (dump_coff_type): Handle coff_secdef_type.
- * coffgrok.c : Include sysdep.h.
- * srconv.c: Include libiberty.h
- (absolute_p, dty_start, dty_end, dump_tree_structure): Remove.
-
-Wed Jan 18 12:24:14 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * coffdump.c (dump_coff_scope): Cast pointer to unsigned long for
- printf.
- * coffgrok.c: Include bucomm.h. Don't declare xmalloc.
- (push_scope): Declare type of parameter link.
- * size.c: Include libiberty.h.
- * srconv.c: Include bucomm.h.
- (find_base): Declare at top of file.
- (wr_hd): Add default case to architecture switch.
- (wr_dps_start): Declare type of parameter nest.
- (wr_du): Comment out variables used only in commented out blocks.
- (wr_dus): Remove unused variable i.
- (wr_sc): Remove unused variables myinfo, low, and high.
- * strings.c: Include libiberty.h.
- * sysdump.c: Include <ctype.h>.
-
-Tue Dec 20 19:13:44 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * ar.c (main): Ignore 'f' modifier used on HP/UX 9.
-
-Thu Dec 15 17:34:12 1994 Stan Shebs <shebs@andros.cygnus.com>
-
- * ar.c, nm.c, objcopy.c, objdump.c: Include progress.h.
- * ar.c, nm.c, objcopy.c, objdump.c (main): Add START_PROGRESS
- and END_PROGRESS.
- * ar.c (map_over_members, open_inarch): Call PROGRESS.
- * nm.c (main, display_archive, filter_symbols, print_symbols):
- Call PROGRESS.
-
- * objcopy.c (copy_usage): Break up long usage string.
-
-Wed Dec 14 15:51:56 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * objcopy.c (copy_object): Don't bother setting status after
- nonfatal() "call", because it won't return.
-
-Fri Dec 9 00:22:54 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (powerpc_mangle_relocs): Don't switch a reloc to use
- the section symbol if the symbol is undefined.
-
-Thu Dec 8 14:45:50 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * objcopy.c (add_strip_symbol): Cast return value of xmalloc.
-
-Wed Nov 30 11:05:43 1994 Ian Lance Taylor <ian@rtl.cygnus.com>
-
- * ar.c (replace_members): Pass current->filename to normalize when
- checking for duplicates, because the filename of a newly added
- file will not have been normalized yet.
-
-Thu Nov 17 15:00:13 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * ar.c (main): Don't call do_quick_append if any of the archive
- names are longer than 14 characters.
-
- * objcopy.c (main): Fix is_strip test. From
- pirker@eiunix.tuwien.ac.at (Martin Pirker).
-
-Thu Nov 17 15:37:19 1994 Mark W. Eichin <eichin@cygnus.com>
-
- * objcopy.c (add_strip_symbol): New function, adds a name to an
- explicit list of symbols to strip.
- (is_strip_symbol): New function, reports whether the name argument
- is in the explicit list.
- (filter_symbols): Check against is_strip_symbol above all.
- (strip_main): Recognize -N option. If used, don't default to
- strip_all.
- (copy_main): Recognize -N option.
- (strip_usage): Document -N and --strip-symbol options.
- (copy_usage): Ditto.
- * objcopy.1, strip.1, binutils.texi: Document -N and
- --strip-symbol options.
-
-Tue Nov 8 13:12:54 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * objdump.c (display_target_list, display_info_table): Pass an
- array to tmparg, rather than NULL, since some systems can't handle
- NULL.
-
- * objcopy.c (copy_archive): Keep a list of the names of the
- temporary files we created. Close each input BFD after we open
- its successor.
-
-Mon Nov 7 15:48:39 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * Makefile.in (VERSION): Bump to 2.5.3.
-
-Thu Nov 3 19:04:34 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * Makefile.in (install-info): Install info files from whatever
- directory they were found in.
-
- Patch from DJ Delorie:
- * configure.bat: do c++filt -> cxxfilt right
-
- * sysinfo.y: Include system header files early, so any potential
- declaration of abort() occurs before its use.
-
- * strings.c (strings_file): Try opening the file in binary mode
- first.
-
-Wed Nov 2 15:44:13 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * ar.c (main): Treat ar qs like ar rs.
-
-Tue Oct 25 16:19:25 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * objcopy.c (gap_fill): Explicitly initialize, for clarity.
- (pad_to_set, pad_to): New static variables.
- (copy_options): Accept --pad-to.
- (copy_usage): Mention --pad-to.
- (copy_object): Support --pad-to.
- (compare_section_vma): Sort non loadable sections to the front.
- Sort sections with the same VMA by size.
- (copy_main): Handle --pad-to.
- * binutils.texi, objcopy.1: Document --pad-to.
-
-Thu Oct 20 13:51:31 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objcopy.c (gap_fill_set, gap_fill): New static variables.
- (copy_options): Accept --gap-fill.
- (copy_usage): Mention --gap-fill.
- (copy_object): Support --gap-fill.
- (get_sections, compare_section_vma): New static functions.
- (copy_main): Handle --gap-fill.
- * binutils.texi, objcopy.1: Document --gap-fill.
-
-Wed Oct 19 14:09:16 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * Makefile.in (check): Add a dummy else clause to the if
- statement.
-
- * objcopy.c (copy_object): Revert yesterday's change.
- * binutils.texi, objcopy.1: Remove special mention of --set-start
- and `binary' output format.
-
-Tue Oct 18 11:12:01 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * objcopy.c (copy_object): If the output file format is `binary',
- and the start address was not set using --set-start, default the
- start address to zero. This hack is because the `binary' output
- file format uses the start address to set the virtual address of
- the first byte in the file.
- * binutils.texi, objcopy.1: Add some notes on generating S-records
- and binary files.
-
- * nm.c (print_symdef_entry): Call print_symname to print the
- symbol name, so that --demangle works.
-
- * Makefile.in (mostlyclean): Remove tmpdir.
-
- * objcopy.c (struct section_list): Add fields used, adjust, val.
- (adjust_start, set_start_set, set_start): New static variables.
- (adjust_section_vma, adjust_sections): New static variables.
- (copy_options): Add --adjust-start, --adjust-vma,
- --adjust-section-vma, --adjust-warnings, --no-adjust-warnings,
- --set-start.
- (parse_vma): New static function.
- (copy_usage): Mention new options.
- (copy_object): Handle --set-start and --adjust-start.
- (setup_section): Correct type of last argument to PTR. Set used
- field if section is removed. Handle --adjust-vma and
- --adjust-section-vma.
- (copy_section): Correct type of last argument to PTR.
- (mark_symbols_used_in_relocations): Likewise.
- (strip_main): Clear used field when handling -R.
- (copy_main): Handle new options.
- * binutils.texi (objcopy): Document new options.
- * objcopy.1: Document new options.
-
-Fri Oct 14 14:38:13 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * configure.in (configdirs): Remove definition--testsuite is no
- longer configured.
- * Makefile.in (testsuite): Remove target.
- (site.exp): New target.
- (check): Rewrite.
- (clean, distclean): Don't recur into testsuite directory.
-
-Thu Oct 13 19:24:09 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * Makefile.in (VERSION): Updated to 2.5.
- * Version 2.5 released.
-
-Tue Oct 11 15:26:42 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * Makefile.in (sysdump.o): Depends upon sysroff.c.
-
-Mon Oct 10 13:50:30 1994 J.T. Conklin (jtc@rtl.cygnus.com)
-
- * nlmconv.c (link_inputs): Pass -Ur flag to ld so that the
- ctor/dtor tables needed by C++ programs are built.
-
-Sun Oct 9 18:04:00 1994 Jim Wilson (wilson@sphagnum.cygnus.com)
-
- * Makefile.in (srconv.o): Add dependence on sysroff.c.
-
-Tue Oct 4 12:19:51 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * configure.in: Use ${config_shell} when running config.bfd.
-
- * Makefile.in (sysroff.h): Split target away from sysroff.c.
- (srconv.o, sysdump.o): New targets.
- (srconv, sysdump): Don't depend upon sysroff.c.
-
-Wed Sep 28 13:04:34 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * Makefile.in (arparse.c): Don't ignore errors from mv.
- (sysinfo.c): Likewise. Also, depend upon arparse.c, to prevent a
- parallel make from trying to build both arparse.c and sysinfo.c
- simultaneously.
- (nlmheader.c): Similar change.
- (arparse.h): Separate target from arparse.c, so that a parallel
- make does not try to build both at once. Depend upon arparse.c.
- (sysinfo.h): Similar change.
-
- * objdump.c (disassemble_data): Pass the reloc buffer to free, not
- the pointer used to loop over the relocs.
-
-Sat Sep 24 16:16:57 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * objdump.c (disassemble_data): Cast result of xmalloc.
-
-Wed Sep 21 19:30:35 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * objdump.c (sorted_syms, sorted_symcount): New global variables.
- (objdump_print_address): Use sorted_syms and sorted_symcount
- instead of syms and symcount.
- (disassemble_data): Don't bother to get the relocs before looping
- over the sections. Before filtering and sorting the symbol table,
- copy it into sorted_syms.
-
-Fri Sep 16 11:27:39 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * objdump.c (struct objdump_disasm_info): Add field require_sec.
- (objdump_print_address): If aux->require_sec, require that the
- symbol be in aux->sec even if HAS_RELOC is not set. If we can't
- find a smaller symbol in the right section, look for a larger one.
- (disassemble_data): Set aux.require_sec around the
- objdump_print_address call for the instruction address.
-
-Thu Sep 15 21:43:17 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ar.c: Call xexit rather than exit.
- (output_filename, output_file, output_bfd): New static variables.
- (remove_output): New static function.
- (main): Call xatexit (remove_output). Call xexit rather than
- returning.
- (extract_file): Set output_filename and output_file while output
- file is open.
- (write_archive): Likewise, but use output_bfd, not output_file.
- * arsup.c: Include libiberty.h. Call xexit rather than exit.
- * bucomm.c: Likewise.
-
- * objdump.c (disassemble_all): New global variable.
- (usage): Document --disassemble-all.
- (long_options): Add disassemble-all as a synonym for -D.
- (compare_symbols): Make pointers const.
- (compare_relocs): New static function.
- (disassemble_data): Rename disassemble to disassemble_fn to avoid
- shadowing. If dump_reloc_info, print relocs along with
- disassembly. Skip sections which are not SEC_CODE unless
- disassemble_all or only is set.
- (display_bfd): Don't call dump_relocs if disassemble is set.
- (main): Accept and handle -D.
- * binutils.texi: Document -D/--disassemble-all.
- * objdump.1: Likewise.
-
-Wed Sep 14 12:19:07 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * objdump.c (disassemble_data): Initialize prevline to 0. Make
- prev_function non const. Copy functionname into an malloc buffer
- when setting prev_function, instead of assuming that the string
- will last forever.
-
- * nm.c: Include libiberty.h.
- (sort_by_size): New static variable.
- (long_options): Add --size-sort.
- (usage): Mention --size-sort.
- (numeric_forward): Make static. Change from void * to PTR.
- (numeric_reverse): Likewise.
- (non_numeric_forward, non_numeric_reverse): Likewise.
- (sorters): Change declaration from void * to PTR.
- (size_forward, sort_symbol_by_size): New static functions.
- (display_rel_file): Handle sort_by_size.
- (filter_symbols): If sort_by_size, discard absolute and undefined
- symbols.
- * binutils.texi (nm): Document --size-sort.
- * nm.1: Document --size-sort.
-
-Tue Sep 13 21:06:06 1994 Jeff Law (law@snake.cs.utah.edu)
-
- * objcopy.c (copy_main): Initialize input_filename and
- output_filename to NULL.
-
-Tue Sep 13 14:17:24 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * Makefile.in (version.o): Depend upon Makefile, so that version.o
- gets rebuilt when make variable VERSION is changed.
-
- * objdump.c (dump_section_header): Print the SEC_NEVER_LOAD flag.
-
-Wed Aug 24 12:40:09 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * configure.in: Change i[34]86 to i[345]86.
-
-Tue Aug 23 11:00:40 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * ar.c (ranlib_touch): Don't update the archive map if there isn't
- one.
-
-Mon Aug 22 16:02:18 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * ar.c: Include libiberty.h.
- (inarch): Remove variable.
- (map_over_members): Make static. Add arch argument, and use it
- instead of inarch. Change all callers.
- (main): Treat --version as -v. Accept -t argument. Accept any
- number of archive arguments. Catch and use open_inarch return
- value, rather than using inarch.
- (open_inarch): Return newly opened BFD, rather than using inarch.
- (do_quick_append): Make archive_filename const.
- (write_archive): Add iarch argument, and use it instead of inarch.
- Change all callers.
- (delete_members, move_members, replace_members): Likewise.
- (ranlib_only): Don't exit on success. Catch and use open_inarch
- return value.
- (ranlib_touch): New function.
- * arsup.h (map_over_members): Don't declare.
- (ar_end, ar_extract): Declare.
- (open_inarch): Change return value in declaration to bfd *.
- * arsup.c (map_over_list): Make static. Always pass two arguments
- to function. Add arch argument, and use it instead of inarch.
- Change all callers.
- (ar_directory_doer): Make static. Add ignored second argument.
- Change all callers.
- (ar_directory): Use open_inarch return value rather than inarch.
- (ar_addlib_doer): Make static.
- (ar_addlib): Use open_inarch return value rather than inarch.
- (ar_extract): Remove unused local variable abfd.
-
-Thu Aug 11 14:55:57 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- Add support for removing named sections to objcopy and strip.
- * objcopy.c (struct section_list): Define.
- (remove_sections): New static variable.
- (strip_options, copy_options): Add remove-section.
- (copy_usage, strip_usage): Mention -R and --remove-section.
- (setup_section): If section is in remove_sections list, ignore it.
- (copy_section): Likewise.
- (strip_main, copy_main): Handle -R.
- * binutils.texi, objcopy.1, strip.1: Document new options.
-
-Wed Aug 10 10:19:55 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * nlmconv.c (powerpc_mangle_relocs): Rename symvalue to sym_value,
- so as not to conflict with the symvalue typedef in bfd.h.
-
-Mon Aug 1 13:19:09 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * nlmheader.y: Per current NetWare docs, accept a revision number
- of 0 and treat a revision number greater than 26 as 0.
-
-Mon Jul 25 12:58:36 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * objdump.c (objdump_print_address): Correct handling of end of
- symbols when looking for next symbol with a different value.
-
-Fri Jul 22 16:48:34 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * nm.c (numeric_forward): Treat undefined symbols as "less than"
- defined symbols with zero values. If numeric values are equal, or
- both symbols are undefined, sort alphabetically. Don't assume
- that the difference of two bfd_vma values will truncate to "int"
- and still have the same sign.
- (numeric_reverse): Call numeric_forward and negate the result.
- (print_symbol_info_bsd): For undefined symbols, print leading
- spaces equivalent to the width of a printed bfd_vma, rather than
- assuming that 8 will look right.
-
-Fri Jul 22 10:36:50 1994 Steve Chamberlain (sac@jonny.cygnus.com)
-
- * coffgrok.c (doit): Zero all fields of new structure.
- * srconv.c (sysroff_swap_*_out): Remove redundant trailing arg.
- * sysinfo.y: Generate sysroff_swap_*_out without requiring extra
- arg.
-
-Fri Jul 22 10:09:53 1994 J.T. Conklin (jtc@phishhead.cygnus.com)
-
- * nlmheader.y: Make "stack" and "stacksize" synonyms in the lexer
- rather than the parser.
-
-Thu Jul 21 10:25:09 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * config/mh-alphaosf, config/mh-apollo68v, config/mh-delta88:
- Remove; obsolete.
-
-Sat Jul 16 22:34:39 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * objdump.c (slurp_dynamic_symtab): Try to get the dynamic symbols
- even if the bfd is not marked DYNAMIC. ELF executables are not
- marked DYNAMIC, but do have dynamic symbols.
-
-Fri Jul 15 01:41:35 1994 Steve Chamberlain (sac@jonny.cygnus.com)
-
- * coffgrok.c (do_where): Make data with no type 'int'.
- (do_define): Keep info on source file of a symbol.
- * coffgrok.h (coff_symbol): New field.
- * srconv.c (PROGRAM_VERSION): Now 1.3
- (wr_rl): Use external ref number for symbol.
- (wr_dus): Only keep one source file per debug unit.
- (wr_dln): Always emit line numbers for first source file,
- (wr_globals): Emit globals in the du of their owning source file.
-
-Mon Jul 11 15:59:03 1994 J.T. Conklin (jtc@phishhead.cygnus.com)
-
- * nlmheader.y: Null terminate var_hdr->threadName.
-
-Fri Jul 8 17:33:22 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * Makefile.in (syslex.o, sysinfo.o): Permit C source files to be
- in $(srcdir), as they will be for FSF releases.
-
-Wed Jul 6 01:13:14 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (setup_sections): Preserve existing section flags when
- copying in flags from a new section.
-
-Tue Jul 5 15:56:01 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * objcopy.c: Include libiberty.h.
- (copy_file): If output_target is NULL, set it to the target of the
- input file.
-
-Wed Jun 29 17:17:14 1994 J.T. Conklin (jtc@phishhead.cygnus.com)
-
- * nlmconv.c (link_inputs): Fixed memory allocation bug.
-
-Thu Jun 23 12:52:46 1994 David J. Mackenzie (djm@rtl.cygnus.com)
-
- * configure.in: Change --with-targets to --enable-targets.
-
-Tue Jun 21 12:53:21 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * Makefile.in (sysinfo): Does not depend upon $(ADDL_LIBS).
-
- * nlmconv.c (powerpc_build_stubs): Don't generate the PowerPC
- NetWare custom header; no longer needed.
- (powerpc_mangle_relocs): Convert relocs against the uninitialized
- data section into relocs against the data section.
-
- * configure.in: Set nlmconv_defs to -DNLMCONV_cputype for all the
- netware targets. Write it into Makefile as NLMCONV_DEFS.
- * Makefile.in (nlmconv.o): Pass $(NLMCONV_DEFS) to $(CC).
- * nlmconv.c: Only compile code for specific CPU types if
- NLMCONV_cputype is defined.
-
- * nlmconv.c (main): Change uses of bfd_abs_section, etc., to use
- bfd_abs_section_ptr or bfd_is_abs_section, etc.
- (i386_mangle_relocs, alpha_mangle_relocs): Likewise.
- (powerpc_build_stubs): Likewise.
- * nm.c (filter_symbols, print_symbols): Likewise.
- * objcopy.c (filter_symbols): Likewise.
- (mark_symbols_used_in_relocations): Likewise.
- * objdump.c (remove_useless_symbols, dump_relocs): Likewise.
- * size.c (sysv_internal_printer): Likewise.
-
-Mon Jun 20 16:43:03 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * Makefile.in (MANPAGES): Remove $(DEMANGLER_PROG).
- (install): Install it explicitly, from build dir, not srcdir.
-
-Mon Jun 20 16:29:54 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * objdump.c: Don't include elf/internal.h.
- (bfd_elf_find_section): Don't declare.
- (read_section_stabs): No special handling for ELF. Always read
- using BFD sections.
-
-Thu Jun 16 17:25:20 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * configure.in: Set UNDERSCORE in Makefile based on result of
- invoking config.bfd with a second argument of ``_''.
- * Makefile.in (underscore.c): Depend upon Makefile. Don't try to
- run $(CC) and $(NM), just use $(UNDERSCORE). Create via temporary
- file.
- (demangle.o): Remove target.
- ($(NM_PROG)): Don't depend upon demangle.o, and don't link against
- demangle.o. It's in libiberty anyhow.
- (cplus-dem.o): Don't depend upon demangle.o.
- * binutils.texi: Mention -n and --no-strip-underscores arguments
- to c++filt.
-
-Wed Jun 15 12:10:31 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nm.c (long_options): Add --no-demangle to turn off --demangle,
- and --no-cplus for Linux compatibility.
- (usage): Mention --no-demangle.
- * binutils.texi: Document --no-demangle.
-
-Fri Jun 10 15:41:25 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nm.c: HOST_64_BIT was renamed to BFD_HOST_64_BIT.
-
- * objcopy.c (copy_archive): Make the temporary directory in the
- same directory as the output BFD, since we may not have write
- permission on the current directory. Set the permissions of the
- new directory to 0700, not 0777.
-
-Mon Jun 6 21:36:43 1994 D. V. Henkel-Wallace (gumby@cygnus.com)
-
- * configure.in: if this is an rs6000 (and we're not building for
- any other bfd targets) then build only nm (collect needs it on
- rs6000-lynx).
-
- * Makefile.in: define TOOL_PROGS which the list of programes to
- install in $tooldir -- replaces a hard-coded list.
-
-Fri Jun 3 10:59:18 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objdump.c (display_target_list): Remove unused local ok.
-
-Thu May 26 18:05:52 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * config/mh-alphaosf (CFLAGS): Don't specify both -g and -O;
- they're not compatible under native cc. Use -O1 instead.
-
- * Makefile.in (VERSION): Updated to cygnus-2.4.1.
-
- Changes from binutils-2.4 net release:
-
- * Makefile.in (MANPAGES): Use $(DEMANGLER_PROG).
- ($(DEMANGLER_PROG).1): Build from cxxfilt.man, using sed.
- * cxxfilt.man: Renamed from c++filt.1, replaced "c++filt" with
- magic token to be replaced by sed.
-
- Wed May 11 22:32:00 1994 DJ Delorie (dj@ctron.com)
-
- * configure.bat: update for latest makefile.in
-
-Fri May 13 23:25:13 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bucomm.c: Check ANSI_PROTOTYPES rather than __STDC__.
-
-Tue May 10 18:22:06 1994 Jason Molenda (crash@sendai.cygnus.com)
-
- * objcopy.c (copy_section): Set section size correctly if using
- interleave.
-
-Sat May 7 16:49:36 1994 Steve Chamberlain (sac@cygnus.com)
-
- * Makefile.in: Add rule for sysinfo.h
-
-Fri May 6 12:18:33 1994 Steve Chamberlain (sac@cygnus.com)
-
- * Makefile.in (SRCONV_PROG): Define.
- (PROGS): Use $(SRCONV_PROG) too.
-
-Thu May 5 19:41:43 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * Makefile.in (DISTSTUFF): Add sysinfo.c, syslex.c, in case
- someone configures with `targets=all'.
- (distclean): Remove y.*.
- (syslex.o): Depend on sysinfo.h.
- (sysinfo.c): Rename y.tab.h to sysinfo.h.
- (install-info): Don't try to install into $(infodir)/$(srcdir).
- * syslex.l: Include sysinfo.h, not y.tab.h.
-
-Thu May 5 11:50:55 1994 Ken Raeburn (raeburn@kr-pc.cygnus.com)
-
- * syslex.l (yywrap): Define as function if not defined as a macro.
-
- * Makefile.in (objdump.o): Deleted special rule.
- * configure.in: Don't bother building ARCHDEFS variable for
- Makefile.
- * objdump.c (ARCH_*): Deleted handling.
- (disassemble_data): Call `disassembler' from opcodes library.
-
-Thu May 5 13:28:42 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * Makefile.in (install): Correct handling of $(tooldir) and
- $(bindir) being on different devices.
-
-Fri Apr 29 09:50:38 1994 Steve Chamberlain (sac@cygnus.com)
-
- * sysdump.c (h8300, sh): Add declarations.
-
-Wed Apr 27 11:25:18 1994 Steve Chamberlain (sac@cygnus.com)
-
- * Makefile.in (syslex, sysinfo): Use CC_FOR_BUILD.
- * coffdump.c, coffgrok.c, coffgrok.h, srconv.c, sysdump.c,
- sysroff.info: Major changes.
-
-Tue Apr 26 18:18:24 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * objdump.c (print_section_stabs): Indicate the stab header symbol
- more clearly, print numbers of unrecognized stab n_type values.
-
-Tue Apr 26 16:22:55 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (copy_sections): Copy arelent pointers, not arelents.
-
-Mon Apr 25 16:14:32 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * Makefile.in (distclean): Remove $(PROGS) and underscore.c.
-
-Fri Apr 22 11:14:19 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (setup_sections): Remove special handling of .reginfo
- section.
- (copy_sections): Likewise.
- (alpha_mangle_relocs): Use bfd_ecoff_get_gp_value rather than the
- special ECOFF .reginfo section.
-
- * objcopy.c (copy_object): Call bfd_copy_private_bfd_data after
- copying everything else, to let it fiddle with the file in its
- final state.
-
- * objdump.c: Include libiberty.h.
- (display_target_list): If a format fails, just go on to the next
- one. Check return value of bfd_set_format.
- (display_info_table): Likewise. Don't increment loop variable in
- for loop test, since that skips the first element.
- (display_target_tables): Rewrite loop for clarity. Ensure that it
- always prints at least one element.
-
- * nlmconv.c (main): Use CyGnUsEx rather than CyGnUsSeCs for
- sections header. Rename from cygnus_sections to cygnus_ext.
-
-Thu Apr 21 12:12:26 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objdump.c (_DUMMY_NAME_): Don't define.
- (display_target_list): Use tmpnam to get a file name rather than
- using _DUMMY_NAME_. Unlink it when done.
- (display_info_table): Likewise.
-
- * nlmconv.c (secsec): New static variable.
- (main): Create .nlmsections section in output BFD. Store
- information about it in sections header.
- (setup_sections): Allocate space in sections header.
- (copy_sections): Copy zero sized sections. Put information about
- each section in the sections header.
-
-Wed Apr 20 14:34:51 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (powerpc_build_stubs): Take new outbfd argument.
- Change caller. Create custom header for new PowerPC NetWare
- format.
-
- * Makefile.in (nlmheader.o, nlmconv.o): Update dependencies.
- * nlmconv.c: Include bfd.h and libiberty.h with "", not <>.
- * nlmheader.y: Include bfd.h with "", not <>.
-
-Wed Apr 13 10:52:50 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objdump.c: Do an ifdef on __GO32__, not unix.
-
-Wed Apr 6 21:54:49 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- Added -D (--dynamic) option to nm and -T (--dynamic-syms) and -R
- (--dynamic-reloc) arguments to objdump.
- * nm.c (dynamic): New static variable.
- (long_options): Added "dynamic".
- (usage): Mention -D and --dynamic.
- (main): Add D to getopt string. Handle -D by setting dynamic.
- (display_rel_file): If dynamic is non-zero, read dynamic symbols
- rather than normal symbols.
- * nm.1: Updated for -D (--dynamic) option.
- * objdump.c (dump_dynamic_symtab): New global variable.
- (dump_dynamic_reloc_info): New global variable.
- (dynsyms, dynsymcount): New global variables.
- (usage): Mention -R, -T, --dynamic-syms and --dynamic-reloc.
- (long_options): Added "dynamic-reloc" and "dynamic-syms".
- (slurp_symtab): If no symbols, return rather than exit.
- (slurp_dynamic_symtab): New function.
- (display_bfd): Handle dump_dynamic_symtab and
- dump_dynamic_reloc_info.
- (dump_symbols): Take new dynamic argument, indicating whether to
- display dynamic symbols.
- (dump_relocs): Move most printing into dump_reloc_set.
- (dump_dynamic_relocs): New function.
- (dump_reloc_set): New function, extracted from dump_relocs.
- (main): Add R and T to getopt string. Handle -T by setting
- dump_dynamic_symtab and -R by setting dump_dynamic_reloc_info.
- * objdump.1: Updated for -R (--dynamic-reloc) and -T
- (--dynamic-syms) options.
- * binutils.texi: Updated for new nm and objdump options.
-
-Wed Mar 30 15:52:40 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- Update for recent BFD changes to symbol and reloc reading. Rename
- all uses of get_symtab_upper_bound to bfd_get_symtab_upper_bound.
- Also:
- * coffgrok.c (symcount): Change to long.
- (do_sections_p1): Check for error return from
- bfd_get_reloc_upper_bound. Change relcount to long, and check for
- error from bfd_canonicalize_reloc.
- (coff_grok): Change storage to long. Check for error from
- bfd_get_symtab_upper_bound and bfd_canonicalize_symtab.
- * nlmconv.c (main): Change symcount, newsymalloc, newsymcount, and
- i to long. Check for error from bfd_get_symtab_upper_bound and
- bfd_canonicalize_symtab.
- (copy_sections): Change reloc_size and reloc_count to long. Check
- for error from bfd_get_reloc_upper_bound and
- bfd_canonicalize_reloc.
- (mangle_relocs, i386_mangle_relocs, alpha_mangle_relocs): Change
- reloc_count_ptr argument to long *. Make corresponding changes to
- variables loaded from *reloc_count_ptr.
- * nm.c (display_rel_file): Change storage and symcount to long.
- Check for errors from bfd_get_symtab_upper_bound and
- bfd_canonicalize_symtab.
- * objcopy.c (filter_symbols): Change symcount, src_count and
- dst_count to long.
- (copy_object): Change symcount to long. Pass another argument to
- fprintf. Check for errors from bfd_get_symtab_upper_bound and
- bfd_canonicalize_symtab.
- (copy_section): Change relcount to long. Check for errors from
- bfd_get_reloc_upper_bound and bfd_canonicalize_reloc.
- (mark_symbols_used_in_relocations): Change relcount and i to long.
- Check for errors form bfd_get_reloc_upper_bound and
- bfd_canonicalize_reloc.
- * objdump.c (storage): Remove global variable.
- (symcount): Changed to long.
- (slurp_symtab): New local variable storage. Check for errors from
- bfd_get_symtab_upper_bound and bfd_canonicalize_symtab.
- (remove_useless_symbols): Change return value and count to long.
- (objdump_print_address): Change min, max, thisplace and i to long.
- (disassemble_data): Change i to long.
- (dump_symbols): Change count to long.
- (dump_relocs): Change relcount to long. Check for errors from
- bfd_ret_reloc_upper_bound and bfd_canonicalize_reloc.
- (display_info_table): Add casts when passing LONGEST_ARCH for
- printf %* argument.
-
-Tue Mar 29 14:59:04 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nm.c (display_archive): Close each archive element after it has
- been displayed.
- * objdump.c (display_file): Likewise.
-
-Mon Mar 28 13:04:08 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * configure.in: Change error message to refer to bfd/config.bfd
- rather than bfd/configure.in.
-
-Sun Mar 27 16:23:39 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * More fixes for object formats which allow multiple sections
- with the same name:
- * objcopy.c (setup_section): Make a new output section even if
- one already exists with the given name.
- (copy_section): Use isection->output_section rather than trying
- to look the output section up by its (possibly non-unique) name.
-
- * Makefile.in (install-info): Look for binutils.info in the
- current directory, then in $(srcdir). Don't use $<.
-
-Mon Mar 21 12:55:45 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objdump.c (objdump_print_address): Make static. Declare with
- prototype. Change vardiff from int to bfd_signed_vma. Correct
- binary search termination condition. When looking for same
- section symbol in relocatable file, handle final symbol correctly.
-
-Sun Mar 20 11:26:36 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * Makefile.in: Avoid bug in hpux sed.
-
- * objcopy.c: Changes to keep it from stripping symbols used
- in output relocations.
- (mark_symbols_used_in_relocations): New function. Mark symbols
- used in output relocations with BSF_KEEP.
- (filter_symbols): Do not strip symbols marked with BSF_KEEP.
- (copy_object): Reorder actions. First setup sections, then
- build the output symbol table, then copy the section contents.
-
-Fri Mar 18 10:53:55 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ar.c (write_archive): Allocate space for the null byte. From
- Robert Lipe <robertl@arnet.com>.
-
-Thu Mar 17 16:20:28 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * Makefile.in: Built nm.new and strip.new to avoid problems with
- collect when . is in PATH.
- (STRIP_PROG): Change from strip to strip.new.
- (NM_PROG): Change from nm to nm.new.
- (install): Remove the .new when installing.
-
-Wed Mar 16 16:27:05 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (powerpc_build_stubs): Set BSF_DYNAMIC flag for each
- symbol for which we build a stub.
- (powerpc_mangle_relocs): Only reset TOC pointer for a call to a
- symbol with BSF_DYNAMIC flag set.
-
-Tue Mar 15 23:04:13 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * objcopy.c (filter_symbols): Use bfd_is_local_label to determine
- if a symbol represents a compiler-generated local label.
- (copy_object): Give the BFD backends a chance to copy any private
- bfd data from the input BFD to the output BFD.
- (setup_section): Give the BFD backends a chance to copy any private
- section data from the input section to the output section.
-
-Mon Mar 14 11:15:58 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * objcopy.c (mangle_section): Delete unused function.
- (setup_section): Set osection here instead of calling
- mangle section to do it.
-
-Mon Mar 14 12:11:01 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * ar.c (write_archive): Close inarch before unlinking it.
-
-Fri Mar 11 22:20:48 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (main): For PowerPC, call powerpc_build_stubs and
- powerpc_resolve_stubs. Use __GOT0, not __toc_start. Handle it if
- the start and end symbols are not in the text section.
- (struct powerpc_stub): New struct definition.
- (powerpc_stubs, powerpc_stub_insns): New static variables.
- (powerpc_initial_got_size): New static variable.
- (powerpc_build_stubs): New function.
- (powerpc_resolve_stubs): New function.
- (powerpc_mangle_relocs): Clear extraneous data in .got section.
- Rearrange reloc handling to handle ELF relocs that are not
- partial_inplace. Resolve PC relative relocs.
-
-Wed Mar 9 13:48:11 1994 Steve Chamberlain (sac@jonny.cygnus.com)
-
- * ar.c (move_members): Fix it so that the abi positional modifiers
- don't delete all archive members following the insert point.
-
-Tue Mar 8 13:14:43 1994 Steve Chamberlain (sac@jonny.cygnus.com)
-
- * coffgrok.[ch]: New files, understand coff objects.
- * coffdump.c: Uses coffgrok to dump out the debug info of a coff
- file.
- * sysroff.info: Description of a SYSROFF object file.
- * sysinfo.y, syslex.l: Parse info file, generate a reader, writer,
- header files and a printer.
- * srconv.c: Uses coffgrok.c and sysroff.info to convert a coff
- file to a SYSROFF file.
-
-Sat Feb 26 13:35:26 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * ar.c (do_quick_append): Pad with a genuine character 10,
- rather than whatever '\n' might happen to be.
-
-Tue Feb 22 18:25:52 1994 Ian Lance Taylor (ian@cygnus.com)
-
- * nlmconv.c (main): Ignore debugging symbols when looking for
- special symbols by name.
-
-Sun Feb 20 18:47:42 1994 Ian Lance Taylor (ian@lisa.cygnus.com)
-
- * nlmconv.c: Include libiberty.h.
-
- Support for PowerPC NetWare.
- * nlmconv.c (main): For PowerPC NetWare, automatically define the
- special symbols __toc_start.
- (select_output_format): Handle bfd_arch_powerpc.
- (mangle_relocs): Likewise.
- (powerpc_mangle_relocs): New function.
-
-Thu Feb 17 09:28:23 1994 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * ar.c, bucomm.c, nlmconv.c, nm.c, objcopy.c, objdump.c,
- size.c: Use bfd_get_error and bfd_set_error and new error names.
-
-Fri Feb 11 15:54:51 1994 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * objcopy.c (strip_main, copy_main): Add missing 'break' in switch.
-
-Mon Feb 7 19:45:52 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objdump.c (disassemble_data): Handle bfd_arch_powerpc.
-
-Sun Feb 6 22:08:20 1994 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * strings.c objdump.c nlmconv.c objcopy.c nm.c ar.c size.c (main):
- Call xmalloc_set_program_name.
-
-Fri Feb 4 10:46:01 1994 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * objcopy.c (filter_bytes): Make MEMHUNK a char *, not PTR, so we
- can do arithmetic on it.
-
-Thu Feb 3 14:06:41 1994 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * objdump.c (dump_section_stabs, read_section_stabs,
- print_section_stabs): Functions broken out of dump_stabs_1.
- Free the stabs and strings when done with them.
-
-Wed Feb 2 13:42:23 1994 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * nlmconv.c (main): Use bfd_get_flavour instead of struct member.
- * ar.c (print_contents, extract_file), size.c
- (print_berkeley_format, print_sysv_format): Use bfd_get_filename and
- bfd_my_archive instead of dereferencing the structs directly.
-
- * ar.c: Use bfd_fatal and bfd_nonfatal instead of bfd_perror and exit.
- Indent. Remove DEFUNs.
-
- * nlmconv.c (main), objcopy.c (copy_file): Print matching formats
- if ambiguous match.
- * nm.c (display_file, display_archive), size.c (display_bfd):
- Eliminate gotos.
- Print matching formats if there is an ambiguous match. Use
- bfd_nonfatal instead of hardcoded error message if nothing matches.
-
- * arsup.c, ar.c, objdump.c: Use bfd_get_filename instead of
- abfd->filename.
-
- * nm.c (display_archive): New function, from code in display_file.
- (display_rel_file): Renamed from do_one_rel_file.
-
- * size.c: Indent.
- (display_archive): New function from code in display_file.
- (display_file): Check bfd_close error return.
-
- * strings.c (strings_object_file): Check bfd_check_format
- error return.
-
- * strings.c, objdump.c, size.c: Use bfd_nonfatal instead of bfd_perror.
-
- * bucomm.c: Delete references to exit_handler. It wasn't set
- anywhere, and now that we're using the libiberty xmalloc, it
- wouldn't always get called before exiting.
- (list_matching_formats): Function moved from objdump.c.
- * bucomm.h: Declare it.
-
- * objdump.c (disassemble_data): Move some variable decls closer to
- their use. Add some comments. Replace a nested block with a
- return.
-
-Mon Jan 31 18:50:41 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * objdump.c (display_target_list, display_info_table): Check that
- the bfd of the dummy output file is not null.
-
-Wed Jan 26 13:13:18 1994 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * objcopy.c (filter_bytes): New function.
- (copy_section): Call it.
- (copy_options, copy_usage, copy_main): Add --byte option to
- activate it. Appropriate the -b option (which was an undocumented
- synonym for -F) for it, also. Add --interleave, -i option for
- additional control.
- (setup_section, copy_section, mangle_section): Renamed with no `s'
- on the end.
- * objcopy.1, binutils.texi: Document the new options.
-
- * objdump.c (display_target_tables, display_target_list):
- New functions broken out of display_info.
- Eliminate some magic constants. Use more meaningful variable names.
- (dump_bfd_header): New function broken out of display_bfd.
- (dump_section_header): New function broken out of dump_headers.
- (remove_useless_symbols): Don't shadow global variable name with
- parameter.
- (objdump_print_address): Fix backward test.
-
-Tue Jan 25 19:40:54 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * bucomm.c (print_arelt_descr): Change decl of `when' to time_t.
- * objdump.h: Removed.
-
-Mon Jan 24 13:29:02 1994 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * objdump.c (display_file): Remove call to list_matching_formats.
- It would never be called.
- (list_matching_formats): Take an arg giving the list of matching
- formats.
- (display_bfd): Pass the arg, and get it filled in by calling
- bfd_check_format_matches instead of bfd_check_format.
- (display_info, display_info_table): target_vector was renamed to
- bfd_target_vector.
-
- * binutils.texi (objdump): Note some limitations of -h section
- address printing.
-
-Sat Jan 22 16:20:46 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * Makefile.in (MALLOC): Set to emptiness by default.
- (ALL_CFLAGS): Add and use.
- (arparse.h): Make it depend on arparse.y.
- * ar.c (libbfd.h): Don't require to be in ../bfd.
- * objdump.c (comp): Rename to compare_symbols.
-
-Fri Jan 21 20:22:30 1994 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * objdump.c (list_matching_formats): If the file format is ambiguous,
- print the matching names so the user can choose one.
- (display_bfd): Call it.
- (display_file): Call it.
-
-Fri Jan 21 19:17:25 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objdump.c (disassemble_data): Support bfd_arch_rs6000.
-
-Mon Jan 17 13:57:25 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * objdump.c (stab_name): Allocate dynamically.
- (stab_print): Use pointers to strings instead of char arrays.
- (dump_stabs): Change alloc and init of arrays appropriately.
- (dump_stabs_1): Always decide whether to print stab_name or
- the stab's type number, if unnamed.
-
-Fri Jan 14 14:42:48 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objcopy.c (strip_main, copy_main): Don't clobber the input file
- if copy_file fails.
-
- * nlmconv.c (main): Warn about an attempt to use a shared library
- with uninitialized data.
-
- * nlmconv.c (setup_sections): Make sure that we align the
- output_offset of each input section appropriately.
-
-Thu Jan 13 17:32:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objdump.c (dump_relocs): Don't crash if section name is NULL.
-
-Tue Jan 11 19:46:33 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * filemode.c (filemodestring): Commented out; not used.
- (mode_string): Use POSIX definitions.
- (ftypelet): Likewise.
- (rwx): Removed; no longer used.
- * bucomm.c: Include bucomm.h.
- (bfd_nonfatal, bfd_fatal): Argument is const.
- (fatal): Make __STDC__ version.
- * bucomm.h (mode_string): Declare.
- * Makefile.in (bucomm.o): Depend upon bucomm.h
-
-Sun Jan 9 12:03:20 1994 Ken Raeburn (raeburn@rtl.cygnus.com)
-
- * bucomm.c (xmalloc, xrealloc): Deleted.
- * bucomm.h (xmalloc, xrealloc): Fix prototypes, to correspond to
- libiberty version of functions.
-
-Thu Jan 6 06:18:15 1994 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * binutils.texi: Add a chapter summarizing the ways to select
- aspects of the target for each program.
-
- * objdump.c (long_options, usage): Add long equivalents for all
- remaining short options that lacked them.
- * binutils.texi objdump.1: Document them.
-
- * size.c (usage): Tweak usage message.
- * size.1: Add missing `=' in examples.
-
- * binutils.texi strip.1 objcopy.1 nlmconv.1 objcopy.c nlmconv.c:
- Use "--target=bfdname" as the option to select the BFD target,
- like nm and size already do.
- Reserve "--format=format" for textual output selection options, but
- for now keep old option names as obsolete for backward compatibility.
-
- * strings.c (main, strings_object_file, usage): Add --target option.
- * binutils.texi strings.1: Document it.
-
-Sat Jan 1 13:58:24 1994 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * ar.c (main): Add \n in error message.
-
-Thu Dec 23 12:23:11 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- gcc -Wall lint:
- * ar.c (main): Put parens around assignment used as truth value.
- * objcopy.c (strip_main): Remove unused variables. Return 0.
- (copy_main): Remove unused variables. Return 0.
- * objdump.c (display_bfd): Declare return value as void.
- (stab_print): Use "" instead of 0 to initialize array.
- (dump_stabs_1): Print vma using printf_vma.
- (display_info): Put parens around assignment used as truth value.
- * strings.c (print_strings): Cast printf arguments.
-
- * objcopy.c (copy_main): Use copy_options, not strip_options.
-
- * nlmheader.y (command): Warn about illegal date values.
-
-Wed Dec 15 11:18:03 1993 David J. MacKenzie (djm@frosty.eng.umd.edu)
-
- * bucomm.c bucomm.h: Run through indent. De-ansidecl-ify.
- (bfd_nonfatal): New function.
- (bfd_fatal): Call it.
-
- * objcopy.c (smart_rename): Do a copy if the dest file has
- multiple hard links. Remove source file on successful copy.
- Try to preserve mode and owner on successful rename.
-
- * objcopy.c: Run through indent. Clean up a bit.
- Make global variables static.
- Make {input,output}_{target,filename}, show_version local
- to various functions.
- New global variable `status' for exit status.
- (strip_main, copy_main): New functions with code from main.
- (nonfatal): New macro. Use it globally instead of bfd_perror and
- bfd_fatal.
-
- (copy_object): Call mangle_sections with bfd_map_over_sections.
- (mangle_sections): Adjust for new calling convention.
-
-Fri Dec 10 11:28:11 1993 Ian Lance Taylor (ian@deneb.cygnus.com)
-
- * nlmheader.y (command): Accept MAP and FULLMAP without arguments.
- * nlmconv.c (main): Change error message for MAP and FULLMAP.
-
-Thu Dec 9 17:47:19 1993 Ian Lance Taylor (ian@deneb.cygnus.com)
-
- * nlmconv.c (main): Warn about imported symbols that are not in
- the IMPORT list even if the IMPORT keyword is not used.
-
- * nlmconv.c (debug, unlink_on_exit): New static variables.
- (long_options): Add "debug" and "linker".
- (main): Handle -d and -l arguments. Make command line input and
- output files optional. Parse the command file before opening the
- BFD's, which requires storing more information in local variables.
- If INPUT names multiple files, link them together. Use OUTPUT for
- the output file name if not named on command line.
- (show_usage): Changed for new options.
- (link_inputs): New function to automatically invoke linker to
- handle multiple INPUT files.
- (choose_temp_base_try, choose_temp_base, pexecute): New functions,
- mostly copied from gcc/gcc.c.
- * nlmconv.h (input_files, output_file): Declare.
- * nlmheader.y (input_files, output_file): Define.
- (command): Support INPUT with a string_list argument. Support
- OUTPUT.
- (string_list): Renamed from module_list.
- * Makefile.in (nlmconv.o): Define LD_NAME based on
- program_transform_name.
-
-Wed Dec 8 10:09:04 1993 Ian Lance Taylor (ian@deneb.cygnus.com)
-
- * nlmheader.y (nlmheader_identify): New function. Use it to print
- the program name just once, instead of with every error message.
-
-Mon Dec 6 16:11:32 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (long_options): Changed --header-info to --header-file
- to match documentation and usage message.
-
-Sun Dec 5 01:31:01 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * objdump.c (dump_relocs): Avoid dereferencing a NULL sym_ptr_ptr
- in a relocation.
-
-Thu Dec 2 16:00:06 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (main): Change various types from bfd_size_type to
- size_t, since they have to be arguments to fread and fwrite.
- Change set from char * to unsigned char *.
- (select_output_format): Make mach argument unsigned. Handle
- bfd_arch_alpha.
- (setup_sections): Don't copy the .reginfo section of an ECOFF
- file. Call bfd_set_reloc to initialize the relocation fields.
- (copy_sections): Don't copy the .reginfo section of an ECOFF file.
- Combine all relocs for a section.
- (mangle_relocs): Change type of relocs to permit specific
- functions to change it. Call alpha_mangle_relocs for alpha,
- default_mangle_relocs for other architectures.
- (default_mangle_relocs): New function. Adjust the address of all
- relocs by the output_offset.
- (i386_mangle_relocs): Change type of relocs argument. Cast length
- argument to memmove to size_t.
- (alpha_mangle_relocs): New function.
-
-Wed Nov 17 17:38:58 1993 Sean Eric Fagan (sef@cygnus.com)
-
- * nlmconv.c (select_output_format): Use nlm32-sparc for
- bfd_arch_sparc.
-
-Wed Nov 17 14:41:35 1993 Jeffrey Osier (jeffrey@thepub.cygnus.com)
-
- * nlmconv.1: added man page
- * objcopy.1: fixed format errors
-
-Wed Nov 17 12:03:41 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * Makefile.in: Use CFLAGS as well as LDFLAGS when linking.
-
-Wed Nov 17 04:50:55 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * strings.1: Fix typo.
-
-Mon Nov 15 12:03:20 1993 Ken Raeburn (raeburn@rtl.cygnus.com)
-
- * Makefile.in (DISTSTUFF): Build "info".
- (VERSION): Updated to cygnus-2.3.1; 2.3 has gone out.
-
-Sun Nov 14 00:27:24 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * objdump.c (dump_stabs): Handle stabs-in-som as implemented
- by the new BFD SOM assembler.
-
-Sat Nov 13 07:14:05 1993 David J. Mackenzie (djm@rtl.cygnus.com)
-
- * ar.1 c++filt.1 nm.1 objcopy.1 objdump.1 ranlib.1 size.1
- strings.1 strip.1: Replace \(em in NAME section with \- so
- makewhatis can grok it.
-
-Tue Nov 9 15:22:12 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (i386_mangle_relocs): Adjust reloc address by
- section output_offset.
-
-Fri Nov 5 12:11:52 1993 Jeffrey Osier (jeffrey@thepub.cygnus.com)
-
- * binutils.texi: added nlmconv chapter
-
-Wed Nov 3 16:10:50 1993 Jeffrey Wheat (cassidy@cygnus.com)
-
- * Makefile.in: Change RUNTESTFLAGS to RUNTEST_FLAGS
-
-Wed Nov 3 15:09:23 1993 Ken Raeburn (raeburn@rover.cygnus.com)
-
- * Makefile.in (distclean): Don't get rid of dvi or info files.
-
-Tue Nov 2 13:29:59 1993 David J. Mackenzie (djm@rtl.cygnus.com)
-
- * objcopy.c (S_ISLNK): Define as 0 if there's no S_IFLNK.
-
-Fri Oct 29 16:02:34 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * binutils.texi: Move objcopy docs into alphabetical order.
-
- * objdump.c: Use xmalloc instead of malloc.
-
-Fri Oct 29 11:11:14 1993 Stan Shebs (shebs@rtl.cygnus.com)
-
- * objdump.c (info): Rename to formats_info.
- (dump_stabs_1): Better comments and formatting.
-
-Thu Oct 28 19:43:16 1993 Stan Shebs (shebs@rtl.cygnus.com)
-
- * ar.c (main): Always create the archive when quick appending,
- even if no input files have been given.
-
-Wed Oct 27 12:03:06 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (main): Set sharedDebugRecordOffset and
- sharedDebugRecordCount fields in extended header.
-
- * nlmconv.c (main): Force moduleName field to upper case.
-
-Mon Oct 25 16:45:42 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objcopy.c (main): Give a usage message if there are too many
- arguments.
-
-Mon Oct 25 10:37:08 1993 Ken Raeburn (raeburn@rover.cygnus.com)
-
- * Makefile.in (install-info): Rewrite to take advantage of VPATH,
- so FSF distributions (with info files in $(srcdir)) install
- properly.
- (DISTSTUFF): Build nlmheader.c too.
-
-Fri Oct 22 11:43:23 1993 Ken Raeburn (raeburn@rover.cygnus.com)
-
- * ar.c (program_name): Don't define here.
- * objdump.c: Include "bucomm.h".
- (xmalloc): Don't declare here.
- (program_name): Don't define here.
- (program_version): Fixed type in declaration.
- * size.c: Include "bucomm.h".
- (program_name): Don't declare here.
-
-Fri Oct 22 14:10:41 1993 Mark Eichin (eichin@cygnus.com)
-
- * objdump.c (fprintf): hide declaration in FPRINTF_ALREADY_DECLARED
-
-Fri Oct 1 12:43:00 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (i386_mangle_relocs): Resolve and remove PC relative
- relocs against defined symbols in the same section.
-
-Thu Sep 30 16:46:26 1993 Roland H. Pesch (pesch@fowanton.cygnus.com)
-
- * Makefile.in (binutils.dvi): use TEXIDIR to find texinfo.tex
-
-Sat Sep 25 18:09:29 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * objcopy.c (simple_copy, smart_rename): New functions.
- (main): Use them.
-
-Fri Sep 24 15:38:29 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * Makefile.in (clean, distclean): Recurse into testsuite.
-
-Thu Sep 23 01:05:06 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objcopy.c (setup_sections, copy_sections): If stripping, don't
- copy SEC_DEBUGGING sections.
- * objdump.c (dump_headers): Print SEC_DEBUGGING flag.
-
- * objdump.c (usage): Mention --stabs.
-
- * objcopy.c (copy_object): Copy all applicable file flags.
- (copy_file): Don't copy EXEC_P specially here.
-
-Mon Sep 20 19:28:57 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (main): Adjust data section size to correspond to bss
- alignment adjustment. Clear BSF_SECTION_SYM if symbol is moved to
- a different section. Use time_t for time variable.
- (setup_sections): Only put sections with contents in output NLM.
- (i386_mangle_relocs): No symbols are common at this point. Add
- casts to avoid warnings.
-
-Fri Sep 10 11:00:40 1993 Stan Shebs (shebs@rtl.cygnus.com)
-
- * objdump.c: Made the --stabs option work for stabs-in-coff.
- (ELF_STAB_DISPLAY): Removed.
- (dump_elf_stabs): Renamed to dump_stabs, changed to run for
- any object file format.
- (dump_elf_stabs_1): Renamed to dump_stabs_1, added calls to
- generic BFD routines for non-ELF case, changed format of message
- for no-section-found case.
- (display_bfd): Always call dump_stabs if requested.
- (dump_data): Call bfd_section_size to get section size.
-
-Fri Sep 10 08:12:23 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * Makefile.in (install): Don't put strings in tooldir/bin.
-
-Mon Sep 6 15:39:04 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (total_bss_size): Removed.
- (main): Set the bss vma to always follow the data section. Move
- symbols into new sections, and adjust values by output_offset.
- (setup_sections): Don't copy all sections, but instead point all
- text sections to .text, all data sections to .data, and all bss
- sections to .bss.
- (copy_sections): Adjust accordingly.
-
-Thu Sep 2 12:34:03 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- Only build nlmconv if configured for a NetWare target.
- * configure.in: If we have some *-*-netware* target, or are using
- all targets, set BUILD_NLMCONV to $(NLMCONV_PROG) in Makefile.
- * Makefile.in (PROGS): Use $(BUILD_NLMCONV) rather than
- $(NLMCONV_PROG).
-
-Tue Aug 31 14:13:35 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * objdump.c (ARCH_all): Define ARCH_hppa too.
- (dump_headers): Don't test for SEC_BALIGN if it's not defined by
- bfd.h.
-
-Tue Aug 31 13:29:12 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * nlmconv.c (main): Force creation of .bss section. Set up the
- sections before looking at the symbols. Move all common symbols
- into .bss section. Automatically define _edata and _end. Only
- export symbols in the export list, with multiple prefixes if
- necessary. Warn if no version. Always create extended header.
- Set date automatically if not already set.
- (setup_sections): Count size of bss sections.
- (mangle_relocs, i386_mangle_relocs): Accept section argument, and
- take reloc_count as a changeable pointer; changed callers.
- (i386_mangle_relocs): Remove PC relative relocs within a section,
- as they require no adjustment.
- * nlmheader.y: Fixed memory allocation throughout: token STRING is
- now allocated on the heap, and freed if not needed. Null
- terminated copyright message. Accept version with only two
- strings.
- (symbol_list_opt): New nonterminal, either symbol_list or empty.
- (symbol_list): Use left recursion to avoid overflowing parser
- stack.
- (yylex): Rearranged beginning of line check. Accept quoted
- strings using single quotes. End generic argument at comment
- character or parentheses.
- (string_list_append): Fixed.
- (string_list_append1): New function.
-
- * bucomm.h: The first argument to xrealloc is PTR, not char *.
- * bucomm.c (xrealloc): Use PTR rather than char *.
- * Makefile.in (objdump.o): Depend upon config.status to notice
- --with-targets changes.
- (nlmconv.o): Depend upon bucomm.h.
-
-Tue Aug 17 09:46:01 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * configure.in: Don't pass cpu to config.bfd.
-
-Thu Aug 12 16:43:04 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * Makefile.in ($(NM_PROG)): Depend on demangle.o.
- (demangle.o): New target.
- (cplus-dem.o): Depend on it, to force compilation order when doing
- parallel compiles.
-
- * nm.c (print_symbol_info_{bsd,sysv,posix}): Take a bfd arg.
- (struct output_fns print_symbol_info): Ditto.
- (long_options, usage, main): Add -C --demangle option.
- (print_symname): New function, demangling if requested.
- (print_symbols, print_symbol_info_{bsd,sysv,posix}): Use it.
-
-Wed Aug 11 22:57:23 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * Makefile.in: Put CFLAGS last in compilation rules and omit from
- linking rules. Use ARCHDEFS to compile objdump.c.
- Update dependencies.
- * configure.in: Construct ARCHDEFS based on the BFD target makefile
- fragments.
- * objdump.c: Conditionalize calls to the print_insn_ARCH functions
- according to ARCHDEFS.
-
-Thu Aug 12 08:06:15 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * ar.c: Removed obsolete and non-functional GNU960 code.
-
-Wed Aug 11 13:08:26 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * size.c (berkeley_sum): New function.
- (bsssize, datasize, textsize): New global variables.
- (bss_section_name, data_section_name, text_section_name): Removed.
- (print_berkeley_format): Map berkeley_sum over all the sections,
- rather than only reporting sizes of specifically named sections.
- * Makefile.in ($(OBJDUMP_PROG)): Removed dependency on size.o.
-
-Tue Aug 10 10:46:01 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * nlmconv.c, nlmconv.h, nlmheader.y: New files for program to
- convert object files into NetWare Loadable Modules.
- * Makefile.in (NLMCONV_PROG): New macro, define to be nlmconv.
- (PROGS): Add NLMCONV_PROG.
- (nlmheader.c, nlmheader.o, nlmconv.o, $(NLMCONV_PROG)): New
- targets.
-
-Thu Aug 5 15:48:32 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * Makefile.in: define MAKEOVERRIDES to an empty string
-
-Wed Aug 4 17:08:08 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * objcopy.c (copy_file): Make failures to process a file nonfatal.
-
-Mon Aug 2 11:28:23 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * nm.c: Add -B option, like --format=bsd.
-
-Tue Jul 27 16:29:54 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objcopy.c (copy_file): If the file is neither an object nor an
- archive, give an error rather than returning success.
-
-Mon Jul 19 16:13:40 1993 Ken Raeburn (raeburn@rtl.cygnus.com)
-
- * objdump.c (objdump_print_address): Prefer non-local symbols over
- local ones, and especially discriminate against debugging symbols.
- Also, for relocateable files, try to find a symbol in the current
- section, instead of picking one from some random section with a
- convenient value (read, section offset).
- (disassemble_data): Cast argument to malloc to size_t first.
- (dump_data): Likewise.
- (dump_relocs): If a single section name is specified, show relocs
- only for that section. Otherwise, silently omit sections without
- relocs. Format table nicely even if values are printed using 16
- digits instead of 8.
-
-Fri Jul 16 15:19:59 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * nm.c: Changes for final version of POSIX.2.
- (print_symbol_filename_{bsd,sysv,posix}): New functions.
- (formats): Add an element for a pointer to them.
- (print_symbols): Call it.
- (print_object_filename_posix, print_archive_member_posix): Produce
- output according to new POSIX.2 spec.
-
- * strings.c (print_strings): Handle STREAM being NULL.
- (strings_a_section): Pass a NULL.
- (main): Don't open /dev/null.
-
-Thu Jul 15 12:44:09 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objdump.c (disassemble_data): Handle the m88k.
- (display_bfd): Use bfd_errmsg, rather than just claiming that the
- bfd is not an object file.
-
-Mon Jul 12 17:55:34 1993 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in (TAGS): make work again by naming directories
- explicitly rather than depending on undefined macros.
- (INSTALL_XFORM): correct bad install target.
-
-Fri Jul 2 16:58:34 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * strings.c: Doc fixes.
-
-Sun Jun 27 13:35:24 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * Makefile.in: Note dependencies on bucomm.h.
- (cplus-dem.o): Link c++filt with version.o.
-
- * strings.c: Include bucomm.h and add prototypes to other decls.
- Remove -h option.
-
- * bucomm.h: Declare xrealloc.
-
- * nm.c, objcopy.c, objdump.c, size.c, strings.c (main, usage): Add
- --help option. Put "GNU" in the version message.
- (usage): Take stream and exit status as args.
- (main): Pass new args to usage.
-
-Fri Jun 25 23:12:12 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * strings.c, strings.1: New files.
- * binutils.texi: Document strings.
- * Makefile.in: Add rules for it.
-
-Fri Jun 25 20:44:43 1993 Ken Raeburn (raeburn@poseidon.cygnus.com)
-
- * objdump.c: Use size-independent bfd elf section names.
-
-Sun Jun 20 23:09:06 1993 Ken Raeburn (raeburn@poseidon.cygnus.com)
-
- * objdump.c (objdump_print_address): Handle wide offsets by
- calling sprintf_vma.
-
-Fri Jun 18 14:29:12 1993 Per Bothner (bothner@deneb.cygnus.com)
-
- * objdump.c (syms2): Removed unused variable.
- * objdump.c (remove_useless_symbols): New function.
- * objdump.c (comp): Simplify.
- * objdump.c (dis-assemble_data): Make simpler and more
- efficient how we filter out useless symbols: Just filter
- BEFORE the sort (using remove_useless_symbols).
- * objdump.c (objdump_print_address): Simplify.
- Change output syntax to match gdb.
-
-Thu Jun 17 16:53:56 1993 david d `zoo' zuhn (zoo@cygnus.com)
-
- * Makefile.in: canonicalize install.sh; for use within
- this directory (and subdirs)
-
-Mon Jun 14 12:13:22 1993 david d `zoo' zuhn (zoo at rtl.cygnus.com)
-
- * Makefile.in (install, install-info): remove parentdir support,
- use INSTALL_XFORM; define INSTALL_XFORM
-
-Thu Jun 10 17:29:21 1993 Per Bothner (bothner@cygnus.com)
-
- * objcopy.c (copy_object): Fix bad size passed to xmalloc().
-
-Mon Jun 7 12:41:12 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in (INCLUDES): Add -I../bfd for sysdep.h and bfd.h.
- * configure.in: No longer need to configure to get sysdep.h.
- * objcopy.c (copy_object): Fix symbol table handling.
-
-Fri Jun 4 17:20:03 1993 Per Bothner (bothner@cygnus.com)
-
- * objcopy.c (filter_symbols): Cannot filter the symbols
- in place, because that confuses the relocs, so take separate
- parameter for output array.
- * objcopy.c (sympp): Make two variables: isympp and osympp.
- * objcopy.c (copy_object): Allocate separate array (osympp)
- for filtered symbols.
-
-Fri Jun 4 10:51:44 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: change recursion test to presence of a configured
- testsuite directory
-
-Thu Jun 3 14:05:57 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * Makefile.in (underscore.c): Hack the backquoted command so it
- doesn't cause Solaris make to bomb.
-
-Thu Jun 3 10:40:19 1993 Jeffrey Osier (jeffrey@cygnus.com)
-
- * Makefile.in: added c++filt and objcopy to MANPAGES variable
-
-Thu Jun 3 00:32:52 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: rename LOADLIBES to EXTRALIBS
-
-Wed Jun 2 18:30:24 1993 Jeffrey Osier (jeffrey@cygnus.com)
-
- * c++filt.1, objcopy.1: new man pages
-
-Fri May 28 15:01:24 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in (install): Also install ar and ranlib in
- $(tooldir)/bin; needed for building libgcc.a.
- * objdump.c (objdump_print_address): Fix the check
- "coincidental" label matches by dis-allowing undefined
- or com symbols.
-
-Thu May 27 16:58:31 1993 Jeffrey Osier (jeffrey@cygnus.com)
-
- * binutils.texi: revised c++filt chapter
-
-Wed May 26 17:24:17 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (FLAGS_TO_PASS): Pass down CC and CFLAGS.
-
-Tue May 25 00:26:47 1993 Ken Raeburn (raeburn@cygnus.com)
-
- * objdump.c (slurp_symtab): Print warning for bad symbol table.
- (bfd_elf32_find_section, Elf32_Internal_Shdr): Updated
- declarations and uses.
-
- * Makefile.in (DISTSTUFF): Don't build binutils.mm.
-
-Fri May 21 10:51:19 1993 David J. Mackenzie (djm@rtl.cygnus.com)
-
- * nm.c: Add -f/--format, -P/--portability, -t/--radix options.
- Make global variables static.
- (main): Make -v like -n, not -V, and make -A like -o, for POSIX.2.
- (set_print_radix, set_output_format,
- print_{object_filename,archive_filename,archive_member,symbol_info}
- {bsd,sysv,posix}): New functions.
- (display_file, print_symbols): Call them.
-
- * ar.c: Improve error messages.
-
- * nm.c (main): Handle long options that just set a flag.
-
- * nm.c (main), ar.c (do_show_version), objcopy.c (main), size.c
- (main): Exit after printing the version number, per the GNU coding
- standards.
-
-Mon May 17 13:20:25 1993 Per Bothner (bothner@cygnus.com)
-
- * README, Makefile.in: Minor updates for 2.2.
-
-Fri May 14 11:12:26 1993 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in (underscore.c): Automatically generate
- (using nm) a file with the variable prepends_underscore.
- * Makefile.in (c++filt): Link underscore.o with cplus-dem.o
- so that initial underscores get removed iff appropriate.
- * binutils.texi: Preliminary documentation for c++filt.
- * Makefile.in, binutils.texi: Set to version 2.2.
-
- * NEWS: Mention copy->objcopy renaming and new c++filt program.
-
-Wed May 12 12:05:36 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (cplus-dem.o, $(DEMANGLER_PROG)): Build the
- demangler via cplus-dem.o, rather than directly from the .c file.
-
- * objcopy.c: Renamed from copy.c, updated comments accordingly.
- * Makefile.in, binutils.texi: Renamed copy to objcopy.
- * is-strip.c, maybe-strip.c, not-strip.c: Updated comments for
- rename of copy to objcopy.
-
-Mon May 10 17:20:18 1993 Per Bothner (bothner@cygnus.com)
-
- * binutils.texi (strip, -v option): Fix typo.
-
-Fri May 7 13:57:50 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (RUNTEST): Define.
- (FLAGS_TO_PASS): Pass down RUNTEST.
-
-Tue May 4 10:06:50 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (DEMANGLER_PROG): Name it c++filt.
- (PROG): Also build and install COPY_PROG.
-
-Mon May 3 19:11:48 1993 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Change definition of $(tooldir) to match FSF.
-
-Wed Apr 28 23:41:32 1993 David J. Mackenzie (djm@rtl.cygnus.com)
-
- * size.c (usage): Add missing options.
- (main): Clean up option parser.
-
- * objdump.c (usage): Add missing options.
- (display_file): Print program name before calling
- bdf_perror.
-
- * nm.c (usage): Add missing options.
- (main): Clean up option parser.
- (display_file): Print program name before calling
- bdf_perror.
-
- * copy.c (copy_usage, strip_usage): Add missing options.
-
- * ar.c (usage): New function.
- (main): Call it.
- (open_inarch, do_quick_append): Print program name before calling
- bdf_perror.
-
-Thu Apr 22 15:01:35 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * nm.c (main): Accept and ignore -A and -B for MIPS compatibility.
-
-Mon Apr 19 14:06:59 1993 Rob Savoye (rob@cygnus.com)
-
- * Makefile.in: Added FLAGS_TO_PASS so tests get run on freshly
- built binaries if they exist. (otherwise the path)
-
-Wed Apr 7 22:22:50 1993 Rob Savoye (rob@cygnus.com)
-
- * Makefile.in: Changed check target to use DejaGnu.
-
-Thu Apr 1 12:37:13 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * Makefile.in: Remove am29k-pinsn.c, i960-pinsn.c.
- objdump.c: a29k and i960 are `disassemble' not `print'.
-
- * objdump.c: Rename print_address to objdump_print_address
- and change parameters.
- (disassemble_data): Use objdump_print_address.
-
-Wed Mar 31 10:25:29 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * objdump.c (disassemble_data): print_insn_sparc is now a
- `disassemble' not a `print'.
- Makefile.in: Remove sparc-pinsn.c (now in libopcodes.a).
-
- * objdump.c (disassemble_data): Use new read_memory_func stuff.
-
-Thu Mar 25 10:38:11 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * objdump.c (fprintf): Declaration of variadic function had better
- be a prototype for ANSI C systems.
-
-Mon Mar 22 23:19:46 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: rename test-install to install-check
-
-Fri Mar 19 14:40:08 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * objdump.c (disassemble_data): Add H8500.
-
-Fri Mar 19 10:56:51 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * objdump.c (usage): Mention long options.
-
-Thu Mar 18 14:22:17 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * nm.c: Modify behavior of -o flag for archives to match
- BSD4.4 and Sunos 4: Prefix archive name before each line.
-
- * m68k-pinsn.c: Removed. Subsumed by ../opcodes/m68k-dis.c.
- * i386-pinsn.c: Removed. Subsumed by ../opcodes/i386-dis.c.
- * Makefile.in: Adjust accordingly.
- * objdump.c: Support new-style disassemblers (ones that use
- the interface of ../include/dis-asm.h).
-
-Thu Feb 25 15:57:00 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: When making tar file, remove texinfo/*,
- except for texinfo/texinfo.tex.
- * ardup.c: Add extern declaration of strdup.
- * Makefile.in (testsuite): Add 'else true' since otherwise
- Ultrix /bin/sh complains.
-
-Wed Feb 24 19:44:18 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Set VERSION to 2.1.
- * README, NEWS: Updates.
- * nm.c: Add -v as a synonym for -V.
-
-Tue Feb 23 19:00:50 1993 Mike Werner (mtw@poseidon.cygnus.com)
-
- * configure.in: added testsuite to configdirs.
- * Makefile.in: added support for building testsuite.
-
-Mon Feb 22 22:52:10 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * objdump.c (disassemble_data): Print function names when
- given by bfd_find_nearest_line. If not - still print
- line numbers.
-
-Mon Feb 22 07:54:03 1993 Mike Werner (mtw@poseidon.cygnus.com)
-
- * testsuite: made modifications to testcases, etc., to allow
- them to work properly given the reorganization of deja-gnu and the
- relocation of the testcases from deja-gnu to a "tool" subdirectory.
-
-Mon Feb 22 10:27:24 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * objdump.c (dump_data): Free up section contents each time
- through the loop. Reported by minyard@bnr.ca.
-
-Sun Feb 21 10:55:55 1993 Mike Werner (mtw@poseidon.cygnus.com)
-
- * testsuite: Initial creation of binutils/testsuite.
- Migrated dejagnu testcases and support files for testing nm to
- binutils/testsuite from deja-gnu. These files were moved "as is"
- with no modifications. This migration is part of a major overhaul
- of dejagnu. The modifications to these testcases, etc., which
- will allow them to work with the new version of dejagnu will be
- made in a future update.
-
-Fri Feb 12 10:05:20 1993 Fred Fish (fnf@cygnus.com)
-
- * Makefile.in (LIBIBERTY_SRC_DIR, LIBIBERTY_BIN_DIR): New macros.
- * Makefile.in (LIBIBERTY): Use LIBIBERTY_BIN_DIR.
- * Makefile.in (DEMANGLER_PROG): New program to build. Add macro
- and rule.
- * Makefile.in (PROGS): Add DEMANGLER_PROG.
-
-Tue Jan 26 11:56:33 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * copy.c, nm.c, objdump.c, size.c: Use new bfd_is_com_section
- macro rather than checking for equality to bfd_com_section.
-
-Fri Jan 8 15:50:05 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objdump.c (disassemble_data): Fix code to find first useless
- symbol.
-
-Thu Jan 7 13:13:31 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * objdump.c (disassemble_data): Use mips_print_insn for MIPS.
- Don't core dump if bfd_find_nearest_line returns false.
-
-Wed Jan 6 17:14:01 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * objdump.c (disassemble_data): know how to disassemble z8000s
- too.
-
-Wed Jan 6 15:16:27 1993 Per Bothner (bothner@cygnus.com)
-
- * arsup.h (interactive), bucomm.h (program_name): Prefix
- with 'extern', to avoid warnings from some compilers.
-
-Wed Jan 6 15:14:11 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * arparse.y: fix unnecessary shift/reduce
-
-Tue Dec 22 15:46:56 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Make check depend on all.
- * Makefile.in (distclean): Remove sysdep.h.
- * size.c: Use %u format where appropriate.
- * objdump.c: Standardize: L_SET -> SEEK_SET.
- * objdump.c: Use new macro bfd_asymbol_bfd.
- * configure.in: Allow std-host as the default ${mys_host}.
-
-Thu Dec 17 19:38:19 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: added dvi target, define and use TEXI2DVI
-
-Tue Dec 15 18:05:07 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in (dist): Fix permissions before release.
- * size.c: Use bfd_size_type (and long) where appropriate.
- * ar.c: Make writing a map the default, to be compatible
- with SYSV and Posix.2. Remove some bogus kludges that
- handled __.SYMDEF directly.
- * NEWS: New file.
-
-Mon Nov 9 13:36:53 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: flex no longer needs the -S flag
-
-Sat Nov 7 15:06:13 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * ar.c (extract_file): utime needs a pointer to a utimbuf
-
- * Makefile.in: handle -I includes better, adding $(BASEDIR)/bfd to
- the list (since some of the bfd/hosts/*.h files include other
- files from that directory)
-
-Fri Nov 6 00:12:51 1992 John Gilmore (gnu@cygnus.com)
-
- * i960-pinsn.c (MEM_MAX, MEM_SIZ): Set upper bound properly.
-
-Thu Nov 5 03:37:15 1992 John Gilmore (gnu@cygnus.com)
-
- Clean up some old BFD ansification macros.
-
- * arsup.h, bucomm.h, objdump.h: Remove EXFUN from binutils.
- It still remains as a local macro in gmalloc.c, which is derived
- from some other copy of GNU Malloc somewhere (FIXME).
-
- * ar.c, objdump.c, size.c: Replace EXFUN with PROTO. Make static
- fns really static.
- * arsup.h: Declare extract_files.
-
-Mon Nov 2 12:42:11 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * ar.c (extract_file): instead of checking USG: if POSIX_UTIME,
- use utime and utimbuf structure, otherwise if USE_UTIME use utime
- and array of two longs, otherwise use utimes.
-
-Thu Oct 15 13:57:35 1992 Per Bothner (bothner@cygnus.com)
-
- * binutils.texi: Document yesterday's changes to strip and copy.
-
-Wed Oct 14 13:22:14 1992 Per Bothner (bothner@cygnus.com)
-
- * copy.c: Re-do command-line parsing to use getopt_long().
- Add long option names. Re-think option letters to be more
- consistent.
- * copy.c: New function filter_symbols() for stripping only
- debug-symbols and/or local symbols. Use these to support
- the previously-missing options of the old FSF strip.
-
-Tue Oct 13 01:24:20 1992 John Gilmore (gnu@cygnus.com)
-
- * configure.in (host): Use ${srcdir}/../bfd/configure.host rather
- than repeating a copy of it here.
-
-Wed Oct 7 12:53:52 1992 Ken Raeburn (raeburn@cygnus.com)
-
- * copy.c (main): Even if is_strip, accept -d argument indicating
- alternate output format. Needed by gdb for Nindy.
-
- * m68k-pinsn.c (print_insn_arg): Handle new "`" operand type.
-
-Tue Oct 6 16:33:56 1992 Jeffrey Osier (jeffrey@cygnus.com)
-
- * binutils.texi: added documentation for "copy"
-
-Tue Oct 6 14:22:56 1992 Per Bothner (bothner at PersSony)
-
- * Makefile.in (*clean rules): Some cleaning up.
- * Makefile.in (dist): Make diststuff in gprof for a dist.
-
- * ar.c (do_show_version): New function.
- * ar.c (main): Fix so "ar -V" works.
-
-Thu Oct 1 22:44:45 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: now uses the cpu-vendor-os triple instead of
- nested cases.
-
-Fri Sep 25 22:41:08 1992 John Gilmore (gnu@cygnus.com)
-
- * i960-pinsn.c: Change bzero to memset.
- * sparc-pinsn.c: Change index to strchr.
-
-Mon Sep 21 14:39:56 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * m68k-pinsn (print_insn_arg, fetch_arg): added support for
- operands to memory management instructions, from WRS.
-
-Tue Sep 15 15:26:38 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (install): if $(tooldir) exists, install nm and
- strip in $(tooldir)/bin.
-
-Thu Sep 3 11:57:40 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Let's call it version 2.0.
-
-Wed Sep 2 00:25:13 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Bump to version 0.98.
- * TODO, README: Minor updates.
-
- * Makefile.in: Added mostlyclean, distclean rules,
- and cleaned up clean, realclean.
-
-Sun Aug 30 21:18:59 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in: map program names through program_transform_name
- when installing.
-
-Sun Aug 30 18:09:03 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Bump to versions 1.97.90.
- * cplus-dem.c: Removed. Was nowhere used - and if some
- programs are changed to to demangling should now use the
- versions in libiberty.
-
-Thu Aug 27 12:58:09 1992 Brendan Kehoe (brendan@cygnus.com)
-
- * configure.in: add we32k
-
-Mon Aug 24 14:53:42 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * ar.c (map_over_members): if the element of the archive has a
- null name, fill it in.
-
- * nm.c (do_one_rel_file): only warn if a bfd's flags say there
- will be symbols and there aren't any.
-
-Wed Aug 19 11:20:25 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * m68k-pinsn.c: handle new operand type 'r', introduced for cas2.
-
-Tue Aug 18 20:45:48 1992 Rob Savoye (rob@cygnus.com)
-
- * nm.c objdump.c: Added support for a +version (-V)
- to print the version number.
-
- * ar.c, copy.c: Added support for a -V option to print
- the version number.
-
-Tue Aug 18 13:28:44 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * config/mh-apollo68v: removed -g from CC definition.
-
- * Makefile.in: always create installation directories.
-
-Mon Aug 17 18:33:41 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * m68k-pinsn.c: Minor fix in style of output (don't use
- range to indicate floating point control registers).
-
-Tue Aug 11 23:42:21 1992 Per Bothner (bothner@cygnus.com)
-
- * ar.c (main): Don't *always* set the verbose flag!
-
-Wed Aug 5 11:25:27 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * copy.c: When is_strip (because it is invoked as the strip
- program), follow traditional argv processing:
- 'strip file1 file2' now strips file1 and file2, rather
- than stripping file1 (as input), leaving output in file2.
-
-Mon Jul 27 16:28:08 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * objdump.c (display_info, display_info_table): Call
- bfd_set_format() on dummy bfd before using it (twice).
- * ar.c: Make sure archive is created on command 'r'
- even when no elements are inserted. (Clean up and
- simplify some non-working related code.)
-
-Mon Jul 20 02:48:38 1992 D. V. Henkel-Wallace (gumby@cygnus.com)
-
- * configure.in: hppa support doesn't assume hp OS (from sef).
-
-Sat Jul 18 14:35:22 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: recognize hppa hosts (bsd & hpux), error messages
- to stderr, not stdout
-
-Fri Jul 17 18:39:44 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * ar.1, binutils.texi, i960-pinsn.c, nm.1, objdump.1, ranlib.1,
- size.1, sparc-pinsn.c, strip.1: removed rcsid's.
-
-Thu Jul 16 16:55:24 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * Makefile.dos: removed rcsid.
-
-Thu Jul 16 08:23:07 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * objdump.c (display_bfd): print state of BFD_IS_RELAXABLE too
-
-Tue Jun 30 20:26:15 1992 D. V. Henkel-Wallace (gumby@cygnus.com)
-
- * Makefile.in: Add program_suffix (parallel to program_prefix)
-
-Thu Jun 25 04:52:45 1992 John Gilmore (gnu at cygnus.com)
-
- * nm.c (sorters): Lint. Remove excess whitespace.
-
-Wed Jun 24 13:48:07 1992 Per Bothner (bothner@cygnus.com)
-
- * nm.c (valueof macro): Add missing parentheses.
- (Their lack screwed up numeric_forward().)
-
-Sun Jun 14 10:33:27 1992 John Gilmore (gnu at cygnus.com)
-
- * objdump.c (dump_elf_stabs): Also dump .stab.index and
- .stab.excl sections.
- (dump_elf_stabs_1): Split out main body of old dump_elf_stabs.
- * objdump.1, binutils.texi: Document new sections dumped.
-
-Fri Jun 12 22:23:35 1992 John Gilmore (gnu at cygnus.com)
-
- * size.c, objdump.c, bucomm.c: Lint.
-
-Thu Jun 11 01:19:06 1992 John Gilmore (gnu at cygnus.com)
-
- * objdump.c (dump_elf_stabs): New feature: --stabs prints out a
- .stab section from an ELF file. Installed under #ifdef
- ELF_STAB_DISPLAY so it can be easily disabled, since it requires
- bfd-internals header files and such.
- * objdump.1, binutils.texi: Update for --stabs. Also fix
- objdump's doc to use -- rather than + for long options.
- (FIXME: Not yet fixed everywhere in binutils.texinfo.)
-
-Wed Jun 10 07:53:24 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * objdump.c(display_info), patches from
- mohring@informatik.tu-muenchen.de to print the table much more
- nicely.
-
-Thu May 28 13:36:16 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * objdump.c: Add another enum->int cast, for the sake of
- old compilers (such as PCC).
-
-Wed May 27 13:01:44 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * arlex.l: Don't include <sysdep.h> (unneeded conflicts).
- Add declaration of strdup().
-
-Fri May 22 13:40:37 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Use srcdir instead of VPATH in ldgram/ldlex
- rules, since these are used when building a distribution.
- * Makefile.in (arlex.c): Don't re-direct output, since that
- leaves a bogus output files if it fails.
-
- * arlex.l: Make work with lex, for what it's worth.
- * Makefile.in: Better lex support.
- * Makefile.in (dist): Generate flex and bison outputs
- for distribution.
-
-Thu May 14 17:17:59 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * Makefile.in: get BISON definition right.
-
-Fri May 8 07:47:08 1992 K. Richard Pixley (rich@cygnus.com)
-
- * sanity.sh: default TMPDIR to ".".
-
-Thu May 7 12:34:50 1992 Roland H. Pesch (pesch@fowanton.cygnus.com)
-
- * binutils.texi: add doc for ar command language.
-
-Wed May 6 18:05:36 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * arparse.y: make END call ar_end
- * arsup.c (ar_end): added, deletes temp file if archive session
- aborted.
-
-
-Wed May 6 11:08:53 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * Makefile.in: use bison & flex from ../ if they exist. Also,
- FLEX->LEX.
-
- * sanity.sh: remove temporary directory when finished.
-
-Tue May 5 12:00:58 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Bump to version 1.97.
- * ar.c: Declare errno for machines that need it.
-
-Mon May 4 23:29:51 1992 John Gilmore (gnu@cygnus.com)
-
- * objdump.c (display_info): Handle error cases without coredump.
- Close the dummy temporary file we open in the loop.
- * Makefile.in (arsup.o): Add kludge to build with Sun Make.
-
-Fri May 1 16:20:23 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in: added test-install target.
-
- * sanity.sh: new file.
-
- * Makefile.in: use sanity test on make check.
-
-Tue Apr 21 13:38:37 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in: rework CFLAGS so that they can be passed on the
- command line to make. Remove MINUS_G. Default CFLAGS to -g.
-
-Wed Apr 15 14:33:07 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * arsup.c, arsup.h, arparse.y, arlex.l: support for archive
- scripting language.
-
-Fri Mar 6 21:54:53 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in: added check target.
-
-Thu Mar 5 21:35:49 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in: added clean-info target.
-
-Tue Mar 3 15:36:37 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * Makefile.in: remove $(COPY_PROG) from PROGS. It shouldn't be
- installed. added tooldir and program_prefix.
-
-Wed Feb 26 18:04:40 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in, configure.in: removed traces of namesubdir,
- -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced
- copyrights to '92, changed some from Cygnus to FSF.
-
-Sun Feb 16 12:53:02 1992 Per Bothner (bothner at cygnus.com)
-
- * Makefile.in: Bump version to 1.96, and remove -beta
- suffix from distribution name.
- * m68k-pinsn.c: New macro COERCE_SIGNED_CHAR to extract
- the signed value of a character (even if chars are unsigned).
- * sparc-pinsn.c: Add new operand types.
-
-Thu Feb 6 12:14:19 1992 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * objdump.c (disassemble_data): don't print a section's contents
- if it's not loadable (eg bss)
-
-Tue Jan 28 11:11:06 1992 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * m68k-pinsn.c (print_insn_arg): fixed so that -ve branch
- displacements don't get printed as large +ve ones.
-
-Fri Jan 24 14:47:53 1992 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * copy.c, nm.c, objdump.c, size.c : changed to use the
- new reloc scheme.
-
-
-Mon Dec 30 18:34:41 1991 Per Bothner (bothner at cygnus.com)
-
- * bucomm.c (print_arelt_descr): Tweek the output format
- so that 'ar tv' output follows Posix 1003.2/D11.
- Output is now also identical to Sun's (except __.SYMDEF).
-
-Mon Dec 30 06:09:53 1991 John Gilmore (gnu at cygnus.com)
-
- * Makefile.in: Make `make' output more readable.
-
-Wed Dec 18 15:04:45 1991 Per Bothner (bothner at cygnus.com)
-
- * Makefile.in: Bump to version 1.94.
-
-Wed Dec 11 16:48:09 1991 Steve Chamberlain (sac at cygnus.com)
-
- * ar.c: added "b" to fopens for dos
- * configdj.bat, makefile.dos new files from DJ
-
-Tue Dec 10 04:07:26 1991 K. Richard Pixley (rich at rtl.cygnus.com)
-
- * Makefile.in: infodir belongs in datadir.
-
-Sat Dec 7 17:09:37 1991 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * bucomm.h: created to hold prototypes of bucomm.c
- * objdump.h: created to hold prototyes of objdump.c
- * am29k-pinsn.c: include objdump.h
- * ar.c: include bucomm.h, get ar.h from the right place and
- include libbfd.h
- * bucomm.c: defunize bfd_fatal
- * copy.c: include bucomm.h, lint.
- * i960-pinsn.h: include bucomm.h
- * m68k-pinsn.h: lint
- * nm.c: include bucomm.h, lint
- * objdump.c: lint
- * sparc-pinsn.c: include objdump.h
-
-
-
-Fri Dec 6 23:02:14 1991 K. Richard Pixley (rich at rtl.cygnus.com)
-
- * Makefile.in: added standards.text support. install using
- INSTALL_PROGRAM and INSTALL_DATA.
-
- * configure.in: configure now does all of it's work from objdir so
- make file existence tests against ${srcdir}.
-
-Thu Dec 5 22:46:22 1991 K. Richard Pixley (rich at rtl.cygnus.com)
-
- * Makefile.in: idestdir and ddestdir go away. Added copyrights
- and shift gpl to v2. Added ChangeLog if it didn't exist. docdir
- and mandir now keyed off datadir by default.
-
-Wed Dec 4 22:42:03 1991 Per Bothner (bothner at cygnus.com)
-
- * Makefile.in: Bump to version 1.93.
- * Makefile.in: Add make-strip.o:maybe-strip.c dependency
- for make versions that provide half-baked VPATH-support (e.g. Sun's).
- * size.c: Improvements suggested by
- "david d [zoo] zuhn" <zoo@aps1.spa.umn.edu>:
- - Don't emit (Berkeley) headers if no files were found.
- - Return a non-zero return code on failure.
-
-Sat Nov 30 21:34:19 1991 Steve Chamberlain (sac at rtl.cygnus.com)
-
- Changes due to include file renaming:
- * am29k-pinsn.c: a29k-opcode.h -> opcode/a29k.h
- * sparc-pinsn.c: sparc-opcode.h -> opcode/sparc.h
- * m68k-pinsn.c: m68k-opcode.h -> opcode/m68k.h
- * nm.c: stab.gnu.h -> aout/stab_gnu.h
-
-Tue Nov 19 19:20:43 1991 Per Bothner (bothner at cygnus.com)
-
- * README: Mention MINIMIZE flag for bfd's make.
-
-Mon Nov 18 12:05:37 1991 Per Bothner (bothner at cygnus.com)
-
- * README: Various improvements.
-
-Sun Nov 17 23:40:59 1991 Per Bothner (bothner at cygnus.com)
-
- * Makefile.in: Bump to version 1.92.
- * version.c, Makefile.in: Get version string from Makefile.
- * copy.c, is-strip.c, not-strip.c, maybe-strip.c, Makefile.in:
- Make the same change that we earlier did for ar/ranlib:
- Generate two different binaries for strip and copy and use
- a global variable with different values to distinguish
- ostrip from copy. (-1 means to use argv[0] to decide,
- so you can get the old behavior, but it is no longer the default).
- * copy.c (copy_file): Set EXEC_P of output bfd if input is so.
- * copy.c (main): If is_strip==-1, compare last 5 chars
- of argv[0], not the whole path.
- * copy.c (main): Return 0, not 1.
- * copy.c (setup_sections): Fix due to change in bfd_make_section
- now failing if asked for a duplicate section.
- * strip.c, ostrip.c: Removed obsolete files.
- * ar.c, not-ranlib.c, maybe-ranlib.c:
- Change encoding of is_ranlib variable to be consistent
- with is_strip for strip.copy (i.e -1 to means use argv[0]).
-
-Thu Nov 14 20:11:02 1991 Per Bothner (bothner at cygnus.com)
-
- * version.c (program_version): Update to version 1.92.
-
-Tue Nov 12 16:17:53 1991 Per Bothner (bothner at cygnus.com)
-
- * ar.c (get_pos_bfd): Previous fix was missing a "break".
-
-Thu Nov 7 08:55:56 1991 Steve Chamberlain (sac at cygnus.com)
-
- * am29k-pinsn.c: Fixed bug in mtacc, dmac and fmac instruction
- encodings. (Thaks to David Wood)
-
-Sun Nov 3 14:50:23 1991 Per Bothner (bothner at cygnus.com)
-
- * Makefile.in ($(DIST_NAME).tar.Z), TODO: Various fixes.
- * ar.c (get_pos_bfd): Fix to handling of before/after
- positioning options.
- * bucomm.c (fatal): MISSING_VFPRINTF is no longer an issue,
- since libiberty contains vfprintf etc if otherwise missing.
- * m68k-pinsn.c (print_insn_arg): Support BB/BW/BL
- type operands, as used by branch instructions.
- * nm.c: Delegate printing of symbols to BFD,
- by using bfd_print_symbol to do the formatting.
-
-Mon Oct 28 11:20:47 1991 Steve Chamberlain (steve at cygnus.com)
-
- * ar.c (write_archive.c): added unlink before rename since some
- systems can't rename onto an existant file.
-
-Mon Oct 21 09:47:23 1991 Steve Chamberlain (steve at rtl.cygnus.com)
-
- * nm.c: now doesn't crash if a symbol with no section and no
- SEC_ABS appears.
-
-Thu Oct 17 15:25:50 1991 Per Bothner (bothner at cygnus.com)
-
- * Makefile.in, version.c: Bump to version 1.91.
-
-Wed Oct 16 11:45:36 1991 Per Bothner (bothner at cygnus.com)
-
- * Makefile.in, ar.c, bucomm.c, copy.c, cplus-dem.c, filemode.c,
- i960-pinsn.c, m68k-pinsn.c, nm.c, objdump.c, size.c, sparc-pinsn.c,
- * strip.c: Add or update Copyright notice.
- * TODO: Add note on 'nm -a'.
- * version.c: Update version number to 1.90.
- * Makefile.in: Fix making of documentation for dist.
-
-Tue Oct 15 00:17:17 1991 Per Bothner (bothner at cygnus.com)
-
- * README: New file.
- * Makefile.in: New kludgy rules for making a tarfile.
- * Makefile.in: Fix bindir path.
-
-Mon Oct 14 17:34:29 1991 Roland H. Pesch (pesch at cygnus.com)
-
- * Makefile.in: add targets binutils.mm, binutils.me
-
-Fri Oct 11 22:44:21 1991 John Gilmore (gnu at cygnus.com)
-
- * Makefile.in: Avoid Sun Make VPATH bugs by adding dependencies.
-
-Fri Oct 11 12:51:33 1991 Roland H. Pesch (pesch at cygnus.com)
-
- * Makefile.in: add target "binutils.ms"
-
- * binutils.texinfo: minor restructuring for texi2roff comfort.
-
-Fri Oct 11 04:12:28 1991 John Gilmore (gnu at cygnus.com)
-
- Restructure configuration scheme for bfd, binutils, ld.
-
- * configure.in: Revise to symlink sysdep.h to ../bfd/hosts/h-xxx.h.
- Change some config names to match other dirs.
- * *.c: Include bfd.h before sysdep.h, so ansidecl and PROTO()
- get defined first.
- * Makefile.in: Use -I. to get sysdep.h.
-
-Wed Oct 9 22:42:56 1991 Per Bothner (bothner at cygnus.com)
-
- * nm.c (print_symbols): Handle NULL name field of symbol.
- * Makefile.in: Removed spurious comment.
-
-Tue Oct 8 16:55:03 1991 Roland H. Pesch (pesch at cygnus.com)
-
- * binutils.texinfo: minor typos, phrasing, formatting fixes.
-
-Tue Oct 8 15:13:20 1991 Per Bothner (bothner at cygnus.com)
-
- * configure.in: Get host file from ../bfd/config, not config.
- * config/*: Remove config directory and its files.
-
-Tue Oct 8 13:58:59 1991 Roland H. Pesch (pesch at cygnus.com)
-
- * Makefile.in: new targets binutils.dvi, binutils.info
-
- * binutils.texinfo: remove most remaining FIXME's, delete
- references to __.SYMDEF by name
-
-
-Tue Oct 8 10:23:44 1991 Steve Chamberlain (steve at cygnus.com)
-
- * objdump.c (print_address) Print addresses nicely.
-
-Mon Oct 7 11:31:05 1991 Per Bothner (bothner at cygnus.com)
-
- * ar.c, Makefile.in, new files {is,not,maybe}-ranlib.c:
- Make two different binaries for ar and ranlib, instead of
- distinguishing them at run time using argv[0].
- (Old behavior is still available if you "make ar_with_ranlib",
- but it is not the default.)
- * ranlib.sh (new): An alternative one-line
- shell implementation of ranlib.
-
-Fri Oct 4 21:49:44 1991 John Gilmore (gnu at cygnus.com)
-
- * objdump.c: Cope with renames of a few BFD types & enums.
-
-Fri Oct 4 19:08:09 1991 Roland H. Pesch (pesch at cygnus.com)
-
- * binutils.texinfo: add new file (rudimentary docn)
-
-Mon Sep 30 12:30:39 1991 Per Bothner (bothner at cygnus.com)
-
- * config/hmake-news: Add new file (for Sony NEWSOS3).
- * bucomm.c (fatal): Conditionally compile fatal() depending on
- MISSING_VFPRINTF, and don't confuse the issue with NO_VARARGS.
- * objdump.c (dump_headers): Trivial output format change.
- * objdump.c (display_info): Loop over integers, not enums,
- to appease old compilers.
-
-Mon May 20 16:14:07 1991 Steve Chamberlain (steve at cygint.cygnus.com)
-
- *objdump.c *nm.c *copy.c: Changed some types to work with 64 bit
- object files.
-
-Thu May 16 16:06:55 1991 Steve Chamberlain (steve at cygint.cygnus.com)
- from bother
- * objdump.c (print_address): Make disasembled output more
- consistent with gdb and as: Add 0x when printing hex.
- Don't print extra leading zeros.
- Attempt to not print "filename.o".
- * objdump.c: Add some enum-to-int casts to accommodate old compilers.
-
-
-Fri May 3 22:21:44 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- * copy.c: Change =& constructs to = &, since they confuse older
- C compilers.
-
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/binutils-2.17/binutils/ChangeLog-9899 b/binutils-2.17/binutils/ChangeLog-9899
deleted file mode 100644
index ad1fdc75..00000000
--- a/binutils-2.17/binutils/ChangeLog-9899
+++ /dev/null
@@ -1,1908 +0,0 @@
-1999-12-28 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c: Update with new constants added by Oct 4, 1999
- ELF ABI draft.
- (guess_is_rela): Add new machine codes, but leave
- rel type undetermined.
- (get_machine_name): Add new machine codes.
- (get_section_type_name): Add new section types.
- (get_elf_section_flags): New function: Decode section flags.
- (process_section_headers): Call get_elf_section_flags() in
- order to decode flags in section header.
- (get_dynamic_flags): New function: Decode dynamic section
- flags.
- (process_dynamic_section): Display flags (if present).
- (get_symbol_type): Add STT_COMMON.
- (get_symbol_visibility): New function: Decode a symbol's
- visibility.
- (process_symbol_table): Call get_symbol_visibility().
- (get_note_type): Add NT_PRXFPREGS.
-
-1999-12-26 Ian Lance Taylor <ian@zembu.com>
-
- * strings.c (main): Correct handling of numeric argument.
-
-1999-12-23 Andrew Haley <aph@cygnus.com>
-
- * dlltool.c (mtable): mcore how_jtab_roff is 4 bytes into the
- jtab; was 8.
-
-1999-12-17 Nick Clifton <nickc@cygnus.com>
-
- * dlltool.c (mtable): Stop compile time warnings about missing
- initialisers.
- (yyerror): Stop compile time warnings about unused paramater.
- (INIT_SEC_DATA): New macro: initialise an entry in the secdata
- array.
- (secdata): Stop ccompile time warnings about uninitialised
- fields.
- (dtab): Stop compile time warnings about unused parameter.
- (long_options): Stop compile time warning about missing
- initialiser.
-
-1999-12-10 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (print_vma): Support native 64bit ELF systems.
-
-1999-12-09 Nick Clifton <nickc@cygnus.com>
-
- * dlltool.c (mtable): Add epoc-arm specific entry.
- Make default arm entry pass -mpacs-26 to assembler.
- (flush_page): Do not mangle null entries.
-
-1999-12-07 H . J . Lu hjl@valinux.com
-
- * readelf.c: Fix compile time warnings. Support more than 999
- symbols.
-
-1999-12-03 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (enum print_mode): New type.
- (print_vma): New function.
- (dump_relocations): Use print_vma to display bfd_vma values.
- (process_file_header): Use print_vma to display bfd_vma values.
- (process_program_headers): Use print_vma to display bfd_vma values.
- (process_section_headers): Use print_vma to display bfd_vma values.
- (dynamic_segment_parisc_val): Use print_vma to display bfd_vma values.
- (process_dynamic_segment): Use print_vma to display bfd_vma values.
- (process_symbol_table): Use print_vma to display bfd_vma values.
- (process_mips_specific): Use print_vma to display bfd_vma values.
-
-1999-11-25 Fred Fish <fnf@cygnus.com>
-
- * readelf.c (process_note): Change arg from Elf_External_Note
- to Elf32_Internal_Note, which also turns the function body
- into little more than a call to printf.
- (process_corefile_note_segment): Substantially rewritten
- to properly handle case where target and host are different
- endianness, handle note sections with padding, and add some
- cruft to handle notes with unterminated name data.
-
-1999-11-22 Nick Clifton <nickc@cygnus.com>
-
- * objcopy.c (copy_usage): Reformat.
- (strip_usage): Reformat.
-
-1999-11-21 Nick Clifton <nickc@cygnus.com>
-
- * objdump.c (usage): Overhaul output: One line per switch.
- Textual description of each switch. Distinguish between
- optional switches and required switches.
- (long_options): Add 'g', 'G' and 'z' short options.
- (main): Distinguish between optional switches and required
- switches.
-
- * binutils.texi: Add -g -G and -z short options for
- --debugging, --stabs and --disassemble-zeroes.
-
-1999-11-03 Nick Clifton <nickc@cygnus.com>
-
- * dlltool.c (flush_page): Clip short values to prevent warnings
- from the assembler.
- Change default mcore machine name to 'mcore-le' and rename
- big-endian version to 'mcore-be'.
-
-1999-10-27 Fred Fish <fnf@cygnus.com>
-
- * objdump.c (display_bfd): Break into two functions. The
- actual dumping code moves to dump_bfd. If bfd is not
- unambiguously recognized as a bfd_object, attempt to dump
- it as a bfd_core.
- (dump_bfd): New function.
-
-1999-10-26 Nick Clifton <nickc@cygnus.com>
-
- * dlltool.c (assemble_file): Remove spurious test of exp_name.
-
-1999-10-22 Nick Clifton <nickc@cygnus.com>
-
- * dlltool.c (struct mac): Add new field 'how_default_as_switches'.
- (mtable): Initialise new field. Some machines have a non empty
- string for this field.
- (HOW_BFD_TARGET): Undefine and replace with...
- (HOW_BFD_READ_TARGET): New macro: bfd target to use when opening a
- file for reading. This is set to 0 so that any recognisable bfd
- format can be read.
- (HOW_BFD_WRITE_TARGET): New macro: bfd target to use when opening
- a file for writing. This is set to the target machine type.
- (ASM_SWITCHES): New macro: default switches to use when assembling
- a file.
- (assemble_file): New function: Assemble a source file into a
- destination object file.
- (gen_exp_file): Use assemble_file to create the exp file.
- (make_one_lib_file): Use assemble_file to create the lib file.
- Open output file use HOW_BFD_WRITE_TARGET and input files using
- HOW_BFD_READ_TARGET.
- (make_head): Use assemble_file to create the head file.
- (make_tail): Use assemble_file to create the tail file.
- (gen_lib_file): Open output file use HOW_BFD_WRITE_TARGET.
-
-1999-10-15 Ian Lance Taylor <ian@zembu.com>
-
- * ar.c (normalize): Fix full_pathname code.
-
-1999-10-08 Ben Elliston <bje@cygnus.com>
-
- * binutils.texi: Some rewording and clarifications.
-
-1999-09-15 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c (dynamic_segment_parisc_val): Print 0 for DLD_FLAGS if
- the value is zero.
- (process_symbol_table): Don't print histogram if hash table is empty.
-
-1999-09-15 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c (get_parisc_dynamic_type): Handle DT_HP_GST_* values.
-
-1999-09-02 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c (get_symbol_type): Add support for HPUX and PARISC
- specific symbol types.
-
- * readelf.c: Add HPUX and PARISC extensions to dynamic and program
- header table printing.
-
- * readelf.c (get_machine_flags): Add handling of PARISC.
-
-1999-09-29 Mumit Khan <khan@xraylith.wisc.edu>
-
- * dlltool.c (scan_drectve_symbols): Handle type tags in exported
- symbols.
- (scan_filtered_symbols): Likewise.
-
-1999-09-19 Ian Lance Taylor <ian@zembu.com>
-
- * resrc.c (write_rc_rcdata): Fix local variable shadowing
- problem. If RCDATA_BUFFER data can be read as strings, modify
- code to print the strings as comments.
- * resres.c: Add casts to avoid warnings.
- (write_res_data, read_res_data): Don't put the program name in the
- error message; fatal already puts it there.
-
-1999-09-14 Michael Meissner <meissner@cygnus.com>
-
- * configure.in (Canonicalization of target names): Remove adding
- ${CONFIG_SHELL} in front of $ac_config_sub, since autoconfig 2.14
- generates $ac_config_sub with a ${CONFIG_SHELL} already.
- * configure: Regenerate.
-
-1999-09-12 Ian Lance Taylor <ian@zembu.com>
-
- * ar.c (main): Clear output_file if we don't change the archive.
- (delete_members, replace_members): Likewise.
-
-1999-09-12 Donn Terry <donn@interix.com>
-
- * objdump.c (dump_headers): If wide_output, print Flags header.
-
- * objdump.c (dump_section_header): Print any comdat information.
-
- * objcopy.c (parse_flags): Handle "noload", "debug", and "share".
- * binutils.texi, objcopy.1: Document new flags.
-
- * ar.c (counted_name_mode): New static variable.
- (counted_name_counter): New static variable.
- (map_over_members): Handle counted mode.
- (usage): Mention N modifier.
- (main): Handle N modifier.
- (delete_members): Handle counted mode.
- * binutils.texi, ar.1: Document N modifier.
-
- * ar.c (print_contents): Change printing of member name for
- POSIX.2 conformance.
-
- * ar.c (output_filename): Make const.
- (open_inarch): If creating a new empty archive, set
- output_filename.
-
-1999-09-12 Ian Lance Taylor <ian@zembu.com>
-
- * ar.c (full_pathname): New static variable.
- (map_over_members): Call normalize on command line parameter.
- (usage): Mention P modifier.
- (normalize): If full_pathname is true, don't do anything.
- (main): Accept P modifier.
- (delete_members): Call normalize on command line parameter.
- * binutils.texi, ar.1: Document P modifier.
-
-1999-09-09 Andreas Schwab <schwab@suse.de>
-
- * binutils.texi: Add info dir entries for all programs described
- here. Fix arguments of @var to not contain punctuation.
-
-1999-09-06 Donn Terry <donn@interix.com>
-
- * nm.c (print_symbol_info_bsd): Check for 'w' as well as 'U'.
- (print_symbol_info_sysv): Likewise.
- (print_symbol_info_posix): Likewise.
-
-1999-09-04 Steve Chamberlain <sac@pobox.com>
-
- * readelf.c: Include "elf/pj.h".
- (dump_relocations): Handle EM_PJ.
- (get_machine_name): Likewise.
- (get_machine_flags): Likewise.
-
-1999-08-31 Scott Bambrough <scottb@netwinder.org>
-
- * readelf.c (get_note_type): New function: Decode the e_type
- value of a note.
- (process_note): New function: Display the contents of a core note.
- (process_corefile_note_segment): New function.
- (process_corefile_note_segments): New function.
- (process_corefile_contents): New function.
- (process_file): Add call to process_corefile_contents.
- (parse_args): Add parsing of -n/--notes command line switch.
- (usage): Document new command line switch.
-
- * binutils.texi: Documemnt new command line switch to readelf.
-
-1999-08-31 Ian Lance Taylor <ian@zembu.com>
-
- * binutils.texi (Bug Reporting): Clarify that large files should
- not be sent to bug-gnu-utils.
-
-1999-08-28 Stephane Carrez <stcarrez@worldnet.fr>
-
- * readelf.c (process_extended_line_op): New parameter pointer_size,
- read the address according to pointer_size.
- (debug_line_pointer_size): New global to indicate the
- size of address in .debug_line section.
- (debug_displays, prescan_debug_info): Prescan the .debug_info section
- to record the size of address in `debug_line_pointer_size'.
- (process_section_contents): Before dumping any section, execute
- the pre-scan operation defined for some debug sections.
-
-1999-08-27 Jim Wilson <wilson@cygnus.com>
-
- * readelf.c (display_debug_lines): Use i-1 not i in standard_opcodes
- access.
- (display_debug_aranges): New local excess. Use for calculating padding
- and add that into ranges. Break from loop only if length is also 0.
-
-1999-08-27 Jim Wilson <wilson@cygnus.com>
-
- * readelf.c (display_debug_lines, case DW_LNS_const_add_pc): Multiply
- adv by info.li_min_insn_length.
-
-1999-08-26 Jakub Jelinek <jj@ultra.linux.cz>
-
- * readelf.c (get_sparc64_dynamic_type): New function.
- (get_dynamic_type): Use it.
-
-1999-08-26 Jim Wilson <wilson@cygnus.com>
-
- * readelf.c (display_debug_lines, case default): Change second line
- setting adv to use = not +=.
-
-1999-08-19 Nick Clifton <nickc@cygnus.com>
-
- * dlltool.c: Added more examples to the comment at the start.
-
-1999-08-18 Nick Clifton <nickc@cygnus.com>
-
- * dlltool.c (make_head): Only emit interworking directive if
- necessary.
-
-Thu Jul 15 22:44:21 1999 Hans-Peter Nilsson <hp@bitrange.com>
-
- * readelf.c (process_abbrev_section): Handle standard-conforming
- single zero at the end of the section.
-
-1999-08-09 Ian Lance Taylor <ian@zembu.com>
-
- * objdump.c (exit_status): New static variable.
- (nonfatal): New static function.
- (disassemble_data): Set exit_status on error.
- (read_section_stabs): Likewise.
- (display_bfd): Likewise. Call nonfatal rather than bfd_nonfatal.
- (display_file): Call nonfatal rather than bfd_nonfatal.
- (display_target_list, display_info_table): Likewise.
- (main): Return exit_status rather than 0.
-
-1999-08-08 Ian Lance Taylor <ian@zembu.com>
-
- * objdump.c (dump_section_header): Update for renaming of
- SEC_SHORT to SEC_SMALL_DATA. Print SEC_SHARED flag.
-
- From Eli Zaretskii <eliz@gnu.org>:
- * binutils.texi: Document cxxfilt as MS-DOS name for c++filt.
-
- * configure.in: Define and substitute DEMANGLER_NAME.
- * Makefile.am (DEMANGLER_PROG): Set to cxxfilt.
- (man_MANS): Use DEMANGLER_NAME rather than DEMANGLER_PROG.
- (bin_PROGRAMS): Remove $(DEMANGLER_PROG).
- (noinst_PROGRAMS): Add $(DEMANGLER_PROG).
- (cxxfilt_SOURCES): Rename from c__filt_SOURCES.
- (cxxfilt_LDADD): Rename from c__filt_LDADD.
- ($(DEMANGLER_NAME).1): Rename from $(DEMANGLER_PROG).1. Use
- DEMANGLER_NAME rather than DEMANGLER_PROG in substitution.
- (MOSTLYCLEANFILES): Use DEMANGLER_NAME rather than
- DEMANGLER_PROG.
- (install-exec-local): When installing noinst_PROGRAMS, change
- cxxfilt to $(DEMANGLER_NAME).
- * configure, Makefile.in: Rebuild.
-
- * Makefile.am: Rename .dep* files to DEP*. Change DEP variable to
- MKDEP.
- * Makefile.in: Rebuild.
-
-1999-08-05 Donn Terry <donn@interix.com>
-
- * Makefile.am (YACC): If bison is not in the source tree, use
- @YACC@ rather than bison -y.
- (LEX): If flex is not in the source tree, use @LEX@ rather than
- flex.
- * configure.in: Build dlltool for i[3-6]86-*-interix.
- * Makefile.in, configure: Rebuild.
-
-1999-07-21 Ian Lance Taylor <ian@zembu.com>
-
- From Mark Elbrecht:
- * configure.bat: Remove; obsolete.
-
-1999-07-16 Jakub Jelinek <jj@ultra.linux.cz>
-
- * readelf.c (get_machine_flags): Print EF_SPARC_SUN_US3.
-
-1999-07-15 Ian Lance Taylor <ian@zembu.com>
-
- * configure.in: Bump version number to 2.9.5.
- * configure: Rebuild.
-
-1999-07-14 Richard Henderson <rth@cygnus.com>
-
- * objdump.c (dump_section_header): Print SEC_SHORT.
-
-1999-07-11 Ian Lance Taylor <ian@zembu.com>
-
- * Many files: Changes to avoid gcc warnings: Add ATTRIBUTE_UNUSED
- as appropriate. Add variable initializations. Add casts.
- * objdump.c (disassemble_bytes): Change j to bfd_vma.
- * readelf.c (process_syminfo): Change i to unsigned int.
- (display_debug_info): Change abbrev_number to unsigned long.
- (process_mips_specific): Change fcnt to size_t.
-
-1999-07-09 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c: Only support decoding 64bit ELF files if the compiler
- supports a 64 bit data type.
- Add -I equivalent for --histogram.
- Add -A command-line option to display architecture specific information.
-
-1999-07-08 Jakub Jelinek <jj@ultra.linux.cz>
-
- * readelf.c (guess_is_rela): Sparcv9 and v8plus use rela.
- (dump_relocations): Use ELF64_R_TYPE_ID for Sparc, for R_SPARC_OLO10
- print the secondary addend.
- (get_machine_flags): Print Sparc machine flags.
- (get_symbol_type): Print STT_REGISTER.
-
-1999-07-08 Ian Lance Taylor <ian@zembu.com>
-
- * stabs.c (parse_stab_type): Fix handling of template names with
- template parameters containing `::'.
- (stab_demangle_type): Handle a qualified name in a pointer to
- member.
-
-1999-06-23 Ian Lance Taylor <ian@zembu.com>
-
- * Makefile.am (dlltool_SOURCES): Add dyn-string.c.
- * Makefile.in: Rebuild.
-
-1999-06-23 Mumit Khan <khan@xraylith.wisc.edu>
-
- * configure.in (HAVE_EXECUTABLE_SUFFIX): Define.
- * dlltool.c (look_for_prog): Use HAVE_EXECUTABLE_SUFFIX.
- * dllwrap.c (look_for_prog): Likewise.
- * resrc.c (look_for_default): Likewise.
- * configure, config.in: Rebuild.
-
-1999-06-22 Ian Lance Taylor <ian@zembu.com>
-
- Based on patches from Mumit Khan <khan@xraylith.wisc.EDU>:
- * configure.in: Define EXECUTABLE_SUFFIX.
- * dlltool.c: Include "dyn-string.h". Include <stdarg.h> based on
- ANSI_PROTOTYPES, not __STDC__.
- (outfile): Remove.
- (gen_exp_file): Change uses of outfile to use alloca.
- (make_one_lib_file, make_head, make_tail): Likewise.
- (gen_lib_file): Likewise.
- (look_for_prog): New static function.
- (deduce_name): Rewrite to use look_for_prog.
- (mcore_elf_gen_out_file): Use dyn_string_t rather than outfile.
- * dllwrap.c: Don't include <stdio.h>, <errno.h>, <string.h>,
- <stdlib.h>, or <unistd.h>. Include <sys/stat.h> and either
- <stdarg.h> or <varargs.h>.
- (driver_name): Initialize to NULL, not "gcc".
- (dlltool_name): Initialize to NULL, not "dlltool".
- (display, inform, look_for_prog, deduce_name): New static
- functions.
- (usage): Mention -mno-cygwin.
- (OPTION_MNO_CYGWIN): Define.
- (main): Handle -mno-cygwin. Deduce driver_name and dlltool_name.
- * resrc.c (look_for_default): Make static. Remove unused local
- path. Check using EXECUTABLE_SUFFIX.
- (read_rc_file): Allocate enough space to hold EXECUTABLE_SUFFIX.
- * Makefile.am: Rebuild dependencies.
- (dllwrap_LDADD): Add $(INTLLIBS).
- * configure, Makefile.in, config.in: Rebuild.
-
-Mon Jun 21 16:49:11 1999 Jeffrey A Law (law@cygnus.com)
-
- * readelf.c (dump_relocations): Use elf_hppa_reloc_type instead of
- elf32_hppa_reloc_type.
-
-1999-06-17 Nick Clifton <nickc@cygnus.com>
-
- * dlltool.c (mcore_elf_gen_out_file): Link object files with the
- .exp file, not the .lib file.
-
-Fri Jun 18 20:17:51 1999 Mumit Khan <khan@xraylith.wisc.edu>
-
- * deflex.l: Accept single-character symbol names.
-
-1999-06-16 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (get_symbol_type): Detect ARM symbols typed as Thumb
- functions.
-
-1999-06-14 Nick Clifton <nickc@cygnus.com>
-
- * objdump.c (disassembler_options): New variable.
- (usage): Document new -M/--disassembler-options option.
- (long_options): Add --disassembler-options.
- (disassemble_data): Initialise disassembler_options field of
- disassembler_info structure.
- (main): Add parsing of -M option.
-
- * binutils.texi: Document new command line switch to objdump.
-
- * NEWS: Describe new command line switch to objdump.
-
-
-Mon Jun 14 10:27:54 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
-
- * binutils.texi: Fix typos.
-
-1999-06-13 Ian Lance Taylor <ian@zembu.com>
-
- * objdump.c (disassemble_bytes): If the disassembler returns an
- error, print out anything it may have printed to the buffer. From
- H.J. Lu <hjl@gnu.org>.
-
- * defparse.y (explist): Remove separate expline to eliminate
- shift/reduce conflict.
-
- From Kai-Uwe Rommel <rommel@ars.de>:
- * defparse.y: Add tokens NONSHARED, SINGLE, MULTIPLE,
- INITINSTANCE, INITGLOBAL, TERMINSTANCE, and TERMGLOBAL.
- (command): Add option_list after LIBRARY.
- (attr): Accept and ignore NONSHARED, SINGLE, and MULTIPLE.
- (option_list, option): New nonterminals.
- * deflex.l: Recognize NONSHARED, SINGLE, MULTIPLE, INITINSTANCE,
- INITGLOBAL, TERMINSTANCE, and TERMGLOBAL.
-
-1999-06-12 Ian Lance Taylor <ian@zembu.com>
-
- * ar.c (O_BINARY): Define as 0 if not defined.
- (ranlib_touch): Open file with O_BINARY.
-
- * rename.c (O_BINARY): Define as 0 if not defined.
- (simple_copy): Open files with O_BINARY.
-
- Based on patch from H. Peter Anvin <hpa@transmeta.com>:
- * objcopy.c (struct section_list): Add copy field.
- (sections_copied): New static variable.
- (copy_options): Add "only-section".
- (copy_usage): Mention -j and --only-section.
- (find_section_list): Initialize copy field.
- (is_strip_section): Check for copying sections.
- (copy_object): Check sections_copied when calling filter_symbols.
- (setup_section): Check for copying sections.
- (copy_section): Likewise.
- (copy_main): Handle -j/--only-section.
- * binutils.texi, objcopy.1: Document -j/--only-section.
-
- * configure.in: If frexp is not available, check in -lm.
- * configure: Rebuild.
-
- * readelf.c (get_elf_class): Use correct printf format for type.
- (get_data_encoding): Likewise.
- (get_osabi_name): Likewise.
- (process_file_header): Don't pass an extra argument to printf.
- (process_dynamic_segment): Cast dynamic_size to long before
- printing.
- (decode_location_expression): Cast byte_get to long before
- printing.
-
-Wed Jun 9 11:40:16 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
-
- * readelf.c (dump_section): Cast values from byte_get to
- [unsigned] long for printing, in case it is wider than long.
- (display_block): Likewise.
- (read_and_display_attr): Likewise.
- (decode_location_expression): Likewise. Don't depend on
- evaluation order.
-
-Mon Jun 7 12:14:57 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
-
- * windres.c (usage): Fix typo.
-
-1999-06-04 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c: Use 64bit wide fields in internal structures even if
- targetting a 32bit architecture.
- (dump_relocations): Take a new parameter - the number of symbols
- in the symbol table.
-
-1999-06-04 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c: Add support for 64bit ELF files.
-
-1999-06-03 Nick Clifton <nickc@cygnus.com>
-
- * dlltool.c (mcore_elf_gen_out_file): Use constants for temporary
- file names.
-
-Wed Jun 2 12:34:36 1999 Richard Henderson <rth@cygnus.com>
-
- * dlltool.c (gen_exp_file): Revert 19990411 change.
-
-Mon May 31 09:56:22 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
-
- * readelf.c (process_relocs): Determine type of reloc from
- DT_PLTREL and from section type.
-
-1999-05-29 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (get_elf_class): Display unknown class number.
- (get_data_encoding): Display unknown encoding number.
- (get_osabi_name): Display unknown ABI number.
- (process_file_header): Display unknown version number.
-
-1999-05-29 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (dump_relocations): Fix typo.
-
-1999-05-28 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (dump_relocations): Add extra parameter: is_rela to
- specify the kind of relocations to be dumped. Call guess_is_rela
- if this parameter has a value of UNKNOWN.
- (guess_is_rela): New function: Guess the kind of reloc being used
- baced on the machine number.
- (process_relocs): Determine type of reloc before calling
- dump_relocations.
-
-1999-05-28 Ian Lance Taylor <ian@zembu.com>
-
- * readelf.c: Include "elf/i960.h".
- (dump_relocations): Handle EM_960.
-
-Thu May 27 11:58:33 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
-
- * objcopy.c (copy_archive): Preserve dates of archive members if
- requested.
-
- * readelf.c (dump_relocations): Always print the addend on RELA
- systems even if there is no symbol.
- (process_program_headers): Reset dynamic_size before looping
- through the program headers.
- (process_version_sections): Cast sh_offset to unsigned long for
- printing in case bfd_vma is wider.
- (process_symbol_table): Use get_symbol_index_type when printing
- st_shndx.
-
-1999-05-17 DJ Delorie <dj@cygnus.com>
-
- * windres.c: add verbose option
- (main): process verbose option
- * resrc.c (look_for_default): new. Look for the default
- preprocessor in a given location.
- (read_rc_file): for foo/bar-windres, look for foo/bar-gcc,
- foo/gcc (in case of foo/windres), and then gcc (the old default).
-
-1999-05-16 Nick Clifton <nickc@cygnus.com>
-
- * dlltool.c (deduce_name): New function: Deduce name of program to
- run.
- (mcore_elf_out_file): New variable: Name of mcore-elf output file.
- (mcore_elf_linker): New variable: Name of linker to use.
- (mcore_elf_linker_flags): New variable: Linker flags to pass.
- (scan_obj_file): Cache filenames if necessary.
- (usage): Document new command line options.
- (main): Support new command line options: -M (generate an
- mcore-elf output file) -L (name of linker to use) -F (flags to
- pass to linker).
- (mcore_elf_cache_filename): Store a filename in a cache.
- (mcore_elf_gen_out_file): New function: Generate an output file
- per the mcore-elf spec.
-
-1999-05-15 Nick Clifton <nickc@cygnus.com>
-
- * configure.in (BUILD_MISC): Build dlltool for mcore
- * configure: Regenerate.
- * dlltool.c: Update example in comment.
- (DLLTOOL_MCORE): Define.
- (DLLTOOL_MCORE_ELF): Define.
- (DRECTVE_SECTION_NAME): Define.
- (mcore_be_jtab, mcore_le_jtab): Binary for performing an mcore
- jump to address.
- (mtable): Add entries for mcore variants.
- (rvaafter, rvabefore, asm_prefix): Add mcore suppport.
- (scan_drectve_symbols): Use DRECTVE_SECTION_NAME.
- (make_head, make_tail): Cope if file cannot be created.
- (usage): Improve layout.
-
-1999-05-13 DJ Delorie <dj@cygnus.com>
-
- * rclex.l: add code to suppress certain output from cpp, replace
- all returns with MAYBE_RETURN
- (MAYBE_RETURN): new, implement the suppression by returning
- IGNORED_TOKEN as needed.
- (cpp_line): remember which file we're in, mark data from included
- *.h files for suppression.
- * rcparse.y (input): allow IGNORED_TOKEN outside of known constructs
-
-1999-05-10 DJ Delorie <dj@cygnus.com>
-
- * windres.c (quot): Quote shell metacharacters in a string
- (main): quote parameters to cpp that might have metacharacters in
- them. Allow -D as an alias for --define to allow for sharing make
- macros with gcc.
-
- * objdump.c (dump_reloc_set): don't core if howto->name is NULL
-
- * Makefile.am: Give rescoff.c a cpu-specific -D so it can set
- the correct BFD.
- * Makefile.in: ditto
- * rescoff.c (write_coff_file): Set the correct BFD
-
-1999-05-06 Ian Lance Taylor <ian@zembu.com>
-
- * rename.c (smart_rename): Fix test of whether file exists.
-
-1999-05-06 Nick Clifton <nickc@cygnus.com>
-
- * objdump.c (disassemble_data): Set display_endian based on target
- endianism.
-
-1999-05-05 Catherine Moore <clm@cygnus.com>
-
- * dlltool.c (interwork): Remove.
- (arm_interwork_jtab): Use bx insn.
- (thumb_jtab): Likewise.
- (MARM_INTERWORK): New machine type.
- (rvaafter): Handle it.
- (rvabefore) Likewise.
- (asm_prefix): Likewise.
- (gen_exp_type): Check machine type instead of
- interwork flag.
- (make_one_lib_file): Likewise.
- (make_head): Likewise.
- (make_tail): Likewise.
- (usage): Update machine types.
- (main): Remove -interwork support.
-
-1999-05-05 Catherine Moore <clm@cygnus.com>
-
- * readelf.c (get_machine_flags): Check for EF_CPU32.
- (get_data_encoding): Fix typo.
-
-1999-04-26 Tom Tromey <tromey@cygnus.com>
-
- * aclocal.m4, configure: Updated for new version of libtool.
-
-1999-04-18 Ian Lance Taylor <ian@zembu.com>
-
- * stabs.c (parse_stab_range_type): Correct parenthesization in
- BFD64 case.
-
- * readelf.c (get_section_type_name): Use correct types in printf
- formats.
- (process_relocs): Likewise.
- (process_dynamic_segment): Likewise.
- (process_symbol_table): Likewise.
- (process_mips_specific): Likewise.
-
-Tue Apr 13 21:22:00 1999 Catherine Moore <clm@cygnus.com>
-
- * dlltool.c (make_one_lib_file): Mark thumb functions as
- C_THUMBEXTFUNC.
-
-1999-04-11 Richard Henderson <rth@cygnus.com>
-
- * bucomm.h (environ): Declare it, if needed.
- (alloca) [C_ALLOCA]: Don't use gcc's builtin or <alloca.h>.
- * configure.in (environ): Detect declaration.
- * nm.c (main): Don't declare environ.
- * configure, config.in: Rebuild.
-
- * dlltool.c (gen_exp_file): Pad out the .reloc section to a
- 32-byte boundary with dummy relocations, to make the BeOS loader
- happy. Patch from Bob Manson <manson@charmed.cygnus.com>.
-
-1999-04-08 Tom Tromey <tromey@cygnus.com>
-
- * binutils.texi (c++filt): Updated for -j/--java, and hp/edg
- formats.
-
-1999-04-08 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c: Add ability to decode new constants found in April 25
- 1998 Draft of System V ABI spec.
-
-1999-04-06 Ian Lance Taylor <ian@zembu.com>
-
- * bucomm.h (LC_MESSAGES): Never define.
- * addr2line.c (main): Don't pass LC_MESSAGES to setlocale if the
- system does not define it.
- * ar.c (main): Likewise.
- * coffdump.c (main): Likewise.
- * dlltool.c (main): Likewise.
- * nlmconv.c (main): Likewise.
- * nm.c (main): Likewise.
- * objcopy.c (main): Likewise.
- * objdump.c (main): Likewise.
- * size.c (main): Likewise.
- * srconv.c (main): Likewise.
- * strings.c (main): Likewise.
- * sysdump.c (main): Likewise.
- * windres.c (main): Likewise.
- * readelf.c (main): Call locale setting functions.
-
-1999-04-05 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (decode_location_expression): Fix DW_OP_const8{s|u}
- decodes.
-
-1999-04-04 Ian Lance Taylor <ian@zembu.com>
-
- * rename.c: New file, copied out of objcopy.c with a few changes.
- * bucomm.h (set_times, smart_rename): Declare.
- * ar.c: Don't include <utime.h>.
- (extract_file): Call set_times rather than utime.
- (write_archive): Call smart_rename rather than unlink and rename.
- * objcopy.c: Don't include <utime.h>.
- (simple_copy, smart_rename, set_times): Move to rename.c.
- (strip_main): Update smart_rename call for new parameter.
- (copy_main): Likewise.
- * Makefile.am: Rebuild dependencies.
- (CFILES): Add rename.c.
- (objcopy_SOURCES, strip_new_SOURCES): Add rename.c.
- (ar_SOURCES, ranlib_SOURCES): Add rename.c.
- * Makefile.in: Rebuild.
-
- * Makefile.am: Rebuild dependencies.
- (EXTRA_PROGRAMS): Remove backslash which troubles current version
- of automake.
- * Makefile.in: Rebuild.
-
- * dllwrap.c (main): Expect correct type in format string.
- * resres.c: Include "bfd.h", "bucomm.h", "libiberty.h", and
- <time.h>. Don't include <stdio.h> and <errno.h>.
- (write_res_file): Remove unused locals e and i.
- (read_resource_entry): Remove unused locals rtype and n.
- (read_unistring): Remove unused local n.
-
-1999-04-03 Ian Lance Taylor <ian@zembu.com>
-
- * arparse.y: Declare yylex.
- * objdump.c (disassemble_bytes): Initialize bytes. Add comment
- for incorrect use of bytes.
- * readelf.c: Change many formats to avoid warnings.
-
-1999-04-01 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (reset_state_machine): New function. Resets the
- registers of the source line number state machine.
- (process_extended_line_op): Use state machine.
- (display_debug_lines): Use state machine. Handle multiple line
- number blocks within the same section.
-
-1999-03-29 Jason Merrill <jason@yorick.cygnus.com>
-
- * readelf.c (process_extended_line_op): end_sequence also resets
- the line number.
- (display_debug_lines): advance_line takes a signed operand.
- (read_and_display_attr): Print refs as <%x>, addresses as %#x,
- others as %d. Handle other location expression attributes.
- (display_debug_info): Handle nesting. Always print the offset.
-
-1999-03-23 Ian Lance Taylor <ian@zembu.com>
-
- * objcopy.c (filter_symbols): When checking whether to keep a
- symbol, check the BFD section symbol for a symbol with
- BSF_SECTION_SYM set.
-
-1999-03-10 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c (process_dynamic_segment): Print new Solaris dynamic
- section entries. Correct printing of DT_POSFLAG_1 and DT_FLAGS_1.
-
-1999-03-10 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (request_dump): New function.
- Removed arbitary limit on the number of sections that can be
- dumped.
-
-Wed Mar 10 15:10:14 1999 Stan Cox <scox@cygnus.com>
-
- * dlltool.c (make_one_lib_file): Use %05d to output the stub name so
- order in the import library is preserved.
-
-1999-02-19 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c: Fix compile time warings.
-
-1999-02-17 DJ Delorie <dj@cygnus.com>
-
- * resbin.c (res_to_bin_versioninfo): Instead of entering a value
- length of zero in a version info string, enter the appropriate
- length.
-
-Tue Feb 16 16:00:33 1999 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Require autoconf 2.13. Change AM_PROG_INSTALL to
- AC_PROG_INSTALL. Add comments for AC_DEFINE calls.
- * acconfig.h: Remove.
- * aclocal.m4: Rebuild.
- * configure: Rebuild.
- * Makefile.in: Rebuild.
- * config.in: Rebuild.
-
-1999-02-02 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (read_and_display_attr): Add display of basic type
- encodings.
- (display_debug_aranges): New function: Display the contents of a
- .debug_aranges section.
- (display_debug_info): Dump tags found after compunit entry.
-
- * binutils.texi: Fixed bug in readelf documentation.
-
-Mon Feb 1 12:38:01 1999 Catherine Moore <clm@cygnus.com>
-
- * readelf.c (dump_relocations): Handle EM_ARM as REL.
-
-1999-01-29 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (process_symbol_table): Do not produce a histogram of
- bucket chains if none were found.
-
-1999-01-27 Nick Clifton <nickc@cygnus.com>
-
- * version.c: Add 1999 copyright.
-
- * binutils.texi (readelf): Document new command line options
- --debug-dump and --histogram.
-
- * readelf.c: Add ability to display contents of some or all of the
- Dwarf2 debug sections. {Work only partially completed}.
- (display_debug_section): New function.
- (display_debug_info): New function.
- (display_debug_not_supported): New function.
- (display_debug_line): New function.
- (display_debug_abbrev): New function.
- (process_abbrev_section): New function.
- (read_leb128): New function.
- (process_extended_line_op): New function.
- (get_TAG_name): New function.
- (get_AT_name): New function.
- (get_FORM_name): New function.
- (free_abbrevs): New function.
- (add_abbrev): New function.
- (add_abbrev_attr): New function.
- (read_and_display_attr): New function.
- (display_block): New function.
-
-Thu Jan 14 23:36:11 1999 Jeffrey A Law (law@cygnus.com)
-
- * coffdump.c (xcalloc): Remove, in libiberty now.
- * srconv.c (xcalloc): Likewise.
- * sysdump.c (xcalloc): Likewise.
-
-1999-01-14 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (process_section_headers): Omit trailing space at end
- of section header contents line.
-
-Wed Dec 16 17:20:05 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * aclocal.m4: Regenerate.
-
-Mon Dec 14 12:55:36 1998 Jim Wilson <wilson@cygnus.com>
-
- * dllwrap.c: Include bfd.h and bucomm.h. Move getopt.h include
- after libiberty.h include.
-
-Tue Dec 8 16:29:43 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.1: Fix typo (-d to -D). From Nokubi Hirotaka
- <hnokubi@yyy.or.jp>.
-
-Sun Dec 6 13:28:09 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * objdump.c (SFILE): Add size field.
- (objdump_sprintf): Merge both versions into one. Increase buffer
- size as needed to avoid overflow.
- (disassemble_bytes): Change buf from 1000 bytes to 50. Change
- initialization and use of sfile to match changes to
- objdump_sprintf.
-
- * strip.1: Fix typo (-V to -v). From Issei Hirayama
- <iss@mail.wbs.or.jp>.
-
-1998-12-03 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c (process_dynamic_segment): Improve output format for
- various DT_* values.
-
-1998-12-02 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c (process_mips_specific): Print .conflict section
- content.
-
- * readelf.c (process_mips_specific): Print l_flags in liblist in
- textual form.
-
-1998-11-30 Nick Clifton <nickc@cygnus.com>
-
- * ar.c (extract_file): Add some paranoia checks for negatively
- sized files.
-
-Tue Nov 24 09:39:24 1998 Nick Clifton <nickc@cygnus.com>
-
- * stabs.c (DIR_SEPARATOR): Define as '\\' if WIN32 is defined.
-
-Tue Nov 17 10:25:26 1998 Nick Clifton <nickc@cygnus.com>
-
- * Makefile.in: Regenerate.
-
-Mon Nov 16 19:17:23 1998 Dave Brolley <brolley@cygnus.com>
-
- * po/binutils.pot: Regenerate.
-
-Mon Nov 16 10:18:53 1998 Nick Clifton <nickc@cygnus.com>
-
- * Makefile.am: Regernated dependencies.
- * aclocal.m4: Regenerated.
- * configure: Regenerated.
-
-Sat Nov 14 14:50:56 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * debug.c (debug_name_type): Correct return type from false to
- DEBUG_TYPE_NULL.
-
-Sat Nov 14 14:48:21 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
-
- * objdump.c (disassemble_data): Skip over relocs below start
- address.
-
-Tue Nov 10 15:31:52 1998 Nick Clifton <nickc@cygnus.com>
-
- * Makefile.am: Add dependency of readelf.c on elf/fr30.h
- * Makefile.in: Regenerate.
-
-Wed Nov 4 16:25:55 1998 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c: Add support for the FR30.
-
-Mon Nov 2 14:59:33 1998 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: detect cygwin* instead of cygwin32*
- * configure: regenerate
-
-Fri Oct 30 15:14:49 1998 Geoffrey Noer <noer@cygnus.com>
-
- * dllwrap.c: change all references to cygwin32_ to cygwin_,
- change Cygwin target def to CYGWIN.
-
-Wed Oct 28 10:31:19 1998 Nick Clifton <nickc@cygnus.com>
-
- * objdump.c (disassemble_data): Replace 'unsigned long' with
- 'bfd_vma'.
-
-Tue Oct 27 14:39:00 1998 Nick Clifton <nickc@cygnus.com>
-
- * objdump.c (disassemble_bytes): Applied this patch from Philip
- Blundell <pb@nexus.co.uk>: Make address variables unsigned to
- avoid problems when disassembling code at high-bit-set addresses.
-
-Mon Oct 26 14:07:59 1998 Mumit Khan <khan@xraylith.wisc.edu>
-
- * dllwrap.c (strhash): New function.
- (main): Use it to supply image base if not supplied by user.
- (program_version): Up to 0.2.4.
-
-Mon Oct 26 14:07:59 1998 Mumit Khan <khan@xraylith.wisc.edu>
-
- * dlltool.c (add_stdcall_alias): New global.
- (long_options): Add --add-stdcall-alias option.
- (main): Handle it.
- (scan_drectve_symbols): Add alias if --add-stdcall-alias is
- specified.
- (scan_filtered_symbols): Likewise.
- (gen_def_file): Output alias for stdcall syms if appropriate.
-
- * binutils.texi (dlltool): Document --add-stdcall-alias option.
-
- * dllwrap.c (long_options): Add --add-stdcall-alias option.
- (main): Handle it.
-
- * defparse.y (opt_name): Allow "." in name.
- * dlltool.c (def_name): Set dll_name from NAME entry in def file.
- (def_library): Set dll_name from LIBRARY entry in def file.
-
-Mon Oct 26 14:07:59 1998 Mumit Khan <khan@xraylith.wisc.edu>
-
- * dllwrap.c (long_options): --implib synonym for --output-lib.
- (main): Pass --export-all to dlltool only if specified.
- (program_version): Up to 0.2.3.
-
-Mon Oct 26 14:07:59 1998 Mumit Khan <khan@xraylith.wisc.edu>
-
- * dllwrap.c (mybasename): New function.
- (main): Run dlltool to create export definition file and import
- library file if necessary.
- Change exp_file_name so that it's based on the dll name.
-
-Sun Oct 25 10:37:45 1998 Mumit Khan <khan@xraylith.wisc.edu>
-
- * dlltool.c (scan_all_symbols): Fix patch error.
-
-Fri Oct 16 22:56:20 1998 Felix Lee <flee@cygnus.com>
-
- * nm.c (display_rel_file): fix "no symbols" messages.
- * objdump.c (slurp_symtab): ditto.
- * po/POTFILES.in, po/binutils.pot: rebuilt
-
-Mon Oct 12 14:28:03 1998 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (dump_relocations): Rename field from Value to Info to
- match name of field in ELF structures.
-
-Thu Oct 8 15:33:08 1998 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: call AC_EXEEXT instead of AM_EXEEXT and
- AM_CYGWIN32.
- * aclocal.m4: remove local AM_EXEEXT/AM_CYGWIN32 macros.
- * configure: regenerate
-
-Thu Oct 8 15:33:08 1998 Geoffrey Noer <noer@cygnus.com>
-
- From Mumit Khan <khan@xraylith.wisc.edu>:
- * dlltool.c (scan_all_symbols): Don't re-export symbols exported
- by other DLLs.
-
-Thu Oct 8 15:33:08 1998 Geoffrey Noer <noer@cygnus.com>
-
- * Makefile.am (BUILD_DLLWRAP): Add.
- (BUILD_DLLWRAP, DLLWRAP_PROG): Add.
- (bin_PROGRAMS): Add dllwrap.
- * Makefile.in: regenerate with automake
-
- From Mumit Khan <khan@xraylith.wisc.edu>:
- * dllwrap.c: New file from dllhelpers v0.2.1.
- (print_version): New function.
- (long_options): Add --version.
- (main): Handle.
- * dyn-string.h, dyn-string.c: New files from egcs-1.1/gcc.
- * configure.in (BUILD_DLLWRAP): Add.
- * configure: Regenerate.
-
-Tue Oct 6 18:20:10 1998 Geoffrey Noer <noer@cygnus.com>
-
- * Makefile.am (windres_SOURCES): Add resres.c.
- (windres_OBJECTS): Add resres.o.
- * Makefile.in: regenerate with automake
-
- From Anders Norlander <anorland@hem2.passagen.se>.
- * resres.c: New file. Implementation of read_res_file and
- write_res_file functions for windres.
- * rcparse.y: Handle CONTROL's with named classes.
- * resbin.c: Bug in res_to_bin_dialog and bin_to_res_dialog
- when dialog is extended: The version and signature fields should
- be reversed (despite what the docs say). Id is 32 bits long in
- extended dialogs.
- * resrc.c (write_rc_dialog): properly print controls with named
- classes.
- * windres.c (read_res_file, write_res_file): Remove stubs.
- * resres.c (write_res): Rename RT_ACCELERATORS to RT_ACCELERATOR.
-
-Sun Oct 4 20:34:42 1998 Ian Lance Taylor <ian@cygnus.com>
-
- From Nokubi Hirotaka <hnokubi@yyy.or.jp>:
- * objcopy.1: Fix typo in --remove-leading-char docs.
- * objdump.1: Fix formatting in --stabs docs.
-
-Sat Sep 19 23:33:56 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * rcparse.y (memflags_move): Correct recursion.
-
-1998-09-10 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c (process_symbol_table): Print in histogram how many
- symbols are covered by the current chain length.
-
-Sun Sep 6 16:15:47 1998 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (process_section_contents): Do not try to dump empty
- sections.
-
-Sat Sep 5 19:17:10 1998 Mumit Khan <khan@xraylith.wisc.edu>
-
- * dlltool.c (scan_all_symbols): Don't re-export symbols exported
- by other DLLs.
-
-1998-09-02 14:50 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c (process_dynamic_segment): Print DT_* value only if
- do_dynamic.
- (do_histogram): New variable.
- (options): New long option histogram. Set do_histogram if this
- option is used.
- (usage): Document --histogram.
- (parse_args): Handle 0 return value from getopt_long. Enable
- do_histogram for -a.
- (process_symbol_table): Read hash table also if only do_histogram.
- Add code to print hash table histogram.
-
-1998-08-25 16:45 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c (process_dynamic_segment): Read syminfo section if
- available.
- (process_syminfo): New function. Print syminfo information.
- (process_file): Call process_syminfo and free syminfo data at the end.
-
-Wed Aug 19 16:19:51 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * dlltool.c (usage): Add file parameter. Change all callers.
- (main): Don't treat '?' as a special case in getopt return.
-
- * binutils.texi (dlltool): Document new options. Add some uses of
- @var.
-
-Wed Aug 19 16:19:07 1998 Mumit Khan <khan@xraylith.wisc.edu>
-
- * dlltool.c (gen_def_file): Plug memory leak. Don't print
- demangled name if it is NULL.
-
- Support for exporting all symbols to an output export def file:
- * dlltool.c ({export_all_symbols, no_default_excludes,
- no_default_excludes, excludes}): New file static variables.
- (struct string_list): Type to hold list of symbols to exclude.
- (scan_drectve_symbols): Renamed from scan_open_obj_file.
- (scan_filtered_symbols): New static function.
- (add_excludes): New static function.
- (match_exclude): New static function.
- (set_default_excludes): New static function.
- (filter_symbols): New static function.
- (scan_all_symbols): New static function.
- (scan_open_obj_file): New static function.
- (usage): Document new options.
- (long_options): Add new options.
- (main): Handle new options.
-
-1998-07-31 21:24 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c (process_program_headers): Print p_offset value with
- six hex digits.
- (dynamic_segment_mips_val): Add support for DT_MIPS_FLAGS,
- DT_MIPS_IVERSION, and DT_MIPS_TIME_STAMP.
- (process_mips_specific): Also print seconds of time stamp.
-
-Fri Jul 31 10:04:23 1998 Catherine Moore <clm@cygnus.com>
-
- * readelf.c (dump_relocations): EM_ARM uses rela relocs.
-
-1998-07-30 16:25 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c (get_dynamic_type): Don't used gettext on the names.
- Add new DT_* values from Solaris. Don't print nuemric value in
- case of an unknown entry.
- (process_dynamic_segment): Handle new DT_* entries. Print numeric
- values in decimal, not hex.
-
-Fri Jul 24 16:28:57 1998 Jeff Holcomb <jeffh@cygnus.com>
-
- * readelf.c (get_dynamic_type): Remove empty default from switch
- statement.
-
-Fri Jul 24 16:28:12 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.am (install-exec-local): Don't remove the file before
- checking whether $(bindir) == $(tooldir)/bin. From Maciej
- W. Rozycki <macro@ds2.pg.gda.pl>.
- * Makefile.in: Rebuild.
-
-Fri Jul 24 09:38:59 1998 Nick Clifton <nickc@cygnus.com>
-
- * objcopy.c: Removed spurious inclusion of elf/internal.h and
- elf-bfd.h.
-
-1998-07-22 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c: Consistantly use elf_ prefix for *_reloc_type
- functions.
-
-Wed Jul 22 16:29:12 1998 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (dump_relocations): Add dumps of HPPA and ARC
- relocations.
-
- (process_relocs): Do not abort if no string table can be found.
-
-1998-07-22 14:58 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c: Remove definition of functions to return relocation
- symbol strings. They now get implicitly defined when include the
- system specific ELF header.
-
-1998-07-22 13:51 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c: Before include system specific ELF header define
- START_RELOC_NUMBERS, RELOC_NUMBER, and END_RELOC_NUMBERS. For now
- used for ppc, mips, and mn10300.
-
-Wed Jul 22 10:26:32 1998 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (dump_relocations): Display number of unrecognised
- relocations.
-
-1998-07-21 13:13 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c: Use symbolic names of relocation entries for the various
- architectures. Correct more layout details.
- Print names of MIPS specific section types. Print Alpha, ARM, and
- MIPS relocation type names.
-
-1998-07-20 Vladimir N. Makarov <vmakarov@cygnus.com>
-
- * objcopy.c (filter_symbols): Add code for strip all symbols case.
- (copy_objects): Strip all case is now processed also through
- filter_symbols. No marking symbols used in relocations when strip
- all symbols case.
- (copy_section): When strip all symbols case, remove relocations
- which are not in keep strip specific list.
- (strip_main): Remove guard `strip_specific_list == NULL' for
- setting up strip all symbols by default.
-
-Mon Jul 20 12:51:16 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * addr2line.c (find_address_in_section): Only consider a section
- if the pc value is completely contained within it.
- (translate_addresses): Don't crash if functionname or filename are
- null.
-
-1998-07-20 07:45 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c (process_symbol_table): Fix little alignment problem
- in printed table header.
-
-1998-07-20 07:14 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c: Correct reading of .dynamic section.
- (dynamic_section): Now a global variable.
- (process_mips_fpe_exception, process_mips_specific,
- process_arch_specific): New functions.
- (get_file_header): Call process_arch_specific.
-
-1998-07-19 15:15 Ulrich Drepper <drepper@cygnus.com>
-
- * readelf.c: Fix several versioning related bugs. Produce nicer
- output.
- Add support for processor specific information on MIPS.
-
-Fri Jul 10 15:57:58 1998 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c: Switch prototypes from unsigned short to unsigned
- int.
-
-Fri Jul 10 16:17:50 1998 Ian Lance Taylor <ian@cygnus.com>
-
- From Christian Holland <CHolland@de.lucent.com>:
- * ieee.c (parse_ieee): Initialize info.global_vars and
- info.global_types.
- (parse_ieee_atn): Ignore register lifetime information reportedly
- emitted by MRI compiler.
-
-Thu Jul 9 13:08:01 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.am (MAINTAINERCLEANFILES): Define.
- * Makefile.in: Rebuild.
-
-Tue Jul 7 21:48:54 1998 Jeffrey A Law (law@cygnus.com)
-
- * readelf.c (byte_get): Use PARAMS in prototype.
- (error): Make it work with non-ANSI compilers.
- (warn): Likewise.
- (get_ver_flags): Don't use an ANSI prototype in the definition.
-
-Tue Jul 7 13:26:13 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c (filter_bytes): Set size correctly if the size of the
- section is not an even multiple of the interleave. Based on patch
- from Brion Stone <Brion.Stone@attws.com>.
-
-Thu Jul 2 14:01:34 1998 Klaus Kaempf <kkaempf@rmi.de>
-
- * configure.com: Add vax/vms support.
- * makefile.vms-in: Renamed from makefile.vms. Add substitutions
- now done by configure.com.
-
-Wed Jul 1 20:43:52 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * stabs.c (parse_stab_range_type): Handle 4 and 8 byte signed
- integers with real upper bounds. Handle a lower bound one larger
- than the upper bound as a signed integer. Handle 8 byte signed
- integers.
- (stab_demangle_template): Optionally return the demangled name of
- the template.
- (stab_demangle_qualified): Treat a template name as a tagged
- type.
- (stab_demangle_fund_type): Likewise.
-
-Wed Jul 1 16:29:50 1998 Nick Clifton <nickc@cygnus.com>
-
- * objcopy.c: Minor formatting improvements.
- * readelf.c: Minor output formatting improvement.
-
-Wed Jul 1 14:23:48 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * rclex.l: Add casts and change types to avoid warnings.
- * rcparse.y: Likewise.
- * resbin.c: Likewise.
- * rescoff.c: Likewise.
- * resrc.c: Likewise.
-
- * Makefile.am: Rebuild dependencies.
- (HFILES): Remove readelf.h.
- * Makefile.in: Rebuild.
-
- Based on patches from Andrew Kozin
- <Andrew.Kozin@p14.f960.n5020.z2.fidonet.org>:
- * winduni.h: New file, from windres.h.
- * winduni.c: New file, from windres.c.
- * windres.c: Move Unicode functions into winduni.c.
- * windres.h: Move Unicode declarations into winduni.h. Include
- winduni.h.
- (RT_ACCELERATOR): Rename from RT_ACCELERATORS to match Windows
- macro. Change all uses.
- (RT_PLUGPLAY, RT_VXD): Correct values.
- * Makefile.am (HFILES): Add windres.h.
- (CFILES): Add winduni.c.
- (windres_SOURCES): Add winduni.c.
-
-Mon Jun 29 17:01:21 1998 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c: Use BFD Internal and External Elf structures.
- * readelf.h: Removed - no longer needed.
- * Makefile.in: Remove readelf.c's dependency upon readelf.h.
-
-1998-06-26 Vladimir N. Makarov <vmakarov@cygnus.com>
-
- * objcopy.c (strip_main): keep_specific_list == NULL as additional
- condition to set up strip all symbols by default.
- (copy_archive): don't change archive when error in object files of
- the archive.
-
-Wed Jun 24 17:53:47 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * stabs.c (parse_number): Sign extend negative values correctly if
- bfd_vma is larger than unsigned long.
-
-Tue Jun 23 14:55:05 1998 Mike Stump <mrs@wrs.com>
-
- * Makefile.am (install-exec-local): Don't let EXEEXT interfere
- with the program transform name.
- * Makefile.in: Rebuild.
-
-Tue Jun 23 11:08:53 1998 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c: Rewrite to use fopen/fread ratehr than mmap.
-
- Add --section-headers command line switch, which is an alias for
- --sections.
-
- Incorporate improvemnts made by Andreas Schwab
- <schwab@issan.informatik.uni-dortmund.de> including output
- formatting and version info display.
-
- * binutils.texi: Document --section-headers switch to readelf.
-
-Mon Jun 22 18:28:19 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * readelf.c: Include bfd.h and bucomm.h before system header
- files.
- (parse_args): Change type of c from char to int.
-
-Sun Jun 14 14:26:28 1998 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c (usage): Write to stdout, not stderr.
-
-Fri Jun 12 13:33:51 1998 Tom Tromey <tromey@cygnus.com>
-
- * po/Make-in (all-yes): Depend on .pot file if maintainer mode
- enabled.
- ($(PACKAGE).pot): Unconditionally depend on POTFILES.
-
-Fri Jun 12 16:06:15 1998 Michael Meissner <meissner@cygnus.com>
-
- * readelf.c (get_ppc_rel_type): New PowerPC support.
- (dump_relocations): PowerPC uses RELA relocations.
- (get_machine_name): Spell PowerPC correctly.
- (get_file_type): Change unsigned short parameter to unsigned.
- (get_machine_name): Ditto.
- (get_machine_data): Return whether big endian or little endian.
- (get_machine_flags): Interpret PowerPC, M32R, and MIPS flags.
- (process_elf_header): Print endian-ess. Convert all numeric
- formats to long or unsigned long. Print out machine specific flag
- bits.
- (process_section_headers): Increase name by 3 columns and decrease
- type by the same so that .gcc_except_table fits in the space.
-
- * readelf.h: Include elf/ppc.h, elf/mips.h, and elf/m32r.h to get
- machine specific flag bits.
-
-Thu Jun 11 17:54:26 1998 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c: Remove extraneous #includes. Fix warnings produced
- by -Wall when compiling under Linux.
-
- * Makefile.am (readelf_LDADD): Add $(LIBIBERTY).
-
-Thu Jun 11 18:30:20 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * stabs.c (struct stab_handle): Add self_crossref field.
- (parse_stab_string): If a tag is a cross reference to itself,
- don't define it in the tags list.
- (parse_stab_type): Set info->self_crossref.
-
- * debug.c (struct debug_type_real_list): Define.
- (debug_get_real_type): Add list parameter. Change all callers.
- Check for circularity to avoid crashing when it occurs.
-
-Thu Jun 11 14:48:32 1998 Nick Clifton <nickc@cygnus.com>
-
- * readelf.c: New file: Display contents of ELF format file.
- * readelf.h: New file: Header file for readelf.c
- * Makefile.am: Add rules to build readelf.
- * Makefile.in: Rebuilt.
- * binutils.texi: Document readelf.
- * NEWS: Mention inclusion of readelf into binutils.
- * po/POTFILES.in; Rebuilt.
-
-Fri Jun 5 18:43:40 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * objcopy.c (setup_section): Adjust the section size if copy_byte
- is >= 0.
- (copy_section): Do not call bfd_set_section_size.
-
-Thu Jun 4 09:12:27 1998 Nick Clifton <nickc@cygnus.com>
-
- * objcopy.c (copy_usage): Add missing \n\ from help description.
-
-Wed Jun 3 19:31:33 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.am (YACC): Correct bison -L option.
- * Makefile.in: Rebuild.
-
- * binutils.texi, objdump.1: Document -p/--private-headers.
-
-Wed Jun 3 12:09:40 1998 Nick Clifton <nickc@cygnus.com>
-
- * objcopy.c: Add new command line options: --change-section-lma
- and --change-section-vma. Rename old command line option
- --adjust-section-vma to --change-section-address. Rename
- --adjust-vma to --change-addresses and --adjust-start to
- --change-start. Provide aliases to support the old versions of
- these command line options.
-
- Change the names of macros and enum elements to upper case to
- match the GNU coding standard.
-
- Replace calls to fprintf (stderr,...) with calls to fatal () or
- non_fatal () as appropriate.
-
- * objcopy.1: Document command line option changes.
- * binutils.texi: Document command line option changes.
-
- * bucomm.h: New exported funtion from bucomm.c: non_fatal().
- * bucomm.c (non_fatal): New exported function. Just like fatal()
- except that it returns rather than calling xexit().
-
- (bfd_check_format_matches): Call fatal() rather than bfd_fatal().
-
- (check_matching_formats): Fix C formating.
-
- (parse_vma): Call fatal().
-
-Mon Jun 1 18:26:40 1998 Ian Lance Taylor <ian@cygnus.com>
-
- From Yuli Barcohen <yuli.barcohen@telrad.co.il>:
- * debug.c (debug_type_samep): Avoid endless loops comparing
- function and method parameter types.
-
-Fri May 22 14:02:42 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * dlltool.c (dump_iat): Comment out; not used.
- (display): Rename from tell. Change all callers.
-
-Thu May 14 14:00:56 1998 Nick Clifton <nickc@cygnus.com>
-
- * dlltool.c: Add support for Thumb DLLs. Add support for
- interworking between ARM and Thumb programs and DLLs. Tidy the
- code.
-
- * binutils.texi: Document dlltool.
-
- * configure: Build dlltool for thumb-pe targets.
-
- * version.c (print_version): Include 1998 in copyright strings.
-
- * stabs.c (parse_stab): Support Win32 style directory separators.
-
-Sun May 10 22:34:44 1998 Jeffrey A Law (law@cygnus.com)
-
- * po/Make-in (install-info): New target.
-
-Fri May 8 10:33:13 1998 Nick Clifton <nickc@cygnus.com>
-
- * ar.c (usage): Extend information provided about command line
- options.
-
-Wed May 6 15:28:51 1998 Klaus Kaempf <kkaempf@progis.de>
-
- * makefile.vms: Run dec c with /nodebug. Pass CC value when
- calling make.
-
-Tue May 5 15:19:00 1998 Nick Clifton <nickc@cygnus.com>
-
- * configure: Build dlltool for thumb-pe target.
- * configure.in: Build dlltool for thumb-pe target.
-
-Sun May 3 22:04:49 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.am (EXTRA_PROGRAMS): Change $(SRCONV_PROG) to sysconf
- sysdump coffdump to avoid extra $(EXEEXT).
- * Makefile.in: Rebuild.
-
-Wed Apr 29 22:22:55 1998 Geoffrey Noer <noer@cygnus.com>
-
- * configure.in: Stop appending EXEEXT to the end of
- SRCONV_PROG (wrong because that variable may contain multiple
- programs)
- * Makefile.am: instead, add EXEEXTs to each SRCONV_PROG
- program
- * Makefile.in: regenerate
- * configure: regenerate
-
-Tue Apr 28 19:14:34 1998 Tom Tromey <tromey@cygnus.com>
-
- * addr2line.c (main): Conditionally call setlocale.
- * windres.c (main): Likewise.
- * sysdump.c (main): Likewise.
- * strings.c (main): Likewise.
- * srconv.c (main): Likewise.
- * size.c (main): Likewise.
- * objdump.c (main): Likewise.
- * objcopy.c (main): Likewise.
- * nm.c (main): Likewise.
- * nlmconv.c (main): Likewise.
- * dlltool.c (main): Likewise.
- * coffdump.c (main): Likewise.
- * ar.c (main): Likewise.
- * bucomm.h: Include <locale.h> if HAVE_LOCALE_H.
- (LC_MESSAGES): Now can be defined even when ENABLE_NLS.
-
-Tue Apr 28 10:33:07 1998 Bill Moyer <ttk@cygnus.com>
-
- Add support for IMPORTS:
- * defparse.y (impline): Add IMPORTS syntaxes.
- * dlltool.c (ifunctype, iheadtype): New typedefs.
- (import_list): New static variable.
- (append_import): New static function.
- (def_import): Add an entry to import_list.
- (generate_idata_ofile): New static function.
- (gen_exp_file): Call generate_idata_ofile.
- * dlltool.h (def_import): Update declaration.
-
-Mon Apr 27 16:39:22 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Change version number to 2.9.4
- * configure: Rebuild.
-
-Wed Apr 22 16:00:35 1998 Tom Tromey <tromey@cygnus.com>
-
- * po/Make-in (MKINSTALLDIRS): Don't look in $(top_srcdir).
-
-Wed Apr 22 00:33:56 1998 Tom Tromey <tromey@scribbles.cygnus.com>
-
- * Makefile.am (INCLUDES): Search intl dirs for headers; define
- LOCALEDIR.
- * addr2line.c (main): Call setlocale, bindtextdomain, textdomain.
- * ar.c (main): Likewise.
- * coffdump.c (main): Likewise.
- * dlltool.c (main): Likewise.
- * nlmconv.c (main): Likewise.
- * nm.c (main): Likewise.
- * objcopy.c (main): Likewise.
- * objdump.c (main): Likewise.
- * size.c (main): Likewise.
- * srconv.c (main): Likewise.
- * strings.c (main): Likewise.
- * sysdump.c (main): Likewise.
- * windres.c (main): Likewise.
-
-Tue Apr 21 22:13:08 1998 Tom Tromey <tromey@scribbles.cygnus.com>
-
- * Many files: Added gettext invocations around user-visible
- strings.
- * bucomm.h: Added gettext-related includes and defines.
- * acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_STPCPY,
- HAVE_LC_MESSAGES): Define.
- * configure.in: Call CY_GNU_GETTEXT. Create po/Makefile.in and
- po/Makefile. Use AM_PROG_LEX.
- * Makefile.am (SUBDIRS): New macro.
- (POTFILES): Likewise.
- (po/POTFILES.in): New target.
- (LDADD): Added INTLLIBS.
- (objdump_LDADD): Likewise.
- (c__filt_LDADD): Likewise.
- (ar_LDADD): Likewise.
- (ranlib_LDADD): Likewise.
- (dlltool_LDADD): Likewise.
- (windres_LDADD): Likewise.
- * po/Make-in, po/POTFILES.in, po/binutils.pot: New files.
-
-Tue Apr 21 16:07:18 1998 Stanislav Brabec <utx@k332.feld.cvut.cz>
-
- * objcopy.c (preserve_dates): New file static variable.
- (smart_rename): If preserve_dates, call set_times when copying.
- (strip_main): Remove preserve_dates local variable.
- (copy_main): Likewise.
-
-Tue Apr 7 15:41:15 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.am (DISTSTUFF): Add defparse.h, defparse.c, rclex.c,
- rcparse.h, and rcparse.c
- * Makefile.in: Rebuild.
-
-Mon Apr 6 16:24:35 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.am (PROGS): Move $(ADDR2LINE_PROG) to end, so that
- Makefile.in doesn't have an empty continuation line.
- (bin_PROGRAMS): Likewise.
- * Makefile.in: Rebuild.
-
-Fri Apr 3 14:48:42 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.am (DISTCLEANFILES): Add site.exp and site.bak.
- (MOSTLYCLEANFILES): Add binutils.log, binutils.sum, and abcdefgh*.
- (mostlyclean-local): New target.
- * Makefile.in: Rebuild.
-
-Wed Apr 1 15:54:16 1998 Ian Lance Taylor <ian@cygnus.com>
-
- From Zack Weinberg <zack@rabi.phys.columbia.edu> and H.J. Lu
- <hjl@gnu.org>:
- * ar.c (usage): Mention S modifier.
- (main): Add S modifier.
- * ar.1, binutils.texi: Document S modifier.
-
-Wed Apr 1 13:11:23 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * binutils.texi: Use @itemx for a secondary item in a table.
-
-Tue Mar 31 18:44:13 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * dep-in.sed: Add rule to remove @OBJDIR@.
- * Makefile.am (dep.sed): Substitute for @OBJDIR@.
- * Makefile.in: Rebuild.
-
-Mon Mar 30 12:47:18 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Set version to 2.9.1.
- * configure: Rebuild.
-
- * Branched binutils 2.9.
-
- * Makefile.am (DISTCLEANFILES): Remove defparse.h, arparse.h,
- rcparse.h, and nlmheader.h.
- * Makefile.in: Rebuild.
-
-Sat Mar 28 17:39:27 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.am (MOSTLYCLEANFILES): Define.
- * Makefile.in: Rebuild.
-
- Fix some gcc -Wall warnings:
- * nlmconv.c (main): Add casts to avoid warnings.
- (alpha_mangle_relocs): Likewise.
- * objdump.c (dump_section_stabs): Likewise.
- * size.c (print_sysv_format): Likewise.
- * srcconv.c (wr_ob): Likewise.
- * wrstabs.c (stab_modify_type): Likewise.
- (stab_variable): Likewise.
- * nlmconv.c (main): Initialize variables to avoid warnings.
- * nm.c (sort_symbols_by_size): Likewise.
- * objdump.c (disassemble_bytes): Likewise.
- * wrstabs.c (stab_end_class_type): Likewise.
- * coffgrok.c (do_sections_p2): Change j to unsigned int.
- (do_lines): Change l to unsigned int.
- * nlmheader.y (yylex): Change i to unsigned int.
- * nm.c (print_symbol): Change j to long.
- * size.c (lprint_number): Comment out.
- * srconv.c (wr_ob): Change i to bfd_size_type.
- * sysdump.c (unit_info_list): Comment out.
- (object_body_list, program_structure, debug_list): Likewise.
- * sysinfo.y (yyerror): Return value.
-
-Thu Mar 26 17:06:51 1998 Richard Henderson <rth@cygnus.com>
-
- * defparse.y (explist): Allow epsilon.
- Suggestion from Jonathan-Harris@psion.com.
-
-Thu Mar 26 16:59:09 1998 Richard Henderson <rth@cygnus.com>
-
- * coffgrok.c (do_sections_p1): Use the section's lma instead of vma
- for the benefit of prom loaders.
-
-Wed Mar 25 13:05:39 1998 Ian Lance Taylor <ian@cygnus.com>
-
- Based on patch from H.J. Lu <hjl@gnu.org>:
- * Makefile.am (DISTSTUFF): New variable.
- (diststuff): New target.
- (DISTCLEANFILES): New variable.
- * Makefile.in: Rebuild.
-
-Tue Mar 24 19:33:08 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * rclex.l: Accept { and } as synonyms for BEGIN and END.
-
-Fri Mar 20 19:18:08 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * aclocal.m4, configure: Rebuild with libtool 1.2.
-
-Tue Feb 24 13:07:50 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * objdump.c (disassemble_data): Delete "++place" after call to
- find_symbol_for_address. Set disasm_info.symbols to array of
- symbols at the current address.
-
-Wed Feb 18 23:39:46 1998 Richard Henderson <rth@cygnus.com>
-
- * Makefile.am (install-exec-local): Install properly when ln
- fails or tooldir == prefix.
-
-Tue Feb 17 18:40:55 1998 Richard Henderson <rth@cygnus.com>
-
- * objcopy.c (compare_section_lma): Rename from _vma.
- (copy_object): Gap fill based on LMA not VMA.
- * binutils.texi: Update and clarify.
- * objcopy.1: Likewise.
-
-Tue Feb 17 20:34:11 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * dlltool.c (gen_exp_file): Generate _imp__%s as well as __imp_%s,
- for Microsoft compatibility.
- (make_one_lib_file): Likewise.
-
- * dlltool.c (make_one_lib_file): Don't add 1 to hint.
-
-Fri Feb 13 16:37:44 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.am (AUTOMAKE_OPTIONS): Define.
- * configure, Makefile.in, aclocal.m4: Rebuild with automake 1.2e.
-
-Thu Feb 12 14:13:46 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * deflex.l: Accept '?' in symbol names, for VC++ mangled names.
- From Mikey <jeffdb@netzone.com>.
-
- * addr2line.c (usage): Update bug-gnu-utils address.
- * ar.c (usage): Likewise.
- * nlmconv.c (show_usage): Likewise.
- * nm.c (usage): Likewise.
- * objcopy.c (copy_usage): Likewise.
- (strip_usage): Likewise.
- * objdump.c (usage): Likewise.
- * size.c (usage): Likewise.
- * strings.c (usage): Likewise.
- * windres.c (usage): Likewise.
- * binutils.texi (Bug Reporting): Likewise.
-
-Sat Feb 7 15:36:24 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure, aclocal.m4: Rebuild with new libtool.
-
-Thu Feb 5 12:21:13 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure, Makefile.in, aclocal.m4: Rebuild with new libtool.
-
-Fri Jan 30 19:16:28 1998 Doug Evans <devans@canuck.cygnus.com>
-
- * Makefile.am (CC_FOR_TARGET,nlmcomv.o): Change program_transform_name
- to transform.
- * Makefile.in: Regenerate.
-
-Thu Jan 29 16:24:04 1998 Mumit Khan <khan@xraylith.wisc.edu>
-
- * dlltool.c: Define exit status macros for _WIN32 but not
- __CYGWIN32__.
- (gen_lib_file): Check for exit status of unlink.
- * resrc.c: Define popen and pclose if _WIN32 but not
- __CYGWIN32__.
-
-Wed Jan 28 17:45:46 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Remove vfork check.
- * nlmconv.c: Never include vfork.h.
- * aclocal.m4, configure, Makefile.in, config.in: Rebuild.
-
-Wed Jan 28 17:43:02 1998 J.J. van der Heijden <J.J.vanderHeijden@student.utwente.nl>
-
- * objcopy.c (copy_archive): Only pass one argument to mkdir if
- _WIN32 but not __CYGWIN32__.
- (smart_rename): Add code for _WIN32 (not __CYGWIN32__), to cope
- with different rename behaviour and lack of chown.
-
- * configure.in: Check for mingw32 when deciding whether to build
- dlltool.
- * dlltool.c: Never include vfork.h.
- (run): Use pexecute rather than vfork.
- (gen_lib_file): Check for errors from bfd_set_archive_head and
- bfd_close. Close all the BFDs in the archive before deleting the
- temporary files.
-
-Thu Jan 22 16:22:55 1998 Fred Fish <fnf@cygnus.com>
-
- * objdump.c (disassemble_bytes): Add flag INSN_HAS_RELOC to tell
- disassembly function there is a reloc on this line.
-
-Wed Jan 14 15:29:43 1998 Richard Henderson <rth@cygnus.com>
-
- * srconv.c (sh, h8300): Delete variables.
- (addrsize, toolname, rnames): New variables.
- (writeINT): Use addrsize.
- (wr_un): Use toolname.
- (wr_hd): Set up addrsize et al properly for h8300[hs].
- (walk_tree_symbol): Zero dsy. Use rnames.
- (wr_un, wr_hd, wr_ob, wr_du): Use proper bfd access macros.
- * sysdump.c (sh, h8300): Delete variables.
- (addrsize): New variable.
- (getINT): Use it.
- (getone): Initialize it.
- (getBITS): Range check on MAX.
-
-For older changes see ChangeLog-9197
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/binutils-2.17/binutils/MAINTAINERS b/binutils-2.17/binutils/MAINTAINERS
deleted file mode 100644
index f5beb034..00000000
--- a/binutils-2.17/binutils/MAINTAINERS
+++ /dev/null
@@ -1,251 +0,0 @@
- ========= Binutils Maintainers =========
-
-This is the list of individuals responsible for maintenance and update
-of the GNU Binary Utilities project. This includes the linker (ld),
-the assembler (gas), the profiler (gprof), a whole suite of other
-programs (binutils) and the libraries that they use (bfd and
-opcodes). This project shares a common set of header files with the
-GCC and GDB projects (include), so maintainership of those files is
-shared amoungst the projects.
-
-The home page for binutils is:
-
- http://www.gnu.org/software/binutils/binutils.html
-
-and patches should be sent to:
-
- bug-binutils@gnu.org or binutils@sources.redhat.com
-
-with "[Patch]" as part of the subject line. Note - patches to the
-top level config.guess and config.sub scripts should be sent to:
-
- config-patches@gnu.org
-
-and not to the binutils lists. Patches to the other top level
-configure files (configure, configure.in, config-ml.in) should
-be sent to the binutils lists, and copied to the gcc and gdb
-lists as well (gcc-patches@gcc.gnu.org and
-gdb-patches@sources.redhat.com).
-
- --------- Blanket Write Privs ---------
-
-The following people have permission to check patches into the
-repository without obtaining approval first:
-
- Nick Clifton <nickc@redhat.com> (head maintainer)
- Richard Henderson <rth@redhat.com>
- Ian Lance Taylor <ian@airs.com>
- Jeff Law <law@redhat.com>
- Jim Wilson <wilson@specifixinc.com>
- DJ Delorie <dj@redhat.com>
- Alan Modra <amodra@bigpond.net.au>
- Michael Meissner <gnu@the-meissners.org>
- Daniel Jacobowitz <dan@debian.org>
-
- --------- Maintainers ---------
-
-Maintainers are individuals who are responsible for, and have
-permission to check in changes in, certain subsets of the code. Note
-that maintainers still need approval to check in changes outside of
-the immediate domain that they maintain.
-
-If there is no maintainer for a given domain then the responsibility
-falls to the head maintainer (above). If there are several
-maintainers for a given domain then responsibility falls to the first
-maintainer. The first maintainer is free to devolve that
-responsibility among the other maintainers.
-
- ALPHA Richard Henderson <rth@redhat.com>
- ARM Nick Clifton <nickc@redhat.com>
- ARM Richard Earnshaw <rearnsha@arm.com>
- ARM (Symbian) Paul Brook <paul@codesourcery.com>
- ARM (Symbian) Mark Mitchell <mark@codesourcery.com>
- AVR Denis Chertykov <denisc@overta.ru>
- AVR Marek Michalkiewicz <marekm@amelek.gda.pl>
- BFIN Jie Zhang <jie.zhang@analog.com>
- BFIN Bernd Schmidt <bernd.schmidt@analog.com>
- BUILD SYSTEM Ben Elliston <bje@gnu.org>
- BUILD SYSTEM Daniel Jacobowitz <dan@debian.org>
- CRIS Hans-Peter Nilsson <hp@axis.com>
- CRX Tomer Levi <Tomer.Levi@nsc.com>
- DLX Nikolaos Kavvadias <nkavv@physics.auth.gr>
- DWARF2 Jason Merrill <jason@redhat.com>
- FR30 Dave Brolley <brolley@redhat.com>
- FRV Dave Brolley <brolley@redhat.com>
- FRV Alexandre Oliva <aoliva@redhat.com>
- H8300 Anil Paranjpe <anilp1@kpitcummins.com>
- HPPA Dave Anglin <dave.anglin@nrc.ca>
- HPPA elf32 Alan Modra <amodra@bigpond.net.au>
- HPPA elf64 Jeff Law <law@redhat.com> [Basic maintainance only]
- IA-64 Jim Wilson <wilson@specifixinc.com>
- IQ2000 Stan Cox <scox@redhat.com>
- i860 Jason Eckhardt <jle@rice.edu>
- ix86 Alan Modra <amodra@bigpond.net.au>
- ix86 PE Christopher Faylor <cgf@redhat.com>
- ix86 COFF DJ Delorie <dj@redhat.com>
- ix86 H.J.Lu <hjl@gnu.org>
- ix86 INTEL MODE Jan Beulich <jbeulich@novell.com>
- M68HC11 M68HC12 Stephane Carrez <stcarrez@nerim.fr>
- M68k Ben Elliston <bje@gnu.org>
- M88k Mark Kettenis <kettenis@gnu.org>
- MAXQ Inderpreet Singh <inderpreetb@noida.hcltech.com>
- MIPS Eric Christopher <echristo@apple.com>
- MIPS Thiemo Seufer <ths@networkno.de>
- MMIX Hans-Peter Nilsson <hp@bitrange.com>
- MN10300 Eric Christopher <echristo@apple.com>
- MN10300 Alexandre Oliva <aoliva@redhat.com>
- MSP430 Dmitry Diky <diwil@spec.ru>
- PPC Geoff Keating <geoffk@geoffk.org>
- PPC vector ext Aldy Hernandez <aldyh@redhat.com>
- s390, s390x Martin Schwidefsky <schwidefsky@de.ibm.com>
- SH Jörn Rennecke <joern.rennecke@superh.com>
- SH Alexandre Oliva <aoliva@redhat.com>
- SH Kaz Kojima <kkojima@rr.iij4u.or.jp>
- SPARC Jakub Jelinek <jakub@redhat.com>
- TESTSUITES Ben Elliston <bje@gnu.org>
- TIC4X Svein Seldal <svein@dev.seldal.com>
- TIC54X Timothy Wall <twall@alum.mit.edu>
- VAX Jason R Thorpe <thorpej@netbsd.org>
- VAX Jan-Benedict Glaw <jbglaw@lug-owl.de>
- x86_64 Jan Hubicka <jh@suse.cz>
- x86_64 Andreas Jaeger <aj@suse.de>
- x86_64 H.J.Lu <hjl@gnu.org>
- Xtensa Bob Wilson <bob.wilson@acm.org>
- z80 Arnold Metselaar <arnold.metselaar@planet.nl>
- z8k Christian Groessler <chris@groessler.org>
-
-
- --------- CGEN Maintainers -------------
-
-CGEN is a tool for building, amongst other things, assemblers,
-disassemblers and simulators from a single description of a CPU.
-It creates files in several of the binutils directories, but it
-is mentioned here since there is a single group that maintains
-CGEN and the files that it creates.
-
-If you have CGEN related problems you can send email to;
-
- cgen@sources.redhat.com
-
-The current CGEN maintainers are:
-
- Doug Evans, Frank Eigler
-
- --------- Write After Approval ---------
-
-Individuals with "write after approval" have the ability to check in
-changes, but they must get approval for each change from someone in
-one of the above lists (blanket write or maintainers).
-
-[It's a huge list, folks. You know who you are. If you have the
- *ability* to do binutils checkins, you're in this group. Just
- remember to get approval before checking anything in.]
-
- ------------- Obvious Fixes -------------
-
-Fixes for obvious mistakes do not need approval, and can be checked in
-right away, but the patch should still be sent to the binutils list.
-The definition of obvious is a bit hazy, and if you are not sure, then
-you should seek approval first. Obvious fixes include fixes for
-spelling mistakes, blatantly incorrect code (where the correct code is
-also blatantly obvious), and so on. Obvious fixes should always be
-small, the larger they are, the more likely it is that they contain
-some un-obvious side effect or consequence.
-
- --------- Branch Checkins ---------
-
-If a patch is approved for check in to the mainline sources, it can
-also be checked into the current release branch. Normally however
-only bug fixes should be applied to the branch. New features, new
-ports, etc, should be restricted to the mainline. (Otherwise the
-burden of maintaining the branch in sync with the mainline becomes too
-great). If you are uncertain as to whether a patch is appropriate for
-the branch, ask the branch maintainer. This is:
-
- Daniel Jacobowitz <dan@debian.org>
-
- -------- Testsuites ---------------
-
-In general patches to any of the binutils testsuites should be
-considered generic and sent to the binutils mailing list for
-approval. Patches to target specific tests are the responsibility the
-relevent port maintainer(s), and can be approved/checked in by them.
-Other testsuite patches need the approval of a blanket-write-priveleges
-person.
-
- -------- Configure patches ----------
-
-Patches to the top level configure files (config.sub & config.guess)
-are not the domain of the binutils project and they cannot be approved
-by the binutils group. Instead they should be submitted to the config
-maintainer at:
-
- config-patches@gnu.org
-
- --------- Creating Branches ---------
-
-Anyone with at least write-after-approval access may create a branch
-to use for their own development purposes. In keeping with FSF
-policies, all patches applied to such a branch must come from people
-with appropriate copyright assignments on file. All legal
-requirements that would apply to any other contribution apply equally
-to contributions on a branch.
-
-Before creating the branch, you should select a name for the branch of
-the form:
-
- binutils-<org>-<name>
-
-where "org" is the initials of your organization, or your own initials
-if you are acting as an individual. For example, for a branch created
-by The GNUDist Company, "tgc" would be an appropriate choice for
-"org". It's up to each organization to select an appropriate choice
-for "name"; some organizations may use more structure than others, so
-"name" may contain additional hyphens.
-
-Suppose that The GNUDist Company was creating a branch to develop a
-port of Binutils to the FullMonty processor. Then, an appropriate
-choice of branch name would be:
-
- binutils-tgc-fm
-
-A data stamp is not required as part of the name field, but some
-organizations like to have one. If you do include the date, you
-should follow these rules:
-
-1. The date should be the date that the branch was created.
-
-2. The date should be numerical and in the form YYYYMMDD.
-
-For example:
-
- binutils-tgc-fm_20050101
-
-would be appropriate if the branch was created on January 1st, 2005.
-
-Having selected the branch name, create the branch as follows:
-
-1. Check out binutils, so that you have a CVS checkout corresponding
- to the initial state of your branch.
-
-2. Create a tag:
-
- cvs tag binutils-<org>-<name>-branchpoint
-
- That tag will allow you, and others, to easily determine what's
- changed on the branch relative to the initial state.
-
-3. Create the branch:
-
- cvs rtag -b -r binutils-<org>-<name>-branchpoint \
- binutils-<org>-<name>-branch
-
-4. Document the branch:
-
- Add a description of the branch to binutils/BRANCHES, and check
- that file in. All branch descriptions should be added to the
- HEAD revision of the file; it doesn't help to modify
- binutils/BRANCHES on a branch!
-
-Please do not commit any patches to a branch you did not create
-without the explicit permission of the person who created the branch.
diff --git a/binutils-2.17/binutils/Makefile.am b/binutils-2.17/binutils/Makefile.am
deleted file mode 100644
index 1b4e85ad..00000000
--- a/binutils-2.17/binutils/Makefile.am
+++ /dev/null
@@ -1,611 +0,0 @@
-## Process this file with automake to generate Makefile.in
-
-## FIXME: Work around apparent bug in automake.
-INTLLIBS = @INTLLIBS@
-
-AUTOMAKE_OPTIONS = cygnus dejagnu
-
-SUBDIRS = doc po
-
-tooldir = $(exec_prefix)/$(target_alias)
-
-## These aren't set by automake, because they appear in
-## bfd/acinclude.m4, which is included by binutils/acinclude.m4, and
-## thus is not seen by automake.
-CC_FOR_BUILD = @CC_FOR_BUILD@
-EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@
-
-YACC = `if [ -f ../bison/bison ]; then echo ../bison/bison -y -L$(srcdir)/../bison/; else echo @YACC@; fi`
-YFLAGS = -d
-LEX = `if [ -f ../flex/flex ]; then echo ../flex/flex; else echo @LEX@; fi`
-
-WARN_CFLAGS = @WARN_CFLAGS@
-NO_WERROR = @NO_WERROR@
-AM_CFLAGS = $(WARN_CFLAGS)
-
-# these two are almost the same program
-AR_PROG=ar
-RANLIB_PROG=ranlib
-
-# objcopy and strip should be the same program
-OBJCOPY_PROG=objcopy
-STRIP_PROG=strip-new
-
-STRINGS_PROG=strings
-
-READELF_PROG=readelf
-
-# These should all be the same program too.
-SIZE_PROG=size
-NM_PROG=nm-new
-OBJDUMP_PROG=objdump
-
-# This is the demangler, as a standalone program.
-# Note: This one is used as the installed name too, unlike the above.
-DEMANGLER_PROG=cxxfilt
-
-ADDR2LINE_PROG=addr2line
-
-NLMCONV_PROG=nlmconv
-DLLTOOL_PROG=dlltool
-WINDRES_PROG=windres
-DLLWRAP_PROG=dllwrap
-
-SRCONV_PROG=srconv$(EXEEXT) sysdump$(EXEEXT) coffdump$(EXEEXT)
-
-PROGS = $(SIZE_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRINGS_PROG) $(STRIP_PROG) $(RANLIB_PROG) $(DEMANGLER_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@
-
-bin_PROGRAMS = $(SIZE_PROG) $(OBJDUMP_PROG) $(AR_PROG) $(STRINGS_PROG) $(RANLIB_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@
-
-## We need a special rule to install the programs which are built with
-## -new, and to rename cxxfilt to c++filt.
-noinst_PROGRAMS = $(NM_PROG) $(STRIP_PROG) $(DEMANGLER_PROG)
-
-EXTRA_PROGRAMS = $(NLMCONV_PROG) srconv sysdump coffdump $(DLLTOOL_PROG) $(WINDRES_PROG) $(DLLWRAP_PROG)
-
-# Stuff that goes in tooldir/ if appropriate.
-TOOL_PROGS = nm-new strip-new ar ranlib dlltool objdump
-
-BASEDIR = $(srcdir)/..
-BFDDIR = $(BASEDIR)/bfd
-INCDIR = $(BASEDIR)/include
-
-MKDEP = gcc -MM
-
-INCLUDES = -D_GNU_SOURCE \
- -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \
- @HDEFINES@ \
- -I$(srcdir)/../intl -I../intl \
- -DLOCALEDIR="\"$(datadir)/locale\"" \
- -Dbin_dummy_emulation=$(EMULATION_VECTOR)
-
-HFILES = \
- arsup.h binemul.h bucomm.h budbg.h budemang.h \
- coffgrok.h debug.h dlltool.h nlmconv.h \
- windres.h winduni.h
-
-GENERATED_HFILES = arparse.h sysroff.h sysinfo.h defparse.h rcparse.h
-
-CFILES = \
- addr2line.c ar.c arsup.c binemul.c bucomm.c budemang.c \
- coffdump.c coffgrok.c cxxfilt.c \
- dwarf.c debug.c dlltool.c dllwrap.c \
- emul_aix.c emul_vanilla.c filemode.c \
- ieee.c is-ranlib.c is-strip.c maybe-ranlib.c maybe-strip.c \
- nlmconv.c nm.c not-ranlib.c not-strip.c \
- objcopy.c objdump.c prdbg.c \
- rdcoff.c rddbg.c readelf.c rename.c \
- resbin.c rescoff.c resrc.c resres.c \
- size.c srconv.c stabs.c strings.c sysdump.c version.c \
- windres.c winduni.c wrstabs.c
-
-GENERATED_CFILES = \
- arparse.c arlex.c sysroff.c sysinfo.c syslex.c \
- defparse.c deflex.c nlmheader.c rcparse.c rclex.c
-
-DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
-WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c
-
-# Code shared by all the binutils.
-BULIBS = bucomm.c version.c filemode.c
-
-BFDLIB = ../bfd/libbfd.la
-
-OPCODES = ../opcodes/libopcodes.la
-
-LIBIBERTY = ../libiberty/libiberty.a
-
-.PHONY: install-html install-html-am install-html-recursive
-
-install-html: install-html-recursive
-
-install-html-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- 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) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
-POTFILES = $(CFILES) $(DEBUG_SRCS) $(HFILES)
-po/POTFILES.in: @MAINT@ Makefile
- for f in $(POTFILES); do echo $$f; done | LC_COLLATE= sort > tmp \
- && mv tmp $(srcdir)/po/POTFILES.in
-
-EXPECT = expect
-RUNTEST = runtest
-
-CC_FOR_TARGET = ` \
- if [ -f $$r/../gcc/xgcc ] ; then \
- if [ -f $$r/../newlib/Makefile ] ; then \
- echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \
- else \
- echo $$r/../gcc/xgcc -B$$r/../gcc/; \
- fi; \
- else \
- if [ "@host@" = "@target@" ] ; then \
- echo $(CC); \
- else \
- echo gcc | sed '$(transform)'; \
- fi; \
- fi`
-
-check-DEJAGNU: site.exp
- srcdir=`cd $(srcdir) && pwd`; export srcdir; \
- r=`pwd`; export r; \
- EXPECT=$(EXPECT); export EXPECT; \
- runtest=$(RUNTEST); \
- if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
- CC_FOR_TARGET="$(CC_FOR_TARGET)" CFLAGS_FOR_TARGET="$(CFLAGS)" \
- $$runtest --tool $(DEJATOOL) --srcdir $${srcdir}/testsuite \
- $(RUNTESTFLAGS); \
- else echo "WARNING: could not find \`runtest'" 1>&2; :;\
- fi
-
-installcheck:
- /bin/sh $(srcdir)/sanity.sh $(bindir)
-
-LDADD = $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
-
-size_SOURCES = size.c $(BULIBS)
-
-objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
-
-strings_SOURCES = strings.c $(BULIBS)
-
-readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c
-readelf_LDADD = $(INTLLIBS) $(LIBIBERTY)
-
-strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
-
-nm_new_SOURCES = nm.c budemang.c $(BULIBS)
-
-objdump_SOURCES = objdump.c dwarf.c budemang.c prdbg.c $(DEBUG_SRCS) $(BULIBS)
-objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
-
-objdump.o:objdump.c
- $(COMPILE) -c $(OBJDUMP_DEFS) $(srcdir)/objdump.c
-
-cxxfilt_SOURCES = cxxfilt.c $(BULIBS)
-
-ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \
- emul_$(EMULATION).c $(BULIBS)
-ar_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
-
-ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c rename.c \
- binemul.c emul_$(EMULATION).c $(BULIBS)
-ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
-
-addr2line_SOURCES = addr2line.c budemang.c $(BULIBS)
-
-# The following is commented out for the conversion to automake.
-# This rule creates a single binary that switches between ar and ranlib
-# by looking at argv[0]. Use this kludge to save some disk space.
-# However, you have to install things by hand.
-# (That is after 'make install', replace the installed ranlib by a link to ar.)
-# Alternatively, you can install ranlib.sh as ranlib.
-# ar_with_ranlib: $(ADDL_DEPS) ar.o maybe-ranlib.o
-# $(HLDENV) $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(AR_PROG) ar.o maybe-ranlib.o $(ADDL_LIBS) $(EXTRALIBS)
-# -rm -f $(RANLIB_PROG)
-# -ln $(AR_PROG) $(RANLIB_PROG)
-#
-# objcopy and strip in one binary that uses argv[0] to decide its action.
-#
-#objcopy_with_strip: $(ADDL_DEPS) objcopy.o maybe-strip.o
-# $(HLDENV) $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(OBJCOPY_PROG) objcopy.o maybe-strip.o $(ADDL_LIBS) $(EXTRALIBS)
-# -rm -f $(STRIP_PROG)
-# -ln $(OBJCOPY_PROG) $(STRIP_PROG)
-
-sysroff.c: sysinfo$(EXEEXT_FOR_BUILD) sysroff.info
- ./sysinfo$(EXEEXT_FOR_BUILD) -c <$(srcdir)/sysroff.info >sysroff.c
- ./sysinfo$(EXEEXT_FOR_BUILD) -i <$(srcdir)/sysroff.info >>sysroff.c
- ./sysinfo$(EXEEXT_FOR_BUILD) -g <$(srcdir)/sysroff.info >>sysroff.c
-
-sysroff.h: sysinfo$(EXEEXT_FOR_BUILD) sysroff.info
- ./sysinfo$(EXEEXT_FOR_BUILD) -d <$(srcdir)/sysroff.info >sysroff.h
-
-sysinfo$(EXEEXT_FOR_BUILD): sysinfo.o syslex.o
- $(CC_FOR_BUILD) $(CFLAGS) $(LDFLAGS) -o $@ sysinfo.o syslex.o
-
-syslex.o:
- if [ -r syslex.c ]; then \
- $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS) syslex.c -Wno-error ; \
- else \
- $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS) $(srcdir)/syslex.c -Wno-error ;\
- fi
-
-sysinfo.o:
- if [ -r sysinfo.c ]; then \
- $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS) sysinfo.c -Wno-error ; \
- else \
- $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS) $(srcdir)/sysinfo.c -Wno-error ; \
- fi
-
-# We need these for parallel make.
-arparse.h: arparse.c
-defparse.h: defparse.c
-nlmheader.h: nlmheader.c
-rcparse.h: rcparse.c
-sysinfo.h: sysinfo.c
-
-# Disable -Werror, if it has been enabled, since old versions of bison/
-# yacc will produce working code which contain compile time warnings.
-arparse.o:
- $(COMPILE) -c $< $(NO_WERROR)
-arlex.o:
- $(COMPILE) -c $< $(NO_WERROR)
-sysroff.o:
- $(COMPILE) -c $< $(NO_WERROR)
-defparse.o:
- $(COMPILE) -c $< $(NO_WERROR)
-deflex.o:
- $(COMPILE) -c $< $(NO_WERROR)
-nlmheader.o:
- $(COMPILE) -c $< $(NO_WERROR)
-rcparse.o:
- $(COMPILE) -c $< $(NO_WERROR)
-rclex.o:
- $(COMPILE) -c $< $(NO_WERROR)
-
-srconv_SOURCES = srconv.c coffgrok.c $(BULIBS)
-
-dlltool_SOURCES = dlltool.c defparse.y deflex.l $(BULIBS)
-dlltool_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
-
-dlltool.o:
- $(COMPILE) -c $(DLLTOOL_DEFS) $(srcdir)/dlltool.c
-
-rescoff.o:
- $(COMPILE) -c $(DLLTOOL_DEFS) $(srcdir)/rescoff.c
-
-coffdump_SOURCES = coffdump.c coffgrok.c $(BULIBS)
-
-sysdump_SOURCES = sysdump.c $(BULIBS)
-
-# coff/sym.h and coff/ecoff.h won't be found by the automatic dependency
-# scripts, since they are only included conditionally.
-nlmconv.o: nlmconv.c $(INCDIR)/coff/sym.h $(INCDIR)/coff/ecoff.h
- ldname=`echo ld | sed '$(transform)'`; \
- $(COMPILE) -c -DLD_NAME="\"$${ldname}\"" @NLMCONV_DEFS@ $(srcdir)/nlmconv.c
-
-nlmconv_SOURCES = nlmconv.c nlmheader.y $(BULIBS)
-
-windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.l \
- winduni.c resres.c $(BULIBS)
-windres_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
-
-dllwrap_SOURCES = dllwrap.c version.c
-dllwrap_LDADD = $(LIBIBERTY) $(INTLLIBS)
-
-
-EXTRA_DIST = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h \
- syslex.c deflex.c defparse.h defparse.c rclex.c rcparse.h rcparse.c
-
-diststuff: $(EXTRA_DIST) info
-all: info
-
-DISTCLEANFILES = sysinfo sysroff.c sysroff.h \
- site.exp site.bak
-
-# Targets to rebuild dependencies in this Makefile.
-# Have to get rid of DEP1 here so that "$?" later includes all of $(CFILES).
-DEP: dep.sed $(CFILES) $(HFILES) $(GENERATED_CFILES) $(GENERATED_HFILES) config.h
- rm -f DEP1
- $(MAKE) MKDEP="$(MKDEP)" DEP1
- sed -f dep.sed < DEP1 > DEPA
- echo '# IF YOU PUT ANYTHING HERE IT WILL GO AWAY' >> DEPA
- if grep ' /' DEPA > /dev/null 2> /dev/null; then \
- echo 'make DEP failed!'; exit 1; \
- else \
- mv -f DEPA $@; \
- fi
-
-DEP1: $(CFILES) $(GENERATED_CFILES)
- echo '# DO NOT DELETE THIS LINE -- mkdep uses it.' > DEP2
- echo '# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.' >> DEP2
- $(MKDEP) $(INCLUDES) $(CFLAGS) $? >> DEP2
- mv -f DEP2 $@
-
-dep.sed: dep-in.sed config.status
- objdir=`pwd`; \
- sed <$(srcdir)/dep-in.sed >dep.sed \
- -e 's!@INCDIR@!$(INCDIR)!' \
- -e 's!@BFDDIR@!$(BFDDIR)!' \
- -e 's!@SRCDIR@!$(srcdir)!' \
- -e "s!@OBJDIR@!$${objdir}!" \
- -e 's!@TOPDIR@!'`echo $(srcdir) | sed -e s,/binutils$$,,`'!'
-
-dep: DEP
- sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < Makefile > tmp-Makefile
- cat DEP >> tmp-Makefile
- $(SHELL) $(srcdir)/../move-if-change tmp-Makefile Makefile
-
-dep-in: DEP
- sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.in > tmp-Makefile.in
- cat DEP >> tmp-Makefile.in
- $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.in $(srcdir)/Makefile.in
-
-dep-am: DEP
- sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.am > tmp-Makefile.am
- cat DEP >> tmp-Makefile.am
- $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am
-
-.PHONY: dep dep-in dep-am
-
-###
-
-MOSTLYCLEANFILES = sysinfo binutils.log binutils.sum abcdefgh*
-mostlyclean-local:
- -rm -rf tmpdir
-
-CLEANFILES = dep.sed DEP DEPA DEP1 DEP2
-
-.PHONY: install-exec-local
-
-install-exec-local: install-binPROGRAMS $(bin_PROGRAMS) $(noinst_PROGRAMS)
- @list='$(noinst_PROGRAMS)'; for p in $$list; do \
- if test -f $$p; then \
- echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
- $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
- else :; fi; \
- done
- $(mkinstalldirs) $(DESTDIR)$(tooldir)/bin
- for i in $(TOOL_PROGS); do \
- if [ -f $$i$(EXEEXT) ]; then \
- j=`echo $$i | sed -e 's/-new//'`; \
- k=`echo $$j | sed '$(transform)'`; \
- if [ "$(bindir)/$$k" != "$(tooldir)/bin/$$j" ]; then \
- rm -f $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT); \
- ln $(DESTDIR)$(bindir)/$$k$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT) >/dev/null 2>/dev/null \
- || $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$i$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT); \
- fi; \
- else true; \
- fi; \
- done
-
-# What appears below is generated by a hacked mkdep using gcc -MM.
-
-# DO NOT DELETE THIS LINE -- mkdep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-addr2line.o: addr2line.c config.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/getopt.h $(INCDIR)/libiberty.h \
- $(INCDIR)/demangle.h bucomm.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h budemang.h
-ar.o: ar.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
- $(INCDIR)/libiberty.h $(INCDIR)/progress.h bucomm.h \
- config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/aout/ar.h $(BFDDIR)/libbfd.h $(INCDIR)/hashtab.h \
- arsup.h $(INCDIR)/filenames.h binemul.h
-arsup.o: arsup.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h arsup.h $(INCDIR)/libiberty.h bucomm.h \
- config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/filenames.h
-binemul.o: binemul.c binemul.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h
-bucomm.o: bucomm.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h ../bfd/bfdver.h $(INCDIR)/libiberty.h \
- bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/filenames.h $(BFDDIR)/libbfd.h $(INCDIR)/hashtab.h
-budemang.o: budemang.c config.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/libiberty.h $(INCDIR)/demangle.h \
- budemang.h
-coffdump.o: coffdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/libiberty.h coffgrok.h \
- bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h
-coffgrok.o: coffgrok.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/coff/internal.h \
- $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h coffgrok.h
-cxxfilt.o: cxxfilt.c config.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/libiberty.h $(INCDIR)/demangle.h $(INCDIR)/safe-ctype.h
-dwarf.o: dwarf.c dwarf.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/elf/dwarf2.h bucomm.h \
- config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/libiberty.h
-debug.o: debug.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h
-dlltool.o: dlltool.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/demangle.h \
- $(INCDIR)/dyn-string.h dlltool.h $(INCDIR)/safe-ctype.h
-dllwrap.o: dllwrap.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/dyn-string.h
-emul_aix.o: emul_aix.c binemul.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h \
- $(INCDIR)/coff/xcoff.h $(BFDDIR)/libcoff.h $(BFDDIR)/libxcoff.h
-emul_vanilla.o: emul_vanilla.c binemul.h ../bfd/bfd.h \
- $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h
-filemode.o: filemode.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h
-ieee.o: ieee.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
- $(INCDIR)/ieee.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \
- budbg.h $(INCDIR)/filenames.h
-is-ranlib.o: is-ranlib.c
-is-strip.o: is-strip.c
-maybe-ranlib.o: maybe-ranlib.c
-maybe-strip.o: maybe-strip.c
-nlmconv.o: nlmconv.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/safe-ctype.h \
- $(BFDDIR)/libnlm.h $(INCDIR)/nlm/common.h $(INCDIR)/nlm/internal.h \
- $(INCDIR)/nlm/external.h nlmconv.h
-nm.o: nm.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
- $(INCDIR)/progress.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h budemang.h $(INCDIR)/aout/stab_gnu.h \
- $(INCDIR)/aout/stab.def $(INCDIR)/aout/ranlib.h $(INCDIR)/demangle.h \
- $(INCDIR)/libiberty.h $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h \
- $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h
-not-ranlib.o: not-ranlib.c
-not-strip.o: not-strip.c
-objcopy.o: objcopy.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/progress.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
- budbg.h $(INCDIR)/filenames.h $(INCDIR)/fnmatch.h $(BFDDIR)/elf-bfd.h \
- $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
- $(INCDIR)/bfdlink.h $(BFDDIR)/libbfd.h
-objdump.o: objdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h ../bfd/bfdver.h $(INCDIR)/progress.h \
- bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- dwarf.h $(INCDIR)/elf/dwarf2.h budemang.h $(INCDIR)/safe-ctype.h \
- $(INCDIR)/dis-asm.h $(INCDIR)/libiberty.h $(INCDIR)/demangle.h \
- debug.h budbg.h $(INCDIR)/aout/aout64.h
-prdbg.o: prdbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \
- budbg.h
-rdcoff.o: rdcoff.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h bucomm.h \
- config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/libiberty.h debug.h budbg.h $(BFDDIR)/libcoff.h \
- $(INCDIR)/bfdlink.h
-rddbg.o: rddbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \
- budbg.h
-readelf.o: readelf.c dwarf.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/elf/dwarf2.h $(INCDIR)/elf/common.h \
- $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/alpha.h \
- $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h \
- $(INCDIR)/elf/avr.h $(INCDIR)/elf/bfin.h $(INCDIR)/elf/cris.h \
- $(INCDIR)/elf/d10v.h $(INCDIR)/elf/d30v.h $(INCDIR)/elf/dlx.h \
- $(INCDIR)/elf/fr30.h $(INCDIR)/elf/frv.h $(INCDIR)/elf/h8.h \
- $(INCDIR)/elf/hppa.h $(INCDIR)/elf/i386.h $(INCDIR)/elf/i370.h \
- $(INCDIR)/elf/i860.h $(INCDIR)/elf/i960.h $(INCDIR)/elf/ia64.h \
- $(INCDIR)/elf/ip2k.h $(INCDIR)/elf/m32c.h $(INCDIR)/elf/m32r.h \
- $(INCDIR)/elf/m68k.h $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/mcore.h \
- $(INCDIR)/elf/mips.h $(INCDIR)/elf/mmix.h $(INCDIR)/elf/mn10200.h \
- $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/mt.h $(INCDIR)/elf/msp430.h \
- $(INCDIR)/elf/or32.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h \
- $(INCDIR)/elf/ppc64.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/sh.h \
- $(INCDIR)/elf/sparc.h $(INCDIR)/elf/v850.h $(INCDIR)/elf/vax.h \
- $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h $(INCDIR)/elf/crx.h \
- $(INCDIR)/elf/iq2000.h $(INCDIR)/elf/xtensa.h $(INCDIR)/aout/ar.h \
- bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/libiberty.h unwind-ia64.h
-rename.o: rename.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h
-resbin.o: resbin.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \
- winduni.h
-rescoff.o: rescoff.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \
- winduni.h $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h \
- $(INCDIR)/bfdlink.h
-resrc.o: resrc.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \
- windres.h winduni.h
-resres.o: resres.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \
- winduni.h
-size.o: size.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
- bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/libiberty.h
-srconv.o: srconv.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h sysroff.h coffgrok.h $(INCDIR)/libiberty.h \
- $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h \
- sysroff.c
-stabs.o: stabs.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \
- $(INCDIR)/demangle.h debug.h budbg.h $(INCDIR)/filenames.h \
- $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def
-strings.o: strings.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/getopt.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
- $(INCDIR)/safe-ctype.h
-sysdump.o: sysdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/safe-ctype.h $(INCDIR)/libiberty.h \
- sysroff.h sysroff.c
-version.o: version.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h ../bfd/bfdver.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h
-windres.o: windres.c config.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h $(INCDIR)/obstack.h \
- windres.h winduni.h
-winduni.o: winduni.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h winduni.h $(INCDIR)/safe-ctype.h
-wrstabs.o: wrstabs.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \
- debug.h budbg.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \
- $(INCDIR)/aout/stab.def
-arparse.o: arparse.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h arsup.h
-arlex.o: arlex.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
- arparse.h
-sysroff.o: sysroff.c
-sysinfo.o: sysinfo.c
-syslex.o: syslex.c config.h sysinfo.h
-defparse.o: defparse.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h dlltool.h
-deflex.o: deflex.c $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h \
- defparse.h dlltool.h
-nlmheader.o: nlmheader.c $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h \
- ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/nlm/common.h $(INCDIR)/nlm/internal.h \
- nlmconv.h
-rcparse.o: rcparse.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \
- winduni.h $(INCDIR)/safe-ctype.h
-rclex.o: rclex.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \
- windres.h winduni.h rcparse.h
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/binutils-2.17/binutils/Makefile.in b/binutils-2.17/binutils/Makefile.in
deleted file mode 100644
index 8b5ab820..00000000
--- a/binutils-2.17/binutils/Makefile.in
+++ /dev/null
@@ -1,1367 +0,0 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005 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@
-target_triplet = @target@
-bin_PROGRAMS = $(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7) \
- $(am__EXEEXT_8) $(am__EXEEXT_9) $(am__EXEEXT_10) \
- @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ \
- $(am__EXEEXT_11) $(am__EXEEXT_12) @BUILD_DLLWRAP@ @BUILD_MISC@
-noinst_PROGRAMS = $(am__EXEEXT_13) $(am__EXEEXT_14) $(am__EXEEXT_15)
-EXTRA_PROGRAMS = $(am__EXEEXT_1) srconv$(EXEEXT) sysdump$(EXEEXT) \
- coffdump$(EXEEXT) $(am__EXEEXT_2) $(am__EXEEXT_3) \
- $(am__EXEEXT_4)
-DIST_COMMON = $(srcdir)/../config.guess $(srcdir)/../config.sub NEWS \
- README ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(top_srcdir)/configure $(am__configure_deps) \
- $(srcdir)/config.in $(srcdir)/../mkinstalldirs \
- $(top_srcdir)/po/Make-in arparse.h arparse.c arlex.c \
- defparse.h defparse.c deflex.c nlmheader.h nlmheader.c \
- arparse.h arparse.c arlex.c rcparse.h rcparse.c rclex.c \
- $(srcdir)/../ylwrap $(srcdir)/../ltmain.sh \
- $(srcdir)/../config.guess $(srcdir)/../config.sub
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/../bfd/acinclude.m4 \
- $(top_srcdir)/../config/acx.m4 $(top_srcdir)/../bfd/bfd.m4 \
- $(top_srcdir)/../bfd/warning.m4 $(top_srcdir)/../libtool.m4 \
- $(top_srcdir)/../gettext.m4 $(top_srcdir)/configure.in
-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)/../mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = po/Makefile.in
-am__EXEEXT_1 = nlmconv$(EXEEXT)
-am__EXEEXT_2 = dlltool$(EXEEXT)
-am__EXEEXT_3 = windres$(EXEEXT)
-am__EXEEXT_4 = dllwrap$(EXEEXT)
-am__EXEEXT_5 = size$(EXEEXT)
-am__EXEEXT_6 = objdump$(EXEEXT)
-am__EXEEXT_7 = ar$(EXEEXT)
-am__EXEEXT_8 = strings$(EXEEXT)
-am__EXEEXT_9 = ranlib$(EXEEXT)
-am__EXEEXT_10 = objcopy$(EXEEXT)
-am__EXEEXT_11 = addr2line$(EXEEXT)
-am__EXEEXT_12 = readelf$(EXEEXT)
-am__installdirs = "$(DESTDIR)$(bindir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-am__EXEEXT_13 = nm-new$(EXEEXT)
-am__EXEEXT_14 = strip-new$(EXEEXT)
-am__EXEEXT_15 = cxxfilt$(EXEEXT)
-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
-am__objects_1 = bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT)
-am_addr2line_OBJECTS = addr2line.$(OBJEXT) budemang.$(OBJEXT) \
- $(am__objects_1)
-addr2line_OBJECTS = $(am_addr2line_OBJECTS)
-addr2line_LDADD = $(LDADD)
-am__DEPENDENCIES_1 = ../bfd/libbfd.la
-am__DEPENDENCIES_2 = ../libiberty/libiberty.a
-am__DEPENDENCIES_3 =
-addr2line_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_ar_OBJECTS = arparse.$(OBJEXT) arlex.$(OBJEXT) ar.$(OBJEXT) \
- not-ranlib.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) \
- binemul.$(OBJEXT) emul_$(EMULATION).$(OBJEXT) $(am__objects_1)
-ar_OBJECTS = $(am_ar_OBJECTS)
-ar_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_coffdump_OBJECTS = coffdump.$(OBJEXT) coffgrok.$(OBJEXT) \
- $(am__objects_1)
-coffdump_OBJECTS = $(am_coffdump_OBJECTS)
-coffdump_LDADD = $(LDADD)
-coffdump_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_cxxfilt_OBJECTS = cxxfilt.$(OBJEXT) $(am__objects_1)
-cxxfilt_OBJECTS = $(am_cxxfilt_OBJECTS)
-cxxfilt_LDADD = $(LDADD)
-cxxfilt_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_dlltool_OBJECTS = dlltool.$(OBJEXT) defparse.$(OBJEXT) \
- deflex.$(OBJEXT) $(am__objects_1)
-dlltool_OBJECTS = $(am_dlltool_OBJECTS)
-dlltool_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_dllwrap_OBJECTS = dllwrap.$(OBJEXT) version.$(OBJEXT)
-dllwrap_OBJECTS = $(am_dllwrap_OBJECTS)
-dllwrap_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3)
-am_nlmconv_OBJECTS = nlmconv.$(OBJEXT) nlmheader.$(OBJEXT) \
- $(am__objects_1)
-nlmconv_OBJECTS = $(am_nlmconv_OBJECTS)
-nlmconv_LDADD = $(LDADD)
-nlmconv_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_nm_new_OBJECTS = nm.$(OBJEXT) budemang.$(OBJEXT) $(am__objects_1)
-nm_new_OBJECTS = $(am_nm_new_OBJECTS)
-nm_new_LDADD = $(LDADD)
-nm_new_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am__objects_2 = rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) \
- ieee.$(OBJEXT) rdcoff.$(OBJEXT)
-am__objects_3 = $(am__objects_2) wrstabs.$(OBJEXT)
-am_objcopy_OBJECTS = objcopy.$(OBJEXT) not-strip.$(OBJEXT) \
- rename.$(OBJEXT) $(am__objects_3) $(am__objects_1)
-objcopy_OBJECTS = $(am_objcopy_OBJECTS)
-objcopy_LDADD = $(LDADD)
-objcopy_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_objdump_OBJECTS = objdump.$(OBJEXT) dwarf.$(OBJEXT) \
- budemang.$(OBJEXT) prdbg.$(OBJEXT) $(am__objects_2) \
- $(am__objects_1)
-objdump_OBJECTS = $(am_objdump_OBJECTS)
-am__DEPENDENCIES_4 = ../opcodes/libopcodes.la
-objdump_DEPENDENCIES = $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_3)
-am_ranlib_OBJECTS = ar.$(OBJEXT) is-ranlib.$(OBJEXT) arparse.$(OBJEXT) \
- arlex.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) \
- binemul.$(OBJEXT) emul_$(EMULATION).$(OBJEXT) $(am__objects_1)
-ranlib_OBJECTS = $(am_ranlib_OBJECTS)
-ranlib_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_readelf_OBJECTS = readelf.$(OBJEXT) version.$(OBJEXT) \
- unwind-ia64.$(OBJEXT) dwarf.$(OBJEXT)
-readelf_OBJECTS = $(am_readelf_OBJECTS)
-readelf_DEPENDENCIES = $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_2)
-am_size_OBJECTS = size.$(OBJEXT) $(am__objects_1)
-size_OBJECTS = $(am_size_OBJECTS)
-size_LDADD = $(LDADD)
-size_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_srconv_OBJECTS = srconv.$(OBJEXT) coffgrok.$(OBJEXT) \
- $(am__objects_1)
-srconv_OBJECTS = $(am_srconv_OBJECTS)
-srconv_LDADD = $(LDADD)
-srconv_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_strings_OBJECTS = strings.$(OBJEXT) $(am__objects_1)
-strings_OBJECTS = $(am_strings_OBJECTS)
-strings_LDADD = $(LDADD)
-strings_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_strip_new_OBJECTS = objcopy.$(OBJEXT) is-strip.$(OBJEXT) \
- rename.$(OBJEXT) $(am__objects_3) $(am__objects_1)
-strip_new_OBJECTS = $(am_strip_new_OBJECTS)
-strip_new_LDADD = $(LDADD)
-strip_new_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_sysdump_OBJECTS = sysdump.$(OBJEXT) $(am__objects_1)
-sysdump_OBJECTS = $(am_sysdump_OBJECTS)
-sysdump_LDADD = $(LDADD)
-sysdump_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-am_windres_OBJECTS = windres.$(OBJEXT) resrc.$(OBJEXT) \
- rescoff.$(OBJEXT) resbin.$(OBJEXT) rcparse.$(OBJEXT) \
- rclex.$(OBJEXT) winduni.$(OBJEXT) resres.$(OBJEXT) \
- $(am__objects_1)
-windres_OBJECTS = $(am_windres_OBJECTS)
-windres_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_3)
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
-depcomp =
-am__depfiles_maybe =
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
-LTLEXCOMPILE = $(LIBTOOL) --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS)
-YLWRAP = $(top_srcdir)/../ylwrap
-YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
-LTYACCCOMPILE = $(LIBTOOL) --mode=compile $(YACC) $(YFLAGS) \
- $(AM_YFLAGS)
-SOURCES = $(addr2line_SOURCES) $(ar_SOURCES) $(coffdump_SOURCES) \
- $(cxxfilt_SOURCES) $(dlltool_SOURCES) $(dllwrap_SOURCES) \
- $(nlmconv_SOURCES) $(nm_new_SOURCES) $(objcopy_SOURCES) \
- $(objdump_SOURCES) $(ranlib_SOURCES) $(readelf_SOURCES) \
- $(size_SOURCES) $(srconv_SOURCES) $(strings_SOURCES) \
- $(strip_new_SOURCES) $(sysdump_SOURCES) $(windres_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
-DEJATOOL = $(PACKAGE)
-RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
-DIST_SUBDIRS = $(SUBDIRS)
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BUILD_DLLTOOL = @BUILD_DLLTOOL@
-BUILD_DLLWRAP = @BUILD_DLLWRAP@
-BUILD_MISC = @BUILD_MISC@
-BUILD_NLMCONV = @BUILD_NLMCONV@
-BUILD_SRCONV = @BUILD_SRCONV@
-BUILD_WINDRES = @BUILD_WINDRES@
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CC_FOR_BUILD = @CC_FOR_BUILD@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = @DEFS@
-DEMANGLER_NAME = @DEMANGLER_NAME@
-DEPDIR = @DEPDIR@
-DLLTOOL_DEFS = @DLLTOOL_DEFS@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EMULATION = @EMULATION@
-EMULATION_VECTOR = @EMULATION_VECTOR@
-EXEEXT = @EXEEXT@
-EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@
-GMOFILES = @GMOFILES@
-GMSGFMT = @GMSGFMT@
-GT_NO = @GT_NO@
-GT_YES = @GT_YES@
-HDEFINES = @HDEFINES@
-INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INSTOBJEXT = @INSTOBJEXT@
-INTLDEPS = @INTLDEPS@
-INTLLIBS = @INTLLIBS@
-INTLOBJS = @INTLOBJS@
-LDFLAGS = @LDFLAGS@
-LEX = `if [ -f ../flex/flex ]; then echo ../flex/flex; else echo @LEX@; fi`
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-NLMCONV_DEFS = @NLMCONV_DEFS@
-NO_WERROR = @NO_WERROR@
-OBJDUMP_DEFS = @OBJDUMP_DEFS@
-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@
-POFILES = @POFILES@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-WARN_CFLAGS = @WARN_CFLAGS@
-XGETTEXT = @XGETTEXT@
-YACC = `if [ -f ../bison/bison ]; then echo ../bison/bison -y -L$(srcdir)/../bison/; else echo @YACC@; fi`
-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@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-l = @l@
-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 = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-AUTOMAKE_OPTIONS = cygnus dejagnu
-SUBDIRS = doc po
-tooldir = $(exec_prefix)/$(target_alias)
-YFLAGS = -d
-AM_CFLAGS = $(WARN_CFLAGS)
-
-# these two are almost the same program
-AR_PROG = ar
-RANLIB_PROG = ranlib
-
-# objcopy and strip should be the same program
-OBJCOPY_PROG = objcopy
-STRIP_PROG = strip-new
-STRINGS_PROG = strings
-READELF_PROG = readelf
-
-# These should all be the same program too.
-SIZE_PROG = size
-NM_PROG = nm-new
-OBJDUMP_PROG = objdump
-
-# This is the demangler, as a standalone program.
-# Note: This one is used as the installed name too, unlike the above.
-DEMANGLER_PROG = cxxfilt
-ADDR2LINE_PROG = addr2line
-NLMCONV_PROG = nlmconv
-DLLTOOL_PROG = dlltool
-WINDRES_PROG = windres
-DLLWRAP_PROG = dllwrap
-SRCONV_PROG = srconv$(EXEEXT) sysdump$(EXEEXT) coffdump$(EXEEXT)
-PROGS = $(SIZE_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRINGS_PROG) $(STRIP_PROG) $(RANLIB_PROG) $(DEMANGLER_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@
-
-# Stuff that goes in tooldir/ if appropriate.
-TOOL_PROGS = nm-new strip-new ar ranlib dlltool objdump
-BASEDIR = $(srcdir)/..
-BFDDIR = $(BASEDIR)/bfd
-INCDIR = $(BASEDIR)/include
-MKDEP = gcc -MM
-INCLUDES = -D_GNU_SOURCE \
- -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) \
- @HDEFINES@ \
- -I$(srcdir)/../intl -I../intl \
- -DLOCALEDIR="\"$(datadir)/locale\"" \
- -Dbin_dummy_emulation=$(EMULATION_VECTOR)
-
-HFILES = \
- arsup.h binemul.h bucomm.h budbg.h budemang.h \
- coffgrok.h debug.h dlltool.h nlmconv.h \
- windres.h winduni.h
-
-GENERATED_HFILES = arparse.h sysroff.h sysinfo.h defparse.h rcparse.h
-CFILES = \
- addr2line.c ar.c arsup.c binemul.c bucomm.c budemang.c \
- coffdump.c coffgrok.c cxxfilt.c \
- dwarf.c debug.c dlltool.c dllwrap.c \
- emul_aix.c emul_vanilla.c filemode.c \
- ieee.c is-ranlib.c is-strip.c maybe-ranlib.c maybe-strip.c \
- nlmconv.c nm.c not-ranlib.c not-strip.c \
- objcopy.c objdump.c prdbg.c \
- rdcoff.c rddbg.c readelf.c rename.c \
- resbin.c rescoff.c resrc.c resres.c \
- size.c srconv.c stabs.c strings.c sysdump.c version.c \
- windres.c winduni.c wrstabs.c
-
-GENERATED_CFILES = \
- arparse.c arlex.c sysroff.c sysinfo.c syslex.c \
- defparse.c deflex.c nlmheader.c rcparse.c rclex.c
-
-DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
-WRITE_DEBUG_SRCS = $(DEBUG_SRCS) wrstabs.c
-
-# Code shared by all the binutils.
-BULIBS = bucomm.c version.c filemode.c
-BFDLIB = ../bfd/libbfd.la
-OPCODES = ../opcodes/libopcodes.la
-LIBIBERTY = ../libiberty/libiberty.a
-POTFILES = $(CFILES) $(DEBUG_SRCS) $(HFILES)
-EXPECT = expect
-RUNTEST = runtest
-CC_FOR_TARGET = ` \
- if [ -f $$r/../gcc/xgcc ] ; then \
- if [ -f $$r/../newlib/Makefile ] ; then \
- echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \
- else \
- echo $$r/../gcc/xgcc -B$$r/../gcc/; \
- fi; \
- else \
- if [ "@host@" = "@target@" ] ; then \
- echo $(CC); \
- else \
- echo gcc | sed '$(transform)'; \
- fi; \
- fi`
-
-LDADD = $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
-size_SOURCES = size.c $(BULIBS)
-objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
-strings_SOURCES = strings.c $(BULIBS)
-readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c
-readelf_LDADD = $(INTLLIBS) $(LIBIBERTY)
-strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
-nm_new_SOURCES = nm.c budemang.c $(BULIBS)
-objdump_SOURCES = objdump.c dwarf.c budemang.c prdbg.c $(DEBUG_SRCS) $(BULIBS)
-objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
-cxxfilt_SOURCES = cxxfilt.c $(BULIBS)
-ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \
- emul_$(EMULATION).c $(BULIBS)
-
-ar_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
-ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c rename.c \
- binemul.c emul_$(EMULATION).c $(BULIBS)
-
-ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
-addr2line_SOURCES = addr2line.c budemang.c $(BULIBS)
-srconv_SOURCES = srconv.c coffgrok.c $(BULIBS)
-dlltool_SOURCES = dlltool.c defparse.y deflex.l $(BULIBS)
-dlltool_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
-coffdump_SOURCES = coffdump.c coffgrok.c $(BULIBS)
-sysdump_SOURCES = sysdump.c $(BULIBS)
-nlmconv_SOURCES = nlmconv.c nlmheader.y $(BULIBS)
-windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.l \
- winduni.c resres.c $(BULIBS)
-
-windres_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
-dllwrap_SOURCES = dllwrap.c version.c
-dllwrap_LDADD = $(LIBIBERTY) $(INTLLIBS)
-EXTRA_DIST = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h \
- syslex.c deflex.c defparse.h defparse.c rclex.c rcparse.h rcparse.c
-
-DISTCLEANFILES = sysinfo sysroff.c sysroff.h \
- site.exp site.bak
-
-
-###
-MOSTLYCLEANFILES = sysinfo binutils.log binutils.sum abcdefgh*
-CLEANFILES = dep.sed DEP DEPA DEP1 DEP2
-all: config.h
- $(MAKE) $(AM_MAKEFLAGS) all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .c .l .lo .o .obj .y
-am--refresh:
- @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
- cd $(srcdir) && $(AUTOMAKE) --foreign \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign 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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(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.in $(top_builddir)/config.status
- @rm -f stamp-h1
- cd $(top_builddir) && $(SHELL) ./config.status config.h
-$(srcdir)/config.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_srcdir) && $(AUTOHEADER)
- rm -f stamp-h1
- touch $@
-
-distclean-hdr:
- -rm -f config.h stamp-h1
-po/Makefile.in: $(top_builddir)/config.status $(top_srcdir)/po/Make-in
- cd $(top_builddir) && $(SHELL) ./config.status $@
-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 \
- || test -f $$p1 \
- ; then \
- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(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:
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f $$p $$f"; \
- rm -f $$p $$f ; \
- done
-
-clean-noinstPROGRAMS:
- @list='$(noinst_PROGRAMS)'; for p in $$list; do \
- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f $$p $$f"; \
- rm -f $$p $$f ; \
- done
-addr2line$(EXEEXT): $(addr2line_OBJECTS) $(addr2line_DEPENDENCIES)
- @rm -f addr2line$(EXEEXT)
- $(LINK) $(addr2line_LDFLAGS) $(addr2line_OBJECTS) $(addr2line_LDADD) $(LIBS)
-ar$(EXEEXT): $(ar_OBJECTS) $(ar_DEPENDENCIES)
- @rm -f ar$(EXEEXT)
- $(LINK) $(ar_LDFLAGS) $(ar_OBJECTS) $(ar_LDADD) $(LIBS)
-coffdump$(EXEEXT): $(coffdump_OBJECTS) $(coffdump_DEPENDENCIES)
- @rm -f coffdump$(EXEEXT)
- $(LINK) $(coffdump_LDFLAGS) $(coffdump_OBJECTS) $(coffdump_LDADD) $(LIBS)
-cxxfilt$(EXEEXT): $(cxxfilt_OBJECTS) $(cxxfilt_DEPENDENCIES)
- @rm -f cxxfilt$(EXEEXT)
- $(LINK) $(cxxfilt_LDFLAGS) $(cxxfilt_OBJECTS) $(cxxfilt_LDADD) $(LIBS)
-dlltool$(EXEEXT): $(dlltool_OBJECTS) $(dlltool_DEPENDENCIES)
- @rm -f dlltool$(EXEEXT)
- $(LINK) $(dlltool_LDFLAGS) $(dlltool_OBJECTS) $(dlltool_LDADD) $(LIBS)
-dllwrap$(EXEEXT): $(dllwrap_OBJECTS) $(dllwrap_DEPENDENCIES)
- @rm -f dllwrap$(EXEEXT)
- $(LINK) $(dllwrap_LDFLAGS) $(dllwrap_OBJECTS) $(dllwrap_LDADD) $(LIBS)
-nlmconv$(EXEEXT): $(nlmconv_OBJECTS) $(nlmconv_DEPENDENCIES)
- @rm -f nlmconv$(EXEEXT)
- $(LINK) $(nlmconv_LDFLAGS) $(nlmconv_OBJECTS) $(nlmconv_LDADD) $(LIBS)
-nm-new$(EXEEXT): $(nm_new_OBJECTS) $(nm_new_DEPENDENCIES)
- @rm -f nm-new$(EXEEXT)
- $(LINK) $(nm_new_LDFLAGS) $(nm_new_OBJECTS) $(nm_new_LDADD) $(LIBS)
-objcopy$(EXEEXT): $(objcopy_OBJECTS) $(objcopy_DEPENDENCIES)
- @rm -f objcopy$(EXEEXT)
- $(LINK) $(objcopy_LDFLAGS) $(objcopy_OBJECTS) $(objcopy_LDADD) $(LIBS)
-objdump$(EXEEXT): $(objdump_OBJECTS) $(objdump_DEPENDENCIES)
- @rm -f objdump$(EXEEXT)
- $(LINK) $(objdump_LDFLAGS) $(objdump_OBJECTS) $(objdump_LDADD) $(LIBS)
-ranlib$(EXEEXT): $(ranlib_OBJECTS) $(ranlib_DEPENDENCIES)
- @rm -f ranlib$(EXEEXT)
- $(LINK) $(ranlib_LDFLAGS) $(ranlib_OBJECTS) $(ranlib_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)
-srconv$(EXEEXT): $(srconv_OBJECTS) $(srconv_DEPENDENCIES)
- @rm -f srconv$(EXEEXT)
- $(LINK) $(srconv_LDFLAGS) $(srconv_OBJECTS) $(srconv_LDADD) $(LIBS)
-strings$(EXEEXT): $(strings_OBJECTS) $(strings_DEPENDENCIES)
- @rm -f strings$(EXEEXT)
- $(LINK) $(strings_LDFLAGS) $(strings_OBJECTS) $(strings_LDADD) $(LIBS)
-strip-new$(EXEEXT): $(strip_new_OBJECTS) $(strip_new_DEPENDENCIES)
- @rm -f strip-new$(EXEEXT)
- $(LINK) $(strip_new_LDFLAGS) $(strip_new_OBJECTS) $(strip_new_LDADD) $(LIBS)
-sysdump$(EXEEXT): $(sysdump_OBJECTS) $(sysdump_DEPENDENCIES)
- @rm -f sysdump$(EXEEXT)
- $(LINK) $(sysdump_LDFLAGS) $(sysdump_OBJECTS) $(sysdump_LDADD) $(LIBS)
-windres$(EXEEXT): $(windres_OBJECTS) $(windres_DEPENDENCIES)
- @rm -f windres$(EXEEXT)
- $(LINK) $(windres_LDFLAGS) $(windres_OBJECTS) $(windres_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-.c.o:
- $(COMPILE) -c $<
-
-.c.obj:
- $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
- $(LTCOMPILE) -c -o $@ $<
-
-.l.c:
- $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)
-
-.y.c:
- $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool
-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):
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- 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) \
- || eval $$failcom; \
- 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:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- 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) \
- || eval $$failcom; \
- 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.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.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.in $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) config.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
-site.exp: Makefile
- @echo 'Making a new site.exp file...'
- @echo '## these variables are automatically generated by make ##' >site.tmp
- @echo '# Do not edit here. If you wish to override these values' >>site.tmp
- @echo '# edit the last section' >>site.tmp
- @echo 'set srcdir $(srcdir)' >>site.tmp
- @echo "set objdir `pwd`" >>site.tmp
- @echo 'set build_alias "$(build_alias)"' >>site.tmp
- @echo 'set build_triplet $(build_triplet)' >>site.tmp
- @echo 'set host_alias "$(host_alias)"' >>site.tmp
- @echo 'set host_triplet $(host_triplet)' >>site.tmp
- @echo 'set target_alias "$(target_alias)"' >>site.tmp
- @echo 'set target_triplet $(target_triplet)' >>site.tmp
- @echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
- @test ! -f site.exp || \
- sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
- @-rm -f site.bak
- @test ! -f site.exp || mv site.exp site.bak
- @mv site.tmp site.exp
-
-distclean-DEJAGNU:
- -rm -f site.exp site.bak
- -l='$(DEJATOOL)'; for tool in $$l; do \
- rm -f $$tool.sum $$tool.log; \
- done
-check-am:
- $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
-check: check-recursive
-all-am: Makefile $(PROGRAMS) config.h
-installdirs: installdirs-recursive
-installdirs-am:
- for dir in "$(DESTDIR)$(bindir)"; do \
- test -z "$$dir" || $(mkdir_p) "$$dir"; \
- done
-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
-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:
- -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-
-clean-generic:
- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-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 arlex.c
- -rm -f arparse.c
- -rm -f arparse.h
- -rm -f deflex.c
- -rm -f defparse.c
- -rm -f defparse.h
- -rm -f nlmheader.c
- -rm -f nlmheader.h
- -rm -f rclex.c
- -rm -f rcparse.c
- -rm -f rcparse.h
-clean: clean-recursive
-
-clean-am: clean-binPROGRAMS clean-generic clean-libtool \
- clean-noinstPROGRAMS mostlyclean-am
-
-distclean: distclean-recursive
- -rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -f Makefile
-distclean-am: clean-am distclean-DEJAGNU distclean-compile \
- distclean-generic distclean-hdr distclean-libtool \
- distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-exec-am: install-binPROGRAMS install-exec-local
-
-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-compile mostlyclean-generic \
- mostlyclean-libtool mostlyclean-local
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-binPROGRAMS
-
-uninstall-info: uninstall-info-recursive
-
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
- check-DEJAGNU check-am clean clean-binPROGRAMS clean-generic \
- clean-libtool clean-noinstPROGRAMS clean-recursive ctags \
- ctags-recursive distclean distclean-DEJAGNU distclean-compile \
- distclean-generic distclean-hdr distclean-libtool \
- distclean-recursive distclean-tags 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-exec-local 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-compile \
- mostlyclean-generic mostlyclean-libtool mostlyclean-local \
- mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
- uninstall uninstall-am uninstall-binPROGRAMS uninstall-info-am
-
-
-.PHONY: install-html install-html-am install-html-recursive
-
-install-html: install-html-recursive
-
-install-html-recursive:
- @failcom='exit 1'; \
- for f in x $$MAKEFLAGS; do \
- case $$f in \
- *=* | --[!k]*);; \
- *k*) failcom='fail=yes';; \
- esac; \
- done; \
- 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) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-po/POTFILES.in: @MAINT@ Makefile
- for f in $(POTFILES); do echo $$f; done | LC_COLLATE= sort > tmp \
- && mv tmp $(srcdir)/po/POTFILES.in
-
-check-DEJAGNU: site.exp
- srcdir=`cd $(srcdir) && pwd`; export srcdir; \
- r=`pwd`; export r; \
- EXPECT=$(EXPECT); export EXPECT; \
- runtest=$(RUNTEST); \
- if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
- CC_FOR_TARGET="$(CC_FOR_TARGET)" CFLAGS_FOR_TARGET="$(CFLAGS)" \
- $$runtest --tool $(DEJATOOL) --srcdir $${srcdir}/testsuite \
- $(RUNTESTFLAGS); \
- else echo "WARNING: could not find \`runtest'" 1>&2; :;\
- fi
-
-installcheck:
- /bin/sh $(srcdir)/sanity.sh $(bindir)
-
-objdump.o:objdump.c
- $(COMPILE) -c $(OBJDUMP_DEFS) $(srcdir)/objdump.c
-
-# The following is commented out for the conversion to automake.
-# This rule creates a single binary that switches between ar and ranlib
-# by looking at argv[0]. Use this kludge to save some disk space.
-# However, you have to install things by hand.
-# (That is after 'make install', replace the installed ranlib by a link to ar.)
-# Alternatively, you can install ranlib.sh as ranlib.
-# ar_with_ranlib: $(ADDL_DEPS) ar.o maybe-ranlib.o
-# $(HLDENV) $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(AR_PROG) ar.o maybe-ranlib.o $(ADDL_LIBS) $(EXTRALIBS)
-# -rm -f $(RANLIB_PROG)
-# -ln $(AR_PROG) $(RANLIB_PROG)
-#
-# objcopy and strip in one binary that uses argv[0] to decide its action.
-#
-#objcopy_with_strip: $(ADDL_DEPS) objcopy.o maybe-strip.o
-# $(HLDENV) $(CC) $(HLDFLAGS) $(CFLAGS) $(LDFLAGS) -o $(OBJCOPY_PROG) objcopy.o maybe-strip.o $(ADDL_LIBS) $(EXTRALIBS)
-# -rm -f $(STRIP_PROG)
-# -ln $(OBJCOPY_PROG) $(STRIP_PROG)
-
-sysroff.c: sysinfo$(EXEEXT_FOR_BUILD) sysroff.info
- ./sysinfo$(EXEEXT_FOR_BUILD) -c <$(srcdir)/sysroff.info >sysroff.c
- ./sysinfo$(EXEEXT_FOR_BUILD) -i <$(srcdir)/sysroff.info >>sysroff.c
- ./sysinfo$(EXEEXT_FOR_BUILD) -g <$(srcdir)/sysroff.info >>sysroff.c
-
-sysroff.h: sysinfo$(EXEEXT_FOR_BUILD) sysroff.info
- ./sysinfo$(EXEEXT_FOR_BUILD) -d <$(srcdir)/sysroff.info >sysroff.h
-
-sysinfo$(EXEEXT_FOR_BUILD): sysinfo.o syslex.o
- $(CC_FOR_BUILD) $(CFLAGS) $(LDFLAGS) -o $@ sysinfo.o syslex.o
-
-syslex.o:
- if [ -r syslex.c ]; then \
- $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS) syslex.c -Wno-error ; \
- else \
- $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS) $(srcdir)/syslex.c -Wno-error ;\
- fi
-
-sysinfo.o:
- if [ -r sysinfo.c ]; then \
- $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS) sysinfo.c -Wno-error ; \
- else \
- $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS) $(srcdir)/sysinfo.c -Wno-error ; \
- fi
-
-# We need these for parallel make.
-arparse.h: arparse.c
-defparse.h: defparse.c
-nlmheader.h: nlmheader.c
-rcparse.h: rcparse.c
-sysinfo.h: sysinfo.c
-
-# Disable -Werror, if it has been enabled, since old versions of bison/
-# yacc will produce working code which contain compile time warnings.
-arparse.o:
- $(COMPILE) -c $< $(NO_WERROR)
-arlex.o:
- $(COMPILE) -c $< $(NO_WERROR)
-sysroff.o:
- $(COMPILE) -c $< $(NO_WERROR)
-defparse.o:
- $(COMPILE) -c $< $(NO_WERROR)
-deflex.o:
- $(COMPILE) -c $< $(NO_WERROR)
-nlmheader.o:
- $(COMPILE) -c $< $(NO_WERROR)
-rcparse.o:
- $(COMPILE) -c $< $(NO_WERROR)
-rclex.o:
- $(COMPILE) -c $< $(NO_WERROR)
-
-dlltool.o:
- $(COMPILE) -c $(DLLTOOL_DEFS) $(srcdir)/dlltool.c
-
-rescoff.o:
- $(COMPILE) -c $(DLLTOOL_DEFS) $(srcdir)/rescoff.c
-
-# coff/sym.h and coff/ecoff.h won't be found by the automatic dependency
-# scripts, since they are only included conditionally.
-nlmconv.o: nlmconv.c $(INCDIR)/coff/sym.h $(INCDIR)/coff/ecoff.h
- ldname=`echo ld | sed '$(transform)'`; \
- $(COMPILE) -c -DLD_NAME="\"$${ldname}\"" @NLMCONV_DEFS@ $(srcdir)/nlmconv.c
-
-diststuff: $(EXTRA_DIST) info
-all: info
-
-# Targets to rebuild dependencies in this Makefile.
-# Have to get rid of DEP1 here so that "$?" later includes all of $(CFILES).
-DEP: dep.sed $(CFILES) $(HFILES) $(GENERATED_CFILES) $(GENERATED_HFILES) config.h
- rm -f DEP1
- $(MAKE) MKDEP="$(MKDEP)" DEP1
- sed -f dep.sed < DEP1 > DEPA
- echo '# IF YOU PUT ANYTHING HERE IT WILL GO AWAY' >> DEPA
- if grep ' /' DEPA > /dev/null 2> /dev/null; then \
- echo 'make DEP failed!'; exit 1; \
- else \
- mv -f DEPA $@; \
- fi
-
-DEP1: $(CFILES) $(GENERATED_CFILES)
- echo '# DO NOT DELETE THIS LINE -- mkdep uses it.' > DEP2
- echo '# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.' >> DEP2
- $(MKDEP) $(INCLUDES) $(CFLAGS) $? >> DEP2
- mv -f DEP2 $@
-
-dep.sed: dep-in.sed config.status
- objdir=`pwd`; \
- sed <$(srcdir)/dep-in.sed >dep.sed \
- -e 's!@INCDIR@!$(INCDIR)!' \
- -e 's!@BFDDIR@!$(BFDDIR)!' \
- -e 's!@SRCDIR@!$(srcdir)!' \
- -e "s!@OBJDIR@!$${objdir}!" \
- -e 's!@TOPDIR@!'`echo $(srcdir) | sed -e s,/binutils$$,,`'!'
-
-dep: DEP
- sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < Makefile > tmp-Makefile
- cat DEP >> tmp-Makefile
- $(SHELL) $(srcdir)/../move-if-change tmp-Makefile Makefile
-
-dep-in: DEP
- sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.in > tmp-Makefile.in
- cat DEP >> tmp-Makefile.in
- $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.in $(srcdir)/Makefile.in
-
-dep-am: DEP
- sed -e '/^..DO NOT DELETE THIS LINE/,$$d' < $(srcdir)/Makefile.am > tmp-Makefile.am
- cat DEP >> tmp-Makefile.am
- $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am
-
-.PHONY: dep dep-in dep-am
-mostlyclean-local:
- -rm -rf tmpdir
-
-.PHONY: install-exec-local
-
-install-exec-local: install-binPROGRAMS $(bin_PROGRAMS) $(noinst_PROGRAMS)
- @list='$(noinst_PROGRAMS)'; for p in $$list; do \
- if test -f $$p; then \
- echo " $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
- $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed -e 's/$(EXEEXT)$$//' -e 's/-new//' -e 's/cxxfilt/$(DEMANGLER_NAME)/'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
- else :; fi; \
- done
- $(mkinstalldirs) $(DESTDIR)$(tooldir)/bin
- for i in $(TOOL_PROGS); do \
- if [ -f $$i$(EXEEXT) ]; then \
- j=`echo $$i | sed -e 's/-new//'`; \
- k=`echo $$j | sed '$(transform)'`; \
- if [ "$(bindir)/$$k" != "$(tooldir)/bin/$$j" ]; then \
- rm -f $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT); \
- ln $(DESTDIR)$(bindir)/$$k$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT) >/dev/null 2>/dev/null \
- || $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$i$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$$j$(EXEEXT); \
- fi; \
- else true; \
- fi; \
- done
-
-# What appears below is generated by a hacked mkdep using gcc -MM.
-
-# DO NOT DELETE THIS LINE -- mkdep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-addr2line.o: addr2line.c config.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/getopt.h $(INCDIR)/libiberty.h \
- $(INCDIR)/demangle.h bucomm.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h budemang.h
-ar.o: ar.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
- $(INCDIR)/libiberty.h $(INCDIR)/progress.h bucomm.h \
- config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/aout/ar.h $(BFDDIR)/libbfd.h $(INCDIR)/hashtab.h \
- arsup.h $(INCDIR)/filenames.h binemul.h
-arsup.o: arsup.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h arsup.h $(INCDIR)/libiberty.h bucomm.h \
- config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/filenames.h
-binemul.o: binemul.c binemul.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h
-bucomm.o: bucomm.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h ../bfd/bfdver.h $(INCDIR)/libiberty.h \
- bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/filenames.h $(BFDDIR)/libbfd.h $(INCDIR)/hashtab.h
-budemang.o: budemang.c config.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/libiberty.h $(INCDIR)/demangle.h \
- budemang.h
-coffdump.o: coffdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/libiberty.h coffgrok.h \
- bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h
-coffgrok.o: coffgrok.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/coff/internal.h \
- $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h coffgrok.h
-cxxfilt.o: cxxfilt.c config.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/libiberty.h $(INCDIR)/demangle.h $(INCDIR)/safe-ctype.h
-dwarf.o: dwarf.c dwarf.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/elf/dwarf2.h bucomm.h \
- config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/libiberty.h
-debug.o: debug.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h
-dlltool.o: dlltool.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/demangle.h \
- $(INCDIR)/dyn-string.h dlltool.h $(INCDIR)/safe-ctype.h
-dllwrap.o: dllwrap.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/dyn-string.h
-emul_aix.o: emul_aix.c binemul.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h \
- $(INCDIR)/coff/xcoff.h $(BFDDIR)/libcoff.h $(BFDDIR)/libxcoff.h
-emul_vanilla.o: emul_vanilla.c binemul.h ../bfd/bfd.h \
- $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h
-filemode.o: filemode.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h
-ieee.o: ieee.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
- $(INCDIR)/ieee.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \
- budbg.h $(INCDIR)/filenames.h
-is-ranlib.o: is-ranlib.c
-is-strip.o: is-strip.c
-maybe-ranlib.o: maybe-ranlib.c
-maybe-strip.o: maybe-strip.c
-nlmconv.o: nlmconv.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/libiberty.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/safe-ctype.h \
- $(BFDDIR)/libnlm.h $(INCDIR)/nlm/common.h $(INCDIR)/nlm/internal.h \
- $(INCDIR)/nlm/external.h nlmconv.h
-nm.o: nm.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
- $(INCDIR)/progress.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h budemang.h $(INCDIR)/aout/stab_gnu.h \
- $(INCDIR)/aout/stab.def $(INCDIR)/aout/ranlib.h $(INCDIR)/demangle.h \
- $(INCDIR)/libiberty.h $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h \
- $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h
-not-ranlib.o: not-ranlib.c
-not-strip.o: not-strip.c
-objcopy.o: objcopy.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/progress.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
- budbg.h $(INCDIR)/filenames.h $(INCDIR)/fnmatch.h $(BFDDIR)/elf-bfd.h \
- $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
- $(INCDIR)/bfdlink.h $(BFDDIR)/libbfd.h
-objdump.o: objdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h ../bfd/bfdver.h $(INCDIR)/progress.h \
- bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- dwarf.h $(INCDIR)/elf/dwarf2.h budemang.h $(INCDIR)/safe-ctype.h \
- $(INCDIR)/dis-asm.h $(INCDIR)/libiberty.h $(INCDIR)/demangle.h \
- debug.h budbg.h $(INCDIR)/aout/aout64.h
-prdbg.o: prdbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \
- budbg.h
-rdcoff.o: rdcoff.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h bucomm.h \
- config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/libiberty.h debug.h budbg.h $(BFDDIR)/libcoff.h \
- $(INCDIR)/bfdlink.h
-rddbg.o: rddbg.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h debug.h \
- budbg.h
-readelf.o: readelf.c dwarf.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/elf/dwarf2.h $(INCDIR)/elf/common.h \
- $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/alpha.h \
- $(INCDIR)/elf/reloc-macros.h $(INCDIR)/elf/arc.h $(INCDIR)/elf/arm.h \
- $(INCDIR)/elf/avr.h $(INCDIR)/elf/bfin.h $(INCDIR)/elf/cris.h \
- $(INCDIR)/elf/d10v.h $(INCDIR)/elf/d30v.h $(INCDIR)/elf/dlx.h \
- $(INCDIR)/elf/fr30.h $(INCDIR)/elf/frv.h $(INCDIR)/elf/h8.h \
- $(INCDIR)/elf/hppa.h $(INCDIR)/elf/i386.h $(INCDIR)/elf/i370.h \
- $(INCDIR)/elf/i860.h $(INCDIR)/elf/i960.h $(INCDIR)/elf/ia64.h \
- $(INCDIR)/elf/ip2k.h $(INCDIR)/elf/m32c.h $(INCDIR)/elf/m32r.h \
- $(INCDIR)/elf/m68k.h $(INCDIR)/elf/m68hc11.h $(INCDIR)/elf/mcore.h \
- $(INCDIR)/elf/mips.h $(INCDIR)/elf/mmix.h $(INCDIR)/elf/mn10200.h \
- $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/mt.h $(INCDIR)/elf/msp430.h \
- $(INCDIR)/elf/or32.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h \
- $(INCDIR)/elf/ppc64.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/sh.h \
- $(INCDIR)/elf/sparc.h $(INCDIR)/elf/v850.h $(INCDIR)/elf/vax.h \
- $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h $(INCDIR)/elf/crx.h \
- $(INCDIR)/elf/iq2000.h $(INCDIR)/elf/xtensa.h $(INCDIR)/aout/ar.h \
- bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/libiberty.h unwind-ia64.h
-rename.o: rename.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h
-resbin.o: resbin.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \
- winduni.h
-rescoff.o: rescoff.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \
- winduni.h $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h \
- $(INCDIR)/bfdlink.h
-resrc.o: resrc.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \
- windres.h winduni.h
-resres.o: resres.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \
- winduni.h
-size.o: size.c ../bfd/bfd.h $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h \
- bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/libiberty.h
-srconv.o: srconv.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h sysroff.h coffgrok.h $(INCDIR)/libiberty.h \
- $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h \
- sysroff.c
-stabs.o: stabs.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \
- $(INCDIR)/demangle.h debug.h budbg.h $(INCDIR)/filenames.h \
- $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def
-strings.o: strings.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h $(INCDIR)/getopt.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h \
- $(INCDIR)/safe-ctype.h
-sysdump.o: sysdump.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/safe-ctype.h $(INCDIR)/libiberty.h \
- sysroff.h sysroff.c
-version.o: version.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h ../bfd/bfdver.h bucomm.h config.h \
- $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h
-windres.o: windres.c config.h ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \
- $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h $(INCDIR)/obstack.h \
- windres.h winduni.h
-winduni.o: winduni.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h winduni.h $(INCDIR)/safe-ctype.h
-wrstabs.o: wrstabs.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \
- debug.h budbg.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \
- $(INCDIR)/aout/stab.def
-arparse.o: arparse.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h arsup.h
-arlex.o: arlex.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
- arparse.h
-sysroff.o: sysroff.c
-sysinfo.o: sysinfo.c
-syslex.o: syslex.c config.h sysinfo.h
-defparse.o: defparse.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h dlltool.h
-deflex.o: deflex.c $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h \
- defparse.h dlltool.h
-nlmheader.o: nlmheader.c $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h \
- ../bfd/bfd.h $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/nlm/common.h $(INCDIR)/nlm/internal.h \
- nlmconv.h
-rcparse.o: rcparse.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h windres.h \
- winduni.h $(INCDIR)/safe-ctype.h
-rclex.o: rclex.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/symcat.h bucomm.h config.h $(INCDIR)/bin-bugs.h \
- $(INCDIR)/fopen-same.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \
- windres.h winduni.h rcparse.h
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
-# 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/binutils-2.17/binutils/NEWS b/binutils-2.17/binutils/NEWS
deleted file mode 100644
index d12450e3..00000000
--- a/binutils-2.17/binutils/NEWS
+++ /dev/null
@@ -1,334 +0,0 @@
--*- text -*-
-
-* Add "-x NAME" to readelf in addition to "-x NUMBER".
-
-* Add -i and -t switches to cxxfilt. -i disables the display of implementation
- specific extra demangling information (if any) and -t disables the demangling
- of types.
-
-* Add support for the "@<file>" syntax to the command lines of all tools, so
- that extra switches can be read from <file>.
-
-* Add "-W/--dwarf" to objdump to display the contents of the DWARF
- debug sections.
-
-* Add "-t/--section-details" to readelf to display section details.
- "-N/--full-section-name" is deprecated.
-
-* powerpc-linux ld now supports a variant form of PLT and GOT for the security
- conscious. This form will automatically be chosen when ld detects that all
- code in regular object files was generated by gcc -msecure-plt. The old PLT
- and GOT may be forced by a new ld option, --bss-plt.
-
-* Add "-i/--inlines" to addr2line to print enclosing scope information
- for inlined function chains, back to first non-inlined function.
-
-* Add "-N/--full-section-name" to readelf to display full section name.
-
-* Add "-M entry:<addr>" switch to objdump to specify a function entry address
- when disassembling VAX binaries.
-
-* Add "--globalize-symbol <name>" and "--globalize-symbols <filename>" switches
- to objcopy to convert local symbols into global symbols.
-
-Changes in 2.16:
-
-* Add "-g/--section-groups" to readelf to display section groups.
-
-* objcopy recognizes two new options --strip-unneeded-symbol and
- --strip-unneeded-symbols, namely for use together with the wildcard
- matching the original --strip-symbol/--strip-symbols provided, but
- retaining any symbols matching but needed by relocations.
-
-* readelf can now display address ranges from .debug_range sections. This
- happens automatically when a DW_AT_range attribute is encountered. The
- command line switch --debug-dump=Ranges (or -wR) can also be used to display
- the contents of the .debug_range section.
-
-* nm and objdump now have a switch "--special-syms" to enable the displaying of
- symbols which the target considers to be special. By default these symbols
- are no longer displayed. Currently the only special symbols are the Mapping
- symbols used by the ARM port to mark transitions between text and data and
- between ARM and THUMB code.
-
-* dlltool has a switch "--ext-prefix-alias <prefix>" to generate additional
- import and export symbols with <preifx> prepended to them.
-
-Changes in 2.15:
-
-* objcopy for MIPS targets now accepts "-M no-aliases" as an option to the
- disassembler to print the "raw" mips instruction mnemonic instead of some
- pseudo instruction name. I.E. print "daddu" or "or" instead of "move",
- "sll" instead of "nop", etc.
-
-* objcopy and strip can now take wildcard patterns in symbol names specified on
- the command line provided that the --wildcard switch is used to enable them.
-
-* readelf can now parse archives.
-
-* objdump now accepts --debugging-tags to print the debug information in a
- format compatible with ctags tool.
-
-* objcopy and strip now accept --only-keep-debug to create a file containing
- those sections that would be stripped out by --strip-debug. The idea is that
- this can be used in conjunction with the --add-gnu-debuglink switch to create
- a two part program distribution - one a stripped executable and the other the
- debugging info.
-
-* objcopy now accepts --add-gnu-debuglink=<file> to insert a .gnu_debuglink
- section into a (presumably stripped) executable. This allows the debug
- information for the file to be held in a separate file.
-
-* BFD marks the sections .comment and .note as 'n' in the BSD/POSIX
- single-character representation. This can be checked by running nm
- with the -a switch.
-
-Changes in 2.14:
-
-* Added --info switch to objcopy and strip.
-
-* Support for Vitesse IQ2000 added by Red Hat.
-
-* Added 'S' encoding to strings to allow the display of 8-bit characters.
-
-* Added --prefix-symbols=<text>, --prefix-sections=<text> and
- --prefix-alloc-sections=<text> to objcopy.
-
-* readelf can handle the extensions to the DWARF2 spec used by the Unified
- Parallel C compiler.
-
-* BFD no longer declares a "boolean" type, to avoid clashes with other
- headers that declare the same. Users of BFD should replace boolean,
- false and true, with int, 0 and 1, or define their own boolean type.
-
-* Support for IP2K added by Denis Chertykov.
-
-Changes in 2.13:
-
-* Support for the Fujitsu FRV architecture added by Red Hat. Models for FR400
- and FR500 included.
-
-Changes in version 2.12:
-
-* Support for Don Knuth's MMIX, by Hans-Peter Nilsson.
-
-* size: Add --totals to display summary of sizes (Berkeley format only).
-
-* readelf: Add --wide option to not break section header or segment listing
- lines to fit into 80 columns.
-
-* strings: Add --encoding to display wide character strings. By Markus Kuhn.
-
-* objcopy: Add --rename-section to change section names.
-
-* readelf: Support added for DWARF 2.1 extensions. Support added for
- displaying the contents of .debug.macinfo sections.
-
-* New command line switches added to objcopy to allow symbols to be kept as
- global symbols, and also to specify files containing lists of such symbols.
- by Honda Hiroki.
-
-* Support for OpenRISC by Johan Rydberg.
-
-* New command line switch to objcopy --alt-machine-code which creates a binary
- with an alternate machine code if one is defined in the architecture
- description. Only supported for ELF targets. By Alexandre Oliva.
-
-* New command line switch to objcopy -B (or --binary-architecture) which sets
- the architecture of the output file to the given argument. This option only
- makes sense, if the input target is binary. Otherwise it is ignored.
- By Stefan Geuken.
-
-* Support for PDP-11 by Lars Brinkhoff.
-
-Changes in binutils 2.11:
-
-* Add support for ARM v5t and v5te architectures and Intel's XScale ARM
- extenstions.
-
-* Add --srec-len and --srec-forceS3 command line switch to objcopy.
- By Luciano Gemme.
-
-* Support for the MIPS32, by Anders Norlander.
-
-* Support for the i860, by Jason Eckhardt.
-
-* Support for CRIS (Axis Communications ETRAX series).
-
-Changes in binutils 2.10:
-
-* Support for 64-bit ELF on HPPA.
-
-* New command line switch to objdump --file-start-context which shows the
- entire file contents up to the source line first encountered for a given
- file.
-
-* New command line switch to objdump -M (or --disassembler-options) which takes
- a parameter which can then be interpreted on a per-target basis by the
- disassembler. Used by ARM targets to select register name sets, ISA, APCS or
- raw verions.
-
-* objdump support for -mi386:intel which causes disassembly to be displayed
- with intel syntax.
-
-* New program: readelf. This displays the contents of ELF format files,
- regardless of target machine.
-
-* objcopy now takes --change-section-lma, --change-section-vma, and
- --change-section-address options. The old --adjust-section-vma option is
- equivalent to --change-section-address. The other --adjust-* options are now
- renamed to --change-*, although --adjust-* continues to work.
-
-* objcopy has a --redefine-sym option that lets you rename symbols.
-
-* objcopy now takes a -j/--only-section option to copy only the specified
- sections.
-
-* dlltool now supports the IMPORTS command.
-
-* dlltool now takes --export-all-symbols, --no-export-all-symbols,
- --exclude-symbols, and --no-default-excludes options.
-
-Changes in binutils 2.9:
-
-* Added windres program, which can be used to manipulate resources in WIN32
- files as used on Windows 95 and Windows NT.
-
-* The objcopy --gap-fill and --pad-to options operate on the LMA rather than
- the VMA of the sections.
-
-* Added S modifier to ar to not build a symbol table.
-
-Changes in binutils 2.8:
-
-* The objdump disassembly format has been changed, and hopefully improved. Use
- the new --prefix-addresses option to get the old format. There are also new
- --disassemble-zeroes and --no-show-raw-insn options which affect disassembler
- output.
-
-* Formats may now be specified as configuration triplets. For example,
- objdump -b i386-pc-linux. The triplets are not passed through config.sub,
- so they must be in canonical form.
-
-* Added new addr2line program. This uses the debugging information to convert
- an address into a file name and line number within a program.
-
-* Added --change-leading-char argument to objcopy.
-
-* Added --weaken argument to objcopy.
-
-* objdump --dynamic-reloc now works on ELF executables and shared libraries.
-
-* Added --adjust-vma option to objdump.
-
-* Added -C/--demangle option to objdump.
-
-* Added -p/--preserve-dates option to strip and objcopy.
-
-Changes in binutils 2.7:
-
-* Added --enable-shared and --enable-commonbfdlib options to configure.
-
-* Added --debugging argument to objdump and objcopy.
-
-* Added --defined-only argument to nm.
-
-* Added --remove-leading-char argument to objcopy.
-
-* The objdump --line-numbers option is now meaningful with --reloc.
-
-* Added --line-numbers option to nm.
-
-* Added --endian/-EB/-EL option to objdump.
-
-* Added support for Alpha OpenVMS/AXP.
-
-Changes in binutils 2.6:
-
-* Added -N/--strip-symbol and -K/--keep-symbol arguments to strip and objcopy.
-
-* Added several arguments to objcopy to provide some control over how the new
- file is laid out in memory. Also added binary output format to BFD to permit
- generating plain binary files.
-
-* Added --start-address and --stop-address options to objdump.
-
-* ar and ranlib now work on AIX. The tools are now built by default on AIX.
-
-Changes in binutils 2.5:
-
-* Changed objdump -dr to dump the relocs interspersed with the assembly
- listing, for a more useful listing of relocatable files.
-
-* Changed objdump -d/--disassemble to only disassemble SEC_CODE sections.
- Added -D/--disassemble-all option to disassemble all sections.
-
-* Added --size-sort option to nm.
-
-* strip and objcopy should now be able to handle dynamically linked ELF
- executables.
-
-Changes in binutils 2.4:
-
-* Support for HP-PA (by Jeff Law), i386 Mach (by David Mackenzie), RS/6000 and
- PowerPC (except ar and ranlib; by Ian Taylor).
-
-* Support for Irix 5.
-
-* Programs `strip' and `objcopy' will not attempt to write dynamically linked
- ELF output files, since BFD currently can't create them properly.
-
-Changes in binutils 2.3:
-
-* A new --stabs argument has been added to objdump to dump stabs sections in
- ELF and COFF files.
-
-* A new program, nlmconv, has been added. It can convert object files into
- Novell NetWare Loadable Modules.
-
-* The strings program has been added.
-
-Changes in binutils 2.2:
-
-* The 'copy' program has been renamed to 'objcopy', for consistency with
- 'objdump', and because 'copy' might more plausibly be used as a synonym for
- 'cp'.
-
-* The new stand-alone program c++filt is a filter that converts encoded
- (mangled) C++ assembly-level identifiers to user-level names. (Note: This
- may get moved to the gcc distribution.)
-
-* nm -o on an archive now prefixes each line with the archive name, matching
- the output from BSD nm.
-
-* ar (and ld) can now read (but not write) BSD4.4-style archives.
-
-* New support for H8500, Z8000, and the Hitach SH.
-
-* Dis-assembler interface changed to allow sharing with gdb.
-
-* There is new Elf code, but it is not yet ready for general use.
-
-* There is the beginnings of a test suite.
-
-Changes in binutils 2.1:
-
-* There is now support for writing ECOFF files, so ld and the other utilities
- should work on Risc/Ultrix and Irix. Please let us know how well this works.
-
-* ar now automatically creates a symbol table (a __.SYMDEF member, in the BSD
- version), if there are any object files in the archive. So running ranlib is
- now redundant (unless the non-standard q command is used). This is required
- for Posix.2 conformance.
-
-* The archive-reading code now reads both BSD-style and SYSV-style archives
- independently of the selected target format. This is to encourage people to
- switch to SYSV-format, which has a number of advantages.
-
-* The strip and copy programs now have options to remove debug-symbols only
- and/or local symbols only. They now also support long options.
-
-
-Local variables:
-fill-column: 79
-End:
diff --git a/binutils-2.17/binutils/README b/binutils-2.17/binutils/README
deleted file mode 100644
index 5bc2508b..00000000
--- a/binutils-2.17/binutils/README
+++ /dev/null
@@ -1,273 +0,0 @@
- README for BINUTILS
-
-These are the GNU binutils. These are utilities of use when dealing
-with binary files, either object files or executables. These tools
-consist of the linker (ld), the assembler (gas), and the profiler
-(gprof) each of which have their own sub-directory named after them.
-There is also a collection of other binary tools, including the
-disassembler (objdump) in this directory. These tools make use of a
-pair of libraries (bfd and opcodes) and a common set of header files
-(include).
-
-There are README and NEWS files in most of the program sub-directories
-which give more information about those specific programs.
-
-
-Unpacking and Installation -- quick overview
-============================================
-
-When you unpack the binutils archive file, you will get a directory
-called something like `binutils-XXX', where XXX is the number of the
-release. (Probably 2.13 or higher). This directory contains
-various files and sub-directories. Most of the files in the top
-directory are for information and for configuration. The actual
-source code is in sub-directories.
-
-To build binutils, you can just do:
-
- cd binutils-XXX
- ./configure [options]
- make
- make install # copies the programs files into /usr/local/bin
- # by default.
-
-This will configure and build all the libraries as well as the
-assembler, the binutils, and the linker.
-
-If you have GNU make, we recommend building in a different directory:
-
- mkdir objdir
- cd objdir
- ../binutils-XXX/configure [options]
- make
- make install
-
-This relies on the VPATH feature of GNU make.
-
-By default, the binutils will be configured to support the system on
-which they are built. When doing cross development, use the --target
-configure option to specify a different target, eg:
-
- ./configure --target=foo-elf
-
-The --enable-targets option adds support for more binary file formats
-besides the default. List them as the argument to --enable-targets,
-separated by commas. For example:
-
- ./configure --enable-targets=sun3,rs6000-aix,decstation
-
-The name 'all' compiles in support for all valid BFD targets:
-
- ./configure --enable-targets=all
-
-On 32-bit hosts though, this support will be restricted to 32-bit
-target unless the --enable-64-bit-bfd option is also used:
-
- ./configure --enable-64-bit-bfd --enable-targets=all
-
-You can also specify the --enable-shared option when you run
-configure. This will build the BFD and opcodes libraries as shared
-libraries. You can use arguments with the --enable-shared option to
-indicate that only certain libraries should be built shared; for
-example, --enable-shared=bfd. The only potential shared libraries in
-a binutils release are bfd and opcodes.
-
-The binutils will be linked against the shared libraries. The build
-step will attempt to place the correct library in the run-time search
-path for the binaries. However, in some cases, after you install the
-binaries, you may have to set an environment variable, normally
-LD_LIBRARY_PATH, so that the system can find the installed libbfd
-shared library.
-
-To build under openVMS/AXP, see the file makefile.vms in the top level
-directory.
-
-
-Native Language Support
-=======================
-
-By default Native Language Support will be enabled for binutils. On
-some systems however this support is not present and can lead to error
-messages such as "undefined reference to `libintl_gettext'" when
-building there tools. If that happens the NLS support can be disabled
-by adding the --disable-nls switch to the configure line like this:
-
- ../binutils-XXX/configure --disable-nls
-
-
-If you don't have ar
-====================
-
-If your system does not already have an 'ar' program, the normal
-binutils build process will not work. In this case, run configure as
-usual. Before running make, run this script:
-
-#!/bin/sh
-MAKE_PROG="${MAKE-make}"
-MAKE="${MAKE_PROG} AR=true LINK=true"
-export MAKE
-${MAKE} $* all-libiberty
-${MAKE} $* all-intl
-${MAKE} $* all-bfd
-cd binutils
-MAKE="${MAKE_PROG}"
-export MAKE
-${MAKE} $* ar_DEPENDENCIES= ar_LDADD='../bfd/*.o ../libiberty/*.o `if test -f ../intl/gettext.o; then echo '../intl/*.o'; fi`' ar
-
-This script will build an ar program in binutils/ar. Move binutils/ar
-into a directory on your PATH. After doing this, you can run make as
-usual to build the complete binutils distribution. You do not need
-the ranlib program in order to build the distribution.
-
-Porting
-=======
-
-Binutils-2.13 supports many different architectures, but there
-are many more not supported, including some that were supported
-by earlier versions. We are hoping for volunteers to improve this
-situation.
-
-The major effort in porting binutils to a new host and/or target
-architecture involves the BFD library. There is some documentation
-in ../bfd/doc. The file ../gdb/doc/gdbint.texinfo (distributed
-with gdb-5.x) may also be of help.
-
-Reporting bugs
-==============
-
-Send bug reports and patches to:
-
- bug-binutils@gnu.org.
-
-Please include the following in bug reports:
-
-- A description of exactly what went wrong, and exactly what should have
- happened instead.
-
-- The configuration name(s) given to the "configure" script. The
- "config.status" file should have this information. This is assuming
- you built binutils yourself. If you didn't build binutils youself,
- then we need information regarding your machine and operating system,
- and it may be more appropriate to report bugs to wherever you obtained
- binutils.
-
-- The options given to the tool (gas, objcopy, ld etc.) at run time.
-
-- The actual input file that caused the problem.
-
-Always mention the version number you are running; this is printed by
-running any of the binutils with the --version option. We appreciate
-reports about bugs, but we do not promise to fix them, particularly so
-when the bug report is against an old version. If you are able, please
-consider building the latest tools from CVS to check that your bug has
-not already been fixed.
-
-When reporting problems about gas and ld, it's useful to provide a
-testcase that triggers the problem. In the case of a gas problem, we
-want input files to gas and command line switches used. The inputs to
-gas are _NOT_ .c or .i files, but rather .s files. If your original
-source was a C program, you can generate the .s file and see the command
-line options by passing -v -save-temps to gcc in addition to all the
-usual options you use. The reason we don't want C files is that we
-might not have a C compiler around for the target you use. While it
-might be possible to build a compiler, that takes considerable time and
-disk space, and we might not end up with exactly the same compiler you
-use.
-
-In the case of a ld problem, the input files are .o, .a and .so files,
-and possibly a linker script specified with -T. Again, when using gcc
-to link, you can see these files by adding options to the gcc command
-line. Use -v -save-temps -Wl,-t, except that on targets that use gcc's
-collect2, you would add -v -save-temps -Wl,-t,-debug. The -t option
-tells ld to print all files and libraries used, so that, for example,
-you can associate -lc on the ld command line with the actual libc used.
-Note that your simple two line C program to trigger a problem typically
-expands into several megabytes of objects by the time you include
-libraries.
-
-It is antisocial to post megabyte sized attachments to mailing lists, so
-please put large testcases somewhere on an ftp or web site so that only
-interested developers need to download them, or offer to email them on
-request. Better still, try to reduce the testcase, for example, try to
-develop a ld testcase that doesn't use system libraries. However,
-please be sure it is a complete testcase and that it really does
-demonstrate the problem. Also, don't bother paring it down if that will
-cause large delays in filing the bug report.
-
-If you expect to be contributing a large number of test cases, it would
-be helpful if you would look at the test suite included in the release
-(based on the Deja Gnu testing framework, available from the usual ftp
-sites) and write test cases to fit into that framework. This is
-certainly not required.
-
-VMS
-===
-
-This section was written by Klaus K"ampf <kkaempf@rmi.de>. It
-describes how to build and install the binutils on openVMS (Alpha and
-Vax). (The BFD library only supports reading Vax object files.)
-
-Compiling the release:
-
-To compile the gnu binary utilities and the gnu assembler, you'll
-need DEC C or GNU C for openVMS/Alpha. You'll need *both* compilers
-on openVMS/Vax.
-
-Compiling with either DEC C or GNU C works on openVMS/Alpha only. Some
-of the opcodes and binutils files trap a bug in the DEC C optimizer,
-so these files must be compiled with /noopt.
-
-Compiling on openVMS/Vax is a bit complicated, as the bfd library traps
-a bug in GNU C and the gnu assembler a bug in (my version of) DEC C.
-
-I never tried compiling with VAX C.
-
-
-You further need GNU Make Version 3.76 or later. This is available
-at ftp.progis.de or any GNU archive site. The makefiles assume that
-gmake starts gnu make as a foreign command.
-
-If you're compiling with DEC C or VAX C, you must run
-
- $ @setup
-
-before starting gnu-make. This isn't needed with GNU C.
-
-On the Alpha you can choose the compiler by editing the toplevel
-makefile.vms. Either select CC=cc (for DEC C) or CC=gcc (for GNU C)
-
-
-Installing the release
-
-Provided that your directory setup conforms to the GNU on openVMS
-standard, you already have a concealed device named 'GNU_ROOT'.
-In this case, a simple
-
- $ gmake install
-
-suffices to copy all programs and libraries to the proper directories.
-
-Define the programs as foreign commands by adding these lines to your
-login.com:
-
- $ gas :== $GNU_ROOT:[bin]as.exe
- $ size :== $GNU_ROOT:[bin]size.exe
- $ nm :== $GNU_ROOT:[bin]nm.exe
- $ objdump :== $GNU_ROOT:[bin]objdump.exe
- $ strings :== $GNU_ROOT:[bin]strings.exe
-
-If you have a different directory setup, copy the binary utilities
-([.binutils]size.exe, [.binutils]nm.exe, [.binutils]objdump.exe,
-and [.binutils]strings.exe) and the gnu assembler and preprocessor
-([.gas]as.exe and [.gas]gasp.exe]) to a directory of your choice
-and define all programs as foreign commands.
-
-
-If you're satisfied with the compilation, you may want to remove
-unneeded objects and libraries:
-
- $ gmake clean
-
-
-If you have any problems or questions about the binutils on VMS, feel
-free to mail me at kkaempf@rmi.de.
diff --git a/binutils-2.17/binutils/acinclude.m4 b/binutils-2.17/binutils/acinclude.m4
deleted file mode 100644
index 71b09b9f..00000000
--- a/binutils-2.17/binutils/acinclude.m4
+++ /dev/null
@@ -1 +0,0 @@
-sinclude(../bfd/acinclude.m4)
diff --git a/binutils-2.17/binutils/aclocal.m4 b/binutils-2.17/binutils/aclocal.m4
deleted file mode 100644
index cd426733..00000000
--- a/binutils-2.17/binutils/aclocal.m4
+++ /dev/null
@@ -1,913 +0,0 @@
-# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005 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.
-
-# Copyright (C) 2002, 2003, 2005 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.
-
-# 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.6])])
-
-# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-
-# Copyright (C) 2001, 2003, 2005 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.
-
-# 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, 2005
-# 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.
-
-# serial 7
-
-# 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])])
-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# 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.
-
-# serial 8
-
-# 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, 2005
-# 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.
-
-#serial 3
-
-# _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"])
-])
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# 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.
-
-# serial 8
-
-# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
-AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
-
-# Do all the work for Automake. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# 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.
-
-# serial 12
-
-# 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.
-
-# 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])
-
-# Copyright (C) 2001, 2003, 2005 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.
-
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-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)])
-
-# Copyright (C) 2003, 2005 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.
-
-# serial 2
-
-# 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, 2005
-# 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.
-
-# serial 5
-
-# 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])
-
-# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
-# 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.
-
-# serial 4
-
-AC_DEFUN([AM_MAINTAINER_MODE],
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
- dnl maintainer-mode is disabled by default
- AC_ARG_ENABLE(maintainer-mode,
-[ --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer],
- USE_MAINTAINER_MODE=$enableval,
- USE_MAINTAINER_MODE=no)
- AC_MSG_RESULT([$USE_MAINTAINER_MODE])
- AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
- MAINT=$MAINTAINER_MODE_TRUE
- AC_SUBST(MAINT)dnl
-]
-)
-
-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-
-# Check to see how 'make' treats includes. -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003, 2005 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.
-
-# serial 3
-
-# 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
-])
-
-# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
-# 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.
-
-# serial 4
-
-# 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
-])
-
-# Copyright (C) 2003, 2004, 2005 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.
-
-# AM_PROG_MKDIR_P
-# ---------------
-# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-#
-# 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, 2005 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.
-
-# serial 3
-
-# _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. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# 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.
-
-# serial 4
-
-# 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)])
-
-# Copyright (C) 2001, 2003, 2005 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.
-
-# AM_PROG_INSTALL_STRIP
-# ---------------------
-# 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, 2005 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.
-
-# serial 2
-
-# _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([acinclude.m4])
diff --git a/binutils-2.17/binutils/addr2line.c b/binutils-2.17/binutils/addr2line.c
deleted file mode 100644
index 7cd67bc0..00000000
--- a/binutils-2.17/binutils/addr2line.c
+++ /dev/null
@@ -1,407 +0,0 @@
-/* addr2line.c -- convert addresses to line number and function name
- Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006
- Free Software Foundation, Inc.
- Contributed by Ulrich Lauther <Ulrich.Lauther@mchp.siemens.de>
-
- This file is part of GNU Binutils.
-
- 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, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Derived from objdump.c and nm.c by Ulrich.Lauther@mchp.siemens.de
-
- Usage:
- addr2line [options] addr addr ...
- or
- addr2line [options]
-
- both forms write results to stdout, the second form reads addresses
- to be converted from stdin. */
-
-#include "config.h"
-#include <string.h>
-
-#include "bfd.h"
-#include "getopt.h"
-#include "libiberty.h"
-#include "demangle.h"
-#include "bucomm.h"
-#include "budemang.h"
-
-static bfd_boolean unwind_inlines; /* -i, unwind inlined functions. */
-static bfd_boolean with_functions; /* -f, show function names. */
-static bfd_boolean do_demangle; /* -C, demangle names. */
-static bfd_boolean base_names; /* -s, strip directory names. */
-
-static int naddr; /* Number of addresses to process. */
-static char **addr; /* Hex addresses to process. */
-
-static asymbol **syms; /* Symbol table. */
-
-static struct option long_options[] =
-{
- {"basenames", no_argument, NULL, 's'},
- {"demangle", optional_argument, NULL, 'C'},
- {"exe", required_argument, NULL, 'e'},
- {"functions", no_argument, NULL, 'f'},
- {"inlines", no_argument, NULL, 'i'},
- {"section", required_argument, NULL, 'j'},
- {"target", required_argument, NULL, 'b'},
- {"help", no_argument, NULL, 'H'},
- {"version", no_argument, NULL, 'V'},
- {0, no_argument, 0, 0}
-};
-
-static void usage (FILE *, int);
-static void slurp_symtab (bfd *);
-static void find_address_in_section (bfd *, asection *, void *);
-static void find_offset_in_section (bfd *, asection *);
-static void translate_addresses (bfd *, asection *);
-static void process_file (const char *, const char *, const char *);
-
-/* Print a usage message to STREAM and exit with STATUS. */
-
-static void
-usage (FILE *stream, int status)
-{
- fprintf (stream, _("Usage: %s [option(s)] [addr(s)]\n"), program_name);
- fprintf (stream, _(" Convert addresses into line number/file name pairs.\n"));
- fprintf (stream, _(" If no addresses are specified on the command line, they will be read from stdin\n"));
- fprintf (stream, _(" The options are:\n\
- @<file> Read options from <file>\n\
- -b --target=<bfdname> Set the binary file format\n\
- -e --exe=<executable> Set the input file name (default is a.out)\n\
- -i --inlines Unwind inlined functions\n\
- -j --section=<name> Read section-relative offsets instead of addresses\n\
- -s --basenames Strip directory names\n\
- -f --functions Show function names\n\
- -C --demangle[=style] Demangle function names\n\
- -h --help Display this information\n\
- -v --version Display the program's version\n\
-\n"));
-
- list_supported_targets (program_name, stream);
- if (status == 0)
- fprintf (stream, _("Report bugs to %s\n"), REPORT_BUGS_TO);
- exit (status);
-}
-
-/* Read in the symbol table. */
-
-static void
-slurp_symtab (bfd *abfd)
-{
- long symcount;
- unsigned int size;
-
- if ((bfd_get_file_flags (abfd) & HAS_SYMS) == 0)
- return;
-
- symcount = bfd_read_minisymbols (abfd, FALSE, (void *) &syms, &size);
- if (symcount == 0)
- symcount = bfd_read_minisymbols (abfd, TRUE /* dynamic */, (void *) &syms, &size);
-
- if (symcount < 0)
- bfd_fatal (bfd_get_filename (abfd));
-}
-
-/* These global variables are used to pass information between
- translate_addresses and find_address_in_section. */
-
-static bfd_vma pc;
-static const char *filename;
-static const char *functionname;
-static unsigned int line;
-static bfd_boolean found;
-
-/* Look for an address in a section. This is called via
- bfd_map_over_sections. */
-
-static void
-find_address_in_section (bfd *abfd, asection *section,
- void *data ATTRIBUTE_UNUSED)
-{
- bfd_vma vma;
- bfd_size_type size;
-
- if (found)
- return;
-
- if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0)
- return;
-
- vma = bfd_get_section_vma (abfd, section);
- if (pc < vma)
- return;
-
- size = bfd_get_section_size (section);
- if (pc >= vma + size)
- return;
-
- found = bfd_find_nearest_line (abfd, section, syms, pc - vma,
- &filename, &functionname, &line);
-}
-
-/* Look for an offset in a section. This is directly called. */
-
-static void
-find_offset_in_section (bfd *abfd, asection *section)
-{
- bfd_size_type size;
-
- if (found)
- return;
-
- if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0)
- return;
-
- size = bfd_get_section_size (section);
- if (pc >= size)
- return;
-
- found = bfd_find_nearest_line (abfd, section, syms, pc,
- &filename, &functionname, &line);
-}
-
-/* Read hexadecimal addresses from stdin, translate into
- file_name:line_number and optionally function name. */
-
-static void
-translate_addresses (bfd *abfd, asection *section)
-{
- int read_stdin = (naddr == 0);
-
- for (;;)
- {
- if (read_stdin)
- {
- char addr_hex[100];
-
- if (fgets (addr_hex, sizeof addr_hex, stdin) == NULL)
- break;
- pc = bfd_scan_vma (addr_hex, NULL, 16);
- }
- else
- {
- if (naddr <= 0)
- break;
- --naddr;
- pc = bfd_scan_vma (*addr++, NULL, 16);
- }
-
- found = FALSE;
- if (section)
- find_offset_in_section (abfd, section);
- else
- bfd_map_over_sections (abfd, find_address_in_section, NULL);
-
- if (! found)
- {
- if (with_functions)
- printf ("??\n");
- printf ("??:0\n");
- }
- else
- {
- do {
- if (with_functions)
- {
- const char *name;
- char *alloc = NULL;
-
- name = functionname;
- if (name == NULL || *name == '\0')
- name = "??";
- else if (do_demangle)
- {
- alloc = demangle (abfd, name);
- name = alloc;
- }
-
- printf ("%s\n", name);
-
- if (alloc != NULL)
- free (alloc);
- }
-
- if (base_names && filename != NULL)
- {
- char *h;
-
- h = strrchr (filename, '/');
- if (h != NULL)
- filename = h + 1;
- }
-
- printf ("%s:%u\n", filename ? filename : "??", line);
- if (!unwind_inlines)
- found = FALSE;
- else
- found = bfd_find_inliner_info (abfd, &filename, &functionname, &line);
- } while (found);
-
- }
-
- /* fflush() is essential for using this command as a server
- child process that reads addresses from a pipe and responds
- with line number information, processing one address at a
- time. */
- fflush (stdout);
- }
-}
-
-/* Process a file. */
-
-static void
-process_file (const char *file_name, const char *section_name,
- const char *target)
-{
- bfd *abfd;
- asection *section;
- char **matching;
-
- if (get_file_size (file_name) < 1)
- return;
-
- abfd = bfd_openr (file_name, target);
- if (abfd == NULL)
- bfd_fatal (file_name);
-
- if (bfd_check_format (abfd, bfd_archive))
- fatal (_("%s: cannot get addresses from archive"), file_name);
-
- if (! bfd_check_format_matches (abfd, bfd_object, &matching))
- {
- bfd_nonfatal (bfd_get_filename (abfd));
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- {
- list_matching_formats (matching);
- free (matching);
- }
- xexit (1);
- }
-
- if (section_name != NULL)
- {
- section = bfd_get_section_by_name (abfd, section_name);
- if (section == NULL)
- fatal (_("%s: cannot find section %s"), file_name, section_name);
- }
- else
- section = NULL;
-
- slurp_symtab (abfd);
-
- translate_addresses (abfd, section);
-
- if (syms != NULL)
- {
- free (syms);
- syms = NULL;
- }
-
- bfd_close (abfd);
-}
-
-int
-main (int argc, char **argv)
-{
- const char *file_name;
- const char *section_name;
- char *target;
- int c;
-
-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- program_name = *argv;
- xmalloc_set_program_name (program_name);
-
- expandargv (&argc, &argv);
-
- bfd_init ();
- set_default_bfd_target ();
-
- file_name = NULL;
- section_name = NULL;
- target = NULL;
- while ((c = getopt_long (argc, argv, "b:Ce:sfHhij:Vv", long_options, (int *) 0))
- != EOF)
- {
- switch (c)
- {
- case 0:
- break; /* We've been given a long option. */
- case 'b':
- target = optarg;
- break;
- case 'C':
- do_demangle = TRUE;
- if (optarg != NULL)
- {
- enum demangling_styles style;
-
- style = cplus_demangle_name_to_style (optarg);
- if (style == unknown_demangling)
- fatal (_("unknown demangling style `%s'"),
- optarg);
-
- cplus_demangle_set_style (style);
- }
- break;
- case 'e':
- file_name = optarg;
- break;
- case 's':
- base_names = TRUE;
- break;
- case 'f':
- with_functions = TRUE;
- break;
- case 'v':
- case 'V':
- print_version ("addr2line");
- break;
- case 'h':
- case 'H':
- usage (stdout, 0);
- break;
- case 'i':
- unwind_inlines = TRUE;
- break;
- case 'j':
- section_name = optarg;
- break;
- default:
- usage (stderr, 1);
- break;
- }
- }
-
- if (file_name == NULL)
- file_name = "a.out";
-
- addr = argv + optind;
- naddr = argc - optind;
-
- process_file (file_name, section_name, target);
-
- return 0;
-}
diff --git a/binutils-2.17/binutils/ar.c b/binutils-2.17/binutils/ar.c
deleted file mode 100644
index fe1c6402..00000000
--- a/binutils-2.17/binutils/ar.c
+++ /dev/null
@@ -1,1263 +0,0 @@
-/* ar.c - Archive modify and extract.
- Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005
- Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/*
- Bugs: should use getopt the way tar does (complete w/optional -) and
- should have long options too. GNU ar used to check file against filesystem
- in quick_update and replace operations (would check mtime). Doesn't warn
- when name truncated. No way to specify pos_end. Error messages should be
- more consistent. */
-
-#include "bfd.h"
-#include "libiberty.h"
-#include "progress.h"
-#include "bucomm.h"
-#include "aout/ar.h"
-#include "libbfd.h"
-#include "arsup.h"
-#include "filenames.h"
-#include "binemul.h"
-#include <sys/stat.h>
-
-#ifdef __GO32___
-#define EXT_NAME_LEN 3 /* bufflen of addition to name if it's MS-DOS */
-#else
-#define EXT_NAME_LEN 6 /* ditto for *NIX */
-#endif
-
-/* We need to open files in binary modes on system where that makes a
- difference. */
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-/* Kludge declaration from BFD! This is ugly! FIXME! XXX */
-
-struct ar_hdr *
- bfd_special_undocumented_glue (bfd * abfd, const char *filename);
-
-/* Static declarations */
-
-static void mri_emul (void);
-static const char *normalize (const char *, bfd *);
-static void remove_output (void);
-static void map_over_members (bfd *, void (*)(bfd *), char **, int);
-static void print_contents (bfd * member);
-static void delete_members (bfd *, char **files_to_delete);
-
-static void move_members (bfd *, char **files_to_move);
-static void replace_members
- (bfd *, char **files_to_replace, bfd_boolean quick);
-static void print_descr (bfd * abfd);
-static void write_archive (bfd *);
-static void ranlib_only (const char *archname);
-static void ranlib_touch (const char *archname);
-static void usage (int);
-
-/** Globals and flags */
-
-static int mri_mode;
-
-/* This flag distinguishes between ar and ranlib:
- 1 means this is 'ranlib'; 0 means this is 'ar'.
- -1 means if we should use argv[0] to decide. */
-extern int is_ranlib;
-
-/* Nonzero means don't warn about creating the archive file if necessary. */
-int silent_create = 0;
-
-/* Nonzero means describe each action performed. */
-int verbose = 0;
-
-/* Nonzero means preserve dates of members when extracting them. */
-int preserve_dates = 0;
-
-/* Nonzero means don't replace existing members whose dates are more recent
- than the corresponding files. */
-int newer_only = 0;
-
-/* Controls the writing of an archive symbol table (in BSD: a __.SYMDEF
- member). -1 means we've been explicitly asked to not write a symbol table;
- +1 means we've been explicitly asked to write it;
- 0 is the default.
- Traditionally, the default in BSD has been to not write the table.
- However, for POSIX.2 compliance the default is now to write a symbol table
- if any of the members are object files. */
-int write_armap = 0;
-
-/* Nonzero means it's the name of an existing member; position new or moved
- files with respect to this one. */
-char *posname = NULL;
-
-/* Sez how to use `posname': pos_before means position before that member.
- pos_after means position after that member. pos_end means always at end.
- pos_default means default appropriately. For the latter two, `posname'
- should also be zero. */
-enum pos
- {
- pos_default, pos_before, pos_after, pos_end
- } postype = pos_default;
-
-static bfd **
-get_pos_bfd (bfd **, enum pos, const char *);
-
-/* For extract/delete only. If COUNTED_NAME_MODE is TRUE, we only
- extract the COUNTED_NAME_COUNTER instance of that name. */
-static bfd_boolean counted_name_mode = 0;
-static int counted_name_counter = 0;
-
-/* Whether to truncate names of files stored in the archive. */
-static bfd_boolean ar_truncate = FALSE;
-
-/* Whether to use a full file name match when searching an archive.
- This is convenient for archives created by the Microsoft lib
- program. */
-static bfd_boolean full_pathname = FALSE;
-
-int interactive = 0;
-
-static void
-mri_emul (void)
-{
- interactive = isatty (fileno (stdin));
- yyparse ();
-}
-
-/* If COUNT is 0, then FUNCTION is called once on each entry. If nonzero,
- COUNT is the length of the FILES chain; FUNCTION is called on each entry
- whose name matches one in FILES. */
-
-static void
-map_over_members (bfd *arch, void (*function)(bfd *), char **files, int count)
-{
- bfd *head;
- int match_count;
-
- if (count == 0)
- {
- for (head = arch->next; head; head = head->next)
- {
- PROGRESS (1);
- function (head);
- }
- return;
- }
-
- /* This may appear to be a baroque way of accomplishing what we want.
- However we have to iterate over the filenames in order to notice where
- a filename is requested but does not exist in the archive. Ditto
- mapping over each file each time -- we want to hack multiple
- references. */
-
- for (; count > 0; files++, count--)
- {
- bfd_boolean found = FALSE;
-
- match_count = 0;
- for (head = arch->next; head; head = head->next)
- {
- PROGRESS (1);
- if (head->filename == NULL)
- {
- /* Some archive formats don't get the filenames filled in
- until the elements are opened. */
- struct stat buf;
- bfd_stat_arch_elt (head, &buf);
- }
- if ((head->filename != NULL) &&
- (!FILENAME_CMP (normalize (*files, arch), head->filename)))
- {
- ++match_count;
- if (counted_name_mode
- && match_count != counted_name_counter)
- {
- /* Counting, and didn't match on count; go on to the
- next one. */
- continue;
- }
-
- found = TRUE;
- function (head);
- }
- }
- if (!found)
- /* xgettext:c-format */
- fprintf (stderr, _("no entry %s in archive\n"), *files);
- }
-}
-
-bfd_boolean operation_alters_arch = FALSE;
-
-static void
-usage (int help)
-{
- FILE *s;
-
- s = help ? stdout : stderr;
-
- if (! is_ranlib)
- {
- /* xgettext:c-format */
- fprintf (s, _("Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"),
- program_name);
- /* xgettext:c-format */
- fprintf (s, _(" %s -M [<mri-script]\n"), program_name);
- fprintf (s, _(" commands:\n"));
- fprintf (s, _(" d - delete file(s) from the archive\n"));
- fprintf (s, _(" m[ab] - move file(s) in the archive\n"));
- fprintf (s, _(" p - print file(s) found in the archive\n"));
- fprintf (s, _(" q[f] - quick append file(s) to the archive\n"));
- fprintf (s, _(" r[ab][f][u] - replace existing or insert new file(s) into the archive\n"));
- fprintf (s, _(" t - display contents of archive\n"));
- fprintf (s, _(" x[o] - extract file(s) from the archive\n"));
- fprintf (s, _(" command specific modifiers:\n"));
- fprintf (s, _(" [a] - put file(s) after [member-name]\n"));
- fprintf (s, _(" [b] - put file(s) before [member-name] (same as [i])\n"));
- fprintf (s, _(" [N] - use instance [count] of name\n"));
- fprintf (s, _(" [f] - truncate inserted file names\n"));
- fprintf (s, _(" [P] - use full path names when matching\n"));
- fprintf (s, _(" [o] - preserve original dates\n"));
- fprintf (s, _(" [u] - only replace files that are newer than current archive contents\n"));
- fprintf (s, _(" generic modifiers:\n"));
- fprintf (s, _(" [c] - do not warn if the library had to be created\n"));
- fprintf (s, _(" [s] - create an archive index (cf. ranlib)\n"));
- fprintf (s, _(" [S] - do not build a symbol table\n"));
- fprintf (s, _(" [v] - be verbose\n"));
- fprintf (s, _(" [V] - display the version number\n"));
- fprintf (s, _(" @<file> - read options from <file>\n"));
-
- ar_emul_usage (s);
- }
- else
- {
- /* xgettext:c-format */
- fprintf (s, _("Usage: %s [options] archive\n"), program_name);
- fprintf (s, _(" Generate an index to speed access to archives\n"));
- fprintf (s, _(" The options are:\n\
- @<file> Read options from <file>\n\
- -h --help Print this help message\n\
- -V --version Print version information\n"));
- }
-
- list_supported_targets (program_name, stderr);
-
- if (help)
- fprintf (s, _("Report bugs to %s\n"), REPORT_BUGS_TO);
-
- xexit (help ? 0 : 1);
-}
-
-/* Normalize a file name specified on the command line into a file
- name which we will use in an archive. */
-
-static const char *
-normalize (const char *file, bfd *abfd)
-{
- const char *filename;
-
- if (full_pathname)
- return file;
-
- filename = strrchr (file, '/');
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- {
- /* We could have foo/bar\\baz, or foo\\bar, or d:bar. */
- char *bslash = strrchr (file, '\\');
- if (filename == NULL || (bslash != NULL && bslash > filename))
- filename = bslash;
- if (filename == NULL && file[0] != '\0' && file[1] == ':')
- filename = file + 1;
- }
-#endif
- if (filename != (char *) NULL)
- filename++;
- else
- filename = file;
-
- if (ar_truncate
- && abfd != NULL
- && strlen (filename) > abfd->xvec->ar_max_namelen)
- {
- char *s;
-
- /* Space leak. */
- s = (char *) xmalloc (abfd->xvec->ar_max_namelen + 1);
- memcpy (s, filename, abfd->xvec->ar_max_namelen);
- s[abfd->xvec->ar_max_namelen] = '\0';
- filename = s;
- }
-
- return filename;
-}
-
-/* Remove any output file. This is only called via xatexit. */
-
-static const char *output_filename = NULL;
-static FILE *output_file = NULL;
-static bfd *output_bfd = NULL;
-
-static void
-remove_output (void)
-{
- if (output_filename != NULL)
- {
- if (output_bfd != NULL)
- bfd_cache_close (output_bfd);
- if (output_file != NULL)
- fclose (output_file);
- unlink_if_ordinary (output_filename);
- }
-}
-
-/* The option parsing should be in its own function.
- It will be when I have getopt working. */
-
-int main (int, char **);
-
-int
-main (int argc, char **argv)
-{
- char *arg_ptr;
- char c;
- enum
- {
- none = 0, delete, replace, print_table,
- print_files, extract, move, quick_append
- } operation = none;
- int arg_index;
- char **files;
- int file_count;
- char *inarch_filename;
- int show_version;
- int i;
- int do_posix = 0;
-
-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- program_name = argv[0];
- xmalloc_set_program_name (program_name);
-
- expandargv (&argc, &argv);
-
- if (is_ranlib < 0)
- {
- char *temp;
-
- temp = strrchr (program_name, '/');
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- {
- /* We could have foo/bar\\baz, or foo\\bar, or d:bar. */
- char *bslash = strrchr (program_name, '\\');
- if (temp == NULL || (bslash != NULL && bslash > temp))
- temp = bslash;
- if (temp == NULL && program_name[0] != '\0' && program_name[1] == ':')
- temp = program_name + 1;
- }
-#endif
- if (temp == NULL)
- temp = program_name;
- else
- ++temp;
- if (strlen (temp) >= 6
- && FILENAME_CMP (temp + strlen (temp) - 6, "ranlib") == 0)
- is_ranlib = 1;
- else
- is_ranlib = 0;
- }
-
- if (argc > 1 && argv[1][0] == '-')
- {
- if (strcmp (argv[1], "--help") == 0)
- usage (1);
- else if (strcmp (argv[1], "--version") == 0)
- {
- if (is_ranlib)
- print_version ("ranlib");
- else
- print_version ("ar");
- }
- }
-
- START_PROGRESS (program_name, 0);
-
- bfd_init ();
- set_default_bfd_target ();
-
- show_version = 0;
-
- xatexit (remove_output);
-
- for (i = 1; i < argc; i++)
- if (! ar_emul_parse_arg (argv[i]))
- break;
- argv += (i - 1);
- argc -= (i - 1);
-
- if (is_ranlib)
- {
- bfd_boolean touch = FALSE;
-
- if (argc < 2
- || strcmp (argv[1], "--help") == 0
- || strcmp (argv[1], "-h") == 0
- || strcmp (argv[1], "-H") == 0)
- usage (0);
- if (strcmp (argv[1], "-V") == 0
- || strcmp (argv[1], "-v") == 0
- || strncmp (argv[1], "--v", 3) == 0)
- print_version ("ranlib");
- arg_index = 1;
- if (strcmp (argv[1], "-t") == 0)
- {
- ++arg_index;
- touch = TRUE;
- }
- while (arg_index < argc)
- {
- if (! touch)
- ranlib_only (argv[arg_index]);
- else
- ranlib_touch (argv[arg_index]);
- ++arg_index;
- }
- xexit (0);
- }
-
- if (argc == 2 && strcmp (argv[1], "-M") == 0)
- {
- mri_emul ();
- xexit (0);
- }
-
- if (argc < 2)
- usage (0);
-
- arg_index = 1;
- arg_ptr = argv[arg_index];
-
- if (*arg_ptr == '-')
- {
- /* When the first option starts with '-' we support POSIX-compatible
- option parsing. */
- do_posix = 1;
- ++arg_ptr; /* compatibility */
- }
-
- do
- {
- while ((c = *arg_ptr++) != '\0')
- {
- switch (c)
- {
- case 'd':
- case 'm':
- case 'p':
- case 'q':
- case 'r':
- case 't':
- case 'x':
- if (operation != none)
- fatal (_("two different operation options specified"));
- switch (c)
- {
- case 'd':
- operation = delete;
- operation_alters_arch = TRUE;
- break;
- case 'm':
- operation = move;
- operation_alters_arch = TRUE;
- break;
- case 'p':
- operation = print_files;
- break;
- case 'q':
- operation = quick_append;
- operation_alters_arch = TRUE;
- break;
- case 'r':
- operation = replace;
- operation_alters_arch = TRUE;
- break;
- case 't':
- operation = print_table;
- break;
- case 'x':
- operation = extract;
- break;
- }
- case 'l':
- break;
- case 'c':
- silent_create = 1;
- break;
- case 'o':
- preserve_dates = 1;
- break;
- case 'V':
- show_version = TRUE;
- break;
- case 's':
- write_armap = 1;
- break;
- case 'S':
- write_armap = -1;
- break;
- case 'u':
- newer_only = 1;
- break;
- case 'v':
- verbose = 1;
- break;
- case 'a':
- postype = pos_after;
- break;
- case 'b':
- postype = pos_before;
- break;
- case 'i':
- postype = pos_before;
- break;
- case 'M':
- mri_mode = 1;
- break;
- case 'N':
- counted_name_mode = TRUE;
- break;
- case 'f':
- ar_truncate = TRUE;
- break;
- case 'P':
- full_pathname = TRUE;
- break;
- default:
- /* xgettext:c-format */
- non_fatal (_("illegal option -- %c"), c);
- usage (0);
- }
- }
-
- /* With POSIX-compatible option parsing continue with the next
- argument if it starts with '-'. */
- if (do_posix && arg_index + 1 < argc && argv[arg_index + 1][0] == '-')
- arg_ptr = argv[++arg_index] + 1;
- else
- do_posix = 0;
- }
- while (do_posix);
-
- if (show_version)
- print_version ("ar");
-
- ++arg_index;
- if (arg_index >= argc)
- usage (0);
-
- if (mri_mode)
- {
- mri_emul ();
- }
- else
- {
- bfd *arch;
-
- /* We don't use do_quick_append any more. Too many systems
- expect ar to always rebuild the symbol table even when q is
- used. */
-
- /* We can't write an armap when using ar q, so just do ar r
- instead. */
- if (operation == quick_append && write_armap)
- operation = replace;
-
- if ((operation == none || operation == print_table)
- && write_armap == 1)
- {
- ranlib_only (argv[arg_index]);
- xexit (0);
- }
-
- if (operation == none)
- fatal (_("no operation specified"));
-
- if (newer_only && operation != replace)
- fatal (_("`u' is only meaningful with the `r' option."));
-
- if (postype != pos_default)
- posname = argv[arg_index++];
-
- if (counted_name_mode)
- {
- if (operation != extract && operation != delete)
- fatal (_("`N' is only meaningful with the `x' and `d' options."));
- counted_name_counter = atoi (argv[arg_index++]);
- if (counted_name_counter <= 0)
- fatal (_("Value for `N' must be positive."));
- }
-
- inarch_filename = argv[arg_index++];
-
- files = arg_index < argc ? argv + arg_index : NULL;
- file_count = argc - arg_index;
-
- arch = open_inarch (inarch_filename,
- files == NULL ? (char *) NULL : files[0]);
-
- switch (operation)
- {
- case print_table:
- map_over_members (arch, print_descr, files, file_count);
- break;
-
- case print_files:
- map_over_members (arch, print_contents, files, file_count);
- break;
-
- case extract:
- map_over_members (arch, extract_file, files, file_count);
- break;
-
- case delete:
- if (files != NULL)
- delete_members (arch, files);
- else
- output_filename = NULL;
- break;
-
- case move:
- if (files != NULL)
- move_members (arch, files);
- else
- output_filename = NULL;
- break;
-
- case replace:
- case quick_append:
- if (files != NULL || write_armap > 0)
- replace_members (arch, files, operation == quick_append);
- else
- output_filename = NULL;
- break;
-
- /* Shouldn't happen! */
- default:
- /* xgettext:c-format */
- fatal (_("internal error -- this option not implemented"));
- }
- }
-
- END_PROGRESS (program_name);
-
- xexit (0);
- return 0;
-}
-
-bfd *
-open_inarch (const char *archive_filename, const char *file)
-{
- const char *target;
- bfd **last_one;
- bfd *next_one;
- struct stat sbuf;
- bfd *arch;
- char **matching;
-
- bfd_set_error (bfd_error_no_error);
-
- target = NULL;
-
- if (stat (archive_filename, &sbuf) != 0)
- {
-#if !defined(__GO32__) || defined(__DJGPP__)
-
- /* FIXME: I don't understand why this fragment was ifndef'ed
- away for __GO32__; perhaps it was in the days of DJGPP v1.x.
- stat() works just fine in v2.x, so I think this should be
- removed. For now, I enable it for DJGPP v2. -- EZ. */
-
-/* KLUDGE ALERT! Temporary fix until I figger why
- stat() is wrong ... think it's buried in GO32's IDT - Jax */
- if (errno != ENOENT)
- bfd_fatal (archive_filename);
-#endif
-
- if (!operation_alters_arch)
- {
- fprintf (stderr, "%s: ", program_name);
- perror (archive_filename);
- maybequit ();
- return NULL;
- }
-
- /* Try to figure out the target to use for the archive from the
- first object on the list. */
- if (file != NULL)
- {
- bfd *obj;
-
- obj = bfd_openr (file, NULL);
- if (obj != NULL)
- {
- if (bfd_check_format (obj, bfd_object))
- target = bfd_get_target (obj);
- (void) bfd_close (obj);
- }
- }
-
- /* Create an empty archive. */
- arch = bfd_openw (archive_filename, target);
- if (arch == NULL
- || ! bfd_set_format (arch, bfd_archive)
- || ! bfd_close (arch))
- bfd_fatal (archive_filename);
- else if (!silent_create)
- non_fatal (_("creating %s"), archive_filename);
-
- /* If we die creating a new archive, don't leave it around. */
- output_filename = archive_filename;
- }
-
- arch = bfd_openr (archive_filename, target);
- if (arch == NULL)
- {
- bloser:
- bfd_fatal (archive_filename);
- }
-
- if (! bfd_check_format_matches (arch, bfd_archive, &matching))
- {
- bfd_nonfatal (archive_filename);
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- {
- list_matching_formats (matching);
- free (matching);
- }
- xexit (1);
- }
-
- last_one = &(arch->next);
- /* Read all the contents right away, regardless. */
- for (next_one = bfd_openr_next_archived_file (arch, NULL);
- next_one;
- next_one = bfd_openr_next_archived_file (arch, next_one))
- {
- PROGRESS (1);
- *last_one = next_one;
- last_one = &next_one->next;
- }
- *last_one = (bfd *) NULL;
- if (bfd_get_error () != bfd_error_no_more_archived_files)
- goto bloser;
- return arch;
-}
-
-static void
-print_contents (bfd *abfd)
-{
- int ncopied = 0;
- char *cbuf = xmalloc (BUFSIZE);
- struct stat buf;
- long size;
- if (bfd_stat_arch_elt (abfd, &buf) != 0)
- /* xgettext:c-format */
- fatal (_("internal stat error on %s"), bfd_get_filename (abfd));
-
- if (verbose)
- /* xgettext:c-format */
- printf (_("\n<%s>\n\n"), bfd_get_filename (abfd));
-
- bfd_seek (abfd, (file_ptr) 0, SEEK_SET);
-
- size = buf.st_size;
- while (ncopied < size)
- {
-
- int nread;
- int tocopy = size - ncopied;
- if (tocopy > BUFSIZE)
- tocopy = BUFSIZE;
-
- nread = bfd_bread (cbuf, (bfd_size_type) tocopy, abfd);
- if (nread != tocopy)
- /* xgettext:c-format */
- fatal (_("%s is not a valid archive"),
- bfd_get_filename (bfd_my_archive (abfd)));
- fwrite (cbuf, 1, nread, stdout);
- ncopied += tocopy;
- }
- free (cbuf);
-}
-
-/* Extract a member of the archive into its own file.
-
- We defer opening the new file until after we have read a BUFSIZ chunk of the
- old one, since we know we have just read the archive header for the old
- one. Since most members are shorter than BUFSIZ, this means we will read
- the old header, read the old data, write a new inode for the new file, and
- write the new data, and be done. This 'optimization' is what comes from
- sitting next to a bare disk and hearing it every time it seeks. -- Gnu
- Gilmore */
-
-void
-extract_file (bfd *abfd)
-{
- FILE *ostream;
- char *cbuf = xmalloc (BUFSIZE);
- int nread, tocopy;
- long ncopied = 0;
- long size;
- struct stat buf;
-
- if (bfd_stat_arch_elt (abfd, &buf) != 0)
- /* xgettext:c-format */
- fatal (_("internal stat error on %s"), bfd_get_filename (abfd));
- size = buf.st_size;
-
- if (size < 0)
- /* xgettext:c-format */
- fatal (_("stat returns negative size for %s"), bfd_get_filename (abfd));
-
- if (verbose)
- printf ("x - %s\n", bfd_get_filename (abfd));
-
- bfd_seek (abfd, (file_ptr) 0, SEEK_SET);
-
- ostream = NULL;
- if (size == 0)
- {
- /* Seems like an abstraction violation, eh? Well it's OK! */
- output_filename = bfd_get_filename (abfd);
-
- ostream = fopen (bfd_get_filename (abfd), FOPEN_WB);
- if (ostream == NULL)
- {
- perror (bfd_get_filename (abfd));
- xexit (1);
- }
-
- output_file = ostream;
- }
- else
- while (ncopied < size)
- {
- tocopy = size - ncopied;
- if (tocopy > BUFSIZE)
- tocopy = BUFSIZE;
-
- nread = bfd_bread (cbuf, (bfd_size_type) tocopy, abfd);
- if (nread != tocopy)
- /* xgettext:c-format */
- fatal (_("%s is not a valid archive"),
- bfd_get_filename (bfd_my_archive (abfd)));
-
- /* See comment above; this saves disk arm motion */
- if (ostream == NULL)
- {
- /* Seems like an abstraction violation, eh? Well it's OK! */
- output_filename = bfd_get_filename (abfd);
-
- ostream = fopen (bfd_get_filename (abfd), FOPEN_WB);
- if (ostream == NULL)
- {
- perror (bfd_get_filename (abfd));
- xexit (1);
- }
-
- output_file = ostream;
- }
- fwrite (cbuf, 1, nread, ostream);
- ncopied += tocopy;
- }
-
- if (ostream != NULL)
- fclose (ostream);
-
- output_file = NULL;
- output_filename = NULL;
-
- chmod (bfd_get_filename (abfd), buf.st_mode);
-
- if (preserve_dates)
- {
- /* Set access time to modification time. Only st_mtime is
- initialized by bfd_stat_arch_elt. */
- buf.st_atime = buf.st_mtime;
- set_times (bfd_get_filename (abfd), &buf);
- }
-
- free (cbuf);
-}
-
-static void
-write_archive (bfd *iarch)
-{
- bfd *obfd;
- char *old_name, *new_name;
- bfd *contents_head = iarch->next;
-
- old_name = xmalloc (strlen (bfd_get_filename (iarch)) + 1);
- strcpy (old_name, bfd_get_filename (iarch));
- new_name = make_tempname (old_name);
-
- output_filename = new_name;
-
- obfd = bfd_openw (new_name, bfd_get_target (iarch));
-
- if (obfd == NULL)
- bfd_fatal (old_name);
-
- output_bfd = obfd;
-
- bfd_set_format (obfd, bfd_archive);
-
- /* Request writing the archive symbol table unless we've
- been explicitly requested not to. */
- obfd->has_armap = write_armap >= 0;
-
- if (ar_truncate)
- {
- /* This should really use bfd_set_file_flags, but that rejects
- archives. */
- obfd->flags |= BFD_TRADITIONAL_FORMAT;
- }
-
- if (!bfd_set_archive_head (obfd, contents_head))
- bfd_fatal (old_name);
-
- if (!bfd_close (obfd))
- bfd_fatal (old_name);
-
- output_bfd = NULL;
- output_filename = NULL;
-
- /* We don't care if this fails; we might be creating the archive. */
- bfd_close (iarch);
-
- if (smart_rename (new_name, old_name, 0) != 0)
- xexit (1);
-}
-
-/* Return a pointer to the pointer to the entry which should be rplacd'd
- into when altering. DEFAULT_POS should be how to interpret pos_default,
- and should be a pos value. */
-
-static bfd **
-get_pos_bfd (bfd **contents, enum pos default_pos, const char *default_posname)
-{
- bfd **after_bfd = contents;
- enum pos realpos;
- const char *realposname;
-
- if (postype == pos_default)
- {
- realpos = default_pos;
- realposname = default_posname;
- }
- else
- {
- realpos = postype;
- realposname = posname;
- }
-
- if (realpos == pos_end)
- {
- while (*after_bfd)
- after_bfd = &((*after_bfd)->next);
- }
- else
- {
- for (; *after_bfd; after_bfd = &(*after_bfd)->next)
- if (FILENAME_CMP ((*after_bfd)->filename, realposname) == 0)
- {
- if (realpos == pos_after)
- after_bfd = &(*after_bfd)->next;
- break;
- }
- }
- return after_bfd;
-}
-
-static void
-delete_members (bfd *arch, char **files_to_delete)
-{
- bfd **current_ptr_ptr;
- bfd_boolean found;
- bfd_boolean something_changed = FALSE;
- int match_count;
-
- for (; *files_to_delete != NULL; ++files_to_delete)
- {
- /* In a.out systems, the armap is optional. It's also called
- __.SYMDEF. So if the user asked to delete it, we should remember
- that fact. This isn't quite right for COFF systems (where
- __.SYMDEF might be regular member), but it's very unlikely
- to be a problem. FIXME */
-
- if (!strcmp (*files_to_delete, "__.SYMDEF"))
- {
- arch->has_armap = FALSE;
- write_armap = -1;
- continue;
- }
-
- found = FALSE;
- match_count = 0;
- current_ptr_ptr = &(arch->next);
- while (*current_ptr_ptr)
- {
- if (FILENAME_CMP (normalize (*files_to_delete, arch),
- (*current_ptr_ptr)->filename) == 0)
- {
- ++match_count;
- if (counted_name_mode
- && match_count != counted_name_counter)
- {
- /* Counting, and didn't match on count; go on to the
- next one. */
- }
- else
- {
- found = TRUE;
- something_changed = TRUE;
- if (verbose)
- printf ("d - %s\n",
- *files_to_delete);
- *current_ptr_ptr = ((*current_ptr_ptr)->next);
- goto next_file;
- }
- }
-
- current_ptr_ptr = &((*current_ptr_ptr)->next);
- }
-
- if (verbose && !found)
- {
- /* xgettext:c-format */
- printf (_("No member named `%s'\n"), *files_to_delete);
- }
- next_file:
- ;
- }
-
- if (something_changed)
- write_archive (arch);
- else
- output_filename = NULL;
-}
-
-
-/* Reposition existing members within an archive */
-
-static void
-move_members (bfd *arch, char **files_to_move)
-{
- bfd **after_bfd; /* New entries go after this one */
- bfd **current_ptr_ptr; /* cdr pointer into contents */
-
- for (; *files_to_move; ++files_to_move)
- {
- current_ptr_ptr = &(arch->next);
- while (*current_ptr_ptr)
- {
- bfd *current_ptr = *current_ptr_ptr;
- if (FILENAME_CMP (normalize (*files_to_move, arch),
- current_ptr->filename) == 0)
- {
- /* Move this file to the end of the list - first cut from
- where it is. */
- bfd *link;
- *current_ptr_ptr = current_ptr->next;
-
- /* Now glue to end */
- after_bfd = get_pos_bfd (&arch->next, pos_end, NULL);
- link = *after_bfd;
- *after_bfd = current_ptr;
- current_ptr->next = link;
-
- if (verbose)
- printf ("m - %s\n", *files_to_move);
-
- goto next_file;
- }
-
- current_ptr_ptr = &((*current_ptr_ptr)->next);
- }
- /* xgettext:c-format */
- fatal (_("no entry %s in archive %s!"), *files_to_move, arch->filename);
-
- next_file:;
- }
-
- write_archive (arch);
-}
-
-/* Ought to default to replacing in place, but this is existing practice! */
-
-static void
-replace_members (bfd *arch, char **files_to_move, bfd_boolean quick)
-{
- bfd_boolean changed = FALSE;
- bfd **after_bfd; /* New entries go after this one. */
- bfd *current;
- bfd **current_ptr;
-
- while (files_to_move && *files_to_move)
- {
- if (! quick)
- {
- current_ptr = &arch->next;
- while (*current_ptr)
- {
- current = *current_ptr;
-
- /* For compatibility with existing ar programs, we
- permit the same file to be added multiple times. */
- if (FILENAME_CMP (normalize (*files_to_move, arch),
- normalize (current->filename, arch)) == 0
- && current->arelt_data != NULL)
- {
- if (newer_only)
- {
- struct stat fsbuf, asbuf;
-
- if (stat (*files_to_move, &fsbuf) != 0)
- {
- if (errno != ENOENT)
- bfd_fatal (*files_to_move);
- goto next_file;
- }
- if (bfd_stat_arch_elt (current, &asbuf) != 0)
- /* xgettext:c-format */
- fatal (_("internal stat error on %s"),
- current->filename);
-
- if (fsbuf.st_mtime <= asbuf.st_mtime)
- goto next_file;
- }
-
- after_bfd = get_pos_bfd (&arch->next, pos_after,
- current->filename);
- if (ar_emul_replace (after_bfd, *files_to_move,
- verbose))
- {
- /* Snip out this entry from the chain. */
- *current_ptr = (*current_ptr)->next;
- changed = TRUE;
- }
-
- goto next_file;
- }
- current_ptr = &(current->next);
- }
- }
-
- /* Add to the end of the archive. */
- after_bfd = get_pos_bfd (&arch->next, pos_end, NULL);
-
- if (ar_emul_append (after_bfd, *files_to_move, verbose))
- changed = TRUE;
-
- next_file:;
-
- files_to_move++;
- }
-
- if (changed)
- write_archive (arch);
- else
- output_filename = NULL;
-}
-
-static void
-ranlib_only (const char *archname)
-{
- bfd *arch;
-
- if (get_file_size (archname) < 1)
- return;
- write_armap = 1;
- arch = open_inarch (archname, (char *) NULL);
- if (arch == NULL)
- xexit (1);
- write_archive (arch);
-}
-
-/* Update the timestamp of the symbol map of an archive. */
-
-static void
-ranlib_touch (const char *archname)
-{
-#ifdef __GO32__
- /* I don't think updating works on go32. */
- ranlib_only (archname);
-#else
- int f;
- bfd *arch;
- char **matching;
-
- if (get_file_size (archname) < 1)
- return;
- f = open (archname, O_RDWR | O_BINARY, 0);
- if (f < 0)
- {
- bfd_set_error (bfd_error_system_call);
- bfd_fatal (archname);
- }
-
- arch = bfd_fdopenr (archname, (const char *) NULL, f);
- if (arch == NULL)
- bfd_fatal (archname);
- if (! bfd_check_format_matches (arch, bfd_archive, &matching))
- {
- bfd_nonfatal (archname);
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- {
- list_matching_formats (matching);
- free (matching);
- }
- xexit (1);
- }
-
- if (! bfd_has_map (arch))
- /* xgettext:c-format */
- fatal (_("%s: no archive map to update"), archname);
-
- bfd_update_armap_timestamp (arch);
-
- if (! bfd_close (arch))
- bfd_fatal (archname);
-#endif
-}
-
-/* Things which are interesting to map over all or some of the files: */
-
-static void
-print_descr (bfd *abfd)
-{
- print_arelt_descr (stdout, abfd, verbose);
-}
diff --git a/binutils-2.17/binutils/arlex.c b/binutils-2.17/binutils/arlex.c
deleted file mode 100644
index cd9bd52d..00000000
--- a/binutils-2.17/binutils/arlex.c
+++ /dev/null
@@ -1,1856 +0,0 @@
-/* A lexical scanner generated by flex */
-
-/* Scanner skeleton version:
- * $Header: /cvs/src/src/binutils/Attic/arlex.c,v 1.1.16.1 2006/04/16 18:36:40 drow Exp $
- */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-
-#include <stdio.h>
-#include <errno.h>
-
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
-#endif
-
-
-#ifdef __cplusplus
-
-#include <stdlib.h>
-#ifndef _WIN32
-#include <unistd.h>
-#endif
-
-/* 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)
-
-typedef unsigned char YY_CHAR;
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-typedef int yy_state_type;
-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 40
-#define YY_END_OF_BUFFER 41
-static yyconst short int yy_accept[177] =
- { 0,
- 0, 0, 41, 40, 39, 38, 35, 32, 33, 36,
- 40, 34, 37, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 36, 31, 37, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 7, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 22, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
-
- 35, 35, 35, 10, 11, 12, 35, 15, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 25, 26, 27,
- 35, 30, 35, 35, 35, 3, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 18, 35, 35, 35, 35,
- 35, 35, 35, 1, 2, 4, 5, 35, 35, 35,
- 35, 35, 16, 17, 19, 20, 35, 35, 35, 35,
- 35, 35, 8, 9, 13, 14, 35, 23, 24, 28,
- 29, 35, 35, 6, 21, 0
- } ;
-
-static yyconst int yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 3, 1, 1, 1, 4, 1, 1, 1, 5,
- 6, 7, 8, 9, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 10, 1,
- 1, 1, 1, 1, 11, 12, 13, 14, 15, 16,
- 4, 17, 18, 4, 4, 19, 20, 21, 22, 23,
- 4, 24, 25, 26, 27, 28, 4, 29, 30, 4,
- 1, 4, 1, 1, 4, 1, 31, 32, 33, 34,
-
- 35, 36, 4, 37, 38, 4, 4, 39, 40, 41,
- 42, 43, 4, 44, 45, 46, 47, 48, 4, 49,
- 50, 4, 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, 1, 1, 1, 1
- } ;
-
-static yyconst int yy_meta[51] =
- { 0,
- 1, 2, 1, 3, 1, 1, 1, 1, 1, 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, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
- } ;
-
-static yyconst short int yy_base[180] =
- { 0,
- 0, 0, 193, 194, 194, 194, 0, 194, 194, 0,
- 190, 194, 0, 177, 32, 37, 32, 163, 174, 170,
- 164, 171, 174, 169, 149, 15, 22, 17, 135, 146,
- 142, 136, 143, 146, 141, 0, 0, 194, 0, 161,
- 159, 158, 153, 147, 156, 143, 149, 148, 141, 150,
- 141, 135, 138, 127, 125, 124, 119, 113, 122, 109,
- 115, 114, 107, 116, 107, 101, 104, 43, 136, 135,
- 130, 129, 0, 119, 123, 118, 114, 118, 119, 122,
- 124, 25, 104, 103, 98, 97, 0, 87, 91, 86,
- 82, 86, 87, 90, 92, 105, 100, 97, 94, 93,
-
- 105, 106, 102, 0, 0, 0, 104, 0, 92, 75,
- 70, 67, 64, 63, 75, 76, 72, 0, 0, 0,
- 74, 0, 62, 91, 88, 0, 86, 85, 73, 85,
- 79, 83, 70, 62, 59, 0, 57, 56, 44, 56,
- 50, 54, 41, 0, 0, 0, 0, 63, 58, 59,
- 67, 66, 0, 0, 0, 0, 38, 33, 34, 42,
- 41, 51, 0, 0, 0, 0, 30, 0, 0, 0,
- 0, 43, 21, 0, 0, 194, 65, 66, 69
- } ;
-
-static yyconst short int yy_def[180] =
- { 0,
- 176, 1, 176, 176, 176, 176, 177, 176, 176, 178,
- 176, 176, 179, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 177, 178, 176, 179, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
-
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 177, 177, 177, 177, 177,
- 177, 177, 177, 177, 177, 0, 176, 176, 176
- } ;
-
-static yyconst short int yy_nxt[245] =
- { 0,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 7, 15, 16, 17, 18, 19, 7, 20, 7,
- 7, 21, 7, 22, 23, 7, 7, 24, 7, 7,
- 25, 7, 26, 27, 28, 29, 30, 7, 31, 7,
- 7, 32, 7, 33, 34, 7, 7, 35, 7, 7,
- 41, 43, 45, 55, 44, 42, 57, 59, 56, 58,
- 46, 96, 97, 110, 111, 60, 37, 36, 37, 39,
- 175, 39, 174, 173, 172, 171, 170, 169, 168, 167,
- 166, 165, 164, 163, 162, 161, 160, 159, 158, 157,
- 156, 155, 154, 153, 152, 151, 150, 149, 148, 147,
-
- 146, 145, 144, 143, 142, 141, 140, 139, 138, 137,
- 136, 135, 134, 133, 132, 131, 130, 129, 128, 127,
- 126, 125, 124, 123, 122, 121, 120, 119, 118, 117,
- 116, 115, 114, 113, 112, 109, 108, 107, 106, 105,
- 104, 103, 102, 101, 100, 99, 98, 95, 94, 93,
- 92, 91, 90, 89, 88, 87, 86, 85, 84, 83,
- 82, 81, 80, 79, 78, 77, 76, 75, 74, 73,
- 72, 71, 70, 69, 68, 67, 66, 65, 64, 63,
- 62, 61, 54, 53, 52, 51, 50, 49, 48, 47,
- 40, 38, 176, 3, 176, 176, 176, 176, 176, 176,
-
- 176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
- 176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
- 176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
- 176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
- 176, 176, 176, 176
- } ;
-
-static yyconst short int yy_chk[245] =
- { 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,
- 15, 16, 17, 26, 16, 15, 27, 28, 26, 27,
- 17, 68, 68, 82, 82, 28, 178, 177, 178, 179,
- 173, 179, 172, 167, 162, 161, 160, 159, 158, 157,
- 152, 151, 150, 149, 148, 143, 142, 141, 140, 139,
- 138, 137, 135, 134, 133, 132, 131, 130, 129, 128,
-
- 127, 125, 124, 123, 121, 117, 116, 115, 114, 113,
- 112, 111, 110, 109, 107, 103, 102, 101, 100, 99,
- 98, 97, 96, 95, 94, 93, 92, 91, 90, 89,
- 88, 86, 85, 84, 83, 81, 80, 79, 78, 77,
- 76, 75, 74, 72, 71, 70, 69, 67, 66, 65,
- 64, 63, 62, 61, 60, 59, 58, 57, 56, 55,
- 54, 53, 52, 51, 50, 49, 48, 47, 46, 45,
- 44, 43, 42, 41, 40, 35, 34, 33, 32, 31,
- 30, 29, 25, 24, 23, 22, 21, 20, 19, 18,
- 14, 11, 3, 176, 176, 176, 176, 176, 176, 176,
-
- 176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
- 176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
- 176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
- 176, 176, 176, 176, 176, 176, 176, 176, 176, 176,
- 176, 176, 176, 176
- } ;
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
-#line 1 "arlex.l"
-#define INITIAL 0
-#line 2 "arlex.l"
-/* arlex.l - Strange script language lexer */
-
-/* Copyright 1992, 1997, 2000, 2001, 2002, 2003, 2004
- Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-/* Contributed by Steve Chamberlain <sac@cygnus.com>. */
-
-#define DONTDECLARE_MALLOC
-#include "ansidecl.h"
-#include "libiberty.h"
-#include "arparse.h"
-
-#define YY_NO_UNPUT
-
-extern int yylex (void);
-
-int linenumber;
-#line 511 "arlex.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 \
- { \
- errno=0; \
- while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
- { \
- if( errno != EINTR) \
- { \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- break; \
- } \
- errno=0; \
- clearerr(yyin); \
- } \
- }
-#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 \
- YY_USER_ACTION
-
-YY_DECL
- {
- register yy_state_type yy_current_state;
- register char *yy_cp, *yy_bp;
- register int yy_act;
-
-#line 41 "arlex.l"
-
-
-#line 676 "arlex.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_match:
- do
- {
- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = 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 >= 177 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- ++yy_cp;
- }
- while ( yy_base[yy_current_state] != 194 );
-
-yy_find_action:
- yy_act = yy_accept[yy_current_state];
- if ( yy_act == 0 )
- { /* have to back up */
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- yy_act = yy_accept[yy_current_state];
- }
-
- YY_DO_BEFORE_ACTION;
-
-
-do_action: /* This label is used only to access EOF actions. */
-
-
- switch ( yy_act )
- { /* beginning of action switch */
- case 0: /* must back up */
- /* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = yy_hold_char;
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-#line 43 "arlex.l"
-{ return ADDLIB; }
- YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 44 "arlex.l"
-{ return ADDMOD; }
- YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 45 "arlex.l"
-{ return CLEAR; }
- YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 46 "arlex.l"
-{ return CREATE; }
- YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 47 "arlex.l"
-{ return DELETE; }
- YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 48 "arlex.l"
-{ return DIRECTORY; }
- YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 49 "arlex.l"
-{ return END; }
- YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 50 "arlex.l"
-{ return EXTRACT; }
- YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 51 "arlex.l"
-{ return FULLDIR; }
- YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 52 "arlex.l"
-{ return HELP; }
- YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 53 "arlex.l"
-{ return LIST; }
- YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 54 "arlex.l"
-{ return OPEN; }
- YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 55 "arlex.l"
-{ return REPLACE; }
- YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 56 "arlex.l"
-{ return VERBOSE; }
- YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 57 "arlex.l"
-{ return SAVE; }
- YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 58 "arlex.l"
-{ return ADDLIB; }
- YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 59 "arlex.l"
-{ return ADDMOD; }
- YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 60 "arlex.l"
-{ return CLEAR; }
- YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 61 "arlex.l"
-{ return CREATE; }
- YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 62 "arlex.l"
-{ return DELETE; }
- YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 63 "arlex.l"
-{ return DIRECTORY; }
- YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 64 "arlex.l"
-{ return END; }
- YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 65 "arlex.l"
-{ return EXTRACT; }
- YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 66 "arlex.l"
-{ return FULLDIR; }
- YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 67 "arlex.l"
-{ return HELP; }
- YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 68 "arlex.l"
-{ return LIST; }
- YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 69 "arlex.l"
-{ return OPEN; }
- YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 70 "arlex.l"
-{ return REPLACE; }
- YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 71 "arlex.l"
-{ return VERBOSE; }
- YY_BREAK
-case 30:
-YY_RULE_SETUP
-#line 72 "arlex.l"
-{ return SAVE; }
- YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 73 "arlex.l"
-{ linenumber ++; }
- YY_BREAK
-case 32:
-YY_RULE_SETUP
-#line 74 "arlex.l"
-{ return '('; }
- YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 75 "arlex.l"
-{ return ')'; }
- YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 76 "arlex.l"
-{ return ','; }
- YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 77 "arlex.l"
-{
- yylval.name = xstrdup (yytext);
- return FILENAME;
- }
- YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 81 "arlex.l"
-{ }
- YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 82 "arlex.l"
-{ }
- YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 83 "arlex.l"
-{ }
- YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 84 "arlex.l"
-{ linenumber ++; return NEWLINE; }
- YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 86 "arlex.l"
-ECHO;
- YY_BREAK
-#line 962 "arlex.c"
-case YY_STATE_EOF(INITIAL):
- 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;
-
- 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);
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = 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 >= 177 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- }
-
- 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 char *yy_cp = yy_c_buf_p;
-
- register YY_CHAR yy_c = 1;
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = 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 >= 177 )
- 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 == 176);
-
- 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;
-
-
- yytext_ptr = yy_bp;
- yy_hold_char = *yy_cp;
- yy_c_buf_p = yy_cp;
- }
-#endif /* ifndef YY_NO_UNPUT */
-
-
-#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;
-
-
- return c;
- }
-
-
-#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 );
- }
-
-
-#ifndef _WIN32
-#include <unistd.h>
-#else
-#ifndef YY_ALWAYS_INTERACTIVE
-#ifndef YY_NEVER_INTERACTIVE
-extern int isatty YY_PROTO(( int ));
-#endif
-#endif
-#endif
-
-#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 86 "arlex.l"
-
-#ifndef yywrap
-/* Needed for lex, though not flex. */
-int yywrap(void) { return 1; }
-#endif
diff --git a/binutils-2.17/binutils/arlex.l b/binutils-2.17/binutils/arlex.l
deleted file mode 100644
index 15602943..00000000
--- a/binutils-2.17/binutils/arlex.l
+++ /dev/null
@@ -1,90 +0,0 @@
-%{
-/* arlex.l - Strange script language lexer */
-
-/* Copyright 1992, 1997, 2000, 2001, 2002, 2003, 2004
- Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-/* Contributed by Steve Chamberlain <sac@cygnus.com>. */
-
-#define DONTDECLARE_MALLOC
-#include "ansidecl.h"
-#include "libiberty.h"
-#include "arparse.h"
-
-#define YY_NO_UNPUT
-
-extern int yylex (void);
-
-int linenumber;
-%}
-
-%a 10000
-%o 25000
-
-%%
-
-"ADDLIB" { return ADDLIB; }
-"ADDMOD" { return ADDMOD; }
-"CLEAR" { return CLEAR; }
-"CREATE" { return CREATE; }
-"DELETE" { return DELETE; }
-"DIRECTORY" { return DIRECTORY; }
-"END" { return END; }
-"EXTRACT" { return EXTRACT; }
-"FULLDIR" { return FULLDIR; }
-"HELP" { return HELP; }
-"LIST" { return LIST; }
-"OPEN" { return OPEN; }
-"REPLACE" { return REPLACE; }
-"VERBOSE" { return VERBOSE; }
-"SAVE" { return SAVE; }
-"addlib" { return ADDLIB; }
-"addmod" { return ADDMOD; }
-"clear" { return CLEAR; }
-"create" { return CREATE; }
-"delete" { return DELETE; }
-"directory" { return DIRECTORY; }
-"end" { return END; }
-"extract" { return EXTRACT; }
-"fulldir" { return FULLDIR; }
-"help" { return HELP; }
-"list" { return LIST; }
-"open" { return OPEN; }
-"replace" { return REPLACE; }
-"verbose" { return VERBOSE; }
-"save" { return SAVE; }
-"+\n" { linenumber ++; }
-"(" { return '('; }
-")" { return ')'; }
-"," { return ','; }
-[A-Za-z0-9/\\$:.\-\_]+ {
- yylval.name = xstrdup (yytext);
- return FILENAME;
- }
-"*".* { }
-";".* { }
-" " { }
-"\n" { linenumber ++; return NEWLINE; }
-
-%%
-#ifndef yywrap
-/* Needed for lex, though not flex. */
-int yywrap(void) { return 1; }
-#endif
diff --git a/binutils-2.17/binutils/arparse.c b/binutils-2.17/binutils/arparse.c
deleted file mode 100644
index 21fa13a4..00000000
--- a/binutils-2.17/binutils/arparse.c
+++ /dev/null
@@ -1,1605 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.1. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, 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
-
-/* Bison version. */
-#define YYBISON_VERSION "2.1"
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- NEWLINE = 258,
- VERBOSE = 259,
- FILENAME = 260,
- ADDLIB = 261,
- LIST = 262,
- ADDMOD = 263,
- CLEAR = 264,
- CREATE = 265,
- DELETE = 266,
- DIRECTORY = 267,
- END = 268,
- EXTRACT = 269,
- FULLDIR = 270,
- HELP = 271,
- QUIT = 272,
- REPLACE = 273,
- SAVE = 274,
- OPEN = 275
- };
-#endif
-/* Tokens. */
-#define NEWLINE 258
-#define VERBOSE 259
-#define FILENAME 260
-#define ADDLIB 261
-#define LIST 262
-#define ADDMOD 263
-#define CLEAR 264
-#define CREATE 265
-#define DELETE 266
-#define DIRECTORY 267
-#define END 268
-#define EXTRACT 269
-#define FULLDIR 270
-#define HELP 271
-#define QUIT 272
-#define REPLACE 273
-#define SAVE 274
-#define OPEN 275
-
-
-
-
-/* Copy the first part of user declarations. */
-#line 1 "arparse.y"
-
-/* arparse.y - Stange script language parser */
-
-/* Copyright 1992, 1993, 1995, 1997, 1999, 2002, 2003
- Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-/* Contributed by Steve Chamberlain
- sac@cygnus.com
-
-*/
-#define DONTDECLARE_MALLOC
-#include "bfd.h"
-#include "bucomm.h"
-#include "arsup.h"
-extern int verbose;
-extern int yylex (void);
-static int yyerror (const char *);
-
-
-/* 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
-
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 37 "arparse.y"
-typedef union YYSTYPE {
- char *name;
-struct list *list ;
-
-} YYSTYPE;
-/* Line 196 of yacc.c. */
-#line 167 "arparse.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 219 of yacc.c. */
-#line 179 "arparse.c"
-
-#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) && (defined (__STDC__) || defined (__cplusplus))
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
-#ifndef YY_
-# if YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(msgid) dgettext ("bison-runtime", msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(msgid) msgid
-# endif
-#endif
-
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# else
-# define YYSTACK_ALLOC alloca
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# define YYINCLUDED_STDLIB_H
-# endif
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
-# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
-# endif
-# else
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# ifndef YYSTACK_ALLOC_MAXIMUM
-# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
-# endif
-# ifdef __cplusplus
-extern "C" {
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
- && (defined (__STDC__) || defined (__cplusplus)))
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifndef YYFREE
-# define YYFREE free
-# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
- && (defined (__STDC__) || defined (__cplusplus)))
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifdef __cplusplus
-}
-# endif
-# 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 int 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 int) + 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 \
- { \
- 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 int yysigned_char;
-#endif
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 3
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 34
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 24
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 22
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 42
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 53
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 275
-
-#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, 2, 2,
- 21, 22, 2, 2, 23, 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, 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
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const unsigned char yyprhs[] =
-{
- 0, 0, 3, 4, 7, 10, 11, 14, 16, 18,
- 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
- 40, 42, 44, 45, 48, 51, 53, 56, 59, 61,
- 63, 66, 69, 73, 78, 80, 81, 85, 86, 90,
- 91, 93, 94
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yysigned_char yyrhs[] =
-{
- 25, 0, -1, -1, 26, 27, -1, 27, 28, -1,
- -1, 29, 3, -1, 37, -1, 38, -1, 45, -1,
- 40, -1, 39, -1, 32, -1, 34, -1, 36, -1,
- 30, -1, 31, -1, 33, -1, 35, -1, 13, -1,
- 1, -1, 5, -1, -1, 14, 43, -1, 18, 43,
- -1, 9, -1, 11, 43, -1, 8, 43, -1, 7,
- -1, 19, -1, 20, 5, -1, 10, 5, -1, 6,
- 5, 42, -1, 12, 5, 42, 41, -1, 5, -1,
- -1, 21, 43, 22, -1, -1, 43, 44, 5, -1,
- -1, 23, -1, -1, 4, -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const unsigned char yyrline[] =
-{
- 0, 68, 68, 68, 72, 73, 77, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 101, 106, 111, 116, 120, 125, 130,
- 137, 142, 148, 152, 159, 161, 165, 168, 172, 178,
- 183, 184, 189
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-/* YYTNAME[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", "NEWLINE", "VERBOSE", "FILENAME",
- "ADDLIB", "LIST", "ADDMOD", "CLEAR", "CREATE", "DELETE", "DIRECTORY",
- "END", "EXTRACT", "FULLDIR", "HELP", "QUIT", "REPLACE", "SAVE", "OPEN",
- "'('", "')'", "','", "$accept", "start", "@1", "session", "command_line",
- "command", "extract_command", "replace_command", "clear_command",
- "delete_command", "addmod_command", "list_command", "save_command",
- "open_command", "create_command", "addlib_command", "directory_command",
- "optional_filename", "modulelist", "modulename", "optcomma",
- "verbose_command", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
-static const unsigned short int yytoknum[] =
-{
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 40, 41, 44
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const unsigned char yyr1[] =
-{
- 0, 24, 26, 25, 27, 27, 28, 29, 29, 29,
- 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
- 29, 29, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 41, 42, 42, 43, 43,
- 44, 44, 45
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const unsigned char yyr2[] =
-{
- 0, 2, 0, 2, 2, 0, 2, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 0, 2, 2, 1, 2, 2, 1, 1,
- 2, 2, 3, 4, 1, 0, 3, 0, 3, 0,
- 1, 0, 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[] =
-{
- 2, 0, 5, 1, 0, 20, 42, 21, 0, 28,
- 39, 25, 0, 39, 0, 19, 39, 39, 29, 0,
- 4, 0, 15, 16, 12, 17, 13, 18, 14, 7,
- 8, 11, 10, 9, 37, 27, 31, 26, 37, 23,
- 24, 30, 6, 39, 32, 40, 0, 35, 41, 38,
- 34, 33, 36
-};
-
-/* YYDEFGOTO[NTERM-NUM]. */
-static const yysigned_char yydefgoto[] =
-{
- -1, 1, 2, 4, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 51, 44, 35,
- 46, 33
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-#define YYPACT_NINF -14
-static const yysigned_char yypact[] =
-{
- -14, 1, -14, -14, 5, -14, -14, -14, 2, -14,
- -14, -14, 21, -14, 22, -14, -14, -14, -14, 23,
- -14, 26, -14, -14, -14, -14, -14, -14, -14, -14,
- -14, -14, -14, -14, 10, -3, -14, -3, 10, -3,
- -3, -14, -14, -14, -14, -14, 27, 28, -1, -14,
- -14, -14, -14
-};
-
-/* YYPGOTO[NTERM-NUM]. */
-static const yysigned_char yypgoto[] =
-{
- -14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
- -14, -14, -14, -14, -14, -14, -14, -14, -4, -13,
- -14, -14
-};
-
-/* 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 -42
-static const yysigned_char yytable[] =
-{
- 37, 3, -41, 39, 40, -3, 5, 34, -22, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 45, 52, 45, 17, 18, 19, 36, 38, 41, 42,
- 48, 43, 49, 50, 47
-};
-
-static const unsigned char yycheck[] =
-{
- 13, 0, 5, 16, 17, 0, 1, 5, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 23, 22, 23, 18, 19, 20, 5, 5, 5, 3,
- 43, 21, 5, 5, 38
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const unsigned char yystos[] =
-{
- 0, 25, 26, 0, 27, 1, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 18, 19, 20,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 45, 5, 43, 5, 43, 5, 43,
- 43, 5, 3, 21, 42, 23, 44, 42, 43, 5,
- 5, 41, 22
-};
-
-#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 (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
-while (0)
-
-
-#define YYTERROR 1
-#define YYERRCODE 256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
- If N is 0, then set CURRENT to the empty location which ends
- the previous symbol: RHS[0] (always defined). */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- do \
- if (N) \
- { \
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
- } \
- else \
- { \
- (Current).first_line = (Current).last_line = \
- YYRHSLOC (Rhs, 0).last_line; \
- (Current).first_column = (Current).last_column = \
- YYRHSLOC (Rhs, 0).last_column; \
- } \
- while (0)
-#endif
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
-
-#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#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 YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yysymprint (stderr, \
- Type, 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 int *bottom, short int *top)
-#else
-static void
-yy_stack_print (bottom, top)
- short int *bottom;
- short int *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 long int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
- 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 YY_SYMBOL_PRINT(Title, Type, 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
- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
-#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
-{
- 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
-{
- char *yyd = yydest;
- const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
- if (*yystr == '"')
- {
- size_t yyn = 0;
- char const *yyp = yystr;
-
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
- }
-
- if (! yyres)
- return yystrlen (yystr);
-
- return yystpcpy (yyres, yystr) - yyres;
-}
-# 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]);
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
-
-# ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
- switch (yytype)
- {
- default:
- break;
- }
- YYFPRINTF (yyoutput, ")");
-}
-
-#endif /* ! YYDEBUG */
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep)
- const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
-{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
-
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- 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 look-ahead symbol. */
-int yychar;
-
-/* The semantic value of the look-ahead 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
-{
-
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Look-ahead 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 int yyssa[YYINITDEPTH];
- short int *yyss = yyssa;
- short int *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- 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 int *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 (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
- &yystacksize);
-
- yyss = yyss1;
- yyvs = yyvs1;
- }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyexhaustedlab;
-# else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
- short int *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyexhaustedlab;
- 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 look-ahead token if we need one and don't already have one. */
-/* yyresume: */
-
- /* First try to decide what to do without reference to look-ahead token. */
-
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
- /* Not known => get a look-ahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead 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);
- YY_SYMBOL_PRINT ("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 look-ahead token. */
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
- /* 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 2:
-#line 68 "arparse.y"
- { prompt(); }
- break;
-
- case 6:
-#line 77 "arparse.y"
- { prompt(); }
- break;
-
- case 19:
-#line 93 "arparse.y"
- { ar_end(); return 0; }
- break;
-
- case 21:
-#line 95 "arparse.y"
- { yyerror("foo"); }
- break;
-
- case 23:
-#line 102 "arparse.y"
- { ar_extract((yyvsp[0].list)); }
- break;
-
- case 24:
-#line 107 "arparse.y"
- { ar_replace((yyvsp[0].list)); }
- break;
-
- case 25:
-#line 112 "arparse.y"
- { ar_clear(); }
- break;
-
- case 26:
-#line 117 "arparse.y"
- { ar_delete((yyvsp[0].list)); }
- break;
-
- case 27:
-#line 121 "arparse.y"
- { ar_addmod((yyvsp[0].list)); }
- break;
-
- case 28:
-#line 126 "arparse.y"
- { ar_list(); }
- break;
-
- case 29:
-#line 131 "arparse.y"
- { ar_save(); }
- break;
-
- case 30:
-#line 138 "arparse.y"
- { ar_open((yyvsp[0].name),0); }
- break;
-
- case 31:
-#line 143 "arparse.y"
- { ar_open((yyvsp[0].name),1); }
- break;
-
- case 32:
-#line 149 "arparse.y"
- { ar_addlib((yyvsp[-1].name),(yyvsp[0].list)); }
- break;
-
- case 33:
-#line 153 "arparse.y"
- { ar_directory((yyvsp[-2].name), (yyvsp[-1].list), (yyvsp[0].name)); }
- break;
-
- case 34:
-#line 160 "arparse.y"
- { (yyval.name) = (yyvsp[0].name); }
- break;
-
- case 35:
-#line 161 "arparse.y"
- { (yyval.name) = 0; }
- break;
-
- case 36:
-#line 166 "arparse.y"
- { (yyval.list) = (yyvsp[-1].list); }
- break;
-
- case 37:
-#line 168 "arparse.y"
- { (yyval.list) = 0; }
- break;
-
- case 38:
-#line 173 "arparse.y"
- { struct list *n = (struct list *) malloc(sizeof(struct list));
- n->next = (yyvsp[-2].list);
- n->name = (yyvsp[0].name);
- (yyval.list) = n;
- }
- break;
-
- case 39:
-#line 178 "arparse.y"
- { (yyval.list) = 0; }
- break;
-
- case 42:
-#line 190 "arparse.y"
- { verbose = !verbose; }
- break;
-
-
- default: break;
- }
-
-/* Line 1126 of yacc.c. */
-#line 1327 "arparse.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)
- {
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- char *yymsg = 0;
-# define YYERROR_VERBOSE_ARGS_MAXIMUM 5
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-#if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-#endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* 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 = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= yysize1 < yysize;
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
-
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= yysize1 < yysize;
- yysize = yysize1;
-
- if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
- yymsg = (char *) YYSTACK_ALLOC (yysize);
- if (yymsg)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yymsg;
- int yyi = 0;
- while ((*yyp = *yyf))
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- yyerror (yymsg);
- YYSTACK_FREE (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- goto yyexhaustedlab;
- }
- }
- else
-#endif /* YYERROR_VERBOSE */
- yyerror (YY_("syntax error"));
- }
-
-
-
- if (yyerrstatus == 3)
- {
- /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
- else
- {
- yydestruct ("Error: discarding", yytoken, &yylval);
- yychar = YYEMPTY;
- }
- }
-
- /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
-
- /* Pacify compilers like GCC when the user code never invokes
- YYERROR and the label yyerrorlab therefore never appears in user
- code. */
- if (0)
- goto yyerrorlab;
-
-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;
-
-
- yydestruct ("Error: popping", yystos[yystate], yyvsp);
- YYPOPSTACK;
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- *++yyvsp = yylval;
-
-
- /* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-#ifndef yyoverflow
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
-yyexhaustedlab:
- yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
-#endif
-
-yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
- while (yyssp != yyss)
- {
- yydestruct ("Cleanup: popping",
- yystos[*yyssp], yyvsp);
- YYPOPSTACK;
- }
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
-#endif
- return yyresult;
-}
-
-
-#line 194 "arparse.y"
-
-
-static int
-yyerror (const char *x ATTRIBUTE_UNUSED)
-{
- extern int linenumber;
-
- printf (_("Syntax error in archive script, line %d\n"), linenumber + 1);
- return 0;
-}
-
diff --git a/binutils-2.17/binutils/arparse.h b/binutils-2.17/binutils/arparse.h
deleted file mode 100644
index 41044396..00000000
--- a/binutils-2.17/binutils/arparse.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.1. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, 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 {
- NEWLINE = 258,
- VERBOSE = 259,
- FILENAME = 260,
- ADDLIB = 261,
- LIST = 262,
- ADDMOD = 263,
- CLEAR = 264,
- CREATE = 265,
- DELETE = 266,
- DIRECTORY = 267,
- END = 268,
- EXTRACT = 269,
- FULLDIR = 270,
- HELP = 271,
- QUIT = 272,
- REPLACE = 273,
- SAVE = 274,
- OPEN = 275
- };
-#endif
-/* Tokens. */
-#define NEWLINE 258
-#define VERBOSE 259
-#define FILENAME 260
-#define ADDLIB 261
-#define LIST 262
-#define ADDMOD 263
-#define CLEAR 264
-#define CREATE 265
-#define DELETE 266
-#define DIRECTORY 267
-#define END 268
-#define EXTRACT 269
-#define FULLDIR 270
-#define HELP 271
-#define QUIT 272
-#define REPLACE 273
-#define SAVE 274
-#define OPEN 275
-
-
-
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 37 "arparse.y"
-typedef union YYSTYPE {
- char *name;
-struct list *list ;
-
-} YYSTYPE;
-/* Line 1447 of yacc.c. */
-#line 84 "arparse.h"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-extern YYSTYPE yylval;
-
-
-
diff --git a/binutils-2.17/binutils/arparse.y b/binutils-2.17/binutils/arparse.y
deleted file mode 100644
index a7ea0157..00000000
--- a/binutils-2.17/binutils/arparse.y
+++ /dev/null
@@ -1,203 +0,0 @@
-%{
-/* arparse.y - Stange script language parser */
-
-/* Copyright 1992, 1993, 1995, 1997, 1999, 2002, 2003
- Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-/* Contributed by Steve Chamberlain
- sac@cygnus.com
-
-*/
-#define DONTDECLARE_MALLOC
-#include "bfd.h"
-#include "bucomm.h"
-#include "arsup.h"
-extern int verbose;
-extern int yylex (void);
-static int yyerror (const char *);
-%}
-
-%union {
- char *name;
-struct list *list ;
-
-};
-
-%token NEWLINE
-%token VERBOSE
-%token <name> FILENAME
-%token ADDLIB
-%token LIST
-%token ADDMOD
-%token CLEAR
-%token CREATE
-%token DELETE
-%token DIRECTORY
-%token END
-%token EXTRACT
-%token FULLDIR
-%token HELP
-%token QUIT
-%token REPLACE
-%token SAVE
-%token OPEN
-
-%type <list> modulelist
-%type <list> modulename
-%type <name> optional_filename
-%%
-
-start:
- { prompt(); } session
- ;
-
-session:
- session command_line
- |
- ;
-
-command_line:
- command NEWLINE { prompt(); }
- ;
-
-command:
- open_command
- | create_command
- | verbose_command
- | directory_command
- | addlib_command
- | clear_command
- | addmod_command
- | save_command
- | extract_command
- | replace_command
- | delete_command
- | list_command
- | END { ar_end(); return 0; }
- | error
- | FILENAME { yyerror("foo"); }
- |
- ;
-
-
-extract_command:
- EXTRACT modulename
- { ar_extract($2); }
- ;
-
-replace_command:
- REPLACE modulename
- { ar_replace($2); }
- ;
-
-clear_command:
- CLEAR
- { ar_clear(); }
- ;
-
-delete_command:
- DELETE modulename
- { ar_delete($2); }
- ;
-addmod_command:
- ADDMOD modulename
- { ar_addmod($2); }
- ;
-
-list_command:
- LIST
- { ar_list(); }
- ;
-
-save_command:
- SAVE
- { ar_save(); }
- ;
-
-
-
-open_command:
- OPEN FILENAME
- { ar_open($2,0); }
- ;
-
-create_command:
- CREATE FILENAME
- { ar_open($2,1); }
- ;
-
-
-addlib_command:
- ADDLIB FILENAME modulelist
- { ar_addlib($2,$3); }
- ;
-directory_command:
- DIRECTORY FILENAME modulelist optional_filename
- { ar_directory($2, $3, $4); }
- ;
-
-
-
-optional_filename:
- FILENAME
- { $$ = $1; }
- | { $$ = 0; }
- ;
-
-modulelist:
- '(' modulename ')'
- { $$ = $2; }
- |
- { $$ = 0; }
- ;
-
-modulename:
- modulename optcomma FILENAME
- { struct list *n = (struct list *) malloc(sizeof(struct list));
- n->next = $1;
- n->name = $3;
- $$ = n;
- }
- | { $$ = 0; }
- ;
-
-
-optcomma:
- ','
- |
- ;
-
-
-verbose_command:
- VERBOSE
- { verbose = !verbose; }
- ;
-
-
-%%
-
-static int
-yyerror (const char *x ATTRIBUTE_UNUSED)
-{
- extern int linenumber;
-
- printf (_("Syntax error in archive script, line %d\n"), linenumber + 1);
- return 0;
-}
diff --git a/binutils-2.17/binutils/arsup.c b/binutils-2.17/binutils/arsup.c
deleted file mode 100644
index 189490b3..00000000
--- a/binutils-2.17/binutils/arsup.c
+++ /dev/null
@@ -1,478 +0,0 @@
-/* arsup.c - Archive support for MRI compatibility
- Copyright 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003,
- 2004 Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-/* Contributed by Steve Chamberlain
- sac@cygnus.com
-
- This file looks after requests from arparse.y, to provide the MRI
- style librarian command syntax + 1 word LIST. */
-
-#include "bfd.h"
-#include "arsup.h"
-#include "libiberty.h"
-#include "bucomm.h"
-#include "filenames.h"
-
-static void map_over_list
- (bfd *, void (*function) (bfd *, bfd *), struct list *);
-static void ar_directory_doer (bfd *, bfd *);
-static void ar_addlib_doer (bfd *, bfd *);
-
-extern int verbose;
-
-static bfd *obfd;
-static char *real_name;
-static FILE *outfile;
-
-static void
-map_over_list (bfd *arch, void (*function) (bfd *, bfd *), struct list *list)
-{
- bfd *head;
-
- if (list == NULL)
- {
- bfd *next;
-
- head = arch->next;
- while (head != NULL)
- {
- next = head->next;
- function (head, (bfd *) NULL);
- head = next;
- }
- }
- else
- {
- struct list *ptr;
-
- /* This may appear to be a baroque way of accomplishing what we
- want. however we have to iterate over the filenames in order
- to notice where a filename is requested but does not exist in
- the archive. Ditto mapping over each file each time -- we
- want to hack multiple references. */
- for (ptr = list; ptr; ptr = ptr->next)
- {
- bfd_boolean found = FALSE;
- bfd *prev = arch;
-
- for (head = arch->next; head; head = head->next)
- {
- if (head->filename != NULL
- && FILENAME_CMP (ptr->name, head->filename) == 0)
- {
- found = TRUE;
- function (head, prev);
- }
- prev = head;
- }
- if (! found)
- fprintf (stderr, _("No entry %s in archive.\n"), ptr->name);
- }
- }
-}
-
-
-
-static void
-ar_directory_doer (bfd *abfd, bfd *ignore ATTRIBUTE_UNUSED)
-{
- print_arelt_descr(outfile, abfd, verbose);
-}
-
-void
-ar_directory (char *ar_name, struct list *list, char *output)
-{
- bfd *arch;
-
- arch = open_inarch (ar_name, (char *) NULL);
- if (output)
- {
- outfile = fopen(output,"w");
- if (outfile == 0)
- {
- outfile = stdout;
- fprintf (stderr,_("Can't open file %s\n"), output);
- output = 0;
- }
- }
- else
- outfile = stdout;
-
- map_over_list (arch, ar_directory_doer, list);
-
- bfd_close (arch);
-
- if (output)
- fclose (outfile);
-}
-
-void
-prompt (void)
-{
- extern int interactive;
-
- if (interactive)
- {
- printf ("AR >");
- fflush (stdout);
- }
-}
-
-void
-maybequit (void)
-{
- if (! interactive)
- xexit (9);
-}
-
-
-void
-ar_open (char *name, int t)
-{
- char *tname = (char *) xmalloc (strlen (name) + 10);
- const char *bname = lbasename (name);
- real_name = name;
-
- /* Prepend tmp- to the beginning, to avoid file-name clashes after
- truncation on filesystems with limited namespaces (DOS). */
- sprintf (tname, "%.*stmp-%s", (int) (bname - name), name, bname);
- obfd = bfd_openw (tname, NULL);
-
- if (!obfd)
- {
- fprintf (stderr,
- _("%s: Can't open output archive %s\n"),
- program_name, tname);
-
- maybequit ();
- }
- else
- {
- if (!t)
- {
- bfd **ptr;
- bfd *element;
- bfd *ibfd;
-
- ibfd = bfd_openr (name, NULL);
-
- if (!ibfd)
- {
- fprintf (stderr,_("%s: Can't open input archive %s\n"),
- program_name, name);
- maybequit ();
- return;
- }
-
- if (!bfd_check_format(ibfd, bfd_archive))
- {
- fprintf (stderr,
- _("%s: file %s is not an archive\n"),
- program_name, name);
- maybequit ();
- return;
- }
-
- ptr = &(obfd->archive_head);
- element = bfd_openr_next_archived_file (ibfd, NULL);
-
- while (element)
- {
- *ptr = element;
- ptr = &element->next;
- element = bfd_openr_next_archived_file (ibfd, element);
- }
- }
-
- bfd_set_format (obfd, bfd_archive);
-
- obfd->has_armap = 1;
- }
-}
-
-static void
-ar_addlib_doer (bfd *abfd, bfd *prev)
-{
- /* Add this module to the output bfd. */
- if (prev != NULL)
- prev->next = abfd->next;
-
- abfd->next = obfd->archive_head;
- obfd->archive_head = abfd;
-}
-
-void
-ar_addlib (char *name, struct list *list)
-{
- if (obfd == NULL)
- {
- fprintf (stderr, _("%s: no output archive specified yet\n"), program_name);
- maybequit ();
- }
- else
- {
- bfd *arch;
-
- arch = open_inarch (name, (char *) NULL);
- if (arch != NULL)
- map_over_list (arch, ar_addlib_doer, list);
-
- /* Don't close the bfd, since it will make the elements disappear. */
- }
-}
-
-void
-ar_addmod (struct list *list)
-{
- if (!obfd)
- {
- fprintf (stderr, _("%s: no open output archive\n"), program_name);
- maybequit ();
- }
- else
- {
- while (list)
- {
- bfd *abfd = bfd_openr (list->name, NULL);
-
- if (!abfd)
- {
- fprintf (stderr, _("%s: can't open file %s\n"),
- program_name, list->name);
- maybequit ();
- }
- else
- {
- abfd->next = obfd->archive_head;
- obfd->archive_head = abfd;
- }
- list = list->next;
- }
- }
-}
-
-
-void
-ar_clear (void)
-{
- if (obfd)
- obfd->archive_head = 0;
-}
-
-void
-ar_delete (struct list *list)
-{
- if (!obfd)
- {
- fprintf (stderr, _("%s: no open output archive\n"), program_name);
- maybequit ();
- }
- else
- {
- while (list)
- {
- /* Find this name in the archive. */
- bfd *member = obfd->archive_head;
- bfd **prev = &(obfd->archive_head);
- int found = 0;
-
- while (member)
- {
- if (FILENAME_CMP(member->filename, list->name) == 0)
- {
- *prev = member->next;
- found = 1;
- }
- else
- prev = &(member->next);
-
- member = member->next;
- }
-
- if (!found)
- {
- fprintf (stderr, _("%s: can't find module file %s\n"),
- program_name, list->name);
- maybequit ();
- }
-
- list = list->next;
- }
- }
-}
-
-void
-ar_save (void)
-{
- if (!obfd)
- {
- fprintf (stderr, _("%s: no open output archive\n"), program_name);
- maybequit ();
- }
- else
- {
- char *ofilename = xstrdup (bfd_get_filename (obfd));
-
- bfd_close (obfd);
-
- smart_rename (ofilename, real_name, 0);
- obfd = 0;
- free (ofilename);
- }
-}
-
-void
-ar_replace (struct list *list)
-{
- if (!obfd)
- {
- fprintf (stderr, _("%s: no open output archive\n"), program_name);
- maybequit ();
- }
- else
- {
- while (list)
- {
- /* Find this name in the archive. */
- bfd *member = obfd->archive_head;
- bfd **prev = &(obfd->archive_head);
- int found = 0;
-
- while (member)
- {
- if (FILENAME_CMP (member->filename, list->name) == 0)
- {
- /* Found the one to replace. */
- bfd *abfd = bfd_openr (list->name, 0);
-
- if (!abfd)
- {
- fprintf (stderr, _("%s: can't open file %s\n"),
- program_name, list->name);
- maybequit ();
- }
- else
- {
- *prev = abfd;
- abfd->next = member->next;
- found = 1;
- }
- }
- else
- {
- prev = &(member->next);
- }
- member = member->next;
- }
-
- if (!found)
- {
- bfd *abfd = bfd_openr (list->name, 0);
-
- fprintf (stderr,_("%s: can't find module file %s\n"),
- program_name, list->name);
- if (!abfd)
- {
- fprintf (stderr, _("%s: can't open file %s\n"),
- program_name, list->name);
- maybequit ();
- }
- else
- *prev = abfd;
- }
-
- list = list->next;
- }
- }
-}
-
-/* And I added this one. */
-void
-ar_list (void)
-{
- if (!obfd)
- {
- fprintf (stderr, _("%s: no open output archive\n"), program_name);
- maybequit ();
- }
- else
- {
- bfd *abfd;
-
- outfile = stdout;
- verbose =1 ;
- printf (_("Current open archive is %s\n"), bfd_get_filename (obfd));
-
- for (abfd = obfd->archive_head;
- abfd != (bfd *)NULL;
- abfd = abfd->next)
- ar_directory_doer (abfd, (bfd *) NULL);
- }
-}
-
-void
-ar_end (void)
-{
- if (obfd)
- {
- bfd_cache_close (obfd);
- unlink (bfd_get_filename (obfd));
- }
-}
-
-void
-ar_extract (struct list *list)
-{
- if (!obfd)
- {
- fprintf (stderr, _("%s: no open archive\n"), program_name);
- maybequit ();
- }
- else
- {
- while (list)
- {
- /* Find this name in the archive. */
- bfd *member = obfd->archive_head;
- int found = 0;
-
- while (member && !found)
- {
- if (FILENAME_CMP (member->filename, list->name) == 0)
- {
- extract_file (member);
- found = 1;
- }
-
- member = member->next;
- }
-
- if (!found)
- {
- bfd_openr (list->name, 0);
- fprintf (stderr, _("%s: can't find module file %s\n"),
- program_name, list->name);
- }
-
- list = list->next;
- }
- }
-}
diff --git a/binutils-2.17/binutils/arsup.h b/binutils-2.17/binutils/arsup.h
deleted file mode 100644
index 136efcf3..00000000
--- a/binutils-2.17/binutils/arsup.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* arsup.h - archive support header file
- Copyright 1992, 1993, 1994, 1996, 2001, 2002, 2003
- Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-struct list {
- char *name;
- struct list *next;
-};
-
-void maybequit (void);
-
-void prompt (void);
-
-void ar_clear (void);
-
-void ar_replace (struct list *);
-
-void ar_delete (struct list *);
-
-void ar_save (void);
-
-void ar_list (void);
-
-void ar_open (char *, int);
-
-void ar_directory (char *, struct list *, char *);
-
-void ar_addmod (struct list *);
-
-void ar_addlib (char *, struct list *);
-
-void ar_end (void);
-
-void ar_extract (struct list *);
-
-bfd *open_inarch (const char *archive_filename, const char *);
-
-extern int yylex (void);
-
-int yyparse (void);
-
-/* Functions from ar.c */
-
-void extract_file (bfd * abfd);
-
-extern int interactive;
diff --git a/binutils-2.17/binutils/binemul.c b/binutils-2.17/binutils/binemul.c
deleted file mode 100644
index 7dac32dd..00000000
--- a/binutils-2.17/binutils/binemul.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Binutils emulation layer.
- Copyright 2002, 2003 Free Software Foundation, Inc.
- Written by Tom Rix, Red Hat Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "binemul.h"
-
-extern bin_emulation_xfer_type bin_dummy_emulation;
-
-void
-ar_emul_usage (FILE *fp)
-{
- if (bin_dummy_emulation.ar_usage)
- bin_dummy_emulation.ar_usage (fp);
-}
-
-void
-ar_emul_default_usage (FILE *fp)
-{
- AR_EMUL_USAGE_PRINT_OPTION_HEADER (fp);
- /* xgettext:c-format */
- fprintf (fp, _(" No emulation specific options\n"));
-}
-
-bfd_boolean
-ar_emul_append (bfd **after_bfd, char *file_name, bfd_boolean verbose)
-{
- if (bin_dummy_emulation.ar_append)
- return bin_dummy_emulation.ar_append (after_bfd, file_name, verbose);
-
- return FALSE;
-}
-
-bfd_boolean
-ar_emul_default_append (bfd **after_bfd, char *file_name,
- bfd_boolean verbose)
-{
- bfd *temp;
-
- temp = *after_bfd;
- *after_bfd = bfd_openr (file_name, NULL);
-
- AR_EMUL_ELEMENT_CHECK (*after_bfd, file_name);
- AR_EMUL_APPEND_PRINT_VERBOSE (verbose, file_name);
-
- (*after_bfd)->next = temp;
-
- return TRUE;
-}
-
-bfd_boolean
-ar_emul_replace (bfd **after_bfd, char *file_name, bfd_boolean verbose)
-{
- if (bin_dummy_emulation.ar_replace)
- return bin_dummy_emulation.ar_replace (after_bfd, file_name, verbose);
-
- return FALSE;
-}
-
-bfd_boolean
-ar_emul_default_replace (bfd **after_bfd, char *file_name,
- bfd_boolean verbose)
-{
- bfd *temp;
-
- temp = *after_bfd;
- *after_bfd = bfd_openr (file_name, NULL);
-
- AR_EMUL_ELEMENT_CHECK (*after_bfd, file_name);
- AR_EMUL_REPLACE_PRINT_VERBOSE (verbose, file_name);
-
- (*after_bfd)->next = temp;
-
- return TRUE;
-}
-
-bfd_boolean
-ar_emul_parse_arg (char *arg)
-{
- if (bin_dummy_emulation.ar_parse_arg)
- return bin_dummy_emulation.ar_parse_arg (arg);
-
- return FALSE;
-}
-
-bfd_boolean
-ar_emul_default_parse_arg (char *arg ATTRIBUTE_UNUSED)
-{
- return FALSE;
-}
diff --git a/binutils-2.17/binutils/binemul.h b/binutils-2.17/binutils/binemul.h
deleted file mode 100644
index 53bbbd2d..00000000
--- a/binutils-2.17/binutils/binemul.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Binutils emulation layer.
- Copyright 2002, 2003 Free Software Foundation, Inc.
- Written by Tom Rix, Red Hat Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef BINEMUL_H
-#define BINEMUL_H
-
-#include "bfd.h"
-#include "bucomm.h"
-
-extern void ar_emul_usage (FILE *);
-extern void ar_emul_default_usage (FILE *);
-extern bfd_boolean ar_emul_append (bfd **, char *, bfd_boolean);
-extern bfd_boolean ar_emul_default_append (bfd **, char *, bfd_boolean);
-extern bfd_boolean ar_emul_replace (bfd **, char *, bfd_boolean);
-extern bfd_boolean ar_emul_default_replace (bfd **, char *, bfd_boolean);
-extern bfd_boolean ar_emul_parse_arg (char *);
-extern bfd_boolean ar_emul_default_parse_arg (char *);
-
-/* Macros for common output. */
-
-#define AR_EMUL_USAGE_PRINT_OPTION_HEADER(fp) \
- /* xgettext:c-format */ \
- fprintf (fp, _(" emulation options: \n"))
-
-#define AR_EMUL_ELEMENT_CHECK(abfd, file_name) \
- do { if ((abfd) == NULL) bfd_fatal (file_name); } while (0)
-
-#define AR_EMUL_APPEND_PRINT_VERBOSE(verbose, file_name) \
- do { if (verbose) printf ("a - %s\n", file_name); } while (0)
-
-#define AR_EMUL_REPLACE_PRINT_VERBOSE(verbose, file_name) \
- do { if (verbose) printf ("r - %s\n", file_name); } while (0)
-
-typedef struct bin_emulation_xfer_struct
-{
- /* Print out the extra options. */
- void (* ar_usage) (FILE *fp);
- bfd_boolean (* ar_append) (bfd **, char *, bfd_boolean);
- bfd_boolean (* ar_replace) (bfd **, char *, bfd_boolean);
- bfd_boolean (* ar_parse_arg) (char *);
-}
-bin_emulation_xfer_type;
-
-#endif
diff --git a/binutils-2.17/binutils/bucomm.c b/binutils-2.17/binutils/bucomm.c
deleted file mode 100644
index 03a4d287..00000000
--- a/binutils-2.17/binutils/bucomm.c
+++ /dev/null
@@ -1,513 +0,0 @@
-/* bucomm.c -- Bin Utils COMmon code.
- Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002, 2003
- Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* We might put this in a library someday so it could be dynamically
- loaded, but for now it's not necessary. */
-
-#include "bfd.h"
-#include "bfdver.h"
-#include "libiberty.h"
-#include "bucomm.h"
-#include "filenames.h"
-#include "libbfd.h"
-
-#include <sys/stat.h>
-#include <time.h> /* ctime, maybe time_t */
-#include <assert.h>
-
-#ifndef HAVE_TIME_T_IN_TIME_H
-#ifndef HAVE_TIME_T_IN_TYPES_H
-typedef long time_t;
-#endif
-#endif
-
-static const char * endian_string (enum bfd_endian);
-static int display_target_list (void);
-static int display_info_table (int, int);
-static int display_target_tables (void);
-
-/* Error reporting. */
-
-char *program_name;
-
-void
-bfd_nonfatal (const char *string)
-{
- const char *errmsg = bfd_errmsg (bfd_get_error ());
-
- if (string)
- fprintf (stderr, "%s: %s: %s\n", program_name, string, errmsg);
- else
- fprintf (stderr, "%s: %s\n", program_name, errmsg);
-}
-
-void
-bfd_fatal (const char *string)
-{
- bfd_nonfatal (string);
- xexit (1);
-}
-
-void
-report (const char * format, va_list args)
-{
- fprintf (stderr, "%s: ", program_name);
- vfprintf (stderr, format, args);
- putc ('\n', stderr);
-}
-
-void
-fatal VPARAMS ((const char *format, ...))
-{
- VA_OPEN (args, format);
- VA_FIXEDARG (args, const char *, format);
-
- report (format, args);
- VA_CLOSE (args);
- xexit (1);
-}
-
-void
-non_fatal VPARAMS ((const char *format, ...))
-{
- VA_OPEN (args, format);
- VA_FIXEDARG (args, const char *, format);
-
- report (format, args);
- VA_CLOSE (args);
-}
-
-/* Set the default BFD target based on the configured target. Doing
- this permits the binutils to be configured for a particular target,
- and linked against a shared BFD library which was configured for a
- different target. */
-
-void
-set_default_bfd_target (void)
-{
- /* The macro TARGET is defined by Makefile. */
- const char *target = TARGET;
-
- if (! bfd_set_default_target (target))
- fatal (_("can't set BFD default target to `%s': %s"),
- target, bfd_errmsg (bfd_get_error ()));
-}
-
-/* After a FALSE return from bfd_check_format_matches with
- bfd_get_error () == bfd_error_file_ambiguously_recognized, print
- the possible matching targets. */
-
-void
-list_matching_formats (char **p)
-{
- fprintf (stderr, _("%s: Matching formats:"), program_name);
- while (*p)
- fprintf (stderr, " %s", *p++);
- fputc ('\n', stderr);
-}
-
-/* List the supported targets. */
-
-void
-list_supported_targets (const char *name, FILE *f)
-{
- int t;
- const char **targ_names = bfd_target_list ();
-
- if (name == NULL)
- fprintf (f, _("Supported targets:"));
- else
- fprintf (f, _("%s: supported targets:"), name);
-
- for (t = 0; targ_names[t] != NULL; t++)
- fprintf (f, " %s", targ_names[t]);
- fprintf (f, "\n");
- free (targ_names);
-}
-
-/* List the supported architectures. */
-
-void
-list_supported_architectures (const char *name, FILE *f)
-{
- const char **arch;
-
- if (name == NULL)
- fprintf (f, _("Supported architectures:"));
- else
- fprintf (f, _("%s: supported architectures:"), name);
-
- for (arch = bfd_arch_list (); *arch; arch++)
- fprintf (f, " %s", *arch);
- fprintf (f, "\n");
-}
-
-/* The length of the longest architecture name + 1. */
-#define LONGEST_ARCH sizeof ("powerpc:common")
-
-static const char *
-endian_string (enum bfd_endian endian)
-{
- switch (endian)
- {
- case BFD_ENDIAN_BIG: return "big endian";
- case BFD_ENDIAN_LITTLE: return "little endian";
- default: return "endianness unknown";
- }
-}
-
-/* List the targets that BFD is configured to support, each followed
- by its endianness and the architectures it supports. */
-
-static int
-display_target_list (void)
-{
- char *dummy_name;
- int t;
- int ret = 1;
-
- dummy_name = make_temp_file (NULL);
- for (t = 0; bfd_target_vector[t]; t++)
- {
- const bfd_target *p = bfd_target_vector[t];
- bfd *abfd = bfd_openw (dummy_name, p->name);
- enum bfd_architecture a;
-
- printf ("%s\n (header %s, data %s)\n", p->name,
- endian_string (p->header_byteorder),
- endian_string (p->byteorder));
-
- if (abfd == NULL)
- {
- bfd_nonfatal (dummy_name);
- ret = 0;
- continue;
- }
-
- if (! bfd_set_format (abfd, bfd_object))
- {
- if (bfd_get_error () != bfd_error_invalid_operation)
- {
- bfd_nonfatal (p->name);
- ret = 0;
- }
- bfd_close_all_done (abfd);
- continue;
- }
-
- for (a = bfd_arch_obscure + 1; a < bfd_arch_last; a++)
- if (bfd_set_arch_mach (abfd, (enum bfd_architecture) a, 0))
- printf (" %s\n",
- bfd_printable_arch_mach ((enum bfd_architecture) a, 0));
- bfd_close_all_done (abfd);
- }
- unlink (dummy_name);
- free (dummy_name);
-
- return ret;
-}
-
-/* Print a table showing which architectures are supported for entries
- FIRST through LAST-1 of bfd_target_vector (targets across,
- architectures down). */
-
-static int
-display_info_table (int first, int last)
-{
- int t;
- int ret = 1;
- char *dummy_name;
- enum bfd_architecture a;
-
- /* Print heading of target names. */
- printf ("\n%*s", (int) LONGEST_ARCH, " ");
- for (t = first; t < last && bfd_target_vector[t]; t++)
- printf ("%s ", bfd_target_vector[t]->name);
- putchar ('\n');
-
- dummy_name = make_temp_file (NULL);
- for (a = bfd_arch_obscure + 1; a < bfd_arch_last; a++)
- if (strcmp (bfd_printable_arch_mach (a, 0), "UNKNOWN!") != 0)
- {
- printf ("%*s ", (int) LONGEST_ARCH - 1,
- bfd_printable_arch_mach (a, 0));
- for (t = first; t < last && bfd_target_vector[t]; t++)
- {
- const bfd_target *p = bfd_target_vector[t];
- bfd_boolean ok = TRUE;
- bfd *abfd = bfd_openw (dummy_name, p->name);
-
- if (abfd == NULL)
- {
- bfd_nonfatal (p->name);
- ret = 0;
- ok = FALSE;
- }
-
- if (ok)
- {
- if (! bfd_set_format (abfd, bfd_object))
- {
- if (bfd_get_error () != bfd_error_invalid_operation)
- {
- bfd_nonfatal (p->name);
- ret = 0;
- }
- ok = FALSE;
- }
- }
-
- if (ok)
- {
- if (! bfd_set_arch_mach (abfd, a, 0))
- ok = FALSE;
- }
-
- if (ok)
- printf ("%s ", p->name);
- else
- {
- int l = strlen (p->name);
- while (l--)
- putchar ('-');
- putchar (' ');
- }
- if (abfd != NULL)
- bfd_close_all_done (abfd);
- }
- putchar ('\n');
- }
- unlink (dummy_name);
- free (dummy_name);
-
- return ret;
-}
-
-/* Print tables of all the target-architecture combinations that
- BFD has been configured to support. */
-
-static int
-display_target_tables (void)
-{
- int t;
- int columns;
- int ret = 1;
- char *colum;
-
- columns = 0;
- colum = getenv ("COLUMNS");
- if (colum != NULL)
- columns = atoi (colum);
- if (columns == 0)
- columns = 80;
-
- t = 0;
- while (bfd_target_vector[t] != NULL)
- {
- int oldt = t, wid;
-
- wid = LONGEST_ARCH + strlen (bfd_target_vector[t]->name) + 1;
- ++t;
- while (wid < columns && bfd_target_vector[t] != NULL)
- {
- int newwid;
-
- newwid = wid + strlen (bfd_target_vector[t]->name) + 1;
- if (newwid >= columns)
- break;
- wid = newwid;
- ++t;
- }
- if (! display_info_table (oldt, t))
- ret = 0;
- }
-
- return ret;
-}
-
-int
-display_info (void)
-{
- printf (_("BFD header file version %s\n"), BFD_VERSION_STRING);
- if (! display_target_list () || ! display_target_tables ())
- return 1;
- else
- return 0;
-}
-
-/* Display the archive header for an element as if it were an ls -l listing:
-
- Mode User\tGroup\tSize\tDate Name */
-
-void
-print_arelt_descr (FILE *file, bfd *abfd, bfd_boolean verbose)
-{
- struct stat buf;
-
- if (verbose)
- {
- if (bfd_stat_arch_elt (abfd, &buf) == 0)
- {
- char modebuf[11];
- char timebuf[40];
- time_t when = buf.st_mtime;
- const char *ctime_result = (const char *) ctime (&when);
-
- /* POSIX format: skip weekday and seconds from ctime output. */
- sprintf (timebuf, "%.12s %.4s", ctime_result + 4, ctime_result + 20);
-
- mode_string (buf.st_mode, modebuf);
- modebuf[10] = '\0';
- /* POSIX 1003.2/D11 says to skip first character (entry type). */
- fprintf (file, "%s %ld/%ld %6ld %s ", modebuf + 1,
- (long) buf.st_uid, (long) buf.st_gid,
- (long) buf.st_size, timebuf);
- }
- }
-
- fprintf (file, "%s\n", bfd_get_filename (abfd));
-}
-
-/* Return the name of a temporary file in the same directory as FILENAME. */
-
-char *
-make_tempname (char *filename)
-{
- static char template[] = "stXXXXXX";
- char *tmpname;
- char *slash = strrchr (filename, '/');
-
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- {
- /* We could have foo/bar\\baz, or foo\\bar, or d:bar. */
- char *bslash = strrchr (filename, '\\');
- if (slash == NULL || (bslash != NULL && bslash > slash))
- slash = bslash;
- if (slash == NULL && filename[0] != '\0' && filename[1] == ':')
- slash = filename + 1;
- }
-#endif
-
- if (slash != (char *) NULL)
- {
- char c;
-
- c = *slash;
- *slash = 0;
- tmpname = xmalloc (strlen (filename) + sizeof (template) + 2);
- strcpy (tmpname, filename);
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- /* If tmpname is "X:", appending a slash will make it a root
- directory on drive X, which is NOT the same as the current
- directory on drive X. */
- if (tmpname[1] == ':' && tmpname[2] == '\0')
- strcat (tmpname, ".");
-#endif
- strcat (tmpname, "/");
- strcat (tmpname, template);
- mktemp (tmpname);
- *slash = c;
- }
- else
- {
- tmpname = xmalloc (sizeof (template));
- strcpy (tmpname, template);
- mktemp (tmpname);
- }
- return tmpname;
-}
-
-/* Parse a string into a VMA, with a fatal error if it can't be
- parsed. */
-
-bfd_vma
-parse_vma (const char *s, const char *arg)
-{
- bfd_vma ret;
- const char *end;
-
- ret = bfd_scan_vma (s, &end, 0);
-
- if (*end != '\0')
- fatal (_("%s: bad number: %s"), arg, s);
-
- return ret;
-}
-
-/* Returns the size of the named file. If the file does not
- exist, or if it is not a real file, then a suitable non-fatal
- error message is printed and zero is returned. */
-
-off_t
-get_file_size (const char * file_name)
-{
- struct stat statbuf;
-
- if (stat (file_name, &statbuf) < 0)
- {
- if (errno == ENOENT)
- non_fatal (_("'%s': No such file"), file_name);
- else
- non_fatal (_("Warning: could not locate '%s'. reason: %s"),
- file_name, strerror (errno));
- }
- else if (! S_ISREG (statbuf.st_mode))
- non_fatal (_("Warning: '%s' is not an ordinary file"), file_name);
- else
- return statbuf.st_size;
-
- return 0;
-}
-
-/* Return the filename in a static buffer. */
-
-const char *
-bfd_get_archive_filename (bfd *abfd)
-{
- static size_t curr = 0;
- static char *buf;
- size_t needed;
-
- assert (abfd != NULL);
-
- if (!abfd->my_archive)
- return bfd_get_filename (abfd);
-
- needed = (strlen (bfd_get_filename (abfd->my_archive))
- + strlen (bfd_get_filename (abfd)) + 3);
- if (needed > curr)
- {
- if (curr)
- free (buf);
- curr = needed + (needed >> 1);
- buf = bfd_malloc (curr);
- /* If we can't malloc, fail safe by returning just the file name.
- This function is only used when building error messages. */
- if (!buf)
- {
- curr = 0;
- return bfd_get_filename (abfd);
- }
- }
- sprintf (buf, "%s(%s)", bfd_get_filename (abfd->my_archive),
- bfd_get_filename (abfd));
- return buf;
-}
diff --git a/binutils-2.17/binutils/bucomm.h b/binutils-2.17/binutils/bucomm.h
deleted file mode 100644
index 9f914ade..00000000
--- a/binutils-2.17/binutils/bucomm.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/* bucomm.h -- binutils common include file.
- Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef _BUCOMM_H
-#define _BUCOMM_H
-
-#include "ansidecl.h"
-#include <stdio.h>
-#include <sys/types.h>
-
-#include "config.h"
-#include "bin-bugs.h"
-
-#include <stdarg.h>
-
-#ifdef USE_BINARY_FOPEN
-#include "fopen-bin.h"
-#else
-#include "fopen-same.h"
-#endif
-
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#else
-extern char *strchr ();
-extern char *strrchr ();
-#endif
-#endif
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#else
-#ifdef HAVE_SYS_FILE_H
-#include <sys/file.h>
-#endif
-#endif
-
-#if !HAVE_DECL_STPCPY
-extern char *stpcpy (char *, const char *);
-#endif
-
-#if !HAVE_DECL_STRSTR
-extern char *strstr ();
-#endif
-
-#ifdef HAVE_SBRK
-#if !HAVE_DECL_SBRK
-extern char *sbrk ();
-#endif
-#endif
-
-#if !HAVE_DECL_GETENV
-extern char *getenv ();
-#endif
-
-#if !HAVE_DECL_ENVIRON
-extern char **environ;
-#endif
-
-#if !HAVE_DECL_FPRINTF
-extern int fprintf (FILE *, const char *, ...);
-#endif
-
-#if !HAVE_DECL_SNPRINTF
-extern int snprintf(char *, size_t, const char *, ...);
-#endif
-
-#if !HAVE_DECL_VSNPRINTF
-extern int vsnprintf(char *, size_t, const char *, va_list);
-#endif
-
-#ifndef O_RDONLY
-#define O_RDONLY 0
-#endif
-
-#ifndef O_RDWR
-#define O_RDWR 2
-#endif
-
-#ifndef SEEK_SET
-#define SEEK_SET 0
-#endif
-#ifndef SEEK_CUR
-#define SEEK_CUR 1
-#endif
-#ifndef SEEK_END
-#define SEEK_END 2
-#endif
-
-#if defined(__GNUC__) && !defined(C_ALLOCA)
-# undef alloca
-# define alloca __builtin_alloca
-#else
-# if defined(HAVE_ALLOCA_H) && !defined(C_ALLOCA)
-# include <alloca.h>
-# else
-# ifndef alloca /* predefined by HP cc +Olibcalls */
-# if !defined (__STDC__) && !defined (__hpux)
-char *alloca ();
-# else
-void *alloca ();
-# endif /* __STDC__, __hpux */
-# endif /* alloca */
-# endif /* HAVE_ALLOCA_H */
-#endif
-
-
-#ifdef HAVE_LOCALE_H
-# ifndef ENABLE_NLS
- /* The Solaris version of locale.h always includes libintl.h. If we have
- been configured with --disable-nls then ENABLE_NLS will not be defined
- and the dummy definitions of bindtextdomain (et al) below will conflict
- with the defintions in libintl.h. So we define these values to prevent
- the bogus inclusion of libintl.h. */
-# define _LIBINTL_H
-# define _LIBGETTEXT_H
-# endif
-# include <locale.h>
-#endif
-
-#ifdef ENABLE_NLS
-# include <libintl.h>
-# define _(String) gettext (String)
-# ifdef gettext_noop
-# define N_(String) gettext_noop (String)
-# else
-# define N_(String) (String)
-# endif
-#else
-# define gettext(Msgid) (Msgid)
-# define dgettext(Domainname, Msgid) (Msgid)
-# define dcgettext(Domainname, Msgid, Category) (Msgid)
-# define textdomain(Domainname) while (0) /* nothing */
-# define bindtextdomain(Domainname, Dirname) while (0) /* nothing */
-# define _(String) (String)
-# define N_(String) (String)
-#endif
-
-/* Used by ar.c and objcopy.c. */
-#define BUFSIZE 8192
-
-/* bucomm.c */
-
-/* Return the filename in a static buffer. */
-const char *bfd_get_archive_filename (bfd *);
-
-void bfd_nonfatal (const char *);
-
-void bfd_fatal (const char *) ATTRIBUTE_NORETURN;
-
-void report (const char *, va_list) ATTRIBUTE_PRINTF(1,0);
-
-void fatal (const char *, ...) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-
-void non_fatal (const char *, ...) ATTRIBUTE_PRINTF_1;
-
-void set_default_bfd_target (void);
-
-void list_matching_formats (char **);
-
-void list_supported_targets (const char *, FILE *);
-
-void list_supported_architectures (const char *, FILE *);
-
-int display_info (void);
-
-void print_arelt_descr (FILE *, bfd *, bfd_boolean);
-
-char *make_tempname (char *);
-
-bfd_vma parse_vma (const char *, const char *);
-
-off_t get_file_size (const char *);
-
-extern char *program_name;
-
-/* filemode.c */
-void mode_string (unsigned long, char *);
-
-/* version.c */
-extern void print_version (const char *);
-
-/* rename.c */
-extern void set_times (const char *, const struct stat *);
-
-extern int smart_rename (const char *, const char *, int);
-
-/* libiberty. */
-void *xmalloc (size_t);
-
-void *xrealloc (void *, size_t);
-
-#endif /* _BUCOMM_H */
diff --git a/binutils-2.17/binutils/budbg.h b/binutils-2.17/binutils/budbg.h
deleted file mode 100644
index 3524190a..00000000
--- a/binutils-2.17/binutils/budbg.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* budbg.c -- Interfaces to the generic debugging information routines.
- Copyright 1995, 1996, 2002, 2003 Free Software Foundation, Inc.
- Written by Ian Lance Taylor <ian@cygnus.com>.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#ifndef BUDBG_H
-#define BUDBG_H
-
-#include <stdio.h>
-
-/* Routine used to read generic debugging information. */
-
-extern void *read_debugging_info (bfd *, asymbol **, long);
-
-/* Routine used to print generic debugging information. */
-
-extern bfd_boolean print_debugging_info
- (FILE *, void *, bfd *, asymbol **, void *, bfd_boolean);
-
-/* Routines used to read and write stabs information. */
-
-extern void *start_stab (void *, bfd *, bfd_boolean, asymbol **, long);
-
-extern bfd_boolean finish_stab (void *, void *);
-
-extern bfd_boolean parse_stab
- (void *, void *, int, int, bfd_vma, const char *);
-
-extern bfd_boolean write_stabs_in_sections_debugging_info
- (bfd *, void *, bfd_byte **, bfd_size_type *, bfd_byte **, bfd_size_type *);
-
-/* Routines used to read and write IEEE debugging information. */
-
-extern bfd_boolean parse_ieee (void *, bfd *, const bfd_byte *, bfd_size_type);
-
-extern bfd_boolean write_ieee_debugging_info (bfd *, void *);
-
-/* Routine used to read COFF debugging information. */
-
-extern bfd_boolean parse_coff (bfd *, asymbol **, long, void *);
-
-#endif
diff --git a/binutils-2.17/binutils/budemang.c b/binutils-2.17/binutils/budemang.c
deleted file mode 100644
index 55f10b78..00000000
--- a/binutils-2.17/binutils/budemang.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* demangle.c -- A wrapper calling libiberty cplus_demangle
- Copyright 2002, 2003, 2004 Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#include "config.h"
-#include <stdlib.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-#include "bfd.h"
-#include "libiberty.h"
-#include "demangle.h"
-#include "budemang.h"
-
-/* Wrapper around cplus_demangle. Strips leading underscores and
- other such chars that would otherwise confuse the demangler. */
-
-char *
-demangle (bfd *abfd, const char *name)
-{
- char *res, *alloc;
- const char *pre, *suf;
- size_t pre_len;
-
- if (abfd != NULL && bfd_get_symbol_leading_char (abfd) == name[0])
- ++name;
-
- /* This is a hack for better error reporting on XCOFF, PowerPC64-ELF
- or the MS PE format. These formats have a number of leading '.'s
- on at least some symbols, so we remove all dots to avoid
- confusing the demangler. */
- pre = name;
- while (*name == '.')
- ++name;
- pre_len = name - pre;
-
- alloc = NULL;
- suf = strchr (name, '@');
- if (suf != NULL)
- {
- alloc = xmalloc (suf - name + 1);
- memcpy (alloc, name, suf - name);
- alloc[suf - name] = '\0';
- name = alloc;
- }
-
- res = cplus_demangle (name, DMGL_ANSI | DMGL_PARAMS);
- if (res != NULL)
- {
- /* Now put back any suffix, or stripped dots. */
- if (pre_len != 0 || suf != NULL)
- {
- size_t len;
- size_t suf_len;
- char *final;
-
- if (alloc != NULL)
- free (alloc);
-
- len = strlen (res);
- if (suf == NULL)
- suf = res + len;
- suf_len = strlen (suf) + 1;
- final = xmalloc (pre_len + len + suf_len);
-
- memcpy (final, pre, pre_len);
- memcpy (final + pre_len, res, len);
- memcpy (final + pre_len + len, suf, suf_len);
- free (res);
- res = final;
- }
-
- return res;
- }
-
- if (alloc != NULL)
- free (alloc);
-
- return xstrdup (pre);
-}
diff --git a/binutils-2.17/binutils/budemang.h b/binutils-2.17/binutils/budemang.h
deleted file mode 100644
index 17df9f55..00000000
--- a/binutils-2.17/binutils/budemang.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* demangle.h -- A wrapper calling libiberty cplus_demangle
- Copyright 2002, 2003 Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-#ifndef BUDEMANG_H
-#define BUDEMANG_H
-
-char *demangle (bfd *, const char *);
-
-#endif
diff --git a/binutils-2.17/binutils/coffdump.c b/binutils-2.17/binutils/coffdump.c
deleted file mode 100644
index 5ec23b43..00000000
--- a/binutils-2.17/binutils/coffdump.c
+++ /dev/null
@@ -1,553 +0,0 @@
-/* Coff file dumper.
- Copyright 1994, 1995, 1998, 1999, 2000, 2001, 2002, 2003
- Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Written by Steve Chamberlain <sac@cygnus.com>
-
- This module reads a type tree generated by coffgrok and prints
- it out so we can test the grokker. */
-
-#include "bfd.h"
-#include "libiberty.h"
-
-#include "coffgrok.h"
-#include "bucomm.h"
-#include "getopt.h"
-
-static int atnl;
-
-static void tab (int);
-static void nl (void);
-static void dump_coff_lines (struct coff_line *);
-static void dump_coff_type (struct coff_type *);
-static void dump_coff_where (struct coff_where *);
-static void dump_coff_visible (struct coff_visible *);
-static void dump_coff_scope (struct coff_scope *);
-static void dump_coff_sfile (struct coff_sfile *);
-static void dump_coff_section (struct coff_section *);
-static void show_usage (FILE *, int);
-extern int main (int, char **);
-
-static void
-tab (int x)
-{
- static int indent;
- int i;
-
- if (atnl)
- {
- if (x < 0)
- {
- printf (")");
- indent += x;
-
- return;
- }
- else
- {
- printf ("\n");
- atnl = 0;
- }
- }
-
- if (x == -1)
- {
- for (i = 0; i < indent; i++)
- printf (" ");
-
- indent += x;
- printf (")");
- return;
- }
-
- indent += x;
-
- for (i = 0; i < indent; i++)
- printf (" ");
-
- if (x)
- {
- printf ("(");
- }
-}
-
-static void
-nl (void)
-{
- atnl = 1;
-}
-
-static void
-dump_coff_lines (struct coff_line *p)
-{
- int i;
- int online = 0;
-
- tab (1);
- printf (_("#lines %d "),p->nlines);
-
- for (i = 0; i < p->nlines; i++)
- {
- printf ("(%d 0x%x)", p->lines[i], p->addresses[i]);
-
- online++;
-
- if (online > 6)
- {
- nl ();
- tab (0);
- online = 0;
- }
- }
- nl ();
- tab (-1);
-}
-
-static void
-dump_coff_type (struct coff_type *p)
-{
- tab (1);
- printf ("size %d ", p->size);
-
- switch (p->type)
- {
- case coff_secdef_type:
- printf ("section definition at %x size %x\n",
- p->u.asecdef.address,
- p->u.asecdef.size);
- nl ();
- break;
- case coff_pointer_type:
- printf ("pointer to");
- nl ();
- dump_coff_type (p->u.pointer.points_to);
- break;
- case coff_array_type:
- printf ("array [%d] of", p->u.array.dim);
- nl ();
- dump_coff_type (p->u.array.array_of);
- break;
- case coff_function_type:
- printf ("function returning");
- nl ();
- dump_coff_type (p->u.function.function_returns);
- dump_coff_lines (p->u.function.lines);
- printf ("arguments");
- nl ();
- dump_coff_scope (p->u.function.parameters);
- tab (0);
- printf ("code");
- nl ();
- dump_coff_scope (p->u.function.code);
- tab(0);
- break;
- case coff_structdef_type:
- printf ("structure definition");
- nl ();
- dump_coff_scope (p->u.astructdef.elements);
- break;
- case coff_structref_type:
- if (!p->u.aenumref.ref)
- printf ("structure ref to UNKNOWN struct");
- else
- printf ("structure ref to %s", p->u.aenumref.ref->name);
- break;
- case coff_enumref_type:
- printf ("enum ref to %s", p->u.astructref.ref->name);
- break;
- case coff_enumdef_type:
- printf ("enum definition");
- nl ();
- dump_coff_scope (p->u.aenumdef.elements);
- break;
- case coff_basic_type:
- switch (p->u.basic)
- {
- case T_NULL:
- printf ("NULL");
- break;
- case T_VOID:
- printf ("VOID");
- break;
- case T_CHAR:
- printf ("CHAR");
- break;
- case T_SHORT:
- printf ("SHORT");
- break;
- case T_INT:
- printf ("INT ");
- break;
- case T_LONG:
- printf ("LONG");
- break;
- case T_FLOAT:
- printf ("FLOAT");
- break;
- case T_DOUBLE:
- printf ("DOUBLE");
- break;
- case T_STRUCT:
- printf ("STRUCT");
- break;
- case T_UNION:
- printf ("UNION");
- break;
- case T_ENUM:
- printf ("ENUM");
- break;
- case T_MOE:
- printf ("MOE ");
- break;
- case T_UCHAR:
- printf ("UCHAR");
- break;
- case T_USHORT:
- printf ("USHORT");
- break;
- case T_UINT:
- printf ("UINT");
- break;
- case T_ULONG:
- printf ("ULONG");
- break;
- case T_LNGDBL:
- printf ("LNGDBL");
- break;
- default:
- abort ();
- }
- }
- nl ();
- tab (-1);
-}
-
-static void
-dump_coff_where (struct coff_where *p)
-{
- tab (1);
- switch (p->where)
- {
- case coff_where_stack:
- printf ("Stack offset %x", p->offset);
- break;
- case coff_where_memory:
- printf ("Memory section %s+%x", p->section->name, p->offset);
- break;
- case coff_where_register:
- printf ("Register %d", p->offset);
- break;
- case coff_where_member_of_struct:
- printf ("Struct Member offset %x", p->offset);
- break;
- case coff_where_member_of_enum:
- printf ("Enum Member offset %x", p->offset);
- break;
- case coff_where_unknown:
- printf ("Undefined symbol");
- break;
- case coff_where_strtag:
- printf ("STRTAG");
- case coff_where_entag:
- printf ("ENTAG");
- break;
- case coff_where_typedef:
- printf ("TYPEDEF");
- break;
- default:
- abort ();
- }
- nl ();
- tab (-1);
-}
-
-static void
-dump_coff_visible (struct coff_visible *p)
-{
- tab (1);
- switch (p->type)
- {
- case coff_vis_ext_def:
- printf ("coff_vis_ext_def");
- break;
- case coff_vis_ext_ref:
- printf ("coff_vis_ext_ref");
- break;
- case coff_vis_int_def:
- printf ("coff_vis_int_def");
- break;
- case coff_vis_common:
- printf ("coff_vis_common");
- break;
- case coff_vis_auto:
- printf ("coff_vis_auto");
- break;
- case coff_vis_autoparam:
- printf ("coff_vis_autoparam");
- break;
- case coff_vis_regparam:
- printf ("coff_vis_regparam");
- break;
- case coff_vis_register:
- printf ("coff_vis_register");
- break;
- case coff_vis_tag:
- printf ("coff_vis_tag");
- break;
- case coff_vis_member_of_struct:
- printf ("coff_vis_member_of_struct");
- break;
- case coff_vis_member_of_enum:
- printf ("coff_vis_member_of_enum");
- break;
- default:
- abort ();
- }
- nl ();
- tab (-1);
-}
-
-static void
-dump_coff_symbol (struct coff_symbol *p)
-{
- tab (1);
- printf ("List of symbols");
- nl ();
-
- while (p)
- {
- tab (1);
- tab (1);
- printf ("Symbol %s, tag %d, number %d", p->name, p->tag, p->number);
- nl ();
- tab (-1);
- tab (1);
- printf ("Type");
- nl ();
- dump_coff_type (p->type);
- tab (-1);
- tab (1);
- printf ("Where");
- dump_coff_where (p->where);
- tab (-1);
- tab (1);
- printf ("Visible");
- dump_coff_visible (p->visible);
- tab (-1);
- p = p->next;
- tab (-1);
- }
- tab (-1);
-}
-
-static void
-dump_coff_scope (struct coff_scope *p)
-{
- if (p)
- {
- tab (1);
- printf ("List of blocks %lx ",(unsigned long) p);
-
- if (p->sec)
- printf( " %s %x..%x", p->sec->name,p->offset, p->offset + p->size -1);
-
- nl ();
- tab (0);
- printf ("*****************");
- nl ();
-
- while (p)
- {
- tab (0);
- printf ("vars %d", p->nvars);
- nl ();
- dump_coff_symbol (p->vars_head);
- printf ("blocks");
- nl ();
- dump_coff_scope (p->list_head);
- nl ();
- p = p->next;
- }
-
- tab (0);
- printf ("*****************");
- nl ();
- tab (-1);
- }
-}
-
-static void
-dump_coff_sfile (struct coff_sfile *p)
-{
- tab (1);
- printf ("List of source files");
- nl ();
-
- while (p)
- {
- tab (0);
- printf ("Source file %s", p->name);
- nl ();
- dump_coff_scope (p->scope);
- p = p->next;
- }
- tab (-1);
-}
-
-static void
-dump_coff_section (struct coff_section *ptr)
-{
- int i;
-
- tab (1);
- printf ("section %s %d %d address %x size %x number %d nrelocs %d",
- ptr->name, ptr->code, ptr->data, ptr->address,ptr->size,
- ptr->number, ptr->nrelocs);
- nl ();
-
- for (i = 0; i < ptr->nrelocs; i++)
- {
- tab (0);
- printf ("(%x %s %x)",
- ptr->relocs[i].offset,
- ptr->relocs[i].symbol->name,
- ptr->relocs[i].addend);
- nl ();
- }
-
- tab (-1);
-}
-
-static void
-coff_dump (struct coff_ofile *ptr)
-{
- int i;
-
- printf ("Coff dump");
- nl ();
- printf ("#souces %d", ptr->nsources);
- nl ();
- dump_coff_sfile (ptr->source_head);
-
- for (i = 0; i < ptr->nsections; i++)
- dump_coff_section (ptr->sections + i);
-}
-
-char * program_name;
-
-static void
-show_usage (FILE *file, int status)
-{
- fprintf (file, _("Usage: %s [option(s)] in-file\n"), program_name);
- fprintf (file, _(" Print a human readable interpretation of a SYSROFF object file\n"));
- fprintf (file, _(" The options are:\n\
- @<file> Read options from <file>\n\
- -h --help Display this information\n\
- -v --version Display the program's version\n\
-\n"));
-
- if (status == 0)
- fprintf (file, _("Report bugs to %s\n"), REPORT_BUGS_TO);
-
- exit (status);
-}
-
-int
-main (int ac, char **av)
-{
- bfd *abfd;
- struct coff_ofile *tree;
- char **matching;
- char *input_file = NULL;
- int opt;
- static struct option long_options[] =
- {
- { "help", no_argument, 0, 'h' },
- { "version", no_argument, 0, 'V' },
- { NULL, no_argument, 0, 0 }
- };
-
-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- program_name = av[0];
- xmalloc_set_program_name (program_name);
-
- expandargv (&ac, &av);
-
- while ((opt = getopt_long (ac, av, "HhVv", long_options,
- (int *) NULL))
- != EOF)
- {
- switch (opt)
- {
- case 'H':
- case 'h':
- show_usage (stdout, 0);
- break;
- case 'v':
- case 'V':
- print_version ("coffdump");
- exit (0);
- case 0:
- break;
- default:
- show_usage (stderr, 1);
- break;
- }
- }
-
- if (optind < ac)
- {
- input_file = av[optind];
- }
-
- if (!input_file)
- fatal (_("no input file specified"));
-
- abfd = bfd_openr (input_file, 0);
-
- if (!abfd)
- bfd_fatal (input_file);
-
- if (! bfd_check_format_matches (abfd, bfd_object, &matching))
- {
- bfd_nonfatal (input_file);
-
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- {
- list_matching_formats (matching);
- free (matching);
- }
- exit (1);
- }
-
- tree = coff_grok (abfd);
-
- coff_dump (tree);
- printf ("\n");
-
- return 0;
-}
diff --git a/binutils-2.17/binutils/coffgrok.c b/binutils-2.17/binutils/coffgrok.c
deleted file mode 100644
index a6c05b14..00000000
--- a/binutils-2.17/binutils/coffgrok.c
+++ /dev/null
@@ -1,741 +0,0 @@
-/* coffgrok.c
- Copyright 1994, 1995, 1997, 1998, 2000, 2001, 2002, 2003, 2004
- Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Written by Steve Chamberlain (sac@cygnus.com)
-
- This module reads a coff file and builds a really simple type tree
- which can be read by other programs. The first application is a
- coff->sysroff converter. It can be tested with coffdump.c.
-
-*/
-
-#include "bfd.h"
-#include "libiberty.h"
-#include "bucomm.h"
-
-#include "coff/internal.h"
-#include "../bfd/libcoff.h"
-#include "coffgrok.h"
-static int lofile = 1;
-static struct coff_scope *top_scope;
-static struct coff_scope *file_scope;
-static struct coff_ofile *ofile;
-
-static struct coff_symbol *last_function_symbol;
-static struct coff_type *last_function_type;
-static struct coff_type *last_struct;
-static struct coff_type *last_enum;
-static struct coff_sfile *cur_sfile;
-
-static struct coff_symbol **tindex;
-
-
-static asymbol **syms;
-static long symcount;
-
-#define N(x) ((x)->_n._n_nptr[1])
-
-static struct coff_ptr_struct *rawsyms;
-static int rawcount;
-static bfd *abfd;
-
-#define PTR_SIZE 4
-#define SHORT_SIZE 2
-#define INT_SIZE 4
-#define LONG_SIZE 4
-#define FLOAT_SIZE 4
-#define DOUBLE_SIZE 8
-
-#define INDEXOF(p) ((struct coff_ptr_struct *)(p)-(rawsyms))
-
-static struct coff_scope *empty_scope (void);
-static struct coff_symbol *empty_symbol (void);
-static void push_scope (int);
-static void pop_scope (void);
-static void do_sections_p1 (struct coff_ofile *);
-static void do_sections_p2 (struct coff_ofile *);
-static struct coff_where *do_where (int);
-static struct coff_line *do_lines (int, char *);
-static struct coff_type *do_type (int);
-static struct coff_visible *do_visible (int);
-static int do_define (int, struct coff_scope *);
-static struct coff_ofile *doit (void);
-
-static struct coff_scope *
-empty_scope (void)
-{
- struct coff_scope *l;
- l = (struct coff_scope *) (xcalloc (sizeof (struct coff_scope), 1));
- return l;
-}
-
-static struct coff_symbol *
-empty_symbol (void)
-{
- return (struct coff_symbol *) (xcalloc (sizeof (struct coff_symbol), 1));
-}
-
-/*int l;*/
-static void
-push_scope (int link)
-{
- struct coff_scope *n = empty_scope ();
- if (link)
- {
- if (top_scope)
- {
- if (top_scope->list_tail)
- {
- top_scope->list_tail->next = n;
- }
- else
- {
- top_scope->list_head = n;
- }
- top_scope->list_tail = n;
- }
- }
- n->parent = top_scope;
-
- top_scope = n;
-}
-
-static void
-pop_scope (void)
-{
- top_scope = top_scope->parent;
-}
-
-static void
-do_sections_p1 (struct coff_ofile *head)
-{
- asection *section;
- int idx;
- struct coff_section *all = (struct coff_section *) (xcalloc (abfd->section_count + 1,
- sizeof (struct coff_section)));
- head->nsections = abfd->section_count + 1;
- head->sections = all;
-
- for (idx = 0, section = abfd->sections; section; section = section->next, idx++)
- {
- long relsize;
- int i = section->target_index;
- arelent **relpp;
- long relcount;
-
- relsize = bfd_get_reloc_upper_bound (abfd, section);
- if (relsize < 0)
- bfd_fatal (bfd_get_filename (abfd));
- if (relsize == 0)
- continue;
- relpp = (arelent **) xmalloc (relsize);
- relcount = bfd_canonicalize_reloc (abfd, section, relpp, syms);
- if (relcount < 0)
- bfd_fatal (bfd_get_filename (abfd));
-
- head->sections[i].name = (char *) (section->name);
- head->sections[i].code = section->flags & SEC_CODE;
- head->sections[i].data = section->flags & SEC_DATA;
- if (strcmp (section->name, ".bss") == 0)
- head->sections[i].data = 1;
- head->sections[i].address = section->lma;
- head->sections[i].size = bfd_get_section_size (section);
- head->sections[i].number = idx;
- head->sections[i].nrelocs = section->reloc_count;
- head->sections[i].relocs =
- (struct coff_reloc *) (xcalloc (section->reloc_count,
- sizeof (struct coff_reloc)));
- head->sections[i].bfd_section = section;
- }
- head->sections[0].name = "ABSOLUTE";
- head->sections[0].code = 0;
- head->sections[0].data = 0;
- head->sections[0].address = 0;
- head->sections[0].size = 0;
- head->sections[0].number = 0;
-}
-
-static void
-do_sections_p2 (struct coff_ofile *head)
-{
- asection *section;
- for (section = abfd->sections; section; section = section->next)
- {
- unsigned int j;
-
- for (j = 0; j < section->reloc_count; j++)
- {
- int idx;
- int i = section->target_index;
- struct coff_reloc *r = head->sections[i].relocs + j;
- arelent *sr = section->relocation + j;
- r->offset = sr->address;
- r->addend = sr->addend;
- idx = ((coff_symbol_type *) (sr->sym_ptr_ptr[0]))->native - rawsyms;
- r->symbol = tindex[idx];
- }
- }
-}
-
-static struct coff_where *
-do_where (int i)
-{
- struct internal_syment *sym = &rawsyms[i].u.syment;
- struct coff_where *where =
- (struct coff_where *) (xmalloc (sizeof (struct coff_where)));
- where->offset = sym->n_value;
-
- if (sym->n_scnum == -1)
- sym->n_scnum = 0;
-
- switch (sym->n_sclass)
- {
- case C_FIELD:
- where->where = coff_where_member_of_struct;
- where->offset = sym->n_value / 8;
- where->bitoffset = sym->n_value % 8;
- where->bitsize = rawsyms[i + 1].u.auxent.x_sym.x_misc.x_lnsz.x_size;
- break;
- case C_MOE:
- where->where = coff_where_member_of_enum;
- break;
- case C_MOS:
- case C_MOU:
- where->where = coff_where_member_of_struct;
- break;
- case C_AUTO:
- case C_ARG:
- where->where = coff_where_stack;
- break;
- case C_EXT:
- case C_STAT:
- case C_EXTDEF:
- case C_LABEL:
- where->where = coff_where_memory;
- where->section = &ofile->sections[sym->n_scnum];
- break;
- case C_REG:
- case C_REGPARM:
- where->where = coff_where_register;
- break;
- case C_ENTAG:
- where->where = coff_where_entag;
- break;
- case C_STRTAG:
- case C_UNTAG:
- where->where = coff_where_strtag;
- break;
- case C_TPDEF:
- where->where = coff_where_typedef;
- break;
- default:
- abort ();
- break;
- }
- return where;
-}
-
-static
-struct coff_line *
-do_lines (int i, char *name ATTRIBUTE_UNUSED)
-{
- struct coff_line *res = (struct coff_line *) xcalloc (sizeof (struct coff_line), 1);
- asection *s;
- unsigned int l;
-
- /* Find out if this function has any line numbers in the table */
- for (s = abfd->sections; s; s = s->next)
- {
- for (l = 0; l < s->lineno_count; l++)
- {
- if (s->lineno[l].line_number == 0)
- {
- if (rawsyms + i == ((coff_symbol_type *) (&(s->lineno[l].u.sym[0])))->native)
- {
- /* These lines are for this function - so count them and stick them on */
- int c = 0;
- /* Find the linenumber of the top of the function, since coff linenumbers
- are relative to the start of the function. */
- int start_line = rawsyms[i + 3].u.auxent.x_sym.x_misc.x_lnsz.x_lnno;
-
- l++;
- for (c = 0; s->lineno[l + c + 1].line_number; c++)
- ;
-
- /* Add two extra records, one for the prologue and one for the epilogue */
- c += 1;
- res->nlines = c;
- res->lines = (int *) (xcalloc (sizeof (int), c));
- res->addresses = (int *) (xcalloc (sizeof (int), c));
- res->lines[0] = start_line;
- res->addresses[0] = rawsyms[i].u.syment.n_value - s->vma;
- for (c = 0; s->lineno[l + c + 1].line_number; c++)
- {
- res->lines[c + 1] = s->lineno[l + c].line_number + start_line - 1;
- res->addresses[c + 1] = s->lineno[l + c].u.offset;
- }
- return res;
- }
- }
- }
- }
- return res;
-}
-
-static
-struct coff_type *
-do_type (int i)
-{
- struct internal_syment *sym = &rawsyms[i].u.syment;
- union internal_auxent *aux = &rawsyms[i + 1].u.auxent;
- struct coff_type *res =
- (struct coff_type *) xmalloc (sizeof (struct coff_type));
- int type = sym->n_type;
- int which_dt = 0;
- int dimind = 0;
-
- res->type = coff_basic_type;
- res->u.basic = type & 0xf;
-
- switch (type & 0xf)
- {
- case T_NULL:
- case T_VOID:
- if (sym->n_numaux && sym->n_sclass == C_STAT)
- {
- /* This is probably a section definition */
- res->type = coff_secdef_type;
- res->size = aux->x_scn.x_scnlen;
- }
- else
- {
- if (type == 0)
- {
- /* Don't know what this is, let's make it a simple int */
- res->size = INT_SIZE;
- res->u.basic = T_UINT;
- }
- else
- {
- /* Else it could be a function or pointer to void */
- res->size = 0;
- }
- }
- break;
-
-
- break;
- case T_UCHAR:
- case T_CHAR:
- res->size = 1;
- break;
- case T_USHORT:
- case T_SHORT:
- res->size = SHORT_SIZE;
- break;
- case T_UINT:
- case T_INT:
- res->size = INT_SIZE;
- break;
- case T_ULONG:
- case T_LONG:
- res->size = LONG_SIZE;
- break;
- case T_FLOAT:
- res->size = FLOAT_SIZE;
- break;
- case T_DOUBLE:
- res->size = DOUBLE_SIZE;
- break;
- case T_STRUCT:
- case T_UNION:
- if (sym->n_numaux)
- {
- if (aux->x_sym.x_tagndx.p)
- {
- /* Referring to a struct defined elsewhere */
- res->type = coff_structref_type;
- res->u.astructref.ref = tindex[INDEXOF (aux->x_sym.x_tagndx.p)];
- res->size = res->u.astructref.ref ?
- res->u.astructref.ref->type->size : 0;
- }
- else
- {
- /* A definition of a struct */
- last_struct = res;
- res->type = coff_structdef_type;
- res->u.astructdef.elements = empty_scope ();
- res->u.astructdef.idx = 0;
- res->u.astructdef.isstruct = (type & 0xf) == T_STRUCT;
- res->size = aux->x_sym.x_misc.x_lnsz.x_size;
- }
- }
- else
- {
- /* No auxents - it's anonymous */
- res->type = coff_structref_type;
- res->u.astructref.ref = 0;
- res->size = 0;
- }
- break;
- case T_ENUM:
- if (aux->x_sym.x_tagndx.p)
- {
- /* Referring to a enum defined elsewhere */
- res->type = coff_enumref_type;
- res->u.aenumref.ref = tindex[INDEXOF (aux->x_sym.x_tagndx.p)];
- res->size = res->u.aenumref.ref->type->size;
- }
- else
- {
- /* A definition of an enum */
- last_enum = res;
- res->type = coff_enumdef_type;
- res->u.aenumdef.elements = empty_scope ();
- res->size = aux->x_sym.x_misc.x_lnsz.x_size;
- }
- break;
- case T_MOE:
- break;
- }
-
- for (which_dt = 5; which_dt >= 0; which_dt--)
- {
- switch ((type >> ((which_dt * 2) + 4)) & 0x3)
- {
- case 0:
- break;
- case DT_ARY:
- {
- struct coff_type *ptr = ((struct coff_type *)
- xmalloc (sizeof (struct coff_type)));
- int els = (dimind < DIMNUM
- ? aux->x_sym.x_fcnary.x_ary.x_dimen[dimind]
- : 0);
- ++dimind;
- ptr->type = coff_array_type;
- ptr->size = els * res->size;
- ptr->u.array.dim = els;
- ptr->u.array.array_of = res;
- res = ptr;
- break;
- }
- case DT_PTR:
- {
- struct coff_type *ptr =
- (struct coff_type *) xmalloc (sizeof (struct coff_type));
- ptr->size = PTR_SIZE;
- ptr->type = coff_pointer_type;
- ptr->u.pointer.points_to = res;
- res = ptr;
- break;
- }
- case DT_FCN:
- {
- struct coff_type *ptr
- = (struct coff_type *) xmalloc (sizeof (struct coff_type));
- ptr->size = 0;
- ptr->type = coff_function_type;
- ptr->u.function.function_returns = res;
- ptr->u.function.parameters = empty_scope ();
- ptr->u.function.lines = do_lines (i, sym->_n._n_nptr[1]);
- ptr->u.function.code = 0;
- last_function_type = ptr;
- res = ptr;
- break;
- }
- }
- }
- return res;
-}
-
-static struct coff_visible *
-do_visible (int i)
-{
- struct internal_syment *sym = &rawsyms[i].u.syment;
- struct coff_visible *visible =
- (struct coff_visible *) (xmalloc (sizeof (struct coff_visible)));
- enum coff_vis_type t;
- switch (sym->n_sclass)
- {
- case C_MOS:
- case C_MOU:
- case C_FIELD:
- t = coff_vis_member_of_struct;
- break;
- case C_MOE:
- t = coff_vis_member_of_enum;
- break;
-
- case C_REGPARM:
- t = coff_vis_regparam;
- break;
-
- case C_REG:
- t = coff_vis_register;
- break;
- case C_STRTAG:
- case C_UNTAG:
- case C_ENTAG:
- case C_TPDEF:
- t = coff_vis_tag;
- break;
- case C_AUTOARG:
- case C_ARG:
- t = coff_vis_autoparam;
- break;
- case C_AUTO:
-
-
- t = coff_vis_auto;
- break;
- case C_LABEL:
- case C_STAT:
- t = coff_vis_int_def;
- break;
- case C_EXT:
- if (sym->n_scnum == N_UNDEF)
- {
- if (sym->n_value)
- t = coff_vis_common;
- else
- t = coff_vis_ext_ref;
- }
- else
- t = coff_vis_ext_def;
- break;
- default:
- abort ();
- break;
-
- }
- visible->type = t;
- return visible;
-}
-
-static int
-do_define (int i, struct coff_scope *b)
-{
- static int symbol_index;
- struct internal_syment *sym = &rawsyms[i].u.syment;
-
- /* Define a symbol and attach to block b */
- struct coff_symbol *s = empty_symbol ();
-
- s->number = ++symbol_index;
- s->name = sym->_n._n_nptr[1];
- s->sfile = cur_sfile;
- /* Glue onto the ofile list */
- if (lofile >= 0)
- {
- if (ofile->symbol_list_tail)
- ofile->symbol_list_tail->next_in_ofile_list = s;
- else
- ofile->symbol_list_head = s;
- ofile->symbol_list_tail = s;
- /* And the block list */
- }
- if (b->vars_tail)
- b->vars_tail->next = s;
- else
- b->vars_head = s;
-
- b->vars_tail = s;
- b->nvars++;
- s->type = do_type (i);
- s->where = do_where (i);
- s->visible = do_visible (i);
-
- tindex[i] = s;
-
- /* We remember the lowest address in each section for each source file */
-
- if (s->where->where == coff_where_memory
- && s->type->type == coff_secdef_type)
- {
- struct coff_isection *is = cur_sfile->section + s->where->section->number;
-
- if (!is->init)
- {
- is->low = s->where->offset;
- is->high = s->where->offset + s->type->size;
- is->init = 1;
- is->parent = s->where->section;
- }
-
- }
-
- if (s->type->type == coff_function_type)
- last_function_symbol = s;
-
- return i + sym->n_numaux + 1;
-}
-
-
-static
-struct coff_ofile *
-doit (void)
-{
- int i;
- int infile = 0;
- struct coff_ofile *head =
- (struct coff_ofile *) xmalloc (sizeof (struct coff_ofile));
- ofile = head;
- head->source_head = 0;
- head->source_tail = 0;
- head->nsources = 0;
- head->symbol_list_tail = 0;
- head->symbol_list_head = 0;
- do_sections_p1 (head);
- push_scope (1);
-
- for (i = 0; i < rawcount;)
- {
- struct internal_syment *sym = &rawsyms[i].u.syment;
- switch (sym->n_sclass)
- {
- case C_FILE:
- {
- /* new source file announced */
- struct coff_sfile *n =
- (struct coff_sfile *) xmalloc (sizeof (struct coff_sfile));
- n->section = (struct coff_isection *) xcalloc (sizeof (struct coff_isection), abfd->section_count + 1);
- cur_sfile = n;
- n->name = sym->_n._n_nptr[1];
- n->next = 0;
-
- if (infile)
- {
- pop_scope ();
- }
- infile = 1;
- push_scope (1);
- file_scope = n->scope = top_scope;
-
- if (head->source_tail)
- head->source_tail->next = n;
- else
- head->source_head = n;
- head->source_tail = n;
- head->nsources++;
- i += sym->n_numaux + 1;
- }
- break;
- case C_FCN:
- {
- char *name = sym->_n._n_nptr[1];
- if (name[1] == 'b')
- {
- /* Function start */
- push_scope (0);
- last_function_type->u.function.code = top_scope;
- top_scope->sec = ofile->sections + sym->n_scnum;
- top_scope->offset = sym->n_value;
- }
- else
- {
- top_scope->size = sym->n_value - top_scope->offset + 1;
- pop_scope ();
-
- }
- i += sym->n_numaux + 1;
- }
- break;
-
- case C_BLOCK:
- {
- char *name = sym->_n._n_nptr[1];
- if (name[1] == 'b')
- {
- /* Block start */
- push_scope (1);
- top_scope->sec = ofile->sections + sym->n_scnum;
- top_scope->offset = sym->n_value;
-
- }
- else
- {
- top_scope->size = sym->n_value - top_scope->offset + 1;
- pop_scope ();
- }
- i += sym->n_numaux + 1;
- }
- break;
- case C_REGPARM:
- case C_ARG:
- i = do_define (i, last_function_symbol->type->u.function.parameters);
- break;
- case C_MOS:
- case C_MOU:
- case C_FIELD:
- i = do_define (i, last_struct->u.astructdef.elements);
- break;
- case C_MOE:
- i = do_define (i, last_enum->u.aenumdef.elements);
- break;
- case C_STRTAG:
- case C_ENTAG:
- case C_UNTAG:
- /* Various definition */
- i = do_define (i, top_scope);
- break;
- case C_EXT:
- case C_LABEL:
- i = do_define (i, file_scope);
- break;
- case C_STAT:
- case C_TPDEF:
- case C_AUTO:
- case C_REG:
- i = do_define (i, top_scope);
- break;
- default:
- abort ();
- case C_EOS:
- i += sym->n_numaux + 1;
- break;
- }
- }
- do_sections_p2 (head);
- return head;
-}
-
-struct coff_ofile *
-coff_grok (bfd *inabfd)
-{
- long storage;
- struct coff_ofile *p;
- abfd = inabfd;
- storage = bfd_get_symtab_upper_bound (abfd);
-
- if (storage < 0)
- bfd_fatal (abfd->filename);
-
- syms = (asymbol **) xmalloc (storage);
- symcount = bfd_canonicalize_symtab (abfd, syms);
- if (symcount < 0)
- bfd_fatal (abfd->filename);
- rawsyms = obj_raw_syments (abfd);
- rawcount = obj_raw_syment_count (abfd);;
- tindex = (struct coff_symbol **) (xcalloc (sizeof (struct coff_symbol *), rawcount));
-
- p = doit ();
- return p;
-}
diff --git a/binutils-2.17/binutils/coffgrok.h b/binutils-2.17/binutils/coffgrok.h
deleted file mode 100644
index e6d0077a..00000000
--- a/binutils-2.17/binutils/coffgrok.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/* coffgrok.h
- Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#define T_NULL 0
-#define T_VOID 1 /* function argument (only used by compiler) */
-#define T_CHAR 2 /* character */
-#define T_SHORT 3 /* short integer */
-#define T_INT 4 /* integer */
-#define T_LONG 5 /* long integer */
-#define T_FLOAT 6 /* floating point */
-#define T_DOUBLE 7 /* double word */
-#define T_STRUCT 8 /* structure */
-#define T_UNION 9 /* union */
-#define T_ENUM 10 /* enumeration */
-#define T_MOE 11 /* member of enumeration*/
-#define T_UCHAR 12 /* unsigned character */
-#define T_USHORT 13 /* unsigned short */
-#define T_UINT 14 /* unsigned integer */
-#define T_ULONG 15 /* unsigned long */
-#define T_LNGDBL 16 /* long double */
-
-
- struct coff_reloc
- {
- int offset;
- struct coff_symbol *symbol;
- int addend;
- };
-
- struct coff_section
- {
- char *name;
- int code;
- int data;
- int address;
- int number; /* 0..n, .text = 0 */
- int nrelocs;
- int size;
- struct coff_reloc *relocs;
- struct bfd_section *bfd_section;
- };
-
-struct coff_ofile
-{
- int nsources;
- struct coff_sfile *source_head;
- struct coff_sfile *source_tail;
- int nsections;
- struct coff_section *sections;
- struct coff_symbol *symbol_list_head;
- struct coff_symbol *symbol_list_tail;
-};
-
-struct coff_isection {
- int low;
- int high;
- int init;
- struct coff_section *parent;
-};
-
-struct coff_sfile
-{
- char *name;
- struct coff_scope *scope;
- struct coff_sfile *next;
-
- /* Vector which maps where in each output section
- the input file has it's data */
- struct coff_isection *section;
-
-};
-
-
- struct coff_type
-{
- int size;
- enum
- {
- coff_pointer_type, coff_function_type, coff_array_type, coff_structdef_type, coff_basic_type,
- coff_structref_type, coff_enumref_type, coff_enumdef_type, coff_secdef_type
- } type;
- union
- {
- struct
- {
- int address;
- int size;
- } asecdef;
-
- struct
- {
- int isstruct;
- struct coff_scope *elements;
- int idx;
- }
- astructdef;
- struct
- {
- struct coff_symbol *ref;
- } astructref;
-
- struct
- {
- struct coff_scope *elements;
- int idx;
- } aenumdef;
- struct
- {
- struct coff_symbol *ref;
- } aenumref;
-
- struct
- {
- struct coff_type *points_to;
- } pointer;
- struct
- {
- int dim;
- struct coff_type *array_of;
- } array;
-
- struct
- {
- struct coff_type *function_returns;
- struct coff_scope *parameters;
- struct coff_scope *code;
- struct coff_line *lines;
- } function;
- int basic; /* One of T_VOID.. T_UINT */
- } u;
-};
-
-
- struct coff_line
- {
- int nlines;
- int *lines;
- int *addresses;
- };
-
-
- struct coff_scope
- {
- struct coff_section *sec; /* What section */
- int offset; /* where */
- int size; /* How big */
- struct coff_scope *parent; /* one up */
-
- struct coff_scope *next; /*next along */
-
- int nvars;
-
- struct coff_symbol *vars_head; /* symbols */
- struct coff_symbol *vars_tail;
-
- struct coff_scope *list_head; /* children */
- struct coff_scope *list_tail;
-
- };
-
-
- struct coff_visible
- {
- enum coff_vis_type
- {
- coff_vis_ext_def,
- coff_vis_ext_ref,
- coff_vis_int_def,
- coff_vis_common,
- coff_vis_auto,
- coff_vis_register,
- coff_vis_tag,
- coff_vis_member_of_struct,
- coff_vis_member_of_enum,
- coff_vis_autoparam,
- coff_vis_regparam,
- } type;
- };
-
- struct coff_where
- {
- enum
- {
- coff_where_stack, coff_where_memory, coff_where_register, coff_where_unknown,
- coff_where_strtag, coff_where_member_of_struct,
- coff_where_member_of_enum, coff_where_entag, coff_where_typedef
-
- } where;
- int offset;
- int bitoffset;
- int bitsize;
- struct coff_section *section;
- };
-
- struct coff_symbol
- {
- char *name;
- int tag;
- struct coff_type *type;
- struct coff_where *where;
- struct coff_visible *visible;
- struct coff_symbol *next;
- struct coff_symbol *next_in_ofile_list; /* For the ofile list */
- int number;
- int er_number;
- struct coff_sfile *sfile;
- };
-
-struct coff_ofile *coff_grok PARAMS ((bfd *));
diff --git a/binutils-2.17/binutils/config.in b/binutils-2.17/binutils/config.in
deleted file mode 100644
index 93d8e952..00000000
--- a/binutils-2.17/binutils/config.in
+++ /dev/null
@@ -1,267 +0,0 @@
-/* config.in. Generated from configure.in by autoheader. */
-
-/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
- systems. This function is required for `alloca.c' support on those systems.
- */
-#undef CRAY_STACKSEG_END
-
-/* Define to 1 if using `alloca.c'. */
-#undef C_ALLOCA
-
-/* Define to 1 if NLS is requested */
-#undef ENABLE_NLS
-
-/* Suffix used for executables, if any. */
-#undef EXECUTABLE_SUFFIX
-
-/* Define to 1 if you have `alloca', as a function or macro. */
-#undef HAVE_ALLOCA
-
-/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
- */
-#undef HAVE_ALLOCA_H
-
-/* Define to 1 if you have the <argz.h> header file. */
-#undef HAVE_ARGZ_H
-
-/* Define to 1 if you have the `dcgettext' function. */
-#undef HAVE_DCGETTEXT
-
-/* Define to 1 if you have the declaration of `environ', and to 0 if you
- don't. */
-#undef HAVE_DECL_ENVIRON
-
-/* Define to 1 if you have the declaration of `fprintf', and to 0 if you
- don't. */
-#undef HAVE_DECL_FPRINTF
-
-/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
- don't. */
-#undef HAVE_DECL_GETC_UNLOCKED
-
-/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
- */
-#undef HAVE_DECL_GETENV
-
-/* Is the prototype for getopt in <unistd.h> in the expected format? */
-#undef HAVE_DECL_GETOPT
-
-/* Define to 1 if you have the declaration of `sbrk', and to 0 if you don't.
- */
-#undef HAVE_DECL_SBRK
-
-/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
- don't. */
-#undef HAVE_DECL_SNPRINTF
-
-/* Define to 1 if you have the declaration of `stpcpy', and to 0 if you don't.
- */
-#undef HAVE_DECL_STPCPY
-
-/* Define to 1 if you have the declaration of `strstr', and to 0 if you don't.
- */
-#undef HAVE_DECL_STRSTR
-
-/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
- don't. */
-#undef HAVE_DECL_VSNPRINTF
-
-/* Does the platform use an executable suffix? */
-#undef HAVE_EXECUTABLE_SUFFIX
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Is fopen64 available? */
-#undef HAVE_FOPEN64
-
-/* Define to 1 if you have the `getcwd' function. */
-#undef HAVE_GETCWD
-
-/* Define to 1 if you have the `getc_unlocked' function. */
-#undef HAVE_GETC_UNLOCKED
-
-/* Define to 1 if you have the `getpagesize' function. */
-#undef HAVE_GETPAGESIZE
-
-/* Define as 1 if you have gettext and don't want to use GNU gettext. */
-#undef HAVE_GETTEXT
-
-/* Does <utime.h> define struct utimbuf? */
-#undef HAVE_GOOD_UTIME_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define if your locale.h file contains LC_MESSAGES. */
-#undef HAVE_LC_MESSAGES
-
-/* Define to 1 if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define to 1 if you have the <locale.h> header file. */
-#undef HAVE_LOCALE_H
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have a working `mmap' system call. */
-#undef HAVE_MMAP
-
-/* Define to 1 if you have the `munmap' function. */
-#undef HAVE_MUNMAP
-
-/* Define to 1 if you have the <nl_types.h> header file. */
-#undef HAVE_NL_TYPES_H
-
-/* Define to 1 if you have the `putenv' function. */
-#undef HAVE_PUTENV
-
-/* Define to 1 if you have the `sbrk' function. */
-#undef HAVE_SBRK
-
-/* Define to 1 if you have the `setenv' function. */
-#undef HAVE_SETENV
-
-/* Define to 1 if you have the `setlocale' function. */
-#undef HAVE_SETLOCALE
-
-/* Define to 1 if you have the `setmode' function. */
-#undef HAVE_SETMODE
-
-/* Is stat64 available? */
-#undef HAVE_STAT64
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define if you have the stpcpy function */
-#undef HAVE_STPCPY
-
-/* Define to 1 if you have the `strcasecmp' function. */
-#undef HAVE_STRCASECMP
-
-/* Define to 1 if you have the `strchr' function. */
-#undef HAVE_STRCHR
-
-/* Define to 1 if you have the `strcoll' function. */
-#undef HAVE_STRCOLL
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/file.h> header file. */
-#undef HAVE_SYS_FILE_H
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
-#undef HAVE_SYS_WAIT_H
-
-/* Is the type time_t defined in <time.h>? */
-#undef HAVE_TIME_T_IN_TIME_H
-
-/* Is the type time_t defined in <sys/types.h>? */
-#undef HAVE_TIME_T_IN_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the `utimes' function. */
-#undef HAVE_UTIMES
-
-/* Define to 1 if you have the <values.h> header file. */
-#undef HAVE_VALUES_H
-
-/* Define to 1 if you have the `__argz_count' function. */
-#undef HAVE___ARGZ_COUNT
-
-/* Define to 1 if you have the `__argz_next' function. */
-#undef HAVE___ARGZ_NEXT
-
-/* Define to 1 if you have the `__argz_stringify' function. */
-#undef HAVE___ARGZ_STRINGIFY
-
-/* 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
-
-/* If using the C implementation of alloca, define if you know the
- direction of stack growth for your system; otherwise it will be
- automatically deduced at run-time.
- STACK_DIRECTION > 0 => grows toward higher addresses
- STACK_DIRECTION < 0 => grows toward lower addresses
- STACK_DIRECTION = 0 => direction of growth unknown */
-#undef STACK_DIRECTION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Configured target name. */
-#undef TARGET
-
-/* Define to 1 if user symbol names have a leading underscore, 0 if not. */
-#undef TARGET_PREPENDS_UNDERSCORE
-
-/* Use b modifier when opening binary files? */
-#undef USE_BINARY_FOPEN
-
-/* Version number of package */
-#undef VERSION
-
-/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
- `char[]'. */
-#undef YYTEXT_POINTER
-
-/* Enable GNU extensions on systems that have them. */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-
-/* Enable LFS */
-#undef _LARGEFILE64_SOURCE
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
- calls it, or to nothing if 'inline' is not supported under any name. */
-#ifndef __cplusplus
-#undef inline
-#endif
-
-/* Define to `long' if <sys/types.h> does not define. */
-#undef off_t
-
-/* Define to `unsigned' if <sys/types.h> does not define. */
-#undef size_t
diff --git a/binutils-2.17/binutils/configure b/binutils-2.17/binutils/configure
deleted file mode 100755
index 2d8e0cb9..00000000
--- a/binutils-2.17/binutils/configure
+++ /dev/null
@@ -1,12295 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# 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.
-## --------------------- ##
-## 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=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="ar.c"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-# include <stdint.h>
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-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 build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT 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 DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE LN_S RANLIB ac_ct_RANLIB LIBTOOL WARN_CFLAGS NO_WERROR YACC LEX LEXLIB LEX_OUTPUT_ROOT CPP EGREP ALLOCA USE_NLS MSGFMT GMSGFMT XGETTEXT USE_INCLUDED_LIBINTL CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLDEPS INTLLIBS INTLOBJS POFILES POSUB INCLUDE_LOCALE_H GT_NO GT_YES MKINSTALLDIRS l MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT HDEFINES AR CC_FOR_BUILD EXEEXT_FOR_BUILD DEMANGLER_NAME NLMCONV_DEFS BUILD_NLMCONV BUILD_SRCONV BUILD_DLLTOOL DLLTOOL_DEFS BUILD_WINDRES BUILD_DLLWRAP BUILD_MISC OBJDUMP_DEFS EMULATION EMULATION_VECTOR datarootdir docdir htmldir 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 this package 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]
- --target=TARGET configure for building compilers for TARGET [HOST]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
- cat <<\_ACEOF
-
-Optional Features:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --disable-dependency-tracking speeds up one-time build
- --enable-dependency-tracking do not reject slow dependency extractors
- --enable-shared=PKGS build shared libraries default=yes
- --enable-static=PKGS build static libraries default=yes
- --enable-fast-install=PKGS optimize for fast installation default=yes
- --disable-libtool-lock avoid locking (might break parallel builds)
- --enable-targets alternative target configurations
- --enable-commonbfdlib build shared BFD/opcodes/libiberty library
- --enable-werror treat compile warnings as errors
- --enable-build-warnings Enable build-time compiler warnings
- --disable-nls do not use Native Language Support
- --enable-maintainer-mode enable make rules and dependencies not useful
- (and sometimes confusing) to the casual installer
-
-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-pic try to use only PIC/non-PIC objects default=use both
- --with-included-gettext use the GNU gettext library included here
-
-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.
-
-_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
-
-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.
-_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 $as_me, 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 $srcdir $srcdir/.. $srcdir/../..; 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 $srcdir $srcdir/.. $srcdir/../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&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.
-
-# 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/'`
-
-
-echo "$as_me:$LINENO: checking target system type" >&5
-echo $ECHO_N "checking target system type... $ECHO_C" >&6
-if test "${ac_cv_target+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_target_alias=$target_alias
-test "x$ac_cv_target_alias" = "x" &&
- ac_cv_target_alias=$ac_cv_host_alias
-ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_target" >&5
-echo "${ECHO_T}$ac_cv_target" >&6
-target=$ac_cv_target
-target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-test -n "$target_alias" &&
- test "$program_prefix$program_suffix$program_transform_name" = \
- NONENONEs,x,x, &&
- program_prefix=${target_alias}-
-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
-
-
-echo "$as_me:$LINENO: checking for library containing strerror" >&5
-echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6
-if test "${ac_cv_search_strerror+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_func_search_save_LIBS=$LIBS
-ac_cv_search_strerror=no
-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 strerror ();
-int
-main ()
-{
-strerror ();
- ;
- 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_search_strerror="none required"
-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 "$ac_cv_search_strerror" = no; then
- for ac_lib in cposix; do
- LIBS="-l$ac_lib $ac_func_search_save_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 strerror ();
-int
-main ()
-{
-strerror ();
- ;
- 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_search_strerror="-l$ac_lib"
-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_exeext conftest.$ac_ext
- done
-fi
-LIBS=$ac_func_search_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
-echo "${ECHO_T}$ac_cv_search_strerror" >&6
-if test "$ac_cv_search_strerror" != no; then
- test "$ac_cv_search_strerror" = "none required" || LIBS="$ac_cv_search_strerror $LIBS"
-
-fi
-
-
-BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
-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
-
-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
-
-
-
-# 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=binutils
- VERSION=${BFD_VERSION}
-
-
-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 -'
-
-
-
-
-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
-
-
-
-
-# Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
- enableval="$enable_shared"
- p=${PACKAGE-default}
-case $enableval in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_shared=yes
-fi;
-# Check whether --enable-static or --disable-static was given.
-if test "${enable_static+set}" = set; then
- enableval="$enable_static"
- p=${PACKAGE-default}
-case $enableval in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_static=yes
-fi;
-# Check whether --enable-fast-install or --disable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
- enableval="$enable_fast_install"
- p=${PACKAGE-default}
-case $enableval in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
- for pkg in $enableval; do
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-else
- enable_fast_install=yes
-fi;
-
-# 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 "${lt_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
- lt_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 "$lt_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
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_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 "${lt_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
- lt_cv_prog_gnu_ld=yes
-else
- lt_cv_prog_gnu_ld=no
-fi
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
-echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
-if test "${lt_cv_ld_reload_flag+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
-echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
-reload_flag=$lt_cv_ld_reload_flag
-test -n "$reload_flag" && reload_flag=" $reload_flag"
-
-echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
-echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
-if test "${lt_cv_path_NM+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
- test -z "$ac_dir" && ac_dir=.
- tmp_nm=$ac_dir/${ac_tool_prefix}nm
- if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
- lt_cv_path_NM="$tmp_nm -B"
- break
- elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
- lt_cv_path_NM="$tmp_nm -p"
- break
- else
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- fi
- fi
- done
- IFS="$ac_save_ifs"
- test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi
-fi
-
-NM="$lt_cv_path_NM"
-echo "$as_me:$LINENO: result: $NM" >&5
-echo "${ECHO_T}$NM" >&6
-
-echo "$as_me:$LINENO: checking whether ln -s works" >&5
-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
- echo "$as_me:$LINENO: result: no, using $LN_S" >&5
-echo "${ECHO_T}no, using $LN_S" >&6
-fi
-
-echo "$as_me:$LINENO: checking how to recognise dependant libraries" >&5
-echo $ECHO_N "checking how to recognise dependant libraries... $ECHO_C" >&6
-if test "${lt_cv_deplibs_check_method+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [regex]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given egrep regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi4*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin* | mingw* |pw32*)
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- # this will be overwritten by pass_all, but leave it in just in case
- lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- case "$host_os" in
- rhapsody* | darwin1.012)
- lt_cv_file_magic_test_file='/System/Library/Frameworks/System.framework/System'
- ;;
- *) # Darwin 1.3 on
- lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
- ;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | kfreebsd*-gnu)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20*|hpux11*)
- case $host_cpu in
- hppa*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- esac
- ;;
-
-irix5* | irix6*)
- case $host_os in
- irix5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
- ;;
- *)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
- ;;
- esac
- lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd* | knetbsd*-gnu)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$'
- fi
- ;;
-
-newsos6)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-osf3* | osf4* | osf5*)
- # this will be overridden with pass_all, but let us keep it just in case
- lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
- lt_cv_file_magic_test_file=/shlib/libc.so
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sco3.2v5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
-
-sysv5uw[78]* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- case $host_vendor in
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- esac
- ;;
-esac
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
-echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-
-
-
-
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
-# find the maximum length of command line arguments
-echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
-echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- cygwin* | mingw*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for *BSD
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
- esac
-
-fi
-
-if test -n "$lt_cv_sys_max_cmd_len" ; then
- echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
-echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6
-else
- echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6
-fi
-
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
-echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $MAGIC_CMD in
- /*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
- ?:/*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
- ;;
- *)
- ac_save_MAGIC_CMD="$MAGIC_CMD"
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="/usr/bin:$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$ac_save_ifs"
- MAGIC_CMD="$ac_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- echo "$as_me:$LINENO: checking for file" >&5
-echo $ECHO_N "checking for file... $ECHO_C" >&6
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $MAGIC_CMD in
- /*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
- ?:/*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
- ;;
- *)
- ac_save_MAGIC_CMD="$MAGIC_CMD"
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="/usr/bin:$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- egrep "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$ac_save_ifs"
- MAGIC_CMD="$ac_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- else
- MAGIC_CMD=:
- fi
-fi
-
- fi
- ;;
-esac
-
-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
-
-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
-
-
-# Check for any special flags to pass to ltconfig.
-libtool_flags="--cache-file=$cache_file"
-test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
-test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
-test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
-test "$GCC" = yes && libtool_flags="$libtool_flags --with-gcc"
-test "$lt_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
-
-
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
- enableval="$enable_libtool_lock"
-
-fi;
-test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
-test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
-
-
-# Check whether --with-pic or --without-pic was given.
-if test "${with_pic+set}" = set; then
- withval="$with_pic"
- pic_mode="$withval"
-else
- pic_mode=default
-fi;
-test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
-test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line 3870 "configure"' > conftest.$ac_ext
- 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
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- 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
- case "`/usr/bin/file conftest.o`" in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- 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
- case "`/usr/bin/file conftest.o`" in
- *32-bit*)
- case $host in
- x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
- ;;
- ppc64-*linux*|powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- ppc*-*linux*|powerpc*-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
-echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
-if test "${lt_cv_cc_needs_belf+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-
- 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
-
- 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 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
- lt_cv_cc_needs_belf=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-lt_cv_cc_needs_belf=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext 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
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
-echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-
-
-esac
-
-
-# Save cache, so that ltconfig can load it
-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
-
-# Actually configure libtool. ac_aux_dir is where install-sh is found.
-AR="$AR" LTCC="$CC" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-MAGIC_CMD="$MAGIC_CMD" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
-AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
-objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
-deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \
-${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $host \
-|| { { echo "$as_me:$LINENO: error: libtool configure failed" >&5
-echo "$as_me: error: libtool configure failed" >&2;}
- { (exit 1); exit 1; }; }
-
-# Reload cache, that may have been modified by ltconfig
-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
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh $ac_aux_dir/ltcf-c.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-# Redirect the config.log output again, so that the ltconfig log is not
-# clobbered by the next message.
-exec 5>>./config.log
-
-
-
-
-
-
-
-# Check whether --enable-targets or --disable-targets was given.
-if test "${enable_targets+set}" = set; then
- enableval="$enable_targets"
- case "${enableval}" in
- yes | "") { { echo "$as_me:$LINENO: error: enable-targets option must specify target names or 'all'" >&5
-echo "$as_me: error: enable-targets option must specify target names or 'all'" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- no) enable_targets= ;;
- *) enable_targets=$enableval ;;
-esac
-fi; # Check whether --enable-commonbfdlib or --disable-commonbfdlib was given.
-if test "${enable_commonbfdlib+set}" = set; then
- enableval="$enable_commonbfdlib"
- case "${enableval}" in
- yes) commonbfdlib=true ;;
- no) commonbfdlib=false ;;
- *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for BFD commonbfdlib option" >&5
-echo "$as_me: error: bad value ${enableval} for BFD commonbfdlib option" >&2;}
- { (exit 1); exit 1; }; } ;;
-esac
-fi;
-
-GCC_WARN_CFLAGS="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
-
-# Check whether --enable-werror or --disable-werror was given.
-if test "${enable_werror+set}" = set; then
- enableval="$enable_werror"
- case "${enableval}" in
- yes | y) ERROR_ON_WARNING="yes" ;;
- no | n) ERROR_ON_WARNING="no" ;;
- *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-werror" >&5
-echo "$as_me: error: bad value ${enableval} for --enable-werror" >&2;}
- { (exit 1); exit 1; }; } ;;
- esac
-fi;
-
-# Enable -Werror by default when using gcc
-if test "${GCC}" = yes -a -z "${ERROR_ON_WARNING}" ; then
- ERROR_ON_WARNING=yes
-fi
-
-NO_WERROR=
-if test "${ERROR_ON_WARNING}" = yes ; then
- GCC_WARN_CFLAGS="$GCC_WARN_CFLAGS -Werror"
- NO_WERROR="-Wno-error"
-fi
-
-if test "${GCC}" = yes ; then
- WARN_CFLAGS="${GCC_WARN_CFLAGS}"
-fi
-
-# Check whether --enable-build-warnings or --disable-build-warnings was given.
-if test "${enable_build_warnings+set}" = set; then
- enableval="$enable_build_warnings"
- case "${enableval}" in
- yes) WARN_CFLAGS="${GCC_WARN_CFLAGS}";;
- no) if test "${GCC}" = yes ; then
- WARN_CFLAGS="-w"
- fi;;
- ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
- WARN_CFLAGS="${GCC_WARN_CFLAGS} ${t}";;
- *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
- WARN_CFLAGS="${t} ${GCC_WARN_CFLAGS}";;
- *) WARN_CFLAGS=`echo "${enableval}" | sed -e "s/,/ /g"`;;
-esac
-fi;
-
-if test x"$silent" != x"yes" && test x"$WARN_CFLAGS" != x""; then
- echo "Setting warning flags = $WARN_CFLAGS" 6>&1
-fi
-
-
-
-
-
- ac_config_headers="$ac_config_headers config.h:config.in"
-
-
-if test -z "$target" ; then
- { { echo "$as_me:$LINENO: error: Unrecognized target system type; please check config.sub." >&5
-echo "$as_me: error: Unrecognized target system type; please check config.sub." >&2;}
- { (exit 1); exit 1; }; }
-fi
-if test -z "$host" ; then
- { { echo "$as_me:$LINENO: error: Unrecognized host system type; please check config.sub." >&5
-echo "$as_me: error: Unrecognized host system type; please check config.sub." >&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
-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); }
-
-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
-
-
-cat >>confdefs.h <<\_ACEOF
-#define _GNU_SOURCE 1
-_ACEOF
-
-
-
-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
-
-ALL_LINGUAS="fr tr ja es sv da zh_CN ru ro rw zh_TW fi vi"
-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
-
-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
-
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+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 <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.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_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- 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>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- exit(2);
- exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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); } && { ac_try='./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
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
-echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
-if test "${ac_cv_c_const+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 ()
-{
-/* FIXME: Include the comments suggested by Paul. */
-#ifndef __cplusplus
- /* Ultrix mips cc rejects this. */
- typedef int charset[2];
- const charset x;
- /* SunOS 4.1.1 cc rejects this. */
- char const *const *ccp;
- char **p;
- /* NEC SVR4.0.2 mips cc rejects this. */
- struct point {int x, y;};
- static struct point const zero = {0,0};
- /* AIX XL C 1.02.0.0 rejects this.
- It does not let you subtract one const X* pointer from another in
- an arm of an if-expression whose if-part is not a constant
- expression */
- const char *g = "string";
- ccp = &g + (g ? g-g : 0);
- /* HPUX 7.0 cc rejects these. */
- ++ccp;
- p = (char**) ccp;
- ccp = (char const *const *) p;
- { /* SCO 3.2v4 cc rejects this. */
- char *t;
- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
- *t++ = 0;
- }
- { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
- int x[] = {25, 17};
- const int *foo = &x[0];
- ++foo;
- }
- { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
- typedef const int *iptr;
- iptr p = 0;
- ++p;
- }
- { /* AIX XL C 1.02.0.0 rejects this saying
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
- }
- { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
- const int foo = 10;
- }
-#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_cv_c_const=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_c_const=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
-echo "${ECHO_T}$ac_cv_c_const" >&6
-if test $ac_cv_c_const = no; then
-
-cat >>confdefs.h <<\_ACEOF
-#define const
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for inline" >&5
-echo $ECHO_N "checking for inline... $ECHO_C" >&6
-if test "${ac_cv_c_inline+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#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
- ac_cv_c_inline=$ac_kw; 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
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
-echo "${ECHO_T}$ac_cv_c_inline" >&6
-
-
-case $ac_cv_c_inline in
- inline | yes) ;;
- *)
- case $ac_cv_c_inline in
- no) ac_val=;;
- *) ac_val=$ac_cv_c_inline;;
- esac
- cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
- ;;
-esac
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+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. */
-$ac_includes_default
-
-#include <$ac_header>
-_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
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-echo "$as_me:$LINENO: checking for off_t" >&5
-echo $ECHO_N "checking for off_t... $ECHO_C" >&6
-if test "${ac_cv_type_off_t+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. */
-$ac_includes_default
-int
-main ()
-{
-if ((off_t *) 0)
- return 0;
-if (sizeof (off_t))
- return 0;
- ;
- 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_type_off_t=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_type_off_t=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
-echo "${ECHO_T}$ac_cv_type_off_t" >&6
-if test $ac_cv_type_off_t = yes; then
- :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define off_t long
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for size_t" >&5
-echo $ECHO_N "checking for size_t... $ECHO_C" >&6
-if test "${ac_cv_type_size_t+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. */
-$ac_includes_default
-int
-main ()
-{
-if ((size_t *) 0)
- return 0;
-if (sizeof (size_t))
- return 0;
- ;
- 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_type_size_t=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_type_size_t=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
-echo "${ECHO_T}$ac_cv_type_size_t" >&6
-if test $ac_cv_type_size_t = yes; then
- :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned
-_ACEOF
-
-fi
-
-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
-# for constant arguments. Useless!
-echo "$as_me:$LINENO: checking for working alloca.h" >&5
-echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6
-if test "${ac_cv_working_alloca_h+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 <alloca.h>
-int
-main ()
-{
-char *p = (char *) alloca (2 * sizeof (int));
- ;
- 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_working_alloca_h=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_working_alloca_h=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
-echo "${ECHO_T}$ac_cv_working_alloca_h" >&6
-if test $ac_cv_working_alloca_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA_H 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for alloca" >&5
-echo $ECHO_N "checking for alloca... $ECHO_C" >&6
-if test "${ac_cv_func_alloca_works+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. */
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# ifdef _MSC_VER
-# include <malloc.h>
-# define alloca _alloca
-# else
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# else
-# ifdef _AIX
- #pragma alloca
-# else
-# ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
-# endif
-# endif
-# endif
-# endif
-#endif
-
-int
-main ()
-{
-char *p = (char *) alloca (1);
- ;
- 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_func_alloca_works=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_alloca_works=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
-echo "${ECHO_T}$ac_cv_func_alloca_works" >&6
-
-if test $ac_cv_func_alloca_works = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA 1
-_ACEOF
-
-else
- # The SVR3 libPW and SVR4 libucb both contain incompatible functions
-# that cause trouble. Some versions do not even contain alloca or
-# contain a buggy version. If you still want to use their alloca,
-# use ar to extract alloca.o from them instead of compiling alloca.c.
-
-ALLOCA=alloca.$ac_objext
-
-cat >>confdefs.h <<\_ACEOF
-#define C_ALLOCA 1
-_ACEOF
-
-
-echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
-echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6
-if test "${ac_cv_os_cray+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. */
-#if defined(CRAY) && ! defined(CRAY2)
-webecray
-#else
-wenotbecray
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "webecray" >/dev/null 2>&1; then
- ac_cv_os_cray=yes
-else
- ac_cv_os_cray=no
-fi
-rm -f conftest*
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
-echo "${ECHO_T}$ac_cv_os_cray" >&6
-if test $ac_cv_os_cray = yes; then
- for ac_func in _getb67 GETB67 getb67; do
- as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+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. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- 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
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define CRAY_STACKSEG_END $ac_func
-_ACEOF
-
- break
-fi
-
- done
-fi
-
-echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
-echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6
-if test "${ac_cv_c_stack_direction+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_c_stack_direction=0
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-int
-find_stack_direction ()
-{
- static char *addr = 0;
- auto char dummy;
- if (addr == 0)
- {
- addr = &dummy;
- return find_stack_direction ();
- }
- else
- return (&dummy > addr) ? 1 : -1;
-}
-
-int
-main ()
-{
- exit (find_stack_direction () < 0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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); } && { ac_try='./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_c_stack_direction=1
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_c_stack_direction=-1
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
-echo "${ECHO_T}$ac_cv_c_stack_direction" >&6
-
-cat >>confdefs.h <<_ACEOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
-_ACEOF
-
-
-fi
-
-
-
-for ac_header in stdlib.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_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
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_func in getpagesize
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+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. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- 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
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-echo "$as_me:$LINENO: checking for working mmap" >&5
-echo $ECHO_N "checking for working mmap... $ECHO_C" >&6
-if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_mmap_fixed_mapped=no
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-/* malloc might have been renamed as rpl_malloc. */
-#undef malloc
-
-/* Thanks to Mike Haertel and Jim Avera for this test.
- Here is a matrix of mmap possibilities:
- mmap private not fixed
- mmap private fixed at somewhere currently unmapped
- mmap private fixed at somewhere already mapped
- mmap shared not fixed
- mmap shared fixed at somewhere currently unmapped
- mmap shared fixed at somewhere already mapped
- For private mappings, we should verify that changes cannot be read()
- back from the file, nor mmap's back from the file at a different
- address. (There have been systems where private was not correctly
- implemented like the infamous i386 svr4.0, and systems where the
- VM page cache was not coherent with the file system buffer cache
- like early versions of FreeBSD and possibly contemporary NetBSD.)
- For shared mappings, we should conversely verify that changes get
- propagated back to all the places they're supposed to be.
-
- Grep wants private fixed already mapped.
- The main things grep needs to know about mmap are:
- * does it exist and is it safe to write into the mmap'd area
- * how to use it (BSD variants) */
-
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#if !STDC_HEADERS && !HAVE_STDLIB_H
-char *malloc ();
-#endif
-
-/* This mess was copied from the GNU getpagesize.h. */
-#if !HAVE_GETPAGESIZE
-/* Assume that all systems that can run configure have sys/param.h. */
-# if !HAVE_SYS_PARAM_H
-# define HAVE_SYS_PARAM_H 1
-# endif
-
-# ifdef _SC_PAGESIZE
-# define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-# if HAVE_SYS_PARAM_H
-# include <sys/param.h>
-# ifdef EXEC_PAGESIZE
-# define getpagesize() EXEC_PAGESIZE
-# else /* no EXEC_PAGESIZE */
-# ifdef NBPG
-# define getpagesize() NBPG * CLSIZE
-# ifndef CLSIZE
-# define CLSIZE 1
-# endif /* no CLSIZE */
-# else /* no NBPG */
-# ifdef NBPC
-# define getpagesize() NBPC
-# else /* no NBPC */
-# ifdef PAGESIZE
-# define getpagesize() PAGESIZE
-# endif /* PAGESIZE */
-# endif /* no NBPC */
-# endif /* no NBPG */
-# endif /* no EXEC_PAGESIZE */
-# else /* no HAVE_SYS_PARAM_H */
-# define getpagesize() 8192 /* punt totally */
-# endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
-
-int
-main ()
-{
- char *data, *data2, *data3;
- int i, pagesize;
- int fd;
-
- pagesize = getpagesize ();
-
- /* First, make a file with some known garbage in it. */
- data = (char *) malloc (pagesize);
- if (!data)
- exit (1);
- for (i = 0; i < pagesize; ++i)
- *(data + i) = rand ();
- umask (0);
- fd = creat ("conftest.mmap", 0600);
- if (fd < 0)
- exit (1);
- if (write (fd, data, pagesize) != pagesize)
- exit (1);
- close (fd);
-
- /* Next, try to mmap the file at a fixed address which already has
- something else allocated at it. If we can, also make sure that
- we see the same garbage. */
- fd = open ("conftest.mmap", O_RDWR);
- if (fd < 0)
- exit (1);
- data2 = (char *) malloc (2 * pagesize);
- if (!data2)
- exit (1);
- data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1);
- if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_FIXED, fd, 0L))
- exit (1);
- for (i = 0; i < pagesize; ++i)
- if (*(data + i) != *(data2 + i))
- exit (1);
-
- /* Finally, make sure that changes to the mapped area do not
- percolate back to the file as seen by read(). (This is a bug on
- some variants of i386 svr4.0.) */
- for (i = 0; i < pagesize; ++i)
- *(data2 + i) = *(data2 + i) + 1;
- data3 = (char *) malloc (pagesize);
- if (!data3)
- exit (1);
- if (read (fd, data3, pagesize) != pagesize)
- exit (1);
- for (i = 0; i < pagesize; ++i)
- if (*(data + i) != *(data3 + i))
- exit (1);
- close (fd);
- exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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); } && { ac_try='./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_func_mmap_fixed_mapped=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_mmap_fixed_mapped=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
-echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6
-if test $ac_cv_func_mmap_fixed_mapped = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MMAP 1
-_ACEOF
-
-fi
-rm -f conftest.mmap
-
-
-
-
-
-
-
-
-
-
-
-for ac_header in argz.h limits.h locale.h nl_types.h malloc.h string.h \
-unistd.h values.h sys/param.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_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
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-
-
-
-
-
-for ac_func in getcwd munmap putenv setenv setlocale strchr strcasecmp \
-__argz_count __argz_stringify __argz_next
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+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. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- 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
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
- if test "${ac_cv_func_stpcpy+set}" != "set"; then
-
-for ac_func in stpcpy
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+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. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- 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
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
- fi
- if test "${ac_cv_func_stpcpy}" = "yes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STPCPY 1
-_ACEOF
-
- fi
-
- if test $ac_cv_header_locale_h = yes; then
- echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5
-echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6
-if test "${am_cv_val_LC_MESSAGES+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 <locale.h>
-int
-main ()
-{
-return LC_MESSAGES
- ;
- 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_val_LC_MESSAGES=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-am_cv_val_LC_MESSAGES=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5
-echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6
- if test $am_cv_val_LC_MESSAGES = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LC_MESSAGES 1
-_ACEOF
-
- fi
- 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
-
-
- USE_INCLUDED_LIBINTL=no
-
- if test "$USE_NLS" = "yes"; then
- echo "$as_me:$LINENO: checking whether included gettext is requested" >&5
-echo $ECHO_N "checking whether included gettext is requested... $ECHO_C" >&6
-
-# Check whether --with-included-gettext or --without-included-gettext was given.
-if test "${with_included_gettext+set}" = set; then
- withval="$with_included_gettext"
- nls_cv_force_use_gnu_gettext=$withval
-else
- nls_cv_force_use_gnu_gettext=no
-fi;
- echo "$as_me:$LINENO: result: $nls_cv_force_use_gnu_gettext" >&5
-echo "${ECHO_T}$nls_cv_force_use_gnu_gettext" >&6
-
- nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
- if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
- nls_cv_header_intl=
- nls_cv_header_libgt=
- CATOBJEXT=
-
- if test "${ac_cv_header_libintl_h+set}" = set; then
- echo "$as_me:$LINENO: checking for libintl.h" >&5
-echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6
-if test "${ac_cv_header_libintl_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
-echo "${ECHO_T}$ac_cv_header_libintl_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking libintl.h usability" >&5
-echo $ECHO_N "checking libintl.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <libintl.h>
-_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_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking libintl.h presence" >&5
-echo $ECHO_N "checking libintl.h presence... $ECHO_C" >&6
-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>
-_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
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for libintl.h" >&5
-echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6
-if test "${ac_cv_header_libintl_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_libintl_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
-echo "${ECHO_T}$ac_cv_header_libintl_h" >&6
-
-fi
-if test $ac_cv_header_libintl_h = yes; then
- echo "$as_me:$LINENO: checking for gettext in libc" >&5
-echo $ECHO_N "checking for gettext in libc... $ECHO_C" >&6
-if test "${gt_cv_func_gettext_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>
-int
-main ()
-{
-return (int) gettext ("")
- ;
- 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_gettext_libc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-gt_cv_func_gettext_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_gettext_libc" >&5
-echo "${ECHO_T}$gt_cv_func_gettext_libc" >&6
-
- if test "$gt_cv_func_gettext_libc" != "yes"; then
- echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5
-echo $ECHO_N "checking for bindtextdomain in -lintl... $ECHO_C" >&6
-if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lintl $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 bindtextdomain ();
-int
-main ()
-{
-bindtextdomain ();
- ;
- 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_intl_bindtextdomain=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_intl_bindtextdomain=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_intl_bindtextdomain" >&5
-echo "${ECHO_T}$ac_cv_lib_intl_bindtextdomain" >&6
-if test $ac_cv_lib_intl_bindtextdomain = yes; then
- echo "$as_me:$LINENO: checking for gettext in libintl" >&5
-echo $ECHO_N "checking for gettext in libintl... $ECHO_C" >&6
-if test "${gt_cv_func_gettext_libintl+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 (int) gettext ("")
- ;
- 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_gettext_libintl=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-gt_cv_func_gettext_libintl=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $gt_cv_func_gettext_libintl" >&5
-echo "${ECHO_T}$gt_cv_func_gettext_libintl" >&6
-fi
-
- fi
-
- if test "$gt_cv_func_gettext_libc" = "yes" \
- || test "$gt_cv_func_gettext_libintl" = "yes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETTEXT 1
-_ACEOF
-
- # 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 test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; 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="no"
- ;;
-esac
-fi
-MSGFMT="$ac_cv_path_MSGFMT"
-if test -n "$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
- if test "$MSGFMT" != "no"; then
-
-for ac_func in dcgettext
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+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. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- 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
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
- # 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 test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; 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 -n "$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
-
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-extern int _nl_msg_cat_cntr;
- return _nl_msg_cat_cntr
- ;
- 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
- CATOBJEXT=.gmo
- DATADIRNAME=share
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-CATOBJEXT=.mo
- DATADIRNAME=lib
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- INSTOBJEXT=.mo
- fi
- fi
-
-fi
-
-
-
-
- if test x"$CATOBJEXT" = x && test -d $srcdir/../intl; then
- # Neither gettext nor catgets in included in the C library.
- # Fall back on GNU gettext library (assuming it is present).
- nls_cv_use_gnu_gettext=yes
- fi
- fi
-
- if test "$nls_cv_use_gnu_gettext" = "yes"; then
- INTLOBJS="\$(GETTOBJS)"
- # 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 test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; 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="msgfmt"
- ;;
-esac
-fi
-MSGFMT="$ac_cv_path_MSGFMT"
-if test -n "$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 test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; 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 -n "$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
-
-
- USE_INCLUDED_LIBINTL=yes
- CATOBJEXT=.gmo
- INSTOBJEXT=.mo
- DATADIRNAME=share
- INTLDEPS='$(top_builddir)/../intl/libintl.a'
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
- nls_cv_header_intl=libintl.h
- nls_cv_header_libgt=libgettext.h
- fi
-
- if test "$XGETTEXT" != ":"; then
- if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
- : ;
- else
- echo "$as_me:$LINENO: result: found xgettext programs is not GNU xgettext; ignore it" >&5
-echo "${ECHO_T}found xgettext programs is not GNU xgettext; ignore it" >&6
- XGETTEXT=":"
- fi
- fi
-
- # We need to process the po/ directory.
- POSUB=po
- else
- DATADIRNAME=share
- nls_cv_header_intl=libintl.h
- nls_cv_header_libgt=libgettext.h
- fi
-
- # If this is used in GNU gettext we have to set USE_NLS to `yes'
- # because some of the sources are only built for this goal.
- if test "$PACKAGE" = gettext; then
- USE_NLS=yes
- USE_INCLUDED_LIBINTL=yes
- fi
-
- for lang in $ALL_LINGUAS; do
- GMOFILES="$GMOFILES $lang.gmo"
- POFILES="$POFILES $lang.po"
- done
-
-
-
-
-
-
-
-
-
-
-
-
- if test "x$CATOBJEXT" != "x"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define ENABLE_NLS 1
-_ACEOF
-
- fi
-
-
- if test "x$CATOBJEXT" != "x"; then
- if test "x$ALL_LINGUAS" = "x"; then
- LINGUAS=
- else
- echo "$as_me:$LINENO: checking for catalogs to be installed" >&5
-echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6
- NEW_LINGUAS=
- for lang in ${LINGUAS=$ALL_LINGUAS}; do
- case "$ALL_LINGUAS" in
- *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
- esac
- done
- LINGUAS=$NEW_LINGUAS
- echo "$as_me:$LINENO: result: $LINGUAS" >&5
-echo "${ECHO_T}$LINGUAS" >&6
- fi
-
- if test -n "$LINGUAS"; then
- for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
- fi
- fi
-
- if test $ac_cv_header_locale_h = yes; then
- INCLUDE_LOCALE_H="#include <locale.h>"
- else
- INCLUDE_LOCALE_H="\
-/* The system does not provide the header <locale.h>. Take care yourself. */"
- fi
-
-
- if test -f $srcdir/po2tbl.sed.in; then
- if test "$CATOBJEXT" = ".cat"; then
- if test "${ac_cv_header_linux_version_h+set}" = set; then
- echo "$as_me:$LINENO: checking for linux/version.h" >&5
-echo $ECHO_N "checking for linux/version.h... $ECHO_C" >&6
-if test "${ac_cv_header_linux_version_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_linux_version_h" >&5
-echo "${ECHO_T}$ac_cv_header_linux_version_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking linux/version.h usability" >&5
-echo $ECHO_N "checking linux/version.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <linux/version.h>
-_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_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking linux/version.h presence" >&5
-echo $ECHO_N "checking linux/version.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <linux/version.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
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: linux/version.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: linux/version.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/version.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: linux/version.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: linux/version.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: linux/version.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/version.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: linux/version.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/version.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: linux/version.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/version.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: linux/version.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/version.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: linux/version.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: linux/version.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: linux/version.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for linux/version.h" >&5
-echo $ECHO_N "checking for linux/version.h... $ECHO_C" >&6
-if test "${ac_cv_header_linux_version_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_linux_version_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_linux_version_h" >&5
-echo "${ECHO_T}$ac_cv_header_linux_version_h" >&6
-
-fi
-if test $ac_cv_header_linux_version_h = yes; then
- msgformat=linux
-else
- msgformat=xopen
-fi
-
-
-
- sed -e '/^#/d' $srcdir/$msgformat-msg.sed > po2msg.sed
- fi
- sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
- $srcdir/po2tbl.sed.in > po2tbl.sed
- fi
-
- if test "$PACKAGE" = "gettext"; then
- GT_NO="#NO#"
- GT_YES=
- else
- GT_NO=
- GT_YES="#YES#"
- fi
-
-
-
- MKINSTALLDIRS="\$(srcdir)/../../mkinstalldirs"
-
-
- l=
-
-
- if test -f $srcdir/po/POTFILES.in; then
- test -d po || mkdir po
- if test "x$srcdir" != "x."; then
- if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
- posrcprefix="$srcdir/"
- else
- posrcprefix="../$srcdir/"
- fi
- else
- posrcprefix="../"
- fi
- rm -f po/POTFILES
- sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
- < $srcdir/po/POTFILES.in > po/POTFILES
- fi
-
-
-echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
- # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
- enableval="$enable_maintainer_mode"
- USE_MAINTAINER_MODE=$enableval
-else
- USE_MAINTAINER_MODE=no
-fi;
- echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
-
-
-if test $USE_MAINTAINER_MODE = yes; then
- MAINTAINER_MODE_TRUE=
- MAINTAINER_MODE_FALSE='#'
-else
- MAINTAINER_MODE_TRUE='#'
- MAINTAINER_MODE_FALSE=
-fi
-
- MAINT=$MAINTAINER_MODE_TRUE
-
-
-
-if test -n "$EXEEXT"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_EXECUTABLE_SUFFIX 1
-_ACEOF
-
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define EXECUTABLE_SUFFIX "${EXEEXT}"
-_ACEOF
-
-
-# host-specific stuff:
-
-HDEFINES=
-
-. ${srcdir}/../bfd/configure.host
-
-
-AR=${AR-ar}
-
-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
-
-# 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'
-
-
-# Put a plausible default for CC_FOR_BUILD in Makefile.
-if test -z "$CC_FOR_BUILD"; then
- if test "x$cross_compiling" = "xno"; then
- CC_FOR_BUILD='$(CC)'
- else
- CC_FOR_BUILD=gcc
- fi
-fi
-
-# Also set EXEEXT_FOR_BUILD.
-if test "x$cross_compiling" = "xno"; then
- EXEEXT_FOR_BUILD='$(EXEEXT)'
-else
- echo "$as_me:$LINENO: checking for build system executable suffix" >&5
-echo $ECHO_N "checking for build system executable suffix... $ECHO_C" >&6
-if test "${bfd_cv_build_exeext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- rm -f conftest*
- echo 'int main () { return 0; }' > conftest.c
- bfd_cv_build_exeext=
- ${CC_FOR_BUILD} -o conftest conftest.c 1>&5 2>&5
- for file in conftest.*; do
- case $file in
- *.c | *.o | *.obj | *.ilk | *.pdb) ;;
- *) bfd_cv_build_exeext=`echo $file | sed -e s/conftest//` ;;
- esac
- done
- rm -f conftest*
- test x"${bfd_cv_build_exeext}" = x && bfd_cv_build_exeext=no
-fi
-echo "$as_me:$LINENO: result: $bfd_cv_build_exeext" >&5
-echo "${ECHO_T}$bfd_cv_build_exeext" >&6
- EXEEXT_FOR_BUILD=""
- test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext}
-fi
-
-
-DEMANGLER_NAME=c++filt
-case "${host}" in
- *-*-go32* | *-*-msdos*)
- DEMANGLER_NAME=cxxfilt
-esac
-
-
-
-
-
-
-
-
-for ac_header in string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_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_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_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
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
-echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6
-if test "${ac_cv_header_sys_wait_h+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 <sys/types.h>
-#include <sys/wait.h>
-#ifndef WEXITSTATUS
-# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
-#endif
-#ifndef WIFEXITED
-# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-#endif
-
-int
-main ()
-{
- int s;
- wait (&s);
- s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
- ;
- 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_header_sys_wait_h=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_sys_wait_h=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6
-if test $ac_cv_header_sys_wait_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_WAIT_H 1
-_ACEOF
-
-fi
-
-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
-# for constant arguments. Useless!
-echo "$as_me:$LINENO: checking for working alloca.h" >&5
-echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6
-if test "${ac_cv_working_alloca_h+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 <alloca.h>
-int
-main ()
-{
-char *p = (char *) alloca (2 * sizeof (int));
- ;
- 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_working_alloca_h=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_working_alloca_h=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
-echo "${ECHO_T}$ac_cv_working_alloca_h" >&6
-if test $ac_cv_working_alloca_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA_H 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for alloca" >&5
-echo $ECHO_N "checking for alloca... $ECHO_C" >&6
-if test "${ac_cv_func_alloca_works+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. */
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# ifdef _MSC_VER
-# include <malloc.h>
-# define alloca _alloca
-# else
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# else
-# ifdef _AIX
- #pragma alloca
-# else
-# ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
-# endif
-# endif
-# endif
-# endif
-#endif
-
-int
-main ()
-{
-char *p = (char *) alloca (1);
- ;
- 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_func_alloca_works=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_alloca_works=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
-echo "${ECHO_T}$ac_cv_func_alloca_works" >&6
-
-if test $ac_cv_func_alloca_works = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA 1
-_ACEOF
-
-else
- # The SVR3 libPW and SVR4 libucb both contain incompatible functions
-# that cause trouble. Some versions do not even contain alloca or
-# contain a buggy version. If you still want to use their alloca,
-# use ar to extract alloca.o from them instead of compiling alloca.c.
-
-ALLOCA=alloca.$ac_objext
-
-cat >>confdefs.h <<\_ACEOF
-#define C_ALLOCA 1
-_ACEOF
-
-
-echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
-echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6
-if test "${ac_cv_os_cray+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. */
-#if defined(CRAY) && ! defined(CRAY2)
-webecray
-#else
-wenotbecray
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "webecray" >/dev/null 2>&1; then
- ac_cv_os_cray=yes
-else
- ac_cv_os_cray=no
-fi
-rm -f conftest*
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
-echo "${ECHO_T}$ac_cv_os_cray" >&6
-if test $ac_cv_os_cray = yes; then
- for ac_func in _getb67 GETB67 getb67; do
- as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+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. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- 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
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define CRAY_STACKSEG_END $ac_func
-_ACEOF
-
- break
-fi
-
- done
-fi
-
-echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
-echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6
-if test "${ac_cv_c_stack_direction+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_c_stack_direction=0
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-int
-find_stack_direction ()
-{
- static char *addr = 0;
- auto char dummy;
- if (addr == 0)
- {
- addr = &dummy;
- return find_stack_direction ();
- }
- else
- return (&dummy > addr) ? 1 : -1;
-}
-
-int
-main ()
-{
- exit (find_stack_direction () < 0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-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); } && { ac_try='./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_c_stack_direction=1
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_c_stack_direction=-1
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
-echo "${ECHO_T}$ac_cv_c_stack_direction" >&6
-
-cat >>confdefs.h <<_ACEOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
-_ACEOF
-
-
-fi
-
-
-
-
-
-
-for ac_func in sbrk utimes setmode getc_unlocked strcoll
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+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. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* 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 $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- 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
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-# Check whether fopen64 is available and whether _LARGEFILE64_SOURCE
-# needs to be defined for it
-echo "$as_me:$LINENO: checking for fopen64" >&5
-echo $ECHO_N "checking for fopen64... $ECHO_C" >&6
-if test "${bu_cv_have_fopen64+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 <stdio.h>
-int
-main ()
-{
-FILE *f = fopen64 ("/tmp/foo","r");
- ;
- 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
- bu_cv_have_fopen64=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-saved_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen64 ("/tmp/foo","r");
- ;
- 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
- bu_cv_have_fopen64="need -D_LARGEFILE64_SOURCE"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-bu_cv_have_fopen64=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- CPPFLAGS=$saved_CPPFLAGS
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-
-echo "$as_me:$LINENO: result: $bu_cv_have_fopen64" >&5
-echo "${ECHO_T}$bu_cv_have_fopen64" >&6
-if test "$bu_cv_have_fopen64" != no; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_FOPEN64 1
-_ACEOF
-
-fi
-echo "$as_me:$LINENO: checking for stat64" >&5
-echo $ECHO_N "checking for stat64... $ECHO_C" >&6
-if test "${bu_cv_have_stat64+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 <sys/stat.h>
-int
-main ()
-{
-struct stat64 st; stat64 ("/tmp/foo", &st);
- ;
- 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
- bu_cv_have_stat64=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-saved_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sys/stat.h>
-int
-main ()
-{
-struct stat64 st; stat64 ("/tmp/foo", &st);
- ;
- 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
- bu_cv_have_stat64="need -D_LARGEFILE64_SOURCE"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-bu_cv_have_stat64=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- CPPFLAGS=$saved_CPPFLAGS
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-
-echo "$as_me:$LINENO: result: $bu_cv_have_stat64" >&5
-echo "${ECHO_T}$bu_cv_have_stat64" >&6
-if test "$bu_cv_have_stat64" != no; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STAT64 1
-_ACEOF
-
-fi
-if test "$bu_cv_have_fopen64" = "need -D_LARGEFILE64_SOURCE" \
- || test "$bu_cv_have_stat64" = "need -D_LARGEFILE64_SOURCE"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define _LARGEFILE64_SOURCE 1
-_ACEOF
-
- CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
-fi
-
-# Some systems have frexp only in -lm, not in -lc.
-echo "$as_me:$LINENO: checking for library containing frexp" >&5
-echo $ECHO_N "checking for library containing frexp... $ECHO_C" >&6
-if test "${ac_cv_search_frexp+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_func_search_save_LIBS=$LIBS
-ac_cv_search_frexp=no
-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 frexp ();
-int
-main ()
-{
-frexp ();
- ;
- 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_search_frexp="none required"
-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 "$ac_cv_search_frexp" = no; then
- for ac_lib in m; do
- LIBS="-l$ac_lib $ac_func_search_save_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 frexp ();
-int
-main ()
-{
-frexp ();
- ;
- 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_search_frexp="-l$ac_lib"
-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_exeext conftest.$ac_ext
- done
-fi
-LIBS=$ac_func_search_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_search_frexp" >&5
-echo "${ECHO_T}$ac_cv_search_frexp" >&6
-if test "$ac_cv_search_frexp" != no; then
- test "$ac_cv_search_frexp" = "none required" || LIBS="$ac_cv_search_frexp $LIBS"
-
-fi
-
-
-echo "$as_me:$LINENO: checking for time_t in time.h" >&5
-echo $ECHO_N "checking for time_t in time.h... $ECHO_C" >&6
-if test "${bu_cv_decl_time_t_time_h+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 <time.h>
-int
-main ()
-{
-time_t i;
- ;
- 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
- bu_cv_decl_time_t_time_h=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-bu_cv_decl_time_t_time_h=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:$LINENO: result: $bu_cv_decl_time_t_time_h" >&5
-echo "${ECHO_T}$bu_cv_decl_time_t_time_h" >&6
-if test $bu_cv_decl_time_t_time_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_TIME_T_IN_TIME_H 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for time_t in sys/types.h" >&5
-echo $ECHO_N "checking for time_t in sys/types.h... $ECHO_C" >&6
-if test "${bu_cv_decl_time_t_types_h+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 <sys/types.h>
-int
-main ()
-{
-time_t i;
- ;
- 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
- bu_cv_decl_time_t_types_h=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-bu_cv_decl_time_t_types_h=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:$LINENO: result: $bu_cv_decl_time_t_types_h" >&5
-echo "${ECHO_T}$bu_cv_decl_time_t_types_h" >&6
-if test $bu_cv_decl_time_t_types_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_TIME_T_IN_TYPES_H 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for a known getopt prototype in unistd.h" >&5
-echo $ECHO_N "checking for a known getopt prototype in unistd.h... $ECHO_C" >&6
-if test "${bu_cv_decl_getopt_unistd_h+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 <unistd.h>
-int
-main ()
-{
-extern int getopt (int, char *const*, const char *);
- ;
- 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
- bu_cv_decl_getopt_unistd_h=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-bu_cv_decl_getopt_unistd_h=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:$LINENO: result: $bu_cv_decl_getopt_unistd_h" >&5
-echo "${ECHO_T}$bu_cv_decl_getopt_unistd_h" >&6
-if test $bu_cv_decl_getopt_unistd_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DECL_GETOPT 1
-_ACEOF
-
-fi
-
-# Under Next 3.2 <utime.h> apparently does not define struct utimbuf
-# by default.
-echo "$as_me:$LINENO: checking for utime.h" >&5
-echo $ECHO_N "checking for utime.h... $ECHO_C" >&6
-if test "${bu_cv_header_utime_h+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 <sys/types.h>
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#include <utime.h>
-int
-main ()
-{
-struct utimbuf s;
- ;
- 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
- bu_cv_header_utime_h=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-bu_cv_header_utime_h=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:$LINENO: result: $bu_cv_header_utime_h" >&5
-echo "${ECHO_T}$bu_cv_header_utime_h" >&6
-if test $bu_cv_header_utime_h = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GOOD_UTIME_H 1
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking whether fprintf is declared" >&5
-echo $ECHO_N "checking whether fprintf is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_fprintf+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. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef fprintf
- char *p = (char *) fprintf;
-#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_cv_have_decl_fprintf=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_fprintf=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_fprintf" >&5
-echo "${ECHO_T}$ac_cv_have_decl_fprintf" >&6
-if test $ac_cv_have_decl_fprintf = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FPRINTF 1
-_ACEOF
-
-
-else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FPRINTF 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether stpcpy is declared" >&5
-echo $ECHO_N "checking whether stpcpy is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_stpcpy+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. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef stpcpy
- char *p = (char *) stpcpy;
-#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_cv_have_decl_stpcpy=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_stpcpy=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_stpcpy" >&5
-echo "${ECHO_T}$ac_cv_have_decl_stpcpy" >&6
-if test $ac_cv_have_decl_stpcpy = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STPCPY 1
-_ACEOF
-
-
-else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STPCPY 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether strstr is declared" >&5
-echo $ECHO_N "checking whether strstr is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_strstr+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. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strstr
- char *p = (char *) strstr;
-#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_cv_have_decl_strstr=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_strstr=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_strstr" >&5
-echo "${ECHO_T}$ac_cv_have_decl_strstr" >&6
-if test $ac_cv_have_decl_strstr = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRSTR 1
-_ACEOF
-
-
-else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRSTR 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether sbrk is declared" >&5
-echo $ECHO_N "checking whether sbrk is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_sbrk+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. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef sbrk
- char *p = (char *) sbrk;
-#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_cv_have_decl_sbrk=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_sbrk=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_sbrk" >&5
-echo "${ECHO_T}$ac_cv_have_decl_sbrk" >&6
-if test $ac_cv_have_decl_sbrk = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SBRK 1
-_ACEOF
-
-
-else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SBRK 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether getenv is declared" >&5
-echo $ECHO_N "checking whether getenv is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_getenv+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. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef getenv
- char *p = (char *) getenv;
-#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_cv_have_decl_getenv=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_getenv=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_getenv" >&5
-echo "${ECHO_T}$ac_cv_have_decl_getenv" >&6
-if test $ac_cv_have_decl_getenv = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETENV 1
-_ACEOF
-
-
-else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETENV 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether environ is declared" >&5
-echo $ECHO_N "checking whether environ is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_environ+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. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef environ
- char *p = (char *) environ;
-#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_cv_have_decl_environ=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_environ=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_environ" >&5
-echo "${ECHO_T}$ac_cv_have_decl_environ" >&6
-if test $ac_cv_have_decl_environ = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ENVIRON 1
-_ACEOF
-
-
-else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_ENVIRON 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5
-echo $ECHO_N "checking whether getc_unlocked is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_getc_unlocked+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. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef getc_unlocked
- char *p = (char *) getc_unlocked;
-#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_cv_have_decl_getc_unlocked=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_getc_unlocked=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5
-echo "${ECHO_T}$ac_cv_have_decl_getc_unlocked" >&6
-if test $ac_cv_have_decl_getc_unlocked = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETC_UNLOCKED 1
-_ACEOF
-
-
-else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETC_UNLOCKED 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether snprintf is declared" >&5
-echo $ECHO_N "checking whether snprintf is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_snprintf+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. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef snprintf
- char *p = (char *) snprintf;
-#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_cv_have_decl_snprintf=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_snprintf=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_snprintf" >&5
-echo "${ECHO_T}$ac_cv_have_decl_snprintf" >&6
-if test $ac_cv_have_decl_snprintf = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SNPRINTF 1
-_ACEOF
-
-
-else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SNPRINTF 0
-_ACEOF
-
-
-fi
-echo "$as_me:$LINENO: checking whether vsnprintf is declared" >&5
-echo $ECHO_N "checking whether vsnprintf is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_vsnprintf+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. */
-$ac_includes_default
-int
-main ()
-{
-#ifndef vsnprintf
- char *p = (char *) vsnprintf;
-#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_cv_have_decl_vsnprintf=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_vsnprintf=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_vsnprintf" >&5
-echo "${ECHO_T}$ac_cv_have_decl_vsnprintf" >&6
-if test $ac_cv_have_decl_vsnprintf = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_VSNPRINTF 1
-_ACEOF
-
-
-else
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_VSNPRINTF 0
-_ACEOF
-
-
-fi
-
-
-
-
-case "${host}" in
-*-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
-
-cat >>confdefs.h <<\_ACEOF
-#define USE_BINARY_FOPEN 1
-_ACEOF
- ;;
-esac
-
-# target-specific stuff:
-
-# Canonicalize the secondary target names.
-if test -n "$enable_targets"; then
- for targ in `echo $enable_targets | sed 's/,/ /g'`
- do
- result=`$ac_config_sub $targ 2>/dev/null`
- if test -n "$result"; then
- canon_targets="$canon_targets $result"
- else
- # Allow targets that config.sub doesn't recognize, like "all".
- canon_targets="$canon_targets $targ"
- fi
- done
-fi
-
-all_targets=false
-BUILD_NLMCONV=
-NLMCONV_DEFS=
-BUILD_SRCONV=
-BUILD_DLLTOOL=
-DLLTOOL_DEFS=
-BUILD_WINDRES=
-BUILD_DLLWRAP=
-BUILD_MISC=
-OBJDUMP_DEFS=
-
-for targ in $target $canon_targets
-do
- if test "x$targ" = "xall"; then
- all_targets=true
- BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)'
- BUILD_SRCONV='$(SRCONV_PROG)'
- NLMCONV_DEFS="-DNLMCONV_I386 -DNLMCONV_ALPHA -DNLMCONV_POWERPC -DNLMCONV_SPARC"
- else
- case $targ in
- i[3-7]86*-*-netware*)
- BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)'
- NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_I386"
- ;;
- alpha*-*-netware*)
- BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)'
- NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_ALPHA"
- ;;
- powerpc*-*-netware*)
- BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)'
- NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_POWERPC"
- ;;
- sparc*-*-netware*)
- BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)'
- NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_SPARC"
- ;;
- esac
- case $targ in
- *-*-hms*) BUILD_SRCONV='$(SRCONV_PROG)' ;;
- esac
- case $targ in
- arm-epoc-pe*)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_EPOC -DDLLTOOL_ARM"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
- arm-*-pe* | arm-*-wince)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
- thumb-*-pe*)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
- i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
- ;;
- i[3-7]86-*-interix)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
- ;;
- powerpc*-aix5.[01])
- ;;
- powerpc*-aix5.*)
- OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT"
- ;;
- powerpc*-*-pe* | powerpc*-*-cygwin*)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_PPC"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
- sh*-*-pe)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_SH"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
- mips*-*-pe)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MIPS"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
- mcore-*-pe)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
- mcore-*-elf)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE_ELF"
- ;;
- esac
- fi
-done
-
-if test "${with_windres+set}" = set; then
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define TARGET "${target}"
-_ACEOF
-
-
-targ=$target
-. $srcdir/../bfd/config.bfd
-if test "x$targ_underscore" = "xyes"; then
- UNDERSCORE=1
-else
- UNDERSCORE=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define TARGET_PREPENDS_UNDERSCORE $UNDERSCORE
-_ACEOF
-
-
-# Emulation
-for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
-do
- # Canonicalize the secondary target names.
- result=`$ac_config_sub $targ_alias 2>/dev/null`
- if test -n "$result"; then
- targ=$result
- else
- targ=$targ_alias
- fi
-
- . ${srcdir}/configure.tgt
-
- EMULATION=$targ_emul
- EMULATION_VECTOR=$targ_emul_vector
-done
-
-
-
-
-# Required for html and install-html
-
-
-
-
- ac_config_files="$ac_config_files Makefile doc/Makefile po/Makefile.in:po/Make-in"
- ac_config_commands="$ac_config_commands default"
-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 "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"MAINTAINER_MODE\" 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 $as_me, 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="\\
-config.status
-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"
-
-_ACEOF
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
- case "$ac_config_target" in
- # Handling of arguments.
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
- "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in:po/Make-in" ;;
- "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
- "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
- "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;;
- *) { { 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,@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,@target@,$target,;t t
-s,@target_cpu@,$target_cpu,;t t
-s,@target_vendor@,$target_vendor,;t t
-s,@target_os@,$target_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,@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,@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,@LN_S@,$LN_S,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@LIBTOOL@,$LIBTOOL,;t t
-s,@WARN_CFLAGS@,$WARN_CFLAGS,;t t
-s,@NO_WERROR@,$NO_WERROR,;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,@CPP@,$CPP,;t t
-s,@EGREP@,$EGREP,;t t
-s,@ALLOCA@,$ALLOCA,;t t
-s,@USE_NLS@,$USE_NLS,;t t
-s,@MSGFMT@,$MSGFMT,;t t
-s,@GMSGFMT@,$GMSGFMT,;t t
-s,@XGETTEXT@,$XGETTEXT,;t t
-s,@USE_INCLUDED_LIBINTL@,$USE_INCLUDED_LIBINTL,;t t
-s,@CATALOGS@,$CATALOGS,;t t
-s,@CATOBJEXT@,$CATOBJEXT,;t t
-s,@DATADIRNAME@,$DATADIRNAME,;t t
-s,@GMOFILES@,$GMOFILES,;t t
-s,@INSTOBJEXT@,$INSTOBJEXT,;t t
-s,@INTLDEPS@,$INTLDEPS,;t t
-s,@INTLLIBS@,$INTLLIBS,;t t
-s,@INTLOBJS@,$INTLOBJS,;t t
-s,@POFILES@,$POFILES,;t t
-s,@POSUB@,$POSUB,;t t
-s,@INCLUDE_LOCALE_H@,$INCLUDE_LOCALE_H,;t t
-s,@GT_NO@,$GT_NO,;t t
-s,@GT_YES@,$GT_YES,;t t
-s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t
-s,@l@,$l,;t t
-s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
-s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
-s,@MAINT@,$MAINT,;t t
-s,@HDEFINES@,$HDEFINES,;t t
-s,@AR@,$AR,;t t
-s,@CC_FOR_BUILD@,$CC_FOR_BUILD,;t t
-s,@EXEEXT_FOR_BUILD@,$EXEEXT_FOR_BUILD,;t t
-s,@DEMANGLER_NAME@,$DEMANGLER_NAME,;t t
-s,@NLMCONV_DEFS@,$NLMCONV_DEFS,;t t
-s,@BUILD_NLMCONV@,$BUILD_NLMCONV,;t t
-s,@BUILD_SRCONV@,$BUILD_SRCONV,;t t
-s,@BUILD_DLLTOOL@,$BUILD_DLLTOOL,;t t
-s,@DLLTOOL_DEFS@,$DLLTOOL_DEFS,;t t
-s,@BUILD_WINDRES@,$BUILD_WINDRES,;t t
-s,@BUILD_DLLWRAP@,$BUILD_DLLWRAP,;t t
-s,@BUILD_MISC@,$BUILD_MISC,;t t
-s,@OBJDUMP_DEFS@,$OBJDUMP_DEFS,;t t
-s,@EMULATION@,$EMULATION,;t t
-s,@EMULATION_VECTOR@,$EMULATION_VECTOR,;t t
-s,@datarootdir@,$datarootdir,;t t
-s,@docdir@,$docdir,;t t
-s,@htmldir@,$htmldir,;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
-
- 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
- # 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; }
-_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 )
-case "x$CONFIG_FILES" in
-*) sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile ;;
-esac
- ;;
- 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/binutils-2.17/binutils/configure.com b/binutils-2.17/binutils/configure.com
deleted file mode 100644
index 99463d5e..00000000
--- a/binutils-2.17/binutils/configure.com
+++ /dev/null
@@ -1,76 +0,0 @@
-$!
-$! This file configures binutils for use with openVMS/Alpha
-$! We do not use the configure script, since we do not have /bin/sh
-$! to execute it.
-$!
-$! Written by Klaus K"ampf (kkaempf@rmi.de)
-$!
-$arch_indx = 1 + ((f$getsyi("CPU").ge.128).and.1) ! vax==1, alpha==2
-$arch = f$element(arch_indx,"|","|VAX|Alpha|")
-$!
-$!
-$! Generate config.h
-$!
-$ create []config.h
-/* config.h. Generated automatically by configure. */
-/* config.in. Generated automatically from configure.in by autoheader. */
-/* Is the type time_t defined in <time.h>? */
-#define HAVE_TIME_T_IN_TIME_H 1
-/* Is the type time_t defined in <sys/types.h>? */
-#define HAVE_TIME_T_IN_TYPES_H 1
-/* Does <utime.h> define struct utimbuf? */
-#define HAVE_GOOD_UTIME_H 1
-/* Whether fprintf must be declared even if <stdio.h> is included. */
-#define NEED_DECLARATION_FPRINTF 1
-/* Whether sbrk must be declared even if <unistd.h> is included. */
-#undef NEED_DECLARATION_SBRK
-/* Do we need to use the b modifier when opening binary files? */
-/* #undef USE_BINARY_FOPEN */
-/* Define if you have the sbrk function. */
-/* #undef HAVE_SBRK 1 */
-/* Define if you have the utimes function. */
-#define HAVE_UTIMES 1
-/* Define if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-/* Define if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-/* Define if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-/* Define if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
-/* Define if you have the <sys/file.h> header file. */
-#define HAVE_SYS_FILE_H 1
-/* Define if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-$ write sys$output "Generated `config.h'"
-$!
-$!
-$! Edit VERSION in makefile.vms-in
-$!
-$ edit/tpu/nojournal/nosection/nodisplay/command=sys$input -
- []makefile.vms-in /output=[]makefile.vms
-$DECK
-!
-! Get VERSION from configure.in
-!
- mfile := CREATE_BUFFER("mfile", "CONFIGURE.IN");
- rang := CREATE_RANGE(BEGINNING_OF(mfile), END_OF(mfile));
- match_pos := SEARCH_QUIETLY('AM_INIT_AUTOMAKE(binutils, ', FORWARD, EXACT, rang);
- IF match_pos <> 0 THEN;
- POSITION(BEGINNING_OF(match_pos));
- ERASE(match_pos);
- vers := CURRENT_LINE-")";
- ELSE;
- vers := "unknown";
- ENDIF;
-
- file := CREATE_BUFFER("file", GET_INFO(COMMAND_LINE, "file_name"));
- rang := CREATE_RANGE(BEGINNING_OF(file), END_OF(file));
- match_pos := SEARCH_QUIETLY('@VERSION@', FORWARD, EXACT, rang);
- POSITION(BEGINNING_OF(match_pos));
- ERASE(match_pos);
- COPY_TEXT(vers);
- WRITE_FILE(file, GET_INFO(COMMAND_LINE, "output_file"));
- QUIT
-$ EOD
-$ write sys$output "Created `makefile.vms'"
diff --git a/binutils-2.17/binutils/configure.in b/binutils-2.17/binutils/configure.in
deleted file mode 100644
index 10afc537..00000000
--- a/binutils-2.17/binutils/configure.in
+++ /dev/null
@@ -1,359 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.
-dnl
-AC_PREREQ(2.57)
-AC_INIT(ar.c)
-
-AC_CANONICAL_SYSTEM
-AC_ISC_POSIX
-
-changequote(,)dnl
-BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
-changequote([,])dnl
-AM_INIT_AUTOMAKE(binutils, ${BFD_VERSION})
-
-AM_PROG_LIBTOOL
-
-AC_ARG_ENABLE(targets,
-[ --enable-targets alternative target configurations],
-[case "${enableval}" in
- yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
- ;;
- no) enable_targets= ;;
- *) enable_targets=$enableval ;;
-esac])dnl
-AC_ARG_ENABLE(commonbfdlib,
-[ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
-[case "${enableval}" in
- yes) commonbfdlib=true ;;
- no) commonbfdlib=false ;;
- *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
-esac])dnl
-
-AM_BINUTILS_WARNINGS
-
-AM_CONFIG_HEADER(config.h:config.in)
-
-if test -z "$target" ; then
- AC_MSG_ERROR(Unrecognized target system type; please check config.sub.)
-fi
-if test -z "$host" ; then
- AC_MSG_ERROR(Unrecognized host system type; please check config.sub.)
-fi
-
-AC_PROG_CC
-AC_GNU_SOURCE
-
-AC_PROG_YACC
-AM_PROG_LEX
-
-ALL_LINGUAS="fr tr ja es sv da zh_CN ru ro rw zh_TW fi vi"
-CY_GNU_GETTEXT
-
-AM_MAINTAINER_MODE
-AC_EXEEXT
-if test -n "$EXEEXT"; then
- AC_DEFINE(HAVE_EXECUTABLE_SUFFIX, 1,
- [Does the platform use an executable suffix?])
-fi
-AC_DEFINE_UNQUOTED(EXECUTABLE_SUFFIX, "${EXEEXT}",
- [Suffix used for executables, if any.])
-
-# host-specific stuff:
-
-HDEFINES=
-
-. ${srcdir}/../bfd/configure.host
-
-AC_SUBST(HDEFINES)
-AR=${AR-ar}
-AC_SUBST(AR)
-AC_PROG_RANLIB
-AC_PROG_INSTALL
-
-BFD_CC_FOR_BUILD
-
-DEMANGLER_NAME=c++filt
-case "${host}" in
- *-*-go32* | *-*-msdos*)
- DEMANGLER_NAME=cxxfilt
-esac
-AC_SUBST(DEMANGLER_NAME)
-
-AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h)
-AC_HEADER_SYS_WAIT
-AC_FUNC_ALLOCA
-AC_CHECK_FUNCS(sbrk utimes setmode getc_unlocked strcoll)
-
-# Check whether fopen64 is available and whether _LARGEFILE64_SOURCE
-# needs to be defined for it
-AC_MSG_CHECKING([for fopen64])
-AC_CACHE_VAL(bu_cv_have_fopen64,
-[AC_TRY_LINK([#include <stdio.h>], [FILE *f = fopen64 ("/tmp/foo","r");],
-bu_cv_have_fopen64=yes,
-[saved_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
- AC_TRY_LINK([#include <stdio.h>], [FILE *f = fopen64 ("/tmp/foo","r");],
-bu_cv_have_fopen64="need -D_LARGEFILE64_SOURCE",
-bu_cv_have_fopen64=no)
- CPPFLAGS=$saved_CPPFLAGS])])
-AC_MSG_RESULT($bu_cv_have_fopen64)
-if test "$bu_cv_have_fopen64" != no; then
- AC_DEFINE([HAVE_FOPEN64], 1,
- [Is fopen64 available?])
-fi
-AC_MSG_CHECKING([for stat64])
-AC_CACHE_VAL(bu_cv_have_stat64,
-[AC_TRY_LINK([#include <sys/stat.h>], [struct stat64 st; stat64 ("/tmp/foo", &st);],
-bu_cv_have_stat64=yes,
-[saved_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
- AC_TRY_LINK([#include <sys/stat.h>], [struct stat64 st; stat64 ("/tmp/foo", &st);],
-bu_cv_have_stat64="need -D_LARGEFILE64_SOURCE",
-bu_cv_have_stat64=no)
- CPPFLAGS=$saved_CPPFLAGS])])
-AC_MSG_RESULT($bu_cv_have_stat64)
-if test "$bu_cv_have_stat64" != no; then
- AC_DEFINE([HAVE_STAT64], 1,
- [Is stat64 available?])
-fi
-if test "$bu_cv_have_fopen64" = "need -D_LARGEFILE64_SOURCE" \
- || test "$bu_cv_have_stat64" = "need -D_LARGEFILE64_SOURCE"; then
- AC_DEFINE([_LARGEFILE64_SOURCE], 1,
- [Enable LFS])
- CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
-fi
-
-# Some systems have frexp only in -lm, not in -lc.
-AC_SEARCH_LIBS(frexp, m)
-
-AC_MSG_CHECKING(for time_t in time.h)
-AC_CACHE_VAL(bu_cv_decl_time_t_time_h,
-[AC_TRY_COMPILE([#include <time.h>], [time_t i;],
-bu_cv_decl_time_t_time_h=yes, bu_cv_decl_time_t_time_h=no)])
-AC_MSG_RESULT($bu_cv_decl_time_t_time_h)
-if test $bu_cv_decl_time_t_time_h = yes; then
- AC_DEFINE([HAVE_TIME_T_IN_TIME_H], 1,
- [Is the type time_t defined in <time.h>?])
-fi
-
-AC_MSG_CHECKING(for time_t in sys/types.h)
-AC_CACHE_VAL(bu_cv_decl_time_t_types_h,
-[AC_TRY_COMPILE([#include <sys/types.h>], [time_t i;],
-bu_cv_decl_time_t_types_h=yes, bu_cv_decl_time_t_types_h=no)])
-AC_MSG_RESULT($bu_cv_decl_time_t_types_h)
-if test $bu_cv_decl_time_t_types_h = yes; then
- AC_DEFINE([HAVE_TIME_T_IN_TYPES_H], 1,
- [Is the type time_t defined in <sys/types.h>?])
-fi
-
-AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
-AC_CACHE_VAL(bu_cv_decl_getopt_unistd_h,
-[AC_TRY_COMPILE([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);],
-bu_cv_decl_getopt_unistd_h=yes, bu_cv_decl_getopt_unistd_h=no)])
-AC_MSG_RESULT($bu_cv_decl_getopt_unistd_h)
-if test $bu_cv_decl_getopt_unistd_h = yes; then
- AC_DEFINE([HAVE_DECL_GETOPT], 1,
- [Is the prototype for getopt in <unistd.h> in the expected format?])
-fi
-
-# Under Next 3.2 <utime.h> apparently does not define struct utimbuf
-# by default.
-AC_MSG_CHECKING([for utime.h])
-AC_CACHE_VAL(bu_cv_header_utime_h,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#include <utime.h>],
-[struct utimbuf s;],
-bu_cv_header_utime_h=yes, bu_cv_header_utime_h=no)])
-AC_MSG_RESULT($bu_cv_header_utime_h)
-if test $bu_cv_header_utime_h = yes; then
- AC_DEFINE(HAVE_GOOD_UTIME_H, 1, [Does <utime.h> define struct utimbuf?])
-fi
-
-AC_CHECK_DECLS([fprintf, stpcpy, strstr, sbrk, getenv, environ, getc_unlocked,
- snprintf, vsnprintf])
-
-BFD_BINARY_FOPEN
-
-# target-specific stuff:
-
-# Canonicalize the secondary target names.
-if test -n "$enable_targets"; then
- for targ in `echo $enable_targets | sed 's/,/ /g'`
- do
- result=`$ac_config_sub $targ 2>/dev/null`
- if test -n "$result"; then
- canon_targets="$canon_targets $result"
- else
- # Allow targets that config.sub doesn't recognize, like "all".
- canon_targets="$canon_targets $targ"
- fi
- done
-fi
-
-all_targets=false
-BUILD_NLMCONV=
-NLMCONV_DEFS=
-BUILD_SRCONV=
-BUILD_DLLTOOL=
-DLLTOOL_DEFS=
-BUILD_WINDRES=
-BUILD_DLLWRAP=
-BUILD_MISC=
-OBJDUMP_DEFS=
-
-for targ in $target $canon_targets
-do
- if test "x$targ" = "xall"; then
- all_targets=true
- BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)'
- BUILD_SRCONV='$(SRCONV_PROG)'
- NLMCONV_DEFS="-DNLMCONV_I386 -DNLMCONV_ALPHA -DNLMCONV_POWERPC -DNLMCONV_SPARC"
- else
- case $targ in
-changequote(,)dnl
- i[3-7]86*-*-netware*)
-changequote([,])dnl
- BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)'
- NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_I386"
- ;;
- alpha*-*-netware*)
- BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)'
- NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_ALPHA"
- ;;
- powerpc*-*-netware*)
- BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)'
- NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_POWERPC"
- ;;
- sparc*-*-netware*)
- BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)'
- NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_SPARC"
- ;;
- esac
- case $targ in
- *-*-hms*) BUILD_SRCONV='$(SRCONV_PROG)' ;;
- esac
- case $targ in
- arm-epoc-pe*)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM_EPOC -DDLLTOOL_ARM"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
- arm-*-pe* | arm-*-wince)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
- thumb-*-pe*)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_ARM"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
-changequote(,)dnl
- i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*)
-changequote([,])dnl
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
- ;;
-changequote(,)dnl
- i[3-7]86-*-interix)
-changequote([,])dnl
- BUILD_DLLTOOL='$(DLLTOOL_PROG)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
- ;;
-changequote(,)dnl
- powerpc*-aix5.[01])
-changequote([,])dnl
- ;;
- powerpc*-aix5.*)
- OBJDUMP_DEFS="-DAIX_WEAK_SUPPORT"
- ;;
- powerpc*-*-pe* | powerpc*-*-cygwin*)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_PPC"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
- sh*-*-pe)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_SH"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
- mips*-*-pe)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MIPS"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
- mcore-*-pe)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE"
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
- ;;
- mcore-*-elf)
- BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
- DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_MCORE_ELF"
- ;;
- esac
- fi
-done
-
-if test "${with_windres+set}" = set; then
- BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
-fi
-
-AC_SUBST(NLMCONV_DEFS)
-AC_SUBST(BUILD_NLMCONV)
-AC_SUBST(BUILD_SRCONV)
-AC_SUBST(BUILD_DLLTOOL)
-AC_SUBST(DLLTOOL_DEFS)
-AC_SUBST(BUILD_WINDRES)
-AC_SUBST(BUILD_DLLWRAP)
-AC_SUBST(BUILD_MISC)
-AC_SUBST(OBJDUMP_DEFS)
-
-AC_DEFINE_UNQUOTED(TARGET, "${target}", [Configured target name.])
-
-targ=$target
-. $srcdir/../bfd/config.bfd
-if test "x$targ_underscore" = "xyes"; then
- UNDERSCORE=1
-else
- UNDERSCORE=0
-fi
-AC_DEFINE_UNQUOTED(TARGET_PREPENDS_UNDERSCORE, $UNDERSCORE,
- [Define to 1 if user symbol names have a leading underscore, 0 if not.])
-
-# Emulation
-for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
-do
- # Canonicalize the secondary target names.
- result=`$ac_config_sub $targ_alias 2>/dev/null`
- if test -n "$result"; then
- targ=$result
- else
- targ=$targ_alias
- fi
-
- . ${srcdir}/configure.tgt
-
- EMULATION=$targ_emul
- EMULATION_VECTOR=$targ_emul_vector
-done
-
-AC_SUBST(EMULATION)
-AC_SUBST(EMULATION_VECTOR)
-
-# Required for html and install-html
-AC_SUBST(datarootdir)
-AC_SUBST(docdir)
-AC_SUBST(htmldir)
-
-AC_OUTPUT(Makefile doc/Makefile po/Makefile.in:po/Make-in,
-[
-case "x$CONFIG_FILES" in
-*) sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile ;;
-esac
-])
diff --git a/binutils-2.17/binutils/configure.tgt b/binutils-2.17/binutils/configure.tgt
deleted file mode 100644
index 2d5ce2b8..00000000
--- a/binutils-2.17/binutils/configure.tgt
+++ /dev/null
@@ -1,26 +0,0 @@
-# This is the binutils target specific file. This is invoked by the
-# autoconf generated configure script. Putting it in a separate shell
-# file lets us skip running autoconf when modifying target specific
-# information.
-
-# This file switches on the shell variable ${targ}, and sets the
-# following shell variables:
-# targ_emul name of emulation to use
-# targ_emul_vector name of vector to use
-
-case "${targ}" in
- powerpc-*-aix5* | rs6000-*-aix5*)
- targ_emul=aix
- targ_emul_vector=bin_aix5_emulation
- ;;
-
- powerpc-*-aix4.3* | rs6000-*-aix4.3*)
- targ_emul=aix
- targ_emul_vector=bin_aix_emulation
- ;;
-
- *)
- targ_emul=vanilla
- targ_emul_vector=bin_vanilla_emulation
- ;;
-esac
diff --git a/binutils-2.17/binutils/cxxfilt.c b/binutils-2.17/binutils/cxxfilt.c
deleted file mode 100644
index a8ec43ba..00000000
--- a/binutils-2.17/binutils/cxxfilt.c
+++ /dev/null
@@ -1,287 +0,0 @@
-/* Demangler for GNU C++ - main program
- Copyright 1989, 1991, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
- Written by James Clark (jjc@jclark.uucp)
- Rewritten by Fred Fish (fnf@cygnus.com) for ARM and Lucid demangling
- Modified by Satish Pai (pai@apollo.hp.com) for HP demangling
-
- This file is part of GCC.
-
- GCC 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.
-
- GCC 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 GCC; see the file COPYING. If not, write to the Free
- Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#include "config.h"
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "demangle.h"
-#include "getopt.h"
-#include "safe-ctype.h"
-
-static int flags = DMGL_PARAMS | DMGL_ANSI | DMGL_VERBOSE;
-static int strip_underscore = TARGET_PREPENDS_UNDERSCORE;
-
-static const struct option long_options[] =
-{
- {"strip-underscore", no_argument, NULL, '_'},
- {"format", required_argument, NULL, 's'},
- {"help", no_argument, NULL, 'h'},
- {"no-params", no_argument, NULL, 'p'},
- {"no-strip-underscores", no_argument, NULL, 'n'},
- {"no-verbose", no_argument, NULL, 'i'},
- {"types", no_argument, NULL, 't'},
- {"version", no_argument, NULL, 'v'},
- {NULL, no_argument, NULL, 0}
-};
-
-static void
-demangle_it (char *mangled_name)
-{
- char *result;
- unsigned int skip_first = 0;
-
- /* _ and $ are sometimes found at the start of function names
- in assembler sources in order to distinguish them from other
- names (eg register names). So skip them here. */
- if (mangled_name[0] == '.' || mangled_name[0] == '$')
- ++skip_first;
- if (strip_underscore && mangled_name[skip_first] == '_')
- ++skip_first;
-
- result = cplus_demangle (mangled_name + skip_first, flags);
-
- if (result == NULL)
- printf (mangled_name);
- else
- {
- if (mangled_name[0] == '.')
- putchar ('.');
- printf (result);
- free (result);
- }
-}
-
-static void
-print_demangler_list (FILE *stream)
-{
- const struct demangler_engine *demangler;
-
- fprintf (stream, "{%s", libiberty_demanglers->demangling_style_name);
-
- for (demangler = libiberty_demanglers + 1;
- demangler->demangling_style != unknown_demangling;
- ++demangler)
- fprintf (stream, ",%s", demangler->demangling_style_name);
-
- fprintf (stream, "}");
-}
-
-static void
-usage (FILE *stream, int status)
-{
- fprintf (stream, "\
-Usage: %s [options] [mangled names]\n", program_name);
- fprintf (stream, "\
-Options are:\n\
- [-_|--strip-underscore] Ignore first leading underscore%s\n",
- TARGET_PREPENDS_UNDERSCORE ? " (default)" : "");
- fprintf (stream, "\
- [-n|--no-strip-underscore] Do not ignore a leading underscore%s\n",
- TARGET_PREPENDS_UNDERSCORE ? "" : " (default)");
- fprintf (stream, "\
- [-p|--no-params] Do not display function arguments\n\
- [-i|--no-verbose] Do not show implementation details (if any)\n\
- [-t|--types] Also attempt to demangle type encodings\n\
- [-s|--format ");
- print_demangler_list (stream);
- fprintf (stream, "]\n");
-
- fprintf (stream, "\
- [@<file>] Read extra options from <file>\n\
- [-h|--help] Display this information\n\
- [-v|--version] Show the version information\n\
-Demangled names are displayed to stdout.\n\
-If a name cannot be demangled it is just echoed to stdout.\n\
-If no names are provided on the command line, stdin is read.\n");
- exit (status);
-}
-
-/* Return the string of non-alnum characters that may occur
- as a valid symbol component, in the standard assembler symbol
- syntax. */
-
-static const char *
-standard_symbol_characters (void)
-{
- return "_$.";
-}
-
-/* Return the string of non-alnum characters that may occur
- as a valid symbol name component in an HP object file.
-
- Note that, since HP's compiler generates object code straight from
- C++ source, without going through an assembler, its mangled
- identifiers can use all sorts of characters that no assembler would
- tolerate, so the alphabet this function creates is a little odd.
- Here are some sample mangled identifiers offered by HP:
-
- typeid*__XT24AddressIndExpClassMember_
- [Vftptr]key:__dt__32OrdinaryCompareIndExpClassMemberFv
- __ct__Q2_9Elf64_Dyn18{unnamed.union.#1}Fv
-
- This still seems really weird to me, since nowhere else in this
- file is there anything to recognize curly brackets, parens, etc.
- I've talked with Srikanth <srikanth@cup.hp.com>, and he assures me
- this is right, but I still strongly suspect that there's a
- misunderstanding here.
-
- If we decide it's better for c++filt to use HP's assembler syntax
- to scrape identifiers out of its input, here's the definition of
- the symbol name syntax from the HP assembler manual:
-
- Symbols are composed of uppercase and lowercase letters, decimal
- digits, dollar symbol, period (.), ampersand (&), pound sign(#) and
- underscore (_). A symbol can begin with a letter, digit underscore or
- dollar sign. If a symbol begins with a digit, it must contain a
- non-digit character.
-
- So have fun. */
-static const char *
-hp_symbol_characters (void)
-{
- return "_$.<>#,*&[]:(){}";
-}
-
-extern int main (int, char **);
-
-int
-main (int argc, char **argv)
-{
- int c;
- const char *valid_symbols;
- enum demangling_styles style = auto_demangling;
-
- program_name = argv[0];
- xmalloc_set_program_name (program_name);
-
- expandargv (&argc, &argv);
-
- while ((c = getopt_long (argc, argv, "_hinps:tv", long_options, (int *) 0)) != EOF)
- {
- switch (c)
- {
- case '?':
- usage (stderr, 1);
- break;
- case 'h':
- usage (stdout, 0);
- case 'n':
- strip_underscore = 0;
- break;
- case 'p':
- flags &= ~ DMGL_PARAMS;
- break;
- case 't':
- flags |= DMGL_TYPES;
- break;
- case 'i':
- flags &= ~ DMGL_VERBOSE;
- break;
- case 'v':
- print_version ("c++filt");
- return 0;
- case '_':
- strip_underscore = 1;
- break;
- case 's':
- style = cplus_demangle_name_to_style (optarg);
- if (style == unknown_demangling)
- {
- fprintf (stderr, "%s: unknown demangling style `%s'\n",
- program_name, optarg);
- return 1;
- }
- cplus_demangle_set_style (style);
- break;
- }
- }
-
- if (optind < argc)
- {
- for ( ; optind < argc; optind++)
- {
- demangle_it (argv[optind]);
- putchar ('\n');
- }
-
- return 0;
- }
-
- switch (current_demangling_style)
- {
- case gnu_demangling:
- case lucid_demangling:
- case arm_demangling:
- case java_demangling:
- case edg_demangling:
- case gnat_demangling:
- case gnu_v3_demangling:
- case auto_demangling:
- valid_symbols = standard_symbol_characters ();
- break;
- case hp_demangling:
- valid_symbols = hp_symbol_characters ();
- break;
- default:
- /* Folks should explicitly indicate the appropriate alphabet for
- each demangling. Providing a default would allow the
- question to go unconsidered. */
- fatal ("Internal error: no symbol alphabet for current style");
- }
-
- for (;;)
- {
- static char mbuffer[32767];
- unsigned i = 0;
-
- c = getchar ();
- /* Try to read a mangled name. */
- while (c != EOF && (ISALNUM (c) || strchr (valid_symbols, c)))
- {
- if (i >= sizeof (mbuffer) - 1)
- break;
- mbuffer[i++] = c;
- c = getchar ();
- }
-
- if (i > 0)
- {
- mbuffer[i] = 0;
- demangle_it (mbuffer);
- }
-
- if (c == EOF)
- break;
-
- /* Echo the whitespace characters so that the output looks
- like the input, only with the mangled names demangled. */
- putchar (c);
- if (c == '\n')
- fflush (stdout);
- }
-
- fflush (stdout);
- return 0;
-}
diff --git a/binutils-2.17/binutils/debug.c b/binutils-2.17/binutils/debug.c
deleted file mode 100644
index 07d38acf..00000000
--- a/binutils-2.17/binutils/debug.c
+++ /dev/null
@@ -1,3373 +0,0 @@
-/* debug.c -- Handle generic debugging information.
- Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor <ian@cygnus.com>.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This file implements a generic debugging format. We may eventually
- have readers which convert different formats into this generic
- format, and writers which write it out. The initial impetus for
- this was writing a converter from stabs to HP IEEE-695 debugging
- format. */
-
-#include <stdio.h>
-#include <assert.h>
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "debug.h"
-
-/* Global information we keep for debugging. A pointer to this
- structure is the debugging handle passed to all the routines. */
-
-struct debug_handle
-{
- /* A linked list of compilation units. */
- struct debug_unit *units;
- /* The current compilation unit. */
- struct debug_unit *current_unit;
- /* The current source file. */
- struct debug_file *current_file;
- /* The current function. */
- struct debug_function *current_function;
- /* The current block. */
- struct debug_block *current_block;
- /* The current line number information for the current unit. */
- struct debug_lineno *current_lineno;
- /* Mark. This is used by debug_write. */
- unsigned int mark;
- /* A struct/class ID used by debug_write. */
- unsigned int class_id;
- /* The base for class_id for this call to debug_write. */
- unsigned int base_id;
- /* The current line number in debug_write. */
- struct debug_lineno *current_write_lineno;
- unsigned int current_write_lineno_index;
- /* A list of classes which have assigned ID's during debug_write.
- This is linked through the next_id field of debug_class_type. */
- struct debug_class_id *id_list;
- /* A list used to avoid recursion during debug_type_samep. */
- struct debug_type_compare_list *compare_list;
-};
-
-/* Information we keep for a single compilation unit. */
-
-struct debug_unit
-{
- /* The next compilation unit. */
- struct debug_unit *next;
- /* A list of files included in this compilation unit. The first
- file is always the main one, and that is where the main file name
- is stored. */
- struct debug_file *files;
- /* Line number information for this compilation unit. This is not
- stored by function, because assembler code may have line number
- information without function information. */
- struct debug_lineno *linenos;
-};
-
-/* Information kept for a single source file. */
-
-struct debug_file
-{
- /* The next source file in this compilation unit. */
- struct debug_file *next;
- /* The name of the source file. */
- const char *filename;
- /* Global functions, variables, types, etc. */
- struct debug_namespace *globals;
-};
-
-/* A type. */
-
-struct debug_type
-{
- /* Kind of type. */
- enum debug_type_kind kind;
- /* Size of type (0 if not known). */
- unsigned int size;
- /* Type which is a pointer to this type. */
- debug_type pointer;
- /* Tagged union with additional information about the type. */
- union
- {
- /* DEBUG_KIND_INDIRECT. */
- struct debug_indirect_type *kindirect;
- /* DEBUG_KIND_INT. */
- /* Whether the integer is unsigned. */
- bfd_boolean kint;
- /* DEBUG_KIND_STRUCT, DEBUG_KIND_UNION, DEBUG_KIND_CLASS,
- DEBUG_KIND_UNION_CLASS. */
- struct debug_class_type *kclass;
- /* DEBUG_KIND_ENUM. */
- struct debug_enum_type *kenum;
- /* DEBUG_KIND_POINTER. */
- struct debug_type *kpointer;
- /* DEBUG_KIND_FUNCTION. */
- struct debug_function_type *kfunction;
- /* DEBUG_KIND_REFERENCE. */
- struct debug_type *kreference;
- /* DEBUG_KIND_RANGE. */
- struct debug_range_type *krange;
- /* DEBUG_KIND_ARRAY. */
- struct debug_array_type *karray;
- /* DEBUG_KIND_SET. */
- struct debug_set_type *kset;
- /* DEBUG_KIND_OFFSET. */
- struct debug_offset_type *koffset;
- /* DEBUG_KIND_METHOD. */
- struct debug_method_type *kmethod;
- /* DEBUG_KIND_CONST. */
- struct debug_type *kconst;
- /* DEBUG_KIND_VOLATILE. */
- struct debug_type *kvolatile;
- /* DEBUG_KIND_NAMED, DEBUG_KIND_TAGGED. */
- struct debug_named_type *knamed;
- } u;
-};
-
-/* Information kept for an indirect type. */
-
-struct debug_indirect_type
-{
- /* Slot where the final type will appear. */
- debug_type *slot;
- /* Tag. */
- const char *tag;
-};
-
-/* Information kept for a struct, union, or class. */
-
-struct debug_class_type
-{
- /* NULL terminated array of fields. */
- debug_field *fields;
- /* A mark field which indicates whether the struct has already been
- printed. */
- unsigned int mark;
- /* This is used to uniquely identify unnamed structs when printing. */
- unsigned int id;
- /* The remaining fields are only used for DEBUG_KIND_CLASS and
- DEBUG_KIND_UNION_CLASS. */
- /* NULL terminated array of base classes. */
- debug_baseclass *baseclasses;
- /* NULL terminated array of methods. */
- debug_method *methods;
- /* The type of the class providing the virtual function table for
- this class. This may point to the type itself. */
- debug_type vptrbase;
-};
-
-/* Information kept for an enum. */
-
-struct debug_enum_type
-{
- /* NULL terminated array of names. */
- const char **names;
- /* Array of corresponding values. */
- bfd_signed_vma *values;
-};
-
-/* Information kept for a function. FIXME: We should be able to
- record the parameter types. */
-
-struct debug_function_type
-{
- /* Return type. */
- debug_type return_type;
- /* NULL terminated array of argument types. */
- debug_type *arg_types;
- /* Whether the function takes a variable number of arguments. */
- bfd_boolean varargs;
-};
-
-/* Information kept for a range. */
-
-struct debug_range_type
-{
- /* Range base type. */
- debug_type type;
- /* Lower bound. */
- bfd_signed_vma lower;
- /* Upper bound. */
- bfd_signed_vma upper;
-};
-
-/* Information kept for an array. */
-
-struct debug_array_type
-{
- /* Element type. */
- debug_type element_type;
- /* Range type. */
- debug_type range_type;
- /* Lower bound. */
- bfd_signed_vma lower;
- /* Upper bound. */
- bfd_signed_vma upper;
- /* Whether this array is really a string. */
- bfd_boolean stringp;
-};
-
-/* Information kept for a set. */
-
-struct debug_set_type
-{
- /* Base type. */
- debug_type type;
- /* Whether this set is really a bitstring. */
- bfd_boolean bitstringp;
-};
-
-/* Information kept for an offset type (a based pointer). */
-
-struct debug_offset_type
-{
- /* The type the pointer is an offset from. */
- debug_type base_type;
- /* The type the pointer points to. */
- debug_type target_type;
-};
-
-/* Information kept for a method type. */
-
-struct debug_method_type
-{
- /* The return type. */
- debug_type return_type;
- /* The object type which this method is for. */
- debug_type domain_type;
- /* A NULL terminated array of argument types. */
- debug_type *arg_types;
- /* Whether the method takes a variable number of arguments. */
- bfd_boolean varargs;
-};
-
-/* Information kept for a named type. */
-
-struct debug_named_type
-{
- /* Name. */
- struct debug_name *name;
- /* Real type. */
- debug_type type;
-};
-
-/* A field in a struct or union. */
-
-struct debug_field
-{
- /* Name of the field. */
- const char *name;
- /* Type of the field. */
- struct debug_type *type;
- /* Visibility of the field. */
- enum debug_visibility visibility;
- /* Whether this is a static member. */
- bfd_boolean static_member;
- union
- {
- /* If static_member is false. */
- struct
- {
- /* Bit position of the field in the struct. */
- unsigned int bitpos;
- /* Size of the field in bits. */
- unsigned int bitsize;
- } f;
- /* If static_member is true. */
- struct
- {
- const char *physname;
- } s;
- } u;
-};
-
-/* A base class for an object. */
-
-struct debug_baseclass
-{
- /* Type of the base class. */
- struct debug_type *type;
- /* Bit position of the base class in the object. */
- unsigned int bitpos;
- /* Whether the base class is virtual. */
- bfd_boolean virtual;
- /* Visibility of the base class. */
- enum debug_visibility visibility;
-};
-
-/* A method of an object. */
-
-struct debug_method
-{
- /* The name of the method. */
- const char *name;
- /* A NULL terminated array of different types of variants. */
- struct debug_method_variant **variants;
-};
-
-/* The variants of a method function of an object. These indicate
- which method to run. */
-
-struct debug_method_variant
-{
- /* The physical name of the function. */
- const char *physname;
- /* The type of the function. */
- struct debug_type *type;
- /* The visibility of the function. */
- enum debug_visibility visibility;
- /* Whether the function is const. */
- bfd_boolean constp;
- /* Whether the function is volatile. */
- bfd_boolean volatilep;
- /* The offset to the function in the virtual function table. */
- bfd_vma voffset;
- /* If voffset is VOFFSET_STATIC_METHOD, this is a static method. */
-#define VOFFSET_STATIC_METHOD ((bfd_vma) -1)
- /* Context of a virtual method function. */
- struct debug_type *context;
-};
-
-/* A variable. This is the information we keep for a variable object.
- This has no name; a name is associated with a variable in a
- debug_name structure. */
-
-struct debug_variable
-{
- /* Kind of variable. */
- enum debug_var_kind kind;
- /* Type. */
- debug_type type;
- /* Value. The interpretation of the value depends upon kind. */
- bfd_vma val;
-};
-
-/* A function. This has no name; a name is associated with a function
- in a debug_name structure. */
-
-struct debug_function
-{
- /* Return type. */
- debug_type return_type;
- /* Parameter information. */
- struct debug_parameter *parameters;
- /* Block information. The first structure on the list is the main
- block of the function, and describes function local variables. */
- struct debug_block *blocks;
-};
-
-/* A function parameter. */
-
-struct debug_parameter
-{
- /* Next parameter. */
- struct debug_parameter *next;
- /* Name. */
- const char *name;
- /* Type. */
- debug_type type;
- /* Kind. */
- enum debug_parm_kind kind;
- /* Value (meaning depends upon kind). */
- bfd_vma val;
-};
-
-/* A typed constant. */
-
-struct debug_typed_constant
-{
- /* Type. */
- debug_type type;
- /* Value. FIXME: We may eventually need to support non-integral
- values. */
- bfd_vma val;
-};
-
-/* Information about a block within a function. */
-
-struct debug_block
-{
- /* Next block with the same parent. */
- struct debug_block *next;
- /* Parent block. */
- struct debug_block *parent;
- /* List of child blocks. */
- struct debug_block *children;
- /* Start address of the block. */
- bfd_vma start;
- /* End address of the block. */
- bfd_vma end;
- /* Local variables. */
- struct debug_namespace *locals;
-};
-
-/* Line number information we keep for a compilation unit. FIXME:
- This structure is easy to create, but can be very space
- inefficient. */
-
-struct debug_lineno
-{
- /* More line number information for this block. */
- struct debug_lineno *next;
- /* Source file. */
- struct debug_file *file;
- /* Line numbers, terminated by a -1 or the end of the array. */
-#define DEBUG_LINENO_COUNT 10
- unsigned long linenos[DEBUG_LINENO_COUNT];
- /* Addresses for the line numbers. */
- bfd_vma addrs[DEBUG_LINENO_COUNT];
-};
-
-/* A namespace. This is a mapping from names to objects. FIXME: This
- should be implemented as a hash table. */
-
-struct debug_namespace
-{
- /* List of items in this namespace. */
- struct debug_name *list;
- /* Pointer to where the next item in this namespace should go. */
- struct debug_name **tail;
-};
-
-/* Kinds of objects that appear in a namespace. */
-
-enum debug_object_kind
-{
- /* A type. */
- DEBUG_OBJECT_TYPE,
- /* A tagged type (really a different sort of namespace). */
- DEBUG_OBJECT_TAG,
- /* A variable. */
- DEBUG_OBJECT_VARIABLE,
- /* A function. */
- DEBUG_OBJECT_FUNCTION,
- /* An integer constant. */
- DEBUG_OBJECT_INT_CONSTANT,
- /* A floating point constant. */
- DEBUG_OBJECT_FLOAT_CONSTANT,
- /* A typed constant. */
- DEBUG_OBJECT_TYPED_CONSTANT
-};
-
-/* Linkage of an object that appears in a namespace. */
-
-enum debug_object_linkage
-{
- /* Local variable. */
- DEBUG_LINKAGE_AUTOMATIC,
- /* Static--either file static or function static, depending upon the
- namespace is. */
- DEBUG_LINKAGE_STATIC,
- /* Global. */
- DEBUG_LINKAGE_GLOBAL,
- /* No linkage. */
- DEBUG_LINKAGE_NONE
-};
-
-/* A name in a namespace. */
-
-struct debug_name
-{
- /* Next name in this namespace. */
- struct debug_name *next;
- /* Name. */
- const char *name;
- /* Mark. This is used by debug_write. */
- unsigned int mark;
- /* Kind of object. */
- enum debug_object_kind kind;
- /* Linkage of object. */
- enum debug_object_linkage linkage;
- /* Tagged union with additional information about the object. */
- union
- {
- /* DEBUG_OBJECT_TYPE. */
- struct debug_type *type;
- /* DEBUG_OBJECT_TAG. */
- struct debug_type *tag;
- /* DEBUG_OBJECT_VARIABLE. */
- struct debug_variable *variable;
- /* DEBUG_OBJECT_FUNCTION. */
- struct debug_function *function;
- /* DEBUG_OBJECT_INT_CONSTANT. */
- bfd_vma int_constant;
- /* DEBUG_OBJECT_FLOAT_CONSTANT. */
- double float_constant;
- /* DEBUG_OBJECT_TYPED_CONSTANT. */
- struct debug_typed_constant *typed_constant;
- } u;
-};
-
-/* During debug_write, a linked list of these structures is used to
- keep track of ID numbers that have been assigned to classes. */
-
-struct debug_class_id
-{
- /* Next ID number. */
- struct debug_class_id *next;
- /* The type with the ID. */
- struct debug_type *type;
- /* The tag; NULL if no tag. */
- const char *tag;
-};
-
-/* During debug_type_samep, a linked list of these structures is kept
- on the stack to avoid infinite recursion. */
-
-struct debug_type_compare_list
-{
- /* Next type on list. */
- struct debug_type_compare_list *next;
- /* The types we are comparing. */
- struct debug_type *t1;
- struct debug_type *t2;
-};
-
-/* During debug_get_real_type, a linked list of these structures is
- kept on the stack to avoid infinite recursion. */
-
-struct debug_type_real_list
-{
- /* Next type on list. */
- struct debug_type_real_list *next;
- /* The type we are checking. */
- struct debug_type *t;
-};
-
-/* Local functions. */
-
-static void debug_error (const char *);
-static struct debug_name *debug_add_to_namespace
- (struct debug_handle *, struct debug_namespace **, const char *,
- enum debug_object_kind, enum debug_object_linkage);
-static struct debug_name *debug_add_to_current_namespace
- (struct debug_handle *, const char *, enum debug_object_kind,
- enum debug_object_linkage);
-static struct debug_type *debug_make_type
- (struct debug_handle *, enum debug_type_kind, unsigned int);
-static struct debug_type *debug_get_real_type
- (void *, debug_type, struct debug_type_real_list *);
-static bfd_boolean debug_write_name
- (struct debug_handle *, const struct debug_write_fns *, void *,
- struct debug_name *);
-static bfd_boolean debug_write_type
- (struct debug_handle *, const struct debug_write_fns *, void *,
- struct debug_type *, struct debug_name *);
-static bfd_boolean debug_write_class_type
- (struct debug_handle *, const struct debug_write_fns *, void *,
- struct debug_type *, const char *);
-static bfd_boolean debug_write_function
- (struct debug_handle *, const struct debug_write_fns *, void *,
- const char *, enum debug_object_linkage, struct debug_function *);
-static bfd_boolean debug_write_block
- (struct debug_handle *, const struct debug_write_fns *, void *,
- struct debug_block *);
-static bfd_boolean debug_write_linenos
- (struct debug_handle *, const struct debug_write_fns *, void *, bfd_vma);
-static bfd_boolean debug_set_class_id
- (struct debug_handle *, const char *, struct debug_type *);
-static bfd_boolean debug_type_samep
- (struct debug_handle *, struct debug_type *, struct debug_type *);
-static bfd_boolean debug_class_type_samep
- (struct debug_handle *, struct debug_type *, struct debug_type *);
-
-/* Issue an error message. */
-
-static void
-debug_error (const char *message)
-{
- fprintf (stderr, "%s\n", message);
-}
-
-/* Add an object to a namespace. */
-
-static struct debug_name *
-debug_add_to_namespace (struct debug_handle *info ATTRIBUTE_UNUSED,
- struct debug_namespace **nsp, const char *name,
- enum debug_object_kind kind,
- enum debug_object_linkage linkage)
-{
- struct debug_name *n;
- struct debug_namespace *ns;
-
- n = (struct debug_name *) xmalloc (sizeof *n);
- memset (n, 0, sizeof *n);
-
- n->name = name;
- n->kind = kind;
- n->linkage = linkage;
-
- ns = *nsp;
- if (ns == NULL)
- {
- ns = (struct debug_namespace *) xmalloc (sizeof *ns);
- memset (ns, 0, sizeof *ns);
-
- ns->tail = &ns->list;
-
- *nsp = ns;
- }
-
- *ns->tail = n;
- ns->tail = &n->next;
-
- return n;
-}
-
-/* Add an object to the current namespace. */
-
-static struct debug_name *
-debug_add_to_current_namespace (struct debug_handle *info, const char *name,
- enum debug_object_kind kind,
- enum debug_object_linkage linkage)
-{
- struct debug_namespace **nsp;
-
- if (info->current_unit == NULL
- || info->current_file == NULL)
- {
- debug_error (_("debug_add_to_current_namespace: no current file"));
- return NULL;
- }
-
- if (info->current_block != NULL)
- nsp = &info->current_block->locals;
- else
- nsp = &info->current_file->globals;
-
- return debug_add_to_namespace (info, nsp, name, kind, linkage);
-}
-
-/* Return a handle for debugging information. */
-
-void *
-debug_init (void)
-{
- struct debug_handle *ret;
-
- ret = (struct debug_handle *) xmalloc (sizeof *ret);
- memset (ret, 0, sizeof *ret);
- return (void *) ret;
-}
-
-/* Set the source filename. This implicitly starts a new compilation
- unit. */
-
-bfd_boolean
-debug_set_filename (void *handle, const char *name)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_file *nfile;
- struct debug_unit *nunit;
-
- if (name == NULL)
- name = "";
-
- nfile = (struct debug_file *) xmalloc (sizeof *nfile);
- memset (nfile, 0, sizeof *nfile);
-
- nfile->filename = name;
-
- nunit = (struct debug_unit *) xmalloc (sizeof *nunit);
- memset (nunit, 0, sizeof *nunit);
-
- nunit->files = nfile;
- info->current_file = nfile;
-
- if (info->current_unit != NULL)
- info->current_unit->next = nunit;
- else
- {
- assert (info->units == NULL);
- info->units = nunit;
- }
-
- info->current_unit = nunit;
-
- info->current_function = NULL;
- info->current_block = NULL;
- info->current_lineno = NULL;
-
- return TRUE;
-}
-
-/* Change source files to the given file name. This is used for
- include files in a single compilation unit. */
-
-bfd_boolean
-debug_start_source (void *handle, const char *name)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_file *f, **pf;
-
- if (name == NULL)
- name = "";
-
- if (info->current_unit == NULL)
- {
- debug_error (_("debug_start_source: no debug_set_filename call"));
- return FALSE;
- }
-
- for (f = info->current_unit->files; f != NULL; f = f->next)
- {
- if (f->filename[0] == name[0]
- && f->filename[1] == name[1]
- && strcmp (f->filename, name) == 0)
- {
- info->current_file = f;
- return TRUE;
- }
- }
-
- f = (struct debug_file *) xmalloc (sizeof *f);
- memset (f, 0, sizeof *f);
-
- f->filename = name;
-
- for (pf = &info->current_file->next;
- *pf != NULL;
- pf = &(*pf)->next)
- ;
- *pf = f;
-
- info->current_file = f;
-
- return TRUE;
-}
-
-/* Record a function definition. This implicitly starts a function
- block. The debug_type argument is the type of the return value.
- The boolean indicates whether the function is globally visible.
- The bfd_vma is the address of the start of the function. Currently
- the parameter types are specified by calls to
- debug_record_parameter. FIXME: There is no way to specify nested
- functions. */
-
-bfd_boolean
-debug_record_function (void *handle, const char *name,
- debug_type return_type, bfd_boolean global,
- bfd_vma addr)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_function *f;
- struct debug_block *b;
- struct debug_name *n;
-
- if (name == NULL)
- name = "";
- if (return_type == NULL)
- return FALSE;
-
- if (info->current_unit == NULL)
- {
- debug_error (_("debug_record_function: no debug_set_filename call"));
- return FALSE;
- }
-
- f = (struct debug_function *) xmalloc (sizeof *f);
- memset (f, 0, sizeof *f);
-
- f->return_type = return_type;
-
- b = (struct debug_block *) xmalloc (sizeof *b);
- memset (b, 0, sizeof *b);
-
- b->start = addr;
- b->end = (bfd_vma) -1;
-
- f->blocks = b;
-
- info->current_function = f;
- info->current_block = b;
-
- /* FIXME: If we could handle nested functions, this would be the
- place: we would want to use a different namespace. */
- n = debug_add_to_namespace (info,
- &info->current_file->globals,
- name,
- DEBUG_OBJECT_FUNCTION,
- (global
- ? DEBUG_LINKAGE_GLOBAL
- : DEBUG_LINKAGE_STATIC));
- if (n == NULL)
- return FALSE;
-
- n->u.function = f;
-
- return TRUE;
-}
-
-/* Record a parameter for the current function. */
-
-bfd_boolean
-debug_record_parameter (void *handle, const char *name, debug_type type,
- enum debug_parm_kind kind, bfd_vma val)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_parameter *p, **pp;
-
- if (name == NULL || type == NULL)
- return FALSE;
-
- if (info->current_unit == NULL
- || info->current_function == NULL)
- {
- debug_error (_("debug_record_parameter: no current function"));
- return FALSE;
- }
-
- p = (struct debug_parameter *) xmalloc (sizeof *p);
- memset (p, 0, sizeof *p);
-
- p->name = name;
- p->type = type;
- p->kind = kind;
- p->val = val;
-
- for (pp = &info->current_function->parameters;
- *pp != NULL;
- pp = &(*pp)->next)
- ;
- *pp = p;
-
- return TRUE;
-}
-
-/* End a function. FIXME: This should handle function nesting. */
-
-bfd_boolean
-debug_end_function (void *handle, bfd_vma addr)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
-
- if (info->current_unit == NULL
- || info->current_block == NULL
- || info->current_function == NULL)
- {
- debug_error (_("debug_end_function: no current function"));
- return FALSE;
- }
-
- if (info->current_block->parent != NULL)
- {
- debug_error (_("debug_end_function: some blocks were not closed"));
- return FALSE;
- }
-
- info->current_block->end = addr;
-
- info->current_function = NULL;
- info->current_block = NULL;
-
- return TRUE;
-}
-
-/* Start a block in a function. All local information will be
- recorded in this block, until the matching call to debug_end_block.
- debug_start_block and debug_end_block may be nested. The bfd_vma
- argument is the address at which this block starts. */
-
-bfd_boolean
-debug_start_block (void *handle, bfd_vma addr)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_block *b, **pb;
-
- /* We must always have a current block: debug_record_function sets
- one up. */
- if (info->current_unit == NULL
- || info->current_block == NULL)
- {
- debug_error (_("debug_start_block: no current block"));
- return FALSE;
- }
-
- b = (struct debug_block *) xmalloc (sizeof *b);
- memset (b, 0, sizeof *b);
-
- b->parent = info->current_block;
- b->start = addr;
- b->end = (bfd_vma) -1;
-
- /* This new block is a child of the current block. */
- for (pb = &info->current_block->children;
- *pb != NULL;
- pb = &(*pb)->next)
- ;
- *pb = b;
-
- info->current_block = b;
-
- return TRUE;
-}
-
-/* Finish a block in a function. This matches the call to
- debug_start_block. The argument is the address at which this block
- ends. */
-
-bfd_boolean
-debug_end_block (void *handle, bfd_vma addr)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_block *parent;
-
- if (info->current_unit == NULL
- || info->current_block == NULL)
- {
- debug_error (_("debug_end_block: no current block"));
- return FALSE;
- }
-
- parent = info->current_block->parent;
- if (parent == NULL)
- {
- debug_error (_("debug_end_block: attempt to close top level block"));
- return FALSE;
- }
-
- info->current_block->end = addr;
-
- info->current_block = parent;
-
- return TRUE;
-}
-
-/* Associate a line number in the current source file and function
- with a given address. */
-
-bfd_boolean
-debug_record_line (void *handle, unsigned long lineno, bfd_vma addr)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_lineno *l;
- unsigned int i;
-
- if (info->current_unit == NULL)
- {
- debug_error (_("debug_record_line: no current unit"));
- return FALSE;
- }
-
- l = info->current_lineno;
- if (l != NULL && l->file == info->current_file)
- {
- for (i = 0; i < DEBUG_LINENO_COUNT; i++)
- {
- if (l->linenos[i] == (unsigned long) -1)
- {
- l->linenos[i] = lineno;
- l->addrs[i] = addr;
- return TRUE;
- }
- }
- }
-
- /* If we get here, then either 1) there is no current_lineno
- structure, which means this is the first line number in this
- compilation unit, 2) the current_lineno structure is for a
- different file, or 3) the current_lineno structure is full.
- Regardless, we want to allocate a new debug_lineno structure, put
- it in the right place, and make it the new current_lineno
- structure. */
-
- l = (struct debug_lineno *) xmalloc (sizeof *l);
- memset (l, 0, sizeof *l);
-
- l->file = info->current_file;
- l->linenos[0] = lineno;
- l->addrs[0] = addr;
- for (i = 1; i < DEBUG_LINENO_COUNT; i++)
- l->linenos[i] = (unsigned long) -1;
-
- if (info->current_lineno != NULL)
- info->current_lineno->next = l;
- else
- info->current_unit->linenos = l;
-
- info->current_lineno = l;
-
- return TRUE;
-}
-
-/* Start a named common block. This is a block of variables that may
- move in memory. */
-
-bfd_boolean
-debug_start_common_block (void *handle ATTRIBUTE_UNUSED,
- const char *name ATTRIBUTE_UNUSED)
-{
- /* FIXME */
- debug_error (_("debug_start_common_block: not implemented"));
- return FALSE;
-}
-
-/* End a named common block. */
-
-bfd_boolean
-debug_end_common_block (void *handle ATTRIBUTE_UNUSED,
- const char *name ATTRIBUTE_UNUSED)
-{
- /* FIXME */
- debug_error (_("debug_end_common_block: not implemented"));
- return FALSE;
-}
-
-/* Record a named integer constant. */
-
-bfd_boolean
-debug_record_int_const (void *handle, const char *name, bfd_vma val)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_name *n;
-
- if (name == NULL)
- return FALSE;
-
- n = debug_add_to_current_namespace (info, name, DEBUG_OBJECT_INT_CONSTANT,
- DEBUG_LINKAGE_NONE);
- if (n == NULL)
- return FALSE;
-
- n->u.int_constant = val;
-
- return TRUE;
-}
-
-/* Record a named floating point constant. */
-
-bfd_boolean
-debug_record_float_const (void *handle, const char *name, double val)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_name *n;
-
- if (name == NULL)
- return FALSE;
-
- n = debug_add_to_current_namespace (info, name, DEBUG_OBJECT_FLOAT_CONSTANT,
- DEBUG_LINKAGE_NONE);
- if (n == NULL)
- return FALSE;
-
- n->u.float_constant = val;
-
- return TRUE;
-}
-
-/* Record a typed constant with an integral value. */
-
-bfd_boolean
-debug_record_typed_const (void *handle, const char *name, debug_type type,
- bfd_vma val)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_name *n;
- struct debug_typed_constant *tc;
-
- if (name == NULL || type == NULL)
- return FALSE;
-
- n = debug_add_to_current_namespace (info, name, DEBUG_OBJECT_TYPED_CONSTANT,
- DEBUG_LINKAGE_NONE);
- if (n == NULL)
- return FALSE;
-
- tc = (struct debug_typed_constant *) xmalloc (sizeof *tc);
- memset (tc, 0, sizeof *tc);
-
- tc->type = type;
- tc->val = val;
-
- n->u.typed_constant = tc;
-
- return TRUE;
-}
-
-/* Record a label. */
-
-bfd_boolean
-debug_record_label (void *handle ATTRIBUTE_UNUSED,
- const char *name ATTRIBUTE_UNUSED,
- debug_type type ATTRIBUTE_UNUSED,
- bfd_vma addr ATTRIBUTE_UNUSED)
-{
- /* FIXME. */
- debug_error (_("debug_record_label: not implemented"));
- return FALSE;
-}
-
-/* Record a variable. */
-
-bfd_boolean
-debug_record_variable (void *handle, const char *name, debug_type type,
- enum debug_var_kind kind, bfd_vma val)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_namespace **nsp;
- enum debug_object_linkage linkage;
- struct debug_name *n;
- struct debug_variable *v;
-
- if (name == NULL || type == NULL)
- return FALSE;
-
- if (info->current_unit == NULL
- || info->current_file == NULL)
- {
- debug_error (_("debug_record_variable: no current file"));
- return FALSE;
- }
-
- if (kind == DEBUG_GLOBAL || kind == DEBUG_STATIC)
- {
- nsp = &info->current_file->globals;
- if (kind == DEBUG_GLOBAL)
- linkage = DEBUG_LINKAGE_GLOBAL;
- else
- linkage = DEBUG_LINKAGE_STATIC;
- }
- else
- {
- if (info->current_block == NULL)
- nsp = &info->current_file->globals;
- else
- nsp = &info->current_block->locals;
- linkage = DEBUG_LINKAGE_AUTOMATIC;
- }
-
- n = debug_add_to_namespace (info, nsp, name, DEBUG_OBJECT_VARIABLE, linkage);
- if (n == NULL)
- return FALSE;
-
- v = (struct debug_variable *) xmalloc (sizeof *v);
- memset (v, 0, sizeof *v);
-
- v->kind = kind;
- v->type = type;
- v->val = val;
-
- n->u.variable = v;
-
- return TRUE;
-}
-
-/* Make a type with a given kind and size. */
-
-static struct debug_type *
-debug_make_type (struct debug_handle *info ATTRIBUTE_UNUSED,
- enum debug_type_kind kind, unsigned int size)
-{
- struct debug_type *t;
-
- t = (struct debug_type *) xmalloc (sizeof *t);
- memset (t, 0, sizeof *t);
-
- t->kind = kind;
- t->size = size;
-
- return t;
-}
-
-/* Make an indirect type which may be used as a placeholder for a type
- which is referenced before it is defined. */
-
-debug_type
-debug_make_indirect_type (void *handle, debug_type *slot, const char *tag)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
- struct debug_indirect_type *i;
-
- t = debug_make_type (info, DEBUG_KIND_INDIRECT, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- i = (struct debug_indirect_type *) xmalloc (sizeof *i);
- memset (i, 0, sizeof *i);
-
- i->slot = slot;
- i->tag = tag;
-
- t->u.kindirect = i;
-
- return t;
-}
-
-/* Make a void type. There is only one of these. */
-
-debug_type
-debug_make_void_type (void *handle)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
-
- return debug_make_type (info, DEBUG_KIND_VOID, 0);
-}
-
-/* Make an integer type of a given size. The boolean argument is true
- if the integer is unsigned. */
-
-debug_type
-debug_make_int_type (void *handle, unsigned int size, bfd_boolean unsignedp)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
-
- t = debug_make_type (info, DEBUG_KIND_INT, size);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- t->u.kint = unsignedp;
-
- return t;
-}
-
-/* Make a floating point type of a given size. FIXME: On some
- platforms, like an Alpha, you probably need to be able to specify
- the format. */
-
-debug_type
-debug_make_float_type (void *handle, unsigned int size)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
-
- return debug_make_type (info, DEBUG_KIND_FLOAT, size);
-}
-
-/* Make a boolean type of a given size. */
-
-debug_type
-debug_make_bool_type (void *handle, unsigned int size)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
-
- return debug_make_type (info, DEBUG_KIND_BOOL, size);
-}
-
-/* Make a complex type of a given size. */
-
-debug_type
-debug_make_complex_type (void *handle, unsigned int size)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
-
- return debug_make_type (info, DEBUG_KIND_COMPLEX, size);
-}
-
-/* Make a structure type. The second argument is true for a struct,
- false for a union. The third argument is the size of the struct.
- The fourth argument is a NULL terminated array of fields. */
-
-debug_type
-debug_make_struct_type (void *handle, bfd_boolean structp, bfd_vma size,
- debug_field *fields)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
- struct debug_class_type *c;
-
- t = debug_make_type (info,
- structp ? DEBUG_KIND_STRUCT : DEBUG_KIND_UNION,
- size);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- c = (struct debug_class_type *) xmalloc (sizeof *c);
- memset (c, 0, sizeof *c);
-
- c->fields = fields;
-
- t->u.kclass = c;
-
- return t;
-}
-
-/* Make an object type. The first three arguments after the handle
- are the same as for debug_make_struct_type. The next arguments are
- a NULL terminated array of base classes, a NULL terminated array of
- methods, the type of the object holding the virtual function table
- if it is not this object, and a boolean which is true if this
- object has its own virtual function table. */
-
-debug_type
-debug_make_object_type (void *handle, bfd_boolean structp, bfd_vma size,
- debug_field *fields, debug_baseclass *baseclasses,
- debug_method *methods, debug_type vptrbase,
- bfd_boolean ownvptr)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
- struct debug_class_type *c;
-
- t = debug_make_type (info,
- structp ? DEBUG_KIND_CLASS : DEBUG_KIND_UNION_CLASS,
- size);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- c = (struct debug_class_type *) xmalloc (sizeof *c);
- memset (c, 0, sizeof *c);
-
- c->fields = fields;
- c->baseclasses = baseclasses;
- c->methods = methods;
- if (ownvptr)
- c->vptrbase = t;
- else
- c->vptrbase = vptrbase;
-
- t->u.kclass = c;
-
- return t;
-}
-
-/* Make an enumeration type. The arguments are a null terminated
- array of strings, and an array of corresponding values. */
-
-debug_type
-debug_make_enum_type (void *handle, const char **names,
- bfd_signed_vma *values)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
- struct debug_enum_type *e;
-
- t = debug_make_type (info, DEBUG_KIND_ENUM, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- e = (struct debug_enum_type *) xmalloc (sizeof *e);
- memset (e, 0, sizeof *e);
-
- e->names = names;
- e->values = values;
-
- t->u.kenum = e;
-
- return t;
-}
-
-/* Make a pointer to a given type. */
-
-debug_type
-debug_make_pointer_type (void *handle, debug_type type)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
-
- if (type == NULL)
- return DEBUG_TYPE_NULL;
-
- if (type->pointer != DEBUG_TYPE_NULL)
- return type->pointer;
-
- t = debug_make_type (info, DEBUG_KIND_POINTER, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- t->u.kpointer = type;
-
- type->pointer = t;
-
- return t;
-}
-
-/* Make a function returning a given type. FIXME: We should be able
- to record the parameter types. */
-
-debug_type
-debug_make_function_type (void *handle, debug_type type,
- debug_type *arg_types, bfd_boolean varargs)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
- struct debug_function_type *f;
-
- if (type == NULL)
- return DEBUG_TYPE_NULL;
-
- t = debug_make_type (info, DEBUG_KIND_FUNCTION, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- f = (struct debug_function_type *) xmalloc (sizeof *f);
- memset (f, 0, sizeof *f);
-
- f->return_type = type;
- f->arg_types = arg_types;
- f->varargs = varargs;
-
- t->u.kfunction = f;
-
- return t;
-}
-
-/* Make a reference to a given type. */
-
-debug_type
-debug_make_reference_type (void *handle, debug_type type)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
-
- if (type == NULL)
- return DEBUG_TYPE_NULL;
-
- t = debug_make_type (info, DEBUG_KIND_REFERENCE, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- t->u.kreference = type;
-
- return t;
-}
-
-/* Make a range of a given type from a lower to an upper bound. */
-
-debug_type
-debug_make_range_type (void *handle, debug_type type, bfd_signed_vma lower,
- bfd_signed_vma upper)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
- struct debug_range_type *r;
-
- if (type == NULL)
- return DEBUG_TYPE_NULL;
-
- t = debug_make_type (info, DEBUG_KIND_RANGE, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- r = (struct debug_range_type *) xmalloc (sizeof *r);
- memset (r, 0, sizeof *r);
-
- r->type = type;
- r->lower = lower;
- r->upper = upper;
-
- t->u.krange = r;
-
- return t;
-}
-
-/* Make an array type. The second argument is the type of an element
- of the array. The third argument is the type of a range of the
- array. The fourth and fifth argument are the lower and upper
- bounds, respectively. The sixth argument is true if this array is
- actually a string, as in C. */
-
-debug_type
-debug_make_array_type (void *handle, debug_type element_type,
- debug_type range_type, bfd_signed_vma lower,
- bfd_signed_vma upper, bfd_boolean stringp)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
- struct debug_array_type *a;
-
- if (element_type == NULL || range_type == NULL)
- return DEBUG_TYPE_NULL;
-
- t = debug_make_type (info, DEBUG_KIND_ARRAY, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- a = (struct debug_array_type *) xmalloc (sizeof *a);
- memset (a, 0, sizeof *a);
-
- a->element_type = element_type;
- a->range_type = range_type;
- a->lower = lower;
- a->upper = upper;
- a->stringp = stringp;
-
- t->u.karray = a;
-
- return t;
-}
-
-/* Make a set of a given type. For example, a Pascal set type. The
- boolean argument is true if this set is actually a bitstring, as in
- CHILL. */
-
-debug_type
-debug_make_set_type (void *handle, debug_type type, bfd_boolean bitstringp)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
- struct debug_set_type *s;
-
- if (type == NULL)
- return DEBUG_TYPE_NULL;
-
- t = debug_make_type (info, DEBUG_KIND_SET, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- s = (struct debug_set_type *) xmalloc (sizeof *s);
- memset (s, 0, sizeof *s);
-
- s->type = type;
- s->bitstringp = bitstringp;
-
- t->u.kset = s;
-
- return t;
-}
-
-/* Make a type for a pointer which is relative to an object. The
- second argument is the type of the object to which the pointer is
- relative. The third argument is the type that the pointer points
- to. */
-
-debug_type
-debug_make_offset_type (void *handle, debug_type base_type,
- debug_type target_type)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
- struct debug_offset_type *o;
-
- if (base_type == NULL || target_type == NULL)
- return DEBUG_TYPE_NULL;
-
- t = debug_make_type (info, DEBUG_KIND_OFFSET, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- o = (struct debug_offset_type *) xmalloc (sizeof *o);
- memset (o, 0, sizeof *o);
-
- o->base_type = base_type;
- o->target_type = target_type;
-
- t->u.koffset = o;
-
- return t;
-}
-
-/* Make a type for a method function. The second argument is the
- return type, the third argument is the domain, and the fourth
- argument is a NULL terminated array of argument types. */
-
-debug_type
-debug_make_method_type (void *handle, debug_type return_type,
- debug_type domain_type, debug_type *arg_types,
- bfd_boolean varargs)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
- struct debug_method_type *m;
-
- if (return_type == NULL)
- return DEBUG_TYPE_NULL;
-
- t = debug_make_type (info, DEBUG_KIND_METHOD, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- m = (struct debug_method_type *) xmalloc (sizeof *m);
- memset (m, 0, sizeof *m);
-
- m->return_type = return_type;
- m->domain_type = domain_type;
- m->arg_types = arg_types;
- m->varargs = varargs;
-
- t->u.kmethod = m;
-
- return t;
-}
-
-/* Make a const qualified version of a given type. */
-
-debug_type
-debug_make_const_type (void *handle, debug_type type)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
-
- if (type == NULL)
- return DEBUG_TYPE_NULL;
-
- t = debug_make_type (info, DEBUG_KIND_CONST, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- t->u.kconst = type;
-
- return t;
-}
-
-/* Make a volatile qualified version of a given type. */
-
-debug_type
-debug_make_volatile_type (void *handle, debug_type type)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
-
- if (type == NULL)
- return DEBUG_TYPE_NULL;
-
- t = debug_make_type (info, DEBUG_KIND_VOLATILE, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- t->u.kvolatile = type;
-
- return t;
-}
-
-/* Make an undefined tagged type. For example, a struct which has
- been mentioned, but not defined. */
-
-debug_type
-debug_make_undefined_tagged_type (void *handle, const char *name,
- enum debug_type_kind kind)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
-
- if (name == NULL)
- return DEBUG_TYPE_NULL;
-
- switch (kind)
- {
- case DEBUG_KIND_STRUCT:
- case DEBUG_KIND_UNION:
- case DEBUG_KIND_CLASS:
- case DEBUG_KIND_UNION_CLASS:
- case DEBUG_KIND_ENUM:
- break;
-
- default:
- debug_error (_("debug_make_undefined_type: unsupported kind"));
- return DEBUG_TYPE_NULL;
- }
-
- t = debug_make_type (info, kind, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- return debug_tag_type (handle, name, t);
-}
-
-/* Make a base class for an object. The second argument is the base
- class type. The third argument is the bit position of this base
- class in the object (always 0 unless doing multiple inheritance).
- The fourth argument is whether this is a virtual class. The fifth
- argument is the visibility of the base class. */
-
-debug_baseclass
-debug_make_baseclass (void *handle ATTRIBUTE_UNUSED, debug_type type,
- bfd_vma bitpos, bfd_boolean virtual,
- enum debug_visibility visibility)
-{
- struct debug_baseclass *b;
-
- b = (struct debug_baseclass *) xmalloc (sizeof *b);
- memset (b, 0, sizeof *b);
-
- b->type = type;
- b->bitpos = bitpos;
- b->virtual = virtual;
- b->visibility = visibility;
-
- return b;
-}
-
-/* Make a field for a struct. The second argument is the name. The
- third argument is the type of the field. The fourth argument is
- the bit position of the field. The fifth argument is the size of
- the field (it may be zero). The sixth argument is the visibility
- of the field. */
-
-debug_field
-debug_make_field (void *handle ATTRIBUTE_UNUSED, const char *name,
- debug_type type, bfd_vma bitpos, bfd_vma bitsize,
- enum debug_visibility visibility)
-{
- struct debug_field *f;
-
- f = (struct debug_field *) xmalloc (sizeof *f);
- memset (f, 0, sizeof *f);
-
- f->name = name;
- f->type = type;
- f->static_member = FALSE;
- f->u.f.bitpos = bitpos;
- f->u.f.bitsize = bitsize;
- f->visibility = visibility;
-
- return f;
-}
-
-/* Make a static member of an object. The second argument is the
- name. The third argument is the type of the member. The fourth
- argument is the physical name of the member (i.e., the name as a
- global variable). The fifth argument is the visibility of the
- member. */
-
-debug_field
-debug_make_static_member (void *handle ATTRIBUTE_UNUSED, const char *name,
- debug_type type, const char *physname,
- enum debug_visibility visibility)
-{
- struct debug_field *f;
-
- f = (struct debug_field *) xmalloc (sizeof *f);
- memset (f, 0, sizeof *f);
-
- f->name = name;
- f->type = type;
- f->static_member = TRUE;
- f->u.s.physname = physname;
- f->visibility = visibility;
-
- return f;
-}
-
-/* Make a method. The second argument is the name, and the third
- argument is a NULL terminated array of method variants. */
-
-debug_method
-debug_make_method (void *handle ATTRIBUTE_UNUSED, const char *name,
- debug_method_variant *variants)
-{
- struct debug_method *m;
-
- m = (struct debug_method *) xmalloc (sizeof *m);
- memset (m, 0, sizeof *m);
-
- m->name = name;
- m->variants = variants;
-
- return m;
-}
-
-/* Make a method argument. The second argument is the real name of
- the function. The third argument is the type of the function. The
- fourth argument is the visibility. The fifth argument is whether
- this is a const function. The sixth argument is whether this is a
- volatile function. The seventh argument is the offset in the
- virtual function table, if any. The eighth argument is the virtual
- function context. FIXME: Are the const and volatile arguments
- necessary? Could we just use debug_make_const_type? */
-
-debug_method_variant
-debug_make_method_variant (void *handle ATTRIBUTE_UNUSED,
- const char *physname, debug_type type,
- enum debug_visibility visibility,
- bfd_boolean constp, bfd_boolean volatilep,
- bfd_vma voffset, debug_type context)
-{
- struct debug_method_variant *m;
-
- m = (struct debug_method_variant *) xmalloc (sizeof *m);
- memset (m, 0, sizeof *m);
-
- m->physname = physname;
- m->type = type;
- m->visibility = visibility;
- m->constp = constp;
- m->volatilep = volatilep;
- m->voffset = voffset;
- m->context = context;
-
- return m;
-}
-
-/* Make a static method argument. The arguments are the same as for
- debug_make_method_variant, except that the last two are omitted
- since a static method can not also be virtual. */
-
-debug_method_variant
-debug_make_static_method_variant (void *handle ATTRIBUTE_UNUSED,
- const char *physname, debug_type type,
- enum debug_visibility visibility,
- bfd_boolean constp, bfd_boolean volatilep)
-{
- struct debug_method_variant *m;
-
- m = (struct debug_method_variant *) xmalloc (sizeof *m);
- memset (m, 0, sizeof *m);
-
- m->physname = physname;
- m->type = type;
- m->visibility = visibility;
- m->constp = constp;
- m->volatilep = volatilep;
- m->voffset = VOFFSET_STATIC_METHOD;
-
- return m;
-}
-
-/* Name a type. */
-
-debug_type
-debug_name_type (void *handle, const char *name, debug_type type)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
- struct debug_named_type *n;
- struct debug_name *nm;
-
- if (name == NULL || type == NULL)
- return DEBUG_TYPE_NULL;
-
- if (info->current_unit == NULL
- || info->current_file == NULL)
- {
- debug_error (_("debug_name_type: no current file"));
- return DEBUG_TYPE_NULL;
- }
-
- t = debug_make_type (info, DEBUG_KIND_NAMED, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- n = (struct debug_named_type *) xmalloc (sizeof *n);
- memset (n, 0, sizeof *n);
-
- n->type = type;
-
- t->u.knamed = n;
-
- /* We always add the name to the global namespace. This is probably
- wrong in some cases, but it seems to be right for stabs. FIXME. */
-
- nm = debug_add_to_namespace (info, &info->current_file->globals, name,
- DEBUG_OBJECT_TYPE, DEBUG_LINKAGE_NONE);
- if (nm == NULL)
- return DEBUG_TYPE_NULL;
-
- nm->u.type = t;
-
- n->name = nm;
-
- return t;
-}
-
-/* Tag a type. */
-
-debug_type
-debug_tag_type (void *handle, const char *name, debug_type type)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_type *t;
- struct debug_named_type *n;
- struct debug_name *nm;
-
- if (name == NULL || type == NULL)
- return DEBUG_TYPE_NULL;
-
- if (info->current_file == NULL)
- {
- debug_error (_("debug_tag_type: no current file"));
- return DEBUG_TYPE_NULL;
- }
-
- if (type->kind == DEBUG_KIND_TAGGED)
- {
- if (strcmp (type->u.knamed->name->name, name) == 0)
- return type;
- debug_error (_("debug_tag_type: extra tag attempted"));
- return DEBUG_TYPE_NULL;
- }
-
- t = debug_make_type (info, DEBUG_KIND_TAGGED, 0);
- if (t == NULL)
- return DEBUG_TYPE_NULL;
-
- n = (struct debug_named_type *) xmalloc (sizeof *n);
- memset (n, 0, sizeof *n);
-
- n->type = type;
-
- t->u.knamed = n;
-
- /* We keep a global namespace of tags for each compilation unit. I
- don't know if that is the right thing to do. */
-
- nm = debug_add_to_namespace (info, &info->current_file->globals, name,
- DEBUG_OBJECT_TAG, DEBUG_LINKAGE_NONE);
- if (nm == NULL)
- return DEBUG_TYPE_NULL;
-
- nm->u.tag = t;
-
- n->name = nm;
-
- return t;
-}
-
-/* Record the size of a given type. */
-
-bfd_boolean
-debug_record_type_size (void *handle ATTRIBUTE_UNUSED, debug_type type,
- unsigned int size)
-{
- if (type->size != 0 && type->size != size)
- fprintf (stderr, _("Warning: changing type size from %d to %d\n"),
- type->size, size);
-
- type->size = size;
-
- return TRUE;
-}
-
-/* Find a named type. */
-
-debug_type
-debug_find_named_type (void *handle, const char *name)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_block *b;
- struct debug_file *f;
-
- /* We only search the current compilation unit. I don't know if
- this is right or not. */
-
- if (info->current_unit == NULL)
- {
- debug_error (_("debug_find_named_type: no current compilation unit"));
- return DEBUG_TYPE_NULL;
- }
-
- for (b = info->current_block; b != NULL; b = b->parent)
- {
- if (b->locals != NULL)
- {
- struct debug_name *n;
-
- for (n = b->locals->list; n != NULL; n = n->next)
- {
- if (n->kind == DEBUG_OBJECT_TYPE
- && n->name[0] == name[0]
- && strcmp (n->name, name) == 0)
- return n->u.type;
- }
- }
- }
-
- for (f = info->current_unit->files; f != NULL; f = f->next)
- {
- if (f->globals != NULL)
- {
- struct debug_name *n;
-
- for (n = f->globals->list; n != NULL; n = n->next)
- {
- if (n->kind == DEBUG_OBJECT_TYPE
- && n->name[0] == name[0]
- && strcmp (n->name, name) == 0)
- return n->u.type;
- }
- }
- }
-
- return DEBUG_TYPE_NULL;
-}
-
-/* Find a tagged type. */
-
-debug_type
-debug_find_tagged_type (void *handle, const char *name,
- enum debug_type_kind kind)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_unit *u;
-
- /* We search the globals of all the compilation units. I don't know
- if this is correct or not. It would be easy to change. */
-
- for (u = info->units; u != NULL; u = u->next)
- {
- struct debug_file *f;
-
- for (f = u->files; f != NULL; f = f->next)
- {
- struct debug_name *n;
-
- if (f->globals != NULL)
- {
- for (n = f->globals->list; n != NULL; n = n->next)
- {
- if (n->kind == DEBUG_OBJECT_TAG
- && (kind == DEBUG_KIND_ILLEGAL
- || n->u.tag->kind == kind)
- && n->name[0] == name[0]
- && strcmp (n->name, name) == 0)
- return n->u.tag;
- }
- }
- }
- }
-
- return DEBUG_TYPE_NULL;
-}
-
-/* Get a base type. We build a linked list on the stack to avoid
- crashing if the type is defined circularly. */
-
-static struct debug_type *
-debug_get_real_type (void *handle, debug_type type,
- struct debug_type_real_list *list)
-{
- struct debug_type_real_list *l;
- struct debug_type_real_list rl;
-
- switch (type->kind)
- {
- default:
- return type;
-
- case DEBUG_KIND_INDIRECT:
- case DEBUG_KIND_NAMED:
- case DEBUG_KIND_TAGGED:
- break;
- }
-
- for (l = list; l != NULL; l = l->next)
- {
- if (l->t == type || l == l->next)
- {
- fprintf (stderr,
- _("debug_get_real_type: circular debug information for %s\n"),
- debug_get_type_name (handle, type));
- return NULL;
- }
- }
-
- rl.next = list;
- rl.t = type;
-
- switch (type->kind)
- {
- /* The default case is just here to avoid warnings. */
- default:
- case DEBUG_KIND_INDIRECT:
- if (*type->u.kindirect->slot != NULL)
- return debug_get_real_type (handle, *type->u.kindirect->slot, &rl);
- return type;
- case DEBUG_KIND_NAMED:
- case DEBUG_KIND_TAGGED:
- return debug_get_real_type (handle, type->u.knamed->type, &rl);
- }
- /*NOTREACHED*/
-}
-
-/* Get the kind of a type. */
-
-enum debug_type_kind
-debug_get_type_kind (void *handle, debug_type type)
-{
- if (type == NULL)
- return DEBUG_KIND_ILLEGAL;
- type = debug_get_real_type (handle, type, NULL);
- if (type == NULL)
- return DEBUG_KIND_ILLEGAL;
- return type->kind;
-}
-
-/* Get the name of a type. */
-
-const char *
-debug_get_type_name (void *handle, debug_type type)
-{
- if (type->kind == DEBUG_KIND_INDIRECT)
- {
- if (*type->u.kindirect->slot != NULL)
- return debug_get_type_name (handle, *type->u.kindirect->slot);
- return type->u.kindirect->tag;
- }
- if (type->kind == DEBUG_KIND_NAMED
- || type->kind == DEBUG_KIND_TAGGED)
- return type->u.knamed->name->name;
- return NULL;
-}
-
-/* Get the size of a type. */
-
-bfd_vma
-debug_get_type_size (void *handle, debug_type type)
-{
- if (type == NULL)
- return 0;
-
- /* We don't call debug_get_real_type, because somebody might have
- called debug_record_type_size on a named or indirect type. */
-
- if (type->size != 0)
- return type->size;
-
- switch (type->kind)
- {
- default:
- return 0;
- case DEBUG_KIND_INDIRECT:
- if (*type->u.kindirect->slot != NULL)
- return debug_get_type_size (handle, *type->u.kindirect->slot);
- return 0;
- case DEBUG_KIND_NAMED:
- case DEBUG_KIND_TAGGED:
- return debug_get_type_size (handle, type->u.knamed->type);
- }
- /*NOTREACHED*/
-}
-
-/* Get the return type of a function or method type. */
-
-debug_type
-debug_get_return_type (void *handle, debug_type type)
-{
- if (type == NULL)
- return DEBUG_TYPE_NULL;
-
- type = debug_get_real_type (handle, type, NULL);
- if (type == NULL)
- return DEBUG_TYPE_NULL;
-
- switch (type->kind)
- {
- default:
- return DEBUG_TYPE_NULL;
- case DEBUG_KIND_FUNCTION:
- return type->u.kfunction->return_type;
- case DEBUG_KIND_METHOD:
- return type->u.kmethod->return_type;
- }
- /*NOTREACHED*/
-}
-
-/* Get the parameter types of a function or method type (except that
- we don't currently store the parameter types of a function). */
-
-const debug_type *
-debug_get_parameter_types (void *handle, debug_type type,
- bfd_boolean *pvarargs)
-{
- if (type == NULL)
- return NULL;
-
- type = debug_get_real_type (handle, type, NULL);
- if (type == NULL)
- return NULL;
-
- switch (type->kind)
- {
- default:
- return NULL;
- case DEBUG_KIND_FUNCTION:
- *pvarargs = type->u.kfunction->varargs;
- return type->u.kfunction->arg_types;
- case DEBUG_KIND_METHOD:
- *pvarargs = type->u.kmethod->varargs;
- return type->u.kmethod->arg_types;
- }
- /*NOTREACHED*/
-}
-
-/* Get the target type of a type. */
-
-debug_type
-debug_get_target_type (void *handle, debug_type type)
-{
- if (type == NULL)
- return NULL;
-
- type = debug_get_real_type (handle, type, NULL);
- if (type == NULL)
- return NULL;
-
- switch (type->kind)
- {
- default:
- return NULL;
- case DEBUG_KIND_POINTER:
- return type->u.kpointer;
- case DEBUG_KIND_REFERENCE:
- return type->u.kreference;
- case DEBUG_KIND_CONST:
- return type->u.kconst;
- case DEBUG_KIND_VOLATILE:
- return type->u.kvolatile;
- }
- /*NOTREACHED*/
-}
-
-/* Get the NULL terminated array of fields for a struct, union, or
- class. */
-
-const debug_field *
-debug_get_fields (void *handle, debug_type type)
-{
- if (type == NULL)
- return NULL;
-
- type = debug_get_real_type (handle, type, NULL);
- if (type == NULL)
- return NULL;
-
- switch (type->kind)
- {
- default:
- return NULL;
- case DEBUG_KIND_STRUCT:
- case DEBUG_KIND_UNION:
- case DEBUG_KIND_CLASS:
- case DEBUG_KIND_UNION_CLASS:
- return type->u.kclass->fields;
- }
- /*NOTREACHED*/
-}
-
-/* Get the type of a field. */
-
-debug_type
-debug_get_field_type (void *handle ATTRIBUTE_UNUSED, debug_field field)
-{
- if (field == NULL)
- return NULL;
- return field->type;
-}
-
-/* Get the name of a field. */
-
-const char *
-debug_get_field_name (void *handle ATTRIBUTE_UNUSED, debug_field field)
-{
- if (field == NULL)
- return NULL;
- return field->name;
-}
-
-/* Get the bit position of a field. */
-
-bfd_vma
-debug_get_field_bitpos (void *handle ATTRIBUTE_UNUSED, debug_field field)
-{
- if (field == NULL || field->static_member)
- return (bfd_vma) -1;
- return field->u.f.bitpos;
-}
-
-/* Get the bit size of a field. */
-
-bfd_vma
-debug_get_field_bitsize (void *handle ATTRIBUTE_UNUSED, debug_field field)
-{
- if (field == NULL || field->static_member)
- return (bfd_vma) -1;
- return field->u.f.bitsize;
-}
-
-/* Get the visibility of a field. */
-
-enum debug_visibility
-debug_get_field_visibility (void *handle ATTRIBUTE_UNUSED, debug_field field)
-{
- if (field == NULL)
- return DEBUG_VISIBILITY_IGNORE;
- return field->visibility;
-}
-
-/* Get the physical name of a field. */
-
-const char *
-debug_get_field_physname (void *handle ATTRIBUTE_UNUSED, debug_field field)
-{
- if (field == NULL || ! field->static_member)
- return NULL;
- return field->u.s.physname;
-}
-
-/* Write out the debugging information. This is given a handle to
- debugging information, and a set of function pointers to call. */
-
-bfd_boolean
-debug_write (void *handle, const struct debug_write_fns *fns, void *fhandle)
-{
- struct debug_handle *info = (struct debug_handle *) handle;
- struct debug_unit *u;
-
- /* We use a mark to tell whether we have already written out a
- particular name. We use an integer, so that we don't have to
- clear the mark fields if we happen to write out the same
- information more than once. */
- ++info->mark;
-
- /* The base_id field holds an ID value which will never be used, so
- that we can tell whether we have assigned an ID during this call
- to debug_write. */
- info->base_id = info->class_id;
-
- /* We keep a linked list of classes for which was have assigned ID's
- during this call to debug_write. */
- info->id_list = NULL;
-
- for (u = info->units; u != NULL; u = u->next)
- {
- struct debug_file *f;
- bfd_boolean first_file;
-
- info->current_write_lineno = u->linenos;
- info->current_write_lineno_index = 0;
-
- if (! (*fns->start_compilation_unit) (fhandle, u->files->filename))
- return FALSE;
-
- first_file = TRUE;
- for (f = u->files; f != NULL; f = f->next)
- {
- struct debug_name *n;
-
- if (first_file)
- first_file = FALSE;
- else if (! (*fns->start_source) (fhandle, f->filename))
- return FALSE;
-
- if (f->globals != NULL)
- for (n = f->globals->list; n != NULL; n = n->next)
- if (! debug_write_name (info, fns, fhandle, n))
- return FALSE;
- }
-
- /* Output any line number information which hasn't already been
- handled. */
- if (! debug_write_linenos (info, fns, fhandle, (bfd_vma) -1))
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Write out an element in a namespace. */
-
-static bfd_boolean
-debug_write_name (struct debug_handle *info,
- const struct debug_write_fns *fns, void *fhandle,
- struct debug_name *n)
-{
- switch (n->kind)
- {
- case DEBUG_OBJECT_TYPE:
- if (! debug_write_type (info, fns, fhandle, n->u.type, n)
- || ! (*fns->typdef) (fhandle, n->name))
- return FALSE;
- return TRUE;
- case DEBUG_OBJECT_TAG:
- if (! debug_write_type (info, fns, fhandle, n->u.tag, n))
- return FALSE;
- return (*fns->tag) (fhandle, n->name);
- case DEBUG_OBJECT_VARIABLE:
- if (! debug_write_type (info, fns, fhandle, n->u.variable->type,
- (struct debug_name *) NULL))
- return FALSE;
- return (*fns->variable) (fhandle, n->name, n->u.variable->kind,
- n->u.variable->val);
- case DEBUG_OBJECT_FUNCTION:
- return debug_write_function (info, fns, fhandle, n->name,
- n->linkage, n->u.function);
- case DEBUG_OBJECT_INT_CONSTANT:
- return (*fns->int_constant) (fhandle, n->name, n->u.int_constant);
- case DEBUG_OBJECT_FLOAT_CONSTANT:
- return (*fns->float_constant) (fhandle, n->name, n->u.float_constant);
- case DEBUG_OBJECT_TYPED_CONSTANT:
- if (! debug_write_type (info, fns, fhandle, n->u.typed_constant->type,
- (struct debug_name *) NULL))
- return FALSE;
- return (*fns->typed_constant) (fhandle, n->name,
- n->u.typed_constant->val);
- default:
- abort ();
- return FALSE;
- }
- /*NOTREACHED*/
-}
-
-/* Write out a type. If the type is DEBUG_KIND_NAMED or
- DEBUG_KIND_TAGGED, then the name argument is the name for which we
- are about to call typedef or tag. If the type is anything else,
- then the name argument is a tag from a DEBUG_KIND_TAGGED type which
- points to this one. */
-
-static bfd_boolean
-debug_write_type (struct debug_handle *info,
- const struct debug_write_fns *fns, void *fhandle,
- struct debug_type *type, struct debug_name *name)
-{
- unsigned int i;
- int is;
- const char *tag = NULL;
-
- /* If we have a name for this type, just output it. We only output
- typedef names after they have been defined. We output type tags
- whenever we are not actually defining them. */
- if ((type->kind == DEBUG_KIND_NAMED
- || type->kind == DEBUG_KIND_TAGGED)
- && (type->u.knamed->name->mark == info->mark
- || (type->kind == DEBUG_KIND_TAGGED
- && type->u.knamed->name != name)))
- {
- if (type->kind == DEBUG_KIND_NAMED)
- return (*fns->typedef_type) (fhandle, type->u.knamed->name->name);
- else
- {
- struct debug_type *real;
- unsigned int id;
-
- real = debug_get_real_type ((void *) info, type, NULL);
- if (real == NULL)
- return (*fns->empty_type) (fhandle);
- id = 0;
- if ((real->kind == DEBUG_KIND_STRUCT
- || real->kind == DEBUG_KIND_UNION
- || real->kind == DEBUG_KIND_CLASS
- || real->kind == DEBUG_KIND_UNION_CLASS)
- && real->u.kclass != NULL)
- {
- if (real->u.kclass->id <= info->base_id)
- {
- if (! debug_set_class_id (info,
- type->u.knamed->name->name,
- real))
- return FALSE;
- }
- id = real->u.kclass->id;
- }
-
- return (*fns->tag_type) (fhandle, type->u.knamed->name->name, id,
- real->kind);
- }
- }
-
- /* Mark the name after we have already looked for a known name, so
- that we don't just define a type in terms of itself. We need to
- mark the name here so that a struct containing a pointer to
- itself will work. */
- if (name != NULL)
- name->mark = info->mark;
-
- if (name != NULL
- && type->kind != DEBUG_KIND_NAMED
- && type->kind != DEBUG_KIND_TAGGED)
- {
- assert (name->kind == DEBUG_OBJECT_TAG);
- tag = name->name;
- }
-
- switch (type->kind)
- {
- case DEBUG_KIND_ILLEGAL:
- debug_error (_("debug_write_type: illegal type encountered"));
- return FALSE;
- case DEBUG_KIND_INDIRECT:
- if (*type->u.kindirect->slot == DEBUG_TYPE_NULL)
- return (*fns->empty_type) (fhandle);
- return debug_write_type (info, fns, fhandle, *type->u.kindirect->slot,
- name);
- case DEBUG_KIND_VOID:
- return (*fns->void_type) (fhandle);
- case DEBUG_KIND_INT:
- return (*fns->int_type) (fhandle, type->size, type->u.kint);
- case DEBUG_KIND_FLOAT:
- return (*fns->float_type) (fhandle, type->size);
- case DEBUG_KIND_COMPLEX:
- return (*fns->complex_type) (fhandle, type->size);
- case DEBUG_KIND_BOOL:
- return (*fns->bool_type) (fhandle, type->size);
- case DEBUG_KIND_STRUCT:
- case DEBUG_KIND_UNION:
- if (type->u.kclass != NULL)
- {
- if (type->u.kclass->id <= info->base_id)
- {
- if (! debug_set_class_id (info, tag, type))
- return FALSE;
- }
-
- if (info->mark == type->u.kclass->mark)
- {
- /* We are currently outputting this struct, or we have
- already output it. I don't know if this can happen,
- but it can happen for a class. */
- assert (type->u.kclass->id > info->base_id);
- return (*fns->tag_type) (fhandle, tag, type->u.kclass->id,
- type->kind);
- }
- type->u.kclass->mark = info->mark;
- }
-
- if (! (*fns->start_struct_type) (fhandle, tag,
- (type->u.kclass != NULL
- ? type->u.kclass->id
- : 0),
- type->kind == DEBUG_KIND_STRUCT,
- type->size))
- return FALSE;
- if (type->u.kclass != NULL
- && type->u.kclass->fields != NULL)
- {
- for (i = 0; type->u.kclass->fields[i] != NULL; i++)
- {
- struct debug_field *f;
-
- f = type->u.kclass->fields[i];
- if (! debug_write_type (info, fns, fhandle, f->type,
- (struct debug_name *) NULL)
- || ! (*fns->struct_field) (fhandle, f->name, f->u.f.bitpos,
- f->u.f.bitsize, f->visibility))
- return FALSE;
- }
- }
- return (*fns->end_struct_type) (fhandle);
- case DEBUG_KIND_CLASS:
- case DEBUG_KIND_UNION_CLASS:
- return debug_write_class_type (info, fns, fhandle, type, tag);
- case DEBUG_KIND_ENUM:
- if (type->u.kenum == NULL)
- return (*fns->enum_type) (fhandle, tag, (const char **) NULL,
- (bfd_signed_vma *) NULL);
- return (*fns->enum_type) (fhandle, tag, type->u.kenum->names,
- type->u.kenum->values);
- case DEBUG_KIND_POINTER:
- if (! debug_write_type (info, fns, fhandle, type->u.kpointer,
- (struct debug_name *) NULL))
- return FALSE;
- return (*fns->pointer_type) (fhandle);
- case DEBUG_KIND_FUNCTION:
- if (! debug_write_type (info, fns, fhandle,
- type->u.kfunction->return_type,
- (struct debug_name *) NULL))
- return FALSE;
- if (type->u.kfunction->arg_types == NULL)
- is = -1;
- else
- {
- for (is = 0; type->u.kfunction->arg_types[is] != NULL; is++)
- if (! debug_write_type (info, fns, fhandle,
- type->u.kfunction->arg_types[is],
- (struct debug_name *) NULL))
- return FALSE;
- }
- return (*fns->function_type) (fhandle, is,
- type->u.kfunction->varargs);
- case DEBUG_KIND_REFERENCE:
- if (! debug_write_type (info, fns, fhandle, type->u.kreference,
- (struct debug_name *) NULL))
- return FALSE;
- return (*fns->reference_type) (fhandle);
- case DEBUG_KIND_RANGE:
- if (! debug_write_type (info, fns, fhandle, type->u.krange->type,
- (struct debug_name *) NULL))
- return FALSE;
- return (*fns->range_type) (fhandle, type->u.krange->lower,
- type->u.krange->upper);
- case DEBUG_KIND_ARRAY:
- if (! debug_write_type (info, fns, fhandle, type->u.karray->element_type,
- (struct debug_name *) NULL)
- || ! debug_write_type (info, fns, fhandle,
- type->u.karray->range_type,
- (struct debug_name *) NULL))
- return FALSE;
- return (*fns->array_type) (fhandle, type->u.karray->lower,
- type->u.karray->upper,
- type->u.karray->stringp);
- case DEBUG_KIND_SET:
- if (! debug_write_type (info, fns, fhandle, type->u.kset->type,
- (struct debug_name *) NULL))
- return FALSE;
- return (*fns->set_type) (fhandle, type->u.kset->bitstringp);
- case DEBUG_KIND_OFFSET:
- if (! debug_write_type (info, fns, fhandle, type->u.koffset->base_type,
- (struct debug_name *) NULL)
- || ! debug_write_type (info, fns, fhandle,
- type->u.koffset->target_type,
- (struct debug_name *) NULL))
- return FALSE;
- return (*fns->offset_type) (fhandle);
- case DEBUG_KIND_METHOD:
- if (! debug_write_type (info, fns, fhandle,
- type->u.kmethod->return_type,
- (struct debug_name *) NULL))
- return FALSE;
- if (type->u.kmethod->arg_types == NULL)
- is = -1;
- else
- {
- for (is = 0; type->u.kmethod->arg_types[is] != NULL; is++)
- if (! debug_write_type (info, fns, fhandle,
- type->u.kmethod->arg_types[is],
- (struct debug_name *) NULL))
- return FALSE;
- }
- if (type->u.kmethod->domain_type != NULL)
- {
- if (! debug_write_type (info, fns, fhandle,
- type->u.kmethod->domain_type,
- (struct debug_name *) NULL))
- return FALSE;
- }
- return (*fns->method_type) (fhandle,
- type->u.kmethod->domain_type != NULL,
- is,
- type->u.kmethod->varargs);
- case DEBUG_KIND_CONST:
- if (! debug_write_type (info, fns, fhandle, type->u.kconst,
- (struct debug_name *) NULL))
- return FALSE;
- return (*fns->const_type) (fhandle);
- case DEBUG_KIND_VOLATILE:
- if (! debug_write_type (info, fns, fhandle, type->u.kvolatile,
- (struct debug_name *) NULL))
- return FALSE;
- return (*fns->volatile_type) (fhandle);
- case DEBUG_KIND_NAMED:
- return debug_write_type (info, fns, fhandle, type->u.knamed->type,
- (struct debug_name *) NULL);
- case DEBUG_KIND_TAGGED:
- return debug_write_type (info, fns, fhandle, type->u.knamed->type,
- type->u.knamed->name);
- default:
- abort ();
- return FALSE;
- }
-}
-
-/* Write out a class type. */
-
-static bfd_boolean
-debug_write_class_type (struct debug_handle *info,
- const struct debug_write_fns *fns, void *fhandle,
- struct debug_type *type, const char *tag)
-{
- unsigned int i;
- unsigned int id;
- struct debug_type *vptrbase;
-
- if (type->u.kclass == NULL)
- {
- id = 0;
- vptrbase = NULL;
- }
- else
- {
- if (type->u.kclass->id <= info->base_id)
- {
- if (! debug_set_class_id (info, tag, type))
- return FALSE;
- }
-
- if (info->mark == type->u.kclass->mark)
- {
- /* We are currently outputting this class, or we have
- already output it. This can happen when there are
- methods for an anonymous class. */
- assert (type->u.kclass->id > info->base_id);
- return (*fns->tag_type) (fhandle, tag, type->u.kclass->id,
- type->kind);
- }
- type->u.kclass->mark = info->mark;
- id = type->u.kclass->id;
-
- vptrbase = type->u.kclass->vptrbase;
- if (vptrbase != NULL && vptrbase != type)
- {
- if (! debug_write_type (info, fns, fhandle, vptrbase,
- (struct debug_name *) NULL))
- return FALSE;
- }
- }
-
- if (! (*fns->start_class_type) (fhandle, tag, id,
- type->kind == DEBUG_KIND_CLASS,
- type->size,
- vptrbase != NULL,
- vptrbase == type))
- return FALSE;
-
- if (type->u.kclass != NULL)
- {
- if (type->u.kclass->fields != NULL)
- {
- for (i = 0; type->u.kclass->fields[i] != NULL; i++)
- {
- struct debug_field *f;
-
- f = type->u.kclass->fields[i];
- if (! debug_write_type (info, fns, fhandle, f->type,
- (struct debug_name *) NULL))
- return FALSE;
- if (f->static_member)
- {
- if (! (*fns->class_static_member) (fhandle, f->name,
- f->u.s.physname,
- f->visibility))
- return FALSE;
- }
- else
- {
- if (! (*fns->struct_field) (fhandle, f->name, f->u.f.bitpos,
- f->u.f.bitsize, f->visibility))
- return FALSE;
- }
- }
- }
-
- if (type->u.kclass->baseclasses != NULL)
- {
- for (i = 0; type->u.kclass->baseclasses[i] != NULL; i++)
- {
- struct debug_baseclass *b;
-
- b = type->u.kclass->baseclasses[i];
- if (! debug_write_type (info, fns, fhandle, b->type,
- (struct debug_name *) NULL))
- return FALSE;
- if (! (*fns->class_baseclass) (fhandle, b->bitpos, b->virtual,
- b->visibility))
- return FALSE;
- }
- }
-
- if (type->u.kclass->methods != NULL)
- {
- for (i = 0; type->u.kclass->methods[i] != NULL; i++)
- {
- struct debug_method *m;
- unsigned int j;
-
- m = type->u.kclass->methods[i];
- if (! (*fns->class_start_method) (fhandle, m->name))
- return FALSE;
- for (j = 0; m->variants[j] != NULL; j++)
- {
- struct debug_method_variant *v;
-
- v = m->variants[j];
- if (v->context != NULL)
- {
- if (! debug_write_type (info, fns, fhandle, v->context,
- (struct debug_name *) NULL))
- return FALSE;
- }
- if (! debug_write_type (info, fns, fhandle, v->type,
- (struct debug_name *) NULL))
- return FALSE;
- if (v->voffset != VOFFSET_STATIC_METHOD)
- {
- if (! (*fns->class_method_variant) (fhandle, v->physname,
- v->visibility,
- v->constp,
- v->volatilep,
- v->voffset,
- v->context != NULL))
- return FALSE;
- }
- else
- {
- if (! (*fns->class_static_method_variant) (fhandle,
- v->physname,
- v->visibility,
- v->constp,
- v->volatilep))
- return FALSE;
- }
- }
- if (! (*fns->class_end_method) (fhandle))
- return FALSE;
- }
- }
- }
-
- return (*fns->end_class_type) (fhandle);
-}
-
-/* Write out information for a function. */
-
-static bfd_boolean
-debug_write_function (struct debug_handle *info,
- const struct debug_write_fns *fns, void *fhandle,
- const char *name, enum debug_object_linkage linkage,
- struct debug_function *function)
-{
- struct debug_parameter *p;
- struct debug_block *b;
-
- if (! debug_write_linenos (info, fns, fhandle, function->blocks->start))
- return FALSE;
-
- if (! debug_write_type (info, fns, fhandle, function->return_type,
- (struct debug_name *) NULL))
- return FALSE;
-
- if (! (*fns->start_function) (fhandle, name,
- linkage == DEBUG_LINKAGE_GLOBAL))
- return FALSE;
-
- for (p = function->parameters; p != NULL; p = p->next)
- {
- if (! debug_write_type (info, fns, fhandle, p->type,
- (struct debug_name *) NULL)
- || ! (*fns->function_parameter) (fhandle, p->name, p->kind, p->val))
- return FALSE;
- }
-
- for (b = function->blocks; b != NULL; b = b->next)
- {
- if (! debug_write_block (info, fns, fhandle, b))
- return FALSE;
- }
-
- return (*fns->end_function) (fhandle);
-}
-
-/* Write out information for a block. */
-
-static bfd_boolean
-debug_write_block (struct debug_handle *info,
- const struct debug_write_fns *fns, void *fhandle,
- struct debug_block *block)
-{
- struct debug_name *n;
- struct debug_block *b;
-
- if (! debug_write_linenos (info, fns, fhandle, block->start))
- return FALSE;
-
- /* I can't see any point to writing out a block with no local
- variables, so we don't bother, except for the top level block. */
- if (block->locals != NULL || block->parent == NULL)
- {
- if (! (*fns->start_block) (fhandle, block->start))
- return FALSE;
- }
-
- if (block->locals != NULL)
- {
- for (n = block->locals->list; n != NULL; n = n->next)
- {
- if (! debug_write_name (info, fns, fhandle, n))
- return FALSE;
- }
- }
-
- for (b = block->children; b != NULL; b = b->next)
- {
- if (! debug_write_block (info, fns, fhandle, b))
- return FALSE;
- }
-
- if (! debug_write_linenos (info, fns, fhandle, block->end))
- return FALSE;
-
- if (block->locals != NULL || block->parent == NULL)
- {
- if (! (*fns->end_block) (fhandle, block->end))
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Write out line number information up to ADDRESS. */
-
-static bfd_boolean
-debug_write_linenos (struct debug_handle *info,
- const struct debug_write_fns *fns, void *fhandle,
- bfd_vma address)
-{
- while (info->current_write_lineno != NULL)
- {
- struct debug_lineno *l;
-
- l = info->current_write_lineno;
-
- while (info->current_write_lineno_index < DEBUG_LINENO_COUNT)
- {
- if (l->linenos[info->current_write_lineno_index]
- == (unsigned long) -1)
- break;
-
- if (l->addrs[info->current_write_lineno_index] >= address)
- return TRUE;
-
- if (! (*fns->lineno) (fhandle, l->file->filename,
- l->linenos[info->current_write_lineno_index],
- l->addrs[info->current_write_lineno_index]))
- return FALSE;
-
- ++info->current_write_lineno_index;
- }
-
- info->current_write_lineno = l->next;
- info->current_write_lineno_index = 0;
- }
-
- return TRUE;
-}
-
-/* Get the ID number for a class. If during the same call to
- debug_write we find a struct with the same definition with the same
- name, we use the same ID. This type of things happens because the
- same struct will be defined by multiple compilation units. */
-
-static bfd_boolean
-debug_set_class_id (struct debug_handle *info, const char *tag,
- struct debug_type *type)
-{
- struct debug_class_type *c;
- struct debug_class_id *l;
-
- assert (type->kind == DEBUG_KIND_STRUCT
- || type->kind == DEBUG_KIND_UNION
- || type->kind == DEBUG_KIND_CLASS
- || type->kind == DEBUG_KIND_UNION_CLASS);
-
- c = type->u.kclass;
-
- if (c->id > info->base_id)
- return TRUE;
-
- for (l = info->id_list; l != NULL; l = l->next)
- {
- if (l->type->kind != type->kind)
- continue;
-
- if (tag == NULL)
- {
- if (l->tag != NULL)
- continue;
- }
- else
- {
- if (l->tag == NULL
- || l->tag[0] != tag[0]
- || strcmp (l->tag, tag) != 0)
- continue;
- }
-
- if (debug_type_samep (info, l->type, type))
- {
- c->id = l->type->u.kclass->id;
- return TRUE;
- }
- }
-
- /* There are no identical types. Use a new ID, and add it to the
- list. */
- ++info->class_id;
- c->id = info->class_id;
-
- l = (struct debug_class_id *) xmalloc (sizeof *l);
- memset (l, 0, sizeof *l);
-
- l->type = type;
- l->tag = tag;
-
- l->next = info->id_list;
- info->id_list = l;
-
- return TRUE;
-}
-
-/* See if two types are the same. At this point, we don't care about
- tags and the like. */
-
-static bfd_boolean
-debug_type_samep (struct debug_handle *info, struct debug_type *t1,
- struct debug_type *t2)
-{
- struct debug_type_compare_list *l;
- struct debug_type_compare_list top;
- bfd_boolean ret;
-
- if (t1 == NULL)
- return t2 == NULL;
- if (t2 == NULL)
- return FALSE;
-
- while (t1->kind == DEBUG_KIND_INDIRECT)
- {
- t1 = *t1->u.kindirect->slot;
- if (t1 == NULL)
- return FALSE;
- }
- while (t2->kind == DEBUG_KIND_INDIRECT)
- {
- t2 = *t2->u.kindirect->slot;
- if (t2 == NULL)
- return FALSE;
- }
-
- if (t1 == t2)
- return TRUE;
-
- /* As a special case, permit a typedef to match a tag, since C++
- debugging output will sometimes add a typedef where C debugging
- output will not. */
- if (t1->kind == DEBUG_KIND_NAMED
- && t2->kind == DEBUG_KIND_TAGGED)
- return debug_type_samep (info, t1->u.knamed->type, t2);
- else if (t1->kind == DEBUG_KIND_TAGGED
- && t2->kind == DEBUG_KIND_NAMED)
- return debug_type_samep (info, t1, t2->u.knamed->type);
-
- if (t1->kind != t2->kind
- || t1->size != t2->size)
- return FALSE;
-
- /* Get rid of the trivial cases first. */
- switch (t1->kind)
- {
- default:
- break;
- case DEBUG_KIND_VOID:
- case DEBUG_KIND_FLOAT:
- case DEBUG_KIND_COMPLEX:
- case DEBUG_KIND_BOOL:
- return TRUE;
- case DEBUG_KIND_INT:
- return t1->u.kint == t2->u.kint;
- }
-
- /* We have to avoid an infinite recursion. We do this by keeping a
- list of types which we are comparing. We just keep the list on
- the stack. If we encounter a pair of types we are currently
- comparing, we just assume that they are equal. */
- for (l = info->compare_list; l != NULL; l = l->next)
- {
- if (l->t1 == t1 && l->t2 == t2)
- return TRUE;
- }
-
- top.t1 = t1;
- top.t2 = t2;
- top.next = info->compare_list;
- info->compare_list = &top;
-
- switch (t1->kind)
- {
- default:
- abort ();
- ret = FALSE;
- break;
-
- case DEBUG_KIND_STRUCT:
- case DEBUG_KIND_UNION:
- case DEBUG_KIND_CLASS:
- case DEBUG_KIND_UNION_CLASS:
- if (t1->u.kclass == NULL)
- ret = t2->u.kclass == NULL;
- else if (t2->u.kclass == NULL)
- ret = FALSE;
- else if (t1->u.kclass->id > info->base_id
- && t1->u.kclass->id == t2->u.kclass->id)
- ret = TRUE;
- else
- ret = debug_class_type_samep (info, t1, t2);
- break;
-
- case DEBUG_KIND_ENUM:
- if (t1->u.kenum == NULL)
- ret = t2->u.kenum == NULL;
- else if (t2->u.kenum == NULL)
- ret = FALSE;
- else
- {
- const char **pn1, **pn2;
- bfd_signed_vma *pv1, *pv2;
-
- pn1 = t1->u.kenum->names;
- pn2 = t2->u.kenum->names;
- pv1 = t1->u.kenum->values;
- pv2 = t2->u.kenum->values;
- while (*pn1 != NULL && *pn2 != NULL)
- {
- if (**pn1 != **pn2
- || *pv1 != *pv2
- || strcmp (*pn1, *pn2) != 0)
- break;
- ++pn1;
- ++pn2;
- ++pv1;
- ++pv2;
- }
- ret = *pn1 == NULL && *pn2 == NULL;
- }
- break;
-
- case DEBUG_KIND_POINTER:
- ret = debug_type_samep (info, t1->u.kpointer, t2->u.kpointer);
- break;
-
- case DEBUG_KIND_FUNCTION:
- if (t1->u.kfunction->varargs != t2->u.kfunction->varargs
- || ! debug_type_samep (info, t1->u.kfunction->return_type,
- t2->u.kfunction->return_type)
- || ((t1->u.kfunction->arg_types == NULL)
- != (t2->u.kfunction->arg_types == NULL)))
- ret = FALSE;
- else if (t1->u.kfunction->arg_types == NULL)
- ret = TRUE;
- else
- {
- struct debug_type **a1, **a2;
-
- a1 = t1->u.kfunction->arg_types;
- a2 = t2->u.kfunction->arg_types;
- while (*a1 != NULL && *a2 != NULL)
- {
- if (! debug_type_samep (info, *a1, *a2))
- break;
- ++a1;
- ++a2;
- }
- ret = *a1 == NULL && *a2 == NULL;
- }
- break;
-
- case DEBUG_KIND_REFERENCE:
- ret = debug_type_samep (info, t1->u.kreference, t2->u.kreference);
- break;
-
- case DEBUG_KIND_RANGE:
- ret = (t1->u.krange->lower == t2->u.krange->lower
- && t1->u.krange->upper == t2->u.krange->upper
- && debug_type_samep (info, t1->u.krange->type,
- t2->u.krange->type));
-
- case DEBUG_KIND_ARRAY:
- ret = (t1->u.karray->lower == t2->u.karray->lower
- && t1->u.karray->upper == t2->u.karray->upper
- && t1->u.karray->stringp == t2->u.karray->stringp
- && debug_type_samep (info, t1->u.karray->element_type,
- t2->u.karray->element_type));
- break;
-
- case DEBUG_KIND_SET:
- ret = (t1->u.kset->bitstringp == t2->u.kset->bitstringp
- && debug_type_samep (info, t1->u.kset->type, t2->u.kset->type));
- break;
-
- case DEBUG_KIND_OFFSET:
- ret = (debug_type_samep (info, t1->u.koffset->base_type,
- t2->u.koffset->base_type)
- && debug_type_samep (info, t1->u.koffset->target_type,
- t2->u.koffset->target_type));
- break;
-
- case DEBUG_KIND_METHOD:
- if (t1->u.kmethod->varargs != t2->u.kmethod->varargs
- || ! debug_type_samep (info, t1->u.kmethod->return_type,
- t2->u.kmethod->return_type)
- || ! debug_type_samep (info, t1->u.kmethod->domain_type,
- t2->u.kmethod->domain_type)
- || ((t1->u.kmethod->arg_types == NULL)
- != (t2->u.kmethod->arg_types == NULL)))
- ret = FALSE;
- else if (t1->u.kmethod->arg_types == NULL)
- ret = TRUE;
- else
- {
- struct debug_type **a1, **a2;
-
- a1 = t1->u.kmethod->arg_types;
- a2 = t2->u.kmethod->arg_types;
- while (*a1 != NULL && *a2 != NULL)
- {
- if (! debug_type_samep (info, *a1, *a2))
- break;
- ++a1;
- ++a2;
- }
- ret = *a1 == NULL && *a2 == NULL;
- }
- break;
-
- case DEBUG_KIND_CONST:
- ret = debug_type_samep (info, t1->u.kconst, t2->u.kconst);
- break;
-
- case DEBUG_KIND_VOLATILE:
- ret = debug_type_samep (info, t1->u.kvolatile, t2->u.kvolatile);
- break;
-
- case DEBUG_KIND_NAMED:
- case DEBUG_KIND_TAGGED:
- ret = (strcmp (t1->u.knamed->name->name, t2->u.knamed->name->name) == 0
- && debug_type_samep (info, t1->u.knamed->type,
- t2->u.knamed->type));
- break;
- }
-
- info->compare_list = top.next;
-
- return ret;
-}
-
-/* See if two classes are the same. This is a subroutine of
- debug_type_samep. */
-
-static bfd_boolean
-debug_class_type_samep (struct debug_handle *info, struct debug_type *t1,
- struct debug_type *t2)
-{
- struct debug_class_type *c1, *c2;
-
- c1 = t1->u.kclass;
- c2 = t2->u.kclass;
-
- if ((c1->fields == NULL) != (c2->fields == NULL)
- || (c1->baseclasses == NULL) != (c2->baseclasses == NULL)
- || (c1->methods == NULL) != (c2->methods == NULL)
- || (c1->vptrbase == NULL) != (c2->vptrbase == NULL))
- return FALSE;
-
- if (c1->fields != NULL)
- {
- struct debug_field **pf1, **pf2;
-
- for (pf1 = c1->fields, pf2 = c2->fields;
- *pf1 != NULL && *pf2 != NULL;
- pf1++, pf2++)
- {
- struct debug_field *f1, *f2;
-
- f1 = *pf1;
- f2 = *pf2;
- if (f1->name[0] != f2->name[0]
- || f1->visibility != f2->visibility
- || f1->static_member != f2->static_member)
- return FALSE;
- if (f1->static_member)
- {
- if (strcmp (f1->u.s.physname, f2->u.s.physname) != 0)
- return FALSE;
- }
- else
- {
- if (f1->u.f.bitpos != f2->u.f.bitpos
- || f1->u.f.bitsize != f2->u.f.bitsize)
- return FALSE;
- }
- /* We do the checks which require function calls last. We
- don't require that the types of fields have the same
- names, since that sometimes fails in the presence of
- typedefs and we really don't care. */
- if (strcmp (f1->name, f2->name) != 0
- || ! debug_type_samep (info,
- debug_get_real_type ((void *) info,
- f1->type, NULL),
- debug_get_real_type ((void *) info,
- f2->type, NULL)))
- return FALSE;
- }
- if (*pf1 != NULL || *pf2 != NULL)
- return FALSE;
- }
-
- if (c1->vptrbase != NULL)
- {
- if (! debug_type_samep (info, c1->vptrbase, c2->vptrbase))
- return FALSE;
- }
-
- if (c1->baseclasses != NULL)
- {
- struct debug_baseclass **pb1, **pb2;
-
- for (pb1 = c1->baseclasses, pb2 = c2->baseclasses;
- *pb1 != NULL && *pb2 != NULL;
- ++pb1, ++pb2)
- {
- struct debug_baseclass *b1, *b2;
-
- b1 = *pb1;
- b2 = *pb2;
- if (b1->bitpos != b2->bitpos
- || b1->virtual != b2->virtual
- || b1->visibility != b2->visibility
- || ! debug_type_samep (info, b1->type, b2->type))
- return FALSE;
- }
- if (*pb1 != NULL || *pb2 != NULL)
- return FALSE;
- }
-
- if (c1->methods != NULL)
- {
- struct debug_method **pm1, **pm2;
-
- for (pm1 = c1->methods, pm2 = c2->methods;
- *pm1 != NULL && *pm2 != NULL;
- ++pm1, ++pm2)
- {
- struct debug_method *m1, *m2;
-
- m1 = *pm1;
- m2 = *pm2;
- if (m1->name[0] != m2->name[0]
- || strcmp (m1->name, m2->name) != 0
- || (m1->variants == NULL) != (m2->variants == NULL))
- return FALSE;
- if (m1->variants == NULL)
- {
- struct debug_method_variant **pv1, **pv2;
-
- for (pv1 = m1->variants, pv2 = m2->variants;
- *pv1 != NULL && *pv2 != NULL;
- ++pv1, ++pv2)
- {
- struct debug_method_variant *v1, *v2;
-
- v1 = *pv1;
- v2 = *pv2;
- if (v1->physname[0] != v2->physname[0]
- || v1->visibility != v2->visibility
- || v1->constp != v2->constp
- || v1->volatilep != v2->volatilep
- || v1->voffset != v2->voffset
- || (v1->context == NULL) != (v2->context == NULL)
- || strcmp (v1->physname, v2->physname) != 0
- || ! debug_type_samep (info, v1->type, v2->type))
- return FALSE;
- if (v1->context != NULL)
- {
- if (! debug_type_samep (info, v1->context,
- v2->context))
- return FALSE;
- }
- }
- if (*pv1 != NULL || *pv2 != NULL)
- return FALSE;
- }
- }
- if (*pm1 != NULL || *pm2 != NULL)
- return FALSE;
- }
-
- return TRUE;
-}
diff --git a/binutils-2.17/binutils/debug.h b/binutils-2.17/binutils/debug.h
deleted file mode 100644
index c18ba54a..00000000
--- a/binutils-2.17/binutils/debug.h
+++ /dev/null
@@ -1,792 +0,0 @@
-/* debug.h -- Describe generic debugging information.
- Copyright 1995, 1996, 2002, 2003 Free Software Foundation, Inc.
- Written by Ian Lance Taylor <ian@cygnus.com>.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#ifndef DEBUG_H
-#define DEBUG_H
-
-/* This header file describes a generic debugging information format.
- We may eventually have readers which convert different formats into
- this generic format, and writers which write it out. The initial
- impetus for this was writing a converter from stabs to HP IEEE-695
- debugging format. */
-
-/* Different kinds of types. */
-
-enum debug_type_kind
-{
- /* Not used. */
- DEBUG_KIND_ILLEGAL,
- /* Indirect via a pointer. */
- DEBUG_KIND_INDIRECT,
- /* Void. */
- DEBUG_KIND_VOID,
- /* Integer. */
- DEBUG_KIND_INT,
- /* Floating point. */
- DEBUG_KIND_FLOAT,
- /* Complex. */
- DEBUG_KIND_COMPLEX,
- /* Boolean. */
- DEBUG_KIND_BOOL,
- /* Struct. */
- DEBUG_KIND_STRUCT,
- /* Union. */
- DEBUG_KIND_UNION,
- /* Class. */
- DEBUG_KIND_CLASS,
- /* Union class (can this really happen?). */
- DEBUG_KIND_UNION_CLASS,
- /* Enumeration type. */
- DEBUG_KIND_ENUM,
- /* Pointer. */
- DEBUG_KIND_POINTER,
- /* Function. */
- DEBUG_KIND_FUNCTION,
- /* Reference. */
- DEBUG_KIND_REFERENCE,
- /* Range. */
- DEBUG_KIND_RANGE,
- /* Array. */
- DEBUG_KIND_ARRAY,
- /* Set. */
- DEBUG_KIND_SET,
- /* Based pointer. */
- DEBUG_KIND_OFFSET,
- /* Method. */
- DEBUG_KIND_METHOD,
- /* Const qualified type. */
- DEBUG_KIND_CONST,
- /* Volatile qualified type. */
- DEBUG_KIND_VOLATILE,
- /* Named type. */
- DEBUG_KIND_NAMED,
- /* Tagged type. */
- DEBUG_KIND_TAGGED
-};
-
-/* Different kinds of variables. */
-
-enum debug_var_kind
-{
- /* Not used. */
- DEBUG_VAR_ILLEGAL,
- /* A global variable. */
- DEBUG_GLOBAL,
- /* A static variable. */
- DEBUG_STATIC,
- /* A local static variable. */
- DEBUG_LOCAL_STATIC,
- /* A local variable. */
- DEBUG_LOCAL,
- /* A register variable. */
- DEBUG_REGISTER
-};
-
-/* Different kinds of function parameters. */
-
-enum debug_parm_kind
-{
- /* Not used. */
- DEBUG_PARM_ILLEGAL,
- /* A stack based parameter. */
- DEBUG_PARM_STACK,
- /* A register parameter. */
- DEBUG_PARM_REG,
- /* A stack based reference parameter. */
- DEBUG_PARM_REFERENCE,
- /* A register reference parameter. */
- DEBUG_PARM_REF_REG
-};
-
-/* Different kinds of visibility. */
-
-enum debug_visibility
-{
- /* A public field (e.g., a field in a C struct). */
- DEBUG_VISIBILITY_PUBLIC,
- /* A protected field. */
- DEBUG_VISIBILITY_PROTECTED,
- /* A private field. */
- DEBUG_VISIBILITY_PRIVATE,
- /* A field which should be ignored. */
- DEBUG_VISIBILITY_IGNORE
-};
-
-/* A type. */
-
-typedef struct debug_type *debug_type;
-
-#define DEBUG_TYPE_NULL ((debug_type) NULL)
-
-/* A field in a struct or union. */
-
-typedef struct debug_field *debug_field;
-
-#define DEBUG_FIELD_NULL ((debug_field) NULL)
-
-/* A base class for an object. */
-
-typedef struct debug_baseclass *debug_baseclass;
-
-#define DEBUG_BASECLASS_NULL ((debug_baseclass) NULL)
-
-/* A method of an object. */
-
-typedef struct debug_method *debug_method;
-
-#define DEBUG_METHOD_NULL ((debug_method) NULL)
-
-/* The arguments to a method function of an object. These indicate
- which method to run. */
-
-typedef struct debug_method_variant *debug_method_variant;
-
-#define DEBUG_METHOD_VARIANT_NULL ((debug_method_variant) NULL)
-
-/* This structure is passed to debug_write. It holds function
- pointers that debug_write will call based on the accumulated
- debugging information. */
-
-struct debug_write_fns
-{
- /* This is called at the start of each new compilation unit with the
- name of the main file in the new unit. */
- bfd_boolean (*start_compilation_unit) (void *, const char *);
-
- /* This is called at the start of each source file within a
- compilation unit, before outputting any global information for
- that file. The argument is the name of the file. */
- bfd_boolean (*start_source) (void *, const char *);
-
- /* Each writer must keep a stack of types. */
-
- /* Push an empty type onto the type stack. This type can appear if
- there is a reference to a type which is never defined. */
- bfd_boolean (*empty_type) (void *);
-
- /* Push a void type onto the type stack. */
- bfd_boolean (*void_type) (void *);
-
- /* Push an integer type onto the type stack, given the size and
- whether it is unsigned. */
- bfd_boolean (*int_type) (void *, unsigned int, bfd_boolean);
-
- /* Push a floating type onto the type stack, given the size. */
- bfd_boolean (*float_type) (void *, unsigned int);
-
- /* Push a complex type onto the type stack, given the size. */
- bfd_boolean (*complex_type) (void *, unsigned int);
-
- /* Push a bfd_boolean type onto the type stack, given the size. */
- bfd_boolean (*bool_type) (void *, unsigned int);
-
- /* Push an enum type onto the type stack, given the tag, a NULL
- terminated array of names and the associated values. If there is
- no tag, the tag argument will be NULL. If this is an undefined
- enum, the names and values arguments will be NULL. */
- bfd_boolean (*enum_type)
- (void *, const char *, const char **, bfd_signed_vma *);
-
- /* Pop the top type on the type stack, and push a pointer to that
- type onto the type stack. */
- bfd_boolean (*pointer_type) (void *);
-
- /* Push a function type onto the type stack. The second argument
- indicates the number of argument types that have been pushed onto
- the stack. If the number of argument types is passed as -1, then
- the argument types of the function are unknown, and no types have
- been pushed onto the stack. The third argument is TRUE if the
- function takes a variable number of arguments. The return type
- of the function is pushed onto the type stack below the argument
- types, if any. */
- bfd_boolean (*function_type) (void *, int, bfd_boolean);
-
- /* Pop the top type on the type stack, and push a reference to that
- type onto the type stack. */
- bfd_boolean (*reference_type) (void *);
-
- /* Pop the top type on the type stack, and push a range of that type
- with the given lower and upper bounds onto the type stack. */
- bfd_boolean (*range_type) (void *, bfd_signed_vma, bfd_signed_vma);
-
- /* Push an array type onto the type stack. The top type on the type
- stack is the range, and the next type on the type stack is the
- element type. These should be popped before the array type is
- pushed. The arguments are the lower bound, the upper bound, and
- whether the array is a string. */
- bfd_boolean (*array_type)
- (void *, bfd_signed_vma, bfd_signed_vma, bfd_boolean);
-
- /* Pop the top type on the type stack, and push a set of that type
- onto the type stack. The argument indicates whether this set is
- a bitstring. */
- bfd_boolean (*set_type) (void *, bfd_boolean);
-
- /* Push an offset type onto the type stack. The top type on the
- type stack is the target type, and the next type on the type
- stack is the base type. These should be popped before the offset
- type is pushed. */
- bfd_boolean (*offset_type) (void *);
-
- /* Push a method type onto the type stack. If the second argument
- is TRUE, the top type on the stack is the class to which the
- method belongs; otherwise, the class must be determined by the
- class to which the method is attached. The third argument is the
- number of argument types; these are pushed onto the type stack in
- reverse order (the first type popped is the last argument to the
- method). A value of -1 for the third argument means that no
- argument information is available. The fourth argument is TRUE
- if the function takes a variable number of arguments. The next
- type on the type stack below the domain and the argument types is
- the return type of the method. All these types must be popped,
- and then the method type must be pushed. */
- bfd_boolean (*method_type) (void *, bfd_boolean, int, bfd_boolean);
-
- /* Pop the top type off the type stack, and push a const qualified
- version of that type onto the type stack. */
- bfd_boolean (*const_type) (void *);
-
- /* Pop the top type off the type stack, and push a volatile
- qualified version of that type onto the type stack. */
- bfd_boolean (*volatile_type) (void *);
-
- /* Start building a struct. This is followed by calls to the
- struct_field function, and finished by a call to the
- end_struct_type function. The second argument is the tag; this
- will be NULL if there isn't one. If the second argument is NULL,
- the third argument is a constant identifying this struct for use
- with tag_type. The fourth argument is TRUE for a struct, FALSE
- for a union. The fifth argument is the size. If this is an
- undefined struct or union, the size will be 0 and struct_field
- will not be called before end_struct_type is called. */
- bfd_boolean (*start_struct_type)
- (void *, const char *, unsigned int, bfd_boolean, unsigned int);
-
- /* Add a field to the struct type currently being built. The type
- of the field should be popped off the type stack. The arguments
- are the name, the bit position, the bit size (may be zero if the
- field is not packed), and the visibility. */
- bfd_boolean (*struct_field)
- (void *, const char *, bfd_vma, bfd_vma, enum debug_visibility);
-
- /* Finish building a struct, and push it onto the type stack. */
- bfd_boolean (*end_struct_type) (void *);
-
- /* Start building a class. This is followed by calls to several
- functions: struct_field, class_static_member, class_baseclass,
- class_start_method, class_method_variant,
- class_static_method_variant, and class_end_method. The class is
- finished by a call to end_class_type. The first five arguments
- are the same as for start_struct_type. The sixth argument is
- TRUE if there is a virtual function table; if there is, the
- seventh argument is TRUE if the virtual function table can be
- found in the type itself, and is FALSE if the type of the object
- holding the virtual function table should be popped from the type
- stack. */
- bfd_boolean (*start_class_type)
- (void *, const char *, unsigned int, bfd_boolean, unsigned int,
- bfd_boolean, bfd_boolean);
-
- /* Add a static member to the class currently being built. The
- arguments are the field name, the physical name, and the
- visibility. The type must be popped off the type stack. */
- bfd_boolean (*class_static_member)
- (void *, const char *, const char *, enum debug_visibility);
-
- /* Add a baseclass to the class currently being built. The type of
- the baseclass must be popped off the type stack. The arguments
- are the bit position, whether the class is virtual, and the
- visibility. */
- bfd_boolean (*class_baseclass)
- (void *, bfd_vma, bfd_boolean, enum debug_visibility);
-
- /* Start adding a method to the class currently being built. This
- is followed by calls to class_method_variant and
- class_static_method_variant to describe different variants of the
- method which take different arguments. The method is finished
- with a call to class_end_method. The argument is the method
- name. */
- bfd_boolean (*class_start_method) (void *, const char *);
-
- /* Describe a variant to the class method currently being built.
- The type of the variant must be popped off the type stack. The
- second argument is the physical name of the function. The
- following arguments are the visibility, whether the variant is
- const, whether the variant is volatile, the offset in the virtual
- function table, and whether the context is on the type stack
- (below the variant type). */
- bfd_boolean (*class_method_variant)
- (void *, const char *, enum debug_visibility, bfd_boolean,
- bfd_boolean, bfd_vma, bfd_boolean);
-
- /* Describe a static variant to the class method currently being
- built. The arguments are the same as for class_method_variant,
- except that the last two arguments are omitted. The type of the
- variant must be popped off the type stack. */
- bfd_boolean (*class_static_method_variant)
- (void *, const char *, enum debug_visibility, bfd_boolean,
- bfd_boolean);
-
- /* Finish describing a class method. */
- bfd_boolean (*class_end_method) (void *);
-
- /* Finish describing a class, and push it onto the type stack. */
- bfd_boolean (*end_class_type) (void *);
-
- /* Push a type on the stack which was given a name by an earlier
- call to typdef. */
- bfd_boolean (*typedef_type) (void *, const char *);
-
- /* Push a tagged type on the stack which was defined earlier. If
- the second argument is not NULL, the type was defined by a call
- to tag. If the second argument is NULL, the type was defined by
- a call to start_struct_type or start_class_type with a tag of
- NULL and the number of the third argument. Either way, the
- fourth argument is the tag kind. Note that this may be called
- for a struct (class) being defined, in between the call to
- start_struct_type (start_class_type) and the call to
- end_struct_type (end_class_type). */
- bfd_boolean (*tag_type)
- (void *, const char *, unsigned int, enum debug_type_kind);
-
- /* Pop the type stack, and typedef it to the given name. */
- bfd_boolean (*typdef) (void *, const char *);
-
- /* Pop the type stack, and declare it as a tagged struct or union or
- enum or whatever. The tag passed down here is redundant, since
- was also passed when enum_type, start_struct_type, or
- start_class_type was called. */
- bfd_boolean (*tag) (void *, const char *);
-
- /* This is called to record a named integer constant. */
- bfd_boolean (*int_constant) (void *, const char *, bfd_vma);
-
- /* This is called to record a named floating point constant. */
- bfd_boolean (*float_constant) (void *, const char *, double);
-
- /* This is called to record a typed integer constant. The type is
- popped off the type stack. */
- bfd_boolean (*typed_constant) (void *, const char *, bfd_vma);
-
- /* This is called to record a variable. The type is popped off the
- type stack. */
- bfd_boolean (*variable)
- (void *, const char *, enum debug_var_kind, bfd_vma);
-
- /* Start writing out a function. The return type must be popped off
- the stack. The bfd_boolean is TRUE if the function is global. This
- is followed by calls to function_parameter, followed by block
- information. */
- bfd_boolean (*start_function) (void *, const char *, bfd_boolean);
-
- /* Record a function parameter for the current function. The type
- must be popped off the stack. */
- bfd_boolean (*function_parameter)
- (void *, const char *, enum debug_parm_kind, bfd_vma);
-
- /* Start writing out a block. There is at least one top level block
- per function. Blocks may be nested. The argument is the
- starting address of the block. */
- bfd_boolean (*start_block) (void *, bfd_vma);
-
- /* Finish writing out a block. The argument is the ending address
- of the block. */
- bfd_boolean (*end_block) (void *, bfd_vma);
-
- /* Finish writing out a function. */
- bfd_boolean (*end_function) (void *);
-
- /* Record line number information for the current compilation unit. */
- bfd_boolean (*lineno) (void *, const char *, unsigned long, bfd_vma);
-};
-
-/* Exported functions. */
-
-/* The first argument to most of these functions is a handle. This
- handle is returned by the debug_init function. The purpose of the
- handle is to permit the debugging routines to not use static
- variables, and hence to be reentrant. This would be useful for a
- program which wanted to handle two executables simultaneously. */
-
-/* Return a debugging handle. */
-
-extern void *debug_init (void);
-
-/* Set the source filename. This implicitly starts a new compilation
- unit. */
-
-extern bfd_boolean debug_set_filename (void *, const char *);
-
-/* Change source files to the given file name. This is used for
- include files in a single compilation unit. */
-
-extern bfd_boolean debug_start_source (void *, const char *);
-
-/* Record a function definition. This implicitly starts a function
- block. The debug_type argument is the type of the return value.
- The bfd_boolean indicates whether the function is globally visible.
- The bfd_vma is the address of the start of the function. Currently
- the parameter types are specified by calls to
- debug_record_parameter. */
-
-extern bfd_boolean debug_record_function
- (void *, const char *, debug_type, bfd_boolean, bfd_vma);
-
-/* Record a parameter for the current function. */
-
-extern bfd_boolean debug_record_parameter
- (void *, const char *, debug_type, enum debug_parm_kind, bfd_vma);
-
-/* End a function definition. The argument is the address where the
- function ends. */
-
-extern bfd_boolean debug_end_function (void *, bfd_vma);
-
-/* Start a block in a function. All local information will be
- recorded in this block, until the matching call to debug_end_block.
- debug_start_block and debug_end_block may be nested. The argument
- is the address at which this block starts. */
-
-extern bfd_boolean debug_start_block (void *, bfd_vma);
-
-/* Finish a block in a function. This matches the call to
- debug_start_block. The argument is the address at which this block
- ends. */
-
-extern bfd_boolean debug_end_block (void *, bfd_vma);
-
-/* Associate a line number in the current source file with a given
- address. */
-
-extern bfd_boolean debug_record_line (void *, unsigned long, bfd_vma);
-
-/* Start a named common block. This is a block of variables that may
- move in memory. */
-
-extern bfd_boolean debug_start_common_block (void *, const char *);
-
-/* End a named common block. */
-
-extern bfd_boolean debug_end_common_block (void *, const char *);
-
-/* Record a named integer constant. */
-
-extern bfd_boolean debug_record_int_const (void *, const char *, bfd_vma);
-
-/* Record a named floating point constant. */
-
-extern bfd_boolean debug_record_float_const (void *, const char *, double);
-
-/* Record a typed constant with an integral value. */
-
-extern bfd_boolean debug_record_typed_const
- (void *, const char *, debug_type, bfd_vma);
-
-/* Record a label. */
-
-extern bfd_boolean debug_record_label
- (void *, const char *, debug_type, bfd_vma);
-
-/* Record a variable. */
-
-extern bfd_boolean debug_record_variable
- (void *, const char *, debug_type, enum debug_var_kind, bfd_vma);
-
-/* Make an indirect type. The first argument is a pointer to the
- location where the real type will be placed. The second argument
- is the type tag, if there is one; this may be NULL; the only
- purpose of this argument is so that debug_get_type_name can return
- something useful. This function may be used when a type is
- referenced before it is defined. */
-
-extern debug_type debug_make_indirect_type
- (void *, debug_type *, const char *);
-
-/* Make a void type. */
-
-extern debug_type debug_make_void_type (void *);
-
-/* Make an integer type of a given size. The bfd_boolean argument is TRUE
- if the integer is unsigned. */
-
-extern debug_type debug_make_int_type (void *, unsigned int, bfd_boolean);
-
-/* Make a floating point type of a given size. FIXME: On some
- platforms, like an Alpha, you probably need to be able to specify
- the format. */
-
-extern debug_type debug_make_float_type (void *, unsigned int);
-
-/* Make a boolean type of a given size. */
-
-extern debug_type debug_make_bool_type (void *, unsigned int);
-
-/* Make a complex type of a given size. */
-
-extern debug_type debug_make_complex_type (void *, unsigned int);
-
-/* Make a structure type. The second argument is TRUE for a struct,
- FALSE for a union. The third argument is the size of the struct.
- The fourth argument is a NULL terminated array of fields. */
-
-extern debug_type debug_make_struct_type
- (void *, bfd_boolean, bfd_vma, debug_field *);
-
-/* Make an object type. The first three arguments after the handle
- are the same as for debug_make_struct_type. The next arguments are
- a NULL terminated array of base classes, a NULL terminated array of
- methods, the type of the object holding the virtual function table
- if it is not this object, and a bfd_boolean which is TRUE if this
- object has its own virtual function table. */
-
-extern debug_type debug_make_object_type
- (void *, bfd_boolean, bfd_vma, debug_field *, debug_baseclass *,
- debug_method *, debug_type, bfd_boolean);
-
-/* Make an enumeration type. The arguments are a null terminated
- array of strings, and an array of corresponding values. */
-
-extern debug_type debug_make_enum_type
- (void *, const char **, bfd_signed_vma *);
-
-/* Make a pointer to a given type. */
-
-extern debug_type debug_make_pointer_type (void *, debug_type);
-
-/* Make a function type. The second argument is the return type. The
- third argument is a NULL terminated array of argument types. The
- fourth argument is TRUE if the function takes a variable number of
- arguments. If the third argument is NULL, then the argument types
- are unknown. */
-
-extern debug_type debug_make_function_type
- (void *, debug_type, debug_type *, bfd_boolean);
-
-/* Make a reference to a given type. */
-
-extern debug_type debug_make_reference_type (void *, debug_type);
-
-/* Make a range of a given type from a lower to an upper bound. */
-
-extern debug_type debug_make_range_type
- (void *, debug_type, bfd_signed_vma, bfd_signed_vma);
-
-/* Make an array type. The second argument is the type of an element
- of the array. The third argument is the type of a range of the
- array. The fourth and fifth argument are the lower and upper
- bounds, respectively (if the bounds are not known, lower should be
- 0 and upper should be -1). The sixth argument is TRUE if this
- array is actually a string, as in C. */
-
-extern debug_type debug_make_array_type
- (void *, debug_type, debug_type, bfd_signed_vma, bfd_signed_vma,
- bfd_boolean);
-
-/* Make a set of a given type. For example, a Pascal set type. The
- bfd_boolean argument is TRUE if this set is actually a bitstring, as in
- CHILL. */
-
-extern debug_type debug_make_set_type (void *, debug_type, bfd_boolean);
-
-/* Make a type for a pointer which is relative to an object. The
- second argument is the type of the object to which the pointer is
- relative. The third argument is the type that the pointer points
- to. */
-
-extern debug_type debug_make_offset_type (void *, debug_type, debug_type);
-
-/* Make a type for a method function. The second argument is the
- return type. The third argument is the domain. The fourth
- argument is a NULL terminated array of argument types. The fifth
- argument is TRUE if the function takes a variable number of
- arguments, in which case the array of argument types indicates the
- types of the first arguments. The domain and the argument array
- may be NULL, in which case this is a stub method and that
- information is not available. Stabs debugging uses this, and gets
- the argument types from the mangled name. */
-
-extern debug_type debug_make_method_type
- (void *, debug_type, debug_type, debug_type *, bfd_boolean);
-
-/* Make a const qualified version of a given type. */
-
-extern debug_type debug_make_const_type (void *, debug_type);
-
-/* Make a volatile qualified version of a given type. */
-
-extern debug_type debug_make_volatile_type (void *, debug_type);
-
-/* Make an undefined tagged type. For example, a struct which has
- been mentioned, but not defined. */
-
-extern debug_type debug_make_undefined_tagged_type
- (void *, const char *, enum debug_type_kind);
-
-/* Make a base class for an object. The second argument is the base
- class type. The third argument is the bit position of this base
- class in the object. The fourth argument is whether this is a
- virtual class. The fifth argument is the visibility of the base
- class. */
-
-extern debug_baseclass debug_make_baseclass
- (void *, debug_type, bfd_vma, bfd_boolean, enum debug_visibility);
-
-/* Make a field for a struct. The second argument is the name. The
- third argument is the type of the field. The fourth argument is
- the bit position of the field. The fifth argument is the size of
- the field (it may be zero). The sixth argument is the visibility
- of the field. */
-
-extern debug_field debug_make_field
- (void *, const char *, debug_type, bfd_vma, bfd_vma, enum debug_visibility);
-
-/* Make a static member of an object. The second argument is the
- name. The third argument is the type of the member. The fourth
- argument is the physical name of the member (i.e., the name as a
- global variable). The fifth argument is the visibility of the
- member. */
-
-extern debug_field debug_make_static_member
- (void *, const char *, debug_type, const char *, enum debug_visibility);
-
-/* Make a method. The second argument is the name, and the third
- argument is a NULL terminated array of method variants. Each
- method variant is a method with this name but with different
- argument types. */
-
-extern debug_method debug_make_method
- (void *, const char *, debug_method_variant *);
-
-/* Make a method variant. The second argument is the physical name of
- the function. The third argument is the type of the function,
- probably constructed by debug_make_method_type. The fourth
- argument is the visibility. The fifth argument is whether this is
- a const function. The sixth argument is whether this is a volatile
- function. The seventh argument is the index in the virtual
- function table, if any. The eighth argument is the virtual
- function context. */
-
-extern debug_method_variant debug_make_method_variant
- (void *, const char *, debug_type, enum debug_visibility, bfd_boolean,
- bfd_boolean, bfd_vma, debug_type);
-
-/* Make a static method argument. The arguments are the same as for
- debug_make_method_variant, except that the last two are omitted
- since a static method can not also be virtual. */
-
-extern debug_method_variant debug_make_static_method_variant
- (void *, const char *, debug_type, enum debug_visibility, bfd_boolean,
- bfd_boolean);
-
-/* Name a type. This returns a new type with an attached name. */
-
-extern debug_type debug_name_type (void *, const char *, debug_type);
-
-/* Give a tag to a type, such as a struct or union. This returns a
- new type with an attached tag. */
-
-extern debug_type debug_tag_type (void *, const char *, debug_type);
-
-/* Record the size of a given type. */
-
-extern bfd_boolean debug_record_type_size (void *, debug_type, unsigned int);
-
-/* Find a named type. */
-
-extern debug_type debug_find_named_type (void *, const char *);
-
-/* Find a tagged type. */
-
-extern debug_type debug_find_tagged_type
- (void *, const char *, enum debug_type_kind);
-
-/* Get the kind of a type. */
-
-extern enum debug_type_kind debug_get_type_kind (void *, debug_type);
-
-/* Get the name of a type. */
-
-extern const char *debug_get_type_name (void *, debug_type);
-
-/* Get the size of a type. */
-
-extern bfd_vma debug_get_type_size (void *, debug_type);
-
-/* Get the return type of a function or method type. */
-
-extern debug_type debug_get_return_type (void *, debug_type);
-
-/* Get the NULL terminated array of parameter types for a function or
- method type (actually, parameter types are not currently stored for
- function types). This may be used to determine whether a method
- type is a stub method or not. The last argument points to a
- bfd_boolean which is set to TRUE if the function takes a variable
- number of arguments. */
-
-extern const debug_type *debug_get_parameter_types
- (void *, debug_type, bfd_boolean *);
-
-/* Get the target type of a pointer or reference or const or volatile
- type. */
-
-extern debug_type debug_get_target_type (void *, debug_type);
-
-/* Get the NULL terminated array of fields for a struct, union, or
- class. */
-
-extern const debug_field *debug_get_fields (void *, debug_type);
-
-/* Get the type of a field. */
-
-extern debug_type debug_get_field_type (void *, debug_field);
-
-/* Get the name of a field. */
-
-extern const char *debug_get_field_name (void *, debug_field);
-
-/* Get the bit position of a field within the containing structure.
- If the field is a static member, this will return (bfd_vma) -1. */
-
-extern bfd_vma debug_get_field_bitpos (void *, debug_field);
-
-/* Get the bit size of a field. If the field is a static member, this
- will return (bfd_vma) -1. */
-
-extern bfd_vma debug_get_field_bitsize (void *, debug_field);
-
-/* Get the visibility of a field. */
-
-extern enum debug_visibility debug_get_field_visibility (void *, debug_field);
-
-/* Get the physical name of a field, if it is a static member. If the
- field is not a static member, this will return NULL. */
-
-extern const char *debug_get_field_physname (void *, debug_field);
-
-/* Write out the recorded debugging information. This takes a set of
- function pointers which are called to do the actual writing. The
- first void * is the debugging handle. The second void * is a handle
- which is passed to the functions. */
-
-extern bfd_boolean debug_write
- (void *, const struct debug_write_fns *, void *);
-
-#endif /* DEBUG_H */
diff --git a/binutils-2.17/binutils/deflex.c b/binutils-2.17/binutils/deflex.c
deleted file mode 100644
index 9051c907..00000000
--- a/binutils-2.17/binutils/deflex.c
+++ /dev/null
@@ -1,1881 +0,0 @@
-/* A lexical scanner generated by flex */
-
-/* Scanner skeleton version:
- * $Header: /cvs/src/src/binutils/Attic/deflex.c,v 1.1.16.1 2006/04/16 18:36:40 drow Exp $
- */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-
-#include <stdio.h>
-#include <errno.h>
-
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
-#endif
-
-
-#ifdef __cplusplus
-
-#include <stdlib.h>
-#ifndef _WIN32
-#include <unistd.h>
-#endif
-
-/* 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)
-
-typedef unsigned char YY_CHAR;
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-typedef int yy_state_type;
-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 41
-#define YY_END_OF_BUFFER 42
-static yyconst short int yy_accept[198] =
- { 0,
- 0, 0, 42, 41, 34, 36, 35, 33, 41, 28,
- 41, 31, 40, 38, 27, 32, 37, 39, 28, 28,
- 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
- 28, 28, 28, 0, 29, 28, 0, 30, 31, 27,
- 32, 28, 28, 28, 28, 28, 28, 28, 28, 28,
- 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
- 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
- 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
- 28, 28, 28, 28, 28, 28, 12, 6, 28, 7,
- 28, 28, 28, 28, 28, 28, 28, 28, 1, 28,
-
- 28, 28, 16, 28, 28, 28, 28, 28, 28, 28,
- 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
- 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
- 17, 28, 28, 28, 28, 28, 28, 28, 28, 28,
- 28, 14, 28, 28, 28, 19, 21, 28, 28, 28,
- 28, 28, 28, 18, 9, 28, 10, 28, 28, 2,
- 28, 28, 15, 28, 28, 28, 28, 11, 13, 28,
- 5, 28, 28, 22, 28, 8, 28, 28, 28, 28,
- 28, 28, 20, 4, 28, 28, 28, 24, 28, 26,
- 28, 3, 28, 28, 23, 25, 0
-
- } ;
-
-static yyconst int yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 5, 1, 6, 1, 7, 1, 1, 8, 1,
- 1, 9, 1, 10, 7, 11, 12, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 7, 14, 1,
- 15, 1, 7, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 7, 26, 27, 28, 29, 30, 31,
- 7, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 1, 1, 1, 1, 7, 1, 22, 22, 22, 22,
-
- 22, 22, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 22,
- 7, 7, 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, 1, 1, 1, 1
- } ;
-
-static yyconst int yy_meta[41] =
- { 0,
- 1, 1, 2, 1, 1, 1, 3, 1, 1, 1,
- 1, 4, 5, 1, 1, 4, 6, 6, 6, 6,
- 6, 6, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
- } ;
-
-static yyconst short int yy_base[205] =
- { 0,
- 0, 0, 229, 230, 230, 230, 230, 230, 222, 0,
- 219, 0, 230, 230, 0, 0, 230, 0, 209, 195,
- 24, 186, 202, 14, 197, 186, 27, 188, 198, 25,
- 197, 196, 184, 209, 230, 0, 206, 230, 0, 0,
- 0, 0, 180, 27, 178, 178, 27, 193, 178, 183,
- 189, 179, 177, 175, 178, 185, 182, 183, 170, 181,
- 165, 164, 170, 173, 172, 159, 174, 171, 170, 158,
- 156, 156, 151, 152, 149, 161, 34, 145, 160, 145,
- 146, 154, 157, 147, 141, 139, 0, 0, 138, 0,
- 139, 135, 137, 135, 135, 29, 149, 140, 0, 136,
-
- 139, 145, 0, 136, 139, 132, 132, 30, 132, 135,
- 138, 129, 119, 118, 126, 116, 122, 119, 115, 115,
- 124, 127, 109, 112, 121, 119, 106, 111, 108, 106,
- 0, 106, 103, 112, 99, 91, 97, 99, 95, 88,
- 99, 0, 93, 103, 94, 0, 0, 97, 91, 87,
- 90, 84, 83, 0, 0, 95, 0, 97, 80, 0,
- 92, 91, 0, 78, 70, 91, 74, 0, 0, 82,
- 0, 89, 88, 0, 84, 0, 82, 85, 83, 69,
- 66, 56, 0, 0, 39, 36, 35, 0, 44, 0,
- 43, 0, 40, 39, 0, 0, 230, 67, 71, 77,
-
- 83, 85, 91, 95
- } ;
-
-static yyconst short int yy_def[205] =
- { 0,
- 197, 1, 197, 197, 197, 197, 197, 197, 198, 199,
- 200, 201, 197, 197, 202, 203, 197, 204, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 198, 197, 199, 200, 197, 201, 202,
- 203, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
-
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 0, 197, 197, 197,
-
- 197, 197, 197, 197
- } ;
-
-static yyconst short int yy_nxt[271] =
- { 0,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 4, 15, 16, 17, 18, 10, 19, 20, 21,
- 22, 10, 10, 23, 24, 10, 25, 26, 27, 10,
- 28, 29, 30, 31, 10, 32, 33, 10, 10, 10,
- 45, 49, 50, 53, 46, 57, 65, 69, 58, 59,
- 100, 117, 128, 118, 129, 66, 54, 70, 60, 196,
- 195, 194, 193, 192, 191, 190, 101, 34, 34, 34,
- 34, 34, 34, 36, 36, 36, 36, 37, 37, 37,
- 37, 37, 37, 39, 189, 39, 39, 39, 39, 40,
- 40, 41, 188, 41, 41, 41, 41, 42, 187, 186,
-
- 42, 185, 184, 183, 182, 181, 180, 179, 178, 177,
- 176, 175, 174, 173, 172, 171, 170, 169, 168, 167,
- 166, 165, 164, 163, 162, 161, 160, 159, 158, 157,
- 156, 155, 154, 153, 152, 151, 150, 149, 148, 147,
- 146, 145, 144, 143, 142, 141, 140, 139, 138, 137,
- 136, 135, 134, 133, 132, 131, 130, 127, 126, 125,
- 124, 123, 122, 121, 120, 119, 116, 115, 114, 113,
- 112, 111, 110, 109, 108, 107, 106, 105, 104, 103,
- 102, 99, 98, 97, 96, 95, 94, 93, 92, 91,
- 90, 89, 88, 87, 86, 85, 84, 83, 82, 81,
-
- 80, 79, 78, 77, 76, 75, 74, 73, 72, 71,
- 68, 67, 64, 38, 35, 63, 62, 61, 56, 55,
- 52, 51, 48, 47, 44, 43, 38, 35, 197, 3,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197
- } ;
-
-static yyconst short int yy_chk[271] =
- { 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,
- 21, 24, 24, 27, 21, 30, 44, 47, 30, 30,
- 77, 96, 108, 96, 108, 44, 27, 47, 30, 194,
- 193, 191, 189, 187, 186, 185, 77, 198, 198, 198,
- 198, 198, 198, 199, 199, 199, 199, 200, 200, 200,
- 200, 200, 200, 201, 182, 201, 201, 201, 201, 202,
- 202, 203, 181, 203, 203, 203, 203, 204, 180, 179,
-
- 204, 178, 177, 175, 173, 172, 170, 167, 166, 165,
- 164, 162, 161, 159, 158, 156, 153, 152, 151, 150,
- 149, 148, 145, 144, 143, 141, 140, 139, 138, 137,
- 136, 135, 134, 133, 132, 130, 129, 128, 127, 126,
- 125, 124, 123, 122, 121, 120, 119, 118, 117, 116,
- 115, 114, 113, 112, 111, 110, 109, 107, 106, 105,
- 104, 102, 101, 100, 98, 97, 95, 94, 93, 92,
- 91, 89, 86, 85, 84, 83, 82, 81, 80, 79,
- 78, 76, 75, 74, 73, 72, 71, 70, 69, 68,
- 67, 66, 65, 64, 63, 62, 61, 60, 59, 58,
-
- 57, 56, 55, 54, 53, 52, 51, 50, 49, 48,
- 46, 45, 43, 37, 34, 33, 32, 31, 29, 28,
- 26, 25, 23, 22, 20, 19, 11, 9, 3, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197
- } ;
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
-#line 1 "deflex.l"
-#define INITIAL 0
-#line 2 "deflex.l"
-
-/* Copyright 1995, 1997, 1998, 1999, 2002, 2003, 2004, 2005
- Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-/* Contributed by Steve Chamberlain: sac@cygnus.com */
-
-#define DONTDECLARE_MALLOC
-#include "libiberty.h"
-#include "defparse.h"
-#include "dlltool.h"
-
-#define YY_NO_UNPUT
-
-int linenumber;
-
-#line 523 "deflex.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 \
- { \
- errno=0; \
- while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
- { \
- if( errno != EINTR) \
- { \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- break; \
- } \
- errno=0; \
- clearerr(yyin); \
- } \
- }
-#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 \
- YY_USER_ACTION
-
-YY_DECL
- {
- register yy_state_type yy_current_state;
- register char *yy_cp, *yy_bp;
- register int yy_act;
-
-#line 35 "deflex.l"
-
-#line 687 "deflex.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_match:
- do
- {
- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = 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 >= 198 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- ++yy_cp;
- }
- while ( yy_base[yy_current_state] != 230 );
-
-yy_find_action:
- yy_act = yy_accept[yy_current_state];
- if ( yy_act == 0 )
- { /* have to back up */
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- yy_act = yy_accept[yy_current_state];
- }
-
- YY_DO_BEFORE_ACTION;
-
-
-do_action: /* This label is used only to access EOF actions. */
-
-
- switch ( yy_act )
- { /* beginning of action switch */
- case 0: /* must back up */
- /* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = yy_hold_char;
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-#line 36 "deflex.l"
-{ return NAME;}
- YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 37 "deflex.l"
-{ return LIBRARY;}
- YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 38 "deflex.l"
-{ return DESCRIPTION;}
- YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 39 "deflex.l"
-{ return STACKSIZE;}
- YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 40 "deflex.l"
-{ return HEAPSIZE;}
- YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 41 "deflex.l"
-{ return CODE;}
- YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 42 "deflex.l"
-{ return DATA;}
- YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 43 "deflex.l"
-{ return SECTIONS;}
- YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 44 "deflex.l"
-{ return EXPORTS;}
- YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 45 "deflex.l"
-{ return IMPORTS;}
- YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 46 "deflex.l"
-{ return VERSIONK;}
- YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 47 "deflex.l"
-{ return BASE;}
- YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 48 "deflex.l"
-{ return CONSTANT; }
- YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 49 "deflex.l"
-{ return NONAME; }
- YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 50 "deflex.l"
-{ return PRIVATE; }
- YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 51 "deflex.l"
-{ return READ;}
- YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 52 "deflex.l"
-{ return WRITE;}
- YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 53 "deflex.l"
-{ return EXECUTE;}
- YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 54 "deflex.l"
-{ return SHARED;}
- YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 55 "deflex.l"
-{ return NONSHARED;}
- YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 56 "deflex.l"
-{ return SINGLE;}
- YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 57 "deflex.l"
-{ return MULTIPLE;}
- YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 58 "deflex.l"
-{ return INITINSTANCE;}
- YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 59 "deflex.l"
-{ return INITGLOBAL;}
- YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 60 "deflex.l"
-{ return TERMINSTANCE;}
- YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 61 "deflex.l"
-{ return TERMGLOBAL;}
- YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 63 "deflex.l"
-{ yylval.number = strtol (yytext,0,0);
- return NUMBER; }
- YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 66 "deflex.l"
-{
- yylval.id = xstrdup (yytext);
- return ID;
- }
- YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 71 "deflex.l"
-{
- yylval.id = xstrdup (yytext+1);
- yylval.id[yyleng-2] = 0;
- return ID;
- }
- YY_BREAK
-case 30:
-YY_RULE_SETUP
-#line 77 "deflex.l"
-{
- yylval.id = xstrdup (yytext+1);
- yylval.id[yyleng-2] = 0;
- return ID;
- }
- YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 82 "deflex.l"
-{ }
- YY_BREAK
-case 32:
-YY_RULE_SETUP
-#line 83 "deflex.l"
-{ }
- YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 84 "deflex.l"
-{ }
- YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 85 "deflex.l"
-{ }
- YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 86 "deflex.l"
-{ }
- YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 87 "deflex.l"
-{ linenumber ++ ;}
- YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 88 "deflex.l"
-{ return '=';}
- YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 89 "deflex.l"
-{ return '.';}
- YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 90 "deflex.l"
-{ return '@';}
- YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 91 "deflex.l"
-{ return ',';}
- YY_BREAK
-case 41:
-YY_RULE_SETUP
-#line 92 "deflex.l"
-ECHO;
- YY_BREAK
-#line 987 "deflex.c"
-case YY_STATE_EOF(INITIAL):
- 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;
-
- 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);
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = 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 >= 198 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- }
-
- 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 char *yy_cp = yy_c_buf_p;
-
- register YY_CHAR yy_c = 1;
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = 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 >= 198 )
- 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 == 197);
-
- 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;
-
-
- yytext_ptr = yy_bp;
- yy_hold_char = *yy_cp;
- yy_c_buf_p = yy_cp;
- }
-#endif /* ifndef YY_NO_UNPUT */
-
-
-#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;
-
-
- return c;
- }
-
-
-#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 );
- }
-
-
-#ifndef _WIN32
-#include <unistd.h>
-#else
-#ifndef YY_ALWAYS_INTERACTIVE
-#ifndef YY_NEVER_INTERACTIVE
-extern int isatty YY_PROTO(( int ));
-#endif
-#endif
-#endif
-
-#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 92 "deflex.l"
-
-#ifndef yywrap
-/* Needed for lex, though not flex. */
-int yywrap(void) { return 1; }
-#endif
diff --git a/binutils-2.17/binutils/deflex.l b/binutils-2.17/binutils/deflex.l
deleted file mode 100644
index c6d45c85..00000000
--- a/binutils-2.17/binutils/deflex.l
+++ /dev/null
@@ -1,96 +0,0 @@
-%{/* deflex.l - Lexer for .def files */
-
-/* Copyright 1995, 1997, 1998, 1999, 2002, 2003, 2004, 2005
- Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-
-/* Contributed by Steve Chamberlain: sac@cygnus.com */
-
-#define DONTDECLARE_MALLOC
-#include "libiberty.h"
-#include "defparse.h"
-#include "dlltool.h"
-
-#define YY_NO_UNPUT
-
-int linenumber;
-
-%}
-%%
-"NAME" { return NAME;}
-"LIBRARY" { return LIBRARY;}
-"DESCRIPTION" { return DESCRIPTION;}
-"STACKSIZE" { return STACKSIZE;}
-"HEAPSIZE" { return HEAPSIZE;}
-"CODE" { return CODE;}
-"DATA" { return DATA;}
-"SECTIONS" { return SECTIONS;}
-"EXPORTS" { return EXPORTS;}
-"IMPORTS" { return IMPORTS;}
-"VERSION" { return VERSIONK;}
-"BASE" { return BASE;}
-"CONSTANT" { return CONSTANT; }
-"NONAME" { return NONAME; }
-"PRIVATE" { return PRIVATE; }
-"READ" { return READ;}
-"WRITE" { return WRITE;}
-"EXECUTE" { return EXECUTE;}
-"SHARED" { return SHARED;}
-"NONSHARED" { return NONSHARED;}
-"SINGLE" { return SINGLE;}
-"MULTIPLE" { return MULTIPLE;}
-"INITINSTANCE" { return INITINSTANCE;}
-"INITGLOBAL" { return INITGLOBAL;}
-"TERMINSTANCE" { return TERMINSTANCE;}
-"TERMGLOBAL" { return TERMGLOBAL;}
-
-[0-9][x0-9A-Fa-f]* { yylval.number = strtol (yytext,0,0);
- return NUMBER; }
-
-(@)?[A-Za-z$:\-\_?][A-Za-z0-9/$:\-\_@?]* {
- yylval.id = xstrdup (yytext);
- return ID;
- }
-
-"\""[^\"]*"\"" {
- yylval.id = xstrdup (yytext+1);
- yylval.id[yyleng-2] = 0;
- return ID;
- }
-
-"\'"[^\']*"\'" {
- yylval.id = xstrdup (yytext+1);
- yylval.id[yyleng-2] = 0;
- return ID;
- }
-"*".* { }
-";".* { }
-" " { }
-"\t" { }
-"\r" { }
-"\n" { linenumber ++ ;}
-"=" { return '=';}
-"." { return '.';}
-"@" { return '@';}
-"," { return ',';}
-%%
-#ifndef yywrap
-/* Needed for lex, though not flex. */
-int yywrap(void) { return 1; }
-#endif
diff --git a/binutils-2.17/binutils/defparse.c b/binutils-2.17/binutils/defparse.c
deleted file mode 100644
index de34ae0c..00000000
--- a/binutils-2.17/binutils/defparse.c
+++ /dev/null
@@ -1,1777 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.1. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, 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
-
-/* Bison version. */
-#define YYBISON_VERSION "2.1"
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- NAME = 258,
- LIBRARY = 259,
- DESCRIPTION = 260,
- STACKSIZE = 261,
- HEAPSIZE = 262,
- CODE = 263,
- DATA = 264,
- SECTIONS = 265,
- EXPORTS = 266,
- IMPORTS = 267,
- VERSIONK = 268,
- BASE = 269,
- CONSTANT = 270,
- READ = 271,
- WRITE = 272,
- EXECUTE = 273,
- SHARED = 274,
- NONSHARED = 275,
- NONAME = 276,
- PRIVATE = 277,
- SINGLE = 278,
- MULTIPLE = 279,
- INITINSTANCE = 280,
- INITGLOBAL = 281,
- TERMINSTANCE = 282,
- TERMGLOBAL = 283,
- ID = 284,
- NUMBER = 285
- };
-#endif
-/* Tokens. */
-#define NAME 258
-#define LIBRARY 259
-#define DESCRIPTION 260
-#define STACKSIZE 261
-#define HEAPSIZE 262
-#define CODE 263
-#define DATA 264
-#define SECTIONS 265
-#define EXPORTS 266
-#define IMPORTS 267
-#define VERSIONK 268
-#define BASE 269
-#define CONSTANT 270
-#define READ 271
-#define WRITE 272
-#define EXECUTE 273
-#define SHARED 274
-#define NONSHARED 275
-#define NONAME 276
-#define PRIVATE 277
-#define SINGLE 278
-#define MULTIPLE 279
-#define INITINSTANCE 280
-#define INITGLOBAL 281
-#define TERMINSTANCE 282
-#define TERMGLOBAL 283
-#define ID 284
-#define NUMBER 285
-
-
-
-
-/* Copy the first part of user declarations. */
-#line 1 "defparse.y"
- /* defparse.y - parser for .def files */
-
-/* Copyright 1995, 1997, 1998, 1999, 2001, 2004
- Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "dlltool.h"
-
-
-/* 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
-
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 27 "defparse.y"
-typedef union YYSTYPE {
- char *id;
- int number;
-} YYSTYPE;
-/* Line 196 of yacc.c. */
-#line 176 "defparse.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 219 of yacc.c. */
-#line 188 "defparse.c"
-
-#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) && (defined (__STDC__) || defined (__cplusplus))
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
-#ifndef YY_
-# if YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(msgid) dgettext ("bison-runtime", msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(msgid) msgid
-# endif
-#endif
-
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# else
-# define YYSTACK_ALLOC alloca
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# define YYINCLUDED_STDLIB_H
-# endif
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
-# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
-# endif
-# else
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# ifndef YYSTACK_ALLOC_MAXIMUM
-# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
-# endif
-# ifdef __cplusplus
-extern "C" {
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
- && (defined (__STDC__) || defined (__cplusplus)))
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifndef YYFREE
-# define YYFREE free
-# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
- && (defined (__STDC__) || defined (__cplusplus)))
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifdef __cplusplus
-}
-# endif
-# 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 int 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 int) + 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 \
- { \
- 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 int yysigned_char;
-#endif
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 38
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 114
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 35
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 23
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 68
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 98
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 285
-
-#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, 2, 2,
- 2, 2, 2, 2, 33, 2, 31, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 32, 2, 2, 34, 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, 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, 27, 28, 29, 30
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const unsigned char yyprhs[] =
-{
- 0, 0, 3, 6, 8, 12, 17, 20, 23, 27,
- 31, 34, 37, 40, 43, 46, 51, 52, 55, 63,
- 66, 68, 76, 84, 90, 96, 102, 108, 112, 116,
- 119, 121, 124, 128, 130, 132, 133, 136, 137, 139,
- 141, 143, 145, 147, 149, 151, 153, 154, 156, 157,
- 159, 160, 162, 163, 165, 169, 170, 173, 174, 177,
- 182, 183, 187, 188, 189, 193, 195, 197, 199
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yysigned_char yyrhs[] =
-{
- 36, 0, -1, 36, 37, -1, 37, -1, 3, 52,
- 55, -1, 4, 52, 55, 56, -1, 11, 38, -1,
- 5, 29, -1, 6, 30, 46, -1, 7, 30, 46,
- -1, 8, 44, -1, 9, 44, -1, 10, 42, -1,
- 12, 40, -1, 13, 30, -1, 13, 30, 31, 30,
- -1, -1, 38, 39, -1, 29, 54, 53, 49, 48,
- 50, 51, -1, 40, 41, -1, 41, -1, 29, 32,
- 29, 31, 29, 31, 29, -1, 29, 32, 29, 31,
- 29, 31, 30, -1, 29, 32, 29, 31, 29, -1,
- 29, 32, 29, 31, 30, -1, 29, 31, 29, 31,
- 29, -1, 29, 31, 29, 31, 30, -1, 29, 31,
- 29, -1, 29, 31, 30, -1, 42, 43, -1, 43,
- -1, 29, 44, -1, 44, 45, 47, -1, 47, -1,
- 33, -1, -1, 33, 30, -1, -1, 16, -1, 17,
- -1, 18, -1, 19, -1, 20, -1, 23, -1, 24,
- -1, 15, -1, -1, 21, -1, -1, 9, -1, -1,
- 22, -1, -1, 29, -1, 29, 31, 29, -1, -1,
- 34, 30, -1, -1, 32, 29, -1, 32, 29, 31,
- 29, -1, -1, 14, 32, 30, -1, -1, -1, 56,
- 45, 57, -1, 25, -1, 26, -1, 27, -1, 28,
- -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const unsigned char yyrline[] =
-{
- 0, 44, 44, 45, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 64, 66, 70, 74,
- 75, 79, 80, 81, 82, 83, 84, 85, 86, 90,
- 91, 95, 99, 100, 104, 105, 107, 108, 112, 113,
- 114, 115, 116, 117, 118, 122, 123, 127, 128, 132,
- 133, 137, 138, 141, 142, 148, 152, 153, 157, 158,
- 164, 167, 168, 171, 173, 177, 178, 179, 180
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-/* YYTNAME[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", "NAME", "LIBRARY", "DESCRIPTION",
- "STACKSIZE", "HEAPSIZE", "CODE", "DATA", "SECTIONS", "EXPORTS",
- "IMPORTS", "VERSIONK", "BASE", "CONSTANT", "READ", "WRITE", "EXECUTE",
- "SHARED", "NONSHARED", "NONAME", "PRIVATE", "SINGLE", "MULTIPLE",
- "INITINSTANCE", "INITGLOBAL", "TERMINSTANCE", "TERMGLOBAL", "ID",
- "NUMBER", "'.'", "'='", "','", "'@'", "$accept", "start", "command",
- "explist", "expline", "implist", "impline", "seclist", "secline",
- "attr_list", "opt_comma", "opt_number", "attr", "opt_CONSTANT",
- "opt_NONAME", "opt_DATA", "opt_PRIVATE", "opt_name", "opt_ordinal",
- "opt_equal_name", "opt_base", "option_list", "option", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
-static const unsigned short int 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, 282, 283, 284,
- 285, 46, 61, 44, 64
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const unsigned char yyr1[] =
-{
- 0, 35, 36, 36, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 38, 38, 39, 40,
- 40, 41, 41, 41, 41, 41, 41, 41, 41, 42,
- 42, 43, 44, 44, 45, 45, 46, 46, 47, 47,
- 47, 47, 47, 47, 47, 48, 48, 49, 49, 50,
- 50, 51, 51, 52, 52, 52, 53, 53, 54, 54,
- 54, 55, 55, 56, 56, 57, 57, 57, 57
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const unsigned char yyr2[] =
-{
- 0, 2, 2, 1, 3, 4, 2, 2, 3, 3,
- 2, 2, 2, 2, 2, 4, 0, 2, 7, 2,
- 1, 7, 7, 5, 5, 5, 5, 3, 3, 2,
- 1, 2, 3, 1, 1, 0, 2, 0, 1, 1,
- 1, 1, 1, 1, 1, 1, 0, 1, 0, 1,
- 0, 1, 0, 1, 3, 0, 2, 0, 2, 4,
- 0, 3, 0, 0, 3, 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, 55, 55, 0, 0, 0, 0, 0, 0, 16,
- 0, 0, 0, 3, 53, 62, 62, 7, 37, 37,
- 38, 39, 40, 41, 42, 43, 44, 10, 33, 11,
- 0, 12, 30, 6, 0, 13, 20, 14, 1, 2,
- 0, 0, 4, 63, 0, 8, 9, 34, 0, 31,
- 29, 60, 17, 0, 0, 19, 0, 54, 0, 5,
- 36, 32, 0, 57, 27, 28, 0, 15, 61, 0,
- 58, 0, 48, 0, 0, 65, 66, 67, 68, 64,
- 0, 56, 47, 46, 25, 26, 23, 24, 59, 45,
- 50, 0, 49, 52, 21, 22, 51, 18
-};
-
-/* YYDEFGOTO[NTERM-NUM]. */
-static const yysigned_char yydefgoto[] =
-{
- -1, 12, 13, 33, 52, 35, 36, 31, 32, 27,
- 48, 45, 28, 90, 83, 93, 97, 15, 72, 63,
- 42, 59, 79
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-#define YYPACT_NINF -26
-static const yysigned_char yypact[] =
-{
- 32, -12, -12, 17, -8, 33, -4, -4, 35, -26,
- 36, 37, 21, -26, 38, 48, 48, -26, 39, 39,
- -26, -26, -26, -26, -26, -26, -26, -15, -26, -15,
- -4, 35, -26, 41, -25, 36, -26, 40, -26, -26,
- 44, 34, -26, -26, 45, -26, -26, -26, -4, -15,
- -26, 42, -26, -19, 47, -26, 49, -26, 50, 22,
- -26, -26, 52, 43, 51, -26, 53, -26, -26, 26,
- 54, 56, 57, 27, 29, -26, -26, -26, -26, -26,
- 58, -26, -26, 68, -26, -26, 59, -26, -26, -26,
- 79, 31, -26, 46, -26, -26, -26, -26
-};
-
-/* YYPGOTO[NTERM-NUM]. */
-static const yysigned_char yypgoto[] =
-{
- -26, -26, 77, -26, -26, -26, 60, -26, 61, -7,
- 55, 72, 62, -26, -26, -26, -26, 91, -26, -26,
- 78, -26, -26
-};
-
-/* 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 -36
-static const yysigned_char yytable[] =
-{
- 29, -35, -35, -35, -35, -35, 53, 54, -35, -35,
- 64, 65, 20, 21, 22, 23, 24, 14, 47, 25,
- 26, 38, 18, 49, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 17, -35, -35, -35,
- -35, 75, 76, 77, 78, 47, 84, 85, 86, 87,
- 94, 95, 41, 19, 30, 34, 58, 37, 96, 40,
- 51, 56, 44, 57, 62, 60, 66, 71, 82, 67,
- 68, 70, 73, 89, 74, 80, 81, 88, 92, 39,
- 91, 46, 50, 16, 43, 55, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 0, 0, 69
-};
-
-static const yysigned_char yycheck[] =
-{
- 7, 16, 17, 18, 19, 20, 31, 32, 23, 24,
- 29, 30, 16, 17, 18, 19, 20, 29, 33, 23,
- 24, 0, 30, 30, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 29, 25, 26, 27,
- 28, 25, 26, 27, 28, 33, 29, 30, 29, 30,
- 29, 30, 14, 30, 29, 29, 32, 30, 22, 31,
- 29, 31, 33, 29, 32, 30, 29, 34, 21, 30,
- 30, 29, 31, 15, 31, 31, 30, 29, 9, 12,
- 31, 19, 31, 2, 16, 35, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 48, -1, -1, -1, 59
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const unsigned char yystos[] =
-{
- 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 36, 37, 29, 52, 52, 29, 30, 30,
- 16, 17, 18, 19, 20, 23, 24, 44, 47, 44,
- 29, 42, 43, 38, 29, 40, 41, 30, 0, 37,
- 31, 14, 55, 55, 33, 46, 46, 33, 45, 44,
- 43, 29, 39, 31, 32, 41, 31, 29, 32, 56,
- 30, 47, 32, 54, 29, 30, 29, 30, 30, 45,
- 29, 34, 53, 31, 31, 25, 26, 27, 28, 57,
- 31, 30, 21, 49, 29, 30, 29, 30, 29, 15,
- 48, 31, 9, 50, 29, 30, 22, 51
-};
-
-#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 (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
-while (0)
-
-
-#define YYTERROR 1
-#define YYERRCODE 256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
- If N is 0, then set CURRENT to the empty location which ends
- the previous symbol: RHS[0] (always defined). */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- do \
- if (N) \
- { \
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
- } \
- else \
- { \
- (Current).first_line = (Current).last_line = \
- YYRHSLOC (Rhs, 0).last_line; \
- (Current).first_column = (Current).last_column = \
- YYRHSLOC (Rhs, 0).last_column; \
- } \
- while (0)
-#endif
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
-
-#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#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 YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yysymprint (stderr, \
- Type, 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 int *bottom, short int *top)
-#else
-static void
-yy_stack_print (bottom, top)
- short int *bottom;
- short int *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 long int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
- 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 YY_SYMBOL_PRINT(Title, Type, 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
- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
-#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
-{
- 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
-{
- char *yyd = yydest;
- const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
- if (*yystr == '"')
- {
- size_t yyn = 0;
- char const *yyp = yystr;
-
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
- }
-
- if (! yyres)
- return yystrlen (yystr);
-
- return yystpcpy (yyres, yystr) - yyres;
-}
-# 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]);
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
-
-# ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
- switch (yytype)
- {
- default:
- break;
- }
- YYFPRINTF (yyoutput, ")");
-}
-
-#endif /* ! YYDEBUG */
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep)
- const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
-{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
-
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- 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 look-ahead symbol. */
-int yychar;
-
-/* The semantic value of the look-ahead 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
-{
-
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Look-ahead 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 int yyssa[YYINITDEPTH];
- short int *yyss = yyssa;
- short int *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- 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 int *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 (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
- &yystacksize);
-
- yyss = yyss1;
- yyvs = yyvs1;
- }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyexhaustedlab;
-# else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
- short int *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyexhaustedlab;
- 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 look-ahead token if we need one and don't already have one. */
-/* yyresume: */
-
- /* First try to decide what to do without reference to look-ahead token. */
-
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
- /* Not known => get a look-ahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead 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);
- YY_SYMBOL_PRINT ("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 look-ahead token. */
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
- /* 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 4:
-#line 49 "defparse.y"
- { def_name ((yyvsp[-1].id), (yyvsp[0].number)); }
- break;
-
- case 5:
-#line 50 "defparse.y"
- { def_library ((yyvsp[-2].id), (yyvsp[-1].number)); }
- break;
-
- case 7:
-#line 52 "defparse.y"
- { def_description ((yyvsp[0].id));}
- break;
-
- case 8:
-#line 53 "defparse.y"
- { def_stacksize ((yyvsp[-1].number), (yyvsp[0].number));}
- break;
-
- case 9:
-#line 54 "defparse.y"
- { def_heapsize ((yyvsp[-1].number), (yyvsp[0].number));}
- break;
-
- case 10:
-#line 55 "defparse.y"
- { def_code ((yyvsp[0].number));}
- break;
-
- case 11:
-#line 56 "defparse.y"
- { def_data ((yyvsp[0].number));}
- break;
-
- case 14:
-#line 59 "defparse.y"
- { def_version ((yyvsp[0].number),0);}
- break;
-
- case 15:
-#line 60 "defparse.y"
- { def_version ((yyvsp[-2].number),(yyvsp[0].number));}
- break;
-
- case 18:
-#line 71 "defparse.y"
- { def_exports ((yyvsp[-6].id), (yyvsp[-5].id), (yyvsp[-4].number), (yyvsp[-3].number), (yyvsp[-2].number), (yyvsp[-1].number), (yyvsp[0].number));}
- break;
-
- case 21:
-#line 79 "defparse.y"
- { def_import ((yyvsp[-6].id),(yyvsp[-4].id),(yyvsp[-2].id),(yyvsp[0].id), 0); }
- break;
-
- case 22:
-#line 80 "defparse.y"
- { def_import ((yyvsp[-6].id),(yyvsp[-4].id),(yyvsp[-2].id), 0,(yyvsp[0].number)); }
- break;
-
- case 23:
-#line 81 "defparse.y"
- { def_import ((yyvsp[-4].id),(yyvsp[-2].id), 0,(yyvsp[0].id), 0); }
- break;
-
- case 24:
-#line 82 "defparse.y"
- { def_import ((yyvsp[-4].id),(yyvsp[-2].id), 0, 0,(yyvsp[0].number)); }
- break;
-
- case 25:
-#line 83 "defparse.y"
- { def_import ( 0,(yyvsp[-4].id),(yyvsp[-2].id),(yyvsp[0].id), 0); }
- break;
-
- case 26:
-#line 84 "defparse.y"
- { def_import ( 0,(yyvsp[-4].id),(yyvsp[-2].id), 0,(yyvsp[0].number)); }
- break;
-
- case 27:
-#line 85 "defparse.y"
- { def_import ( 0,(yyvsp[-2].id), 0,(yyvsp[0].id), 0); }
- break;
-
- case 28:
-#line 86 "defparse.y"
- { def_import ( 0,(yyvsp[-2].id), 0, 0,(yyvsp[0].number)); }
- break;
-
- case 31:
-#line 95 "defparse.y"
- { def_section ((yyvsp[-1].id),(yyvsp[0].number));}
- break;
-
- case 36:
-#line 107 "defparse.y"
- { (yyval.number)=(yyvsp[0].number);}
- break;
-
- case 37:
-#line 108 "defparse.y"
- { (yyval.number)=-1;}
- break;
-
- case 38:
-#line 112 "defparse.y"
- { (yyval.number) = 1; }
- break;
-
- case 39:
-#line 113 "defparse.y"
- { (yyval.number) = 2; }
- break;
-
- case 40:
-#line 114 "defparse.y"
- { (yyval.number) = 4; }
- break;
-
- case 41:
-#line 115 "defparse.y"
- { (yyval.number) = 8; }
- break;
-
- case 42:
-#line 116 "defparse.y"
- { (yyval.number) = 0; }
- break;
-
- case 43:
-#line 117 "defparse.y"
- { (yyval.number) = 0; }
- break;
-
- case 44:
-#line 118 "defparse.y"
- { (yyval.number) = 0; }
- break;
-
- case 45:
-#line 122 "defparse.y"
- {(yyval.number)=1;}
- break;
-
- case 46:
-#line 123 "defparse.y"
- {(yyval.number)=0;}
- break;
-
- case 47:
-#line 127 "defparse.y"
- {(yyval.number)=1;}
- break;
-
- case 48:
-#line 128 "defparse.y"
- {(yyval.number)=0;}
- break;
-
- case 49:
-#line 132 "defparse.y"
- { (yyval.number) = 1; }
- break;
-
- case 50:
-#line 133 "defparse.y"
- { (yyval.number) = 0; }
- break;
-
- case 51:
-#line 137 "defparse.y"
- { (yyval.number) = 1; }
- break;
-
- case 52:
-#line 138 "defparse.y"
- { (yyval.number) = 0; }
- break;
-
- case 53:
-#line 141 "defparse.y"
- { (yyval.id) =(yyvsp[0].id); }
- break;
-
- case 54:
-#line 143 "defparse.y"
- {
- char *name = xmalloc (strlen ((yyvsp[-2].id)) + 1 + strlen ((yyvsp[0].id)) + 1);
- sprintf (name, "%s.%s", (yyvsp[-2].id), (yyvsp[0].id));
- (yyval.id) = name;
- }
- break;
-
- case 55:
-#line 148 "defparse.y"
- { (yyval.id)=""; }
- break;
-
- case 56:
-#line 152 "defparse.y"
- { (yyval.number)=(yyvsp[0].number);}
- break;
-
- case 57:
-#line 153 "defparse.y"
- { (yyval.number)=-1;}
- break;
-
- case 58:
-#line 157 "defparse.y"
- { (yyval.id) = (yyvsp[0].id); }
- break;
-
- case 59:
-#line 159 "defparse.y"
- {
- char *name = xmalloc (strlen ((yyvsp[-2].id)) + 1 + strlen ((yyvsp[0].id)) + 1);
- sprintf (name, "%s.%s", (yyvsp[-2].id), (yyvsp[0].id));
- (yyval.id) = name;
- }
- break;
-
- case 60:
-#line 164 "defparse.y"
- { (yyval.id) = 0; }
- break;
-
- case 61:
-#line 167 "defparse.y"
- { (yyval.number)= (yyvsp[0].number);}
- break;
-
- case 62:
-#line 168 "defparse.y"
- { (yyval.number)=-1;}
- break;
-
-
- default: break;
- }
-
-/* Line 1126 of yacc.c. */
-#line 1510 "defparse.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)
- {
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- char *yymsg = 0;
-# define YYERROR_VERBOSE_ARGS_MAXIMUM 5
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-#if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-#endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* 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 = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= yysize1 < yysize;
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
-
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= yysize1 < yysize;
- yysize = yysize1;
-
- if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
- yymsg = (char *) YYSTACK_ALLOC (yysize);
- if (yymsg)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yymsg;
- int yyi = 0;
- while ((*yyp = *yyf))
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- yyerror (yymsg);
- YYSTACK_FREE (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- goto yyexhaustedlab;
- }
- }
- else
-#endif /* YYERROR_VERBOSE */
- yyerror (YY_("syntax error"));
- }
-
-
-
- if (yyerrstatus == 3)
- {
- /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
- else
- {
- yydestruct ("Error: discarding", yytoken, &yylval);
- yychar = YYEMPTY;
- }
- }
-
- /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
-
- /* Pacify compilers like GCC when the user code never invokes
- YYERROR and the label yyerrorlab therefore never appears in user
- code. */
- if (0)
- goto yyerrorlab;
-
-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;
-
-
- yydestruct ("Error: popping", yystos[yystate], yyvsp);
- YYPOPSTACK;
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- *++yyvsp = yylval;
-
-
- /* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-#ifndef yyoverflow
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
-yyexhaustedlab:
- yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
-#endif
-
-yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
- while (yyssp != yyss)
- {
- yydestruct ("Cleanup: popping",
- yystos[*yyssp], yyvsp);
- YYPOPSTACK;
- }
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
-#endif
- return yyresult;
-}
-
-
-
diff --git a/binutils-2.17/binutils/defparse.h b/binutils-2.17/binutils/defparse.h
deleted file mode 100644
index 0eea9b9d..00000000
--- a/binutils-2.17/binutils/defparse.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.1. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, 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 {
- NAME = 258,
- LIBRARY = 259,
- DESCRIPTION = 260,
- STACKSIZE = 261,
- HEAPSIZE = 262,
- CODE = 263,
- DATA = 264,
- SECTIONS = 265,
- EXPORTS = 266,
- IMPORTS = 267,
- VERSIONK = 268,
- BASE = 269,
- CONSTANT = 270,
- READ = 271,
- WRITE = 272,
- EXECUTE = 273,
- SHARED = 274,
- NONSHARED = 275,
- NONAME = 276,
- PRIVATE = 277,
- SINGLE = 278,
- MULTIPLE = 279,
- INITINSTANCE = 280,
- INITGLOBAL = 281,
- TERMINSTANCE = 282,
- TERMGLOBAL = 283,
- ID = 284,
- NUMBER = 285
- };
-#endif
-/* Tokens. */
-#define NAME 258
-#define LIBRARY 259
-#define DESCRIPTION 260
-#define STACKSIZE 261
-#define HEAPSIZE 262
-#define CODE 263
-#define DATA 264
-#define SECTIONS 265
-#define EXPORTS 266
-#define IMPORTS 267
-#define VERSIONK 268
-#define BASE 269
-#define CONSTANT 270
-#define READ 271
-#define WRITE 272
-#define EXECUTE 273
-#define SHARED 274
-#define NONSHARED 275
-#define NONAME 276
-#define PRIVATE 277
-#define SINGLE 278
-#define MULTIPLE 279
-#define INITINSTANCE 280
-#define INITGLOBAL 281
-#define TERMINSTANCE 282
-#define TERMGLOBAL 283
-#define ID 284
-#define NUMBER 285
-
-
-
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 27 "defparse.y"
-typedef union YYSTYPE {
- char *id;
- int number;
-} YYSTYPE;
-/* Line 1447 of yacc.c. */
-#line 103 "defparse.h"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-extern YYSTYPE yylval;
-
-
-
diff --git a/binutils-2.17/binutils/defparse.y b/binutils-2.17/binutils/defparse.y
deleted file mode 100644
index 81b4c61c..00000000
--- a/binutils-2.17/binutils/defparse.y
+++ /dev/null
@@ -1,181 +0,0 @@
-%{ /* defparse.y - parser for .def files */
-
-/* Copyright 1995, 1997, 1998, 1999, 2001, 2004
- Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "dlltool.h"
-%}
-
-%union {
- char *id;
- int number;
-};
-
-%token NAME LIBRARY DESCRIPTION STACKSIZE HEAPSIZE CODE DATA
-%token SECTIONS EXPORTS IMPORTS VERSIONK BASE CONSTANT
-%token READ WRITE EXECUTE SHARED NONSHARED NONAME PRIVATE
-%token SINGLE MULTIPLE INITINSTANCE INITGLOBAL TERMINSTANCE TERMGLOBAL
-%token <id> ID
-%token <number> NUMBER
-%type <number> opt_base opt_ordinal opt_NONAME opt_CONSTANT opt_DATA opt_PRIVATE
-%type <number> attr attr_list opt_number
-%type <id> opt_name opt_equal_name
-
-%%
-
-start: start command
- | command
- ;
-
-command:
- NAME opt_name opt_base { def_name ($2, $3); }
- | LIBRARY opt_name opt_base option_list { def_library ($2, $3); }
- | EXPORTS explist
- | DESCRIPTION ID { def_description ($2);}
- | STACKSIZE NUMBER opt_number { def_stacksize ($2, $3);}
- | HEAPSIZE NUMBER opt_number { def_heapsize ($2, $3);}
- | CODE attr_list { def_code ($2);}
- | DATA attr_list { def_data ($2);}
- | SECTIONS seclist
- | IMPORTS implist
- | VERSIONK NUMBER { def_version ($2,0);}
- | VERSIONK NUMBER '.' NUMBER { def_version ($2,$4);}
- ;
-
-
-explist:
- /* EMPTY */
- | explist expline
- ;
-
-expline:
- ID opt_equal_name opt_ordinal opt_NONAME opt_CONSTANT opt_DATA opt_PRIVATE
- { def_exports ($1, $2, $3, $4, $5, $6, $7);}
- ;
-implist:
- implist impline
- | impline
- ;
-
-impline:
- ID '=' ID '.' ID '.' ID { def_import ($1,$3,$5,$7, 0); }
- | ID '=' ID '.' ID '.' NUMBER { def_import ($1,$3,$5, 0,$7); }
- | ID '=' ID '.' ID { def_import ($1,$3, 0,$5, 0); }
- | ID '=' ID '.' NUMBER { def_import ($1,$3, 0, 0,$5); }
- | ID '.' ID '.' ID { def_import ( 0,$1,$3,$5, 0); }
- | ID '.' ID '.' NUMBER { def_import ( 0,$1,$3, 0,$5); }
- | ID '.' ID { def_import ( 0,$1, 0,$3, 0); }
- | ID '.' NUMBER { def_import ( 0,$1, 0, 0,$3); }
-;
-
-seclist:
- seclist secline
- | secline
- ;
-
-secline:
- ID attr_list { def_section ($1,$2);}
- ;
-
-attr_list:
- attr_list opt_comma attr
- | attr
- ;
-
-opt_comma:
- ','
- |
- ;
-opt_number: ',' NUMBER { $$=$2;}
- | { $$=-1;}
- ;
-
-attr:
- READ { $$ = 1; }
- | WRITE { $$ = 2; }
- | EXECUTE { $$ = 4; }
- | SHARED { $$ = 8; }
- | NONSHARED { $$ = 0; }
- | SINGLE { $$ = 0; }
- | MULTIPLE { $$ = 0; }
- ;
-
-opt_CONSTANT:
- CONSTANT {$$=1;}
- | {$$=0;}
- ;
-
-opt_NONAME:
- NONAME {$$=1;}
- | {$$=0;}
- ;
-
-opt_DATA:
- DATA { $$ = 1; }
- | { $$ = 0; }
- ;
-
-opt_PRIVATE:
- PRIVATE { $$ = 1; }
- | { $$ = 0; }
- ;
-
-opt_name: ID { $$ =$1; }
- | ID '.' ID
- {
- char *name = xmalloc (strlen ($1) + 1 + strlen ($3) + 1);
- sprintf (name, "%s.%s", $1, $3);
- $$ = name;
- }
- | { $$=""; }
- ;
-
-opt_ordinal:
- '@' NUMBER { $$=$2;}
- | { $$=-1;}
- ;
-
-opt_equal_name:
- '=' ID { $$ = $2; }
- | '=' ID '.' ID
- {
- char *name = xmalloc (strlen ($2) + 1 + strlen ($4) + 1);
- sprintf (name, "%s.%s", $2, $4);
- $$ = name;
- }
- | { $$ = 0; }
- ;
-
-opt_base: BASE '=' NUMBER { $$= $3;}
- | { $$=-1;}
- ;
-
-option_list:
- /* empty */
- | option_list opt_comma option
- ;
-
-option:
- INITINSTANCE
- | INITGLOBAL
- | TERMINSTANCE
- | TERMGLOBAL
- ;
diff --git a/binutils-2.17/binutils/dep-in.sed b/binutils-2.17/binutils/dep-in.sed
deleted file mode 100644
index c30c3969..00000000
--- a/binutils-2.17/binutils/dep-in.sed
+++ /dev/null
@@ -1,21 +0,0 @@
-:loop
-/\\$/N
-/\\$/b loop
-
-s! \./! !g
-s!@INCDIR@!$(INCDIR)!g
-s!@TOPDIR@/include!$(INCDIR)!g
-s!@BFDDIR@!$(BFDDIR)!g
-s!@TOPDIR@/bfd!$(BFDDIR)!g
-s!@SRCDIR@/!!g
-s!@OBJDIR@/!!g
-s! \.\./intl/libintl\.h!!g
-
-s/\\\n */ /g
-
-s/ *$//
-s/ */ /g
-/:$/d
-
-s/\(.\{50\}[^ ]*\) /\1 \\\
- /g
diff --git a/binutils-2.17/binutils/dlltool.c b/binutils-2.17/binutils/dlltool.c
deleted file mode 100644
index 6c231f69..00000000
--- a/binutils-2.17/binutils/dlltool.c
+++ /dev/null
@@ -1,3575 +0,0 @@
-/* dlltool.c -- tool to generate stuff for PE style DLLs
- Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006 Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-
-/* This program allows you to build the files necessary to create
- DLLs to run on a system which understands PE format image files.
- (eg, Windows NT)
-
- See "Peering Inside the PE: A Tour of the Win32 Portable Executable
- File Format", MSJ 1994, Volume 9 for more information.
- Also see "Microsoft Portable Executable and Common Object File Format,
- Specification 4.1" for more information.
-
- A DLL contains an export table which contains the information
- which the runtime loader needs to tie up references from a
- referencing program.
-
- The export table is generated by this program by reading
- in a .DEF file or scanning the .a and .o files which will be in the
- DLL. A .o file can contain information in special ".drectve" sections
- with export information.
-
- A DEF file contains any number of the following commands:
-
-
- NAME <name> [ , <base> ]
- The result is going to be <name>.EXE
-
- LIBRARY <name> [ , <base> ]
- The result is going to be <name>.DLL
-
- EXPORTS ( ( ( <name1> [ = <name2> ] )
- | ( <name1> = <module-name> . <external-name>))
- [ @ <integer> ] [ NONAME ] [CONSTANT] [DATA] [PRIVATE] ) *
- Declares name1 as an exported symbol from the
- DLL, with optional ordinal number <integer>.
- Or declares name1 as an alias (forward) of the function <external-name>
- in the DLL <module-name>.
-
- IMPORTS ( ( <internal-name> = <module-name> . <integer> )
- | ( [ <internal-name> = ] <module-name> . <external-name> )) *
- Declares that <external-name> or the exported function whose ordinal number
- is <integer> is to be imported from the file <module-name>. If
- <internal-name> is specified then this is the name that the imported
- function will be refereed to in the body of the DLL.
-
- DESCRIPTION <string>
- Puts <string> into output .exp file in the .rdata section
-
- [STACKSIZE|HEAPSIZE] <number-reserve> [ , <number-commit> ]
- Generates --stack|--heap <number-reserve>,<number-commit>
- in the output .drectve section. The linker will
- see this and act upon it.
-
- [CODE|DATA] <attr>+
- SECTIONS ( <sectionname> <attr>+ )*
- <attr> = READ | WRITE | EXECUTE | SHARED
- Generates --attr <sectionname> <attr> in the output
- .drectve section. The linker will see this and act
- upon it.
-
-
- A -export:<name> in a .drectve section in an input .o or .a
- file to this program is equivalent to a EXPORTS <name>
- in a .DEF file.
-
-
-
- The program generates output files with the prefix supplied
- on the command line, or in the def file, or taken from the first
- supplied argument.
-
- The .exp.s file contains the information necessary to export
- the routines in the DLL. The .lib.s file contains the information
- necessary to use the DLL's routines from a referencing program.
-
-
-
- Example:
-
- file1.c:
- asm (".section .drectve");
- asm (".ascii \"-export:adef\"");
-
- void adef (char * s)
- {
- printf ("hello from the dll %s\n", s);
- }
-
- void bdef (char * s)
- {
- printf ("hello from the dll and the other entry point %s\n", s);
- }
-
- file2.c:
- asm (".section .drectve");
- asm (".ascii \"-export:cdef\"");
- asm (".ascii \"-export:ddef\"");
-
- void cdef (char * s)
- {
- printf ("hello from the dll %s\n", s);
- }
-
- void ddef (char * s)
- {
- printf ("hello from the dll and the other entry point %s\n", s);
- }
-
- int printf (void)
- {
- return 9;
- }
-
- themain.c:
- int main (void)
- {
- cdef ();
- return 0;
- }
-
- thedll.def
-
- LIBRARY thedll
- HEAPSIZE 0x40000, 0x2000
- EXPORTS bdef @ 20
- cdef @ 30 NONAME
-
- SECTIONS donkey READ WRITE
- aardvark EXECUTE
-
- # Compile up the parts of the dll and the program
-
- gcc -c file1.c file2.c themain.c
-
- # Optional: put the dll objects into a library
- # (you don't have to, you could name all the object
- # files on the dlltool line)
-
- ar qcv thedll.in file1.o file2.o
- ranlib thedll.in
-
- # Run this tool over the DLL's .def file and generate an exports
- # file (thedll.o) and an imports file (thedll.a).
- # (You may have to use -S to tell dlltool where to find the assembler).
-
- dlltool --def thedll.def --output-exp thedll.o --output-lib thedll.a
-
- # Build the dll with the library and the export table
-
- ld -o thedll.dll thedll.o thedll.in
-
- # Link the executable with the import library
-
- gcc -o themain.exe themain.o thedll.a
-
- This example can be extended if relocations are needed in the DLL:
-
- # Compile up the parts of the dll and the program
-
- gcc -c file1.c file2.c themain.c
-
- # Run this tool over the DLL's .def file and generate an imports file.
-
- dlltool --def thedll.def --output-lib thedll.lib
-
- # Link the executable with the import library and generate a base file
- # at the same time
-
- gcc -o themain.exe themain.o thedll.lib -Wl,--base-file -Wl,themain.base
-
- # Run this tool over the DLL's .def file and generate an exports file
- # which includes the relocations from the base file.
-
- dlltool --def thedll.def --base-file themain.base --output-exp thedll.exp
-
- # Build the dll with file1.o, file2.o and the export table
-
- ld -o thedll.dll thedll.exp file1.o file2.o */
-
-/* .idata section description
-
- The .idata section is the import table. It is a collection of several
- subsections used to keep the pieces for each dll together: .idata$[234567].
- IE: Each dll's .idata$2's are catenated together, each .idata$3's, etc.
-
- .idata$2 = Import Directory Table
- = array of IMAGE_IMPORT_DESCRIPTOR's.
-
- DWORD Import Lookup Table; - pointer to .idata$4
- DWORD TimeDateStamp; - currently always 0
- DWORD ForwarderChain; - currently always 0
- DWORD Name; - pointer to dll's name
- PIMAGE_THUNK_DATA FirstThunk; - pointer to .idata$5
-
- .idata$3 = null terminating entry for .idata$2.
-
- .idata$4 = Import Lookup Table
- = array of array of pointers to hint name table.
- There is one for each dll being imported from, and each dll's set is
- terminated by a trailing NULL.
-
- .idata$5 = Import Address Table
- = array of array of pointers to hint name table.
- There is one for each dll being imported from, and each dll's set is
- terminated by a trailing NULL.
- Initially, this table is identical to the Import Lookup Table. However,
- at load time, the loader overwrites the entries with the address of the
- function.
-
- .idata$6 = Hint Name Table
- = Array of { short, asciz } entries, one for each imported function.
- The `short' is the function's ordinal number.
-
- .idata$7 = dll name (eg: "kernel32.dll"). (.idata$6 for ppc). */
-
-/* AIX requires this to be the first thing in the file. */
-#ifndef __GNUC__
-# ifdef _AIX
- #pragma alloca
-#endif
-#endif
-
-#define show_allnames 0
-
-#define PAGE_SIZE 4096
-#define PAGE_MASK (-PAGE_SIZE)
-#include "bfd.h"
-#include "libiberty.h"
-#include "bucomm.h"
-#include "getopt.h"
-#include "demangle.h"
-#include "dyn-string.h"
-#include "dlltool.h"
-#include "safe-ctype.h"
-
-#include <time.h>
-#include <sys/stat.h>
-#include <stdarg.h>
-#include <assert.h>
-
-#ifdef DLLTOOL_ARM
-#include "coff/arm.h"
-#include "coff/internal.h"
-#endif
-
-/* Forward references. */
-static char *look_for_prog (const char *, const char *, int);
-static char *deduce_name (const char *);
-
-#ifdef DLLTOOL_MCORE_ELF
-static void mcore_elf_cache_filename (char *);
-static void mcore_elf_gen_out_file (void);
-#endif
-
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#else /* ! HAVE_SYS_WAIT_H */
-#if ! defined (_WIN32) || defined (__CYGWIN32__)
-#ifndef WIFEXITED
-#define WIFEXITED(w) (((w) & 0377) == 0)
-#endif
-#ifndef WIFSIGNALED
-#define WIFSIGNALED(w) (((w) & 0377) != 0177 && ((w) & ~0377) == 0)
-#endif
-#ifndef WTERMSIG
-#define WTERMSIG(w) ((w) & 0177)
-#endif
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(w) (((w) >> 8) & 0377)
-#endif
-#else /* defined (_WIN32) && ! defined (__CYGWIN32__) */
-#ifndef WIFEXITED
-#define WIFEXITED(w) (((w) & 0xff) == 0)
-#endif
-#ifndef WIFSIGNALED
-#define WIFSIGNALED(w) (((w) & 0xff) != 0 && ((w) & 0xff) != 0x7f)
-#endif
-#ifndef WTERMSIG
-#define WTERMSIG(w) ((w) & 0x7f)
-#endif
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(w) (((w) & 0xff00) >> 8)
-#endif
-#endif /* defined (_WIN32) && ! defined (__CYGWIN32__) */
-#endif /* ! HAVE_SYS_WAIT_H */
-
-/* ifunc and ihead data structures: ttk@cygnus.com 1997
-
- When IMPORT declarations are encountered in a .def file the
- function import information is stored in a structure referenced by
- the global variable IMPORT_LIST. The structure is a linked list
- containing the names of the dll files each function is imported
- from and a linked list of functions being imported from that dll
- file. This roughly parallels the structure of the .idata section
- in the PE object file.
-
- The contents of .def file are interpreted from within the
- process_def_file function. Every time an IMPORT declaration is
- encountered, it is broken up into its component parts and passed to
- def_import. IMPORT_LIST is initialized to NULL in function main. */
-
-typedef struct ifunct
-{
- char * name; /* Name of function being imported. */
- int ord; /* Two-byte ordinal value associated with function. */
- struct ifunct *next;
-} ifunctype;
-
-typedef struct iheadt
-{
- char *dllname; /* Name of dll file imported from. */
- long nfuncs; /* Number of functions in list. */
- struct ifunct *funchead; /* First function in list. */
- struct ifunct *functail; /* Last function in list. */
- struct iheadt *next; /* Next dll file in list. */
-} iheadtype;
-
-/* Structure containing all import information as defined in .def file
- (qv "ihead structure"). */
-
-static iheadtype *import_list = NULL;
-
-static char *as_name = NULL;
-static char * as_flags = "";
-
-static char *tmp_prefix;
-
-static int no_idata4;
-static int no_idata5;
-static char *exp_name;
-static char *imp_name;
-static char *head_label;
-static char *imp_name_lab;
-static char *dll_name;
-
-static int add_indirect = 0;
-static int add_underscore = 0;
-static int add_stdcall_underscore = 0;
-static int dontdeltemps = 0;
-
-/* TRUE if we should export all symbols. Otherwise, we only export
- symbols listed in .drectve sections or in the def file. */
-static bfd_boolean export_all_symbols;
-
-/* TRUE if we should exclude the symbols in DEFAULT_EXCLUDES when
- exporting all symbols. */
-static bfd_boolean do_default_excludes = TRUE;
-
-/* Default symbols to exclude when exporting all the symbols. */
-static const char *default_excludes = "DllMain@12,DllEntryPoint@0,impure_ptr";
-
-/* TRUE if we should add __imp_<SYMBOL> to import libraries for backward
- compatibility to old Cygwin releases. */
-static bfd_boolean create_compat_implib;
-
-static char *def_file;
-
-extern char * program_name;
-
-static int machine;
-static int killat;
-static int add_stdcall_alias;
-static const char *ext_prefix_alias;
-static int verbose;
-static FILE *output_def;
-static FILE *base_file;
-
-#ifdef DLLTOOL_ARM
-#ifdef DLLTOOL_ARM_EPOC
-static const char *mname = "arm-epoc";
-#else
-static const char *mname = "arm";
-#endif
-#endif
-
-#ifdef DLLTOOL_I386
-static const char *mname = "i386";
-#endif
-
-#ifdef DLLTOOL_PPC
-static const char *mname = "ppc";
-#endif
-
-#ifdef DLLTOOL_SH
-static const char *mname = "sh";
-#endif
-
-#ifdef DLLTOOL_MIPS
-static const char *mname = "mips";
-#endif
-
-#ifdef DLLTOOL_MCORE
-static const char * mname = "mcore-le";
-#endif
-
-#ifdef DLLTOOL_MCORE_ELF
-static const char * mname = "mcore-elf";
-static char * mcore_elf_out_file = NULL;
-static char * mcore_elf_linker = NULL;
-static char * mcore_elf_linker_flags = NULL;
-
-#define DRECTVE_SECTION_NAME ((machine == MMCORE_ELF || machine == MMCORE_ELF_LE) ? ".exports" : ".drectve")
-#endif
-
-#ifndef DRECTVE_SECTION_NAME
-#define DRECTVE_SECTION_NAME ".drectve"
-#endif
-
-/* What's the right name for this ? */
-#define PATHMAX 250
-
-/* External name alias numbering starts here. */
-#define PREFIX_ALIAS_BASE 20000
-
-char *tmp_asm_buf;
-char *tmp_head_s_buf;
-char *tmp_head_o_buf;
-char *tmp_tail_s_buf;
-char *tmp_tail_o_buf;
-char *tmp_stub_buf;
-
-#define TMP_ASM dlltmp (&tmp_asm_buf, "%sc.s")
-#define TMP_HEAD_S dlltmp (&tmp_head_s_buf, "%sh.s")
-#define TMP_HEAD_O dlltmp (&tmp_head_o_buf, "%sh.o")
-#define TMP_TAIL_S dlltmp (&tmp_tail_s_buf, "%st.s")
-#define TMP_TAIL_O dlltmp (&tmp_tail_o_buf, "%st.o")
-#define TMP_STUB dlltmp (&tmp_stub_buf, "%ss")
-
-/* This bit of assembly does jmp * .... */
-static const unsigned char i386_jtab[] =
-{
- 0xff, 0x25, 0x00, 0x00, 0x00, 0x00, 0x90, 0x90
-};
-
-static const unsigned char arm_jtab[] =
-{
- 0x00, 0xc0, 0x9f, 0xe5, /* ldr ip, [pc] */
- 0x00, 0xf0, 0x9c, 0xe5, /* ldr pc, [ip] */
- 0, 0, 0, 0
-};
-
-static const unsigned char arm_interwork_jtab[] =
-{
- 0x04, 0xc0, 0x9f, 0xe5, /* ldr ip, [pc] */
- 0x00, 0xc0, 0x9c, 0xe5, /* ldr ip, [ip] */
- 0x1c, 0xff, 0x2f, 0xe1, /* bx ip */
- 0, 0, 0, 0
-};
-
-static const unsigned char thumb_jtab[] =
-{
- 0x40, 0xb4, /* push {r6} */
- 0x02, 0x4e, /* ldr r6, [pc, #8] */
- 0x36, 0x68, /* ldr r6, [r6] */
- 0xb4, 0x46, /* mov ip, r6 */
- 0x40, 0xbc, /* pop {r6} */
- 0x60, 0x47, /* bx ip */
- 0, 0, 0, 0
-};
-
-static const unsigned char mcore_be_jtab[] =
-{
- 0x71, 0x02, /* lrw r1,2 */
- 0x81, 0x01, /* ld.w r1,(r1,0) */
- 0x00, 0xC1, /* jmp r1 */
- 0x12, 0x00, /* nop */
- 0x00, 0x00, 0x00, 0x00 /* <address> */
-};
-
-static const unsigned char mcore_le_jtab[] =
-{
- 0x02, 0x71, /* lrw r1,2 */
- 0x01, 0x81, /* ld.w r1,(r1,0) */
- 0xC1, 0x00, /* jmp r1 */
- 0x00, 0x12, /* nop */
- 0x00, 0x00, 0x00, 0x00 /* <address> */
-};
-
-/* This is the glue sequence for PowerPC PE. There is a
- tocrel16-tocdefn reloc against the first instruction.
- We also need a IMGLUE reloc against the glue function
- to restore the toc saved by the third instruction in
- the glue. */
-static const unsigned char ppc_jtab[] =
-{
- 0x00, 0x00, 0x62, 0x81, /* lwz r11,0(r2) */
- /* Reloc TOCREL16 __imp_xxx */
- 0x00, 0x00, 0x8B, 0x81, /* lwz r12,0(r11) */
- 0x04, 0x00, 0x41, 0x90, /* stw r2,4(r1) */
- 0xA6, 0x03, 0x89, 0x7D, /* mtctr r12 */
- 0x04, 0x00, 0x4B, 0x80, /* lwz r2,4(r11) */
- 0x20, 0x04, 0x80, 0x4E /* bctr */
-};
-
-#ifdef DLLTOOL_PPC
-/* The glue instruction, picks up the toc from the stw in
- the above code: "lwz r2,4(r1)". */
-static bfd_vma ppc_glue_insn = 0x80410004;
-#endif
-
-struct mac
- {
- const char *type;
- const char *how_byte;
- const char *how_short;
- const char *how_long;
- const char *how_asciz;
- const char *how_comment;
- const char *how_jump;
- const char *how_global;
- const char *how_space;
- const char *how_align_short;
- const char *how_align_long;
- const char *how_default_as_switches;
- const char *how_bfd_target;
- enum bfd_architecture how_bfd_arch;
- const unsigned char *how_jtab;
- int how_jtab_size; /* Size of the jtab entry. */
- int how_jtab_roff; /* Offset into it for the ind 32 reloc into idata 5. */
- };
-
-static const struct mac
-mtable[] =
-{
- {
-#define MARM 0
- "arm", ".byte", ".short", ".long", ".asciz", "@",
- "ldr\tip,[pc]\n\tldr\tpc,[ip]\n\t.long",
- ".global", ".space", ".align\t2",".align\t4", "-mapcs-32",
- "pe-arm-little", bfd_arch_arm,
- arm_jtab, sizeof (arm_jtab), 8
- }
- ,
- {
-#define M386 1
- "i386", ".byte", ".short", ".long", ".asciz", "#",
- "jmp *", ".global", ".space", ".align\t2",".align\t4", "",
- "pe-i386",bfd_arch_i386,
- i386_jtab, sizeof (i386_jtab), 2
- }
- ,
- {
-#define MPPC 2
- "ppc", ".byte", ".short", ".long", ".asciz", "#",
- "jmp *", ".global", ".space", ".align\t2",".align\t4", "",
- "pe-powerpcle",bfd_arch_powerpc,
- ppc_jtab, sizeof (ppc_jtab), 0
- }
- ,
- {
-#define MTHUMB 3
- "thumb", ".byte", ".short", ".long", ".asciz", "@",
- "push\t{r6}\n\tldr\tr6, [pc, #8]\n\tldr\tr6, [r6]\n\tmov\tip, r6\n\tpop\t{r6}\n\tbx\tip",
- ".global", ".space", ".align\t2",".align\t4", "-mthumb-interwork",
- "pe-arm-little", bfd_arch_arm,
- thumb_jtab, sizeof (thumb_jtab), 12
- }
- ,
-#define MARM_INTERWORK 4
- {
- "arm_interwork", ".byte", ".short", ".long", ".asciz", "@",
- "ldr\tip,[pc]\n\tldr\tip,[ip]\n\tbx\tip\n\t.long",
- ".global", ".space", ".align\t2",".align\t4", "-mthumb-interwork",
- "pe-arm-little", bfd_arch_arm,
- arm_interwork_jtab, sizeof (arm_interwork_jtab), 12
- }
- ,
- {
-#define MMCORE_BE 5
- "mcore-be", ".byte", ".short", ".long", ".asciz", "//",
- "lrw r1,[1f]\n\tld.w r1,(r1,0)\n\tjmp r1\n\tnop\n1:.long",
- ".global", ".space", ".align\t2",".align\t4", "",
- "pe-mcore-big", bfd_arch_mcore,
- mcore_be_jtab, sizeof (mcore_be_jtab), 8
- }
- ,
- {
-#define MMCORE_LE 6
- "mcore-le", ".byte", ".short", ".long", ".asciz", "//",
- "lrw r1,[1f]\n\tld.w r1,(r1,0)\n\tjmp r1\n\tnop\n1:.long",
- ".global", ".space", ".align\t2",".align\t4", "-EL",
- "pe-mcore-little", bfd_arch_mcore,
- mcore_le_jtab, sizeof (mcore_le_jtab), 8
- }
- ,
- {
-#define MMCORE_ELF 7
- "mcore-elf-be", ".byte", ".short", ".long", ".asciz", "//",
- "lrw r1,[1f]\n\tld.w r1,(r1,0)\n\tjmp r1\n\tnop\n1:.long",
- ".global", ".space", ".align\t2",".align\t4", "",
- "elf32-mcore-big", bfd_arch_mcore,
- mcore_be_jtab, sizeof (mcore_be_jtab), 8
- }
- ,
- {
-#define MMCORE_ELF_LE 8
- "mcore-elf-le", ".byte", ".short", ".long", ".asciz", "//",
- "lrw r1,[1f]\n\tld.w r1,(r1,0)\n\tjmp r1\n\tnop\n1:.long",
- ".global", ".space", ".align\t2",".align\t4", "-EL",
- "elf32-mcore-little", bfd_arch_mcore,
- mcore_le_jtab, sizeof (mcore_le_jtab), 8
- }
- ,
- {
-#define MARM_EPOC 9
- "arm-epoc", ".byte", ".short", ".long", ".asciz", "@",
- "ldr\tip,[pc]\n\tldr\tpc,[ip]\n\t.long",
- ".global", ".space", ".align\t2",".align\t4", "",
- "epoc-pe-arm-little", bfd_arch_arm,
- arm_jtab, sizeof (arm_jtab), 8
- }
- ,
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
-};
-
-typedef struct dlist
-{
- char *text;
- struct dlist *next;
-}
-dlist_type;
-
-typedef struct export
- {
- const char *name;
- const char *internal_name;
- const char *import_name;
- int ordinal;
- int constant;
- int noname; /* Don't put name in image file. */
- int private; /* Don't put reference in import lib. */
- int data;
- int hint;
- int forward; /* Number of forward label, 0 means no forward. */
- struct export *next;
- }
-export_type;
-
-/* A list of symbols which we should not export. */
-
-struct string_list
-{
- struct string_list *next;
- char *string;
-};
-
-static struct string_list *excludes;
-
-static const char *rvaafter (int);
-static const char *rvabefore (int);
-static const char *asm_prefix (int, const char *);
-static void process_def_file (const char *);
-static void new_directive (char *);
-static void append_import (const char *, const char *, int);
-static void run (const char *, char *);
-static void scan_drectve_symbols (bfd *);
-static void scan_filtered_symbols (bfd *, void *, long, unsigned int);
-static void add_excludes (const char *);
-static bfd_boolean match_exclude (const char *);
-static void set_default_excludes (void);
-static long filter_symbols (bfd *, void *, long, unsigned int);
-static void scan_all_symbols (bfd *);
-static void scan_open_obj_file (bfd *);
-static void scan_obj_file (const char *);
-static void dump_def_info (FILE *);
-static int sfunc (const void *, const void *);
-static void flush_page (FILE *, long *, int, int);
-static void gen_def_file (void);
-static void generate_idata_ofile (FILE *);
-static void assemble_file (const char *, const char *);
-static void gen_exp_file (void);
-static const char *xlate (const char *);
-static char *make_label (const char *, const char *);
-static char *make_imp_label (const char *, const char *);
-static bfd *make_one_lib_file (export_type *, int);
-static bfd *make_head (void);
-static bfd *make_tail (void);
-static void gen_lib_file (void);
-static int pfunc (const void *, const void *);
-static int nfunc (const void *, const void *);
-static void remove_null_names (export_type **);
-static void process_duplicates (export_type **);
-static void fill_ordinals (export_type **);
-static void mangle_defs (void);
-static void usage (FILE *, int);
-static void inform (const char *, ...) ATTRIBUTE_PRINTF_1;
-static void set_dll_name_from_def (const char *);
-
-static char *
-prefix_encode (char *start, unsigned code)
-{
- static char alpha[26] = "abcdefghijklmnopqrstuvwxyz";
- static char buf[32];
- char *p;
- strcpy (buf, start);
- p = strchr (buf, '\0');
- do
- *p++ = alpha[code % sizeof (alpha)];
- while ((code /= sizeof (alpha)) != 0);
- *p = '\0';
- return buf;
-}
-
-static char *
-dlltmp (char **buf, const char *fmt)
-{
- if (!*buf)
- {
- *buf = malloc (strlen (tmp_prefix) + 64);
- sprintf (*buf, fmt, tmp_prefix);
- }
- return *buf;
-}
-
-static void
-inform VPARAMS ((const char * message, ...))
-{
- VA_OPEN (args, message);
- VA_FIXEDARG (args, const char *, message);
-
- if (!verbose)
- return;
-
- report (message, args);
-
- VA_CLOSE (args);
-}
-
-static const char *
-rvaafter (int machine)
-{
- switch (machine)
- {
- case MARM:
- case M386:
- case MPPC:
- case MTHUMB:
- case MARM_INTERWORK:
- case MMCORE_BE:
- case MMCORE_LE:
- case MMCORE_ELF:
- case MMCORE_ELF_LE:
- case MARM_EPOC:
- break;
- default:
- /* xgettext:c-format */
- fatal (_("Internal error: Unknown machine type: %d"), machine);
- break;
- }
- return "";
-}
-
-static const char *
-rvabefore (int machine)
-{
- switch (machine)
- {
- case MARM:
- case M386:
- case MPPC:
- case MTHUMB:
- case MARM_INTERWORK:
- case MMCORE_BE:
- case MMCORE_LE:
- case MMCORE_ELF:
- case MMCORE_ELF_LE:
- case MARM_EPOC:
- return ".rva\t";
- default:
- /* xgettext:c-format */
- fatal (_("Internal error: Unknown machine type: %d"), machine);
- break;
- }
- return "";
-}
-
-static const char *
-asm_prefix (int machine, const char *name)
-{
- switch (machine)
- {
- case MARM:
- case MPPC:
- case MTHUMB:
- case MARM_INTERWORK:
- case MMCORE_BE:
- case MMCORE_LE:
- case MMCORE_ELF:
- case MMCORE_ELF_LE:
- case MARM_EPOC:
- break;
- case M386:
- /* Symbol names starting with ? do not have a leading underscore. */
- if (name && *name == '?')
- break;
- else
- return "_";
- default:
- /* xgettext:c-format */
- fatal (_("Internal error: Unknown machine type: %d"), machine);
- break;
- }
- return "";
-}
-
-#define ASM_BYTE mtable[machine].how_byte
-#define ASM_SHORT mtable[machine].how_short
-#define ASM_LONG mtable[machine].how_long
-#define ASM_TEXT mtable[machine].how_asciz
-#define ASM_C mtable[machine].how_comment
-#define ASM_JUMP mtable[machine].how_jump
-#define ASM_GLOBAL mtable[machine].how_global
-#define ASM_SPACE mtable[machine].how_space
-#define ASM_ALIGN_SHORT mtable[machine].how_align_short
-#define ASM_RVA_BEFORE rvabefore (machine)
-#define ASM_RVA_AFTER rvaafter (machine)
-#define ASM_PREFIX(NAME) asm_prefix (machine, (NAME))
-#define ASM_ALIGN_LONG mtable[machine].how_align_long
-#define HOW_BFD_READ_TARGET 0 /* Always default. */
-#define HOW_BFD_WRITE_TARGET mtable[machine].how_bfd_target
-#define HOW_BFD_ARCH mtable[machine].how_bfd_arch
-#define HOW_JTAB mtable[machine].how_jtab
-#define HOW_JTAB_SIZE mtable[machine].how_jtab_size
-#define HOW_JTAB_ROFF mtable[machine].how_jtab_roff
-#define ASM_SWITCHES mtable[machine].how_default_as_switches
-
-static char **oav;
-
-static void
-process_def_file (const char *name)
-{
- FILE *f = fopen (name, FOPEN_RT);
-
- if (!f)
- /* xgettext:c-format */
- fatal (_("Can't open def file: %s"), name);
-
- yyin = f;
-
- /* xgettext:c-format */
- inform (_("Processing def file: %s"), name);
-
- yyparse ();
-
- inform (_("Processed def file"));
-}
-
-/**********************************************************************/
-
-/* Communications with the parser. */
-
-static int d_nfuncs; /* Number of functions exported. */
-static int d_named_nfuncs; /* Number of named functions exported. */
-static int d_low_ord; /* Lowest ordinal index. */
-static int d_high_ord; /* Highest ordinal index. */
-static export_type *d_exports; /* List of exported functions. */
-static export_type **d_exports_lexically; /* Vector of exported functions in alpha order. */
-static dlist_type *d_list; /* Descriptions. */
-static dlist_type *a_list; /* Stuff to go in directives. */
-static int d_nforwards = 0; /* Number of forwarded exports. */
-
-static int d_is_dll;
-static int d_is_exe;
-
-int
-yyerror (const char * err ATTRIBUTE_UNUSED)
-{
- /* xgettext:c-format */
- non_fatal (_("Syntax error in def file %s:%d"), def_file, linenumber);
-
- return 0;
-}
-
-void
-def_exports (const char *name, const char *internal_name, int ordinal,
- int noname, int constant, int data, int private)
-{
- struct export *p = (struct export *) xmalloc (sizeof (*p));
-
- p->name = name;
- p->internal_name = internal_name ? internal_name : name;
- p->import_name = name;
- p->ordinal = ordinal;
- p->constant = constant;
- p->noname = noname;
- p->private = private;
- p->data = data;
- p->next = d_exports;
- d_exports = p;
- d_nfuncs++;
-
- if ((internal_name != NULL)
- && (strchr (internal_name, '.') != NULL))
- p->forward = ++d_nforwards;
- else
- p->forward = 0; /* no forward */
-}
-
-static void
-set_dll_name_from_def (const char * name)
-{
- const char* image_basename = lbasename (name);
- if (image_basename != name)
- non_fatal (_("%s: Path components stripped from image name, '%s'."),
- def_file, name);
- dll_name = xstrdup (image_basename);
-}
-
-void
-def_name (const char *name, int base)
-{
- /* xgettext:c-format */
- inform (_("NAME: %s base: %x"), name, base);
-
- if (d_is_dll)
- non_fatal (_("Can't have LIBRARY and NAME"));
-
- /* If --dllname not provided, use the one in the DEF file.
- FIXME: Is this appropriate for executables? */
- if (! dll_name)
- set_dll_name_from_def (name);
- d_is_exe = 1;
-}
-
-void
-def_library (const char *name, int base)
-{
- /* xgettext:c-format */
- inform (_("LIBRARY: %s base: %x"), name, base);
-
- if (d_is_exe)
- non_fatal (_("Can't have LIBRARY and NAME"));
-
- /* If --dllname not provided, use the one in the DEF file. */
- if (! dll_name)
- set_dll_name_from_def (name);
- d_is_dll = 1;
-}
-
-void
-def_description (const char *desc)
-{
- dlist_type *d = (dlist_type *) xmalloc (sizeof (dlist_type));
- d->text = xstrdup (desc);
- d->next = d_list;
- d_list = d;
-}
-
-static void
-new_directive (char *dir)
-{
- dlist_type *d = (dlist_type *) xmalloc (sizeof (dlist_type));
- d->text = xstrdup (dir);
- d->next = a_list;
- a_list = d;
-}
-
-void
-def_heapsize (int reserve, int commit)
-{
- char b[200];
- if (commit > 0)
- sprintf (b, "-heap 0x%x,0x%x ", reserve, commit);
- else
- sprintf (b, "-heap 0x%x ", reserve);
- new_directive (xstrdup (b));
-}
-
-void
-def_stacksize (int reserve, int commit)
-{
- char b[200];
- if (commit > 0)
- sprintf (b, "-stack 0x%x,0x%x ", reserve, commit);
- else
- sprintf (b, "-stack 0x%x ", reserve);
- new_directive (xstrdup (b));
-}
-
-/* append_import simply adds the given import definition to the global
- import_list. It is used by def_import. */
-
-static void
-append_import (const char *symbol_name, const char *dll_name, int func_ordinal)
-{
- iheadtype **pq;
- iheadtype *q;
-
- for (pq = &import_list; *pq != NULL; pq = &(*pq)->next)
- {
- if (strcmp ((*pq)->dllname, dll_name) == 0)
- {
- q = *pq;
- q->functail->next = xmalloc (sizeof (ifunctype));
- q->functail = q->functail->next;
- q->functail->ord = func_ordinal;
- q->functail->name = xstrdup (symbol_name);
- q->functail->next = NULL;
- q->nfuncs++;
- return;
- }
- }
-
- q = xmalloc (sizeof (iheadtype));
- q->dllname = xstrdup (dll_name);
- q->nfuncs = 1;
- q->funchead = xmalloc (sizeof (ifunctype));
- q->functail = q->funchead;
- q->next = NULL;
- q->functail->name = xstrdup (symbol_name);
- q->functail->ord = func_ordinal;
- q->functail->next = NULL;
-
- *pq = q;
-}
-
-/* def_import is called from within defparse.y when an IMPORT
- declaration is encountered. Depending on the form of the
- declaration, the module name may or may not need ".dll" to be
- appended to it, the name of the function may be stored in internal
- or entry, and there may or may not be an ordinal value associated
- with it. */
-
-/* A note regarding the parse modes:
- In defparse.y we have to accept import declarations which follow
- any one of the following forms:
- <func_name_in_app> = <dll_name>.<func_name_in_dll>
- <func_name_in_app> = <dll_name>.<number>
- <dll_name>.<func_name_in_dll>
- <dll_name>.<number>
- Furthermore, the dll's name may or may not end with ".dll", which
- complicates the parsing a little. Normally the dll's name is
- passed to def_import() in the "module" parameter, but when it ends
- with ".dll" it gets passed in "module" sans ".dll" and that needs
- to be reappended.
-
- def_import gets five parameters:
- APP_NAME - the name of the function in the application, if
- present, or NULL if not present.
- MODULE - the name of the dll, possibly sans extension (ie, '.dll').
- DLLEXT - the extension of the dll, if present, NULL if not present.
- ENTRY - the name of the function in the dll, if present, or NULL.
- ORD_VAL - the numerical tag of the function in the dll, if present,
- or NULL. Exactly one of <entry> or <ord_val> must be
- present (i.e., not NULL). */
-
-void
-def_import (const char *app_name, const char *module, const char *dllext,
- const char *entry, int ord_val)
-{
- const char *application_name;
- char *buf;
-
- if (entry != NULL)
- application_name = entry;
- else
- {
- if (app_name != NULL)
- application_name = app_name;
- else
- application_name = "";
- }
-
- if (dllext != NULL)
- {
- buf = (char *) alloca (strlen (module) + strlen (dllext) + 2);
- sprintf (buf, "%s.%s", module, dllext);
- module = buf;
- }
-
- append_import (application_name, module, ord_val);
-}
-
-void
-def_version (int major, int minor)
-{
- printf ("VERSION %d.%d\n", major, minor);
-}
-
-void
-def_section (const char *name, int attr)
-{
- char buf[200];
- char atts[5];
- char *d = atts;
- if (attr & 1)
- *d++ = 'R';
-
- if (attr & 2)
- *d++ = 'W';
- if (attr & 4)
- *d++ = 'X';
- if (attr & 8)
- *d++ = 'S';
- *d++ = 0;
- sprintf (buf, "-attr %s %s", name, atts);
- new_directive (xstrdup (buf));
-}
-
-void
-def_code (int attr)
-{
-
- def_section ("CODE", attr);
-}
-
-void
-def_data (int attr)
-{
- def_section ("DATA", attr);
-}
-
-/**********************************************************************/
-
-static void
-run (const char *what, char *args)
-{
- char *s;
- int pid, wait_status;
- int i;
- const char **argv;
- char *errmsg_fmt, *errmsg_arg;
- char *temp_base = choose_temp_base ();
-
- inform ("run: %s %s", what, args);
-
- /* Count the args */
- i = 0;
- for (s = args; *s; s++)
- if (*s == ' ')
- i++;
- i++;
- argv = alloca (sizeof (char *) * (i + 3));
- i = 0;
- argv[i++] = what;
- s = args;
- while (1)
- {
- while (*s == ' ')
- ++s;
- argv[i++] = s;
- while (*s != ' ' && *s != 0)
- s++;
- if (*s == 0)
- break;
- *s++ = 0;
- }
- argv[i++] = NULL;
-
- pid = pexecute (argv[0], (char * const *) argv, program_name, temp_base,
- &errmsg_fmt, &errmsg_arg, PEXECUTE_ONE | PEXECUTE_SEARCH);
-
- if (pid == -1)
- {
- inform (strerror (errno));
-
- fatal (errmsg_fmt, errmsg_arg);
- }
-
- pid = pwait (pid, & wait_status, 0);
-
- if (pid == -1)
- {
- /* xgettext:c-format */
- fatal (_("wait: %s"), strerror (errno));
- }
- else if (WIFSIGNALED (wait_status))
- {
- /* xgettext:c-format */
- fatal (_("subprocess got fatal signal %d"), WTERMSIG (wait_status));
- }
- else if (WIFEXITED (wait_status))
- {
- if (WEXITSTATUS (wait_status) != 0)
- /* xgettext:c-format */
- non_fatal (_("%s exited with status %d"),
- what, WEXITSTATUS (wait_status));
- }
- else
- abort ();
-}
-
-/* Look for a list of symbols to export in the .drectve section of
- ABFD. Pass each one to def_exports. */
-
-static void
-scan_drectve_symbols (bfd *abfd)
-{
- asection * s;
- int size;
- char * buf;
- char * p;
- char * e;
-
- /* Look for .drectve's */
- s = bfd_get_section_by_name (abfd, DRECTVE_SECTION_NAME);
-
- if (s == NULL)
- return;
-
- size = bfd_get_section_size (s);
- buf = xmalloc (size);
-
- bfd_get_section_contents (abfd, s, buf, 0, size);
-
- /* xgettext:c-format */
- inform (_("Sucking in info from %s section in %s"),
- DRECTVE_SECTION_NAME, bfd_get_filename (abfd));
-
- /* Search for -export: strings. The exported symbols can optionally
- have type tags (eg., -export:foo,data), so handle those as well.
- Currently only data tag is supported. */
- p = buf;
- e = buf + size;
- while (p < e)
- {
- if (p[0] == '-'
- && strncmp (p, "-export:", 8) == 0)
- {
- char * name;
- char * c;
- flagword flags = BSF_FUNCTION;
-
- p += 8;
- name = p;
- while (p < e && *p != ',' && *p != ' ' && *p != '-')
- p++;
- c = xmalloc (p - name + 1);
- memcpy (c, name, p - name);
- c[p - name] = 0;
- if (p < e && *p == ',') /* found type tag. */
- {
- char *tag_start = ++p;
- while (p < e && *p != ' ' && *p != '-')
- p++;
- if (strncmp (tag_start, "data", 4) == 0)
- flags &= ~BSF_FUNCTION;
- }
-
- /* FIXME: The 5th arg is for the `constant' field.
- What should it be? Not that it matters since it's not
- currently useful. */
- def_exports (c, 0, -1, 0, 0, ! (flags & BSF_FUNCTION), 0);
-
- if (add_stdcall_alias && strchr (c, '@'))
- {
- int lead_at = (*c == '@') ;
- char *exported_name = xstrdup (c + lead_at);
- char *atsym = strchr (exported_name, '@');
- *atsym = '\0';
- /* Note: stdcall alias symbols can never be data. */
- def_exports (exported_name, xstrdup (c), -1, 0, 0, 0, 0);
- }
- }
- else
- p++;
- }
- free (buf);
-}
-
-/* Look through the symbols in MINISYMS, and add each one to list of
- symbols to export. */
-
-static void
-scan_filtered_symbols (bfd *abfd, void *minisyms, long symcount,
- unsigned int size)
-{
- asymbol *store;
- bfd_byte *from, *fromend;
-
- store = bfd_make_empty_symbol (abfd);
- if (store == NULL)
- bfd_fatal (bfd_get_filename (abfd));
-
- from = (bfd_byte *) minisyms;
- fromend = from + symcount * size;
- for (; from < fromend; from += size)
- {
- asymbol *sym;
- const char *symbol_name;
-
- sym = bfd_minisymbol_to_symbol (abfd, FALSE, from, store);
- if (sym == NULL)
- bfd_fatal (bfd_get_filename (abfd));
-
- symbol_name = bfd_asymbol_name (sym);
- if (bfd_get_symbol_leading_char (abfd) == symbol_name[0])
- ++symbol_name;
-
- def_exports (xstrdup (symbol_name) , 0, -1, 0, 0,
- ! (sym->flags & BSF_FUNCTION), 0);
-
- if (add_stdcall_alias && strchr (symbol_name, '@'))
- {
- int lead_at = (*symbol_name == '@');
- char *exported_name = xstrdup (symbol_name + lead_at);
- char *atsym = strchr (exported_name, '@');
- *atsym = '\0';
- /* Note: stdcall alias symbols can never be data. */
- def_exports (exported_name, xstrdup (symbol_name), -1, 0, 0, 0, 0);
- }
- }
-}
-
-/* Add a list of symbols to exclude. */
-
-static void
-add_excludes (const char *new_excludes)
-{
- char *local_copy;
- char *exclude_string;
-
- local_copy = xstrdup (new_excludes);
-
- exclude_string = strtok (local_copy, ",:");
- for (; exclude_string; exclude_string = strtok (NULL, ",:"))
- {
- struct string_list *new_exclude;
-
- new_exclude = ((struct string_list *)
- xmalloc (sizeof (struct string_list)));
- new_exclude->string = (char *) xmalloc (strlen (exclude_string) + 2);
- /* Don't add a leading underscore for fastcall symbols. */
- if (*exclude_string == '@')
- sprintf (new_exclude->string, "%s", exclude_string);
- else
- sprintf (new_exclude->string, "_%s", exclude_string);
- new_exclude->next = excludes;
- excludes = new_exclude;
-
- /* xgettext:c-format */
- inform (_("Excluding symbol: %s"), exclude_string);
- }
-
- free (local_copy);
-}
-
-/* See if STRING is on the list of symbols to exclude. */
-
-static bfd_boolean
-match_exclude (const char *string)
-{
- struct string_list *excl_item;
-
- for (excl_item = excludes; excl_item; excl_item = excl_item->next)
- if (strcmp (string, excl_item->string) == 0)
- return TRUE;
- return FALSE;
-}
-
-/* Add the default list of symbols to exclude. */
-
-static void
-set_default_excludes (void)
-{
- add_excludes (default_excludes);
-}
-
-/* Choose which symbols to export. */
-
-static long
-filter_symbols (bfd *abfd, void *minisyms, long symcount, unsigned int size)
-{
- bfd_byte *from, *fromend, *to;
- asymbol *store;
-
- store = bfd_make_empty_symbol (abfd);
- if (store == NULL)
- bfd_fatal (bfd_get_filename (abfd));
-
- from = (bfd_byte *) minisyms;
- fromend = from + symcount * size;
- to = (bfd_byte *) minisyms;
-
- for (; from < fromend; from += size)
- {
- int keep = 0;
- asymbol *sym;
-
- sym = bfd_minisymbol_to_symbol (abfd, FALSE, (const void *) from, store);
- if (sym == NULL)
- bfd_fatal (bfd_get_filename (abfd));
-
- /* Check for external and defined only symbols. */
- keep = (((sym->flags & BSF_GLOBAL) != 0
- || (sym->flags & BSF_WEAK) != 0
- || bfd_is_com_section (sym->section))
- && ! bfd_is_und_section (sym->section));
-
- keep = keep && ! match_exclude (sym->name);
-
- if (keep)
- {
- memcpy (to, from, size);
- to += size;
- }
- }
-
- return (to - (bfd_byte *) minisyms) / size;
-}
-
-/* Export all symbols in ABFD, except for ones we were told not to
- export. */
-
-static void
-scan_all_symbols (bfd *abfd)
-{
- long symcount;
- void *minisyms;
- unsigned int size;
-
- /* Ignore bfds with an import descriptor table. We assume that any
- such BFD contains symbols which are exported from another DLL,
- and we don't want to reexport them from here. */
- if (bfd_get_section_by_name (abfd, ".idata$4"))
- return;
-
- if (! (bfd_get_file_flags (abfd) & HAS_SYMS))
- {
- /* xgettext:c-format */
- non_fatal (_("%s: no symbols"), bfd_get_filename (abfd));
- return;
- }
-
- symcount = bfd_read_minisymbols (abfd, FALSE, &minisyms, &size);
- if (symcount < 0)
- bfd_fatal (bfd_get_filename (abfd));
-
- if (symcount == 0)
- {
- /* xgettext:c-format */
- non_fatal (_("%s: no symbols"), bfd_get_filename (abfd));
- return;
- }
-
- /* Discard the symbols we don't want to export. It's OK to do this
- in place; we'll free the storage anyway. */
-
- symcount = filter_symbols (abfd, minisyms, symcount, size);
- scan_filtered_symbols (abfd, minisyms, symcount, size);
-
- free (minisyms);
-}
-
-/* Look at the object file to decide which symbols to export. */
-
-static void
-scan_open_obj_file (bfd *abfd)
-{
- if (export_all_symbols)
- scan_all_symbols (abfd);
- else
- scan_drectve_symbols (abfd);
-
- /* FIXME: we ought to read in and block out the base relocations. */
-
- /* xgettext:c-format */
- inform (_("Done reading %s"), bfd_get_filename (abfd));
-}
-
-static void
-scan_obj_file (const char *filename)
-{
- bfd * f = bfd_openr (filename, 0);
-
- if (!f)
- /* xgettext:c-format */
- fatal (_("Unable to open object file: %s"), filename);
-
- /* xgettext:c-format */
- inform (_("Scanning object file %s"), filename);
-
- if (bfd_check_format (f, bfd_archive))
- {
- bfd *arfile = bfd_openr_next_archived_file (f, 0);
- while (arfile)
- {
- if (bfd_check_format (arfile, bfd_object))
- scan_open_obj_file (arfile);
- bfd_close (arfile);
- arfile = bfd_openr_next_archived_file (f, arfile);
- }
-
-#ifdef DLLTOOL_MCORE_ELF
- if (mcore_elf_out_file)
- inform (_("Cannot produce mcore-elf dll from archive file: %s"), filename);
-#endif
- }
- else if (bfd_check_format (f, bfd_object))
- {
- scan_open_obj_file (f);
-
-#ifdef DLLTOOL_MCORE_ELF
- if (mcore_elf_out_file)
- mcore_elf_cache_filename ((char *) filename);
-#endif
- }
-
- bfd_close (f);
-}
-
-/**********************************************************************/
-
-static void
-dump_def_info (FILE *f)
-{
- int i;
- export_type *exp;
- fprintf (f, "%s ", ASM_C);
- for (i = 0; oav[i]; i++)
- fprintf (f, "%s ", oav[i]);
- fprintf (f, "\n");
- for (i = 0, exp = d_exports; exp; i++, exp = exp->next)
- {
- fprintf (f, "%s %d = %s %s @ %d %s%s%s%s\n",
- ASM_C,
- i,
- exp->name,
- exp->internal_name,
- exp->ordinal,
- exp->noname ? "NONAME " : "",
- exp->private ? "PRIVATE " : "",
- exp->constant ? "CONSTANT" : "",
- exp->data ? "DATA" : "");
- }
-}
-
-/* Generate the .exp file. */
-
-static int
-sfunc (const void *a, const void *b)
-{
- return *(const long *) a - *(const long *) b;
-}
-
-static void
-flush_page (FILE *f, long *need, int page_addr, int on_page)
-{
- int i;
-
- /* Flush this page. */
- fprintf (f, "\t%s\t0x%08x\t%s Starting RVA for chunk\n",
- ASM_LONG,
- page_addr,
- ASM_C);
- fprintf (f, "\t%s\t0x%x\t%s Size of block\n",
- ASM_LONG,
- (on_page * 2) + (on_page & 1) * 2 + 8,
- ASM_C);
-
- for (i = 0; i < on_page; i++)
- {
- long needed = need[i];
-
- if (needed)
- needed = ((needed - page_addr) | 0x3000) & 0xffff;
-
- fprintf (f, "\t%s\t0x%lx\n", ASM_SHORT, needed);
- }
-
- /* And padding */
- if (on_page & 1)
- fprintf (f, "\t%s\t0x%x\n", ASM_SHORT, 0 | 0x0000);
-}
-
-static void
-gen_def_file (void)
-{
- int i;
- export_type *exp;
-
- inform (_("Adding exports to output file"));
-
- fprintf (output_def, ";");
- for (i = 0; oav[i]; i++)
- fprintf (output_def, " %s", oav[i]);
-
- fprintf (output_def, "\nEXPORTS\n");
-
- for (i = 0, exp = d_exports; exp; i++, exp = exp->next)
- {
- char *quote = strchr (exp->name, '.') ? "\"" : "";
- char *res = cplus_demangle (exp->internal_name, DMGL_ANSI | DMGL_PARAMS);
-
- if (res)
- {
- fprintf (output_def,";\t%s\n", res);
- free (res);
- }
-
- if (strcmp (exp->name, exp->internal_name) == 0)
- {
- fprintf (output_def, "\t%s%s%s @ %d%s%s%s\n",
- quote,
- exp->name,
- quote,
- exp->ordinal,
- exp->noname ? " NONAME" : "",
- exp->private ? "PRIVATE " : "",
- exp->data ? " DATA" : "");
- }
- else
- {
- char * quote1 = strchr (exp->internal_name, '.') ? "\"" : "";
- /* char *alias = */
- fprintf (output_def, "\t%s%s%s = %s%s%s @ %d%s%s%s\n",
- quote,
- exp->name,
- quote,
- quote1,
- exp->internal_name,
- quote1,
- exp->ordinal,
- exp->noname ? " NONAME" : "",
- exp->private ? "PRIVATE " : "",
- exp->data ? " DATA" : "");
- }
- }
-
- inform (_("Added exports to output file"));
-}
-
-/* generate_idata_ofile generates the portable assembly source code
- for the idata sections. It appends the source code to the end of
- the file. */
-
-static void
-generate_idata_ofile (FILE *filvar)
-{
- iheadtype *headptr;
- ifunctype *funcptr;
- int headindex;
- int funcindex;
- int nheads;
-
- if (import_list == NULL)
- return;
-
- fprintf (filvar, "%s Import data sections\n", ASM_C);
- fprintf (filvar, "\n\t.section\t.idata$2\n");
- fprintf (filvar, "\t%s\tdoi_idata\n", ASM_GLOBAL);
- fprintf (filvar, "doi_idata:\n");
-
- nheads = 0;
- for (headptr = import_list; headptr != NULL; headptr = headptr->next)
- {
- fprintf (filvar, "\t%slistone%d%s\t%s %s\n",
- ASM_RVA_BEFORE, nheads, ASM_RVA_AFTER,
- ASM_C, headptr->dllname);
- fprintf (filvar, "\t%s\t0\n", ASM_LONG);
- fprintf (filvar, "\t%s\t0\n", ASM_LONG);
- fprintf (filvar, "\t%sdllname%d%s\n",
- ASM_RVA_BEFORE, nheads, ASM_RVA_AFTER);
- fprintf (filvar, "\t%slisttwo%d%s\n\n",
- ASM_RVA_BEFORE, nheads, ASM_RVA_AFTER);
- nheads++;
- }
-
- fprintf (filvar, "\t%s\t0\n", ASM_LONG); /* NULL record at */
- fprintf (filvar, "\t%s\t0\n", ASM_LONG); /* end of idata$2 */
- fprintf (filvar, "\t%s\t0\n", ASM_LONG); /* section */
- fprintf (filvar, "\t%s\t0\n", ASM_LONG);
- fprintf (filvar, "\t%s\t0\n", ASM_LONG);
-
- fprintf (filvar, "\n\t.section\t.idata$4\n");
- headindex = 0;
- for (headptr = import_list; headptr != NULL; headptr = headptr->next)
- {
- fprintf (filvar, "listone%d:\n", headindex);
- for ( funcindex = 0; funcindex < headptr->nfuncs; funcindex++ )
- fprintf (filvar, "\t%sfuncptr%d_%d%s\n",
- ASM_RVA_BEFORE, headindex, funcindex, ASM_RVA_AFTER);
- fprintf (filvar,"\t%s\t0\n", ASM_LONG); /* NULL terminating list */
- headindex++;
- }
-
- fprintf (filvar, "\n\t.section\t.idata$5\n");
- headindex = 0;
- for (headptr = import_list; headptr != NULL; headptr = headptr->next)
- {
- fprintf (filvar, "listtwo%d:\n", headindex);
- for ( funcindex = 0; funcindex < headptr->nfuncs; funcindex++ )
- fprintf (filvar, "\t%sfuncptr%d_%d%s\n",
- ASM_RVA_BEFORE, headindex, funcindex, ASM_RVA_AFTER);
- fprintf (filvar, "\t%s\t0\n", ASM_LONG); /* NULL terminating list */
- headindex++;
- }
-
- fprintf (filvar, "\n\t.section\t.idata$6\n");
- headindex = 0;
- for (headptr = import_list; headptr != NULL; headptr = headptr->next)
- {
- funcindex = 0;
- for (funcptr = headptr->funchead; funcptr != NULL;
- funcptr = funcptr->next)
- {
- fprintf (filvar,"funcptr%d_%d:\n", headindex, funcindex);
- fprintf (filvar,"\t%s\t%d\n", ASM_SHORT,
- ((funcptr->ord) & 0xFFFF));
- fprintf (filvar,"\t%s\t\"%s\"\n", ASM_TEXT, funcptr->name);
- fprintf (filvar,"\t%s\t0\n", ASM_BYTE);
- funcindex++;
- }
- headindex++;
- }
-
- fprintf (filvar, "\n\t.section\t.idata$7\n");
- headindex = 0;
- for (headptr = import_list; headptr != NULL; headptr = headptr->next)
- {
- fprintf (filvar,"dllname%d:\n", headindex);
- fprintf (filvar,"\t%s\t\"%s\"\n", ASM_TEXT, headptr->dllname);
- fprintf (filvar,"\t%s\t0\n", ASM_BYTE);
- headindex++;
- }
-}
-
-/* Assemble the specified file. */
-static void
-assemble_file (const char * source, const char * dest)
-{
- char * cmd;
-
- cmd = (char *) alloca (strlen (ASM_SWITCHES) + strlen (as_flags)
- + strlen (source) + strlen (dest) + 50);
-
- sprintf (cmd, "%s %s -o %s %s", ASM_SWITCHES, as_flags, dest, source);
-
- run (as_name, cmd);
-}
-
-static void
-gen_exp_file (void)
-{
- FILE *f;
- int i;
- export_type *exp;
- dlist_type *dl;
-
- /* xgettext:c-format */
- inform (_("Generating export file: %s"), exp_name);
-
- f = fopen (TMP_ASM, FOPEN_WT);
- if (!f)
- /* xgettext:c-format */
- fatal (_("Unable to open temporary assembler file: %s"), TMP_ASM);
-
- /* xgettext:c-format */
- inform (_("Opened temporary file: %s"), TMP_ASM);
-
- dump_def_info (f);
-
- if (d_exports)
- {
- fprintf (f, "\t.section .edata\n\n");
- fprintf (f, "\t%s 0 %s Allways 0\n", ASM_LONG, ASM_C);
- fprintf (f, "\t%s 0x%lx %s Time and date\n", ASM_LONG, (long) time(0),
- ASM_C);
- fprintf (f, "\t%s 0 %s Major and Minor version\n", ASM_LONG, ASM_C);
- fprintf (f, "\t%sname%s %s Ptr to name of dll\n", ASM_RVA_BEFORE, ASM_RVA_AFTER, ASM_C);
- fprintf (f, "\t%s %d %s Starting ordinal of exports\n", ASM_LONG, d_low_ord, ASM_C);
-
-
- fprintf (f, "\t%s %d %s Number of functions\n", ASM_LONG, d_high_ord - d_low_ord + 1, ASM_C);
- fprintf(f,"\t%s named funcs %d, low ord %d, high ord %d\n",
- ASM_C,
- d_named_nfuncs, d_low_ord, d_high_ord);
- fprintf (f, "\t%s %d %s Number of names\n", ASM_LONG,
- show_allnames ? d_high_ord - d_low_ord + 1 : d_named_nfuncs, ASM_C);
- fprintf (f, "\t%safuncs%s %s Address of functions\n", ASM_RVA_BEFORE, ASM_RVA_AFTER, ASM_C);
-
- fprintf (f, "\t%sanames%s %s Address of Name Pointer Table\n",
- ASM_RVA_BEFORE, ASM_RVA_AFTER, ASM_C);
-
- fprintf (f, "\t%sanords%s %s Address of ordinals\n", ASM_RVA_BEFORE, ASM_RVA_AFTER, ASM_C);
-
- fprintf (f, "name: %s \"%s\"\n", ASM_TEXT, dll_name);
-
-
- fprintf(f,"%s Export address Table\n", ASM_C);
- fprintf(f,"\t%s\n", ASM_ALIGN_LONG);
- fprintf (f, "afuncs:\n");
- i = d_low_ord;
-
- for (exp = d_exports; exp; exp = exp->next)
- {
- if (exp->ordinal != i)
- {
- while (i < exp->ordinal)
- {
- fprintf(f,"\t%s\t0\n", ASM_LONG);
- i++;
- }
- }
-
- if (exp->forward == 0)
- {
- if (exp->internal_name[0] == '@')
- fprintf (f, "\t%s%s%s\t%s %d\n", ASM_RVA_BEFORE,
- exp->internal_name, ASM_RVA_AFTER, ASM_C, exp->ordinal);
- else
- fprintf (f, "\t%s%s%s%s\t%s %d\n", ASM_RVA_BEFORE,
- ASM_PREFIX (exp->internal_name),
- exp->internal_name, ASM_RVA_AFTER, ASM_C, exp->ordinal);
- }
- else
- fprintf (f, "\t%sf%d%s\t%s %d\n", ASM_RVA_BEFORE,
- exp->forward, ASM_RVA_AFTER, ASM_C, exp->ordinal);
- i++;
- }
-
- fprintf (f,"%s Export Name Pointer Table\n", ASM_C);
- fprintf (f, "anames:\n");
-
- for (i = 0; (exp = d_exports_lexically[i]); i++)
- {
- if (!exp->noname || show_allnames)
- fprintf (f, "\t%sn%d%s\n",
- ASM_RVA_BEFORE, exp->ordinal, ASM_RVA_AFTER);
- }
-
- fprintf (f,"%s Export Oridinal Table\n", ASM_C);
- fprintf (f, "anords:\n");
- for (i = 0; (exp = d_exports_lexically[i]); i++)
- {
- if (!exp->noname || show_allnames)
- fprintf (f, "\t%s %d\n", ASM_SHORT, exp->ordinal - d_low_ord);
- }
-
- fprintf(f,"%s Export Name Table\n", ASM_C);
- for (i = 0; (exp = d_exports_lexically[i]); i++)
- {
- if (!exp->noname || show_allnames)
- fprintf (f, "n%d: %s \"%s\"\n",
- exp->ordinal, ASM_TEXT, xlate (exp->name));
- if (exp->forward != 0)
- fprintf (f, "f%d: %s \"%s\"\n",
- exp->forward, ASM_TEXT, exp->internal_name);
- }
-
- if (a_list)
- {
- fprintf (f, "\t.section %s\n", DRECTVE_SECTION_NAME);
- for (dl = a_list; dl; dl = dl->next)
- {
- fprintf (f, "\t%s\t\"%s\"\n", ASM_TEXT, dl->text);
- }
- }
-
- if (d_list)
- {
- fprintf (f, "\t.section .rdata\n");
- for (dl = d_list; dl; dl = dl->next)
- {
- char *p;
- int l;
-
- /* We don't output as ascii because there can
- be quote characters in the string. */
- l = 0;
- for (p = dl->text; *p; p++)
- {
- if (l == 0)
- fprintf (f, "\t%s\t", ASM_BYTE);
- else
- fprintf (f, ",");
- fprintf (f, "%d", *p);
- if (p[1] == 0)
- {
- fprintf (f, ",0\n");
- break;
- }
- if (++l == 10)
- {
- fprintf (f, "\n");
- l = 0;
- }
- }
- }
- }
- }
-
-
- /* Add to the output file a way of getting to the exported names
- without using the import library. */
- if (add_indirect)
- {
- fprintf (f, "\t.section\t.rdata\n");
- for (i = 0, exp = d_exports; exp; i++, exp = exp->next)
- if (!exp->noname || show_allnames)
- {
- /* We use a single underscore for MS compatibility, and a
- double underscore for backward compatibility with old
- cygwin releases. */
- if (create_compat_implib)
- fprintf (f, "\t%s\t__imp_%s\n", ASM_GLOBAL, exp->name);
- fprintf (f, "\t%s\t_imp__%s\n", ASM_GLOBAL, exp->name);
- if (create_compat_implib)
- fprintf (f, "__imp_%s:\n", exp->name);
- fprintf (f, "_imp__%s:\n", exp->name);
- fprintf (f, "\t%s\t%s\n", ASM_LONG, exp->name);
- }
- }
-
- /* Dump the reloc section if a base file is provided. */
- if (base_file)
- {
- int addr;
- long need[PAGE_SIZE];
- long page_addr;
- int numbytes;
- int num_entries;
- long *copy;
- int j;
- int on_page;
- fprintf (f, "\t.section\t.init\n");
- fprintf (f, "lab:\n");
-
- fseek (base_file, 0, SEEK_END);
- numbytes = ftell (base_file);
- fseek (base_file, 0, SEEK_SET);
- copy = xmalloc (numbytes);
- fread (copy, 1, numbytes, base_file);
- num_entries = numbytes / sizeof (long);
-
-
- fprintf (f, "\t.section\t.reloc\n");
- if (num_entries)
- {
- int src;
- int dst = 0;
- int last = -1;
- qsort (copy, num_entries, sizeof (long), sfunc);
- /* Delete duplicates */
- for (src = 0; src < num_entries; src++)
- {
- if (last != copy[src])
- last = copy[dst++] = copy[src];
- }
- num_entries = dst;
- addr = copy[0];
- page_addr = addr & PAGE_MASK; /* work out the page addr */
- on_page = 0;
- for (j = 0; j < num_entries; j++)
- {
- addr = copy[j];
- if ((addr & PAGE_MASK) != page_addr)
- {
- flush_page (f, need, page_addr, on_page);
- on_page = 0;
- page_addr = addr & PAGE_MASK;
- }
- need[on_page++] = addr;
- }
- flush_page (f, need, page_addr, on_page);
-
-/* fprintf (f, "\t%s\t0,0\t%s End\n", ASM_LONG, ASM_C);*/
- }
- }
-
- generate_idata_ofile (f);
-
- fclose (f);
-
- /* Assemble the file. */
- assemble_file (TMP_ASM, exp_name);
-
- if (dontdeltemps == 0)
- unlink (TMP_ASM);
-
- inform (_("Generated exports file"));
-}
-
-static const char *
-xlate (const char *name)
-{
- int lead_at = (*name == '@');
-
- if (!lead_at && (add_underscore
- || (add_stdcall_underscore
- && strchr (name, '@'))))
- {
- char *copy = xmalloc (strlen (name) + 2);
-
- copy[0] = '_';
- strcpy (copy + 1, name);
- name = copy;
- }
-
- if (killat)
- {
- char *p;
-
- name += lead_at;
- p = strchr (name, '@');
- if (p)
- *p = 0;
- }
- return name;
-}
-
-typedef struct
-{
- int id;
- const char *name;
- int flags;
- int align;
- asection *sec;
- asymbol *sym;
- asymbol **sympp;
- int size;
- unsigned char *data;
-} sinfo;
-
-#ifndef DLLTOOL_PPC
-
-#define TEXT 0
-#define DATA 1
-#define BSS 2
-#define IDATA7 3
-#define IDATA5 4
-#define IDATA4 5
-#define IDATA6 6
-
-#define NSECS 7
-
-#define TEXT_SEC_FLAGS \
- (SEC_ALLOC | SEC_LOAD | SEC_CODE | SEC_READONLY | SEC_HAS_CONTENTS)
-#define DATA_SEC_FLAGS (SEC_ALLOC | SEC_LOAD | SEC_DATA)
-#define BSS_SEC_FLAGS SEC_ALLOC
-
-#define INIT_SEC_DATA(id, name, flags, align) \
- { id, name, flags, align, NULL, NULL, NULL, 0, NULL }
-static sinfo secdata[NSECS] =
-{
- INIT_SEC_DATA (TEXT, ".text", TEXT_SEC_FLAGS, 2),
- INIT_SEC_DATA (DATA, ".data", DATA_SEC_FLAGS, 2),
- INIT_SEC_DATA (BSS, ".bss", BSS_SEC_FLAGS, 2),
- INIT_SEC_DATA (IDATA7, ".idata$7", SEC_HAS_CONTENTS, 2),
- INIT_SEC_DATA (IDATA5, ".idata$5", SEC_HAS_CONTENTS, 2),
- INIT_SEC_DATA (IDATA4, ".idata$4", SEC_HAS_CONTENTS, 2),
- INIT_SEC_DATA (IDATA6, ".idata$6", SEC_HAS_CONTENTS, 1)
-};
-
-#else
-
-/* Sections numbered to make the order the same as other PowerPC NT
- compilers. This also keeps funny alignment thingies from happening. */
-#define TEXT 0
-#define PDATA 1
-#define RDATA 2
-#define IDATA5 3
-#define IDATA4 4
-#define IDATA6 5
-#define IDATA7 6
-#define DATA 7
-#define BSS 8
-
-#define NSECS 9
-
-static sinfo secdata[NSECS] =
-{
- { TEXT, ".text", SEC_CODE | SEC_HAS_CONTENTS, 3},
- { PDATA, ".pdata", SEC_HAS_CONTENTS, 2},
- { RDATA, ".reldata", SEC_HAS_CONTENTS, 2},
- { IDATA5, ".idata$5", SEC_HAS_CONTENTS, 2},
- { IDATA4, ".idata$4", SEC_HAS_CONTENTS, 2},
- { IDATA6, ".idata$6", SEC_HAS_CONTENTS, 1},
- { IDATA7, ".idata$7", SEC_HAS_CONTENTS, 2},
- { DATA, ".data", SEC_DATA, 2},
- { BSS, ".bss", 0, 2}
-};
-
-#endif
-
-/* This is what we're trying to make. We generate the imp symbols with
- both single and double underscores, for compatibility.
-
- .text
- .global _GetFileVersionInfoSizeW@8
- .global __imp_GetFileVersionInfoSizeW@8
-_GetFileVersionInfoSizeW@8:
- jmp * __imp_GetFileVersionInfoSizeW@8
- .section .idata$7 # To force loading of head
- .long __version_a_head
-# Import Address Table
- .section .idata$5
-__imp_GetFileVersionInfoSizeW@8:
- .rva ID2
-
-# Import Lookup Table
- .section .idata$4
- .rva ID2
-# Hint/Name table
- .section .idata$6
-ID2: .short 2
- .asciz "GetFileVersionInfoSizeW"
-
-
- For the PowerPC, here's the variation on the above scheme:
-
-# Rather than a simple "jmp *", the code to get to the dll function
-# looks like:
- .text
- lwz r11,[tocv]__imp_function_name(r2)
-# RELOC: 00000000 TOCREL16,TOCDEFN __imp_function_name
- lwz r12,0(r11)
- stw r2,4(r1)
- mtctr r12
- lwz r2,4(r11)
- bctr */
-
-static char *
-make_label (const char *prefix, const char *name)
-{
- int len = strlen (ASM_PREFIX (name)) + strlen (prefix) + strlen (name);
- char *copy = xmalloc (len + 1);
-
- strcpy (copy, ASM_PREFIX (name));
- strcat (copy, prefix);
- strcat (copy, name);
- return copy;
-}
-
-static char *
-make_imp_label (const char *prefix, const char *name)
-{
- int len;
- char *copy;
-
- if (name[0] == '@')
- {
- len = strlen (prefix) + strlen (name);
- copy = xmalloc (len + 1);
- strcpy (copy, prefix);
- strcat (copy, name);
- }
- else
- {
- len = strlen (ASM_PREFIX (name)) + strlen (prefix) + strlen (name);
- copy = xmalloc (len + 1);
- strcpy (copy, prefix);
- strcat (copy, ASM_PREFIX (name));
- strcat (copy, name);
- }
- return copy;
-}
-
-static bfd *
-make_one_lib_file (export_type *exp, int i)
-{
- bfd * abfd;
- asymbol * exp_label;
- asymbol * iname = 0;
- asymbol * iname2;
- asymbol * iname_lab;
- asymbol ** iname_lab_pp;
- asymbol ** iname_pp;
-#ifdef DLLTOOL_PPC
- asymbol ** fn_pp;
- asymbol ** toc_pp;
-#define EXTRA 2
-#endif
-#ifndef EXTRA
-#define EXTRA 0
-#endif
- asymbol * ptrs[NSECS + 4 + EXTRA + 1];
- flagword applicable;
- char * outname = xmalloc (strlen (TMP_STUB) + 10);
- int oidx = 0;
-
-
- sprintf (outname, "%s%05d.o", TMP_STUB, i);
-
- abfd = bfd_openw (outname, HOW_BFD_WRITE_TARGET);
-
- if (!abfd)
- /* xgettext:c-format */
- fatal (_("bfd_open failed open stub file: %s"), outname);
-
- /* xgettext:c-format */
- inform (_("Creating stub file: %s"), outname);
-
- bfd_set_format (abfd, bfd_object);
- bfd_set_arch_mach (abfd, HOW_BFD_ARCH, 0);
-
-#ifdef DLLTOOL_ARM
- if (machine == MARM_INTERWORK || machine == MTHUMB)
- bfd_set_private_flags (abfd, F_INTERWORK);
-#endif
-
- applicable = bfd_applicable_section_flags (abfd);
-
- /* First make symbols for the sections. */
- for (i = 0; i < NSECS; i++)
- {
- sinfo *si = secdata + i;
-
- if (si->id != i)
- abort();
- si->sec = bfd_make_section_old_way (abfd, si->name);
- bfd_set_section_flags (abfd,
- si->sec,
- si->flags & applicable);
-
- bfd_set_section_alignment(abfd, si->sec, si->align);
- si->sec->output_section = si->sec;
- si->sym = bfd_make_empty_symbol(abfd);
- si->sym->name = si->sec->name;
- si->sym->section = si->sec;
- si->sym->flags = BSF_LOCAL;
- si->sym->value = 0;
- ptrs[oidx] = si->sym;
- si->sympp = ptrs + oidx;
- si->size = 0;
- si->data = NULL;
-
- oidx++;
- }
-
- if (! exp->data)
- {
- exp_label = bfd_make_empty_symbol (abfd);
- exp_label->name = make_imp_label ("", exp->name);
-
- /* On PowerPC, the function name points to a descriptor in
- the rdata section, the first element of which is a
- pointer to the code (..function_name), and the second
- points to the .toc. */
-#ifdef DLLTOOL_PPC
- if (machine == MPPC)
- exp_label->section = secdata[RDATA].sec;
- else
-#endif
- exp_label->section = secdata[TEXT].sec;
-
- exp_label->flags = BSF_GLOBAL;
- exp_label->value = 0;
-
-#ifdef DLLTOOL_ARM
- if (machine == MTHUMB)
- bfd_coff_set_symbol_class (abfd, exp_label, C_THUMBEXTFUNC);
-#endif
- ptrs[oidx++] = exp_label;
- }
-
- /* Generate imp symbols with one underscore for Microsoft
- compatibility, and with two underscores for backward
- compatibility with old versions of cygwin. */
- if (create_compat_implib)
- {
- iname = bfd_make_empty_symbol (abfd);
- iname->name = make_imp_label ("___imp", exp->name);
- iname->section = secdata[IDATA5].sec;
- iname->flags = BSF_GLOBAL;
- iname->value = 0;
- }
-
- iname2 = bfd_make_empty_symbol (abfd);
- iname2->name = make_imp_label ("__imp_", exp->name);
- iname2->section = secdata[IDATA5].sec;
- iname2->flags = BSF_GLOBAL;
- iname2->value = 0;
-
- iname_lab = bfd_make_empty_symbol (abfd);
-
- iname_lab->name = head_label;
- iname_lab->section = (asection *) &bfd_und_section;
- iname_lab->flags = 0;
- iname_lab->value = 0;
-
- iname_pp = ptrs + oidx;
- if (create_compat_implib)
- ptrs[oidx++] = iname;
- ptrs[oidx++] = iname2;
-
- iname_lab_pp = ptrs + oidx;
- ptrs[oidx++] = iname_lab;
-
-#ifdef DLLTOOL_PPC
- /* The symbol referring to the code (.text). */
- {
- asymbol *function_name;
-
- function_name = bfd_make_empty_symbol(abfd);
- function_name->name = make_label ("..", exp->name);
- function_name->section = secdata[TEXT].sec;
- function_name->flags = BSF_GLOBAL;
- function_name->value = 0;
-
- fn_pp = ptrs + oidx;
- ptrs[oidx++] = function_name;
- }
-
- /* The .toc symbol. */
- {
- asymbol *toc_symbol;
-
- toc_symbol = bfd_make_empty_symbol (abfd);
- toc_symbol->name = make_label (".", "toc");
- toc_symbol->section = (asection *)&bfd_und_section;
- toc_symbol->flags = BSF_GLOBAL;
- toc_symbol->value = 0;
-
- toc_pp = ptrs + oidx;
- ptrs[oidx++] = toc_symbol;
- }
-#endif
-
- ptrs[oidx] = 0;
-
- for (i = 0; i < NSECS; i++)
- {
- sinfo *si = secdata + i;
- asection *sec = si->sec;
- arelent *rel;
- arelent **rpp;
-
- switch (i)
- {
- case TEXT:
- if (! exp->data)
- {
- si->size = HOW_JTAB_SIZE;
- si->data = xmalloc (HOW_JTAB_SIZE);
- memcpy (si->data, HOW_JTAB, HOW_JTAB_SIZE);
-
- /* add the reloc into idata$5 */
- rel = xmalloc (sizeof (arelent));
-
- rpp = xmalloc (sizeof (arelent *) * 2);
- rpp[0] = rel;
- rpp[1] = 0;
-
- rel->address = HOW_JTAB_ROFF;
- rel->addend = 0;
-
- if (machine == MPPC)
- {
- rel->howto = bfd_reloc_type_lookup (abfd,
- BFD_RELOC_16_GOTOFF);
- rel->sym_ptr_ptr = iname_pp;
- }
- else
- {
- rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_32);
- rel->sym_ptr_ptr = secdata[IDATA5].sympp;
- }
- sec->orelocation = rpp;
- sec->reloc_count = 1;
- }
- break;
- case IDATA4:
- case IDATA5:
- /* An idata$4 or idata$5 is one word long, and has an
- rva to idata$6. */
-
- si->data = xmalloc (4);
- si->size = 4;
-
- if (exp->noname)
- {
- si->data[0] = exp->ordinal ;
- si->data[1] = exp->ordinal >> 8;
- si->data[2] = exp->ordinal >> 16;
- si->data[3] = 0x80;
- }
- else
- {
- sec->reloc_count = 1;
- memset (si->data, 0, si->size);
- rel = xmalloc (sizeof (arelent));
- rpp = xmalloc (sizeof (arelent *) * 2);
- rpp[0] = rel;
- rpp[1] = 0;
- rel->address = 0;
- rel->addend = 0;
- rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_RVA);
- rel->sym_ptr_ptr = secdata[IDATA6].sympp;
- sec->orelocation = rpp;
- }
-
- break;
-
- case IDATA6:
- if (!exp->noname)
- {
- /* This used to add 1 to exp->hint. I don't know
- why it did that, and it does not match what I see
- in programs compiled with the MS tools. */
- int idx = exp->hint;
- si->size = strlen (xlate (exp->import_name)) + 3;
- si->data = xmalloc (si->size);
- si->data[0] = idx & 0xff;
- si->data[1] = idx >> 8;
- strcpy ((char *) si->data + 2, xlate (exp->import_name));
- }
- break;
- case IDATA7:
- si->size = 4;
- si->data = xmalloc (4);
- memset (si->data, 0, si->size);
- rel = xmalloc (sizeof (arelent));
- rpp = xmalloc (sizeof (arelent *) * 2);
- rpp[0] = rel;
- rel->address = 0;
- rel->addend = 0;
- rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_RVA);
- rel->sym_ptr_ptr = iname_lab_pp;
- sec->orelocation = rpp;
- sec->reloc_count = 1;
- break;
-
-#ifdef DLLTOOL_PPC
- case PDATA:
- {
- /* The .pdata section is 5 words long.
- Think of it as:
- struct
- {
- bfd_vma BeginAddress, [0x00]
- EndAddress, [0x04]
- ExceptionHandler, [0x08]
- HandlerData, [0x0c]
- PrologEndAddress; [0x10]
- }; */
-
- /* So this pdata section setups up this as a glue linkage to
- a dll routine. There are a number of house keeping things
- we need to do:
-
- 1. In the name of glue trickery, the ADDR32 relocs for 0,
- 4, and 0x10 are set to point to the same place:
- "..function_name".
- 2. There is one more reloc needed in the pdata section.
- The actual glue instruction to restore the toc on
- return is saved as the offset in an IMGLUE reloc.
- So we need a total of four relocs for this section.
-
- 3. Lastly, the HandlerData field is set to 0x03, to indicate
- that this is a glue routine. */
- arelent *imglue, *ba_rel, *ea_rel, *pea_rel;
-
- /* Alignment must be set to 2**2 or you get extra stuff. */
- bfd_set_section_alignment(abfd, sec, 2);
-
- si->size = 4 * 5;
- si->data = xmalloc (si->size);
- memset (si->data, 0, si->size);
- rpp = xmalloc (sizeof (arelent *) * 5);
- rpp[0] = imglue = xmalloc (sizeof (arelent));
- rpp[1] = ba_rel = xmalloc (sizeof (arelent));
- rpp[2] = ea_rel = xmalloc (sizeof (arelent));
- rpp[3] = pea_rel = xmalloc (sizeof (arelent));
- rpp[4] = 0;
-
- /* Stick the toc reload instruction in the glue reloc. */
- bfd_put_32(abfd, ppc_glue_insn, (char *) &imglue->address);
-
- imglue->addend = 0;
- imglue->howto = bfd_reloc_type_lookup (abfd,
- BFD_RELOC_32_GOTOFF);
- imglue->sym_ptr_ptr = fn_pp;
-
- ba_rel->address = 0;
- ba_rel->addend = 0;
- ba_rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_32);
- ba_rel->sym_ptr_ptr = fn_pp;
-
- bfd_put_32 (abfd, 0x18, si->data + 0x04);
- ea_rel->address = 4;
- ea_rel->addend = 0;
- ea_rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_32);
- ea_rel->sym_ptr_ptr = fn_pp;
-
- /* Mark it as glue. */
- bfd_put_32 (abfd, 0x03, si->data + 0x0c);
-
- /* Mark the prolog end address. */
- bfd_put_32 (abfd, 0x0D, si->data + 0x10);
- pea_rel->address = 0x10;
- pea_rel->addend = 0;
- pea_rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_32);
- pea_rel->sym_ptr_ptr = fn_pp;
-
- sec->orelocation = rpp;
- sec->reloc_count = 4;
- break;
- }
- case RDATA:
- /* Each external function in a PowerPC PE file has a two word
- descriptor consisting of:
- 1. The address of the code.
- 2. The address of the appropriate .toc
- We use relocs to build this. */
- si->size = 8;
- si->data = xmalloc (8);
- memset (si->data, 0, si->size);
-
- rpp = xmalloc (sizeof (arelent *) * 3);
- rpp[0] = rel = xmalloc (sizeof (arelent));
- rpp[1] = xmalloc (sizeof (arelent));
- rpp[2] = 0;
-
- rel->address = 0;
- rel->addend = 0;
- rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_32);
- rel->sym_ptr_ptr = fn_pp;
-
- rel = rpp[1];
-
- rel->address = 4;
- rel->addend = 0;
- rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_32);
- rel->sym_ptr_ptr = toc_pp;
-
- sec->orelocation = rpp;
- sec->reloc_count = 2;
- break;
-#endif /* DLLTOOL_PPC */
- }
- }
-
- {
- bfd_vma vma = 0;
- /* Size up all the sections. */
- for (i = 0; i < NSECS; i++)
- {
- sinfo *si = secdata + i;
-
- bfd_set_section_size (abfd, si->sec, si->size);
- bfd_set_section_vma (abfd, si->sec, vma);
- }
- }
- /* Write them out. */
- for (i = 0; i < NSECS; i++)
- {
- sinfo *si = secdata + i;
-
- if (i == IDATA5 && no_idata5)
- continue;
-
- if (i == IDATA4 && no_idata4)
- continue;
-
- bfd_set_section_contents (abfd, si->sec,
- si->data, 0,
- si->size);
- }
-
- bfd_set_symtab (abfd, ptrs, oidx);
- bfd_close (abfd);
- abfd = bfd_openr (outname, HOW_BFD_READ_TARGET);
- return abfd;
-}
-
-static bfd *
-make_head (void)
-{
- FILE *f = fopen (TMP_HEAD_S, FOPEN_WT);
-
- if (f == NULL)
- {
- fatal (_("failed to open temporary head file: %s"), TMP_HEAD_S);
- return NULL;
- }
-
- fprintf (f, "%s IMAGE_IMPORT_DESCRIPTOR\n", ASM_C);
- fprintf (f, "\t.section .idata$2\n");
-
- fprintf(f,"\t%s\t%s\n", ASM_GLOBAL,head_label);
-
- fprintf (f, "%s:\n", head_label);
-
- fprintf (f, "\t%shname%s\t%sPtr to image import by name list\n",
- ASM_RVA_BEFORE, ASM_RVA_AFTER, ASM_C);
-
- fprintf (f, "\t%sthis should be the timestamp, but NT sometimes\n", ASM_C);
- fprintf (f, "\t%sdoesn't load DLLs when this is set.\n", ASM_C);
- fprintf (f, "\t%s\t0\t%s loaded time\n", ASM_LONG, ASM_C);
- fprintf (f, "\t%s\t0\t%s Forwarder chain\n", ASM_LONG, ASM_C);
- fprintf (f, "\t%s__%s_iname%s\t%s imported dll's name\n",
- ASM_RVA_BEFORE,
- imp_name_lab,
- ASM_RVA_AFTER,
- ASM_C);
- fprintf (f, "\t%sfthunk%s\t%s pointer to firstthunk\n",
- ASM_RVA_BEFORE,
- ASM_RVA_AFTER, ASM_C);
-
- fprintf (f, "%sStuff for compatibility\n", ASM_C);
-
- if (!no_idata5)
- {
- fprintf (f, "\t.section\t.idata$5\n");
- fprintf (f, "\t%s\t0\n", ASM_LONG);
- fprintf (f, "fthunk:\n");
- }
-
- if (!no_idata4)
- {
- fprintf (f, "\t.section\t.idata$4\n");
-
- fprintf (f, "\t%s\t0\n", ASM_LONG);
- fprintf (f, "\t.section .idata$4\n");
- fprintf (f, "hname:\n");
- }
-
- fclose (f);
-
- assemble_file (TMP_HEAD_S, TMP_HEAD_O);
-
- return bfd_openr (TMP_HEAD_O, HOW_BFD_READ_TARGET);
-}
-
-static bfd *
-make_tail (void)
-{
- FILE *f = fopen (TMP_TAIL_S, FOPEN_WT);
-
- if (f == NULL)
- {
- fatal (_("failed to open temporary tail file: %s"), TMP_TAIL_S);
- return NULL;
- }
-
- if (!no_idata4)
- {
- fprintf (f, "\t.section .idata$4\n");
- fprintf (f, "\t%s\t0\n", ASM_LONG);
- }
-
- if (!no_idata5)
- {
- fprintf (f, "\t.section .idata$5\n");
- fprintf (f, "\t%s\t0\n", ASM_LONG);
- }
-
-#ifdef DLLTOOL_PPC
- /* Normally, we need to see a null descriptor built in idata$3 to
- act as the terminator for the list. The ideal way, I suppose,
- would be to mark this section as a comdat type 2 section, so
- only one would appear in the final .exe (if our linker supported
- comdat, that is) or cause it to be inserted by something else (say
- crt0). */
-
- fprintf (f, "\t.section .idata$3\n");
- fprintf (f, "\t%s\t0\n", ASM_LONG);
- fprintf (f, "\t%s\t0\n", ASM_LONG);
- fprintf (f, "\t%s\t0\n", ASM_LONG);
- fprintf (f, "\t%s\t0\n", ASM_LONG);
- fprintf (f, "\t%s\t0\n", ASM_LONG);
-#endif
-
-#ifdef DLLTOOL_PPC
- /* Other PowerPC NT compilers use idata$6 for the dllname, so I
- do too. Original, huh? */
- fprintf (f, "\t.section .idata$6\n");
-#else
- fprintf (f, "\t.section .idata$7\n");
-#endif
-
- fprintf (f, "\t%s\t__%s_iname\n", ASM_GLOBAL, imp_name_lab);
- fprintf (f, "__%s_iname:\t%s\t\"%s\"\n",
- imp_name_lab, ASM_TEXT, dll_name);
-
- fclose (f);
-
- assemble_file (TMP_TAIL_S, TMP_TAIL_O);
-
- return bfd_openr (TMP_TAIL_O, HOW_BFD_READ_TARGET);
-}
-
-static void
-gen_lib_file (void)
-{
- int i;
- export_type *exp;
- bfd *ar_head;
- bfd *ar_tail;
- bfd *outarch;
- bfd * head = 0;
-
- unlink (imp_name);
-
- outarch = bfd_openw (imp_name, HOW_BFD_WRITE_TARGET);
-
- if (!outarch)
- /* xgettext:c-format */
- fatal (_("Can't open .lib file: %s"), imp_name);
-
- /* xgettext:c-format */
- inform (_("Creating library file: %s"), imp_name);
-
- bfd_set_format (outarch, bfd_archive);
- outarch->has_armap = 1;
-
- /* Work out a reasonable size of things to put onto one line. */
- ar_head = make_head ();
- ar_tail = make_tail();
-
- if (ar_head == NULL || ar_tail == NULL)
- return;
-
- for (i = 0; (exp = d_exports_lexically[i]); i++)
- {
- bfd *n;
- /* Don't add PRIVATE entries to import lib. */
- if (exp->private)
- continue;
- n = make_one_lib_file (exp, i);
- n->next = head;
- head = n;
- if (ext_prefix_alias)
- {
- export_type alias_exp;
-
- assert (i < PREFIX_ALIAS_BASE);
- alias_exp.name = make_imp_label (ext_prefix_alias, exp->name);
- alias_exp.internal_name = exp->internal_name;
- alias_exp.import_name = exp->name;
- alias_exp.ordinal = exp->ordinal;
- alias_exp.constant = exp->constant;
- alias_exp.noname = exp->noname;
- alias_exp.private = exp->private;
- alias_exp.data = exp->data;
- alias_exp.hint = exp->hint;
- alias_exp.forward = exp->forward;
- alias_exp.next = exp->next;
- n = make_one_lib_file (&alias_exp, i + PREFIX_ALIAS_BASE);
- n->next = head;
- head = n;
- }
- }
-
- /* Now stick them all into the archive. */
- ar_head->next = head;
- ar_tail->next = ar_head;
- head = ar_tail;
-
- if (! bfd_set_archive_head (outarch, head))
- bfd_fatal ("bfd_set_archive_head");
-
- if (! bfd_close (outarch))
- bfd_fatal (imp_name);
-
- while (head != NULL)
- {
- bfd *n = head->next;
- bfd_close (head);
- head = n;
- }
-
- /* Delete all the temp files. */
- if (dontdeltemps == 0)
- {
- unlink (TMP_HEAD_O);
- unlink (TMP_HEAD_S);
- unlink (TMP_TAIL_O);
- unlink (TMP_TAIL_S);
- }
-
- if (dontdeltemps < 2)
- {
- char *name;
-
- name = (char *) alloca (strlen (TMP_STUB) + 10);
- for (i = 0; (exp = d_exports_lexically[i]); i++)
- {
- /* Don't delete non-existent stubs for PRIVATE entries. */
- if (exp->private)
- continue;
- sprintf (name, "%s%05d.o", TMP_STUB, i);
- if (unlink (name) < 0)
- /* xgettext:c-format */
- non_fatal (_("cannot delete %s: %s"), name, strerror (errno));
- if (ext_prefix_alias)
- {
- sprintf (name, "%s%05d.o", TMP_STUB, i + PREFIX_ALIAS_BASE);
- if (unlink (name) < 0)
- /* xgettext:c-format */
- non_fatal (_("cannot delete %s: %s"), name, strerror (errno));
- }
- }
- }
-
- inform (_("Created lib file"));
-}
-
-/* Run through the information gathered from the .o files and the
- .def file and work out the best stuff. */
-
-static int
-pfunc (const void *a, const void *b)
-{
- export_type *ap = *(export_type **) a;
- export_type *bp = *(export_type **) b;
- if (ap->ordinal == bp->ordinal)
- return 0;
-
- /* Unset ordinals go to the bottom. */
- if (ap->ordinal == -1)
- return 1;
- if (bp->ordinal == -1)
- return -1;
- return (ap->ordinal - bp->ordinal);
-}
-
-static int
-nfunc (const void *a, const void *b)
-{
- export_type *ap = *(export_type **) a;
- export_type *bp = *(export_type **) b;
- const char *an = ap->name;
- const char *bn = bp->name;
-
- if (killat)
- {
- an = (an[0] == '@') ? an + 1 : an;
- bn = (bn[0] == '@') ? bn + 1 : bn;
- }
-
- return (strcmp (an, bn));
-}
-
-static void
-remove_null_names (export_type **ptr)
-{
- int src;
- int dst;
-
- for (dst = src = 0; src < d_nfuncs; src++)
- {
- if (ptr[src])
- {
- ptr[dst] = ptr[src];
- dst++;
- }
- }
- d_nfuncs = dst;
-}
-
-static void
-process_duplicates (export_type **d_export_vec)
-{
- int more = 1;
- int i;
-
- while (more)
- {
- more = 0;
- /* Remove duplicates. */
- qsort (d_export_vec, d_nfuncs, sizeof (export_type *), nfunc);
-
- for (i = 0; i < d_nfuncs - 1; i++)
- {
- if (strcmp (d_export_vec[i]->name,
- d_export_vec[i + 1]->name) == 0)
- {
- export_type *a = d_export_vec[i];
- export_type *b = d_export_vec[i + 1];
-
- more = 1;
-
- /* xgettext:c-format */
- inform (_("Warning, ignoring duplicate EXPORT %s %d,%d"),
- a->name, a->ordinal, b->ordinal);
-
- if (a->ordinal != -1
- && b->ordinal != -1)
- /* xgettext:c-format */
- fatal (_("Error, duplicate EXPORT with oridinals: %s"),
- a->name);
-
- /* Merge attributes. */
- b->ordinal = a->ordinal > 0 ? a->ordinal : b->ordinal;
- b->constant |= a->constant;
- b->noname |= a->noname;
- b->data |= a->data;
- d_export_vec[i] = 0;
- }
-
- remove_null_names (d_export_vec);
- }
- }
-
- /* Count the names. */
- for (i = 0; i < d_nfuncs; i++)
- if (!d_export_vec[i]->noname)
- d_named_nfuncs++;
-}
-
-static void
-fill_ordinals (export_type **d_export_vec)
-{
- int lowest = -1;
- int i;
- char *ptr;
- int size = 65536;
-
- qsort (d_export_vec, d_nfuncs, sizeof (export_type *), pfunc);
-
- /* Fill in the unset ordinals with ones from our range. */
- ptr = (char *) xmalloc (size);
-
- memset (ptr, 0, size);
-
- /* Mark in our large vector all the numbers that are taken. */
- for (i = 0; i < d_nfuncs; i++)
- {
- if (d_export_vec[i]->ordinal != -1)
- {
- ptr[d_export_vec[i]->ordinal] = 1;
-
- if (lowest == -1 || d_export_vec[i]->ordinal < lowest)
- lowest = d_export_vec[i]->ordinal;
- }
- }
-
- /* Start at 1 for compatibility with MS toolchain. */
- if (lowest == -1)
- lowest = 1;
-
- /* Now fill in ordinals where the user wants us to choose. */
- for (i = 0; i < d_nfuncs; i++)
- {
- if (d_export_vec[i]->ordinal == -1)
- {
- int j;
-
- /* First try within or after any user supplied range. */
- for (j = lowest; j < size; j++)
- if (ptr[j] == 0)
- {
- ptr[j] = 1;
- d_export_vec[i]->ordinal = j;
- goto done;
- }
-
- /* Then try before the range. */
- for (j = lowest; j >0; j--)
- if (ptr[j] == 0)
- {
- ptr[j] = 1;
- d_export_vec[i]->ordinal = j;
- goto done;
- }
- done:;
- }
- }
-
- free (ptr);
-
- /* And resort. */
- qsort (d_export_vec, d_nfuncs, sizeof (export_type *), pfunc);
-
- /* Work out the lowest and highest ordinal numbers. */
- if (d_nfuncs)
- {
- if (d_export_vec[0])
- d_low_ord = d_export_vec[0]->ordinal;
- if (d_export_vec[d_nfuncs-1])
- d_high_ord = d_export_vec[d_nfuncs-1]->ordinal;
- }
-}
-
-static void
-mangle_defs (void)
-{
- /* First work out the minimum ordinal chosen. */
- export_type *exp;
-
- int i;
- int hint = 0;
- export_type **d_export_vec = xmalloc (sizeof (export_type *) * d_nfuncs);
-
- inform (_("Processing definitions"));
-
- for (i = 0, exp = d_exports; exp; i++, exp = exp->next)
- d_export_vec[i] = exp;
-
- process_duplicates (d_export_vec);
- fill_ordinals (d_export_vec);
-
- /* Put back the list in the new order. */
- d_exports = 0;
- for (i = d_nfuncs - 1; i >= 0; i--)
- {
- d_export_vec[i]->next = d_exports;
- d_exports = d_export_vec[i];
- }
-
- /* Build list in alpha order. */
- d_exports_lexically = (export_type **)
- xmalloc (sizeof (export_type *) * (d_nfuncs + 1));
-
- for (i = 0, exp = d_exports; exp; i++, exp = exp->next)
- d_exports_lexically[i] = exp;
-
- d_exports_lexically[i] = 0;
-
- qsort (d_exports_lexically, i, sizeof (export_type *), nfunc);
-
- /* Fill exp entries with their hint values. */
- for (i = 0; i < d_nfuncs; i++)
- if (!d_exports_lexically[i]->noname || show_allnames)
- d_exports_lexically[i]->hint = hint++;
-
- inform (_("Processed definitions"));
-}
-
-static void
-usage (FILE *file, int status)
-{
- /* xgetext:c-format */
- fprintf (file, _("Usage %s <option(s)> <object-file(s)>\n"), program_name);
- /* xgetext:c-format */
- fprintf (file, _(" -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"), mname);
- fprintf (file, _(" possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"));
- fprintf (file, _(" -e --output-exp <outname> Generate an export file.\n"));
- fprintf (file, _(" -l --output-lib <outname> Generate an interface library.\n"));
- fprintf (file, _(" -a --add-indirect Add dll indirects to export file.\n"));
- fprintf (file, _(" -D --dllname <name> Name of input dll to put into interface lib.\n"));
- fprintf (file, _(" -d --input-def <deffile> Name of .def file to be read in.\n"));
- fprintf (file, _(" -z --output-def <deffile> Name of .def file to be created.\n"));
- fprintf (file, _(" --export-all-symbols Export all symbols to .def\n"));
- fprintf (file, _(" --no-export-all-symbols Only export listed symbols\n"));
- fprintf (file, _(" --exclude-symbols <list> Don't export <list>\n"));
- fprintf (file, _(" --no-default-excludes Clear default exclude symbols\n"));
- fprintf (file, _(" -b --base-file <basefile> Read linker generated base file.\n"));
- fprintf (file, _(" -x --no-idata4 Don't generate idata$4 section.\n"));
- fprintf (file, _(" -c --no-idata5 Don't generate idata$5 section.\n"));
- fprintf (file, _(" -U --add-underscore Add underscores to all symbols in interface library.\n"));
- fprintf (file, _(" --add-stdcall-underscore Add underscores to stdcall symbols in interface library.\n"));
- fprintf (file, _(" -k --kill-at Kill @<n> from exported names.\n"));
- fprintf (file, _(" -A --add-stdcall-alias Add aliases without @<n>.\n"));
- fprintf (file, _(" -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"));
- fprintf (file, _(" -S --as <name> Use <name> for assembler.\n"));
- fprintf (file, _(" -f --as-flags <flags> Pass <flags> to the assembler.\n"));
- fprintf (file, _(" -C --compat-implib Create backward compatible import library.\n"));
- fprintf (file, _(" -n --no-delete Keep temp files (repeat for extra preservation).\n"));
- fprintf (file, _(" -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"));
- fprintf (file, _(" -v --verbose Be verbose.\n"));
- fprintf (file, _(" -V --version Display the program version.\n"));
- fprintf (file, _(" -h --help Display this information.\n"));
- fprintf (file, _(" @<file> Read options from <file>.\n"));
-#ifdef DLLTOOL_MCORE_ELF
- fprintf (file, _(" -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"));
- fprintf (file, _(" -L --linker <name> Use <name> as the linker.\n"));
- fprintf (file, _(" -F --linker-flags <flags> Pass <flags> to the linker.\n"));
-#endif
- exit (status);
-}
-
-#define OPTION_EXPORT_ALL_SYMS 150
-#define OPTION_NO_EXPORT_ALL_SYMS (OPTION_EXPORT_ALL_SYMS + 1)
-#define OPTION_EXCLUDE_SYMS (OPTION_NO_EXPORT_ALL_SYMS + 1)
-#define OPTION_NO_DEFAULT_EXCLUDES (OPTION_EXCLUDE_SYMS + 1)
-#define OPTION_ADD_STDCALL_UNDERSCORE (OPTION_NO_DEFAULT_EXCLUDES + 1)
-
-static const struct option long_options[] =
-{
- {"no-delete", no_argument, NULL, 'n'},
- {"dllname", required_argument, NULL, 'D'},
- {"no-idata4", no_argument, NULL, 'x'},
- {"no-idata5", no_argument, NULL, 'c'},
- {"output-exp", required_argument, NULL, 'e'},
- {"output-def", required_argument, NULL, 'z'},
- {"export-all-symbols", no_argument, NULL, OPTION_EXPORT_ALL_SYMS},
- {"no-export-all-symbols", no_argument, NULL, OPTION_NO_EXPORT_ALL_SYMS},
- {"exclude-symbols", required_argument, NULL, OPTION_EXCLUDE_SYMS},
- {"no-default-excludes", no_argument, NULL, OPTION_NO_DEFAULT_EXCLUDES},
- {"output-lib", required_argument, NULL, 'l'},
- {"def", required_argument, NULL, 'd'}, /* for compatibility with older versions */
- {"input-def", required_argument, NULL, 'd'},
- {"add-underscore", no_argument, NULL, 'U'},
- {"add-stdcall-underscore", no_argument, NULL, OPTION_ADD_STDCALL_UNDERSCORE},
- {"kill-at", no_argument, NULL, 'k'},
- {"add-stdcall-alias", no_argument, NULL, 'A'},
- {"ext-prefix-alias", required_argument, NULL, 'p'},
- {"verbose", no_argument, NULL, 'v'},
- {"version", no_argument, NULL, 'V'},
- {"help", no_argument, NULL, 'h'},
- {"machine", required_argument, NULL, 'm'},
- {"add-indirect", no_argument, NULL, 'a'},
- {"base-file", required_argument, NULL, 'b'},
- {"as", required_argument, NULL, 'S'},
- {"as-flags", required_argument, NULL, 'f'},
- {"mcore-elf", required_argument, NULL, 'M'},
- {"compat-implib", no_argument, NULL, 'C'},
- {"temp-prefix", required_argument, NULL, 't'},
- {NULL,0,NULL,0}
-};
-
-int main (int, char **);
-
-int
-main (int ac, char **av)
-{
- int c;
- int i;
- char *firstarg = 0;
- program_name = av[0];
- oav = av;
-
-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- expandargv (&ac, &av);
-
- while ((c = getopt_long (ac, av,
-#ifdef DLLTOOL_MCORE_ELF
- "m:e:l:aD:d:z:b:xp:cCuUkAS:f:nvVHhM:L:F:",
-#else
- "m:e:l:aD:d:z:b:xp:cCuUkAS:f:nvVHh",
-#endif
- long_options, 0))
- != EOF)
- {
- switch (c)
- {
- case OPTION_EXPORT_ALL_SYMS:
- export_all_symbols = TRUE;
- break;
- case OPTION_NO_EXPORT_ALL_SYMS:
- export_all_symbols = FALSE;
- break;
- case OPTION_EXCLUDE_SYMS:
- add_excludes (optarg);
- break;
- case OPTION_NO_DEFAULT_EXCLUDES:
- do_default_excludes = FALSE;
- break;
- case OPTION_ADD_STDCALL_UNDERSCORE:
- add_stdcall_underscore = 1;
- break;
- case 'x':
- no_idata4 = 1;
- break;
- case 'c':
- no_idata5 = 1;
- break;
- case 'S':
- as_name = optarg;
- break;
- case 't':
- tmp_prefix = optarg;
- break;
- case 'f':
- as_flags = optarg;
- break;
-
- /* Ignored for compatibility. */
- case 'u':
- break;
- case 'a':
- add_indirect = 1;
- break;
- case 'z':
- output_def = fopen (optarg, FOPEN_WT);
- break;
- case 'D':
- dll_name = (char*) lbasename (optarg);
- if (dll_name != optarg)
- non_fatal (_("Path components stripped from dllname, '%s'."),
- optarg);
- break;
- case 'l':
- imp_name = optarg;
- break;
- case 'e':
- exp_name = optarg;
- break;
- case 'H':
- case 'h':
- usage (stdout, 0);
- break;
- case 'm':
- mname = optarg;
- break;
- case 'v':
- verbose = 1;
- break;
- case 'V':
- print_version (program_name);
- break;
- case 'U':
- add_underscore = 1;
- break;
- case 'k':
- killat = 1;
- break;
- case 'A':
- add_stdcall_alias = 1;
- break;
- case 'p':
- ext_prefix_alias = optarg;
- break;
- case 'd':
- def_file = optarg;
- break;
- case 'n':
- dontdeltemps++;
- break;
- case 'b':
- base_file = fopen (optarg, FOPEN_RB);
-
- if (!base_file)
- /* xgettext:c-format */
- fatal (_("Unable to open base-file: %s"), optarg);
-
- break;
-#ifdef DLLTOOL_MCORE_ELF
- case 'M':
- mcore_elf_out_file = optarg;
- break;
- case 'L':
- mcore_elf_linker = optarg;
- break;
- case 'F':
- mcore_elf_linker_flags = optarg;
- break;
-#endif
- case 'C':
- create_compat_implib = 1;
- break;
- default:
- usage (stderr, 1);
- break;
- }
- }
-
- if (!tmp_prefix)
- tmp_prefix = prefix_encode ("d", getpid ());
-
- for (i = 0; mtable[i].type; i++)
- if (strcmp (mtable[i].type, mname) == 0)
- break;
-
- if (!mtable[i].type)
- /* xgettext:c-format */
- fatal (_("Machine '%s' not supported"), mname);
-
- machine = i;
-
- if (!dll_name && exp_name)
- {
- /* If we are inferring dll_name from exp_name,
- strip off any path components, without emitting
- a warning. */
- const char* exp_basename = lbasename (exp_name);
- const int len = strlen (exp_basename) + 5;
- dll_name = xmalloc (len);
- strcpy (dll_name, exp_basename);
- strcat (dll_name, ".dll");
- }
-
- if (as_name == NULL)
- as_name = deduce_name ("as");
-
- /* Don't use the default exclude list if we're reading only the
- symbols in the .drectve section. The default excludes are meant
- to avoid exporting DLL entry point and Cygwin32 impure_ptr. */
- if (! export_all_symbols)
- do_default_excludes = FALSE;
-
- if (do_default_excludes)
- set_default_excludes ();
-
- if (def_file)
- process_def_file (def_file);
-
- while (optind < ac)
- {
- if (!firstarg)
- firstarg = av[optind];
- scan_obj_file (av[optind]);
- optind++;
- }
-
- mangle_defs ();
-
- if (exp_name)
- gen_exp_file ();
-
- if (imp_name)
- {
- /* Make imp_name safe for use as a label. */
- char *p;
-
- imp_name_lab = xstrdup (imp_name);
- for (p = imp_name_lab; *p; p++)
- {
- if (!ISALNUM (*p))
- *p = '_';
- }
- head_label = make_label("_head_", imp_name_lab);
- gen_lib_file ();
- }
-
- if (output_def)
- gen_def_file ();
-
-#ifdef DLLTOOL_MCORE_ELF
- if (mcore_elf_out_file)
- mcore_elf_gen_out_file ();
-#endif
-
- return 0;
-}
-
-/* Look for the program formed by concatenating PROG_NAME and the
- string running from PREFIX to END_PREFIX. If the concatenated
- string contains a '/', try appending EXECUTABLE_SUFFIX if it is
- appropriate. */
-
-static char *
-look_for_prog (const char *prog_name, const char *prefix, int end_prefix)
-{
- struct stat s;
- char *cmd;
-
- cmd = xmalloc (strlen (prefix)
- + strlen (prog_name)
-#ifdef HAVE_EXECUTABLE_SUFFIX
- + strlen (EXECUTABLE_SUFFIX)
-#endif
- + 10);
- strcpy (cmd, prefix);
-
- sprintf (cmd + end_prefix, "%s", prog_name);
-
- if (strchr (cmd, '/') != NULL)
- {
- int found;
-
- found = (stat (cmd, &s) == 0
-#ifdef HAVE_EXECUTABLE_SUFFIX
- || stat (strcat (cmd, EXECUTABLE_SUFFIX), &s) == 0
-#endif
- );
-
- if (! found)
- {
- /* xgettext:c-format */
- inform (_("Tried file: %s"), cmd);
- free (cmd);
- return NULL;
- }
- }
-
- /* xgettext:c-format */
- inform (_("Using file: %s"), cmd);
-
- return cmd;
-}
-
-/* Deduce the name of the program we are want to invoke.
- PROG_NAME is the basic name of the program we want to run,
- eg "as" or "ld". The catch is that we might want actually
- run "i386-pe-as" or "ppc-pe-ld".
-
- If argv[0] contains the full path, then try to find the program
- in the same place, with and then without a target-like prefix.
-
- Given, argv[0] = /usr/local/bin/i586-cygwin32-dlltool,
- deduce_name("as") uses the following search order:
-
- /usr/local/bin/i586-cygwin32-as
- /usr/local/bin/as
- as
-
- If there's an EXECUTABLE_SUFFIX, it'll use that as well; for each
- name, it'll try without and then with EXECUTABLE_SUFFIX.
-
- Given, argv[0] = i586-cygwin32-dlltool, it will not even try "as"
- as the fallback, but rather return i586-cygwin32-as.
-
- Oh, and given, argv[0] = dlltool, it'll return "as".
-
- Returns a dynamically allocated string. */
-
-static char *
-deduce_name (const char *prog_name)
-{
- char *cmd;
- char *dash, *slash, *cp;
-
- dash = NULL;
- slash = NULL;
- for (cp = program_name; *cp != '\0'; ++cp)
- {
- if (*cp == '-')
- dash = cp;
- if (
-#if defined(__DJGPP__) || defined (__CYGWIN__) || defined(__WIN32__)
- *cp == ':' || *cp == '\\' ||
-#endif
- *cp == '/')
- {
- slash = cp;
- dash = NULL;
- }
- }
-
- cmd = NULL;
-
- if (dash != NULL)
- {
- /* First, try looking for a prefixed PROG_NAME in the
- PROGRAM_NAME directory, with the same prefix as PROGRAM_NAME. */
- cmd = look_for_prog (prog_name, program_name, dash - program_name + 1);
- }
-
- if (slash != NULL && cmd == NULL)
- {
- /* Next, try looking for a PROG_NAME in the same directory as
- that of this program. */
- cmd = look_for_prog (prog_name, program_name, slash - program_name + 1);
- }
-
- if (cmd == NULL)
- {
- /* Just return PROG_NAME as is. */
- cmd = xstrdup (prog_name);
- }
-
- return cmd;
-}
-
-#ifdef DLLTOOL_MCORE_ELF
-typedef struct fname_cache
-{
- char * filename;
- struct fname_cache * next;
-}
-fname_cache;
-
-static fname_cache fnames;
-
-static void
-mcore_elf_cache_filename (char * filename)
-{
- fname_cache * ptr;
-
- ptr = & fnames;
-
- while (ptr->next != NULL)
- ptr = ptr->next;
-
- ptr->filename = filename;
- ptr->next = (fname_cache *) malloc (sizeof (fname_cache));
- if (ptr->next != NULL)
- ptr->next->next = NULL;
-}
-
-#define MCORE_ELF_TMP_OBJ "mcoreelf.o"
-#define MCORE_ELF_TMP_EXP "mcoreelf.exp"
-#define MCORE_ELF_TMP_LIB "mcoreelf.lib"
-
-static void
-mcore_elf_gen_out_file (void)
-{
- fname_cache * ptr;
- dyn_string_t ds;
-
- /* Step one. Run 'ld -r' on the input object files in order to resolve
- any internal references and to generate a single .exports section. */
- ptr = & fnames;
-
- ds = dyn_string_new (100);
- dyn_string_append_cstr (ds, "-r ");
-
- if (mcore_elf_linker_flags != NULL)
- dyn_string_append_cstr (ds, mcore_elf_linker_flags);
-
- while (ptr->next != NULL)
- {
- dyn_string_append_cstr (ds, ptr->filename);
- dyn_string_append_cstr (ds, " ");
-
- ptr = ptr->next;
- }
-
- dyn_string_append_cstr (ds, "-o ");
- dyn_string_append_cstr (ds, MCORE_ELF_TMP_OBJ);
-
- if (mcore_elf_linker == NULL)
- mcore_elf_linker = deduce_name ("ld");
-
- run (mcore_elf_linker, ds->s);
-
- dyn_string_delete (ds);
-
- /* Step two. Create a .exp file and a .lib file from the temporary file.
- Do this by recursively invoking dlltool... */
- ds = dyn_string_new (100);
-
- dyn_string_append_cstr (ds, "-S ");
- dyn_string_append_cstr (ds, as_name);
-
- dyn_string_append_cstr (ds, " -e ");
- dyn_string_append_cstr (ds, MCORE_ELF_TMP_EXP);
- dyn_string_append_cstr (ds, " -l ");
- dyn_string_append_cstr (ds, MCORE_ELF_TMP_LIB);
- dyn_string_append_cstr (ds, " " );
- dyn_string_append_cstr (ds, MCORE_ELF_TMP_OBJ);
-
- if (verbose)
- dyn_string_append_cstr (ds, " -v");
-
- if (dontdeltemps)
- {
- dyn_string_append_cstr (ds, " -n");
-
- if (dontdeltemps > 1)
- dyn_string_append_cstr (ds, " -n");
- }
-
- /* XXX - FIME: ought to check/copy other command line options as well. */
- run (program_name, ds->s);
-
- dyn_string_delete (ds);
-
- /* Step four. Feed the .exp and object files to ld -shared to create the dll. */
- ds = dyn_string_new (100);
-
- dyn_string_append_cstr (ds, "-shared ");
-
- if (mcore_elf_linker_flags)
- dyn_string_append_cstr (ds, mcore_elf_linker_flags);
-
- dyn_string_append_cstr (ds, " ");
- dyn_string_append_cstr (ds, MCORE_ELF_TMP_EXP);
- dyn_string_append_cstr (ds, " ");
- dyn_string_append_cstr (ds, MCORE_ELF_TMP_OBJ);
- dyn_string_append_cstr (ds, " -o ");
- dyn_string_append_cstr (ds, mcore_elf_out_file);
-
- run (mcore_elf_linker, ds->s);
-
- dyn_string_delete (ds);
-
- if (dontdeltemps == 0)
- unlink (MCORE_ELF_TMP_EXP);
-
- if (dontdeltemps < 2)
- unlink (MCORE_ELF_TMP_OBJ);
-}
-#endif /* DLLTOOL_MCORE_ELF */
diff --git a/binutils-2.17/binutils/dlltool.h b/binutils-2.17/binutils/dlltool.h
deleted file mode 100644
index e2634ea2..00000000
--- a/binutils-2.17/binutils/dlltool.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* dlltool.h -- header file for dlltool
- Copyright 1997, 1998, 2003, 2004 Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#include "ansidecl.h"
-#include <stdio.h>
-
-extern void def_code (int);
-extern void def_data (int);
-extern void def_description (const char *);
-extern void def_exports (const char *, const char *, int, int, int, int, int);
-extern void def_heapsize (int, int);
-extern void def_import
- (const char *, const char *, const char *, const char *, int);
-extern void def_library (const char *, int);
-extern void def_name (const char *, int);
-extern void def_section (const char *, int);
-extern void def_stacksize (int, int);
-extern void def_version (int, int);
-extern int yyparse (void);
-extern int yyerror (const char *);
-extern int yylex (void);
-
-extern int yydebug;
-extern FILE *yyin;
-extern int linenumber;
diff --git a/binutils-2.17/binutils/dllwrap.c b/binutils-2.17/binutils/dllwrap.c
deleted file mode 100644
index f93c75d6..00000000
--- a/binutils-2.17/binutils/dllwrap.c
+++ /dev/null
@@ -1,1207 +0,0 @@
-/* dllwrap.c -- wrapper for DLLTOOL and GCC to generate PE style DLLs
- Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
- Contributed by Mumit Khan (khan@xraylith.wisc.edu).
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* AIX requires this to be the first thing in the file. */
-#ifndef __GNUC__
-# ifdef _AIX
- #pragma alloca
-#endif
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "bfd.h"
-#include "libiberty.h"
-#include "bucomm.h"
-#include "getopt.h"
-#include "dyn-string.h"
-
-#include <time.h>
-#include <sys/stat.h>
-#include <stdarg.h>
-
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#else /* ! HAVE_SYS_WAIT_H */
-#if ! defined (_WIN32) || defined (__CYGWIN32__)
-#ifndef WIFEXITED
-#define WIFEXITED(w) (((w)&0377) == 0)
-#endif
-#ifndef WIFSIGNALED
-#define WIFSIGNALED(w) (((w)&0377) != 0177 && ((w)&~0377) == 0)
-#endif
-#ifndef WTERMSIG
-#define WTERMSIG(w) ((w) & 0177)
-#endif
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(w) (((w) >> 8) & 0377)
-#endif
-#else /* defined (_WIN32) && ! defined (__CYGWIN32__) */
-#ifndef WIFEXITED
-#define WIFEXITED(w) (((w) & 0xff) == 0)
-#endif
-#ifndef WIFSIGNALED
-#define WIFSIGNALED(w) (((w) & 0xff) != 0 && ((w) & 0xff) != 0x7f)
-#endif
-#ifndef WTERMSIG
-#define WTERMSIG(w) ((w) & 0x7f)
-#endif
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(w) (((w) & 0xff00) >> 8)
-#endif
-#endif /* defined (_WIN32) && ! defined (__CYGWIN32__) */
-#endif /* ! HAVE_SYS_WAIT_H */
-
-static char *driver_name = NULL;
-static char *cygwin_driver_flags =
- "-Wl,--dll -nostartfiles";
-static char *mingw32_driver_flags = "-mdll";
-static char *generic_driver_flags = "-Wl,--dll";
-
-static char *entry_point;
-
-static char *dlltool_name = NULL;
-
-static char *target = TARGET;
-
-typedef enum {
- UNKNOWN_TARGET,
- CYGWIN_TARGET,
- MINGW_TARGET
-}
-target_type;
-
-static target_type which_target = UNKNOWN_TARGET;
-
-static int dontdeltemps = 0;
-static int dry_run = 0;
-
-static char *prog_name;
-
-static int verbose = 0;
-
-static char *dll_file_name;
-static char *dll_name;
-static char *base_file_name;
-static char *exp_file_name;
-static char *def_file_name;
-static int delete_base_file = 1;
-static int delete_exp_file = 1;
-static int delete_def_file = 1;
-
-static int run (const char *, char *);
-static char *mybasename (const char *);
-static int strhash (const char *);
-static void usage (FILE *, int);
-static void display (const char *, va_list) ATTRIBUTE_PRINTF(1,0);
-static void inform (const char *, ...) ATTRIBUTE_PRINTF_1;
-static void warn (const char *, ...) ATTRIBUTE_PRINTF_1;
-static char *look_for_prog (const char *, const char *, int);
-static char *deduce_name (const char *);
-static void delete_temp_files (void);
-static void cleanup_and_exit (int);
-
-/**********************************************************************/
-
-/* Please keep the following 4 routines in sync with dlltool.c:
- display ()
- inform ()
- look_for_prog ()
- deduce_name ()
- It's not worth the hassle to break these out since dllwrap will
- (hopefully) soon be retired in favor of `ld --shared. */
-
-static void
-display (const char * message, va_list args)
-{
- if (prog_name != NULL)
- fprintf (stderr, "%s: ", prog_name);
-
- vfprintf (stderr, message, args);
- fputc ('\n', stderr);
-}
-
-
-static void
-inform VPARAMS ((const char *message, ...))
-{
- VA_OPEN (args, message);
- VA_FIXEDARG (args, const char *, message);
-
- if (!verbose)
- return;
-
- display (message, args);
-
- VA_CLOSE (args);
-}
-
-static void
-warn VPARAMS ((const char *format, ...))
-{
- VA_OPEN (args, format);
- VA_FIXEDARG (args, const char *, format);
-
- display (format, args);
-
- VA_CLOSE (args);
-}
-
-/* Look for the program formed by concatenating PROG_NAME and the
- string running from PREFIX to END_PREFIX. If the concatenated
- string contains a '/', try appending EXECUTABLE_SUFFIX if it is
- appropriate. */
-
-static char *
-look_for_prog (const char *prog_name, const char *prefix, int end_prefix)
-{
- struct stat s;
- char *cmd;
-
- cmd = xmalloc (strlen (prefix)
- + strlen (prog_name)
-#ifdef HAVE_EXECUTABLE_SUFFIX
- + strlen (EXECUTABLE_SUFFIX)
-#endif
- + 10);
- strcpy (cmd, prefix);
-
- sprintf (cmd + end_prefix, "%s", prog_name);
-
- if (strchr (cmd, '/') != NULL)
- {
- int found;
-
- found = (stat (cmd, &s) == 0
-#ifdef HAVE_EXECUTABLE_SUFFIX
- || stat (strcat (cmd, EXECUTABLE_SUFFIX), &s) == 0
-#endif
- );
-
- if (! found)
- {
- /* xgettext:c-format */
- inform (_("Tried file: %s"), cmd);
- free (cmd);
- return NULL;
- }
- }
-
- /* xgettext:c-format */
- inform (_("Using file: %s"), cmd);
-
- return cmd;
-}
-
-/* Deduce the name of the program we are want to invoke.
- PROG_NAME is the basic name of the program we want to run,
- eg "as" or "ld". The catch is that we might want actually
- run "i386-pe-as" or "ppc-pe-ld".
-
- If argv[0] contains the full path, then try to find the program
- in the same place, with and then without a target-like prefix.
-
- Given, argv[0] = /usr/local/bin/i586-cygwin32-dlltool,
- deduce_name("as") uses the following search order:
-
- /usr/local/bin/i586-cygwin32-as
- /usr/local/bin/as
- as
-
- If there's an EXECUTABLE_SUFFIX, it'll use that as well; for each
- name, it'll try without and then with EXECUTABLE_SUFFIX.
-
- Given, argv[0] = i586-cygwin32-dlltool, it will not even try "as"
- as the fallback, but rather return i586-cygwin32-as.
-
- Oh, and given, argv[0] = dlltool, it'll return "as".
-
- Returns a dynamically allocated string. */
-
-static char *
-deduce_name (const char * name)
-{
- char *cmd;
- const char *dash;
- const char *slash;
- const char *cp;
-
- dash = NULL;
- slash = NULL;
- for (cp = prog_name; *cp != '\0'; ++cp)
- {
- if (*cp == '-')
- dash = cp;
-
- if (
-#if defined(__DJGPP__) || defined (__CYGWIN__) || defined(__WIN32__)
- *cp == ':' || *cp == '\\' ||
-#endif
- *cp == '/')
- {
- slash = cp;
- dash = NULL;
- }
- }
-
- cmd = NULL;
-
- if (dash != NULL)
- /* First, try looking for a prefixed NAME in the
- PROG_NAME directory, with the same prefix as PROG_NAME. */
- cmd = look_for_prog (name, prog_name, dash - prog_name + 1);
-
- if (slash != NULL && cmd == NULL)
- /* Next, try looking for a NAME in the same directory as
- that of this program. */
- cmd = look_for_prog (name, prog_name, slash - prog_name + 1);
-
- if (cmd == NULL)
- /* Just return NAME as is. */
- cmd = xstrdup (name);
-
- return cmd;
-}
-
-static void
-delete_temp_files (void)
-{
- if (delete_base_file && base_file_name)
- {
- if (verbose)
- {
- if (dontdeltemps)
- warn (_("Keeping temporary base file %s"), base_file_name);
- else
- warn (_("Deleting temporary base file %s"), base_file_name);
- }
- if (! dontdeltemps)
- {
- unlink (base_file_name);
- free (base_file_name);
- }
- }
-
- if (delete_exp_file && exp_file_name)
- {
- if (verbose)
- {
- if (dontdeltemps)
- warn (_("Keeping temporary exp file %s"), exp_file_name);
- else
- warn (_("Deleting temporary exp file %s"), exp_file_name);
- }
- if (! dontdeltemps)
- {
- unlink (exp_file_name);
- free (exp_file_name);
- }
- }
- if (delete_def_file && def_file_name)
- {
- if (verbose)
- {
- if (dontdeltemps)
- warn (_("Keeping temporary def file %s"), def_file_name);
- else
- warn (_("Deleting temporary def file %s"), def_file_name);
- }
- if (! dontdeltemps)
- {
- unlink (def_file_name);
- free (def_file_name);
- }
- }
-}
-
-static void
-cleanup_and_exit (int status)
-{
- delete_temp_files ();
- exit (status);
-}
-
-static int
-run (const char *what, char *args)
-{
- char *s;
- int pid, wait_status, retcode;
- int i;
- const char **argv;
- char *errmsg_fmt, *errmsg_arg;
- char *temp_base = choose_temp_base ();
- int in_quote;
- char sep;
-
- if (verbose || dry_run)
- fprintf (stderr, "%s %s\n", what, args);
-
- /* Count the args */
- i = 0;
- for (s = args; *s; s++)
- if (*s == ' ')
- i++;
- i++;
- argv = alloca (sizeof (char *) * (i + 3));
- i = 0;
- argv[i++] = what;
- s = args;
- while (1)
- {
- while (*s == ' ' && *s != 0)
- s++;
- if (*s == 0)
- break;
- in_quote = (*s == '\'' || *s == '"');
- sep = (in_quote) ? *s++ : ' ';
- argv[i++] = s;
- while (*s != sep && *s != 0)
- s++;
- if (*s == 0)
- break;
- *s++ = 0;
- if (in_quote)
- s++;
- }
- argv[i++] = NULL;
-
- if (dry_run)
- return 0;
-
- pid = pexecute (argv[0], (char * const *) argv, prog_name, temp_base,
- &errmsg_fmt, &errmsg_arg, PEXECUTE_ONE | PEXECUTE_SEARCH);
-
- if (pid == -1)
- {
- int errno_val = errno;
-
- fprintf (stderr, "%s: ", prog_name);
- fprintf (stderr, errmsg_fmt, errmsg_arg);
- fprintf (stderr, ": %s\n", strerror (errno_val));
- return 1;
- }
-
- retcode = 0;
- pid = pwait (pid, &wait_status, 0);
- if (pid == -1)
- {
- warn ("wait: %s", strerror (errno));
- retcode = 1;
- }
- else if (WIFSIGNALED (wait_status))
- {
- warn (_("subprocess got fatal signal %d"), WTERMSIG (wait_status));
- retcode = 1;
- }
- else if (WIFEXITED (wait_status))
- {
- if (WEXITSTATUS (wait_status) != 0)
- {
- warn (_("%s exited with status %d"), what, WEXITSTATUS (wait_status));
- retcode = 1;
- }
- }
- else
- retcode = 1;
-
- return retcode;
-}
-
-static char *
-mybasename (const char *name)
-{
- const char *base = name;
-
- while (*name)
- {
- if (*name == '/' || *name == '\\')
- {
- base = name + 1;
- }
- ++name;
- }
- return (char *) base;
-}
-
-static int
-strhash (const char *str)
-{
- const unsigned char *s;
- unsigned long hash;
- unsigned int c;
- unsigned int len;
-
- hash = 0;
- len = 0;
- s = (const unsigned char *) str;
- while ((c = *s++) != '\0')
- {
- hash += c + (c << 17);
- hash ^= hash >> 2;
- ++len;
- }
- hash += len + (len << 17);
- hash ^= hash >> 2;
-
- return hash;
-}
-
-/**********************************************************************/
-
-static void
-usage (FILE *file, int status)
-{
- fprintf (file, _("Usage %s <option(s)> <object-file(s)>\n"), prog_name);
- fprintf (file, _(" Generic options:\n"));
- fprintf (file, _(" @<file> Read options from <file>\n"));
- fprintf (file, _(" --quiet, -q Work quietly\n"));
- fprintf (file, _(" --verbose, -v Verbose\n"));
- fprintf (file, _(" --version Print dllwrap version\n"));
- fprintf (file, _(" --implib <outname> Synonym for --output-lib\n"));
- fprintf (file, _(" Options for %s:\n"), prog_name);
- fprintf (file, _(" --driver-name <driver> Defaults to \"gcc\"\n"));
- fprintf (file, _(" --driver-flags <flags> Override default ld flags\n"));
- fprintf (file, _(" --dlltool-name <dlltool> Defaults to \"dlltool\"\n"));
- fprintf (file, _(" --entry <entry> Specify alternate DLL entry point\n"));
- fprintf (file, _(" --image-base <base> Specify image base address\n"));
- fprintf (file, _(" --target <machine> i386-cygwin32 or i386-mingw32\n"));
- fprintf (file, _(" --dry-run Show what needs to be run\n"));
- fprintf (file, _(" --mno-cygwin Create Mingw DLL\n"));
- fprintf (file, _(" Options passed to DLLTOOL:\n"));
- fprintf (file, _(" --machine <machine>\n"));
- fprintf (file, _(" --output-exp <outname> Generate export file.\n"));
- fprintf (file, _(" --output-lib <outname> Generate input library.\n"));
- fprintf (file, _(" --add-indirect Add dll indirects to export file.\n"));
- fprintf (file, _(" --dllname <name> Name of input dll to put into output lib.\n"));
- fprintf (file, _(" --def <deffile> Name input .def file\n"));
- fprintf (file, _(" --output-def <deffile> Name output .def file\n"));
- fprintf (file, _(" --export-all-symbols Export all symbols to .def\n"));
- fprintf (file, _(" --no-export-all-symbols Only export .drectve symbols\n"));
- fprintf (file, _(" --exclude-symbols <list> Exclude <list> from .def\n"));
- fprintf (file, _(" --no-default-excludes Zap default exclude symbols\n"));
- fprintf (file, _(" --base-file <basefile> Read linker generated base file\n"));
- fprintf (file, _(" --no-idata4 Don't generate idata$4 section\n"));
- fprintf (file, _(" --no-idata5 Don't generate idata$5 section\n"));
- fprintf (file, _(" -U Add underscores to .lib\n"));
- fprintf (file, _(" -k Kill @<n> from exported names\n"));
- fprintf (file, _(" --add-stdcall-alias Add aliases without @<n>\n"));
- fprintf (file, _(" --as <name> Use <name> for assembler\n"));
- fprintf (file, _(" --nodelete Keep temp files.\n"));
- fprintf (file, _(" Rest are passed unmodified to the language driver\n"));
- fprintf (file, "\n\n");
- exit (status);
-}
-
-#define OPTION_START 149
-
-/* GENERIC options. */
-#define OPTION_QUIET (OPTION_START + 1)
-#define OPTION_VERBOSE (OPTION_QUIET + 1)
-#define OPTION_VERSION (OPTION_VERBOSE + 1)
-
-/* DLLWRAP options. */
-#define OPTION_DRY_RUN (OPTION_VERSION + 1)
-#define OPTION_DRIVER_NAME (OPTION_DRY_RUN + 1)
-#define OPTION_DRIVER_FLAGS (OPTION_DRIVER_NAME + 1)
-#define OPTION_DLLTOOL_NAME (OPTION_DRIVER_FLAGS + 1)
-#define OPTION_ENTRY (OPTION_DLLTOOL_NAME + 1)
-#define OPTION_IMAGE_BASE (OPTION_ENTRY + 1)
-#define OPTION_TARGET (OPTION_IMAGE_BASE + 1)
-#define OPTION_MNO_CYGWIN (OPTION_TARGET + 1)
-
-/* DLLTOOL options. */
-#define OPTION_NODELETE (OPTION_MNO_CYGWIN + 1)
-#define OPTION_DLLNAME (OPTION_NODELETE + 1)
-#define OPTION_NO_IDATA4 (OPTION_DLLNAME + 1)
-#define OPTION_NO_IDATA5 (OPTION_NO_IDATA4 + 1)
-#define OPTION_OUTPUT_EXP (OPTION_NO_IDATA5 + 1)
-#define OPTION_OUTPUT_DEF (OPTION_OUTPUT_EXP + 1)
-#define OPTION_EXPORT_ALL_SYMS (OPTION_OUTPUT_DEF + 1)
-#define OPTION_NO_EXPORT_ALL_SYMS (OPTION_EXPORT_ALL_SYMS + 1)
-#define OPTION_EXCLUDE_SYMS (OPTION_NO_EXPORT_ALL_SYMS + 1)
-#define OPTION_NO_DEFAULT_EXCLUDES (OPTION_EXCLUDE_SYMS + 1)
-#define OPTION_OUTPUT_LIB (OPTION_NO_DEFAULT_EXCLUDES + 1)
-#define OPTION_DEF (OPTION_OUTPUT_LIB + 1)
-#define OPTION_ADD_UNDERSCORE (OPTION_DEF + 1)
-#define OPTION_KILLAT (OPTION_ADD_UNDERSCORE + 1)
-#define OPTION_HELP (OPTION_KILLAT + 1)
-#define OPTION_MACHINE (OPTION_HELP + 1)
-#define OPTION_ADD_INDIRECT (OPTION_MACHINE + 1)
-#define OPTION_BASE_FILE (OPTION_ADD_INDIRECT + 1)
-#define OPTION_AS (OPTION_BASE_FILE + 1)
-
-static const struct option long_options[] =
-{
- /* generic options. */
- {"quiet", no_argument, NULL, 'q'},
- {"verbose", no_argument, NULL, 'v'},
- {"version", no_argument, NULL, OPTION_VERSION},
- {"implib", required_argument, NULL, OPTION_OUTPUT_LIB},
-
- /* dllwrap options. */
- {"dry-run", no_argument, NULL, OPTION_DRY_RUN},
- {"driver-name", required_argument, NULL, OPTION_DRIVER_NAME},
- {"driver-flags", required_argument, NULL, OPTION_DRIVER_FLAGS},
- {"dlltool-name", required_argument, NULL, OPTION_DLLTOOL_NAME},
- {"entry", required_argument, NULL, 'e'},
- {"image-base", required_argument, NULL, OPTION_IMAGE_BASE},
- {"target", required_argument, NULL, OPTION_TARGET},
-
- /* dlltool options. */
- {"no-delete", no_argument, NULL, 'n'},
- {"dllname", required_argument, NULL, OPTION_DLLNAME},
- {"no-idata4", no_argument, NULL, OPTION_NO_IDATA4},
- {"no-idata5", no_argument, NULL, OPTION_NO_IDATA5},
- {"output-exp", required_argument, NULL, OPTION_OUTPUT_EXP},
- {"output-def", required_argument, NULL, OPTION_OUTPUT_DEF},
- {"export-all-symbols", no_argument, NULL, OPTION_EXPORT_ALL_SYMS},
- {"no-export-all-symbols", no_argument, NULL, OPTION_NO_EXPORT_ALL_SYMS},
- {"exclude-symbols", required_argument, NULL, OPTION_EXCLUDE_SYMS},
- {"no-default-excludes", no_argument, NULL, OPTION_NO_DEFAULT_EXCLUDES},
- {"output-lib", required_argument, NULL, OPTION_OUTPUT_LIB},
- {"def", required_argument, NULL, OPTION_DEF},
- {"add-underscore", no_argument, NULL, 'U'},
- {"killat", no_argument, NULL, 'k'},
- {"add-stdcall-alias", no_argument, NULL, 'A'},
- {"help", no_argument, NULL, 'h'},
- {"machine", required_argument, NULL, OPTION_MACHINE},
- {"add-indirect", no_argument, NULL, OPTION_ADD_INDIRECT},
- {"base-file", required_argument, NULL, OPTION_BASE_FILE},
- {"as", required_argument, NULL, OPTION_AS},
- {0, 0, 0, 0}
-};
-
-int main (int, char **);
-
-int
-main (int argc, char **argv)
-{
- int c;
- int i;
-
- char **saved_argv = 0;
- int cmdline_len = 0;
-
- int export_all = 0;
-
- int *dlltool_arg_indices;
- int *driver_arg_indices;
-
- char *driver_flags = 0;
- char *output_lib_file_name = 0;
-
- dyn_string_t dlltool_cmdline;
- dyn_string_t driver_cmdline;
-
- int def_file_seen = 0;
-
- char *image_base_str = 0;
-
- prog_name = argv[0];
-
-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- expandargv (&argc, &argv);
-
- saved_argv = (char **) xmalloc (argc * sizeof (char*));
- dlltool_arg_indices = (int *) xmalloc (argc * sizeof (int));
- driver_arg_indices = (int *) xmalloc (argc * sizeof (int));
- for (i = 0; i < argc; ++i)
- {
- size_t len = strlen (argv[i]);
- char *arg = (char *) xmalloc (len + 1);
- strcpy (arg, argv[i]);
- cmdline_len += len;
- saved_argv[i] = arg;
- dlltool_arg_indices[i] = 0;
- driver_arg_indices[i] = 1;
- }
- cmdline_len++;
-
- /* We recognize dllwrap and dlltool options, and everything else is
- passed onto the language driver (eg., to GCC). We collect options
- to dlltool and driver in dlltool_args and driver_args. */
-
- opterr = 0;
- while ((c = getopt_long_only (argc, argv, "nkAqve:Uho:l:L:I:",
- long_options, (int *) 0)) != EOF)
- {
- int dlltool_arg;
- int driver_arg;
- int single_word_option_value_pair;
-
- dlltool_arg = 0;
- driver_arg = 1;
- single_word_option_value_pair = 0;
-
- if (c != '?')
- {
- /* We recognize this option, so it has to be either dllwrap or
- dlltool option. Do not pass to driver unless it's one of the
- generic options that are passed to all the tools (such as -v)
- which are dealt with later. */
- driver_arg = 0;
- }
-
- /* deal with generic and dllwrap options first. */
- switch (c)
- {
- case 'h':
- usage (stdout, 0);
- break;
- case 'q':
- verbose = 0;
- break;
- case 'v':
- verbose = 1;
- break;
- case OPTION_VERSION:
- print_version (prog_name);
- break;
- case 'e':
- entry_point = optarg;
- break;
- case OPTION_IMAGE_BASE:
- image_base_str = optarg;
- break;
- case OPTION_DEF:
- def_file_name = optarg;
- def_file_seen = 1;
- delete_def_file = 0;
- break;
- case 'n':
- dontdeltemps = 1;
- dlltool_arg = 1;
- break;
- case 'o':
- dll_file_name = optarg;
- break;
- case 'I':
- case 'l':
- case 'L':
- driver_arg = 1;
- break;
- case OPTION_DLLNAME:
- dll_name = optarg;
- break;
- case OPTION_DRY_RUN:
- dry_run = 1;
- break;
- case OPTION_DRIVER_NAME:
- driver_name = optarg;
- break;
- case OPTION_DRIVER_FLAGS:
- driver_flags = optarg;
- break;
- case OPTION_DLLTOOL_NAME:
- dlltool_name = optarg;
- break;
- case OPTION_TARGET:
- target = optarg;
- break;
- case OPTION_MNO_CYGWIN:
- target = "i386-mingw32";
- break;
- case OPTION_BASE_FILE:
- base_file_name = optarg;
- delete_base_file = 0;
- break;
- case OPTION_OUTPUT_EXP:
- exp_file_name = optarg;
- delete_exp_file = 0;
- break;
- case OPTION_EXPORT_ALL_SYMS:
- export_all = 1;
- break;
- case OPTION_OUTPUT_LIB:
- output_lib_file_name = optarg;
- break;
- case '?':
- break;
- default:
- dlltool_arg = 1;
- break;
- }
-
- /* Handle passing through --option=value case. */
- if (optarg
- && saved_argv[optind-1][0] == '-'
- && saved_argv[optind-1][1] == '-'
- && strchr (saved_argv[optind-1], '='))
- single_word_option_value_pair = 1;
-
- if (dlltool_arg)
- {
- dlltool_arg_indices[optind-1] = 1;
- if (optarg && ! single_word_option_value_pair)
- {
- dlltool_arg_indices[optind-2] = 1;
- }
- }
-
- if (! driver_arg)
- {
- driver_arg_indices[optind-1] = 0;
- if (optarg && ! single_word_option_value_pair)
- {
- driver_arg_indices[optind-2] = 0;
- }
- }
- }
-
- /* Sanity checks. */
- if (! dll_name && ! dll_file_name)
- {
- warn (_("Must provide at least one of -o or --dllname options"));
- exit (1);
- }
- else if (! dll_name)
- {
- dll_name = xstrdup (mybasename (dll_file_name));
- }
- else if (! dll_file_name)
- {
- dll_file_name = xstrdup (dll_name);
- }
-
- /* Deduce driver-name and dlltool-name from our own. */
- if (driver_name == NULL)
- driver_name = deduce_name ("gcc");
-
- if (dlltool_name == NULL)
- dlltool_name = deduce_name ("dlltool");
-
- if (! def_file_seen)
- {
- char *fileprefix = choose_temp_base ();
-
- def_file_name = (char *) xmalloc (strlen (fileprefix) + 5);
- sprintf (def_file_name, "%s.def",
- (dontdeltemps) ? mybasename (fileprefix) : fileprefix);
- delete_def_file = 1;
- free (fileprefix);
- delete_def_file = 1;
- warn (_("no export definition file provided.\n\
-Creating one, but that may not be what you want"));
- }
-
- /* Set the target platform. */
- if (strstr (target, "cygwin"))
- which_target = CYGWIN_TARGET;
- else if (strstr (target, "mingw"))
- which_target = MINGW_TARGET;
- else
- which_target = UNKNOWN_TARGET;
-
- /* Re-create the command lines as a string, taking care to quote stuff. */
- dlltool_cmdline = dyn_string_new (cmdline_len);
- if (verbose)
- dyn_string_append_cstr (dlltool_cmdline, " -v");
-
- dyn_string_append_cstr (dlltool_cmdline, " --dllname ");
- dyn_string_append_cstr (dlltool_cmdline, dll_name);
-
- for (i = 1; i < argc; ++i)
- {
- if (dlltool_arg_indices[i])
- {
- char *arg = saved_argv[i];
- int quote = (strchr (arg, ' ') || strchr (arg, '\t'));
- dyn_string_append_cstr (dlltool_cmdline,
- (quote) ? " \"" : " ");
- dyn_string_append_cstr (dlltool_cmdline, arg);
- dyn_string_append_cstr (dlltool_cmdline,
- (quote) ? "\"" : "");
- }
- }
-
- driver_cmdline = dyn_string_new (cmdline_len);
- if (! driver_flags || strlen (driver_flags) == 0)
- {
- switch (which_target)
- {
- case CYGWIN_TARGET:
- driver_flags = cygwin_driver_flags;
- break;
-
- case MINGW_TARGET:
- driver_flags = mingw32_driver_flags;
- break;
-
- default:
- driver_flags = generic_driver_flags;
- break;
- }
- }
- dyn_string_append_cstr (driver_cmdline, driver_flags);
- dyn_string_append_cstr (driver_cmdline, " -o ");
- dyn_string_append_cstr (driver_cmdline, dll_file_name);
-
- if (! entry_point || strlen (entry_point) == 0)
- {
- switch (which_target)
- {
- case CYGWIN_TARGET:
- entry_point = "__cygwin_dll_entry@12";
- break;
-
- case MINGW_TARGET:
- entry_point = "_DllMainCRTStartup@12";
- break;
-
- default:
- entry_point = "_DllMain@12";
- break;
- }
- }
- dyn_string_append_cstr (driver_cmdline, " -Wl,-e,");
- dyn_string_append_cstr (driver_cmdline, entry_point);
- dyn_string_append_cstr (dlltool_cmdline, " --exclude-symbol=");
- dyn_string_append_cstr (dlltool_cmdline,
- (entry_point[0] == '_') ? entry_point+1 : entry_point);
-
- if (! image_base_str || strlen (image_base_str) == 0)
- {
- char *tmpbuf = (char *) xmalloc (sizeof ("0x12345678") + 1);
- unsigned long hash = strhash (dll_file_name);
- sprintf (tmpbuf, "0x%.8lX", 0x60000000|((hash<<16)&0xFFC0000));
- image_base_str = tmpbuf;
- }
-
- dyn_string_append_cstr (driver_cmdline, " -Wl,--image-base,");
- dyn_string_append_cstr (driver_cmdline, image_base_str);
-
- if (verbose)
- {
- dyn_string_append_cstr (driver_cmdline, " -v");
- }
-
- for (i = 1; i < argc; ++i)
- {
- if (driver_arg_indices[i])
- {
- char *arg = saved_argv[i];
- int quote = (strchr (arg, ' ') || strchr (arg, '\t'));
- dyn_string_append_cstr (driver_cmdline,
- (quote) ? " \"" : " ");
- dyn_string_append_cstr (driver_cmdline, arg);
- dyn_string_append_cstr (driver_cmdline,
- (quote) ? "\"" : "");
- }
- }
-
- /* Step pre-1. If no --def <EXPORT_DEF> is specified,
- then create it and then pass it on. */
-
- if (! def_file_seen)
- {
- int i;
- dyn_string_t step_pre1;
-
- step_pre1 = dyn_string_new (1024);
-
- dyn_string_append_cstr (step_pre1, dlltool_cmdline->s);
- if (export_all)
- {
- dyn_string_append_cstr (step_pre1, " --export-all --exclude-symbol=");
- dyn_string_append_cstr (step_pre1,
- "_cygwin_dll_entry@12,DllMainCRTStartup@12,DllMain@12,DllEntryPoint@12");
- }
- dyn_string_append_cstr (step_pre1, " --output-def ");
- dyn_string_append_cstr (step_pre1, def_file_name);
-
- for (i = 1; i < argc; ++i)
- {
- if (driver_arg_indices[i])
- {
- char *arg = saved_argv[i];
- size_t len = strlen (arg);
- if (len >= 2 && arg[len-2] == '.'
- && (arg[len-1] == 'o' || arg[len-1] == 'a'))
- {
- int quote = (strchr (arg, ' ') || strchr (arg, '\t'));
- dyn_string_append_cstr (step_pre1,
- (quote) ? " \"" : " ");
- dyn_string_append_cstr (step_pre1, arg);
- dyn_string_append_cstr (step_pre1,
- (quote) ? "\"" : "");
- }
- }
- }
-
- if (run (dlltool_name, step_pre1->s))
- cleanup_and_exit (1);
-
- dyn_string_delete (step_pre1);
- }
-
- dyn_string_append_cstr (dlltool_cmdline, " --def ");
- dyn_string_append_cstr (dlltool_cmdline, def_file_name);
-
- if (verbose)
- {
- fprintf (stderr, _("DLLTOOL name : %s\n"), dlltool_name);
- fprintf (stderr, _("DLLTOOL options : %s\n"), dlltool_cmdline->s);
- fprintf (stderr, _("DRIVER name : %s\n"), driver_name);
- fprintf (stderr, _("DRIVER options : %s\n"), driver_cmdline->s);
- }
-
- /* Step 1. Call GCC/LD to create base relocation file. If using GCC, the
- driver command line will look like the following:
-
- % gcc -Wl,--dll --Wl,--base-file,foo.base [rest of command line]
-
- If the user does not specify a base name, create temporary one that
- is deleted at exit. */
-
- if (! base_file_name)
- {
- char *fileprefix = choose_temp_base ();
- base_file_name = (char *) xmalloc (strlen (fileprefix) + 6);
- sprintf (base_file_name, "%s.base",
- (dontdeltemps) ? mybasename (fileprefix) : fileprefix);
- delete_base_file = 1;
- free (fileprefix);
- }
-
- {
- int quote;
-
- dyn_string_t step1 = dyn_string_new (driver_cmdline->length
- + strlen (base_file_name)
- + 20);
- dyn_string_append_cstr (step1, "-Wl,--base-file,");
- quote = (strchr (base_file_name, ' ')
- || strchr (base_file_name, '\t'));
- dyn_string_append_cstr (step1,
- (quote) ? "\"" : "");
- dyn_string_append_cstr (step1, base_file_name);
- dyn_string_append_cstr (step1,
- (quote) ? "\"" : "");
- if (driver_cmdline->length)
- {
- dyn_string_append_cstr (step1, " ");
- dyn_string_append_cstr (step1, driver_cmdline->s);
- }
-
- if (run (driver_name, step1->s))
- cleanup_and_exit (1);
-
- dyn_string_delete (step1);
- }
-
- /* Step 2. generate the exp file by running dlltool.
- dlltool command line will look like the following:
-
- % dlltool -Wl,--dll --Wl,--base-file,foo.base [rest of command line]
-
- If the user does not specify a base name, create temporary one that
- is deleted at exit. */
-
- if (! exp_file_name)
- {
- char *p = strrchr (dll_name, '.');
- size_t prefix_len = (p) ? (size_t) (p - dll_name) : strlen (dll_name);
-
- exp_file_name = (char *) xmalloc (prefix_len + 4 + 1);
- strncpy (exp_file_name, dll_name, prefix_len);
- exp_file_name[prefix_len] = '\0';
- strcat (exp_file_name, ".exp");
- delete_exp_file = 1;
- }
-
- {
- int quote;
-
- dyn_string_t step2 = dyn_string_new (dlltool_cmdline->length
- + strlen (base_file_name)
- + strlen (exp_file_name)
- + 20);
-
- dyn_string_append_cstr (step2, "--base-file ");
- quote = (strchr (base_file_name, ' ')
- || strchr (base_file_name, '\t'));
- dyn_string_append_cstr (step2,
- (quote) ? "\"" : "");
- dyn_string_append_cstr (step2, base_file_name);
- dyn_string_append_cstr (step2,
- (quote) ? "\" " : " ");
-
- dyn_string_append_cstr (step2, "--output-exp ");
- quote = (strchr (exp_file_name, ' ')
- || strchr (exp_file_name, '\t'));
- dyn_string_append_cstr (step2,
- (quote) ? "\"" : "");
- dyn_string_append_cstr (step2, exp_file_name);
- dyn_string_append_cstr (step2,
- (quote) ? "\"" : "");
-
- if (dlltool_cmdline->length)
- {
- dyn_string_append_cstr (step2, " ");
- dyn_string_append_cstr (step2, dlltool_cmdline->s);
- }
-
- if (run (dlltool_name, step2->s))
- cleanup_and_exit (1);
-
- dyn_string_delete (step2);
- }
-
- /*
- * Step 3. Call GCC/LD to again, adding the exp file this time.
- * driver command line will look like the following:
- *
- * % gcc -Wl,--dll --Wl,--base-file,foo.base foo.exp [rest ...]
- */
-
- {
- int quote;
-
- dyn_string_t step3 = dyn_string_new (driver_cmdline->length
- + strlen (exp_file_name)
- + strlen (base_file_name)
- + 20);
- dyn_string_append_cstr (step3, "-Wl,--base-file,");
- quote = (strchr (base_file_name, ' ')
- || strchr (base_file_name, '\t'));
- dyn_string_append_cstr (step3,
- (quote) ? "\"" : "");
- dyn_string_append_cstr (step3, base_file_name);
- dyn_string_append_cstr (step3,
- (quote) ? "\" " : " ");
-
- quote = (strchr (exp_file_name, ' ')
- || strchr (exp_file_name, '\t'));
- dyn_string_append_cstr (step3,
- (quote) ? "\"" : "");
- dyn_string_append_cstr (step3, exp_file_name);
- dyn_string_append_cstr (step3,
- (quote) ? "\"" : "");
-
- if (driver_cmdline->length)
- {
- dyn_string_append_cstr (step3, " ");
- dyn_string_append_cstr (step3, driver_cmdline->s);
- }
-
- if (run (driver_name, step3->s))
- cleanup_and_exit (1);
-
- dyn_string_delete (step3);
- }
-
-
- /*
- * Step 4. Run DLLTOOL again using the same command line.
- */
-
- {
- int quote;
- dyn_string_t step4 = dyn_string_new (dlltool_cmdline->length
- + strlen (base_file_name)
- + strlen (exp_file_name)
- + 20);
-
- dyn_string_append_cstr (step4, "--base-file ");
- quote = (strchr (base_file_name, ' ')
- || strchr (base_file_name, '\t'));
- dyn_string_append_cstr (step4,
- (quote) ? "\"" : "");
- dyn_string_append_cstr (step4, base_file_name);
- dyn_string_append_cstr (step4,
- (quote) ? "\" " : " ");
-
- dyn_string_append_cstr (step4, "--output-exp ");
- quote = (strchr (exp_file_name, ' ')
- || strchr (exp_file_name, '\t'));
- dyn_string_append_cstr (step4,
- (quote) ? "\"" : "");
- dyn_string_append_cstr (step4, exp_file_name);
- dyn_string_append_cstr (step4,
- (quote) ? "\"" : "");
-
- if (dlltool_cmdline->length)
- {
- dyn_string_append_cstr (step4, " ");
- dyn_string_append_cstr (step4, dlltool_cmdline->s);
- }
-
- if (output_lib_file_name)
- {
- dyn_string_append_cstr (step4, " --output-lib ");
- dyn_string_append_cstr (step4, output_lib_file_name);
- }
-
- if (run (dlltool_name, step4->s))
- cleanup_and_exit (1);
-
- dyn_string_delete (step4);
- }
-
-
- /*
- * Step 5. Link it all together and be done with it.
- * driver command line will look like the following:
- *
- * % gcc -Wl,--dll foo.exp [rest ...]
- *
- */
-
- {
- int quote;
-
- dyn_string_t step5 = dyn_string_new (driver_cmdline->length
- + strlen (exp_file_name)
- + 20);
- quote = (strchr (exp_file_name, ' ')
- || strchr (exp_file_name, '\t'));
- dyn_string_append_cstr (step5,
- (quote) ? "\"" : "");
- dyn_string_append_cstr (step5, exp_file_name);
- dyn_string_append_cstr (step5,
- (quote) ? "\"" : "");
-
- if (driver_cmdline->length)
- {
- dyn_string_append_cstr (step5, " ");
- dyn_string_append_cstr (step5, driver_cmdline->s);
- }
-
- if (run (driver_name, step5->s))
- cleanup_and_exit (1);
-
- dyn_string_delete (step5);
- }
-
- cleanup_and_exit (0);
-
- return 0;
-}
diff --git a/binutils-2.17/binutils/doc/Makefile.am b/binutils-2.17/binutils/doc/Makefile.am
deleted file mode 100644
index 1d043e7d..00000000
--- a/binutils-2.17/binutils/doc/Makefile.am
+++ /dev/null
@@ -1,186 +0,0 @@
-## Process this file with automake to generate Makefile.in
-
-AUTOMAKE_OPTIONS = cygnus
-
-# What version of the manual you want; "all" includes everything
-CONFIG=all
-
-# Options to extract the man page from as.texinfo
-MANCONF = -Dman
-
-TEXI2POD = perl $(top_srcdir)/../etc/texi2pod.pl $(AM_MAKEINFOFLAGS)
-
-POD2MAN = pod2man --center="GNU Development Tools" \
- --release="binutils-$(VERSION)" --section=1
-
-# List of man pages generated from binutils.texi
-man_MANS = \
- addr2line.1 \
- ar.1 \
- dlltool.1 \
- nlmconv.1 \
- nm.1 \
- objcopy.1 \
- objdump.1 \
- ranlib.1 \
- readelf.1 \
- size.1 \
- strings.1 \
- strip.1 \
- windres.1 \
- $(DEMANGLER_NAME).1
-
-info_TEXINFOS = binutils.texi
-binutils_TEXINFOS = config.texi
-binutils_TEXI = $(srcdir)/binutils.texi
-
-AM_MAKEINFOFLAGS = -I "$(srcdir)" -I "$(top_srcdir)/../libiberty"
-TEXI2DVI = texi2dvi -I "$(srcdir)" -I "$(top_srcdir)/../libiberty"
-
-config.texi: $(srcdir)/../../bfd/configure $(binutils_TEXI)
- rm -f config.texi
- eval `grep '^ *VERSION=' $(srcdir)/../../bfd/configure`; \
- echo "@set VERSION $$VERSION" > $@
- echo "@set UPDATED `date "+%B %Y"`" >> config.texi
-
-# Man page generation from texinfo
-addr2line.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Daddr2line < $(binutils_TEXI) > addr2line.pod
- -($(POD2MAN) addr2line.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f addr2line.pod
-
-ar.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dar < $(binutils_TEXI) > ar.pod
- -($(POD2MAN) ar.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f ar.pod
-
-dlltool.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Ddlltool < $(binutils_TEXI) > dlltool.pod
- -($(POD2MAN) dlltool.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f dlltool.pod
-
-nlmconv.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dnlmconv < $(binutils_TEXI) > nlmconv.pod
- -($(POD2MAN) nlmconv.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f nlmconv.pod
-
-nm.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dnm < $(binutils_TEXI) > nm.pod
- -($(POD2MAN) nm.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f nm.pod
-
-objcopy.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dobjcopy < $(binutils_TEXI) > objcopy.pod
- -($(POD2MAN) objcopy.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f objcopy.pod
-
-objdump.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dobjdump < $(binutils_TEXI) > objdump.pod
- -($(POD2MAN) objdump.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f objdump.pod
-
-ranlib.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dranlib < $(binutils_TEXI) > ranlib.pod
- -($(POD2MAN) ranlib.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f ranlib.pod
-
-readelf.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dreadelf < $(binutils_TEXI) > readelf.pod
- -($(POD2MAN) readelf.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f readelf.pod
-
-size.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dsize < $(binutils_TEXI) > size.pod
- -($(POD2MAN) size.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f size.pod
-
-strings.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dstrings < $(binutils_TEXI) > strings.pod
- -($(POD2MAN) strings.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f strings.pod
-
-strip.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dstrip < $(binutils_TEXI) > strip.pod
- -($(POD2MAN) strip.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f strip.pod
-
-windres.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dwindres < $(binutils_TEXI) > windres.pod
- -($(POD2MAN) windres.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f windres.pod
-
-cxxfilt.man: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dcxxfilt < $(binutils_TEXI) > $(DEMANGLER_NAME).pod
- -($(POD2MAN) $(DEMANGLER_NAME).pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f $(DEMANGLER_NAME).pod
-
-MAINTAINERCLEANFILES = config.texi
-MOSTLYCLEANFILES = $(DEMANGLER_NAME).1
-
-$(DEMANGLER_NAME).1: cxxfilt.man Makefile
- if test -f cxxfilt.man; then \
- man=cxxfilt.man; \
- else \
- man=$(srcdir)/cxxfilt.man; \
- fi; \
- sed -e 's/@PROGRAM@/$(DEMANGLER_NAME)/' \
- -e 's/cxxfilt/$(DEMANGLER_NAME)/' < $$man \
- > $(DEMANGLER_NAME).1
-
-# We want install to imply install-info as per GNU standards, despite the
-# cygnus option.
-install-data-local: install-info
-
-html__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-
-install-html: install-html-am
-
-install-html-am: $(HTMLS)
- @$(NORMAL_INSTALL)
- test -z "$(htmldir)" || $(mkdir_p) "$(DESTDIR)$(htmldir)"
- @list='$(HTMLS)'; for p in $$list; do \
- if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
- f=$(html__strip_dir) \
- if test -d "$$d$$p"; then \
- echo " $(mkdir_p) '$(DESTDIR)$(htmldir)/$$f'"; \
- $(mkdir_p) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
- echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
- else \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
- fi; \
- done
-
-# Maintenance
-
-# We need it for the taz target in ../../Makefile.in.
-info-local: $(MANS)
diff --git a/binutils-2.17/binutils/doc/Makefile.in b/binutils-2.17/binutils/doc/Makefile.in
deleted file mode 100644
index ef28ceff..00000000
--- a/binutils-2.17/binutils/doc/Makefile.in
+++ /dev/null
@@ -1,716 +0,0 @@
-# Makefile.in generated by automake 1.9.6 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005 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@
-target_triplet = @target@
-subdir = doc
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
- $(binutils_TEXINFOS)
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/../bfd/acinclude.m4 \
- $(top_srcdir)/../config/acx.m4 $(top_srcdir)/../bfd/bfd.m4 \
- $(top_srcdir)/../bfd/warning.m4 $(top_srcdir)/../libtool.m4 \
- $(top_srcdir)/../gettext.m4 $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-depcomp =
-am__depfiles_maybe =
-SOURCES =
-INFO_DEPS = $(srcdir)/binutils.info
-TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex
-am__TEXINFO_TEX_DIR = $(top_srcdir)/../texinfo
-DVIS = binutils.dvi
-PDFS = binutils.pdf
-PSS = binutils.ps
-HTMLS = binutils.html
-TEXINFOS = binutils.texi
-TEXI2PDF = $(TEXI2DVI) --pdf --batch
-MAKEINFOHTML = $(MAKEINFO) --html
-AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
-DVIPS = dvips
-man1dir = $(mandir)/man1
-am__installdirs = "$(DESTDIR)$(man1dir)"
-NROFF = nroff
-MANS = $(man_MANS)
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-AMDEP_FALSE = @AMDEP_FALSE@
-AMDEP_TRUE = @AMDEP_TRUE@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-BUILD_DLLTOOL = @BUILD_DLLTOOL@
-BUILD_DLLWRAP = @BUILD_DLLWRAP@
-BUILD_MISC = @BUILD_MISC@
-BUILD_NLMCONV = @BUILD_NLMCONV@
-BUILD_SRCONV = @BUILD_SRCONV@
-BUILD_WINDRES = @BUILD_WINDRES@
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CC_FOR_BUILD = @CC_FOR_BUILD@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATADIRNAME = @DATADIRNAME@
-DEFS = @DEFS@
-DEMANGLER_NAME = @DEMANGLER_NAME@
-DEPDIR = @DEPDIR@
-DLLTOOL_DEFS = @DLLTOOL_DEFS@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EMULATION = @EMULATION@
-EMULATION_VECTOR = @EMULATION_VECTOR@
-EXEEXT = @EXEEXT@
-EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@
-GMOFILES = @GMOFILES@
-GMSGFMT = @GMSGFMT@
-GT_NO = @GT_NO@
-GT_YES = @GT_YES@
-HDEFINES = @HDEFINES@
-INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-INSTOBJEXT = @INSTOBJEXT@
-INTLDEPS = @INTLDEPS@
-INTLLIBS = @INTLLIBS@
-INTLOBJS = @INTLOBJS@
-LDFLAGS = @LDFLAGS@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
-MAKEINFO = @MAKEINFO@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-MSGFMT = @MSGFMT@
-NLMCONV_DEFS = @NLMCONV_DEFS@
-NO_WERROR = @NO_WERROR@
-OBJDUMP_DEFS = @OBJDUMP_DEFS@
-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@
-POFILES = @POFILES@
-POSUB = @POSUB@
-RANLIB = @RANLIB@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
-USE_NLS = @USE_NLS@
-VERSION = @VERSION@
-WARN_CFLAGS = @WARN_CFLAGS@
-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@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-l = @l@
-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 = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-AUTOMAKE_OPTIONS = cygnus
-
-# What version of the manual you want; "all" includes everything
-CONFIG = all
-
-# Options to extract the man page from as.texinfo
-MANCONF = -Dman
-TEXI2POD = perl $(top_srcdir)/../etc/texi2pod.pl $(AM_MAKEINFOFLAGS)
-POD2MAN = pod2man --center="GNU Development Tools" \
- --release="binutils-$(VERSION)" --section=1
-
-
-# List of man pages generated from binutils.texi
-man_MANS = \
- addr2line.1 \
- ar.1 \
- dlltool.1 \
- nlmconv.1 \
- nm.1 \
- objcopy.1 \
- objdump.1 \
- ranlib.1 \
- readelf.1 \
- size.1 \
- strings.1 \
- strip.1 \
- windres.1 \
- $(DEMANGLER_NAME).1
-
-info_TEXINFOS = binutils.texi
-binutils_TEXINFOS = config.texi
-binutils_TEXI = $(srcdir)/binutils.texi
-AM_MAKEINFOFLAGS = -I "$(srcdir)" -I "$(top_srcdir)/../libiberty"
-TEXI2DVI = texi2dvi -I "$(srcdir)" -I "$(top_srcdir)/../libiberty"
-MAINTAINERCLEANFILES = config.texi
-MOSTLYCLEANFILES = $(DEMANGLER_NAME).1
-html__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .dvi .html .info .pdf .ps .texi
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(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) --foreign doc/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --foreign 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: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-distclean-libtool:
- -rm -f libtool
-
-.texi.info:
- restore=: && backupdir="$(am__leading_dot)am$$$$" && \
- am__cwd=`pwd` && cd $(srcdir) && \
- rm -rf $$backupdir && mkdir $$backupdir && \
- if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
- for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
- if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
- done; \
- else :; fi && \
- cd "$$am__cwd"; \
- if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
- -o $@ $<; \
- then \
- rc=0; \
- cd $(srcdir); \
- else \
- rc=$$?; \
- cd $(srcdir) && \
- $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
- fi; \
- rm -rf $$backupdir; exit $$rc
-
-.texi.dvi:
- TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
- MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
- $(TEXI2DVI) $<
-
-.texi.pdf:
- TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
- MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
- $(TEXI2PDF) $<
-
-.texi.html:
- rm -rf $(@:.html=.htp)
- if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
- -o $(@:.html=.htp) $<; \
- then \
- rm -rf $@; \
- if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
- mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
- else \
- if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
- rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
- exit 1; \
- fi
-$(srcdir)/binutils.info: binutils.texi $(binutils_TEXINFOS)
-binutils.dvi: binutils.texi $(binutils_TEXINFOS)
-binutils.pdf: binutils.texi $(binutils_TEXINFOS)
-binutils.html: binutils.texi $(binutils_TEXINFOS)
-.dvi.ps:
- TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
- $(DVIPS) -o $@ $<
-
-uninstall-info-am:
- @$(PRE_UNINSTALL)
- @if (install-info --version && \
- install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
- list='$(INFO_DEPS)'; \
- for file in $$list; do \
- relfile=`echo "$$file" | sed 's|^.*/||'`; \
- echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
- install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
- done; \
- else :; fi
- @$(NORMAL_UNINSTALL)
- @list='$(INFO_DEPS)'; \
- for file in $$list; do \
- relfile=`echo "$$file" | sed 's|^.*/||'`; \
- relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
- (if cd "$(DESTDIR)$(infodir)"; then \
- echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
- rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
- else :; fi); \
- done
-
-dist-info: $(INFO_DEPS)
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- list='$(INFO_DEPS)'; \
- for base in $$list; do \
- case $$base in \
- $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
- esac; \
- if test -f $$base; then d=.; else d=$(srcdir); fi; \
- for file in $$d/$$base*; do \
- relfile=`expr "$$file" : "$$d/\(.*\)"`; \
- test -f $(distdir)/$$relfile || \
- cp -p $$file $(distdir)/$$relfile; \
- done; \
- done
-
-mostlyclean-aminfo:
- -rm -rf binutils.aux binutils.cp binutils.cps binutils.fn binutils.fns \
- binutils.ky binutils.log binutils.pg binutils.pgs \
- binutils.tmp binutils.toc binutils.tp binutils.tps \
- binutils.vr binutils.vrs binutils.dvi binutils.pdf \
- binutils.ps binutils.html
-
-maintainer-clean-aminfo:
- @list='$(INFO_DEPS)'; for i in $$list; do \
- i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
- echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
- rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
- done
-
-clean-info: mostlyclean-aminfo
-install-man1: $(man1_MANS) $(man_MANS)
- @$(NORMAL_INSTALL)
- test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
- done
-uninstall-man1:
- @$(NORMAL_UNINSTALL)
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
- rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
- done
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-check-am:
-check: check-am
-all-am: Makefile $(MANS)
-installdirs:
- for dir in "$(DESTDIR)$(man1dir)"; 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:
- -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-
-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."
- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
- -rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-libtool
-
-dvi: dvi-am
-
-dvi-am: $(DVIS)
-
-html: html-am
-
-html-am: $(HTMLS)
-
-info: info-am
-
-info-am: $(INFO_DEPS) info-local
-
-install-data-am: install-data-local install-man
-
-install-exec-am:
-
-install-info: install-info-am
-
-install-info-am: $(INFO_DEPS)
- @$(NORMAL_INSTALL)
- test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)"
- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- list='$(INFO_DEPS)'; \
- for file in $$list; do \
- case $$file in \
- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
- esac; \
- if test -f $$file; then d=.; else d=$(srcdir); fi; \
- file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
- for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
- $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
- if test -f $$ifile; then \
- relfile=`echo "$$ifile" | sed 's|^.*/||'`; \
- echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \
- $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \
- else : ; fi; \
- done; \
- done
- @$(POST_INSTALL)
- @if (install-info --version && \
- install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
- list='$(INFO_DEPS)'; \
- for file in $$list; do \
- relfile=`echo "$$file" | sed 's|^.*/||'`; \
- echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
- install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
- done; \
- else : ; fi
-install-man: install-man1
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-aminfo \
- maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am: $(PDFS)
-
-ps: ps-am
-
-ps-am: $(PSS)
-
-uninstall-am: uninstall-man
-
-uninstall-man: uninstall-man1
-
-.PHONY: all all-am check check-am clean clean-generic clean-info \
- clean-libtool dist-info distclean distclean-generic \
- distclean-libtool dvi dvi-am html html-am info info-am \
- info-local install install-am install-data install-data-am \
- install-data-local install-exec install-exec-am install-info \
- install-info-am install-man install-man1 install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-aminfo maintainer-clean-generic mostlyclean \
- mostlyclean-aminfo mostlyclean-generic mostlyclean-libtool pdf \
- pdf-am ps ps-am uninstall uninstall-am uninstall-info-am \
- uninstall-man uninstall-man1
-
-
-config.texi: $(srcdir)/../../bfd/configure $(binutils_TEXI)
- rm -f config.texi
- eval `grep '^ *VERSION=' $(srcdir)/../../bfd/configure`; \
- echo "@set VERSION $$VERSION" > $@
- echo "@set UPDATED `date "+%B %Y"`" >> config.texi
-
-# Man page generation from texinfo
-addr2line.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Daddr2line < $(binutils_TEXI) > addr2line.pod
- -($(POD2MAN) addr2line.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f addr2line.pod
-
-ar.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dar < $(binutils_TEXI) > ar.pod
- -($(POD2MAN) ar.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f ar.pod
-
-dlltool.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Ddlltool < $(binutils_TEXI) > dlltool.pod
- -($(POD2MAN) dlltool.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f dlltool.pod
-
-nlmconv.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dnlmconv < $(binutils_TEXI) > nlmconv.pod
- -($(POD2MAN) nlmconv.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f nlmconv.pod
-
-nm.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dnm < $(binutils_TEXI) > nm.pod
- -($(POD2MAN) nm.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f nm.pod
-
-objcopy.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dobjcopy < $(binutils_TEXI) > objcopy.pod
- -($(POD2MAN) objcopy.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f objcopy.pod
-
-objdump.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dobjdump < $(binutils_TEXI) > objdump.pod
- -($(POD2MAN) objdump.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f objdump.pod
-
-ranlib.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dranlib < $(binutils_TEXI) > ranlib.pod
- -($(POD2MAN) ranlib.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f ranlib.pod
-
-readelf.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dreadelf < $(binutils_TEXI) > readelf.pod
- -($(POD2MAN) readelf.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f readelf.pod
-
-size.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dsize < $(binutils_TEXI) > size.pod
- -($(POD2MAN) size.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f size.pod
-
-strings.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dstrings < $(binutils_TEXI) > strings.pod
- -($(POD2MAN) strings.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f strings.pod
-
-strip.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dstrip < $(binutils_TEXI) > strip.pod
- -($(POD2MAN) strip.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f strip.pod
-
-windres.1: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dwindres < $(binutils_TEXI) > windres.pod
- -($(POD2MAN) windres.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f windres.pod
-
-cxxfilt.man: $(binutils_TEXI) $(binutils_TEXINFOS)
- touch $@
- -$(TEXI2POD) $(MANCONF) -Dcxxfilt < $(binutils_TEXI) > $(DEMANGLER_NAME).pod
- -($(POD2MAN) $(DEMANGLER_NAME).pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
- mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
- rm -f $(DEMANGLER_NAME).pod
-
-$(DEMANGLER_NAME).1: cxxfilt.man Makefile
- if test -f cxxfilt.man; then \
- man=cxxfilt.man; \
- else \
- man=$(srcdir)/cxxfilt.man; \
- fi; \
- sed -e 's/@PROGRAM@/$(DEMANGLER_NAME)/' \
- -e 's/cxxfilt/$(DEMANGLER_NAME)/' < $$man \
- > $(DEMANGLER_NAME).1
-
-# We want install to imply install-info as per GNU standards, despite the
-# cygnus option.
-install-data-local: install-info
-
-install-html: install-html-am
-
-install-html-am: $(HTMLS)
- @$(NORMAL_INSTALL)
- test -z "$(htmldir)" || $(mkdir_p) "$(DESTDIR)$(htmldir)"
- @list='$(HTMLS)'; for p in $$list; do \
- if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
- f=$(html__strip_dir) \
- if test -d "$$d$$p"; then \
- echo " $(mkdir_p) '$(DESTDIR)$(htmldir)/$$f'"; \
- $(mkdir_p) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
- echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
- else \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
- fi; \
- done
-
-# Maintenance
-
-# We need it for the taz target in ../../Makefile.in.
-info-local: $(MANS)
-# 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/binutils-2.17/binutils/doc/addr2line.1 b/binutils-2.17/binutils/doc/addr2line.1
deleted file mode 100644
index 71d1ea76..00000000
--- a/binutils-2.17/binutils/doc/addr2line.1
+++ /dev/null
@@ -1,265 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "ADDR2LINE 1"
-.TH ADDR2LINE 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-addr2line \- convert addresses into file names and line numbers.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-addr2line [\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
- [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]]
- [\fB\-e\fR \fIfilename\fR|\fB\-\-exe=\fR\fIfilename\fR]
- [\fB\-f\fR|\fB\-\-functions\fR] [\fB\-s\fR|\fB\-\-basename\fR]
- [\fB\-i\fR|\fB\-\-inlines\fR]
- [\fB\-j\fR|\fB\-\-section=\fR\fIname\fR]
- [\fB\-H\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
- [addr addr ...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBaddr2line\fR translates addresses into file names and line numbers.
-Given an address in an executable or an offset in a section of a relocatable
-object, it uses the debugging information to figure out which file name and
-line number are associated with it.
-.PP
-The executable or relocatable object to use is specified with the \fB\-e\fR
-option. The default is the file \fIa.out\fR. The section in the relocatable
-object to use is specified with the \fB\-j\fR option.
-.PP
-\&\fBaddr2line\fR has two modes of operation.
-.PP
-In the first, hexadecimal addresses are specified on the command line,
-and \fBaddr2line\fR displays the file name and line number for each
-address.
-.PP
-In the second, \fBaddr2line\fR reads hexadecimal addresses from
-standard input, and prints the file name and line number for each
-address on standard output. In this mode, \fBaddr2line\fR may be used
-in a pipe to convert dynamically chosen addresses.
-.PP
-The format of the output is \fB\s-1FILENAME:LINENO\s0\fR. The file name and
-line number for each address is printed on a separate line. If the
-\&\fB\-f\fR option is used, then each \fB\s-1FILENAME:LINENO\s0\fR line is
-preceded by a \fB\s-1FUNCTIONNAME\s0\fR line which is the name of the function
-containing the address.
-.PP
-If the file name or function name can not be determined,
-\&\fBaddr2line\fR will print two question marks in their place. If the
-line number can not be determined, \fBaddr2line\fR will print 0.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The long and short forms of options, shown here as alternatives, are
-equivalent.
-.IP "\fB\-b\fR \fIbfdname\fR" 4
-.IX Item "-b bfdname"
-.PD 0
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-.PD
-Specify that the object-code format for the object files is
-\&\fIbfdname\fR.
-.IP "\fB\-C\fR" 4
-.IX Item "-C"
-.PD 0
-.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
-.IX Item "--demangle[=style]"
-.PD
-Decode (\fIdemangle\fR) low-level symbol names into user-level names.
-Besides removing any initial underscore prepended by the system, this
-makes \*(C+ function names readable. Different compilers have different
-mangling styles. The optional demangling style argument can be used to
-choose an appropriate demangling style for your compiler.
-.IP "\fB\-e\fR \fIfilename\fR" 4
-.IX Item "-e filename"
-.PD 0
-.IP "\fB\-\-exe=\fR\fIfilename\fR" 4
-.IX Item "--exe=filename"
-.PD
-Specify the name of the executable for which addresses should be
-translated. The default file is \fIa.out\fR.
-.IP "\fB\-f\fR" 4
-.IX Item "-f"
-.PD 0
-.IP "\fB\-\-functions\fR" 4
-.IX Item "--functions"
-.PD
-Display function names as well as file and line number information.
-.IP "\fB\-s\fR" 4
-.IX Item "-s"
-.PD 0
-.IP "\fB\-\-basenames\fR" 4
-.IX Item "--basenames"
-.PD
-Display only the base of each file name.
-.IP "\fB\-i\fR" 4
-.IX Item "-i"
-.PD 0
-.IP "\fB\-\-inlines\fR" 4
-.IX Item "--inlines"
-.PD
-If the address belongs to a function that was inlined, the source
-information for all enclosing scopes back to the first non-inlined
-function will also be printed. For example, if \f(CW\*(C`main\*(C'\fR inlines
-\&\f(CW\*(C`callee1\*(C'\fR which inlines \f(CW\*(C`callee2\*(C'\fR, and address is from
-\&\f(CW\*(C`callee2\*(C'\fR, the source information for \f(CW\*(C`callee1\*(C'\fR and \f(CW\*(C`main\*(C'\fR
-will also be printed.
-.IP "\fB\-j\fR" 4
-.IX Item "-j"
-.PD 0
-.IP "\fB\-\-section\fR" 4
-.IX Item "--section"
-.PD
-Read offsets relative to the specified section instead of absolute addresses.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/doc/ar.1 b/binutils-2.17/binutils/doc/ar.1
deleted file mode 100644
index 5985ca15..00000000
--- a/binutils-2.17/binutils/doc/ar.1
+++ /dev/null
@@ -1,390 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "AR 1"
-.TH AR 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-ar \- create, modify, and extract from archives
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-ar [\fB\-X32_64\fR] [\fB\-\fR]\fIp\fR[\fImod\fR [\fIrelpos\fR] [\fIcount\fR]] \fIarchive\fR [\fImember\fR...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \s-1GNU\s0 \fBar\fR program creates, modifies, and extracts from
-archives. An \fIarchive\fR is a single file holding a collection of
-other files in a structure that makes it possible to retrieve
-the original individual files (called \fImembers\fR of the archive).
-.PP
-The original files' contents, mode (permissions), timestamp, owner, and
-group are preserved in the archive, and can be restored on
-extraction.
-.PP
-\&\s-1GNU\s0 \fBar\fR can maintain archives whose members have names of any
-length; however, depending on how \fBar\fR is configured on your
-system, a limit on member-name length may be imposed for compatibility
-with archive formats maintained with other tools. If it exists, the
-limit is often 15 characters (typical of formats related to a.out) or 16
-characters (typical of formats related to coff).
-.PP
-\&\fBar\fR is considered a binary utility because archives of this sort
-are most often used as \fIlibraries\fR holding commonly needed
-subroutines.
-.PP
-\&\fBar\fR creates an index to the symbols defined in relocatable
-object modules in the archive when you specify the modifier \fBs\fR.
-Once created, this index is updated in the archive whenever \fBar\fR
-makes a change to its contents (save for the \fBq\fR update operation).
-An archive with such an index speeds up linking to the library, and
-allows routines in the library to call each other without regard to
-their placement in the archive.
-.PP
-You may use \fBnm \-s\fR or \fBnm \-\-print\-armap\fR to list this index
-table. If an archive lacks the table, another form of \fBar\fR called
-\&\fBranlib\fR can be used to add just the table.
-.PP
-\&\s-1GNU\s0 \fBar\fR is designed to be compatible with two different
-facilities. You can control its activity using command-line options,
-like the different varieties of \fBar\fR on Unix systems; or, if you
-specify the single command-line option \fB\-M\fR, you can control it
-with a script supplied via standard input, like the \s-1MRI\s0 \*(L"librarian\*(R"
-program.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-\&\s-1GNU\s0 \fBar\fR allows you to mix the operation code \fIp\fR and modifier
-flags \fImod\fR in any order, within the first command-line argument.
-.PP
-If you wish, you may begin the first command-line argument with a
-dash.
-.PP
-The \fIp\fR keyletter specifies what operation to execute; it may be
-any of the following, but you must specify only one of them:
-.IP "\fBd\fR" 4
-.IX Item "d"
-\&\fIDelete\fR modules from the archive. Specify the names of modules to
-be deleted as \fImember\fR...; the archive is untouched if you
-specify no files to delete.
-.Sp
-If you specify the \fBv\fR modifier, \fBar\fR lists each module
-as it is deleted.
-.IP "\fBm\fR" 4
-.IX Item "m"
-Use this operation to \fImove\fR members in an archive.
-.Sp
-The ordering of members in an archive can make a difference in how
-programs are linked using the library, if a symbol is defined in more
-than one member.
-.Sp
-If no modifiers are used with \f(CW\*(C`m\*(C'\fR, any members you name in the
-\&\fImember\fR arguments are moved to the \fIend\fR of the archive;
-you can use the \fBa\fR, \fBb\fR, or \fBi\fR modifiers to move them to a
-specified place instead.
-.IP "\fBp\fR" 4
-.IX Item "p"
-\&\fIPrint\fR the specified members of the archive, to the standard
-output file. If the \fBv\fR modifier is specified, show the member
-name before copying its contents to standard output.
-.Sp
-If you specify no \fImember\fR arguments, all the files in the archive are
-printed.
-.IP "\fBq\fR" 4
-.IX Item "q"
-\&\fIQuick append\fR; Historically, add the files \fImember\fR... to the end of
-\&\fIarchive\fR, without checking for replacement.
-.Sp
-The modifiers \fBa\fR, \fBb\fR, and \fBi\fR do \fInot\fR affect this
-operation; new members are always placed at the end of the archive.
-.Sp
-The modifier \fBv\fR makes \fBar\fR list each file as it is appended.
-.Sp
-Since the point of this operation is speed, the archive's symbol table
-index is not updated, even if it already existed; you can use \fBar s\fR or
-\&\fBranlib\fR explicitly to update the symbol table index.
-.Sp
-However, too many different systems assume quick append rebuilds the
-index, so \s-1GNU\s0 \fBar\fR implements \fBq\fR as a synonym for \fBr\fR.
-.IP "\fBr\fR" 4
-.IX Item "r"
-Insert the files \fImember\fR... into \fIarchive\fR (with
-\&\fIreplacement\fR). This operation differs from \fBq\fR in that any
-previously existing members are deleted if their names match those being
-added.
-.Sp
-If one of the files named in \fImember\fR... does not exist, \fBar\fR
-displays an error message, and leaves undisturbed any existing members
-of the archive matching that name.
-.Sp
-By default, new members are added at the end of the file; but you may
-use one of the modifiers \fBa\fR, \fBb\fR, or \fBi\fR to request
-placement relative to some existing member.
-.Sp
-The modifier \fBv\fR used with this operation elicits a line of
-output for each file inserted, along with one of the letters \fBa\fR or
-\&\fBr\fR to indicate whether the file was appended (no old member
-deleted) or replaced.
-.IP "\fBt\fR" 4
-.IX Item "t"
-Display a \fItable\fR listing the contents of \fIarchive\fR, or those
-of the files listed in \fImember\fR... that are present in the
-archive. Normally only the member name is shown; if you also want to
-see the modes (permissions), timestamp, owner, group, and size, you can
-request that by also specifying the \fBv\fR modifier.
-.Sp
-If you do not specify a \fImember\fR, all files in the archive
-are listed.
-.Sp
-If there is more than one file with the same name (say, \fBfie\fR) in
-an archive (say \fBb.a\fR), \fBar t b.a fie\fR lists only the
-first instance; to see them all, you must ask for a complete
-listing\-\-\-in our example, \fBar t b.a\fR.
-.IP "\fBx\fR" 4
-.IX Item "x"
-\&\fIExtract\fR members (named \fImember\fR) from the archive. You can
-use the \fBv\fR modifier with this operation, to request that
-\&\fBar\fR list each name as it extracts it.
-.Sp
-If you do not specify a \fImember\fR, all files in the archive
-are extracted.
-.PP
-A number of modifiers (\fImod\fR) may immediately follow the \fIp\fR
-keyletter, to specify variations on an operation's behavior:
-.IP "\fBa\fR" 4
-.IX Item "a"
-Add new files \fIafter\fR an existing member of the
-archive. If you use the modifier \fBa\fR, the name of an existing archive
-member must be present as the \fIrelpos\fR argument, before the
-\&\fIarchive\fR specification.
-.IP "\fBb\fR" 4
-.IX Item "b"
-Add new files \fIbefore\fR an existing member of the
-archive. If you use the modifier \fBb\fR, the name of an existing archive
-member must be present as the \fIrelpos\fR argument, before the
-\&\fIarchive\fR specification. (same as \fBi\fR).
-.IP "\fBc\fR" 4
-.IX Item "c"
-\&\fICreate\fR the archive. The specified \fIarchive\fR is always
-created if it did not exist, when you request an update. But a warning is
-issued unless you specify in advance that you expect to create it, by
-using this modifier.
-.IP "\fBf\fR" 4
-.IX Item "f"
-Truncate names in the archive. \s-1GNU\s0 \fBar\fR will normally permit file
-names of any length. This will cause it to create archives which are
-not compatible with the native \fBar\fR program on some systems. If
-this is a concern, the \fBf\fR modifier may be used to truncate file
-names when putting them in the archive.
-.IP "\fBi\fR" 4
-.IX Item "i"
-Insert new files \fIbefore\fR an existing member of the
-archive. If you use the modifier \fBi\fR, the name of an existing archive
-member must be present as the \fIrelpos\fR argument, before the
-\&\fIarchive\fR specification. (same as \fBb\fR).
-.IP "\fBl\fR" 4
-.IX Item "l"
-This modifier is accepted but not used.
-.IP "\fBN\fR" 4
-.IX Item "N"
-Uses the \fIcount\fR parameter. This is used if there are multiple
-entries in the archive with the same name. Extract or delete instance
-\&\fIcount\fR of the given name from the archive.
-.IP "\fBo\fR" 4
-.IX Item "o"
-Preserve the \fIoriginal\fR dates of members when extracting them. If
-you do not specify this modifier, files extracted from the archive
-are stamped with the time of extraction.
-.IP "\fBP\fR" 4
-.IX Item "P"
-Use the full path name when matching names in the archive. \s-1GNU\s0
-\&\fBar\fR can not create an archive with a full path name (such archives
-are not \s-1POSIX\s0 complaint), but other archive creators can. This option
-will cause \s-1GNU\s0 \fBar\fR to match file names using a complete path
-name, which can be convenient when extracting a single file from an
-archive created by another tool.
-.IP "\fBs\fR" 4
-.IX Item "s"
-Write an object-file index into the archive, or update an existing one,
-even if no other change is made to the archive. You may use this modifier
-flag either with any operation, or alone. Running \fBar s\fR on an
-archive is equivalent to running \fBranlib\fR on it.
-.IP "\fBS\fR" 4
-.IX Item "S"
-Do not generate an archive symbol table. This can speed up building a
-large library in several steps. The resulting archive can not be used
-with the linker. In order to build a symbol table, you must omit the
-\&\fBS\fR modifier on the last execution of \fBar\fR, or you must run
-\&\fBranlib\fR on the archive.
-.IP "\fBu\fR" 4
-.IX Item "u"
-Normally, \fBar r\fR... inserts all files
-listed into the archive. If you would like to insert \fIonly\fR those
-of the files you list that are newer than existing members of the same
-names, use this modifier. The \fBu\fR modifier is allowed only for the
-operation \fBr\fR (replace). In particular, the combination \fBqu\fR is
-not allowed, since checking the timestamps would lose any speed
-advantage from the operation \fBq\fR.
-.IP "\fBv\fR" 4
-.IX Item "v"
-This modifier requests the \fIverbose\fR version of an operation. Many
-operations display additional information, such as filenames processed,
-when the modifier \fBv\fR is appended.
-.IP "\fBV\fR" 4
-.IX Item "V"
-This modifier shows the version number of \fBar\fR.
-.PP
-\&\fBar\fR ignores an initial option spelt \fB\-X32_64\fR, for
-compatibility with \s-1AIX\s0. The behaviour produced by this option is the
-default for \s-1GNU\s0 \fBar\fR. \fBar\fR does not support any of the other
-\&\fB\-X\fR options; in particular, it does not support \fB\-X32\fR
-which is the default for \s-1AIX\s0 \fBar\fR.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fInm\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/doc/binutils.info b/binutils-2.17/binutils/doc/binutils.info
deleted file mode 100644
index dcb79bed..00000000
--- a/binutils-2.17/binutils/doc/binutils.info
+++ /dev/null
@@ -1,3835 +0,0 @@
-This is ../.././binutils/doc/binutils.info, produced by makeinfo
-version 4.8 from ../.././binutils/doc/binutils.texi.
-
-START-INFO-DIR-ENTRY
-* Binutils: (binutils). The GNU binary utilities.
-* ar: (binutils)ar. Create, modify, and extract from archives
-* nm: (binutils)nm. List symbols from object files
-* objcopy: (binutils)objcopy. Copy and translate object files
-* objdump: (binutils)objdump. Display information from object files
-* ranlib: (binutils)ranlib. Generate index to archive contents
-* readelf: (binutils)readelf. Display the contents of ELF format files.
-* size: (binutils)size. List section sizes and total size
-* strings: (binutils)strings. List printable strings from files
-* strip: (binutils)strip. Discard symbols
-* c++filt: (binutils)c++filt. Filter to demangle encoded C++ symbols
-* cxxfilt: (binutils)c++filt. MS-DOS name for c++filt
-* addr2line: (binutils)addr2line. Convert addresses to file and line
-* nlmconv: (binutils)nlmconv. Converts object code into an NLM
-* windres: (binutils)windres. Manipulate Windows resources
-* dlltool: (binutils)dlltool. Create files needed to build and use DLLs
-END-INFO-DIR-ENTRY
-
- Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-
- Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts. A copy of the license is included in the section entitled "GNU
-Free Documentation License".
-
-
-File: binutils.info, Node: Top, Next: ar, Up: (dir)
-
-Introduction
-************
-
-This brief manual contains documentation for the GNU binary utilities
-(collectively version 2.17):
-
- This document is distributed under the terms of the GNU Free
-Documentation License. A copy of the license is included in the
-section entitled "GNU Free Documentation License".
-
-* Menu:
-
-* ar:: Create, modify, and extract from archives
-* nm:: List symbols from object files
-* objcopy:: Copy and translate object files
-* objdump:: Display information from object files
-* ranlib:: Generate index to archive contents
-* readelf:: Display the contents of ELF format files.
-* size:: List section sizes and total size
-* strings:: List printable strings from files
-* strip:: Discard symbols
-* c++filt:: Filter to demangle encoded C++ symbols
-* cxxfilt: c++filt. MS-DOS name for c++filt
-* addr2line:: Convert addresses to file and line
-* nlmconv:: Converts object code into an NLM
-* windres:: Manipulate Windows resources
-* dlltool:: Create files needed to build and use DLLs
-* Common Options:: Command-line options for all utilities
-* Selecting The Target System:: How these utilities determine the target.
-* Reporting Bugs:: Reporting Bugs
-* GNU Free Documentation License:: GNU Free Documentation License
-* Index:: Index
-
-
-File: binutils.info, Node: ar, Next: nm, Prev: Top, Up: Top
-
-1 ar
-****
-
- ar [-]P[MOD [RELPOS] [COUNT]] ARCHIVE [MEMBER...]
- ar -M [ <mri-script ]
-
- The GNU `ar' program creates, modifies, and extracts from archives.
-An "archive" is a single file holding a collection of other files in a
-structure that makes it possible to retrieve the original individual
-files (called "members" of the archive).
-
- The original files' contents, mode (permissions), timestamp, owner,
-and group are preserved in the archive, and can be restored on
-extraction.
-
- GNU `ar' can maintain archives whose members have names of any
-length; however, depending on how `ar' is configured on your system, a
-limit on member-name length may be imposed for compatibility with
-archive formats maintained with other tools. If it exists, the limit
-is often 15 characters (typical of formats related to a.out) or 16
-characters (typical of formats related to coff).
-
- `ar' is considered a binary utility because archives of this sort
-are most often used as "libraries" holding commonly needed subroutines.
-
- `ar' creates an index to the symbols defined in relocatable object
-modules in the archive when you specify the modifier `s'. Once
-created, this index is updated in the archive whenever `ar' makes a
-change to its contents (save for the `q' update operation). An archive
-with such an index speeds up linking to the library, and allows
-routines in the library to call each other without regard to their
-placement in the archive.
-
- You may use `nm -s' or `nm --print-armap' to list this index table.
-If an archive lacks the table, another form of `ar' called `ranlib' can
-be used to add just the table.
-
- GNU `ar' is designed to be compatible with two different facilities.
-You can control its activity using command-line options, like the
-different varieties of `ar' on Unix systems; or, if you specify the
-single command-line option `-M', you can control it with a script
-supplied via standard input, like the MRI "librarian" program.
-
-* Menu:
-
-* ar cmdline:: Controlling `ar' on the command line
-* ar scripts:: Controlling `ar' with a script
-
-
-File: binutils.info, Node: ar cmdline, Next: ar scripts, Up: ar
-
-1.1 Controlling `ar' on the Command Line
-========================================
-
- ar [`-X32_64'] [`-']P[MOD [RELPOS] [COUNT]] ARCHIVE [MEMBER...]
-
- When you use `ar' in the Unix style, `ar' insists on at least two
-arguments to execute: one keyletter specifying the _operation_
-(optionally accompanied by other keyletters specifying _modifiers_),
-and the archive name to act on.
-
- Most operations can also accept further MEMBER arguments, specifying
-particular files to operate on.
-
- GNU `ar' allows you to mix the operation code P and modifier flags
-MOD in any order, within the first command-line argument.
-
- If you wish, you may begin the first command-line argument with a
-dash.
-
- The P keyletter specifies what operation to execute; it may be any
-of the following, but you must specify only one of them:
-
-`d'
- _Delete_ modules from the archive. Specify the names of modules to
- be deleted as MEMBER...; the archive is untouched if you specify
- no files to delete.
-
- If you specify the `v' modifier, `ar' lists each module as it is
- deleted.
-
-`m'
- Use this operation to _move_ members in an archive.
-
- The ordering of members in an archive can make a difference in how
- programs are linked using the library, if a symbol is defined in
- more than one member.
-
- If no modifiers are used with `m', any members you name in the
- MEMBER arguments are moved to the _end_ of the archive; you can
- use the `a', `b', or `i' modifiers to move them to a specified
- place instead.
-
-`p'
- _Print_ the specified members of the archive, to the standard
- output file. If the `v' modifier is specified, show the member
- name before copying its contents to standard output.
-
- If you specify no MEMBER arguments, all the files in the archive
- are printed.
-
-`q'
- _Quick append_; Historically, add the files MEMBER... to the end of
- ARCHIVE, without checking for replacement.
-
- The modifiers `a', `b', and `i' do _not_ affect this operation;
- new members are always placed at the end of the archive.
-
- The modifier `v' makes `ar' list each file as it is appended.
-
- Since the point of this operation is speed, the archive's symbol
- table index is not updated, even if it already existed; you can
- use `ar s' or `ranlib' explicitly to update the symbol table index.
-
- However, too many different systems assume quick append rebuilds
- the index, so GNU `ar' implements `q' as a synonym for `r'.
-
-`r'
- Insert the files MEMBER... into ARCHIVE (with _replacement_). This
- operation differs from `q' in that any previously existing members
- are deleted if their names match those being added.
-
- If one of the files named in MEMBER... does not exist, `ar'
- displays an error message, and leaves undisturbed any existing
- members of the archive matching that name.
-
- By default, new members are added at the end of the file; but you
- may use one of the modifiers `a', `b', or `i' to request placement
- relative to some existing member.
-
- The modifier `v' used with this operation elicits a line of output
- for each file inserted, along with one of the letters `a' or `r'
- to indicate whether the file was appended (no old member deleted)
- or replaced.
-
-`t'
- Display a _table_ listing the contents of ARCHIVE, or those of the
- files listed in MEMBER... that are present in the archive.
- Normally only the member name is shown; if you also want to see
- the modes (permissions), timestamp, owner, group, and size, you can
- request that by also specifying the `v' modifier.
-
- If you do not specify a MEMBER, all files in the archive are
- listed.
-
- If there is more than one file with the same name (say, `fie') in
- an archive (say `b.a'), `ar t b.a fie' lists only the first
- instance; to see them all, you must ask for a complete listing--in
- our example, `ar t b.a'.
-
-`x'
- _Extract_ members (named MEMBER) from the archive. You can use
- the `v' modifier with this operation, to request that `ar' list
- each name as it extracts it.
-
- If you do not specify a MEMBER, all files in the archive are
- extracted.
-
-
- A number of modifiers (MOD) may immediately follow the P keyletter,
-to specify variations on an operation's behavior:
-
-`a'
- Add new files _after_ an existing member of the archive. If you
- use the modifier `a', the name of an existing archive member must
- be present as the RELPOS argument, before the ARCHIVE
- specification.
-
-`b'
- Add new files _before_ an existing member of the archive. If you
- use the modifier `b', the name of an existing archive member must
- be present as the RELPOS argument, before the ARCHIVE
- specification. (same as `i').
-
-`c'
- _Create_ the archive. The specified ARCHIVE is always created if
- it did not exist, when you request an update. But a warning is
- issued unless you specify in advance that you expect to create it,
- by using this modifier.
-
-`f'
- Truncate names in the archive. GNU `ar' will normally permit file
- names of any length. This will cause it to create archives which
- are not compatible with the native `ar' program on some systems.
- If this is a concern, the `f' modifier may be used to truncate file
- names when putting them in the archive.
-
-`i'
- Insert new files _before_ an existing member of the archive. If
- you use the modifier `i', the name of an existing archive member
- must be present as the RELPOS argument, before the ARCHIVE
- specification. (same as `b').
-
-`l'
- This modifier is accepted but not used.
-
-`N'
- Uses the COUNT parameter. This is used if there are multiple
- entries in the archive with the same name. Extract or delete
- instance COUNT of the given name from the archive.
-
-`o'
- Preserve the _original_ dates of members when extracting them. If
- you do not specify this modifier, files extracted from the archive
- are stamped with the time of extraction.
-
-`P'
- Use the full path name when matching names in the archive. GNU
- `ar' can not create an archive with a full path name (such archives
- are not POSIX complaint), but other archive creators can. This
- option will cause GNU `ar' to match file names using a complete
- path name, which can be convenient when extracting a single file
- from an archive created by another tool.
-
-`s'
- Write an object-file index into the archive, or update an existing
- one, even if no other change is made to the archive. You may use
- this modifier flag either with any operation, or alone. Running
- `ar s' on an archive is equivalent to running `ranlib' on it.
-
-`S'
- Do not generate an archive symbol table. This can speed up
- building a large library in several steps. The resulting archive
- can not be used with the linker. In order to build a symbol
- table, you must omit the `S' modifier on the last execution of
- `ar', or you must run `ranlib' on the archive.
-
-`u'
- Normally, `ar r'... inserts all files listed into the archive. If
- you would like to insert _only_ those of the files you list that
- are newer than existing members of the same names, use this
- modifier. The `u' modifier is allowed only for the operation `r'
- (replace). In particular, the combination `qu' is not allowed,
- since checking the timestamps would lose any speed advantage from
- the operation `q'.
-
-`v'
- This modifier requests the _verbose_ version of an operation. Many
- operations display additional information, such as filenames
- processed, when the modifier `v' is appended.
-
-`V'
- This modifier shows the version number of `ar'.
-
- `ar' ignores an initial option spelt `-X32_64', for compatibility
-with AIX. The behaviour produced by this option is the default for GNU
-`ar'. `ar' does not support any of the other `-X' options; in
-particular, it does not support `-X32' which is the default for AIX
-`ar'.
-
-
-File: binutils.info, Node: ar scripts, Prev: ar cmdline, Up: ar
-
-1.2 Controlling `ar' with a Script
-==================================
-
- ar -M [ <SCRIPT ]
-
- If you use the single command-line option `-M' with `ar', you can
-control its operation with a rudimentary command language. This form
-of `ar' operates interactively if standard input is coming directly
-from a terminal. During interactive use, `ar' prompts for input (the
-prompt is `AR >'), and continues executing even after errors. If you
-redirect standard input to a script file, no prompts are issued, and
-`ar' abandons execution (with a nonzero exit code) on any error.
-
- The `ar' command language is _not_ designed to be equivalent to the
-command-line options; in fact, it provides somewhat less control over
-archives. The only purpose of the command language is to ease the
-transition to GNU `ar' for developers who already have scripts written
-for the MRI "librarian" program.
-
- The syntax for the `ar' command language is straightforward:
- * commands are recognized in upper or lower case; for example, `LIST'
- is the same as `list'. In the following descriptions, commands are
- shown in upper case for clarity.
-
- * a single command may appear on each line; it is the first word on
- the line.
-
- * empty lines are allowed, and have no effect.
-
- * comments are allowed; text after either of the characters `*' or
- `;' is ignored.
-
- * Whenever you use a list of names as part of the argument to an `ar'
- command, you can separate the individual names with either commas
- or blanks. Commas are shown in the explanations below, for
- clarity.
-
- * `+' is used as a line continuation character; if `+' appears at
- the end of a line, the text on the following line is considered
- part of the current command.
-
- Here are the commands you can use in `ar' scripts, or when using
-`ar' interactively. Three of them have special significance:
-
- `OPEN' or `CREATE' specify a "current archive", which is a temporary
-file required for most of the other commands.
-
- `SAVE' commits the changes so far specified by the script. Prior to
-`SAVE', commands affect only the temporary copy of the current archive.
-
-`ADDLIB ARCHIVE'
-`ADDLIB ARCHIVE (MODULE, MODULE, ... MODULE)'
- Add all the contents of ARCHIVE (or, if specified, each named
- MODULE from ARCHIVE) to the current archive.
-
- Requires prior use of `OPEN' or `CREATE'.
-
-`ADDMOD MEMBER, MEMBER, ... MEMBER'
- Add each named MEMBER as a module in the current archive.
-
- Requires prior use of `OPEN' or `CREATE'.
-
-`CLEAR'
- Discard the contents of the current archive, canceling the effect
- of any operations since the last `SAVE'. May be executed (with no
- effect) even if no current archive is specified.
-
-`CREATE ARCHIVE'
- Creates an archive, and makes it the current archive (required for
- many other commands). The new archive is created with a temporary
- name; it is not actually saved as ARCHIVE until you use `SAVE'.
- You can overwrite existing archives; similarly, the contents of any
- existing file named ARCHIVE will not be destroyed until `SAVE'.
-
-`DELETE MODULE, MODULE, ... MODULE'
- Delete each listed MODULE from the current archive; equivalent to
- `ar -d ARCHIVE MODULE ... MODULE'.
-
- Requires prior use of `OPEN' or `CREATE'.
-
-`DIRECTORY ARCHIVE (MODULE, ... MODULE)'
-`DIRECTORY ARCHIVE (MODULE, ... MODULE) OUTPUTFILE'
- List each named MODULE present in ARCHIVE. The separate command
- `VERBOSE' specifies the form of the output: when verbose output is
- off, output is like that of `ar -t ARCHIVE MODULE...'. When
- verbose output is on, the listing is like `ar -tv ARCHIVE
- MODULE...'.
-
- Output normally goes to the standard output stream; however, if you
- specify OUTPUTFILE as a final argument, `ar' directs the output to
- that file.
-
-`END'
- Exit from `ar', with a `0' exit code to indicate successful
- completion. This command does not save the output file; if you
- have changed the current archive since the last `SAVE' command,
- those changes are lost.
-
-`EXTRACT MODULE, MODULE, ... MODULE'
- Extract each named MODULE from the current archive, writing them
- into the current directory as separate files. Equivalent to `ar -x
- ARCHIVE MODULE...'.
-
- Requires prior use of `OPEN' or `CREATE'.
-
-`LIST'
- Display full contents of the current archive, in "verbose" style
- regardless of the state of `VERBOSE'. The effect is like `ar tv
- ARCHIVE'. (This single command is a GNU `ar' enhancement, rather
- than present for MRI compatibility.)
-
- Requires prior use of `OPEN' or `CREATE'.
-
-`OPEN ARCHIVE'
- Opens an existing archive for use as the current archive (required
- for many other commands). Any changes as the result of subsequent
- commands will not actually affect ARCHIVE until you next use
- `SAVE'.
-
-`REPLACE MODULE, MODULE, ... MODULE'
- In the current archive, replace each existing MODULE (named in the
- `REPLACE' arguments) from files in the current working directory.
- To execute this command without errors, both the file, and the
- module in the current archive, must exist.
-
- Requires prior use of `OPEN' or `CREATE'.
-
-`VERBOSE'
- Toggle an internal flag governing the output from `DIRECTORY'.
- When the flag is on, `DIRECTORY' output matches output from `ar
- -tv '....
-
-`SAVE'
- Commit your changes to the current archive, and actually save it
- as a file with the name specified in the last `CREATE' or `OPEN'
- command.
-
- Requires prior use of `OPEN' or `CREATE'.
-
-
-
-File: binutils.info, Node: nm, Next: objcopy, Prev: ar, Up: Top
-
-2 nm
-****
-
- nm [`-a'|`--debug-syms'] [`-g'|`--extern-only']
- [`-B'] [`-C'|`--demangle'[=STYLE]] [`-D'|`--dynamic']
- [`-S'|`--print-size'] [`-s'|`--print-armap']
- [`-A'|`-o'|`--print-file-name'][`--special-syms']
- [`-n'|`-v'|`--numeric-sort'] [`-p'|`--no-sort']
- [`-r'|`--reverse-sort'] [`--size-sort'] [`-u'|`--undefined-only']
- [`-t' RADIX|`--radix='RADIX] [`-P'|`--portability']
- [`--target='BFDNAME] [`-f'FORMAT|`--format='FORMAT]
- [`--defined-only'] [`-l'|`--line-numbers'] [`--no-demangle']
- [`-V'|`--version'] [`-X 32_64'] [`--help'] [OBJFILE...]
-
- GNU `nm' lists the symbols from object files OBJFILE.... If no
-object files are listed as arguments, `nm' assumes the file `a.out'.
-
- For each symbol, `nm' shows:
-
- * The symbol value, in the radix selected by options (see below), or
- hexadecimal by default.
-
- * The symbol type. At least the following types are used; others
- are, as well, depending on the object file format. If lowercase,
- the symbol is local; if uppercase, the symbol is global (external).
-
- `A'
- The symbol's value is absolute, and will not be changed by
- further linking.
-
- `B'
- The symbol is in the uninitialized data section (known as
- BSS).
-
- `C'
- The symbol is common. Common symbols are uninitialized data.
- When linking, multiple common symbols may appear with the
- same name. If the symbol is defined anywhere, the common
- symbols are treated as undefined references. For more
- details on common symbols, see the discussion of -warn-common
- in *Note Linker options: (ld.info)Options.
-
- `D'
- The symbol is in the initialized data section.
-
- `G'
- The symbol is in an initialized data section for small
- objects. Some object file formats permit more efficient
- access to small data objects, such as a global int variable
- as opposed to a large global array.
-
- `I'
- The symbol is an indirect reference to another symbol. This
- is a GNU extension to the a.out object file format which is
- rarely used.
-
- `N'
- The symbol is a debugging symbol.
-
- `R'
- The symbol is in a read only data section.
-
- `S'
- The symbol is in an uninitialized data section for small
- objects.
-
- `T'
- The symbol is in the text (code) section.
-
- `U'
- The symbol is undefined.
-
- `V'
- The symbol is a weak object. When a weak defined symbol is
- linked with a normal defined symbol, the normal defined
- symbol is used with no error. When a weak undefined symbol
- is linked and the symbol is not defined, the value of the
- weak symbol becomes zero with no error.
-
- `W'
- The symbol is a weak symbol that has not been specifically
- tagged as a weak object symbol. When a weak defined symbol
- is linked with a normal defined symbol, the normal defined
- symbol is used with no error. When a weak undefined symbol
- is linked and the symbol is not defined, the value of the
- symbol is determined in a system-specific manner without
- error. On some systems, uppercase indicates that a default
- value has been specified.
-
- `-'
- The symbol is a stabs symbol in an a.out object file. In
- this case, the next values printed are the stabs other field,
- the stabs desc field, and the stab type. Stabs symbols are
- used to hold debugging information. For more information,
- see *Note Stabs: (stabs.info)Top.
-
- `?'
- The symbol type is unknown, or object file format specific.
-
- * The symbol name.
-
- The long and short forms of options, shown here as alternatives, are
-equivalent.
-
-`-A'
-`-o'
-`--print-file-name'
- Precede each symbol by the name of the input file (or archive
- member) in which it was found, rather than identifying the input
- file once only, before all of its symbols.
-
-`-a'
-`--debug-syms'
- Display all symbols, even debugger-only symbols; normally these
- are not listed.
-
-`-B'
- The same as `--format=bsd' (for compatibility with the MIPS `nm').
-
-`-C'
-`--demangle[=STYLE]'
- Decode ("demangle") low-level symbol names into user-level names.
- Besides removing any initial underscore prepended by the system,
- this makes C++ function names readable. Different compilers have
- different mangling styles. The optional demangling style argument
- can be used to choose an appropriate demangling style for your
- compiler. *Note c++filt::, for more information on demangling.
-
-`--no-demangle'
- Do not demangle low-level symbol names. This is the default.
-
-`-D'
-`--dynamic'
- Display the dynamic symbols rather than the normal symbols. This
- is only meaningful for dynamic objects, such as certain types of
- shared libraries.
-
-`-f FORMAT'
-`--format=FORMAT'
- Use the output format FORMAT, which can be `bsd', `sysv', or
- `posix'. The default is `bsd'. Only the first character of
- FORMAT is significant; it can be either upper or lower case.
-
-`-g'
-`--extern-only'
- Display only external symbols.
-
-`-l'
-`--line-numbers'
- For each symbol, use debugging information to try to find a
- filename and line number. For a defined symbol, look for the line
- number of the address of the symbol. For an undefined symbol,
- look for the line number of a relocation entry which refers to the
- symbol. If line number information can be found, print it after
- the other symbol information.
-
-`-n'
-`-v'
-`--numeric-sort'
- Sort symbols numerically by their addresses, rather than
- alphabetically by their names.
-
-`-p'
-`--no-sort'
- Do not bother to sort the symbols in any order; print them in the
- order encountered.
-
-`-P'
-`--portability'
- Use the POSIX.2 standard output format instead of the default
- format. Equivalent to `-f posix'.
-
-`-S'
-`--print-size'
- Print size, not the value, of defined symbols for the `bsd' output
- format.
-
-`-s'
-`--print-armap'
- When listing symbols from archive members, include the index: a
- mapping (stored in the archive by `ar' or `ranlib') of which
- modules contain definitions for which names.
-
-`-r'
-`--reverse-sort'
- Reverse the order of the sort (whether numeric or alphabetic); let
- the last come first.
-
-`--size-sort'
- Sort symbols by size. The size is computed as the difference
- between the value of the symbol and the value of the symbol with
- the next higher value. If the `bsd' output format is used the
- size of the symbol is printed, rather than the value, and `-S'
- must be used in order both size and value to be printed.
-
-`--special-syms'
- Display symbols which have a target-specific special meaning.
- These symbols are usually used by the target for some special
- processing and are not normally helpful when included included in
- the normal symbol lists. For example for ARM targets this option
- would skip the mapping symbols used to mark transistions between
- ARM code, THUMB code and data.
-
-`-t RADIX'
-`--radix=RADIX'
- Use RADIX as the radix for printing the symbol values. It must be
- `d' for decimal, `o' for octal, or `x' for hexadecimal.
-
-`--target=BFDNAME'
- Specify an object code format other than your system's default
- format. *Note Target Selection::, for more information.
-
-`-u'
-`--undefined-only'
- Display only undefined symbols (those external to each object
- file).
-
-`--defined-only'
- Display only defined symbols for each object file.
-
-`-V'
-`--version'
- Show the version number of `nm' and exit.
-
-`-X'
- This option is ignored for compatibility with the AIX version of
- `nm'. It takes one parameter which must be the string `32_64'.
- The default mode of AIX `nm' corresponds to `-X 32', which is not
- supported by GNU `nm'.
-
-`--help'
- Show a summary of the options to `nm' and exit.
-
-
-File: binutils.info, Node: objcopy, Next: objdump, Prev: nm, Up: Top
-
-3 objcopy
-*********
-
- objcopy [`-F' BFDNAME|`--target='BFDNAME]
- [`-I' BFDNAME|`--input-target='BFDNAME]
- [`-O' BFDNAME|`--output-target='BFDNAME]
- [`-B' BFDARCH|`--binary-architecture='BFDARCH]
- [`-S'|`--strip-all']
- [`-g'|`--strip-debug']
- [`-K' SYMBOLNAME|`--keep-symbol='SYMBOLNAME]
- [`-N' SYMBOLNAME|`--strip-symbol='SYMBOLNAME]
- [`--strip-unneeded-symbol='SYMBOLNAME]
- [`-G' SYMBOLNAME|`--keep-global-symbol='SYMBOLNAME]
- [`-L' SYMBOLNAME|`--localize-symbol='SYMBOLNAME]
- [`--globalize-symbol='SYMBOLNAME]
- [`-W' SYMBOLNAME|`--weaken-symbol='SYMBOLNAME]
- [`-w'|`--wildcard']
- [`-x'|`--discard-all']
- [`-X'|`--discard-locals']
- [`-b' BYTE|`--byte='BYTE]
- [`-i' INTERLEAVE|`--interleave='INTERLEAVE]
- [`-j' SECTIONNAME|`--only-section='SECTIONNAME]
- [`-R' SECTIONNAME|`--remove-section='SECTIONNAME]
- [`-p'|`--preserve-dates']
- [`--debugging']
- [`--gap-fill='VAL]
- [`--pad-to='ADDRESS]
- [`--set-start='VAL]
- [`--adjust-start='INCR]
- [`--change-addresses='INCR]
- [`--change-section-address' SECTION{=,+,-}VAL]
- [`--change-section-lma' SECTION{=,+,-}VAL]
- [`--change-section-vma' SECTION{=,+,-}VAL]
- [`--change-warnings'] [`--no-change-warnings']
- [`--set-section-flags' SECTION=FLAGS]
- [`--add-section' SECTIONNAME=FILENAME]
- [`--rename-section' OLDNAME=NEWNAME[,FLAGS]]
- [`--change-leading-char'] [`--remove-leading-char']
- [`--srec-len='IVAL] [`--srec-forceS3']
- [`--redefine-sym' OLD=NEW]
- [`--redefine-syms='FILENAME]
- [`--weaken']
- [`--keep-symbols='FILENAME]
- [`--strip-symbols='FILENAME]
- [`--strip-unneeded-symbols='FILENAME]
- [`--keep-global-symbols='FILENAME]
- [`--localize-symbols='FILENAME]
- [`--globalize-symbols='FILENAME]
- [`--weaken-symbols='FILENAME]
- [`--alt-machine-code='INDEX]
- [`--prefix-symbols='STRING]
- [`--prefix-sections='STRING]
- [`--prefix-alloc-sections='STRING]
- [`--add-gnu-debuglink='PATH-TO-FILE]
- [`--keep-file-symbols']
- [`--only-keep-debug']
- [`--writable-text']
- [`--readonly-text']
- [`--pure']
- [`--impure']
- [`-v'|`--verbose']
- [`-V'|`--version']
- [`--help'] [`--info']
- INFILE [OUTFILE]
-
- The GNU `objcopy' utility copies the contents of an object file to
-another. `objcopy' uses the GNU BFD Library to read and write the
-object files. It can write the destination object file in a format
-different from that of the source object file. The exact behavior of
-`objcopy' is controlled by command-line options. Note that `objcopy'
-should be able to copy a fully linked file between any two formats.
-However, copying a relocatable object file between any two formats may
-not work as expected.
-
- `objcopy' creates temporary files to do its translations and deletes
-them afterward. `objcopy' uses BFD to do all its translation work; it
-has access to all the formats described in BFD and thus is able to
-recognize most formats without being told explicitly. *Note BFD:
-(ld.info)BFD.
-
- `objcopy' can be used to generate S-records by using an output
-target of `srec' (e.g., use `-O srec').
-
- `objcopy' can be used to generate a raw binary file by using an
-output target of `binary' (e.g., use `-O binary'). When `objcopy'
-generates a raw binary file, it will essentially produce a memory dump
-of the contents of the input object file. All symbols and relocation
-information will be discarded. The memory dump will start at the load
-address of the lowest section copied into the output file.
-
- When generating an S-record or a raw binary file, it may be helpful
-to use `-S' to remove sections containing debugging information. In
-some cases `-R' will be useful to remove sections which contain
-information that is not needed by the binary file.
-
- Note--`objcopy' is not able to change the endianness of its input
-files. If the input format has an endianness (some formats do not),
-`objcopy' can only copy the inputs into file formats that have the same
-endianness or which have no endianness (e.g., `srec').
-
-`INFILE'
-`OUTFILE'
- The input and output files, respectively. If you do not specify
- OUTFILE, `objcopy' creates a temporary file and destructively
- renames the result with the name of INFILE.
-
-`-I BFDNAME'
-`--input-target=BFDNAME'
- Consider the source file's object format to be BFDNAME, rather than
- attempting to deduce it. *Note Target Selection::, for more
- information.
-
-`-O BFDNAME'
-`--output-target=BFDNAME'
- Write the output file using the object format BFDNAME. *Note
- Target Selection::, for more information.
-
-`-F BFDNAME'
-`--target=BFDNAME'
- Use BFDNAME as the object format for both the input and the output
- file; i.e., simply transfer data from source to destination with no
- translation. *Note Target Selection::, for more information.
-
-`-B BFDARCH'
-`--binary-architecture=BFDARCH'
- Useful when transforming a raw binary input file into an object
- file. In this case the output architecture can be set to BFDARCH.
- This option will be ignored if the input file has a known BFDARCH.
- You can access this binary data inside a program by referencing
- the special symbols that are created by the conversion process.
- These symbols are called _binary_OBJFILE_start,
- _binary_OBJFILE_end and _binary_OBJFILE_size. e.g. you can
- transform a picture file into an object file and then access it in
- your code using these symbols.
-
-`-j SECTIONNAME'
-`--only-section=SECTIONNAME'
- Copy only the named section from the input file to the output file.
- This option may be given more than once. Note that using this
- option inappropriately may make the output file unusable.
-
-`-R SECTIONNAME'
-`--remove-section=SECTIONNAME'
- Remove any section named SECTIONNAME from the output file. This
- option may be given more than once. Note that using this option
- inappropriately may make the output file unusable.
-
-`-S'
-`--strip-all'
- Do not copy relocation and symbol information from the source file.
-
-`-g'
-`--strip-debug'
- Do not copy debugging symbols or sections from the source file.
-
-`--strip-unneeded'
- Strip all symbols that are not needed for relocation processing.
-
-`-K SYMBOLNAME'
-`--keep-symbol=SYMBOLNAME'
- When stripping symbols, keep symbol SYMBOLNAME even if it would
- normally be stripped. This option may be given more than once.
-
-`-N SYMBOLNAME'
-`--strip-symbol=SYMBOLNAME'
- Do not copy symbol SYMBOLNAME from the source file. This option
- may be given more than once.
-
-`--strip-unneeded-symbol=SYMBOLNAME'
- Do not copy symbol SYMBOLNAME from the source file unless it is
- needed by a relocation. This option may be given more than once.
-
-`-G SYMBOLNAME'
-`--keep-global-symbol=SYMBOLNAME'
- Keep only symbol SYMBOLNAME global. Make all other symbols local
- to the file, so that they are not visible externally. This option
- may be given more than once.
-
-`-L SYMBOLNAME'
-`--localize-symbol=SYMBOLNAME'
- Make symbol SYMBOLNAME local to the file, so that it is not
- visible externally. This option may be given more than once.
-
-`-W SYMBOLNAME'
-`--weaken-symbol=SYMBOLNAME'
- Make symbol SYMBOLNAME weak. This option may be given more than
- once.
-
-`--globalize-symbol=SYMBOLNAME'
- Give symbol SYMBOLNAME global scoping so that it is visible
- outside of the file in which it is defined. This option may be
- given more than once.
-
-`-w'
-`--wildcard'
- Permit regular expressions in SYMBOLNAMEs used in other command
- line options. The question mark (?), asterisk (*), backslash (\)
- and square brackets ([]) operators can be used anywhere in the
- symbol name. If the first character of the symbol name is the
- exclamation point (!) then the sense of the switch is reversed for
- that symbol. For example:
-
- -w -W !foo -W fo*
-
- would cause objcopy to weaken all symbols that start with "fo"
- except for the symbol "foo".
-
-`-x'
-`--discard-all'
- Do not copy non-global symbols from the source file.
-
-`-X'
-`--discard-locals'
- Do not copy compiler-generated local symbols. (These usually
- start with `L' or `.'.)
-
-`-b BYTE'
-`--byte=BYTE'
- Keep only every BYTEth byte of the input file (header data is not
- affected). BYTE can be in the range from 0 to INTERLEAVE-1, where
- INTERLEAVE is given by the `-i' or `--interleave' option, or the
- default of 4. This option is useful for creating files to program
- ROM. It is typically used with an `srec' output target.
-
-`-i INTERLEAVE'
-`--interleave=INTERLEAVE'
- Only copy one out of every INTERLEAVE bytes. Select which byte to
- copy with the `-b' or `--byte' option. The default is 4.
- `objcopy' ignores this option if you do not specify either `-b' or
- `--byte'.
-
-`-p'
-`--preserve-dates'
- Set the access and modification dates of the output file to be the
- same as those of the input file.
-
-`--debugging'
- Convert debugging information, if possible. This is not the
- default because only certain debugging formats are supported, and
- the conversion process can be time consuming.
-
-`--gap-fill VAL'
- Fill gaps between sections with VAL. This operation applies to
- the _load address_ (LMA) of the sections. It is done by increasing
- the size of the section with the lower address, and filling in the
- extra space created with VAL.
-
-`--pad-to ADDRESS'
- Pad the output file up to the load address ADDRESS. This is done
- by increasing the size of the last section. The extra space is
- filled in with the value specified by `--gap-fill' (default zero).
-
-`--set-start VAL'
- Set the start address of the new file to VAL. Not all object file
- formats support setting the start address.
-
-`--change-start INCR'
-`--adjust-start INCR'
- Change the start address by adding INCR. Not all object file
- formats support setting the start address.
-
-`--change-addresses INCR'
-`--adjust-vma INCR'
- Change the VMA and LMA addresses of all sections, as well as the
- start address, by adding INCR. Some object file formats do not
- permit section addresses to be changed arbitrarily. Note that
- this does not relocate the sections; if the program expects
- sections to be loaded at a certain address, and this option is
- used to change the sections such that they are loaded at a
- different address, the program may fail.
-
-`--change-section-address SECTION{=,+,-}VAL'
-`--adjust-section-vma SECTION{=,+,-}VAL'
- Set or change both the VMA address and the LMA address of the named
- SECTION. If `=' is used, the section address is set to VAL.
- Otherwise, VAL is added to or subtracted from the section address.
- See the comments under `--change-addresses', above. If SECTION
- does not exist in the input file, a warning will be issued, unless
- `--no-change-warnings' is used.
-
-`--change-section-lma SECTION{=,+,-}VAL'
- Set or change the LMA address of the named SECTION. The LMA
- address is the address where the section will be loaded into
- memory at program load time. Normally this is the same as the VMA
- address, which is the address of the section at program run time,
- but on some systems, especially those where a program is held in
- ROM, the two can be different. If `=' is used, the section
- address is set to VAL. Otherwise, VAL is added to or subtracted
- from the section address. See the comments under
- `--change-addresses', above. If SECTION does not exist in the
- input file, a warning will be issued, unless
- `--no-change-warnings' is used.
-
-`--change-section-vma SECTION{=,+,-}VAL'
- Set or change the VMA address of the named SECTION. The VMA
- address is the address where the section will be located once the
- program has started executing. Normally this is the same as the
- LMA address, which is the address where the section will be loaded
- into memory, but on some systems, especially those where a program
- is held in ROM, the two can be different. If `=' is used, the
- section address is set to VAL. Otherwise, VAL is added to or
- subtracted from the section address. See the comments under
- `--change-addresses', above. If SECTION does not exist in the
- input file, a warning will be issued, unless
- `--no-change-warnings' is used.
-
-`--change-warnings'
-`--adjust-warnings'
- If `--change-section-address' or `--change-section-lma' or
- `--change-section-vma' is used, and the named section does not
- exist, issue a warning. This is the default.
-
-`--no-change-warnings'
-`--no-adjust-warnings'
- Do not issue a warning if `--change-section-address' or
- `--adjust-section-lma' or `--adjust-section-vma' is used, even if
- the named section does not exist.
-
-`--set-section-flags SECTION=FLAGS'
- Set the flags for the named section. The FLAGS argument is a
- comma separated string of flag names. The recognized names are
- `alloc', `contents', `load', `noload', `readonly', `code', `data',
- `rom', `share', and `debug'. You can set the `contents' flag for
- a section which does not have contents, but it is not meaningful
- to clear the `contents' flag of a section which does have
- contents-just remove the section instead. Not all flags are
- meaningful for all object file formats.
-
-`--add-section SECTIONNAME=FILENAME'
- Add a new section named SECTIONNAME while copying the file. The
- contents of the new section are taken from the file FILENAME. The
- size of the section will be the size of the file. This option only
- works on file formats which can support sections with arbitrary
- names.
-
-`--rename-section OLDNAME=NEWNAME[,FLAGS]'
- Rename a section from OLDNAME to NEWNAME, optionally changing the
- section's flags to FLAGS in the process. This has the advantage
- over usng a linker script to perform the rename in that the output
- stays as an object file and does not become a linked executable.
-
- This option is particularly helpful when the input format is
- binary, since this will always create a section called .data. If
- for example, you wanted instead to create a section called .rodata
- containing binary data you could use the following command line to
- achieve it:
-
- objcopy -I binary -O <output_format> -B <architecture> \
- --rename-section .data=.rodata,alloc,load,readonly,data,contents \
- <input_binary_file> <output_object_file>
-
-`--change-leading-char'
- Some object file formats use special characters at the start of
- symbols. The most common such character is underscore, which
- compilers often add before every symbol. This option tells
- `objcopy' to change the leading character of every symbol when it
- converts between object file formats. If the object file formats
- use the same leading character, this option has no effect.
- Otherwise, it will add a character, or remove a character, or
- change a character, as appropriate.
-
-`--remove-leading-char'
- If the first character of a global symbol is a special symbol
- leading character used by the object file format, remove the
- character. The most common symbol leading character is
- underscore. This option will remove a leading underscore from all
- global symbols. This can be useful if you want to link together
- objects of different file formats with different conventions for
- symbol names. This is different from `--change-leading-char'
- because it always changes the symbol name when appropriate,
- regardless of the object file format of the output file.
-
-`--srec-len=IVAL'
- Meaningful only for srec output. Set the maximum length of the
- Srecords being produced to IVAL. This length covers both address,
- data and crc fields.
-
-`--srec-forceS3'
- Meaningful only for srec output. Avoid generation of S1/S2
- records, creating S3-only record format.
-
-`--redefine-sym OLD=NEW'
- Change the name of a symbol OLD, to NEW. This can be useful when
- one is trying link two things together for which you have no
- source, and there are name collisions.
-
-`--redefine-syms=FILENAME'
- Apply `--redefine-sym' to each symbol pair "OLD NEW" listed in the
- file FILENAME. FILENAME is simply a flat file, with one symbol
- pair per line. Line comments may be introduced by the hash
- character. This option may be given more than once.
-
-`--weaken'
- Change all global symbols in the file to be weak. This can be
- useful when building an object which will be linked against other
- objects using the `-R' option to the linker. This option is only
- effective when using an object file format which supports weak
- symbols.
-
-`--keep-symbols=FILENAME'
- Apply `--keep-symbol' option to each symbol listed in the file
- FILENAME. FILENAME is simply a flat file, with one symbol name
- per line. Line comments may be introduced by the hash character.
- This option may be given more than once.
-
-`--strip-symbols=FILENAME'
- Apply `--strip-symbol' option to each symbol listed in the file
- FILENAME. FILENAME is simply a flat file, with one symbol name
- per line. Line comments may be introduced by the hash character.
- This option may be given more than once.
-
-`--strip-unneeded-symbols=FILENAME'
- Apply `--strip-unneeded-symbol' option to each symbol listed in
- the file FILENAME. FILENAME is simply a flat file, with one
- symbol name per line. Line comments may be introduced by the hash
- character. This option may be given more than once.
-
-`--keep-global-symbols=FILENAME'
- Apply `--keep-global-symbol' option to each symbol listed in the
- file FILENAME. FILENAME is simply a flat file, with one symbol
- name per line. Line comments may be introduced by the hash
- character. This option may be given more than once.
-
-`--localize-symbols=FILENAME'
- Apply `--localize-symbol' option to each symbol listed in the file
- FILENAME. FILENAME is simply a flat file, with one symbol name
- per line. Line comments may be introduced by the hash character.
- This option may be given more than once.
-
-`--globalize-symbols=FILENAME'
- Apply `--globalize-symbol' option to each symbol listed in the file
- FILENAME. FILENAME is simply a flat file, with one symbol name
- per line. Line comments may be introduced by the hash character.
- This option may be given more than once.
-
-`--weaken-symbols=FILENAME'
- Apply `--weaken-symbol' option to each symbol listed in the file
- FILENAME. FILENAME is simply a flat file, with one symbol name
- per line. Line comments may be introduced by the hash character.
- This option may be given more than once.
-
-`--alt-machine-code=INDEX'
- If the output architecture has alternate machine codes, use the
- INDEXth code instead of the default one. This is useful in case a
- machine is assigned an official code and the tool-chain adopts the
- new code, but other applications still depend on the original code
- being used. For ELF based architectures if the INDEX alternative
- does not exist then the value is treated as an absolute number to
- be stored in the e_machine field of the ELF header.
-
-`--writable-text'
- Mark the output text as writable. This option isn't meaningful
- for all object file formats.
-
-`--readonly-text'
- Make the output text write protected. This option isn't
- meaningful for all object file formats.
-
-`--pure'
- Mark the output file as demand paged. This option isn't
- meaningful for all object file formats.
-
-`--impure'
- Mark the output file as impure. This option isn't meaningful for
- all object file formats.
-
-`--prefix-symbols=STRING'
- Prefix all symbols in the output file with STRING.
-
-`--prefix-sections=STRING'
- Prefix all section names in the output file with STRING.
-
-`--prefix-alloc-sections=STRING'
- Prefix all the names of all allocated sections in the output file
- with STRING.
-
-`--add-gnu-debuglink=PATH-TO-FILE'
- Creates a .gnu_debuglink section which contains a reference to
- PATH-TO-FILE and adds it to the output file.
-
-`--keep-file-symbols'
- When stripping a file, perhaps with `--strip-debug' or
- `--strip-unneeded', retain any symbols specifying source file
- names, which would otherwise get stripped.
-
-`--only-keep-debug'
- Strip a file, removing contents of any sections that would not be
- stripped by `--strip-debug' and leaving the debugging sections
- intact.
-
- The intention is that this option will be used in conjunction with
- `--add-gnu-debuglink' to create a two part executable. One a
- stripped binary which will occupy less space in RAM and in a
- distribution and the second a debugging information file which is
- only needed if debugging abilities are required. The suggested
- procedure to create these files is as follows:
-
- 1. Link the executable as normal. Assuming that is is called
- `foo' then...
-
- 2. Run `objcopy --only-keep-debug foo foo.dbg' to create a file
- containing the debugging info.
-
- 3. Run `objcopy --strip-debug foo' to create a stripped
- executable.
-
- 4. Run `objcopy --add-gnu-debuglink=foo.dbg foo' to add a link
- to the debugging info into the stripped executable.
-
- Note - the choice of `.dbg' as an extension for the debug info
- file is arbitrary. Also the `--only-keep-debug' step is optional.
- You could instead do this:
-
- 1. Link the executable as normal.
-
- 2. Copy `foo' to `foo.full'
-
- 3. Run `objcopy --strip-debug foo'
-
- 4. Run `objcopy --add-gnu-debuglink=foo.full foo'
-
- i.e. the file pointed to by the `--add-gnu-debuglink' can be the
- full executable. It does not have to be a file created by the
- `--only-keep-debug' switch.
-
-`-V'
-`--version'
- Show the version number of `objcopy'.
-
-`-v'
-`--verbose'
- Verbose output: list all object files modified. In the case of
- archives, `objcopy -V' lists all members of the archive.
-
-`--help'
- Show a summary of the options to `objcopy'.
-
-`--info'
- Display a list showing all architectures and object formats
- available.
-
-
-File: binutils.info, Node: objdump, Next: ranlib, Prev: objcopy, Up: Top
-
-4 objdump
-*********
-
- objdump [`-a'|`--archive-headers']
- [`-b' BFDNAME|`--target=BFDNAME']
- [`-C'|`--demangle'[=STYLE] ]
- [`-d'|`--disassemble']
- [`-D'|`--disassemble-all']
- [`-z'|`--disassemble-zeroes']
- [`-EB'|`-EL'|`--endian='{big | little }]
- [`-f'|`--file-headers']
- [`--file-start-context']
- [`-g'|`--debugging']
- [`-e'|`--debugging-tags']
- [`-h'|`--section-headers'|`--headers']
- [`-i'|`--info']
- [`-j' SECTION|`--section='SECTION]
- [`-l'|`--line-numbers']
- [`-S'|`--source']
- [`-m' MACHINE|`--architecture='MACHINE]
- [`-M' OPTIONS|`--disassembler-options='OPTIONS]
- [`-p'|`--private-headers']
- [`-r'|`--reloc']
- [`-R'|`--dynamic-reloc']
- [`-s'|`--full-contents']
- [`-W'|`--dwarf']
- [`-G'|`--stabs']
- [`-t'|`--syms']
- [`-T'|`--dynamic-syms']
- [`-x'|`--all-headers']
- [`-w'|`--wide']
- [`--start-address='ADDRESS]
- [`--stop-address='ADDRESS]
- [`--prefix-addresses']
- [`--[no-]show-raw-insn']
- [`--adjust-vma='OFFSET]
- [`--special-syms']
- [`-V'|`--version']
- [`-H'|`--help']
- OBJFILE...
-
- `objdump' displays information about one or more object files. The
-options control what particular information to display. This
-information is mostly useful to programmers who are working on the
-compilation tools, as opposed to programmers who just want their
-program to compile and work.
-
- OBJFILE... are the object files to be examined. When you specify
-archives, `objdump' shows information on each of the member object
-files.
-
- The long and short forms of options, shown here as alternatives, are
-equivalent. At least one option from the list
-`-a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-r,-R,-s,-S,-t,-T,-V,-x' must be given.
-
-`-a'
-`--archive-header'
- If any of the OBJFILE files are archives, display the archive
- header information (in a format similar to `ls -l'). Besides the
- information you could list with `ar tv', `objdump -a' shows the
- object file format of each archive member.
-
-`--adjust-vma=OFFSET'
- When dumping information, first add OFFSET to all the section
- addresses. This is useful if the section addresses do not
- correspond to the symbol table, which can happen when putting
- sections at particular addresses when using a format which can not
- represent section addresses, such as a.out.
-
-`-b BFDNAME'
-`--target=BFDNAME'
- Specify that the object-code format for the object files is
- BFDNAME. This option may not be necessary; OBJDUMP can
- automatically recognize many formats.
-
- For example,
- objdump -b oasys -m vax -h fu.o
- displays summary information from the section headers (`-h') of
- `fu.o', which is explicitly identified (`-m') as a VAX object file
- in the format produced by Oasys compilers. You can list the
- formats available with the `-i' option. *Note Target Selection::,
- for more information.
-
-`-C'
-`--demangle[=STYLE]'
- Decode ("demangle") low-level symbol names into user-level names.
- Besides removing any initial underscore prepended by the system,
- this makes C++ function names readable. Different compilers have
- different mangling styles. The optional demangling style argument
- can be used to choose an appropriate demangling style for your
- compiler. *Note c++filt::, for more information on demangling.
-
-`-g'
-`--debugging'
- Display debugging information. This attempts to parse debugging
- information stored in the file and print it out using a C like
- syntax. Only certain types of debugging information have been
- implemented. Some other types are supported by `readelf -w'.
- *Note readelf::.
-
-`-e'
-`--debugging-tags'
- Like `-g', but the information is generated in a format compatible
- with ctags tool.
-
-`-d'
-`--disassemble'
- Display the assembler mnemonics for the machine instructions from
- OBJFILE. This option only disassembles those sections which are
- expected to contain instructions.
-
-`-D'
-`--disassemble-all'
- Like `-d', but disassemble the contents of all sections, not just
- those expected to contain instructions.
-
-`--prefix-addresses'
- When disassembling, print the complete address on each line. This
- is the older disassembly format.
-
-`-EB'
-`-EL'
-`--endian={big|little}'
- Specify the endianness of the object files. This only affects
- disassembly. This can be useful when disassembling a file format
- which does not describe endianness information, such as S-records.
-
-`-f'
-`--file-headers'
- Display summary information from the overall header of each of the
- OBJFILE files.
-
-`--file-start-context'
- Specify that when displaying interlisted source code/disassembly
- (assumes `-S') from a file that has not yet been displayed, extend
- the context to the start of the file.
-
-`-h'
-`--section-headers'
-`--headers'
- Display summary information from the section headers of the object
- file.
-
- File segments may be relocated to nonstandard addresses, for
- example by using the `-Ttext', `-Tdata', or `-Tbss' options to
- `ld'. However, some object file formats, such as a.out, do not
- store the starting address of the file segments. In those
- situations, although `ld' relocates the sections correctly, using
- `objdump -h' to list the file section headers cannot show the
- correct addresses. Instead, it shows the usual addresses, which
- are implicit for the target.
-
-`-H'
-`--help'
- Print a summary of the options to `objdump' and exit.
-
-`-i'
-`--info'
- Display a list showing all architectures and object formats
- available for specification with `-b' or `-m'.
-
-`-j NAME'
-`--section=NAME'
- Display information only for section NAME.
-
-`-l'
-`--line-numbers'
- Label the display (using debugging information) with the filename
- and source line numbers corresponding to the object code or relocs
- shown. Only useful with `-d', `-D', or `-r'.
-
-`-m MACHINE'
-`--architecture=MACHINE'
- Specify the architecture to use when disassembling object files.
- This can be useful when disassembling object files which do not
- describe architecture information, such as S-records. You can
- list the available architectures with the `-i' option.
-
-`-M OPTIONS'
-`--disassembler-options=OPTIONS'
- Pass target specific information to the disassembler. Only
- supported on some targets. If it is necessary to specify more
- than one disassembler option then multiple `-M' options can be
- used or can be placed together into a comma separated list.
-
- If the target is an ARM architecture then this switch can be used
- to select which register name set is used during disassembler.
- Specifying `-M reg-names-std' (the default) will select the
- register names as used in ARM's instruction set documentation, but
- with register 13 called 'sp', register 14 called 'lr' and register
- 15 called 'pc'. Specifying `-M reg-names-apcs' will select the
- name set used by the ARM Procedure Call Standard, whilst
- specifying `-M reg-names-raw' will just use `r' followed by the
- register number.
-
- There are also two variants on the APCS register naming scheme
- enabled by `-M reg-names-atpcs' and `-M reg-names-special-atpcs'
- which use the ARM/Thumb Procedure Call Standard naming
- conventions. (Either with the normal register names or the
- special register names).
-
- This option can also be used for ARM architectures to force the
- disassembler to interpret all instructions as Thumb instructions by
- using the switch `--disassembler-options=force-thumb'. This can be
- useful when attempting to disassemble thumb code produced by other
- compilers.
-
- For the x86, some of the options duplicate functions of the `-m'
- switch, but allow finer grained control. Multiple selections from
- the following may be specified as a comma separated string.
- `x86-64', `i386' and `i8086' select disassembly for the given
- architecture. `intel' and `att' select between intel syntax mode
- and AT&T syntax mode. `addr32', `addr16', `data32' and `data16'
- specify the default address size and operand size. These four
- options will be overridden if `x86-64', `i386' or `i8086' appear
- later in the option string. Lastly, `suffix', when in AT&T mode,
- instructs the disassembler to print a mnemonic suffix even when the
- suffix could be inferred by the operands.
-
- For PPC, `booke', `booke32' and `booke64' select disassembly of
- BookE instructions. `32' and `64' select PowerPC and PowerPC64
- disassembly, respectively. `e300' selects disassembly for the
- e300 family.
-
- For MIPS, this option controls the printing of instruction
- mneumonic names and register names in disassembled instructions.
- Multiple selections from the following may be specified as a comma
- separated string, and invalid options are ignored:
-
- `no-aliases'
- Print the 'raw' instruction mneumonic instead of some pseudo
- instruction mneumonic. I.E. print 'daddu' or 'or' instead of
- 'move', 'sll' instead of 'nop', etc.
-
- `gpr-names=ABI'
- Print GPR (general-purpose register) names as appropriate for
- the specified ABI. By default, GPR names are selected
- according to the ABI of the binary being disassembled.
-
- `fpr-names=ABI'
- Print FPR (floating-point register) names as appropriate for
- the specified ABI. By default, FPR numbers are printed
- rather than names.
-
- `cp0-names=ARCH'
- Print CP0 (system control coprocessor; coprocessor 0)
- register names as appropriate for the CPU or architecture
- specified by ARCH. By default, CP0 register names are
- selected according to the architecture and CPU of the binary
- being disassembled.
-
- `hwr-names=ARCH'
- Print HWR (hardware register, used by the `rdhwr'
- instruction) names as appropriate for the CPU or architecture
- specified by ARCH. By default, HWR names are selected
- according to the architecture and CPU of the binary being
- disassembled.
-
- `reg-names=ABI'
- Print GPR and FPR names as appropriate for the selected ABI.
-
- `reg-names=ARCH'
- Print CPU-specific register names (CP0 register and HWR names)
- as appropriate for the selected CPU or architecture.
-
- For any of the options listed above, ABI or ARCH may be specified
- as `numeric' to have numbers printed rather than names, for the
- selected types of registers. You can list the available values of
- ABI and ARCH using the `--help' option.
-
- For VAX, you can specify function entry addresses with `-M
- entry:0xf00ba'. You can use this multiple times to properly
- disassemble VAX binary files that don't contain symbol tables (like
- ROM dumps). In these cases, the function entry mask would
- otherwise be decoded as VAX instructions, which would probably
- lead the the rest of the function being wrongly disassembled.
-
-`-p'
-`--private-headers'
- Print information that is specific to the object file format. The
- exact information printed depends upon the object file format.
- For some object file formats, no additional information is printed.
-
-`-r'
-`--reloc'
- Print the relocation entries of the file. If used with `-d' or
- `-D', the relocations are printed interspersed with the
- disassembly.
-
-`-R'
-`--dynamic-reloc'
- Print the dynamic relocation entries of the file. This is only
- meaningful for dynamic objects, such as certain types of shared
- libraries.
-
-`-s'
-`--full-contents'
- Display the full contents of any sections requested. By default
- all non-empty sections are displayed.
-
-`-S'
-`--source'
- Display source code intermixed with disassembly, if possible.
- Implies `-d'.
-
-`--show-raw-insn'
- When disassembling instructions, print the instruction in hex as
- well as in symbolic form. This is the default except when
- `--prefix-addresses' is used.
-
-`--no-show-raw-insn'
- When disassembling instructions, do not print the instruction
- bytes. This is the default when `--prefix-addresses' is used.
-
-`-W'
-`--dwarf'
- Displays the contents of the DWARF debug sections in the file, if
- any are present.
-
-`-G'
-`--stabs'
- Display the full contents of any sections requested. Display the
- contents of the .stab and .stab.index and .stab.excl sections from
- an ELF file. This is only useful on systems (such as Solaris 2.0)
- in which `.stab' debugging symbol-table entries are carried in an
- ELF section. In most other file formats, debugging symbol-table
- entries are interleaved with linkage symbols, and are visible in
- the `--syms' output. For more information on stabs symbols, see
- *Note Stabs: (stabs.info)Top.
-
-`--start-address=ADDRESS'
- Start displaying data at the specified address. This affects the
- output of the `-d', `-r' and `-s' options.
-
-`--stop-address=ADDRESS'
- Stop displaying data at the specified address. This affects the
- output of the `-d', `-r' and `-s' options.
-
-`-t'
-`--syms'
- Print the symbol table entries of the file. This is similar to
- the information provided by the `nm' program.
-
-`-T'
-`--dynamic-syms'
- Print the dynamic symbol table entries of the file. This is only
- meaningful for dynamic objects, such as certain types of shared
- libraries. This is similar to the information provided by the `nm'
- program when given the `-D' (`--dynamic') option.
-
-`--special-syms'
- When displaying symbols include those which the target considers
- to be special in some way and which would not normally be of
- interest to the user.
-
-`-V'
-`--version'
- Print the version number of `objdump' and exit.
-
-`-x'
-`--all-headers'
- Display all available header information, including the symbol
- table and relocation entries. Using `-x' is equivalent to
- specifying all of `-a -f -h -p -r -t'.
-
-`-w'
-`--wide'
- Format some lines for output devices that have more than 80
- columns. Also do not truncate symbol names when they are
- displayed.
-
-`-z'
-`--disassemble-zeroes'
- Normally the disassembly output will skip blocks of zeroes. This
- option directs the disassembler to disassemble those blocks, just
- like any other data.
-
-
-File: binutils.info, Node: ranlib, Next: readelf, Prev: objdump, Up: Top
-
-5 ranlib
-********
-
- ranlib [`-vV'] ARCHIVE
-
- `ranlib' generates an index to the contents of an archive and stores
-it in the archive. The index lists each symbol defined by a member of
-an archive that is a relocatable object file.
-
- You may use `nm -s' or `nm --print-armap' to list this index.
-
- An archive with such an index speeds up linking to the library and
-allows routines in the library to call each other without regard to
-their placement in the archive.
-
- The GNU `ranlib' program is another form of GNU `ar'; running
-`ranlib' is completely equivalent to executing `ar -s'. *Note ar::.
-
-`-v'
-`-V'
-`--version'
- Show the version number of `ranlib'.
-
-
-File: binutils.info, Node: size, Next: strings, Prev: readelf, Up: Top
-
-6 size
-******
-
- size [`-A'|`-B'|`--format='COMPATIBILITY]
- [`--help']
- [`-d'|`-o'|`-x'|`--radix='NUMBER]
- [`-t'|`--totals']
- [`--target='BFDNAME] [`-V'|`--version']
- [OBJFILE...]
-
- The GNU `size' utility lists the section sizes--and the total
-size--for each of the object or archive files OBJFILE in its argument
-list. By default, one line of output is generated for each object file
-or each module in an archive.
-
- OBJFILE... are the object files to be examined. If none are
-specified, the file `a.out' will be used.
-
- The command line options have the following meanings:
-
-`-A'
-`-B'
-`--format=COMPATIBILITY'
- Using one of these options, you can choose whether the output from
- GNU `size' resembles output from System V `size' (using `-A', or
- `--format=sysv'), or Berkeley `size' (using `-B', or
- `--format=berkeley'). The default is the one-line format similar
- to Berkeley's.
-
- Here is an example of the Berkeley (default) format of output from
- `size':
- $ size --format=Berkeley ranlib size
- text data bss dec hex filename
- 294880 81920 11592 388392 5ed28 ranlib
- 294880 81920 11888 388688 5ee50 size
-
- This is the same data, but displayed closer to System V
- conventions:
-
- $ size --format=SysV ranlib size
- ranlib :
- section size addr
- .text 294880 8192
- .data 81920 303104
- .bss 11592 385024
- Total 388392
-
-
- size :
- section size addr
- .text 294880 8192
- .data 81920 303104
- .bss 11888 385024
- Total 388688
-
-`--help'
- Show a summary of acceptable arguments and options.
-
-`-d'
-`-o'
-`-x'
-`--radix=NUMBER'
- Using one of these options, you can control whether the size of
- each section is given in decimal (`-d', or `--radix=10'); octal
- (`-o', or `--radix=8'); or hexadecimal (`-x', or `--radix=16').
- In `--radix=NUMBER', only the three values (8, 10, 16) are
- supported. The total size is always given in two radices; decimal
- and hexadecimal for `-d' or `-x' output, or octal and hexadecimal
- if you're using `-o'.
-
-`-t'
-`--totals'
- Show totals of all objects listed (Berkeley format listing mode
- only).
-
-`--target=BFDNAME'
- Specify that the object-code format for OBJFILE is BFDNAME. This
- option may not be necessary; `size' can automatically recognize
- many formats. *Note Target Selection::, for more information.
-
-`-V'
-`--version'
- Display the version number of `size'.
-
-
-File: binutils.info, Node: strings, Next: strip, Prev: size, Up: Top
-
-7 strings
-*********
-
- strings [`-afov'] [`-'MIN-LEN]
- [`-n' MIN-LEN] [`--bytes='MIN-LEN]
- [`-t' RADIX] [`--radix='RADIX]
- [`-e' ENCODING] [`--encoding='ENCODING]
- [`-'] [`--all'] [`--print-file-name']
- [`--target='BFDNAME]
- [`--help'] [`--version'] FILE...
-
- For each FILE given, GNU `strings' prints the printable character
-sequences that are at least 4 characters long (or the number given with
-the options below) and are followed by an unprintable character. By
-default, it only prints the strings from the initialized and loaded
-sections of object files; for other types of files, it prints the
-strings from the whole file.
-
- `strings' is mainly useful for determining the contents of non-text
-files.
-
-`-a'
-`--all'
-`-'
- Do not scan only the initialized and loaded sections of object
- files; scan the whole files.
-
-`-f'
-`--print-file-name'
- Print the name of the file before each string.
-
-`--help'
- Print a summary of the program usage on the standard output and
- exit.
-
-`-MIN-LEN'
-`-n MIN-LEN'
-`--bytes=MIN-LEN'
- Print sequences of characters that are at least MIN-LEN characters
- long, instead of the default 4.
-
-`-o'
- Like `-t o'. Some other versions of `strings' have `-o' act like
- `-t d' instead. Since we can not be compatible with both ways, we
- simply chose one.
-
-`-t RADIX'
-`--radix=RADIX'
- Print the offset within the file before each string. The single
- character argument specifies the radix of the offset--`o' for
- octal, `x' for hexadecimal, or `d' for decimal.
-
-`-e ENCODING'
-`--encoding=ENCODING'
- Select the character encoding of the strings that are to be found.
- Possible values for ENCODING are: `s' = single-7-bit-byte
- characters (ASCII, ISO 8859, etc., default), `S' =
- single-8-bit-byte characters, `b' = 16-bit bigendian, `l' = 16-bit
- littleendian, `B' = 32-bit bigendian, `L' = 32-bit littleendian.
- Useful for finding wide character strings.
-
-`--target=BFDNAME'
- Specify an object code format other than your system's default
- format. *Note Target Selection::, for more information.
-
-`-v'
-`--version'
- Print the program version number on the standard output and exit.
-
-
-File: binutils.info, Node: strip, Next: c++filt, Prev: strings, Up: Top
-
-8 strip
-*******
-
- strip [`-F' BFDNAME |`--target='BFDNAME]
- [`-I' BFDNAME |`--input-target='BFDNAME]
- [`-O' BFDNAME |`--output-target='BFDNAME]
- [`-s'|`--strip-all']
- [`-S'|`-g'|`-d'|`--strip-debug']
- [`-K' SYMBOLNAME |`--keep-symbol='SYMBOLNAME]
- [`-N' SYMBOLNAME |`--strip-symbol='SYMBOLNAME]
- [`-w'|`--wildcard']
- [`-x'|`--discard-all'] [`-X' |`--discard-locals']
- [`-R' SECTIONNAME |`--remove-section='SECTIONNAME]
- [`-o' FILE] [`-p'|`--preserve-dates']
- [`--keep-file-symbols']
- [`--only-keep-debug']
- [`-v' |`--verbose'] [`-V'|`--version']
- [`--help'] [`--info']
- OBJFILE...
-
- GNU `strip' discards all symbols from object files OBJFILE. The
-list of object files may include archives. At least one object file
-must be given.
-
- `strip' modifies the files named in its argument, rather than
-writing modified copies under different names.
-
-`-F BFDNAME'
-`--target=BFDNAME'
- Treat the original OBJFILE as a file with the object code format
- BFDNAME, and rewrite it in the same format. *Note Target
- Selection::, for more information.
-
-`--help'
- Show a summary of the options to `strip' and exit.
-
-`--info'
- Display a list showing all architectures and object formats
- available.
-
-`-I BFDNAME'
-`--input-target=BFDNAME'
- Treat the original OBJFILE as a file with the object code format
- BFDNAME. *Note Target Selection::, for more information.
-
-`-O BFDNAME'
-`--output-target=BFDNAME'
- Replace OBJFILE with a file in the output format BFDNAME. *Note
- Target Selection::, for more information.
-
-`-R SECTIONNAME'
-`--remove-section=SECTIONNAME'
- Remove any section named SECTIONNAME from the output file. This
- option may be given more than once. Note that using this option
- inappropriately may make the output file unusable.
-
-`-s'
-`--strip-all'
- Remove all symbols.
-
-`-g'
-`-S'
-`-d'
-`--strip-debug'
- Remove debugging symbols only.
-
-`--strip-unneeded'
- Remove all symbols that are not needed for relocation processing.
-
-`-K SYMBOLNAME'
-`--keep-symbol=SYMBOLNAME'
- When stripping symbols, keep symbol SYMBOLNAME even if it would
- normally be stripped. This option may be given more than once.
-
-`-N SYMBOLNAME'
-`--strip-symbol=SYMBOLNAME'
- Remove symbol SYMBOLNAME from the source file. This option may be
- given more than once, and may be combined with strip options other
- than `-K'.
-
-`-o FILE'
- Put the stripped output in FILE, rather than replacing the
- existing file. When this argument is used, only one OBJFILE
- argument may be specified.
-
-`-p'
-`--preserve-dates'
- Preserve the access and modification dates of the file.
-
-`-w'
-`--wildcard'
- Permit regular expressions in SYMBOLNAMEs used in other command
- line options. The question mark (?), asterisk (*), backslash (\)
- and square brackets ([]) operators can be used anywhere in the
- symbol name. If the first character of the symbol name is the
- exclamation point (!) then the sense of the switch is reversed for
- that symbol. For example:
-
- -w -K !foo -K fo*
-
- would cause strip to only keep symbols that start with the letters
- "fo", but to discard the symbol "foo".
-
-`-x'
-`--discard-all'
- Remove non-global symbols.
-
-`-X'
-`--discard-locals'
- Remove compiler-generated local symbols. (These usually start
- with `L' or `.'.)
-
-`--keep-file-symbols'
- When stripping a file, perhaps with `--strip-debug' or
- `--strip-unneeded', retain any symbols specifying source file
- names, which would otherwise get stripped.
-
-`--only-keep-debug'
- Strip a file, removing any sections that would be stripped by
- `--strip-debug' and leaving the debugging sections.
-
- The intention is that this option will be used in conjunction with
- `--add-gnu-debuglink' to create a two part executable. One a
- stripped binary which will occupy less space in RAM and in a
- distribution and the second a debugging information file which is
- only needed if debugging abilities are required. The suggested
- procedure to create these files is as follows:
-
- 1. Link the executable as normal. Assuming that is is called
- `foo' then...
-
- 2. Run `objcopy --only-keep-debug foo foo.dbg' to create a file
- containing the debugging info.
-
- 3. Run `objcopy --strip-debug foo' to create a stripped
- executable.
-
- 4. Run `objcopy --add-gnu-debuglink=foo.dbg foo' to add a link
- to the debugging info into the stripped executable.
-
- Note - the choice of `.dbg' as an extension for the debug info
- file is arbitrary. Also the `--only-keep-debug' step is optional.
- You could instead do this:
-
- 1. Link the executable as normal.
-
- 2. Copy `foo' to `foo.full'
-
- 3. Run `strip --strip-debug foo'
-
- 4. Run `objcopy --add-gnu-debuglink=foo.full foo'
-
- ie the file pointed to by the `--add-gnu-debuglink' can be the
- full executable. It does not have to be a file created by the
- `--only-keep-debug' switch.
-
-`-V'
-`--version'
- Show the version number for `strip'.
-
-`-v'
-`--verbose'
- Verbose output: list all object files modified. In the case of
- archives, `strip -v' lists all members of the archive.
-
-
-File: binutils.info, Node: c++filt, Next: addr2line, Prev: strip, Up: Top
-
-9 c++filt
-*********
-
- c++filt [`-_'|`--strip-underscores']
- [`-n'|`--no-strip-underscores']
- [`-p'|`--no-params']
- [`-t'|`--types']
- [`-i'|`--no-verbose']
- [`-s' FORMAT|`--format='FORMAT]
- [`--help'] [`--version'] [SYMBOL...]
-
- The C++ and Java languages provide function overloading, which means
-that you can write many functions with the same name, providing that
-each function takes parameters of different types. In order to be able
-to distinguish these similarly named functions C++ and Java encode them
-into a low-level assembler name which uniquely identifies each
-different version. This process is known as "mangling". The `c++filt'
-(1) program does the inverse mapping: it decodes ("demangles") low-level
-names into user-level names so that they can be read.
-
- Every alphanumeric word (consisting of letters, digits, underscores,
-dollars, or periods) seen in the input is a potential mangled name. If
-the name decodes into a C++ name, the C++ name replaces the low-level
-name in the output, otherwise the original word is output. In this way
-you can pass an entire assembler source file, containing mangled names,
-through `c++filt' and see the same source file containing demangled
-names.
-
- You can also use `c++filt' to decipher individual symbols by passing
-them on the command line:
-
- c++filt SYMBOL
-
- If no SYMBOL arguments are given, `c++filt' reads symbol names from
-the standard input instead. All the results are printed on the
-standard output. The difference between reading names from the command
-line versus reading names from the standard input is that command line
-arguments are expected to be just mangled names and no checking is
-performed to seperate them from surrounding text. Thus for example:
-
- c++filt -n _Z1fv
-
- will work and demangle the name to "f()" whereas:
-
- c++filt -n _Z1fv,
-
- will not work. (Note the extra comma at the end of the mangled name
-which makes it invalid). This command however will work:
-
- echo _Z1fv, | c++filt -n
-
- and will display "f()," ie the demangled name followed by a trailing
-comma. This behaviour is because when the names are read from the
-standard input it is expected that they might be part of an assembler
-source file where there might be extra, extraneous characters trailing
-after a mangled name. eg:
-
- .type _Z1fv, @function
-
-`-_'
-`--strip-underscores'
- On some systems, both the C and C++ compilers put an underscore in
- front of every name. For example, the C name `foo' gets the
- low-level name `_foo'. This option removes the initial
- underscore. Whether `c++filt' removes the underscore by default
- is target dependent.
-
-`-j'
-`--java'
- Prints demangled names using Java syntax. The default is to use
- C++ syntax.
-
-`-n'
-`--no-strip-underscores'
- Do not remove the initial underscore.
-
-`-p'
-`--no-params'
- When demangling the name of a function, do not display the types of
- the function's parameters.
-
-`-t'
-`--types'
- Attempt to demangle types as well as function names. This is
- disabled by default since mangled types are normally only used
- internally in the compiler, and they can be confused with
- non-mangled names. eg a function called "a" treated as a mangled
- type name would be demangled to "signed char".
-
-`-i'
-`--no-verbose'
- Do not include implementation details (if any) in the demangled
- output.
-
-`-s FORMAT'
-`--format=FORMAT'
- `c++filt' can decode various methods of mangling, used by
- different compilers. The argument to this option selects which
- method it uses:
-
- `auto'
- Automatic selection based on executable (the default method)
-
- `gnu'
- the one used by the GNU C++ compiler (g++)
-
- `lucid'
- the one used by the Lucid compiler (lcc)
-
- `arm'
- the one specified by the C++ Annotated Reference Manual
-
- `hp'
- the one used by the HP compiler (aCC)
-
- `edg'
- the one used by the EDG compiler
-
- `gnu-v3'
- the one used by the GNU C++ compiler (g++) with the V3 ABI.
-
- `java'
- the one used by the GNU Java compiler (gcj)
-
- `gnat'
- the one used by the GNU Ada compiler (GNAT).
-
-`--help'
- Print a summary of the options to `c++filt' and exit.
-
-`--version'
- Print the version number of `c++filt' and exit.
-
- _Warning:_ `c++filt' is a new utility, and the details of its user
- interface are subject to change in future releases. In particular,
- a command-line option may be required in the the future to decode
- a name passed as an argument on the command line; in other words,
-
- c++filt SYMBOL
-
- may in a future release become
-
- c++filt OPTION SYMBOL
-
- ---------- Footnotes ----------
-
- (1) MS-DOS does not allow `+' characters in file names, so on MS-DOS
-this program is named `CXXFILT'.
-
-
-File: binutils.info, Node: addr2line, Next: nlmconv, Prev: c++filt, Up: Top
-
-10 addr2line
-************
-
- addr2line [`-b' BFDNAME|`--target='BFDNAME]
- [`-C'|`--demangle'[=STYLE]]
- [`-e' FILENAME|`--exe='FILENAME]
- [`-f'|`--functions'] [`-s'|`--basename']
- [`-i'|`--inlines']
- [`-j'|`--section='NAME]
- [`-H'|`--help'] [`-V'|`--version']
- [addr addr ...]
-
- `addr2line' translates addresses into file names and line numbers.
-Given an address in an executable or an offset in a section of a
-relocatable object, it uses the debugging information to figure out
-which file name and line number are associated with it.
-
- The executable or relocatable object to use is specified with the
-`-e' option. The default is the file `a.out'. The section in the
-relocatable object to use is specified with the `-j' option.
-
- `addr2line' has two modes of operation.
-
- In the first, hexadecimal addresses are specified on the command
-line, and `addr2line' displays the file name and line number for each
-address.
-
- In the second, `addr2line' reads hexadecimal addresses from standard
-input, and prints the file name and line number for each address on
-standard output. In this mode, `addr2line' may be used in a pipe to
-convert dynamically chosen addresses.
-
- The format of the output is `FILENAME:LINENO'. The file name and
-line number for each address is printed on a separate line. If the
-`-f' option is used, then each `FILENAME:LINENO' line is preceded by a
-`FUNCTIONNAME' line which is the name of the function containing the
-address.
-
- If the file name or function name can not be determined, `addr2line'
-will print two question marks in their place. If the line number can
-not be determined, `addr2line' will print 0.
-
- The long and short forms of options, shown here as alternatives, are
-equivalent.
-
-`-b BFDNAME'
-`--target=BFDNAME'
- Specify that the object-code format for the object files is
- BFDNAME.
-
-`-C'
-`--demangle[=STYLE]'
- Decode ("demangle") low-level symbol names into user-level names.
- Besides removing any initial underscore prepended by the system,
- this makes C++ function names readable. Different compilers have
- different mangling styles. The optional demangling style argument
- can be used to choose an appropriate demangling style for your
- compiler. *Note c++filt::, for more information on demangling.
-
-`-e FILENAME'
-`--exe=FILENAME'
- Specify the name of the executable for which addresses should be
- translated. The default file is `a.out'.
-
-`-f'
-`--functions'
- Display function names as well as file and line number information.
-
-`-s'
-`--basenames'
- Display only the base of each file name.
-
-`-i'
-`--inlines'
- If the address belongs to a function that was inlined, the source
- information for all enclosing scopes back to the first non-inlined
- function will also be printed. For example, if `main' inlines
- `callee1' which inlines `callee2', and address is from `callee2',
- the source information for `callee1' and `main' will also be
- printed.
-
-`-j'
-`--section'
- Read offsets relative to the specified section instead of absolute
- addresses.
-
-
-File: binutils.info, Node: nlmconv, Next: windres, Prev: addr2line, Up: Top
-
-11 nlmconv
-**********
-
-`nlmconv' converts a relocatable object file into a NetWare Loadable
-Module.
-
- _Warning:_ `nlmconv' is not always built as part of the binary
- utilities, since it is only useful for NLM targets.
-
- nlmconv [`-I' BFDNAME|`--input-target='BFDNAME]
- [`-O' BFDNAME|`--output-target='BFDNAME]
- [`-T' HEADERFILE|`--header-file='HEADERFILE]
- [`-d'|`--debug'] [`-l' LINKER|`--linker='LINKER]
- [`-h'|`--help'] [`-V'|`--version']
- INFILE OUTFILE
-
- `nlmconv' converts the relocatable `i386' object file INFILE into
-the NetWare Loadable Module OUTFILE, optionally reading HEADERFILE for
-NLM header information. For instructions on writing the NLM command
-file language used in header files, see the `linkers' section,
-`NLMLINK' in particular, of the `NLM Development and Tools Overview',
-which is part of the NLM Software Developer's Kit ("NLM SDK"),
-available from Novell, Inc. `nlmconv' uses the GNU Binary File
-Descriptor library to read INFILE; see *Note BFD: (ld.info)BFD, for
-more information.
-
- `nlmconv' can perform a link step. In other words, you can list
-more than one object file for input if you list them in the definitions
-file (rather than simply specifying one input file on the command line).
-In this case, `nlmconv' calls the linker for you.
-
-`-I BFDNAME'
-`--input-target=BFDNAME'
- Object format of the input file. `nlmconv' can usually determine
- the format of a given file (so no default is necessary). *Note
- Target Selection::, for more information.
-
-`-O BFDNAME'
-`--output-target=BFDNAME'
- Object format of the output file. `nlmconv' infers the output
- format based on the input format, e.g. for a `i386' input file the
- output format is `nlm32-i386'. *Note Target Selection::, for more
- information.
-
-`-T HEADERFILE'
-`--header-file=HEADERFILE'
- Reads HEADERFILE for NLM header information. For instructions on
- writing the NLM command file language used in header files, see
- see the `linkers' section, of the `NLM Development and Tools
- Overview', which is part of the NLM Software Developer's Kit,
- available from Novell, Inc.
-
-`-d'
-`--debug'
- Displays (on standard error) the linker command line used by
- `nlmconv'.
-
-`-l LINKER'
-`--linker=LINKER'
- Use LINKER for any linking. LINKER can be an absolute or a
- relative pathname.
-
-`-h'
-`--help'
- Prints a usage summary.
-
-`-V'
-`--version'
- Prints the version number for `nlmconv'.
-
-
-File: binutils.info, Node: windres, Next: dlltool, Prev: nlmconv, Up: Top
-
-12 windres
-**********
-
-`windres' may be used to manipulate Windows resources.
-
- _Warning:_ `windres' is not always built as part of the binary
- utilities, since it is only useful for Windows targets.
-
- windres [options] [input-file] [output-file]
-
- `windres' reads resources from an input file and copies them into an
-output file. Either file may be in one of three formats:
-
-`rc'
- A text format read by the Resource Compiler.
-
-`res'
- A binary format generated by the Resource Compiler.
-
-`coff'
- A COFF object or executable.
-
- The exact description of these different formats is available in
-documentation from Microsoft.
-
- When `windres' converts from the `rc' format to the `res' format, it
-is acting like the Windows Resource Compiler. When `windres' converts
-from the `res' format to the `coff' format, it is acting like the
-Windows `CVTRES' program.
-
- When `windres' generates an `rc' file, the output is similar but not
-identical to the format expected for the input. When an input `rc'
-file refers to an external filename, an output `rc' file will instead
-include the file contents.
-
- If the input or output format is not specified, `windres' will guess
-based on the file name, or, for the input file, the file contents. A
-file with an extension of `.rc' will be treated as an `rc' file, a file
-with an extension of `.res' will be treated as a `res' file, and a file
-with an extension of `.o' or `.exe' will be treated as a `coff' file.
-
- If no output file is specified, `windres' will print the resources
-in `rc' format to standard output.
-
- The normal use is for you to write an `rc' file, use `windres' to
-convert it to a COFF object file, and then link the COFF file into your
-application. This will make the resources described in the `rc' file
-available to Windows.
-
-`-i FILENAME'
-`--input FILENAME'
- The name of the input file. If this option is not used, then
- `windres' will use the first non-option argument as the input file
- name. If there are no non-option arguments, then `windres' will
- read from standard input. `windres' can not read a COFF file from
- standard input.
-
-`-o FILENAME'
-`--output FILENAME'
- The name of the output file. If this option is not used, then
- `windres' will use the first non-option argument, after any used
- for the input file name, as the output file name. If there is no
- non-option argument, then `windres' will write to standard output.
- `windres' can not write a COFF file to standard output. Note, for
- compatability with `rc' the option `-fo' is also accepted, but its
- use is not recommended.
-
-`-J FORMAT'
-`--input-format FORMAT'
- The input format to read. FORMAT may be `res', `rc', or `coff'.
- If no input format is specified, `windres' will guess, as
- described above.
-
-`-O FORMAT'
-`--output-format FORMAT'
- The output format to generate. FORMAT may be `res', `rc', or
- `coff'. If no output format is specified, `windres' will guess,
- as described above.
-
-`-F TARGET'
-`--target TARGET'
- Specify the BFD format to use for a COFF file as input or output.
- This is a BFD target name; you can use the `--help' option to see
- a list of supported targets. Normally `windres' will use the
- default format, which is the first one listed by the `--help'
- option. *Note Target Selection::.
-
-`--preprocessor PROGRAM'
- When `windres' reads an `rc' file, it runs it through the C
- preprocessor first. This option may be used to specify the
- preprocessor to use, including any leading arguments. The default
- preprocessor argument is `gcc -E -xc-header -DRC_INVOKED'.
-
-`-I DIRECTORY'
-`--include-dir DIRECTORY'
- Specify an include directory to use when reading an `rc' file.
- `windres' will pass this to the preprocessor as an `-I' option.
- `windres' will also search this directory when looking for files
- named in the `rc' file. If the argument passed to this command
- matches any of the supported FORMATS (as descrived in the `-J'
- option), it will issue a deprecation warning, and behave just like
- the `-J' option. New programs should not use this behaviour. If a
- directory happens to match a FORMAT, simple prefix it with `./' to
- disable the backward compatibility.
-
-`-D TARGET'
-`--define SYM[=VAL]'
- Specify a `-D' option to pass to the preprocessor when reading an
- `rc' file.
-
-`-U TARGET'
-`--undefine SYM'
- Specify a `-U' option to pass to the preprocessor when reading an
- `rc' file.
-
-`-r'
- Ignored for compatibility with rc.
-
-`-v'
- Enable verbose mode. This tells you what the preprocessor is if
- you didn't specify one.
-
-`-l VAL'
-
-`--language VAL'
- Specify the default language to use when reading an `rc' file.
- VAL should be a hexadecimal language code. The low eight bits are
- the language, and the high eight bits are the sublanguage.
-
-`--use-temp-file'
- Use a temporary file to instead of using popen to read the output
- of the preprocessor. Use this option if the popen implementation
- is buggy on the host (eg., certain non-English language versions
- of Windows 95 and Windows 98 are known to have buggy popen where
- the output will instead go the console).
-
-`--no-use-temp-file'
- Use popen, not a temporary file, to read the output of the
- preprocessor. This is the default behaviour.
-
-`-h'
-
-`--help'
- Prints a usage summary.
-
-`-V'
-
-`--version'
- Prints the version number for `windres'.
-
-`--yydebug'
- If `windres' is compiled with `YYDEBUG' defined as `1', this will
- turn on parser debugging.
-
-
-File: binutils.info, Node: dlltool, Next: Common Options, Prev: windres, Up: Top
-
-13 dlltool
-**********
-
-`dlltool' is used to create the files needed to create dynamic link
-libraries (DLLs) on systems which understand PE format image files such
-as Windows. A DLL contains an export table which contains information
-that the runtime loader needs to resolve references from a referencing
-program.
-
- The export table is generated by this program by reading in a `.def'
-file or scanning the `.a' and `.o' files which will be in the DLL. A
-`.o' file can contain information in special `.drectve' sections with
-export information.
-
- _Note:_ `dlltool' is not always built as part of the binary
- utilities, since it is only useful for those targets which support
- DLLs.
-
- dlltool [`-d'|`--input-def' DEF-FILE-NAME]
- [`-b'|`--base-file' BASE-FILE-NAME]
- [`-e'|`--output-exp' EXPORTS-FILE-NAME]
- [`-z'|`--output-def' DEF-FILE-NAME]
- [`-l'|`--output-lib' LIBRARY-FILE-NAME]
- [`--export-all-symbols'] [`--no-export-all-symbols']
- [`--exclude-symbols' LIST]
- [`--no-default-excludes']
- [`-S'|`--as' PATH-TO-ASSEMBLER] [`-f'|`--as-flags' OPTIONS]
- [`-D'|`--dllname' NAME] [`-m'|`--machine' MACHINE]
- [`-a'|`--add-indirect']
- [`-U'|`--add-underscore'] [`--add-stdcall-underscore']
- [`-k'|`--kill-at'] [`-A'|`--add-stdcall-alias']
- [`-p'|`--ext-prefix-alias' PREFIX]
- [`-x'|`--no-idata4'] [`-c'|`--no-idata5'] [`-i'|`--interwork']
- [`-n'|`--nodelete'] [`-t'|`--temp-prefix' PREFIX]
- [`-v'|`--verbose']
- [`-h'|`--help'] [`-V'|`--version']
- [object-file ...]
-
- `dlltool' reads its inputs, which can come from the `-d' and `-b'
-options as well as object files specified on the command line. It then
-processes these inputs and if the `-e' option has been specified it
-creates a exports file. If the `-l' option has been specified it
-creates a library file and if the `-z' option has been specified it
-creates a def file. Any or all of the `-e', `-l' and `-z' options can
-be present in one invocation of dlltool.
-
- When creating a DLL, along with the source for the DLL, it is
-necessary to have three other files. `dlltool' can help with the
-creation of these files.
-
- The first file is a `.def' file which specifies which functions are
-exported from the DLL, which functions the DLL imports, and so on. This
-is a text file and can be created by hand, or `dlltool' can be used to
-create it using the `-z' option. In this case `dlltool' will scan the
-object files specified on its command line looking for those functions
-which have been specially marked as being exported and put entries for
-them in the `.def' file it creates.
-
- In order to mark a function as being exported from a DLL, it needs to
-have an `-export:<name_of_function>' entry in the `.drectve' section of
-the object file. This can be done in C by using the asm() operator:
-
- asm (".section .drectve");
- asm (".ascii \"-export:my_func\"");
-
- int my_func (void) { ... }
-
- The second file needed for DLL creation is an exports file. This
-file is linked with the object files that make up the body of the DLL
-and it handles the interface between the DLL and the outside world.
-This is a binary file and it can be created by giving the `-e' option to
-`dlltool' when it is creating or reading in a `.def' file.
-
- The third file needed for DLL creation is the library file that
-programs will link with in order to access the functions in the DLL.
-This file can be created by giving the `-l' option to dlltool when it
-is creating or reading in a `.def' file.
-
- `dlltool' builds the library file by hand, but it builds the exports
-file by creating temporary files containing assembler statements and
-then assembling these. The `-S' command line option can be used to
-specify the path to the assembler that dlltool will use, and the `-f'
-option can be used to pass specific flags to that assembler. The `-n'
-can be used to prevent dlltool from deleting these temporary assembler
-files when it is done, and if `-n' is specified twice then this will
-prevent dlltool from deleting the temporary object files it used to
-build the library.
-
- Here is an example of creating a DLL from a source file `dll.c' and
-also creating a program (from an object file called `program.o') that
-uses that DLL:
-
- gcc -c dll.c
- dlltool -e exports.o -l dll.lib dll.o
- gcc dll.o exports.o -o dll.dll
- gcc program.o dll.lib -o program
-
- The command line options have the following meanings:
-
-`-d FILENAME'
-`--input-def FILENAME'
- Specifies the name of a `.def' file to be read in and processed.
-
-`-b FILENAME'
-`--base-file FILENAME'
- Specifies the name of a base file to be read in and processed. The
- contents of this file will be added to the relocation section in
- the exports file generated by dlltool.
-
-`-e FILENAME'
-`--output-exp FILENAME'
- Specifies the name of the export file to be created by dlltool.
-
-`-z FILENAME'
-`--output-def FILENAME'
- Specifies the name of the `.def' file to be created by dlltool.
-
-`-l FILENAME'
-`--output-lib FILENAME'
- Specifies the name of the library file to be created by dlltool.
-
-`--export-all-symbols'
- Treat all global and weak defined symbols found in the input object
- files as symbols to be exported. There is a small list of symbols
- which are not exported by default; see the `--no-default-excludes'
- option. You may add to the list of symbols to not export by using
- the `--exclude-symbols' option.
-
-`--no-export-all-symbols'
- Only export symbols explicitly listed in an input `.def' file or in
- `.drectve' sections in the input object files. This is the default
- behaviour. The `.drectve' sections are created by `dllexport'
- attributes in the source code.
-
-`--exclude-symbols LIST'
- Do not export the symbols in LIST. This is a list of symbol names
- separated by comma or colon characters. The symbol names should
- not contain a leading underscore. This is only meaningful when
- `--export-all-symbols' is used.
-
-`--no-default-excludes'
- When `--export-all-symbols' is used, it will by default avoid
- exporting certain special symbols. The current list of symbols to
- avoid exporting is `DllMain@12', `DllEntryPoint@0', `impure_ptr'.
- You may use the `--no-default-excludes' option to go ahead and
- export these special symbols. This is only meaningful when
- `--export-all-symbols' is used.
-
-`-S PATH'
-`--as PATH'
- Specifies the path, including the filename, of the assembler to be
- used to create the exports file.
-
-`-f OPTIONS'
-`--as-flags OPTIONS'
- Specifies any specific command line options to be passed to the
- assembler when building the exports file. This option will work
- even if the `-S' option is not used. This option only takes one
- argument, and if it occurs more than once on the command line,
- then later occurrences will override earlier occurrences. So if
- it is necessary to pass multiple options to the assembler they
- should be enclosed in double quotes.
-
-`-D NAME'
-`--dll-name NAME'
- Specifies the name to be stored in the `.def' file as the name of
- the DLL when the `-e' option is used. If this option is not
- present, then the filename given to the `-e' option will be used
- as the name of the DLL.
-
-`-m MACHINE'
-`-machine MACHINE'
- Specifies the type of machine for which the library file should be
- built. `dlltool' has a built in default type, depending upon how
- it was created, but this option can be used to override that.
- This is normally only useful when creating DLLs for an ARM
- processor, when the contents of the DLL are actually encode using
- Thumb instructions.
-
-`-a'
-`--add-indirect'
- Specifies that when `dlltool' is creating the exports file it
- should add a section which allows the exported functions to be
- referenced without using the import library. Whatever the hell
- that means!
-
-`-U'
-`--add-underscore'
- Specifies that when `dlltool' is creating the exports file it
- should prepend an underscore to the names of _all_ exported
- symbols.
-
-`--add-stdcall-underscore'
- Specifies that when `dlltool' is creating the exports file it
- should prepend an underscore to the names of exported _stdcall_
- functions. Variable names and non-stdcall function names are not
- modified. This option is useful when creating GNU-compatible
- import libs for third party DLLs that were built with MS-Windows
- tools.
-
-`-k'
-`--kill-at'
- Specifies that when `dlltool' is creating the exports file it
- should not append the string `@ <number>'. These numbers are
- called ordinal numbers and they represent another way of accessing
- the function in a DLL, other than by name.
-
-`-A'
-`--add-stdcall-alias'
- Specifies that when `dlltool' is creating the exports file it
- should add aliases for stdcall symbols without `@ <number>' in
- addition to the symbols with `@ <number>'.
-
-`-p'
-`--ext-prefix-alias PREFIX'
- Causes `dlltool' to create external aliases for all DLL imports
- with the specified prefix. The aliases are created for both
- external and import symbols with no leading underscore.
-
-`-x'
-`--no-idata4'
- Specifies that when `dlltool' is creating the exports and library
- files it should omit the `.idata4' section. This is for
- compatibility with certain operating systems.
-
-`-c'
-`--no-idata5'
- Specifies that when `dlltool' is creating the exports and library
- files it should omit the `.idata5' section. This is for
- compatibility with certain operating systems.
-
-`-i'
-`--interwork'
- Specifies that `dlltool' should mark the objects in the library
- file and exports file that it produces as supporting interworking
- between ARM and Thumb code.
-
-`-n'
-`--nodelete'
- Makes `dlltool' preserve the temporary assembler files it used to
- create the exports file. If this option is repeated then dlltool
- will also preserve the temporary object files it uses to create
- the library file.
-
-`-t PREFIX'
-`--temp-prefix PREFIX'
- Makes `dlltool' use PREFIX when constructing the names of
- temporary assembler and object files. By default, the temp file
- prefix is generated from the pid.
-
-`-v'
-`--verbose'
- Make dlltool describe what it is doing.
-
-`-h'
-`--help'
- Displays a list of command line options and then exits.
-
-`-V'
-`--version'
- Displays dlltool's version number and then exits.
-
-
-* Menu:
-
-* def file format:: The format of the dlltool `.def' file
-
-
-File: binutils.info, Node: def file format, Up: dlltool
-
-13.1 The format of the `dlltool' `.def' file
-============================================
-
-A `.def' file contains any number of the following commands:
-
-`NAME' NAME `[ ,' BASE `]'
- The result is going to be named NAME`.exe'.
-
-`LIBRARY' NAME `[ ,' BASE `]'
- The result is going to be named NAME`.dll'.
-
-`EXPORTS ( ( (' NAME1 `[ = ' NAME2 `] ) | ( ' NAME1 `=' MODULE-NAME `.' EXTERNAL-NAME `) )'
-
-`[' INTEGER `] [ NONAME ] [ CONSTANT ] [ DATA ] [ PRIVATE ] ) *'
- Declares NAME1 as an exported symbol from the DLL, with optional
- ordinal number INTEGER, or declares NAME1 as an alias (forward) of
- the function EXTERNAL-NAME in the DLL MODULE-NAME.
-
-`IMPORTS ( (' INTERNAL-NAME `=' MODULE-NAME `.' INTEGER `) | [' INTERNAL-NAME `= ]' MODULE-NAME `.' EXTERNAL-NAME `) ) *'
- Declares that EXTERNAL-NAME or the exported function whose ordinal
- number is INTEGER is to be imported from the file MODULE-NAME. If
- INTERNAL-NAME is specified then this is the name that the imported
- function will be referred to in the body of the DLL.
-
-`DESCRIPTION' STRING
- Puts STRING into the output `.exp' file in the `.rdata' section.
-
-`STACKSIZE' NUMBER-RESERVE `[, ' NUMBER-COMMIT `]'
-
-`HEAPSIZE' NUMBER-RESERVE `[, ' NUMBER-COMMIT `]'
- Generates `--stack' or `--heap' NUMBER-RESERVE,NUMBER-COMMIT in
- the output `.drectve' section. The linker will see this and act
- upon it.
-
-`CODE' ATTR `+'
-
-`DATA' ATTR `+'
-
-`SECTIONS (' SECTION-NAME ATTR` + ) *'
- Generates `--attr' SECTION-NAME ATTR in the output `.drectve'
- section, where ATTR is one of `READ', `WRITE', `EXECUTE' or
- `SHARED'. The linker will see this and act upon it.
-
-
-
-File: binutils.info, Node: readelf, Next: size, Prev: ranlib, Up: Top
-
-14 readelf
-**********
-
- readelf [`-a'|`--all']
- [`-h'|`--file-header']
- [`-l'|`--program-headers'|`--segments']
- [`-S'|`--section-headers'|`--sections']
- [`-g'|`--section-groups']
- [`-t'|`--section-details']
- [`-e'|`--headers']
- [`-s'|`--syms'|`--symbols']
- [`-n'|`--notes']
- [`-r'|`--relocs']
- [`-u'|`--unwind']
- [`-d'|`--dynamic']
- [`-V'|`--version-info']
- [`-A'|`--arch-specific']
- [`-D'|`--use-dynamic']
- [`-x' <number or name>|`--hex-dump='<number or name>]
- [`-w[liaprmfFsoR]'|
- `--debug-dump'[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]]
- [`-I'|`-histogram']
- [`-v'|`--version']
- [`-W'|`--wide']
- [`-H'|`--help']
- ELFFILE...
-
- `readelf' displays information about one or more ELF format object
-files. The options control what particular information to display.
-
- ELFFILE... are the object files to be examined. 32-bit and 64-bit
-ELF files are supported, as are archives containing ELF files.
-
- This program performs a similar function to `objdump' but it goes
-into more detail and it exists independently of the BFD library, so if
-there is a bug in BFD then readelf will not be affected.
-
- The long and short forms of options, shown here as alternatives, are
-equivalent. At least one option besides `-v' or `-H' must be given.
-
-`-a'
-`--all'
- Equivalent to specifiying `--file-header', `--program-headers',
- `--sections', `--symbols', `--relocs', `--dynamic', `--notes' and
- `--version-info'.
-
-`-h'
-`--file-header'
- Displays the information contained in the ELF header at the start
- of the file.
-
-`-l'
-`--program-headers'
-`--segments'
- Displays the information contained in the file's segment headers,
- if it has any.
-
-`-S'
-`--sections'
-`--section-headers'
- Displays the information contained in the file's section headers,
- if it has any.
-
-`-g'
-`--section-groups'
- Displays the information contained in the file's section groups,
- if it has any.
-
-`-t'
-`--section-details'
- Displays the detailed section information. Implies `-S'.
-
-`-s'
-`--symbols'
-`--syms'
- Displays the entries in symbol table section of the file, if it
- has one.
-
-`-e'
-`--headers'
- Display all the headers in the file. Equivalent to `-h -l -S'.
-
-`-n'
-`--notes'
- Displays the contents of the NOTE segments and/or sections, if any.
-
-`-r'
-`--relocs'
- Displays the contents of the file's relocation section, if it has
- one.
-
-`-u'
-`--unwind'
- Displays the contents of the file's unwind section, if it has one.
- Only the unwind sections for IA64 ELF files are currently
- supported.
-
-`-d'
-`--dynamic'
- Displays the contents of the file's dynamic section, if it has one.
-
-`-V'
-`--version-info'
- Displays the contents of the version sections in the file, it they
- exist.
-
-`-A'
-`--arch-specific'
- Displays architecture-specific information in the file, if there
- is any.
-
-`-D'
-`--use-dynamic'
- When displaying symbols, this option makes `readelf' use the
- symbol table in the file's dynamic section, rather than the one in
- the symbols section.
-
-`-x <number or name>'
-`--hex-dump=<number or name>'
- Displays the contents of the indicated section as a hexadecimal
- dump. A number identifies a particular section by index in the
- section table; any other string identifies all sections with that
- name in the object file.
-
-`-w[liaprmfFsoR]'
-`--debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]'
- Displays the contents of the debug sections in the file, if any are
- present. If one of the optional letters or words follows the
- switch then only data found in those specific sections will be
- dumped.
-
-`-I'
-`--histogram'
- Display a histogram of bucket list lengths when displaying the
- contents of the symbol tables.
-
-`-v'
-`--version'
- Display the version number of readelf.
-
-`-W'
-`--wide'
- Don't break output lines to fit into 80 columns. By default
- `readelf' breaks section header and segment listing lines for
- 64-bit ELF files, so that they fit into 80 columns. This option
- causes `readelf' to print each section header resp. each segment
- one a single line, which is far more readable on terminals wider
- than 80 columns.
-
-`-H'
-`--help'
- Display the command line options understood by `readelf'.
-
-
-
-File: binutils.info, Node: Common Options, Next: Selecting The Target System, Prev: dlltool, Up: Top
-
-15 Common Options
-*****************
-
-The following command-line options are supported by all of the programs
-described in this manual.
-
-`@FILE'
- Read command-line options from FILE. The options read are
- inserted in place of the original @FILE option. If FILE does not
- exist, or cannot be read, then the option will be treated
- literally, and not removed.
-
- Options in FILE are separated by whitespace. A whitespace
- character may be included in an option by surrounding the entire
- option in either single or double quotes. Any character
- (including a backslash) may be included by prefixing the character
- to be included with a backslash. The FILE may itself contain
- additional @FILE options; any such options will be processed
- recursively.
-
-`--help'
- Display the command-line options supported by the program.
-
-`--version'
- Display the version number of the program.
-
-
-
-File: binutils.info, Node: Selecting The Target System, Next: Reporting Bugs, Prev: Common Options, Up: Top
-
-16 Selecting the Target System
-******************************
-
-You can specify two aspects of the target system to the GNU binary file
-utilities, each in several ways:
-
- * the target
-
- * the architecture
-
- In the following summaries, the lists of ways to specify values are
-in order of decreasing precedence. The ways listed first override those
-listed later.
-
- The commands to list valid values only list the values for which the
-programs you are running were configured. If they were configured with
-`--enable-targets=all', the commands list most of the available values,
-but a few are left out; not all targets can be configured in at once
-because some of them can only be configured "native" (on hosts with the
-same type as the target system).
-
-* Menu:
-
-* Target Selection::
-* Architecture Selection::
-
-
-File: binutils.info, Node: Target Selection, Next: Architecture Selection, Up: Selecting The Target System
-
-16.1 Target Selection
-=====================
-
-A "target" is an object file format. A given target may be supported
-for multiple architectures (*note Architecture Selection::). A target
-selection may also have variations for different operating systems or
-architectures.
-
- The command to list valid target values is `objdump -i' (the first
-column of output contains the relevant information).
-
- Some sample values are: `a.out-hp300bsd', `ecoff-littlemips',
-`a.out-sunos-big'.
-
- You can also specify a target using a configuration triplet. This is
-the same sort of name that is passed to `configure' to specify a
-target. When you use a configuration triplet as an argument, it must be
-fully canonicalized. You can see the canonical version of a triplet by
-running the shell script `config.sub' which is included with the
-sources.
-
- Some sample configuration triplets are: `m68k-hp-bsd',
-`mips-dec-ultrix', `sparc-sun-sunos'.
-
-`objdump' Target
-----------------
-
-Ways to specify:
-
- 1. command line option: `-b' or `--target'
-
- 2. environment variable `GNUTARGET'
-
- 3. deduced from the input file
-
-`objcopy' and `strip' Input Target
-----------------------------------
-
-Ways to specify:
-
- 1. command line options: `-I' or `--input-target', or `-F' or
- `--target'
-
- 2. environment variable `GNUTARGET'
-
- 3. deduced from the input file
-
-`objcopy' and `strip' Output Target
------------------------------------
-
-Ways to specify:
-
- 1. command line options: `-O' or `--output-target', or `-F' or
- `--target'
-
- 2. the input target (see "`objcopy' and `strip' Input Target" above)
-
- 3. environment variable `GNUTARGET'
-
- 4. deduced from the input file
-
-`nm', `size', and `strings' Target
-----------------------------------
-
-Ways to specify:
-
- 1. command line option: `--target'
-
- 2. environment variable `GNUTARGET'
-
- 3. deduced from the input file
-
-
-File: binutils.info, Node: Architecture Selection, Prev: Target Selection, Up: Selecting The Target System
-
-16.2 Architecture Selection
-===========================
-
-An "architecture" is a type of CPU on which an object file is to run.
-Its name may contain a colon, separating the name of the processor
-family from the name of the particular CPU.
-
- The command to list valid architecture values is `objdump -i' (the
-second column contains the relevant information).
-
- Sample values: `m68k:68020', `mips:3000', `sparc'.
-
-`objdump' Architecture
-----------------------
-
-Ways to specify:
-
- 1. command line option: `-m' or `--architecture'
-
- 2. deduced from the input file
-
-`objcopy', `nm', `size', `strings' Architecture
------------------------------------------------
-
-Ways to specify:
-
- 1. deduced from the input file
-
-
-File: binutils.info, Node: Reporting Bugs, Next: GNU Free Documentation License, Prev: Selecting The Target System, Up: Top
-
-17 Reporting Bugs
-*****************
-
-Your bug reports play an essential role in making the binary utilities
-reliable.
-
- Reporting a bug may help you by bringing a solution to your problem,
-or it may not. But in any case the principal function of a bug report
-is to help the entire community by making the next version of the binary
-utilities work better. Bug reports are your contribution to their
-maintenance.
-
- In order for a bug report to serve its purpose, you must include the
-information that enables us to fix the bug.
-
-* Menu:
-
-* Bug Criteria:: Have you found a bug?
-* Bug Reporting:: How to report bugs
-
-
-File: binutils.info, Node: Bug Criteria, Next: Bug Reporting, Up: Reporting Bugs
-
-17.1 Have You Found a Bug?
-==========================
-
-If you are not sure whether you have found a bug, here are some
-guidelines:
-
- * If a binary utility gets a fatal signal, for any input whatever,
- that is a bug. Reliable utilities never crash.
-
- * If a binary utility produces an error message for valid input,
- that is a bug.
-
- * If you are an experienced user of binary utilities, your
- suggestions for improvement are welcome in any case.
-
-
-File: binutils.info, Node: Bug Reporting, Prev: Bug Criteria, Up: Reporting Bugs
-
-17.2 How to Report Bugs
-=======================
-
-A number of companies and individuals offer support for GNU products.
-If you obtained the binary utilities from a support organization, we
-recommend you contact that organization first.
-
- You can find contact information for many support companies and
-individuals in the file `etc/SERVICE' in the GNU Emacs distribution.
-
- In any event, we also recommend that you send bug reports for the
-binary utilities to `bug-binutils@gnu.org'.
-
- The fundamental principle of reporting bugs usefully is this:
-*report all the facts*. If you are not sure whether to state a fact or
-leave it out, state it!
-
- Often people omit facts because they think they know what causes the
-problem and assume that some details do not matter. Thus, you might
-assume that the name of a file you use in an example does not matter.
-Well, probably it does not, but one cannot be sure. Perhaps the bug is
-a stray memory reference which happens to fetch from the location where
-that pathname is stored in memory; perhaps, if the pathname were
-different, the contents of that location would fool the utility into
-doing the right thing despite the bug. Play it safe and give a
-specific, complete example. That is the easiest thing for you to do,
-and the most helpful.
-
- Keep in mind that the purpose of a bug report is to enable us to fix
-the bug if it is new to us. Therefore, always write your bug reports
-on the assumption that the bug has not been reported previously.
-
- Sometimes people give a few sketchy facts and ask, "Does this ring a
-bell?" This cannot help us fix a bug, so it is basically useless. We
-respond by asking for enough details to enable us to investigate. You
-might as well expedite matters by sending them to begin with.
-
- To enable us to fix the bug, you should include all these things:
-
- * The version of the utility. Each utility announces it if you
- start it with the `--version' argument.
-
- Without this, we will not know whether there is any point in
- looking for the bug in the current version of the binary utilities.
-
- * Any patches you may have applied to the source, including any
- patches made to the `BFD' library.
-
- * The type of machine you are using, and the operating system name
- and version number.
-
- * What compiler (and its version) was used to compile the
- utilities--e.g. "`gcc-2.7'".
-
- * The command arguments you gave the utility to observe the bug. To
- guarantee you will not omit something important, list them all. A
- copy of the Makefile (or the output from make) is sufficient.
-
- If we were to try to guess the arguments, we would probably guess
- wrong and then we might not encounter the bug.
-
- * A complete input file, or set of input files, that will reproduce
- the bug. If the utility is reading an object file or files, then
- it is generally most helpful to send the actual object files,
- uuencoded if necessary to get them through the mail system. Note
- that `bug-binutils@gnu.org' is a mailing list, so you should avoid
- sending very large files to it. Making the files available for
- anonymous FTP is OK.
-
- If the source files were produced exclusively using GNU programs
- (e.g., `gcc', `gas', and/or the GNU `ld'), then it may be OK to
- send the source files rather than the object files. In this case,
- be sure to say exactly what version of `gcc', or whatever, was
- used to produce the object files. Also say how `gcc', or
- whatever, was configured.
-
- * A description of what behavior you observe that you believe is
- incorrect. For example, "It gets a fatal signal."
-
- Of course, if the bug is that the utility gets a fatal signal,
- then we will certainly notice it. But if the bug is incorrect
- output, we might not notice unless it is glaringly wrong. You
- might as well not give us a chance to make a mistake.
-
- Even if the problem you experience is a fatal signal, you should
- still say so explicitly. Suppose something strange is going on,
- such as your copy of the utility is out of synch, or you have
- encountered a bug in the C library on your system. (This has
- happened!) Your copy might crash and ours would not. If you told
- us to expect a crash, then when ours fails to crash, we would know
- that the bug was not happening for us. If you had not told us to
- expect a crash, then we would not be able to draw any conclusion
- from our observations.
-
- * If you wish to suggest changes to the source, send us context
- diffs, as generated by `diff' with the `-u', `-c', or `-p' option.
- Always send diffs from the old file to the new file. If you wish
- to discuss something in the `ld' source, refer to it by context,
- not by line number.
-
- The line numbers in our development sources will not match those
- in your sources. Your line numbers would convey no useful
- information to us.
-
- Here are some things that are not necessary:
-
- * A description of the envelope of the bug.
-
- Often people who encounter a bug spend a lot of time investigating
- which changes to the input file will make the bug go away and which
- changes will not affect it.
-
- This is often time consuming and not very useful, because the way
- we will find the bug is by running a single example under the
- debugger with breakpoints, not by pure deduction from a series of
- examples. We recommend that you save your time for something else.
-
- Of course, if you can find a simpler example to report _instead_
- of the original one, that is a convenience for us. Errors in the
- output will be easier to spot, running under the debugger will take
- less time, and so on.
-
- However, simplification is not vital; if you do not want to do
- this, report the bug anyway and send us the entire test case you
- used.
-
- * A patch for the bug.
-
- A patch for the bug does help us if it is a good one. But do not
- omit the necessary information, such as the test case, on the
- assumption that a patch is all we need. We might see problems
- with your patch and decide to fix the problem another way, or we
- might not understand it at all.
-
- Sometimes with programs as complicated as the binary utilities it
- is very hard to construct an example that will make the program
- follow a certain path through the code. If you do not send us the
- example, we will not be able to construct one, so we will not be
- able to verify that the bug is fixed.
-
- And if we cannot understand what bug you are trying to fix, or why
- your patch should be an improvement, we will not install it. A
- test case will help us to understand.
-
- * A guess about what the bug is or what it depends on.
-
- Such guesses are usually wrong. Even we cannot guess right about
- such things without first using the debugger to find the facts.
-
-
-File: binutils.info, Node: GNU Free Documentation License, Next: Index, Prev: Reporting Bugs, Up: Top
-
-Appendix A GNU Free Documentation License
-*****************************************
-
- Version 1.1, March 2000
-
- Copyright (C) 2000, 2003 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- 0. PREAMBLE
-
- The purpose of this License is to make a manual, textbook, or other
- written document "free" in the sense of freedom: to assure everyone
- the effective freedom to copy and redistribute it, with or without
- modifying it, either commercially or noncommercially. Secondarily,
- this License preserves for the author and publisher a way to get
- credit for their work, while not being considered responsible for
- modifications made by others.
-
- This License is a kind of "copyleft", which means that derivative
- works of the document must themselves be free in the same sense.
- It complements the GNU General Public License, which is a copyleft
- license designed for free software.
-
- We have designed this License in order to use it for manuals for
- free software, because free software needs free documentation: a
- free program should come with manuals providing the same freedoms
- that the software does. But this License is not limited to
- software manuals; it can be used for any textual work, regardless
- of subject matter or whether it is published as a printed book.
- We recommend this License principally for works whose purpose is
- instruction or reference.
-
-
- 1. APPLICABILITY AND DEFINITIONS
-
- This License applies to any manual or other work that contains a
- notice placed by the copyright holder saying it can be distributed
- under the terms of this License. The "Document", below, refers to
- any such manual or work. Any member of the public is a licensee,
- and is addressed as "you."
-
- A "Modified Version" of the Document means any work containing the
- Document or a portion of it, either copied verbatim, or with
- modifications and/or translated into another language.
-
- A "Secondary Section" is a named appendix or a front-matter
- section of the Document that deals exclusively with the
- relationship of the publishers or authors of the Document to the
- Document's overall subject (or to related matters) and contains
- nothing that could fall directly within that overall subject.
- (For example, if the Document is in part a textbook of
- mathematics, a Secondary Section may not explain any mathematics.)
- The relationship could be a matter of historical connection with
- the subject or with related matters, or of legal, commercial,
- philosophical, ethical or political position regarding them.
-
- The "Invariant Sections" are certain Secondary Sections whose
- titles are designated, as being those of Invariant Sections, in
- the notice that says that the Document is released under this
- License.
-
- The "Cover Texts" are certain short passages of text that are
- listed, as Front-Cover Texts or Back-Cover Texts, in the notice
- that says that the Document is released under this License.
-
- A "Transparent" copy of the Document means a machine-readable copy,
- represented in a format whose specification is available to the
- general public, whose contents can be viewed and edited directly
- and straightforwardly with generic text editors or (for images
- composed of pixels) generic paint programs or (for drawings) some
- widely available drawing editor, and that is suitable for input to
- text formatters or for automatic translation to a variety of
- formats suitable for input to text formatters. A copy made in an
- otherwise Transparent file format whose markup has been designed
- to thwart or discourage subsequent modification by readers is not
- Transparent. A copy that is not "Transparent" is called "Opaque."
-
- Examples of suitable formats for Transparent copies include plain
- ASCII without markup, Texinfo input format, LaTeX input format,
- SGML or XML using a publicly available DTD, and
- standard-conforming simple HTML designed for human modification.
- Opaque formats include PostScript, PDF, proprietary formats that
- can be read and edited only by proprietary word processors, SGML
- or XML for which the DTD and/or processing tools are not generally
- available, and the machine-generated HTML produced by some word
- processors for output purposes only.
-
- The "Title Page" means, for a printed book, the title page itself,
- plus such following pages as are needed to hold, legibly, the
- material this License requires to appear in the title page. For
- works in formats which do not have any title page as such, "Title
- Page" means the text near the most prominent appearance of the
- work's title, preceding the beginning of the body of the text.
-
- 2. VERBATIM COPYING
-
- You may copy and distribute the Document in any medium, either
- commercially or noncommercially, provided that this License, the
- copyright notices, and the license notice saying this License
- applies to the Document are reproduced in all copies, and that you
- add no other conditions whatsoever to those of this License. You
- may not use technical measures to obstruct or control the reading
- or further copying of the copies you make or distribute. However,
- you may accept compensation in exchange for copies. If you
- distribute a large enough number of copies you must also follow
- the conditions in section 3.
-
- You may also lend copies, under the same conditions stated above,
- and you may publicly display copies.
-
- 3. COPYING IN QUANTITY
-
- If you publish printed copies of the Document numbering more than
- 100, and the Document's license notice requires Cover Texts, you
- must enclose the copies in covers that carry, clearly and legibly,
- all these Cover Texts: Front-Cover Texts on the front cover, and
- Back-Cover Texts on the back cover. Both covers must also clearly
- and legibly identify you as the publisher of these copies. The
- front cover must present the full title with all words of the
- title equally prominent and visible. You may add other material
- on the covers in addition. Copying with changes limited to the
- covers, as long as they preserve the title of the Document and
- satisfy these conditions, can be treated as verbatim copying in
- other respects.
-
- If the required texts for either cover are too voluminous to fit
- legibly, you should put the first ones listed (as many as fit
- reasonably) on the actual cover, and continue the rest onto
- adjacent pages.
-
- If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a
- machine-readable Transparent copy along with each Opaque copy, or
- state in or with each Opaque copy a publicly-accessible
- computer-network location containing a complete Transparent copy
- of the Document, free of added material, which the general
- network-using public has access to download anonymously at no
- charge using public-standard network protocols. If you use the
- latter option, you must take reasonably prudent steps, when you
- begin distribution of Opaque copies in quantity, to ensure that
- this Transparent copy will remain thus accessible at the stated
- location until at least one year after the last time you
- distribute an Opaque copy (directly or through your agents or
- retailers) of that edition to the public.
-
- It is requested, but not required, that you contact the authors of
- the Document well before redistributing any large number of
- copies, to give them a chance to provide you with an updated
- version of the Document.
-
- 4. MODIFICATIONS
-
- You may copy and distribute a Modified Version of the Document
- under the conditions of sections 2 and 3 above, provided that you
- release the Modified Version under precisely this License, with
- the Modified Version filling the role of the Document, thus
- licensing distribution and modification of the Modified Version to
- whoever possesses a copy of it. In addition, you must do these
- things in the Modified Version:
-
- A. Use in the Title Page (and on the covers, if any) a title
- distinct from that of the Document, and from those of previous
- versions (which should, if there were any, be listed in the
- History section of the Document). You may use the same title
- as a previous version if the original publisher of that version
- gives permission.
- B. List on the Title Page, as authors, one or more persons or
- entities responsible for authorship of the modifications in the
- Modified Version, together with at least five of the principal
- authors of the Document (all of its principal authors, if it
- has less than five).
- C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
- D. Preserve all the copyright notices of the Document.
- E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
- F. Include, immediately after the copyright notices, a license
- notice giving the public permission to use the Modified Version
- under the terms of this License, in the form shown in the
- Addendum below.
- G. Preserve in that license notice the full lists of Invariant
- Sections and required Cover Texts given in the Document's
- license notice.
- H. Include an unaltered copy of this License.
- I. Preserve the section entitled "History", and its title, and add
- to it an item stating at least the title, year, new authors, and
- publisher of the Modified Version as given on the Title Page.
- If there is no section entitled "History" in the Document,
- create one stating the title, year, authors, and publisher of
- the Document as given on its Title Page, then add an item
- describing the Modified Version as stated in the previous
- sentence.
- J. Preserve the network location, if any, given in the Document for
- public access to a Transparent copy of the Document, and
- likewise the network locations given in the Document for
- previous versions it was based on. These may be placed in the
- "History" section. You may omit a network location for a work
- that was published at least four years before the Document
- itself, or if the original publisher of the version it refers
- to gives permission.
- K. In any section entitled "Acknowledgements" or "Dedications",
- preserve the section's title, and preserve in the section all the
- substance and tone of each of the contributor acknowledgements
- and/or dedications given therein.
- L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section titles.
- M. Delete any section entitled "Endorsements." Such a section
- may not be included in the Modified Version.
- N. Do not retitle any existing section as "Endorsements" or to
- conflict in title with any Invariant Section.
-
- If the Modified Version includes new front-matter sections or
- appendices that qualify as Secondary Sections and contain no
- material copied from the Document, you may at your option
- designate some or all of these sections as invariant. To do this,
- add their titles to the list of Invariant Sections in the Modified
- Version's license notice. These titles must be distinct from any
- other section titles.
-
- You may add a section entitled "Endorsements", provided it contains
- nothing but endorsements of your Modified Version by various
- parties-for example, statements of peer review or that the text has
- been approved by an organization as the authoritative definition
- of a standard.
-
- You may add a passage of up to five words as a Front-Cover Text,
- and a passage of up to 25 words as a Back-Cover Text, to the end
- of the list of Cover Texts in the Modified Version. Only one
- passage of Front-Cover Text and one of Back-Cover Text may be
- added by (or through arrangements made by) any one entity. If the
- Document already includes a cover text for the same cover,
- previously added by you or by arrangement made by the same entity
- you are acting on behalf of, you may not add another; but you may
- replace the old one, on explicit permission from the previous
- publisher that added the old one.
-
- The author(s) and publisher(s) of the Document do not by this
- License give permission to use their names for publicity for or to
- assert or imply endorsement of any Modified Version.
-
- 5. COMBINING DOCUMENTS
-
- You may combine the Document with other documents released under
- this License, under the terms defined in section 4 above for
- modified versions, provided that you include in the combination
- all of the Invariant Sections of all of the original documents,
- unmodified, and list them all as Invariant Sections of your
- combined work in its license notice.
-
- The combined work need only contain one copy of this License, and
- multiple identical Invariant Sections may be replaced with a single
- copy. If there are multiple Invariant Sections with the same name
- but different contents, make the title of each such section unique
- by adding at the end of it, in parentheses, the name of the
- original author or publisher of that section if known, or else a
- unique number. Make the same adjustment to the section titles in
- the list of Invariant Sections in the license notice of the
- combined work.
-
- In the combination, you must combine any sections entitled
- "History" in the various original documents, forming one section
- entitled "History"; likewise combine any sections entitled
- "Acknowledgements", and any sections entitled "Dedications." You
- must delete all sections entitled "Endorsements."
-
- 6. COLLECTIONS OF DOCUMENTS
-
- You may make a collection consisting of the Document and other
- documents released under this License, and replace the individual
- copies of this License in the various documents with a single copy
- that is included in the collection, provided that you follow the
- rules of this License for verbatim copying of each of the
- documents in all other respects.
-
- You may extract a single document from such a collection, and
- distribute it individually under this License, provided you insert
- a copy of this License into the extracted document, and follow
- this License in all other respects regarding verbatim copying of
- that document.
-
- 7. AGGREGATION WITH INDEPENDENT WORKS
-
- A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume of
- a storage or distribution medium, does not as a whole count as a
- Modified Version of the Document, provided no compilation
- copyright is claimed for the compilation. Such a compilation is
- called an "aggregate", and this License does not apply to the
- other self-contained works thus compiled with the Document, on
- account of their being thus compiled, if they are not themselves
- derivative works of the Document.
-
- If the Cover Text requirement of section 3 is applicable to these
- copies of the Document, then if the Document is less than one
- quarter of the entire aggregate, the Document's Cover Texts may be
- placed on covers that surround only the Document within the
- aggregate. Otherwise they must appear on covers around the whole
- aggregate.
-
- 8. TRANSLATION
-
- Translation is considered a kind of modification, so you may
- distribute translations of the Document under the terms of section
- 4. Replacing Invariant Sections with translations requires special
- permission from their copyright holders, but you may include
- translations of some or all Invariant Sections in addition to the
- original versions of these Invariant Sections. You may include a
- translation of this License provided that you also include the
- original English version of this License. In case of a
- disagreement between the translation and the original English
- version of this License, the original English version will prevail.
-
- 9. TERMINATION
-
- You may not copy, modify, sublicense, or distribute the Document
- except as expressly provided for under this License. Any other
- attempt to copy, modify, sublicense or distribute the Document 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.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
- The Free Software Foundation may publish new, revised versions of
- the GNU Free Documentation 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. See
- http://www.gnu.org/copyleft/.
-
- Each version of the License is given a distinguishing version
- number. If the Document specifies that a particular numbered
- version of this License "or any later version" applies to it, you
- have the option of following the terms and conditions either of
- that specified version or of any later version that has been
- published (not as a draft) by the Free Software Foundation. If
- the Document does not specify a version number of this License,
- you may choose any version ever published (not as a draft) by the
- Free Software Foundation.
-
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
- Copyright (C) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.1
- or any later version published by the Free Software Foundation;
- with the Invariant Sections being LIST THEIR TITLES, with the
- Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
- A copy of the license is included in the section entitled "GNU
- Free Documentation License."
-
- If you have no Invariant Sections, write "with no Invariant Sections"
-instead of saying which ones are invariant. If you have no Front-Cover
-Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being
-LIST"; likewise for Back-Cover Texts.
-
- If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
-
-
-File: binutils.info, Node: Index, Prev: GNU Free Documentation License, Up: Top
-
-Index
-*****
-
-
-* Menu:
-
-* .stab: objdump. (line 324)
-* addr2line: addr2line. (line 6)
-* address to file name and line number: addr2line. (line 6)
-* all header information, object file: objdump. (line 364)
-* ar: ar. (line 6)
-* ar compatibility: ar. (line 40)
-* architecture: objdump. (line 176)
-* architectures available: objdump. (line 161)
-* archive contents: ranlib. (line 6)
-* archive headers: objdump. (line 60)
-* archives: ar. (line 6)
-* base files: dlltool. (line 108)
-* bug criteria: Bug Criteria. (line 6)
-* bug reports: Bug Reporting. (line 6)
-* bugs: Reporting Bugs. (line 6)
-* bugs, reporting: Bug Reporting. (line 6)
-* c++filt: c++filt. (line 6)
-* changing object addresses: objcopy. (line 266)
-* changing section address: objcopy. (line 276)
-* changing section LMA: objcopy. (line 284)
-* changing section VMA: objcopy. (line 297)
-* changing start address: objcopy. (line 261)
-* collections of files: ar. (line 6)
-* compatibility, ar: ar. (line 40)
-* contents of archive: ar cmdline. (line 88)
-* crash: Bug Criteria. (line 9)
-* creating archives: ar cmdline. (line 127)
-* cxxfilt: c++filt. (line 14)
-* dates in archive: ar cmdline. (line 154)
-* debug symbols: objdump. (line 319)
-* debugging symbols: nm. (line 116)
-* deleting from archive: ar cmdline. (line 26)
-* demangling C++ symbols: c++filt. (line 6)
-* demangling in nm: nm. (line 124)
-* demangling in objdump <1>: addr2line. (line 55)
-* demangling in objdump: objdump. (line 88)
-* disassembling object code: objdump. (line 110)
-* disassembly architecture: objdump. (line 176)
-* disassembly endianness: objdump. (line 126)
-* disassembly, with source: objdump. (line 305)
-* discarding symbols: strip. (line 6)
-* DLL: dlltool. (line 6)
-* dlltool: dlltool. (line 6)
-* DWARF: objdump. (line 319)
-* dynamic relocation entries, in object file: objdump. (line 294)
-* dynamic symbol table entries, printing: objdump. (line 348)
-* dynamic symbols: nm. (line 136)
-* ELF dynamic section information: readelf. (line 102)
-* ELF file header information: readelf. (line 51)
-* ELF file information: readelf. (line 6)
-* ELF notes: readelf. (line 87)
-* ELF object file format: objdump. (line 324)
-* ELF program header information: readelf. (line 57)
-* ELF reloc information: readelf. (line 91)
-* ELF section group information: readelf. (line 68)
-* ELF section information: readelf. (line 63)
-* ELF segment information: readelf. (line 57)
-* ELF symbol table information: readelf. (line 78)
-* ELF version sections informations: readelf. (line 106)
-* endianness: objdump. (line 126)
-* error on valid input: Bug Criteria. (line 12)
-* external symbols: nm. (line 148)
-* extract from archive: ar cmdline. (line 103)
-* fatal signal: Bug Criteria. (line 9)
-* file name: nm. (line 110)
-* header information, all: objdump. (line 364)
-* input .def file: dlltool. (line 104)
-* input file name: nm. (line 110)
-* libraries: ar. (line 25)
-* listings strings: strings. (line 6)
-* machine instructions: objdump. (line 110)
-* moving in archive: ar cmdline. (line 34)
-* MRI compatibility, ar: ar scripts. (line 8)
-* name duplication in archive: ar cmdline. (line 97)
-* name length: ar. (line 18)
-* nm: nm. (line 6)
-* nm compatibility: nm. (line 120)
-* nm format: nm. (line 120)
-* not writing archive index: ar cmdline. (line 173)
-* objdump: objdump. (line 6)
-* object code format <1>: addr2line. (line 50)
-* object code format <2>: strings. (line 65)
-* object code format <3>: size. (line 79)
-* object code format <4>: objdump. (line 74)
-* object code format: nm. (line 212)
-* object file header: objdump. (line 132)
-* object file information: objdump. (line 6)
-* object file sections: objdump. (line 300)
-* object formats available: objdump. (line 161)
-* operations on archive: ar cmdline. (line 22)
-* printing from archive: ar cmdline. (line 46)
-* printing strings: strings. (line 6)
-* quick append to archive: ar cmdline. (line 54)
-* radix for section sizes: size. (line 65)
-* ranlib: ranlib. (line 6)
-* readelf: readelf. (line 6)
-* relative placement in archive: ar cmdline. (line 115)
-* relocation entries, in object file: objdump. (line 288)
-* removing symbols: strip. (line 6)
-* repeated names in archive: ar cmdline. (line 97)
-* replacement in archive: ar cmdline. (line 70)
-* reporting bugs: Reporting Bugs. (line 6)
-* scripts, ar: ar scripts. (line 8)
-* section addresses in objdump: objdump. (line 66)
-* section headers: objdump. (line 143)
-* section information: objdump. (line 166)
-* section sizes: size. (line 6)
-* sections, full contents: objdump. (line 300)
-* size: size. (line 6)
-* size display format: size. (line 26)
-* size number format: size. (line 65)
-* sorting symbols: nm. (line 167)
-* source code context: objdump. (line 136)
-* source disassembly: objdump. (line 305)
-* source file name: nm. (line 110)
-* source filenames for object files: objdump. (line 170)
-* stab: objdump. (line 324)
-* start-address: objdump. (line 334)
-* stop-address: objdump. (line 338)
-* strings: strings. (line 6)
-* strings, printing: strings. (line 6)
-* strip: strip. (line 6)
-* symbol index <1>: ranlib. (line 6)
-* symbol index: ar. (line 28)
-* symbol index, listing: nm. (line 182)
-* symbol line numbers: nm. (line 152)
-* symbol table entries, printing: objdump. (line 343)
-* symbols: nm. (line 6)
-* symbols, discarding: strip. (line 6)
-* undefined symbols: nm. (line 217)
-* Unix compatibility, ar: ar cmdline. (line 8)
-* unwind information: readelf. (line 96)
-* updating an archive: ar cmdline. (line 180)
-* version: Top. (line 6)
-* VMA in objdump: objdump. (line 66)
-* wide output, printing: objdump. (line 370)
-* writing archive index: ar cmdline. (line 167)
-
-
-
-Tag Table:
-Node: Top1751
-Node: ar3304
-Node: ar cmdline5482
-Node: ar scripts13625
-Node: nm19313
-Node: objcopy27509
-Node: objdump50561
-Node: ranlib65474
-Node: size66229
-Node: strings69076
-Node: strip71426
-Node: c++filt76905
-Ref: c++filt-Footnote-181833
-Node: addr2line81939
-Node: nlmconv85210
-Node: windres87816
-Node: dlltool93549
-Node: def file format104387
-Node: readelf106125
-Node: Common Options110833
-Node: Selecting The Target System111873
-Node: Target Selection112805
-Node: Architecture Selection114787
-Node: Reporting Bugs115615
-Node: Bug Criteria116394
-Node: Bug Reporting116947
-Node: GNU Free Documentation License124041
-Node: Index143773
-
-End Tag Table
diff --git a/binutils-2.17/binutils/doc/binutils.texi b/binutils-2.17/binutils/doc/binutils.texi
deleted file mode 100644
index be571d2a..00000000
--- a/binutils-2.17/binutils/doc/binutils.texi
+++ /dev/null
@@ -1,3907 +0,0 @@
-\input texinfo @c -*- Texinfo -*-
-@setfilename binutils.info
-@c Copyright 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-
-@c man begin INCLUDE
-@include config.texi
-@c man end
-
-@ifinfo
-@format
-START-INFO-DIR-ENTRY
-* Binutils: (binutils). The GNU binary utilities.
-* ar: (binutils)ar. Create, modify, and extract from archives
-* nm: (binutils)nm. List symbols from object files
-* objcopy: (binutils)objcopy. Copy and translate object files
-* objdump: (binutils)objdump. Display information from object files
-* ranlib: (binutils)ranlib. Generate index to archive contents
-* readelf: (binutils)readelf. Display the contents of ELF format files.
-* size: (binutils)size. List section sizes and total size
-* strings: (binutils)strings. List printable strings from files
-* strip: (binutils)strip. Discard symbols
-* c++filt: (binutils)c++filt. Filter to demangle encoded C++ symbols
-* cxxfilt: (binutils)c++filt. MS-DOS name for c++filt
-* addr2line: (binutils)addr2line. Convert addresses to file and line
-* nlmconv: (binutils)nlmconv. Converts object code into an NLM
-* windres: (binutils)windres. Manipulate Windows resources
-* dlltool: (binutils)dlltool. Create files needed to build and use DLLs
-END-INFO-DIR-ENTRY
-@end format
-@end ifinfo
-
-@ifinfo
-@c man begin COPYRIGHT
-Copyright @copyright{} 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled ``GNU Free Documentation License''.
-
-@c man end
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries a copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-@end ifinfo
-
-@synindex ky cp
-@c
-@c This file documents the GNU binary utilities "ar", "ld", "objcopy",
-@c "objdump", "nm", "size", "strings", "strip", "readelf" and "ranlib".
-@c
-@c Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-@c 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-@c
-@c This text may be freely distributed under the terms of the GNU
-@c Free Documentation License.
-@c
-
-@setchapternewpage odd
-@settitle @sc{gnu} Binary Utilities
-@titlepage
-@finalout
-@title The @sc{gnu} Binary Utilities
-@subtitle Version @value{VERSION}
-@sp 1
-@subtitle @value{UPDATED}
-@author Roland H. Pesch
-@author Jeffrey M. Osier
-@author Cygnus Support
-@page
-
-@tex
-{\parskip=0pt \hfill Cygnus Support\par \hfill
-\TeX{}info \texinfoversion\par }
-@end tex
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.1
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, with no Front-Cover Texts, and with no
- Back-Cover Texts. A copy of the license is included in the
- section entitled ``GNU Free Documentation License''.
-
-@end titlepage
-
-@node Top
-@top Introduction
-
-@cindex version
-This brief manual contains documentation for the @sc{gnu} binary
-utilities (collectively version @value{VERSION}):
-
-@iftex
-@table @code
-@item ar
-Create, modify, and extract from archives
-
-@item nm
-List symbols from object files
-
-@item objcopy
-Copy and translate object files
-
-@item objdump
-Display information from object files
-
-@item ranlib
-Generate index to archive contents
-
-@item readelf
-Display the contents of ELF format files.
-
-@item size
-List file section sizes and total size
-
-@item strings
-List printable strings from files
-
-@item strip
-Discard symbols
-
-@item c++filt
-Demangle encoded C++ symbols (on MS-DOS, this program is named
-@code{cxxfilt})
-
-@item addr2line
-Convert addresses into file names and line numbers
-
-@item nlmconv
-Convert object code into a Netware Loadable Module
-
-@item windres
-Manipulate Windows resources
-
-@item dlltool
-Create the files needed to build and use Dynamic Link Libraries
-@end table
-@end iftex
-
-This document is distributed under the terms of the GNU Free
-Documentation License. A copy of the license is included in the
-section entitled "GNU Free Documentation License".
-
-@menu
-* ar:: Create, modify, and extract from archives
-* nm:: List symbols from object files
-* objcopy:: Copy and translate object files
-* objdump:: Display information from object files
-* ranlib:: Generate index to archive contents
-* readelf:: Display the contents of ELF format files.
-* size:: List section sizes and total size
-* strings:: List printable strings from files
-* strip:: Discard symbols
-* c++filt:: Filter to demangle encoded C++ symbols
-* cxxfilt: c++filt. MS-DOS name for c++filt
-* addr2line:: Convert addresses to file and line
-* nlmconv:: Converts object code into an NLM
-* windres:: Manipulate Windows resources
-* dlltool:: Create files needed to build and use DLLs
-* Common Options:: Command-line options for all utilities
-* Selecting The Target System:: How these utilities determine the target.
-* Reporting Bugs:: Reporting Bugs
-* GNU Free Documentation License:: GNU Free Documentation License
-* Index:: Index
-@end menu
-
-@node ar
-@chapter ar
-
-@kindex ar
-@cindex archives
-@cindex collections of files
-
-@c man title ar create, modify, and extract from archives
-
-@smallexample
-ar [-]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] @var{archive} [@var{member}@dots{}]
-ar -M [ <mri-script ]
-@end smallexample
-
-@c man begin DESCRIPTION ar
-
-The @sc{gnu} @command{ar} program creates, modifies, and extracts from
-archives. An @dfn{archive} is a single file holding a collection of
-other files in a structure that makes it possible to retrieve
-the original individual files (called @dfn{members} of the archive).
-
-The original files' contents, mode (permissions), timestamp, owner, and
-group are preserved in the archive, and can be restored on
-extraction.
-
-@cindex name length
-@sc{gnu} @command{ar} can maintain archives whose members have names of any
-length; however, depending on how @command{ar} is configured on your
-system, a limit on member-name length may be imposed for compatibility
-with archive formats maintained with other tools. If it exists, the
-limit is often 15 characters (typical of formats related to a.out) or 16
-characters (typical of formats related to coff).
-
-@cindex libraries
-@command{ar} is considered a binary utility because archives of this sort
-are most often used as @dfn{libraries} holding commonly needed
-subroutines.
-
-@cindex symbol index
-@command{ar} creates an index to the symbols defined in relocatable
-object modules in the archive when you specify the modifier @samp{s}.
-Once created, this index is updated in the archive whenever @command{ar}
-makes a change to its contents (save for the @samp{q} update operation).
-An archive with such an index speeds up linking to the library, and
-allows routines in the library to call each other without regard to
-their placement in the archive.
-
-You may use @samp{nm -s} or @samp{nm --print-armap} to list this index
-table. If an archive lacks the table, another form of @command{ar} called
-@command{ranlib} can be used to add just the table.
-
-@cindex compatibility, @command{ar}
-@cindex @command{ar} compatibility
-@sc{gnu} @command{ar} is designed to be compatible with two different
-facilities. You can control its activity using command-line options,
-like the different varieties of @command{ar} on Unix systems; or, if you
-specify the single command-line option @option{-M}, you can control it
-with a script supplied via standard input, like the MRI ``librarian''
-program.
-
-@c man end
-
-@menu
-* ar cmdline:: Controlling @command{ar} on the command line
-* ar scripts:: Controlling @command{ar} with a script
-@end menu
-
-@page
-@node ar cmdline
-@section Controlling @command{ar} on the Command Line
-
-@smallexample
-@c man begin SYNOPSIS ar
-ar [@option{-X32_64}] [@option{-}]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] @var{archive} [@var{member}@dots{}]
-@c man end
-@end smallexample
-
-@cindex Unix compatibility, @command{ar}
-When you use @command{ar} in the Unix style, @command{ar} insists on at least two
-arguments to execute: one keyletter specifying the @emph{operation}
-(optionally accompanied by other keyletters specifying
-@emph{modifiers}), and the archive name to act on.
-
-Most operations can also accept further @var{member} arguments,
-specifying particular files to operate on.
-
-@c man begin OPTIONS ar
-
-@sc{gnu} @command{ar} allows you to mix the operation code @var{p} and modifier
-flags @var{mod} in any order, within the first command-line argument.
-
-If you wish, you may begin the first command-line argument with a
-dash.
-
-@cindex operations on archive
-The @var{p} keyletter specifies what operation to execute; it may be
-any of the following, but you must specify only one of them:
-
-@table @samp
-@item d
-@cindex deleting from archive
-@emph{Delete} modules from the archive. Specify the names of modules to
-be deleted as @var{member}@dots{}; the archive is untouched if you
-specify no files to delete.
-
-If you specify the @samp{v} modifier, @command{ar} lists each module
-as it is deleted.
-
-@item m
-@cindex moving in archive
-Use this operation to @emph{move} members in an archive.
-
-The ordering of members in an archive can make a difference in how
-programs are linked using the library, if a symbol is defined in more
-than one member.
-
-If no modifiers are used with @code{m}, any members you name in the
-@var{member} arguments are moved to the @emph{end} of the archive;
-you can use the @samp{a}, @samp{b}, or @samp{i} modifiers to move them to a
-specified place instead.
-
-@item p
-@cindex printing from archive
-@emph{Print} the specified members of the archive, to the standard
-output file. If the @samp{v} modifier is specified, show the member
-name before copying its contents to standard output.
-
-If you specify no @var{member} arguments, all the files in the archive are
-printed.
-
-@item q
-@cindex quick append to archive
-@emph{Quick append}; Historically, add the files @var{member}@dots{} to the end of
-@var{archive}, without checking for replacement.
-
-The modifiers @samp{a}, @samp{b}, and @samp{i} do @emph{not} affect this
-operation; new members are always placed at the end of the archive.
-
-The modifier @samp{v} makes @command{ar} list each file as it is appended.
-
-Since the point of this operation is speed, the archive's symbol table
-index is not updated, even if it already existed; you can use @samp{ar s} or
-@command{ranlib} explicitly to update the symbol table index.
-
-However, too many different systems assume quick append rebuilds the
-index, so @sc{gnu} @command{ar} implements @samp{q} as a synonym for @samp{r}.
-
-@item r
-@cindex replacement in archive
-Insert the files @var{member}@dots{} into @var{archive} (with
-@emph{replacement}). This operation differs from @samp{q} in that any
-previously existing members are deleted if their names match those being
-added.
-
-If one of the files named in @var{member}@dots{} does not exist, @command{ar}
-displays an error message, and leaves undisturbed any existing members
-of the archive matching that name.
-
-By default, new members are added at the end of the file; but you may
-use one of the modifiers @samp{a}, @samp{b}, or @samp{i} to request
-placement relative to some existing member.
-
-The modifier @samp{v} used with this operation elicits a line of
-output for each file inserted, along with one of the letters @samp{a} or
-@samp{r} to indicate whether the file was appended (no old member
-deleted) or replaced.
-
-@item t
-@cindex contents of archive
-Display a @emph{table} listing the contents of @var{archive}, or those
-of the files listed in @var{member}@dots{} that are present in the
-archive. Normally only the member name is shown; if you also want to
-see the modes (permissions), timestamp, owner, group, and size, you can
-request that by also specifying the @samp{v} modifier.
-
-If you do not specify a @var{member}, all files in the archive
-are listed.
-
-@cindex repeated names in archive
-@cindex name duplication in archive
-If there is more than one file with the same name (say, @samp{fie}) in
-an archive (say @samp{b.a}), @samp{ar t b.a fie} lists only the
-first instance; to see them all, you must ask for a complete
-listing---in our example, @samp{ar t b.a}.
-@c WRS only; per Gumby, this is implementation-dependent, and in a more
-@c recent case in fact works the other way.
-
-@item x
-@cindex extract from archive
-@emph{Extract} members (named @var{member}) from the archive. You can
-use the @samp{v} modifier with this operation, to request that
-@command{ar} list each name as it extracts it.
-
-If you do not specify a @var{member}, all files in the archive
-are extracted.
-
-@end table
-
-A number of modifiers (@var{mod}) may immediately follow the @var{p}
-keyletter, to specify variations on an operation's behavior:
-
-@table @samp
-@item a
-@cindex relative placement in archive
-Add new files @emph{after} an existing member of the
-archive. If you use the modifier @samp{a}, the name of an existing archive
-member must be present as the @var{relpos} argument, before the
-@var{archive} specification.
-
-@item b
-Add new files @emph{before} an existing member of the
-archive. If you use the modifier @samp{b}, the name of an existing archive
-member must be present as the @var{relpos} argument, before the
-@var{archive} specification. (same as @samp{i}).
-
-@item c
-@cindex creating archives
-@emph{Create} the archive. The specified @var{archive} is always
-created if it did not exist, when you request an update. But a warning is
-issued unless you specify in advance that you expect to create it, by
-using this modifier.
-
-@item f
-Truncate names in the archive. @sc{gnu} @command{ar} will normally permit file
-names of any length. This will cause it to create archives which are
-not compatible with the native @command{ar} program on some systems. If
-this is a concern, the @samp{f} modifier may be used to truncate file
-names when putting them in the archive.
-
-@item i
-Insert new files @emph{before} an existing member of the
-archive. If you use the modifier @samp{i}, the name of an existing archive
-member must be present as the @var{relpos} argument, before the
-@var{archive} specification. (same as @samp{b}).
-
-@item l
-This modifier is accepted but not used.
-@c whaffor ar l modifier??? presumably compat; with
-@c what???---doc@@cygnus.com, 25jan91
-
-@item N
-Uses the @var{count} parameter. This is used if there are multiple
-entries in the archive with the same name. Extract or delete instance
-@var{count} of the given name from the archive.
-
-@item o
-@cindex dates in archive
-Preserve the @emph{original} dates of members when extracting them. If
-you do not specify this modifier, files extracted from the archive
-are stamped with the time of extraction.
-
-@item P
-Use the full path name when matching names in the archive. @sc{gnu}
-@command{ar} can not create an archive with a full path name (such archives
-are not POSIX complaint), but other archive creators can. This option
-will cause @sc{gnu} @command{ar} to match file names using a complete path
-name, which can be convenient when extracting a single file from an
-archive created by another tool.
-
-@item s
-@cindex writing archive index
-Write an object-file index into the archive, or update an existing one,
-even if no other change is made to the archive. You may use this modifier
-flag either with any operation, or alone. Running @samp{ar s} on an
-archive is equivalent to running @samp{ranlib} on it.
-
-@item S
-@cindex not writing archive index
-Do not generate an archive symbol table. This can speed up building a
-large library in several steps. The resulting archive can not be used
-with the linker. In order to build a symbol table, you must omit the
-@samp{S} modifier on the last execution of @samp{ar}, or you must run
-@samp{ranlib} on the archive.
-
-@item u
-@cindex updating an archive
-Normally, @samp{ar r}@dots{} inserts all files
-listed into the archive. If you would like to insert @emph{only} those
-of the files you list that are newer than existing members of the same
-names, use this modifier. The @samp{u} modifier is allowed only for the
-operation @samp{r} (replace). In particular, the combination @samp{qu} is
-not allowed, since checking the timestamps would lose any speed
-advantage from the operation @samp{q}.
-
-@item v
-This modifier requests the @emph{verbose} version of an operation. Many
-operations display additional information, such as filenames processed,
-when the modifier @samp{v} is appended.
-
-@item V
-This modifier shows the version number of @command{ar}.
-@end table
-
-@command{ar} ignores an initial option spelt @samp{-X32_64}, for
-compatibility with AIX. The behaviour produced by this option is the
-default for @sc{gnu} @command{ar}. @command{ar} does not support any of the other
-@samp{-X} options; in particular, it does not support @option{-X32}
-which is the default for AIX @command{ar}.
-
-@c man end
-
-@ignore
-@c man begin SEEALSO ar
-nm(1), ranlib(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node ar scripts
-@section Controlling @command{ar} with a Script
-
-@smallexample
-ar -M [ <@var{script} ]
-@end smallexample
-
-@cindex MRI compatibility, @command{ar}
-@cindex scripts, @command{ar}
-If you use the single command-line option @samp{-M} with @command{ar}, you
-can control its operation with a rudimentary command language. This
-form of @command{ar} operates interactively if standard input is coming
-directly from a terminal. During interactive use, @command{ar} prompts for
-input (the prompt is @samp{AR >}), and continues executing even after
-errors. If you redirect standard input to a script file, no prompts are
-issued, and @command{ar} abandons execution (with a nonzero exit code)
-on any error.
-
-The @command{ar} command language is @emph{not} designed to be equivalent
-to the command-line options; in fact, it provides somewhat less control
-over archives. The only purpose of the command language is to ease the
-transition to @sc{gnu} @command{ar} for developers who already have scripts
-written for the MRI ``librarian'' program.
-
-The syntax for the @command{ar} command language is straightforward:
-@itemize @bullet
-@item
-commands are recognized in upper or lower case; for example, @code{LIST}
-is the same as @code{list}. In the following descriptions, commands are
-shown in upper case for clarity.
-
-@item
-a single command may appear on each line; it is the first word on the
-line.
-
-@item
-empty lines are allowed, and have no effect.
-
-@item
-comments are allowed; text after either of the characters @samp{*}
-or @samp{;} is ignored.
-
-@item
-Whenever you use a list of names as part of the argument to an @command{ar}
-command, you can separate the individual names with either commas or
-blanks. Commas are shown in the explanations below, for clarity.
-
-@item
-@samp{+} is used as a line continuation character; if @samp{+} appears
-at the end of a line, the text on the following line is considered part
-of the current command.
-@end itemize
-
-Here are the commands you can use in @command{ar} scripts, or when using
-@command{ar} interactively. Three of them have special significance:
-
-@code{OPEN} or @code{CREATE} specify a @dfn{current archive}, which is
-a temporary file required for most of the other commands.
-
-@code{SAVE} commits the changes so far specified by the script. Prior
-to @code{SAVE}, commands affect only the temporary copy of the current
-archive.
-
-@table @code
-@item ADDLIB @var{archive}
-@itemx ADDLIB @var{archive} (@var{module}, @var{module}, @dots{} @var{module})
-Add all the contents of @var{archive} (or, if specified, each named
-@var{module} from @var{archive}) to the current archive.
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@item ADDMOD @var{member}, @var{member}, @dots{} @var{member}
-@c FIXME! w/Replacement?? If so, like "ar r @var{archive} @var{names}"
-@c else like "ar q..."
-Add each named @var{member} as a module in the current archive.
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@item CLEAR
-Discard the contents of the current archive, canceling the effect of
-any operations since the last @code{SAVE}. May be executed (with no
-effect) even if no current archive is specified.
-
-@item CREATE @var{archive}
-Creates an archive, and makes it the current archive (required for many
-other commands). The new archive is created with a temporary name; it
-is not actually saved as @var{archive} until you use @code{SAVE}.
-You can overwrite existing archives; similarly, the contents of any
-existing file named @var{archive} will not be destroyed until @code{SAVE}.
-
-@item DELETE @var{module}, @var{module}, @dots{} @var{module}
-Delete each listed @var{module} from the current archive; equivalent to
-@samp{ar -d @var{archive} @var{module} @dots{} @var{module}}.
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@item DIRECTORY @var{archive} (@var{module}, @dots{} @var{module})
-@itemx DIRECTORY @var{archive} (@var{module}, @dots{} @var{module}) @var{outputfile}
-List each named @var{module} present in @var{archive}. The separate
-command @code{VERBOSE} specifies the form of the output: when verbose
-output is off, output is like that of @samp{ar -t @var{archive}
-@var{module}@dots{}}. When verbose output is on, the listing is like
-@samp{ar -tv @var{archive} @var{module}@dots{}}.
-
-Output normally goes to the standard output stream; however, if you
-specify @var{outputfile} as a final argument, @command{ar} directs the
-output to that file.
-
-@item END
-Exit from @command{ar}, with a @code{0} exit code to indicate successful
-completion. This command does not save the output file; if you have
-changed the current archive since the last @code{SAVE} command, those
-changes are lost.
-
-@item EXTRACT @var{module}, @var{module}, @dots{} @var{module}
-Extract each named @var{module} from the current archive, writing them
-into the current directory as separate files. Equivalent to @samp{ar -x
-@var{archive} @var{module}@dots{}}.
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@ignore
-@c FIXME Tokens but no commands???
-@item FULLDIR
-
-@item HELP
-@end ignore
-
-@item LIST
-Display full contents of the current archive, in ``verbose'' style
-regardless of the state of @code{VERBOSE}. The effect is like @samp{ar
-tv @var{archive}}. (This single command is a @sc{gnu} @command{ar}
-enhancement, rather than present for MRI compatibility.)
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@item OPEN @var{archive}
-Opens an existing archive for use as the current archive (required for
-many other commands). Any changes as the result of subsequent commands
-will not actually affect @var{archive} until you next use @code{SAVE}.
-
-@item REPLACE @var{module}, @var{module}, @dots{} @var{module}
-In the current archive, replace each existing @var{module} (named in
-the @code{REPLACE} arguments) from files in the current working directory.
-To execute this command without errors, both the file, and the module in
-the current archive, must exist.
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@item VERBOSE
-Toggle an internal flag governing the output from @code{DIRECTORY}.
-When the flag is on, @code{DIRECTORY} output matches output from
-@samp{ar -tv }@dots{}.
-
-@item SAVE
-Commit your changes to the current archive, and actually save it as a
-file with the name specified in the last @code{CREATE} or @code{OPEN}
-command.
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@end table
-
-@iftex
-@node ld
-@chapter ld
-@cindex linker
-@kindex ld
-The @sc{gnu} linker @command{ld} is now described in a separate manual.
-@xref{Top,, Overview,, Using LD: the @sc{gnu} linker}.
-@end iftex
-
-@node nm
-@chapter nm
-@cindex symbols
-@kindex nm
-
-@c man title nm list symbols from object files
-
-@smallexample
-@c man begin SYNOPSIS nm
-nm [@option{-a}|@option{--debug-syms}] [@option{-g}|@option{--extern-only}]
- [@option{-B}] [@option{-C}|@option{--demangle}[=@var{style}]] [@option{-D}|@option{--dynamic}]
- [@option{-S}|@option{--print-size}] [@option{-s}|@option{--print-armap}]
- [@option{-A}|@option{-o}|@option{--print-file-name}][@option{--special-syms}]
- [@option{-n}|@option{-v}|@option{--numeric-sort}] [@option{-p}|@option{--no-sort}]
- [@option{-r}|@option{--reverse-sort}] [@option{--size-sort}] [@option{-u}|@option{--undefined-only}]
- [@option{-t} @var{radix}|@option{--radix=}@var{radix}] [@option{-P}|@option{--portability}]
- [@option{--target=}@var{bfdname}] [@option{-f}@var{format}|@option{--format=}@var{format}]
- [@option{--defined-only}] [@option{-l}|@option{--line-numbers}] [@option{--no-demangle}]
- [@option{-V}|@option{--version}] [@option{-X 32_64}] [@option{--help}] [@var{objfile}@dots{}]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION nm
-@sc{gnu} @command{nm} lists the symbols from object files @var{objfile}@dots{}.
-If no object files are listed as arguments, @command{nm} assumes the file
-@file{a.out}.
-
-For each symbol, @command{nm} shows:
-
-@itemize @bullet
-@item
-The symbol value, in the radix selected by options (see below), or
-hexadecimal by default.
-
-@item
-The symbol type. At least the following types are used; others are, as
-well, depending on the object file format. If lowercase, the symbol is
-local; if uppercase, the symbol is global (external).
-
-@c Some more detail on exactly what these symbol types are used for
-@c would be nice.
-@table @code
-@item A
-The symbol's value is absolute, and will not be changed by further
-linking.
-
-@item B
-The symbol is in the uninitialized data section (known as BSS).
-
-@item C
-The symbol is common. Common symbols are uninitialized data. When
-linking, multiple common symbols may appear with the same name. If the
-symbol is defined anywhere, the common symbols are treated as undefined
-references.
-@ifclear man
-For more details on common symbols, see the discussion of
---warn-common in @ref{Options,,Linker options,ld.info,The GNU linker}.
-@end ifclear
-
-@item D
-The symbol is in the initialized data section.
-
-@item G
-The symbol is in an initialized data section for small objects. Some
-object file formats permit more efficient access to small data objects,
-such as a global int variable as opposed to a large global array.
-
-@item I
-The symbol is an indirect reference to another symbol. This is a @sc{gnu}
-extension to the a.out object file format which is rarely used.
-
-@item N
-The symbol is a debugging symbol.
-
-@item R
-The symbol is in a read only data section.
-
-@item S
-The symbol is in an uninitialized data section for small objects.
-
-@item T
-The symbol is in the text (code) section.
-
-@item U
-The symbol is undefined.
-
-@item V
-The symbol is a weak object. When a weak defined symbol is linked with
-a normal defined symbol, the normal defined symbol is used with no error.
-When a weak undefined symbol is linked and the symbol is not defined,
-the value of the weak symbol becomes zero with no error.
-
-@item W
-The symbol is a weak symbol that has not been specifically tagged as a
-weak object symbol. When a weak defined symbol is linked with a normal
-defined symbol, the normal defined symbol is used with no error.
-When a weak undefined symbol is linked and the symbol is not defined,
-the value of the symbol is determined in a system-specific manner without
-error. On some systems, uppercase indicates that a default value has been
-specified.
-
-
-@item -
-The symbol is a stabs symbol in an a.out object file. In this case, the
-next values printed are the stabs other field, the stabs desc field, and
-the stab type. Stabs symbols are used to hold debugging information.
-@ifclear man
-For more information, see @ref{Top,Stabs,Stabs Overview,stabs.info, The
-``stabs'' debug format}.
-@end ifclear
-
-@item ?
-The symbol type is unknown, or object file format specific.
-@end table
-
-@item
-The symbol name.
-@end itemize
-
-@c man end
-
-@c man begin OPTIONS nm
-The long and short forms of options, shown here as alternatives, are
-equivalent.
-
-@table @env
-@item -A
-@itemx -o
-@itemx --print-file-name
-@cindex input file name
-@cindex file name
-@cindex source file name
-Precede each symbol by the name of the input file (or archive member)
-in which it was found, rather than identifying the input file once only,
-before all of its symbols.
-
-@item -a
-@itemx --debug-syms
-@cindex debugging symbols
-Display all symbols, even debugger-only symbols; normally these are not
-listed.
-
-@item -B
-@cindex @command{nm} format
-@cindex @command{nm} compatibility
-The same as @option{--format=bsd} (for compatibility with the MIPS @command{nm}).
-
-@item -C
-@itemx --demangle[=@var{style}]
-@cindex demangling in nm
-Decode (@dfn{demangle}) low-level symbol names into user-level names.
-Besides removing any initial underscore prepended by the system, this
-makes C++ function names readable. Different compilers have different
-mangling styles. The optional demangling style argument can be used to
-choose an appropriate demangling style for your compiler. @xref{c++filt},
-for more information on demangling.
-
-@item --no-demangle
-Do not demangle low-level symbol names. This is the default.
-
-@item -D
-@itemx --dynamic
-@cindex dynamic symbols
-Display the dynamic symbols rather than the normal symbols. This is
-only meaningful for dynamic objects, such as certain types of shared
-libraries.
-
-@item -f @var{format}
-@itemx --format=@var{format}
-@cindex @command{nm} format
-@cindex @command{nm} compatibility
-Use the output format @var{format}, which can be @code{bsd},
-@code{sysv}, or @code{posix}. The default is @code{bsd}.
-Only the first character of @var{format} is significant; it can be
-either upper or lower case.
-
-@item -g
-@itemx --extern-only
-@cindex external symbols
-Display only external symbols.
-
-@item -l
-@itemx --line-numbers
-@cindex symbol line numbers
-For each symbol, use debugging information to try to find a filename and
-line number. For a defined symbol, look for the line number of the
-address of the symbol. For an undefined symbol, look for the line
-number of a relocation entry which refers to the symbol. If line number
-information can be found, print it after the other symbol information.
-
-@item -n
-@itemx -v
-@itemx --numeric-sort
-Sort symbols numerically by their addresses, rather than alphabetically
-by their names.
-
-@item -p
-@itemx --no-sort
-@cindex sorting symbols
-Do not bother to sort the symbols in any order; print them in the order
-encountered.
-
-@item -P
-@itemx --portability
-Use the POSIX.2 standard output format instead of the default format.
-Equivalent to @samp{-f posix}.
-
-@item -S
-@itemx --print-size
-Print size, not the value, of defined symbols for the @code{bsd} output format.
-
-@item -s
-@itemx --print-armap
-@cindex symbol index, listing
-When listing symbols from archive members, include the index: a mapping
-(stored in the archive by @command{ar} or @command{ranlib}) of which modules
-contain definitions for which names.
-
-@item -r
-@itemx --reverse-sort
-Reverse the order of the sort (whether numeric or alphabetic); let the
-last come first.
-
-@item --size-sort
-Sort symbols by size. The size is computed as the difference between
-the value of the symbol and the value of the symbol with the next higher
-value. If the @code{bsd} output format is used the size of the symbol
-is printed, rather than the value, and @samp{-S} must be used in order
-both size and value to be printed.
-
-@item --special-syms
-Display symbols which have a target-specific special meaning. These
-symbols are usually used by the target for some special processing and
-are not normally helpful when included included in the normal symbol
-lists. For example for ARM targets this option would skip the mapping
-symbols used to mark transistions between ARM code, THUMB code and
-data.
-
-@item -t @var{radix}
-@itemx --radix=@var{radix}
-Use @var{radix} as the radix for printing the symbol values. It must be
-@samp{d} for decimal, @samp{o} for octal, or @samp{x} for hexadecimal.
-
-@item --target=@var{bfdname}
-@cindex object code format
-Specify an object code format other than your system's default format.
-@xref{Target Selection}, for more information.
-
-@item -u
-@itemx --undefined-only
-@cindex external symbols
-@cindex undefined symbols
-Display only undefined symbols (those external to each object file).
-
-@item --defined-only
-@cindex external symbols
-@cindex undefined symbols
-Display only defined symbols for each object file.
-
-@item -V
-@itemx --version
-Show the version number of @command{nm} and exit.
-
-@item -X
-This option is ignored for compatibility with the AIX version of
-@command{nm}. It takes one parameter which must be the string
-@option{32_64}. The default mode of AIX @command{nm} corresponds
-to @option{-X 32}, which is not supported by @sc{gnu} @command{nm}.
-
-@item --help
-Show a summary of the options to @command{nm} and exit.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO nm
-ar(1), objdump(1), ranlib(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node objcopy
-@chapter objcopy
-
-@c man title objcopy copy and translate object files
-
-@smallexample
-@c man begin SYNOPSIS objcopy
-objcopy [@option{-F} @var{bfdname}|@option{--target=}@var{bfdname}]
- [@option{-I} @var{bfdname}|@option{--input-target=}@var{bfdname}]
- [@option{-O} @var{bfdname}|@option{--output-target=}@var{bfdname}]
- [@option{-B} @var{bfdarch}|@option{--binary-architecture=}@var{bfdarch}]
- [@option{-S}|@option{--strip-all}]
- [@option{-g}|@option{--strip-debug}]
- [@option{-K} @var{symbolname}|@option{--keep-symbol=}@var{symbolname}]
- [@option{-N} @var{symbolname}|@option{--strip-symbol=}@var{symbolname}]
- [@option{--strip-unneeded-symbol=}@var{symbolname}]
- [@option{-G} @var{symbolname}|@option{--keep-global-symbol=}@var{symbolname}]
- [@option{-L} @var{symbolname}|@option{--localize-symbol=}@var{symbolname}]
- [@option{--globalize-symbol=}@var{symbolname}]
- [@option{-W} @var{symbolname}|@option{--weaken-symbol=}@var{symbolname}]
- [@option{-w}|@option{--wildcard}]
- [@option{-x}|@option{--discard-all}]
- [@option{-X}|@option{--discard-locals}]
- [@option{-b} @var{byte}|@option{--byte=}@var{byte}]
- [@option{-i} @var{interleave}|@option{--interleave=}@var{interleave}]
- [@option{-j} @var{sectionname}|@option{--only-section=}@var{sectionname}]
- [@option{-R} @var{sectionname}|@option{--remove-section=}@var{sectionname}]
- [@option{-p}|@option{--preserve-dates}]
- [@option{--debugging}]
- [@option{--gap-fill=}@var{val}]
- [@option{--pad-to=}@var{address}]
- [@option{--set-start=}@var{val}]
- [@option{--adjust-start=}@var{incr}]
- [@option{--change-addresses=}@var{incr}]
- [@option{--change-section-address} @var{section}@{=,+,-@}@var{val}]
- [@option{--change-section-lma} @var{section}@{=,+,-@}@var{val}]
- [@option{--change-section-vma} @var{section}@{=,+,-@}@var{val}]
- [@option{--change-warnings}] [@option{--no-change-warnings}]
- [@option{--set-section-flags} @var{section}=@var{flags}]
- [@option{--add-section} @var{sectionname}=@var{filename}]
- [@option{--rename-section} @var{oldname}=@var{newname}[,@var{flags}]]
- [@option{--change-leading-char}] [@option{--remove-leading-char}]
- [@option{--srec-len=}@var{ival}] [@option{--srec-forceS3}]
- [@option{--redefine-sym} @var{old}=@var{new}]
- [@option{--redefine-syms=}@var{filename}]
- [@option{--weaken}]
- [@option{--keep-symbols=}@var{filename}]
- [@option{--strip-symbols=}@var{filename}]
- [@option{--strip-unneeded-symbols=}@var{filename}]
- [@option{--keep-global-symbols=}@var{filename}]
- [@option{--localize-symbols=}@var{filename}]
- [@option{--globalize-symbols=}@var{filename}]
- [@option{--weaken-symbols=}@var{filename}]
- [@option{--alt-machine-code=}@var{index}]
- [@option{--prefix-symbols=}@var{string}]
- [@option{--prefix-sections=}@var{string}]
- [@option{--prefix-alloc-sections=}@var{string}]
- [@option{--add-gnu-debuglink=}@var{path-to-file}]
- [@option{--keep-file-symbols}]
- [@option{--only-keep-debug}]
- [@option{--writable-text}]
- [@option{--readonly-text}]
- [@option{--pure}]
- [@option{--impure}]
- [@option{-v}|@option{--verbose}]
- [@option{-V}|@option{--version}]
- [@option{--help}] [@option{--info}]
- @var{infile} [@var{outfile}]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION objcopy
-The @sc{gnu} @command{objcopy} utility copies the contents of an object
-file to another. @command{objcopy} uses the @sc{gnu} @sc{bfd} Library to
-read and write the object files. It can write the destination object
-file in a format different from that of the source object file. The
-exact behavior of @command{objcopy} is controlled by command-line options.
-Note that @command{objcopy} should be able to copy a fully linked file
-between any two formats. However, copying a relocatable object file
-between any two formats may not work as expected.
-
-@command{objcopy} creates temporary files to do its translations and
-deletes them afterward. @command{objcopy} uses @sc{bfd} to do all its
-translation work; it has access to all the formats described in @sc{bfd}
-and thus is able to recognize most formats without being told
-explicitly. @xref{BFD,,BFD,ld.info,Using LD}.
-
-@command{objcopy} can be used to generate S-records by using an output
-target of @samp{srec} (e.g., use @samp{-O srec}).
-
-@command{objcopy} can be used to generate a raw binary file by using an
-output target of @samp{binary} (e.g., use @option{-O binary}). When
-@command{objcopy} generates a raw binary file, it will essentially produce
-a memory dump of the contents of the input object file. All symbols and
-relocation information will be discarded. The memory dump will start at
-the load address of the lowest section copied into the output file.
-
-When generating an S-record or a raw binary file, it may be helpful to
-use @option{-S} to remove sections containing debugging information. In
-some cases @option{-R} will be useful to remove sections which contain
-information that is not needed by the binary file.
-
-Note---@command{objcopy} is not able to change the endianness of its input
-files. If the input format has an endianness (some formats do not),
-@command{objcopy} can only copy the inputs into file formats that have the
-same endianness or which have no endianness (e.g., @samp{srec}).
-
-@c man end
-
-@c man begin OPTIONS objcopy
-
-@table @env
-@item @var{infile}
-@itemx @var{outfile}
-The input and output files, respectively.
-If you do not specify @var{outfile}, @command{objcopy} creates a
-temporary file and destructively renames the result with
-the name of @var{infile}.
-
-@item -I @var{bfdname}
-@itemx --input-target=@var{bfdname}
-Consider the source file's object format to be @var{bfdname}, rather than
-attempting to deduce it. @xref{Target Selection}, for more information.
-
-@item -O @var{bfdname}
-@itemx --output-target=@var{bfdname}
-Write the output file using the object format @var{bfdname}.
-@xref{Target Selection}, for more information.
-
-@item -F @var{bfdname}
-@itemx --target=@var{bfdname}
-Use @var{bfdname} as the object format for both the input and the output
-file; i.e., simply transfer data from source to destination with no
-translation. @xref{Target Selection}, for more information.
-
-@item -B @var{bfdarch}
-@itemx --binary-architecture=@var{bfdarch}
-Useful when transforming a raw binary input file into an object file.
-In this case the output architecture can be set to @var{bfdarch}. This
-option will be ignored if the input file has a known @var{bfdarch}. You
-can access this binary data inside a program by referencing the special
-symbols that are created by the conversion process. These symbols are
-called _binary_@var{objfile}_start, _binary_@var{objfile}_end and
-_binary_@var{objfile}_size. e.g. you can transform a picture file into
-an object file and then access it in your code using these symbols.
-
-@item -j @var{sectionname}
-@itemx --only-section=@var{sectionname}
-Copy only the named section from the input file to the output file.
-This option may be given more than once. Note that using this option
-inappropriately may make the output file unusable.
-
-@item -R @var{sectionname}
-@itemx --remove-section=@var{sectionname}
-Remove any section named @var{sectionname} from the output file. This
-option may be given more than once. Note that using this option
-inappropriately may make the output file unusable.
-
-@item -S
-@itemx --strip-all
-Do not copy relocation and symbol information from the source file.
-
-@item -g
-@itemx --strip-debug
-Do not copy debugging symbols or sections from the source file.
-
-@item --strip-unneeded
-Strip all symbols that are not needed for relocation processing.
-
-@item -K @var{symbolname}
-@itemx --keep-symbol=@var{symbolname}
-When stripping symbols, keep symbol @var{symbolname} even if it would
-normally be stripped. This option may be given more than once.
-
-@item -N @var{symbolname}
-@itemx --strip-symbol=@var{symbolname}
-Do not copy symbol @var{symbolname} from the source file. This option
-may be given more than once.
-
-@item --strip-unneeded-symbol=@var{symbolname}
-Do not copy symbol @var{symbolname} from the source file unless it is needed
-by a relocation. This option may be given more than once.
-
-@item -G @var{symbolname}
-@itemx --keep-global-symbol=@var{symbolname}
-Keep only symbol @var{symbolname} global. Make all other symbols local
-to the file, so that they are not visible externally. This option may
-be given more than once.
-
-@item -L @var{symbolname}
-@itemx --localize-symbol=@var{symbolname}
-Make symbol @var{symbolname} local to the file, so that it is not
-visible externally. This option may be given more than once.
-
-@item -W @var{symbolname}
-@itemx --weaken-symbol=@var{symbolname}
-Make symbol @var{symbolname} weak. This option may be given more than once.
-
-@item --globalize-symbol=@var{symbolname}
-Give symbol @var{symbolname} global scoping so that it is visible
-outside of the file in which it is defined. This option may be given
-more than once.
-
-@item -w
-@itemx --wildcard
-Permit regular expressions in @var{symbolname}s used in other command
-line options. The question mark (?), asterisk (*), backslash (\) and
-square brackets ([]) operators can be used anywhere in the symbol
-name. If the first character of the symbol name is the exclamation
-point (!) then the sense of the switch is reversed for that symbol.
-For example:
-
-@smallexample
- -w -W !foo -W fo*
-@end smallexample
-
-would cause objcopy to weaken all symbols that start with ``fo''
-except for the symbol ``foo''.
-
-@item -x
-@itemx --discard-all
-Do not copy non-global symbols from the source file.
-@c FIXME any reason to prefer "non-global" to "local" here?
-
-@item -X
-@itemx --discard-locals
-Do not copy compiler-generated local symbols.
-(These usually start with @samp{L} or @samp{.}.)
-
-@item -b @var{byte}
-@itemx --byte=@var{byte}
-Keep only every @var{byte}th byte of the input file (header data is not
-affected). @var{byte} can be in the range from 0 to @var{interleave}-1,
-where @var{interleave} is given by the @option{-i} or @option{--interleave}
-option, or the default of 4. This option is useful for creating files
-to program @sc{rom}. It is typically used with an @code{srec} output
-target.
-
-@item -i @var{interleave}
-@itemx --interleave=@var{interleave}
-Only copy one out of every @var{interleave} bytes. Select which byte to
-copy with the @option{-b} or @option{--byte} option. The default is 4.
-@command{objcopy} ignores this option if you do not specify either @option{-b} or
-@option{--byte}.
-
-@item -p
-@itemx --preserve-dates
-Set the access and modification dates of the output file to be the same
-as those of the input file.
-
-@item --debugging
-Convert debugging information, if possible. This is not the default
-because only certain debugging formats are supported, and the
-conversion process can be time consuming.
-
-@item --gap-fill @var{val}
-Fill gaps between sections with @var{val}. This operation applies to
-the @emph{load address} (LMA) of the sections. It is done by increasing
-the size of the section with the lower address, and filling in the extra
-space created with @var{val}.
-
-@item --pad-to @var{address}
-Pad the output file up to the load address @var{address}. This is
-done by increasing the size of the last section. The extra space is
-filled in with the value specified by @option{--gap-fill} (default zero).
-
-@item --set-start @var{val}
-Set the start address of the new file to @var{val}. Not all object file
-formats support setting the start address.
-
-@item --change-start @var{incr}
-@itemx --adjust-start @var{incr}
-@cindex changing start address
-Change the start address by adding @var{incr}. Not all object file
-formats support setting the start address.
-
-@item --change-addresses @var{incr}
-@itemx --adjust-vma @var{incr}
-@cindex changing object addresses
-Change the VMA and LMA addresses of all sections, as well as the start
-address, by adding @var{incr}. Some object file formats do not permit
-section addresses to be changed arbitrarily. Note that this does not
-relocate the sections; if the program expects sections to be loaded at a
-certain address, and this option is used to change the sections such
-that they are loaded at a different address, the program may fail.
-
-@item --change-section-address @var{section}@{=,+,-@}@var{val}
-@itemx --adjust-section-vma @var{section}@{=,+,-@}@var{val}
-@cindex changing section address
-Set or change both the VMA address and the LMA address of the named
-@var{section}. If @samp{=} is used, the section address is set to
-@var{val}. Otherwise, @var{val} is added to or subtracted from the
-section address. See the comments under @option{--change-addresses},
-above. If @var{section} does not exist in the input file, a warning will
-be issued, unless @option{--no-change-warnings} is used.
-
-@item --change-section-lma @var{section}@{=,+,-@}@var{val}
-@cindex changing section LMA
-Set or change the LMA address of the named @var{section}. The LMA
-address is the address where the section will be loaded into memory at
-program load time. Normally this is the same as the VMA address, which
-is the address of the section at program run time, but on some systems,
-especially those where a program is held in ROM, the two can be
-different. If @samp{=} is used, the section address is set to
-@var{val}. Otherwise, @var{val} is added to or subtracted from the
-section address. See the comments under @option{--change-addresses},
-above. If @var{section} does not exist in the input file, a warning
-will be issued, unless @option{--no-change-warnings} is used.
-
-@item --change-section-vma @var{section}@{=,+,-@}@var{val}
-@cindex changing section VMA
-Set or change the VMA address of the named @var{section}. The VMA
-address is the address where the section will be located once the
-program has started executing. Normally this is the same as the LMA
-address, which is the address where the section will be loaded into
-memory, but on some systems, especially those where a program is held in
-ROM, the two can be different. If @samp{=} is used, the section address
-is set to @var{val}. Otherwise, @var{val} is added to or subtracted
-from the section address. See the comments under
-@option{--change-addresses}, above. If @var{section} does not exist in
-the input file, a warning will be issued, unless
-@option{--no-change-warnings} is used.
-
-@item --change-warnings
-@itemx --adjust-warnings
-If @option{--change-section-address} or @option{--change-section-lma} or
-@option{--change-section-vma} is used, and the named section does not
-exist, issue a warning. This is the default.
-
-@item --no-change-warnings
-@itemx --no-adjust-warnings
-Do not issue a warning if @option{--change-section-address} or
-@option{--adjust-section-lma} or @option{--adjust-section-vma} is used, even
-if the named section does not exist.
-
-@item --set-section-flags @var{section}=@var{flags}
-Set the flags for the named section. The @var{flags} argument is a
-comma separated string of flag names. The recognized names are
-@samp{alloc}, @samp{contents}, @samp{load}, @samp{noload},
-@samp{readonly}, @samp{code}, @samp{data}, @samp{rom}, @samp{share}, and
-@samp{debug}. You can set the @samp{contents} flag for a section which
-does not have contents, but it is not meaningful to clear the
-@samp{contents} flag of a section which does have contents--just remove
-the section instead. Not all flags are meaningful for all object file
-formats.
-
-@item --add-section @var{sectionname}=@var{filename}
-Add a new section named @var{sectionname} while copying the file. The
-contents of the new section are taken from the file @var{filename}. The
-size of the section will be the size of the file. This option only
-works on file formats which can support sections with arbitrary names.
-
-@item --rename-section @var{oldname}=@var{newname}[,@var{flags}]
-Rename a section from @var{oldname} to @var{newname}, optionally
-changing the section's flags to @var{flags} in the process. This has
-the advantage over usng a linker script to perform the rename in that
-the output stays as an object file and does not become a linked
-executable.
-
-This option is particularly helpful when the input format is binary,
-since this will always create a section called .data. If for example,
-you wanted instead to create a section called .rodata containing binary
-data you could use the following command line to achieve it:
-
-@smallexample
- objcopy -I binary -O <output_format> -B <architecture> \
- --rename-section .data=.rodata,alloc,load,readonly,data,contents \
- <input_binary_file> <output_object_file>
-@end smallexample
-
-@item --change-leading-char
-Some object file formats use special characters at the start of
-symbols. The most common such character is underscore, which compilers
-often add before every symbol. This option tells @command{objcopy} to
-change the leading character of every symbol when it converts between
-object file formats. If the object file formats use the same leading
-character, this option has no effect. Otherwise, it will add a
-character, or remove a character, or change a character, as
-appropriate.
-
-@item --remove-leading-char
-If the first character of a global symbol is a special symbol leading
-character used by the object file format, remove the character. The
-most common symbol leading character is underscore. This option will
-remove a leading underscore from all global symbols. This can be useful
-if you want to link together objects of different file formats with
-different conventions for symbol names. This is different from
-@option{--change-leading-char} because it always changes the symbol name
-when appropriate, regardless of the object file format of the output
-file.
-
-@item --srec-len=@var{ival}
-Meaningful only for srec output. Set the maximum length of the Srecords
-being produced to @var{ival}. This length covers both address, data and
-crc fields.
-
-@item --srec-forceS3
-Meaningful only for srec output. Avoid generation of S1/S2 records,
-creating S3-only record format.
-
-@item --redefine-sym @var{old}=@var{new}
-Change the name of a symbol @var{old}, to @var{new}. This can be useful
-when one is trying link two things together for which you have no
-source, and there are name collisions.
-
-@item --redefine-syms=@var{filename}
-Apply @option{--redefine-sym} to each symbol pair "@var{old} @var{new}"
-listed in the file @var{filename}. @var{filename} is simply a flat file,
-with one symbol pair per line. Line comments may be introduced by the hash
-character. This option may be given more than once.
-
-@item --weaken
-Change all global symbols in the file to be weak. This can be useful
-when building an object which will be linked against other objects using
-the @option{-R} option to the linker. This option is only effective when
-using an object file format which supports weak symbols.
-
-@item --keep-symbols=@var{filename}
-Apply @option{--keep-symbol} option to each symbol listed in the file
-@var{filename}. @var{filename} is simply a flat file, with one symbol
-name per line. Line comments may be introduced by the hash character.
-This option may be given more than once.
-
-@item --strip-symbols=@var{filename}
-Apply @option{--strip-symbol} option to each symbol listed in the file
-@var{filename}. @var{filename} is simply a flat file, with one symbol
-name per line. Line comments may be introduced by the hash character.
-This option may be given more than once.
-
-@item --strip-unneeded-symbols=@var{filename}
-Apply @option{--strip-unneeded-symbol} option to each symbol listed in
-the file @var{filename}. @var{filename} is simply a flat file, with one
-symbol name per line. Line comments may be introduced by the hash
-character. This option may be given more than once.
-
-@item --keep-global-symbols=@var{filename}
-Apply @option{--keep-global-symbol} option to each symbol listed in the
-file @var{filename}. @var{filename} is simply a flat file, with one
-symbol name per line. Line comments may be introduced by the hash
-character. This option may be given more than once.
-
-@item --localize-symbols=@var{filename}
-Apply @option{--localize-symbol} option to each symbol listed in the file
-@var{filename}. @var{filename} is simply a flat file, with one symbol
-name per line. Line comments may be introduced by the hash character.
-This option may be given more than once.
-
-@item --globalize-symbols=@var{filename}
-Apply @option{--globalize-symbol} option to each symbol listed in the file
-@var{filename}. @var{filename} is simply a flat file, with one symbol
-name per line. Line comments may be introduced by the hash character.
-This option may be given more than once.
-
-@item --weaken-symbols=@var{filename}
-Apply @option{--weaken-symbol} option to each symbol listed in the file
-@var{filename}. @var{filename} is simply a flat file, with one symbol
-name per line. Line comments may be introduced by the hash character.
-This option may be given more than once.
-
-@item --alt-machine-code=@var{index}
-If the output architecture has alternate machine codes, use the
-@var{index}th code instead of the default one. This is useful in case
-a machine is assigned an official code and the tool-chain adopts the
-new code, but other applications still depend on the original code
-being used. For ELF based architectures if the @var{index}
-alternative does not exist then the value is treated as an absolute
-number to be stored in the e_machine field of the ELF header.
-
-@item --writable-text
-Mark the output text as writable. This option isn't meaningful for all
-object file formats.
-
-@item --readonly-text
-Make the output text write protected. This option isn't meaningful for all
-object file formats.
-
-@item --pure
-Mark the output file as demand paged. This option isn't meaningful for all
-object file formats.
-
-@item --impure
-Mark the output file as impure. This option isn't meaningful for all
-object file formats.
-
-@item --prefix-symbols=@var{string}
-Prefix all symbols in the output file with @var{string}.
-
-@item --prefix-sections=@var{string}
-Prefix all section names in the output file with @var{string}.
-
-@item --prefix-alloc-sections=@var{string}
-Prefix all the names of all allocated sections in the output file with
-@var{string}.
-
-@item --add-gnu-debuglink=@var{path-to-file}
-Creates a .gnu_debuglink section which contains a reference to @var{path-to-file}
-and adds it to the output file.
-
-@item --keep-file-symbols
-When stripping a file, perhaps with @option{--strip-debug} or
-@option{--strip-unneeded}, retain any symbols specifying source file names,
-which would otherwise get stripped.
-
-@item --only-keep-debug
-Strip a file, removing contents of any sections that would not be
-stripped by @option{--strip-debug} and leaving the debugging sections
-intact.
-
-The intention is that this option will be used in conjunction with
-@option{--add-gnu-debuglink} to create a two part executable. One a
-stripped binary which will occupy less space in RAM and in a
-distribution and the second a debugging information file which is only
-needed if debugging abilities are required. The suggested procedure
-to create these files is as follows:
-
-@enumerate
-@item Link the executable as normal. Assuming that is is called
-@code{foo} then...
-@item Run @code{objcopy --only-keep-debug foo foo.dbg} to
-create a file containing the debugging info.
-@item Run @code{objcopy --strip-debug foo} to create a
-stripped executable.
-@item Run @code{objcopy --add-gnu-debuglink=foo.dbg foo}
-to add a link to the debugging info into the stripped executable.
-@end enumerate
-
-Note - the choice of @code{.dbg} as an extension for the debug info
-file is arbitrary. Also the @code{--only-keep-debug} step is
-optional. You could instead do this:
-
-@enumerate
-@item Link the executable as normal.
-@item Copy @code{foo} to @code{foo.full}
-@item Run @code{objcopy --strip-debug foo}
-@item Run @code{objcopy --add-gnu-debuglink=foo.full foo}
-@end enumerate
-
-i.e. the file pointed to by the @option{--add-gnu-debuglink} can be the
-full executable. It does not have to be a file created by the
-@option{--only-keep-debug} switch.
-
-@item -V
-@itemx --version
-Show the version number of @command{objcopy}.
-
-@item -v
-@itemx --verbose
-Verbose output: list all object files modified. In the case of
-archives, @samp{objcopy -V} lists all members of the archive.
-
-@item --help
-Show a summary of the options to @command{objcopy}.
-
-@item --info
-Display a list showing all architectures and object formats available.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO objcopy
-ld(1), objdump(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node objdump
-@chapter objdump
-
-@cindex object file information
-@kindex objdump
-
-@c man title objdump display information from object files.
-
-@smallexample
-@c man begin SYNOPSIS objdump
-objdump [@option{-a}|@option{--archive-headers}]
- [@option{-b} @var{bfdname}|@option{--target=@var{bfdname}}]
- [@option{-C}|@option{--demangle}[=@var{style}] ]
- [@option{-d}|@option{--disassemble}]
- [@option{-D}|@option{--disassemble-all}]
- [@option{-z}|@option{--disassemble-zeroes}]
- [@option{-EB}|@option{-EL}|@option{--endian=}@{big | little @}]
- [@option{-f}|@option{--file-headers}]
- [@option{--file-start-context}]
- [@option{-g}|@option{--debugging}]
- [@option{-e}|@option{--debugging-tags}]
- [@option{-h}|@option{--section-headers}|@option{--headers}]
- [@option{-i}|@option{--info}]
- [@option{-j} @var{section}|@option{--section=}@var{section}]
- [@option{-l}|@option{--line-numbers}]
- [@option{-S}|@option{--source}]
- [@option{-m} @var{machine}|@option{--architecture=}@var{machine}]
- [@option{-M} @var{options}|@option{--disassembler-options=}@var{options}]
- [@option{-p}|@option{--private-headers}]
- [@option{-r}|@option{--reloc}]
- [@option{-R}|@option{--dynamic-reloc}]
- [@option{-s}|@option{--full-contents}]
- [@option{-W}|@option{--dwarf}]
- [@option{-G}|@option{--stabs}]
- [@option{-t}|@option{--syms}]
- [@option{-T}|@option{--dynamic-syms}]
- [@option{-x}|@option{--all-headers}]
- [@option{-w}|@option{--wide}]
- [@option{--start-address=}@var{address}]
- [@option{--stop-address=}@var{address}]
- [@option{--prefix-addresses}]
- [@option{--[no-]show-raw-insn}]
- [@option{--adjust-vma=}@var{offset}]
- [@option{--special-syms}]
- [@option{-V}|@option{--version}]
- [@option{-H}|@option{--help}]
- @var{objfile}@dots{}
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION objdump
-
-@command{objdump} displays information about one or more object files.
-The options control what particular information to display. This
-information is mostly useful to programmers who are working on the
-compilation tools, as opposed to programmers who just want their
-program to compile and work.
-
-@var{objfile}@dots{} are the object files to be examined. When you
-specify archives, @command{objdump} shows information on each of the member
-object files.
-
-@c man end
-
-@c man begin OPTIONS objdump
-
-The long and short forms of options, shown here as alternatives, are
-equivalent. At least one option from the list
-@option{-a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-r,-R,-s,-S,-t,-T,-V,-x} must be given.
-
-@table @env
-@item -a
-@itemx --archive-header
-@cindex archive headers
-If any of the @var{objfile} files are archives, display the archive
-header information (in a format similar to @samp{ls -l}). Besides the
-information you could list with @samp{ar tv}, @samp{objdump -a} shows
-the object file format of each archive member.
-
-@item --adjust-vma=@var{offset}
-@cindex section addresses in objdump
-@cindex VMA in objdump
-When dumping information, first add @var{offset} to all the section
-addresses. This is useful if the section addresses do not correspond to
-the symbol table, which can happen when putting sections at particular
-addresses when using a format which can not represent section addresses,
-such as a.out.
-
-@item -b @var{bfdname}
-@itemx --target=@var{bfdname}
-@cindex object code format
-Specify that the object-code format for the object files is
-@var{bfdname}. This option may not be necessary; @var{objdump} can
-automatically recognize many formats.
-
-For example,
-@example
-objdump -b oasys -m vax -h fu.o
-@end example
-@noindent
-displays summary information from the section headers (@option{-h}) of
-@file{fu.o}, which is explicitly identified (@option{-m}) as a VAX object
-file in the format produced by Oasys compilers. You can list the
-formats available with the @option{-i} option.
-@xref{Target Selection}, for more information.
-
-@item -C
-@itemx --demangle[=@var{style}]
-@cindex demangling in objdump
-Decode (@dfn{demangle}) low-level symbol names into user-level names.
-Besides removing any initial underscore prepended by the system, this
-makes C++ function names readable. Different compilers have different
-mangling styles. The optional demangling style argument can be used to
-choose an appropriate demangling style for your compiler. @xref{c++filt},
-for more information on demangling.
-
-@item -g
-@itemx --debugging
-Display debugging information. This attempts to parse debugging
-information stored in the file and print it out using a C like syntax.
-Only certain types of debugging information have been implemented.
-Some other types are supported by @command{readelf -w}.
-@xref{readelf}.
-
-@item -e
-@itemx --debugging-tags
-Like @option{-g}, but the information is generated in a format compatible
-with ctags tool.
-
-@item -d
-@itemx --disassemble
-@cindex disassembling object code
-@cindex machine instructions
-Display the assembler mnemonics for the machine instructions from
-@var{objfile}. This option only disassembles those sections which are
-expected to contain instructions.
-
-@item -D
-@itemx --disassemble-all
-Like @option{-d}, but disassemble the contents of all sections, not just
-those expected to contain instructions.
-
-@item --prefix-addresses
-When disassembling, print the complete address on each line. This is
-the older disassembly format.
-
-@item -EB
-@itemx -EL
-@itemx --endian=@{big|little@}
-@cindex endianness
-@cindex disassembly endianness
-Specify the endianness of the object files. This only affects
-disassembly. This can be useful when disassembling a file format which
-does not describe endianness information, such as S-records.
-
-@item -f
-@itemx --file-headers
-@cindex object file header
-Display summary information from the overall header of
-each of the @var{objfile} files.
-
-@item --file-start-context
-@cindex source code context
-Specify that when displaying interlisted source code/disassembly
-(assumes @option{-S}) from a file that has not yet been displayed, extend the
-context to the start of the file.
-
-@item -h
-@itemx --section-headers
-@itemx --headers
-@cindex section headers
-Display summary information from the section headers of the
-object file.
-
-File segments may be relocated to nonstandard addresses, for example by
-using the @option{-Ttext}, @option{-Tdata}, or @option{-Tbss} options to
-@command{ld}. However, some object file formats, such as a.out, do not
-store the starting address of the file segments. In those situations,
-although @command{ld} relocates the sections correctly, using @samp{objdump
--h} to list the file section headers cannot show the correct addresses.
-Instead, it shows the usual addresses, which are implicit for the
-target.
-
-@item -H
-@itemx --help
-Print a summary of the options to @command{objdump} and exit.
-
-@item -i
-@itemx --info
-@cindex architectures available
-@cindex object formats available
-Display a list showing all architectures and object formats available
-for specification with @option{-b} or @option{-m}.
-
-@item -j @var{name}
-@itemx --section=@var{name}
-@cindex section information
-Display information only for section @var{name}.
-
-@item -l
-@itemx --line-numbers
-@cindex source filenames for object files
-Label the display (using debugging information) with the filename and
-source line numbers corresponding to the object code or relocs shown.
-Only useful with @option{-d}, @option{-D}, or @option{-r}.
-
-@item -m @var{machine}
-@itemx --architecture=@var{machine}
-@cindex architecture
-@cindex disassembly architecture
-Specify the architecture to use when disassembling object files. This
-can be useful when disassembling object files which do not describe
-architecture information, such as S-records. You can list the available
-architectures with the @option{-i} option.
-
-@item -M @var{options}
-@itemx --disassembler-options=@var{options}
-Pass target specific information to the disassembler. Only supported on
-some targets. If it is necessary to specify more than one
-disassembler option then multiple @option{-M} options can be used or
-can be placed together into a comma separated list.
-
-If the target is an ARM architecture then this switch can be used to
-select which register name set is used during disassembler. Specifying
-@option{-M reg-names-std} (the default) will select the register names as
-used in ARM's instruction set documentation, but with register 13 called
-'sp', register 14 called 'lr' and register 15 called 'pc'. Specifying
-@option{-M reg-names-apcs} will select the name set used by the ARM
-Procedure Call Standard, whilst specifying @option{-M reg-names-raw} will
-just use @samp{r} followed by the register number.
-
-There are also two variants on the APCS register naming scheme enabled
-by @option{-M reg-names-atpcs} and @option{-M reg-names-special-atpcs} which
-use the ARM/Thumb Procedure Call Standard naming conventions. (Either
-with the normal register names or the special register names).
-
-This option can also be used for ARM architectures to force the
-disassembler to interpret all instructions as Thumb instructions by
-using the switch @option{--disassembler-options=force-thumb}. This can be
-useful when attempting to disassemble thumb code produced by other
-compilers.
-
-For the x86, some of the options duplicate functions of the @option{-m}
-switch, but allow finer grained control. Multiple selections from the
-following may be specified as a comma separated string.
-@option{x86-64}, @option{i386} and @option{i8086} select disassembly for
-the given architecture. @option{intel} and @option{att} select between
-intel syntax mode and AT&T syntax mode. @option{addr32},
-@option{addr16}, @option{data32} and @option{data16} specify the default
-address size and operand size. These four options will be overridden if
-@option{x86-64}, @option{i386} or @option{i8086} appear later in the
-option string. Lastly, @option{suffix}, when in AT&T mode,
-instructs the disassembler to print a mnemonic suffix even when the
-suffix could be inferred by the operands.
-
-For PPC, @option{booke}, @option{booke32} and @option{booke64} select
-disassembly of BookE instructions. @option{32} and @option{64} select
-PowerPC and PowerPC64 disassembly, respectively. @option{e300} selects
-disassembly for the e300 family.
-
-For MIPS, this option controls the printing of instruction mneumonic
-names and register names in disassembled instructions. Multiple
-selections from the following may be specified as a comma separated
-string, and invalid options are ignored:
-
-@table @code
-@item no-aliases
-Print the 'raw' instruction mneumonic instead of some pseudo
-instruction mneumonic. I.E. print 'daddu' or 'or' instead of 'move',
-'sll' instead of 'nop', etc.
-
-@item gpr-names=@var{ABI}
-Print GPR (general-purpose register) names as appropriate
-for the specified ABI. By default, GPR names are selected according to
-the ABI of the binary being disassembled.
-
-@item fpr-names=@var{ABI}
-Print FPR (floating-point register) names as
-appropriate for the specified ABI. By default, FPR numbers are printed
-rather than names.
-
-@item cp0-names=@var{ARCH}
-Print CP0 (system control coprocessor; coprocessor 0) register names
-as appropriate for the CPU or architecture specified by
-@var{ARCH}. By default, CP0 register names are selected according to
-the architecture and CPU of the binary being disassembled.
-
-@item hwr-names=@var{ARCH}
-Print HWR (hardware register, used by the @code{rdhwr} instruction) names
-as appropriate for the CPU or architecture specified by
-@var{ARCH}. By default, HWR names are selected according to
-the architecture and CPU of the binary being disassembled.
-
-@item reg-names=@var{ABI}
-Print GPR and FPR names as appropriate for the selected ABI.
-
-@item reg-names=@var{ARCH}
-Print CPU-specific register names (CP0 register and HWR names)
-as appropriate for the selected CPU or architecture.
-@end table
-
-For any of the options listed above, @var{ABI} or
-@var{ARCH} may be specified as @samp{numeric} to have numbers printed
-rather than names, for the selected types of registers.
-You can list the available values of @var{ABI} and @var{ARCH} using
-the @option{--help} option.
-
-For VAX, you can specify function entry addresses with @option{-M
-entry:0xf00ba}. You can use this multiple times to properly
-disassemble VAX binary files that don't contain symbol tables (like
-ROM dumps). In these cases, the function entry mask would otherwise
-be decoded as VAX instructions, which would probably lead the the rest
-of the function being wrongly disassembled.
-
-@item -p
-@itemx --private-headers
-Print information that is specific to the object file format. The exact
-information printed depends upon the object file format. For some
-object file formats, no additional information is printed.
-
-@item -r
-@itemx --reloc
-@cindex relocation entries, in object file
-Print the relocation entries of the file. If used with @option{-d} or
-@option{-D}, the relocations are printed interspersed with the
-disassembly.
-
-@item -R
-@itemx --dynamic-reloc
-@cindex dynamic relocation entries, in object file
-Print the dynamic relocation entries of the file. This is only
-meaningful for dynamic objects, such as certain types of shared
-libraries.
-
-@item -s
-@itemx --full-contents
-@cindex sections, full contents
-@cindex object file sections
-Display the full contents of any sections requested. By default all
-non-empty sections are displayed.
-
-@item -S
-@itemx --source
-@cindex source disassembly
-@cindex disassembly, with source
-Display source code intermixed with disassembly, if possible. Implies
-@option{-d}.
-
-@item --show-raw-insn
-When disassembling instructions, print the instruction in hex as well as
-in symbolic form. This is the default except when
-@option{--prefix-addresses} is used.
-
-@item --no-show-raw-insn
-When disassembling instructions, do not print the instruction bytes.
-This is the default when @option{--prefix-addresses} is used.
-
-@item -W
-@itemx --dwarf
-@cindex DWARF
-@cindex debug symbols
-Displays the contents of the DWARF debug sections in the file, if any
-are present.
-
-@item -G
-@itemx --stabs
-@cindex stab
-@cindex .stab
-@cindex debug symbols
-@cindex ELF object file format
-Display the full contents of any sections requested. Display the
-contents of the .stab and .stab.index and .stab.excl sections from an
-ELF file. This is only useful on systems (such as Solaris 2.0) in which
-@code{.stab} debugging symbol-table entries are carried in an ELF
-section. In most other file formats, debugging symbol-table entries are
-interleaved with linkage symbols, and are visible in the @option{--syms}
-output.
-@ifclear man
-For more information on stabs symbols, see @ref{Top,Stabs,Stabs
-Overview,stabs.info, The ``stabs'' debug format}.
-@end ifclear
-
-@item --start-address=@var{address}
-@cindex start-address
-Start displaying data at the specified address. This affects the output
-of the @option{-d}, @option{-r} and @option{-s} options.
-
-@item --stop-address=@var{address}
-@cindex stop-address
-Stop displaying data at the specified address. This affects the output
-of the @option{-d}, @option{-r} and @option{-s} options.
-
-@item -t
-@itemx --syms
-@cindex symbol table entries, printing
-Print the symbol table entries of the file.
-This is similar to the information provided by the @samp{nm} program.
-
-@item -T
-@itemx --dynamic-syms
-@cindex dynamic symbol table entries, printing
-Print the dynamic symbol table entries of the file. This is only
-meaningful for dynamic objects, such as certain types of shared
-libraries. This is similar to the information provided by the @samp{nm}
-program when given the @option{-D} (@option{--dynamic}) option.
-
-@item --special-syms
-When displaying symbols include those which the target considers to be
-special in some way and which would not normally be of interest to the
-user.
-
-@item -V
-@itemx --version
-Print the version number of @command{objdump} and exit.
-
-@item -x
-@itemx --all-headers
-@cindex all header information, object file
-@cindex header information, all
-Display all available header information, including the symbol table and
-relocation entries. Using @option{-x} is equivalent to specifying all of
-@option{-a -f -h -p -r -t}.
-
-@item -w
-@itemx --wide
-@cindex wide output, printing
-Format some lines for output devices that have more than 80 columns.
-Also do not truncate symbol names when they are displayed.
-
-@item -z
-@itemx --disassemble-zeroes
-Normally the disassembly output will skip blocks of zeroes. This
-option directs the disassembler to disassemble those blocks, just like
-any other data.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO objdump
-nm(1), readelf(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node ranlib
-@chapter ranlib
-
-@kindex ranlib
-@cindex archive contents
-@cindex symbol index
-
-@c man title ranlib generate index to archive.
-
-@smallexample
-@c man begin SYNOPSIS ranlib
-ranlib [@option{-vV}] @var{archive}
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION ranlib
-
-@command{ranlib} generates an index to the contents of an archive and
-stores it in the archive. The index lists each symbol defined by a
-member of an archive that is a relocatable object file.
-
-You may use @samp{nm -s} or @samp{nm --print-armap} to list this index.
-
-An archive with such an index speeds up linking to the library and
-allows routines in the library to call each other without regard to
-their placement in the archive.
-
-The @sc{gnu} @command{ranlib} program is another form of @sc{gnu} @command{ar}; running
-@command{ranlib} is completely equivalent to executing @samp{ar -s}.
-@xref{ar}.
-
-@c man end
-
-@c man begin OPTIONS ranlib
-
-@table @env
-@item -v
-@itemx -V
-@itemx --version
-Show the version number of @command{ranlib}.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO ranlib
-ar(1), nm(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node size
-@chapter size
-
-@kindex size
-@cindex section sizes
-
-@c man title size list section sizes and total size.
-
-@smallexample
-@c man begin SYNOPSIS size
-size [@option{-A}|@option{-B}|@option{--format=}@var{compatibility}]
- [@option{--help}]
- [@option{-d}|@option{-o}|@option{-x}|@option{--radix=}@var{number}]
- [@option{-t}|@option{--totals}]
- [@option{--target=}@var{bfdname}] [@option{-V}|@option{--version}]
- [@var{objfile}@dots{}]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION size
-
-The @sc{gnu} @command{size} utility lists the section sizes---and the total
-size---for each of the object or archive files @var{objfile} in its
-argument list. By default, one line of output is generated for each
-object file or each module in an archive.
-
-@var{objfile}@dots{} are the object files to be examined.
-If none are specified, the file @code{a.out} will be used.
-
-@c man end
-
-@c man begin OPTIONS size
-
-The command line options have the following meanings:
-
-@table @env
-@item -A
-@itemx -B
-@itemx --format=@var{compatibility}
-@cindex @command{size} display format
-Using one of these options, you can choose whether the output from @sc{gnu}
-@command{size} resembles output from System V @command{size} (using @option{-A},
-or @option{--format=sysv}), or Berkeley @command{size} (using @option{-B}, or
-@option{--format=berkeley}). The default is the one-line format similar to
-Berkeley's.
-@c Bonus for doc-source readers: you can also say --format=strange (or
-@c anything else that starts with 's') for sysv, and --format=boring (or
-@c anything else that starts with 'b') for Berkeley.
-
-Here is an example of the Berkeley (default) format of output from
-@command{size}:
-@smallexample
-$ size --format=Berkeley ranlib size
-text data bss dec hex filename
-294880 81920 11592 388392 5ed28 ranlib
-294880 81920 11888 388688 5ee50 size
-@end smallexample
-
-@noindent
-This is the same data, but displayed closer to System V conventions:
-
-@smallexample
-$ size --format=SysV ranlib size
-ranlib :
-section size addr
-.text 294880 8192
-.data 81920 303104
-.bss 11592 385024
-Total 388392
-
-
-size :
-section size addr
-.text 294880 8192
-.data 81920 303104
-.bss 11888 385024
-Total 388688
-@end smallexample
-
-@item --help
-Show a summary of acceptable arguments and options.
-
-@item -d
-@itemx -o
-@itemx -x
-@itemx --radix=@var{number}
-@cindex @command{size} number format
-@cindex radix for section sizes
-Using one of these options, you can control whether the size of each
-section is given in decimal (@option{-d}, or @option{--radix=10}); octal
-(@option{-o}, or @option{--radix=8}); or hexadecimal (@option{-x}, or
-@option{--radix=16}). In @option{--radix=@var{number}}, only the three
-values (8, 10, 16) are supported. The total size is always given in two
-radices; decimal and hexadecimal for @option{-d} or @option{-x} output, or
-octal and hexadecimal if you're using @option{-o}.
-
-@item -t
-@itemx --totals
-Show totals of all objects listed (Berkeley format listing mode only).
-
-@item --target=@var{bfdname}
-@cindex object code format
-Specify that the object-code format for @var{objfile} is
-@var{bfdname}. This option may not be necessary; @command{size} can
-automatically recognize many formats.
-@xref{Target Selection}, for more information.
-
-@item -V
-@itemx --version
-Display the version number of @command{size}.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO size
-ar(1), objdump(1), readelf(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node strings
-@chapter strings
-@kindex strings
-@cindex listings strings
-@cindex printing strings
-@cindex strings, printing
-
-@c man title strings print the strings of printable characters in files.
-
-@smallexample
-@c man begin SYNOPSIS strings
-strings [@option{-afov}] [@option{-}@var{min-len}]
- [@option{-n} @var{min-len}] [@option{--bytes=}@var{min-len}]
- [@option{-t} @var{radix}] [@option{--radix=}@var{radix}]
- [@option{-e} @var{encoding}] [@option{--encoding=}@var{encoding}]
- [@option{-}] [@option{--all}] [@option{--print-file-name}]
- [@option{--target=}@var{bfdname}]
- [@option{--help}] [@option{--version}] @var{file}@dots{}
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION strings
-
-For each @var{file} given, @sc{gnu} @command{strings} prints the printable
-character sequences that are at least 4 characters long (or the number
-given with the options below) and are followed by an unprintable
-character. By default, it only prints the strings from the initialized
-and loaded sections of object files; for other types of files, it prints
-the strings from the whole file.
-
-@command{strings} is mainly useful for determining the contents of non-text
-files.
-
-@c man end
-
-@c man begin OPTIONS strings
-
-@table @env
-@item -a
-@itemx --all
-@itemx -
-Do not scan only the initialized and loaded sections of object files;
-scan the whole files.
-
-@item -f
-@itemx --print-file-name
-Print the name of the file before each string.
-
-@item --help
-Print a summary of the program usage on the standard output and exit.
-
-@item -@var{min-len}
-@itemx -n @var{min-len}
-@itemx --bytes=@var{min-len}
-Print sequences of characters that are at least @var{min-len} characters
-long, instead of the default 4.
-
-@item -o
-Like @samp{-t o}. Some other versions of @command{strings} have @option{-o}
-act like @samp{-t d} instead. Since we can not be compatible with both
-ways, we simply chose one.
-
-@item -t @var{radix}
-@itemx --radix=@var{radix}
-Print the offset within the file before each string. The single
-character argument specifies the radix of the offset---@samp{o} for
-octal, @samp{x} for hexadecimal, or @samp{d} for decimal.
-
-@item -e @var{encoding}
-@itemx --encoding=@var{encoding}
-Select the character encoding of the strings that are to be found.
-Possible values for @var{encoding} are: @samp{s} = single-7-bit-byte
-characters (ASCII, ISO 8859, etc., default), @samp{S} =
-single-8-bit-byte characters, @samp{b} = 16-bit bigendian, @samp{l} =
-16-bit littleendian, @samp{B} = 32-bit bigendian, @samp{L} = 32-bit
-littleendian. Useful for finding wide character strings.
-
-@item --target=@var{bfdname}
-@cindex object code format
-Specify an object code format other than your system's default format.
-@xref{Target Selection}, for more information.
-
-@item -v
-@itemx --version
-Print the program version number on the standard output and exit.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO strings
-ar(1), nm(1), objdump(1), ranlib(1), readelf(1)
-and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node strip
-@chapter strip
-
-@kindex strip
-@cindex removing symbols
-@cindex discarding symbols
-@cindex symbols, discarding
-
-@c man title strip Discard symbols from object files.
-
-@smallexample
-@c man begin SYNOPSIS strip
-strip [@option{-F} @var{bfdname} |@option{--target=}@var{bfdname}]
- [@option{-I} @var{bfdname} |@option{--input-target=}@var{bfdname}]
- [@option{-O} @var{bfdname} |@option{--output-target=}@var{bfdname}]
- [@option{-s}|@option{--strip-all}]
- [@option{-S}|@option{-g}|@option{-d}|@option{--strip-debug}]
- [@option{-K} @var{symbolname} |@option{--keep-symbol=}@var{symbolname}]
- [@option{-N} @var{symbolname} |@option{--strip-symbol=}@var{symbolname}]
- [@option{-w}|@option{--wildcard}]
- [@option{-x}|@option{--discard-all}] [@option{-X} |@option{--discard-locals}]
- [@option{-R} @var{sectionname} |@option{--remove-section=}@var{sectionname}]
- [@option{-o} @var{file}] [@option{-p}|@option{--preserve-dates}]
- [@option{--keep-file-symbols}]
- [@option{--only-keep-debug}]
- [@option{-v} |@option{--verbose}] [@option{-V}|@option{--version}]
- [@option{--help}] [@option{--info}]
- @var{objfile}@dots{}
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION strip
-
-@sc{gnu} @command{strip} discards all symbols from object files
-@var{objfile}. The list of object files may include archives.
-At least one object file must be given.
-
-@command{strip} modifies the files named in its argument,
-rather than writing modified copies under different names.
-
-@c man end
-
-@c man begin OPTIONS strip
-
-@table @env
-@item -F @var{bfdname}
-@itemx --target=@var{bfdname}
-Treat the original @var{objfile} as a file with the object
-code format @var{bfdname}, and rewrite it in the same format.
-@xref{Target Selection}, for more information.
-
-@item --help
-Show a summary of the options to @command{strip} and exit.
-
-@item --info
-Display a list showing all architectures and object formats available.
-
-@item -I @var{bfdname}
-@itemx --input-target=@var{bfdname}
-Treat the original @var{objfile} as a file with the object
-code format @var{bfdname}.
-@xref{Target Selection}, for more information.
-
-@item -O @var{bfdname}
-@itemx --output-target=@var{bfdname}
-Replace @var{objfile} with a file in the output format @var{bfdname}.
-@xref{Target Selection}, for more information.
-
-@item -R @var{sectionname}
-@itemx --remove-section=@var{sectionname}
-Remove any section named @var{sectionname} from the output file. This
-option may be given more than once. Note that using this option
-inappropriately may make the output file unusable.
-
-@item -s
-@itemx --strip-all
-Remove all symbols.
-
-@item -g
-@itemx -S
-@itemx -d
-@itemx --strip-debug
-Remove debugging symbols only.
-
-@item --strip-unneeded
-Remove all symbols that are not needed for relocation processing.
-
-@item -K @var{symbolname}
-@itemx --keep-symbol=@var{symbolname}
-When stripping symbols, keep symbol @var{symbolname} even if it would
-normally be stripped. This option may be given more than once.
-
-@item -N @var{symbolname}
-@itemx --strip-symbol=@var{symbolname}
-Remove symbol @var{symbolname} from the source file. This option may be
-given more than once, and may be combined with strip options other than
-@option{-K}.
-
-@item -o @var{file}
-Put the stripped output in @var{file}, rather than replacing the
-existing file. When this argument is used, only one @var{objfile}
-argument may be specified.
-
-@item -p
-@itemx --preserve-dates
-Preserve the access and modification dates of the file.
-
-@item -w
-@itemx --wildcard
-Permit regular expressions in @var{symbolname}s used in other command
-line options. The question mark (?), asterisk (*), backslash (\) and
-square brackets ([]) operators can be used anywhere in the symbol
-name. If the first character of the symbol name is the exclamation
-point (!) then the sense of the switch is reversed for that symbol.
-For example:
-
-@smallexample
- -w -K !foo -K fo*
-@end smallexample
-
-would cause strip to only keep symbols that start with the letters
-``fo'', but to discard the symbol ``foo''.
-
-@item -x
-@itemx --discard-all
-Remove non-global symbols.
-
-@item -X
-@itemx --discard-locals
-Remove compiler-generated local symbols.
-(These usually start with @samp{L} or @samp{.}.)
-
-@item --keep-file-symbols
-When stripping a file, perhaps with @option{--strip-debug} or
-@option{--strip-unneeded}, retain any symbols specifying source file names,
-which would otherwise get stripped.
-
-@item --only-keep-debug
-Strip a file, removing any sections that would be stripped by
-@option{--strip-debug} and leaving the debugging sections.
-
-The intention is that this option will be used in conjunction with
-@option{--add-gnu-debuglink} to create a two part executable. One a
-stripped binary which will occupy less space in RAM and in a
-distribution and the second a debugging information file which is only
-needed if debugging abilities are required. The suggested procedure
-to create these files is as follows:
-
-@enumerate
-@item Link the executable as normal. Assuming that is is called
-@code{foo} then...
-@item Run @code{objcopy --only-keep-debug foo foo.dbg} to
-create a file containing the debugging info.
-@item Run @code{objcopy --strip-debug foo} to create a
-stripped executable.
-@item Run @code{objcopy --add-gnu-debuglink=foo.dbg foo}
-to add a link to the debugging info into the stripped executable.
-@end enumerate
-
-Note - the choice of @code{.dbg} as an extension for the debug info
-file is arbitrary. Also the @code{--only-keep-debug} step is
-optional. You could instead do this:
-
-@enumerate
-@item Link the executable as normal.
-@item Copy @code{foo} to @code{foo.full}
-@item Run @code{strip --strip-debug foo}
-@item Run @code{objcopy --add-gnu-debuglink=foo.full foo}
-@end enumerate
-
-ie the file pointed to by the @option{--add-gnu-debuglink} can be the
-full executable. It does not have to be a file created by the
-@option{--only-keep-debug} switch.
-
-@item -V
-@itemx --version
-Show the version number for @command{strip}.
-
-@item -v
-@itemx --verbose
-Verbose output: list all object files modified. In the case of
-archives, @samp{strip -v} lists all members of the archive.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO strip
-the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node c++filt, addr2line, strip, Top
-@chapter c++filt
-
-@kindex c++filt
-@cindex demangling C++ symbols
-
-@c man title cxxfilt Demangle C++ and Java symbols.
-
-@smallexample
-@c man begin SYNOPSIS cxxfilt
-c++filt [@option{-_}|@option{--strip-underscores}]
- [@option{-n}|@option{--no-strip-underscores}]
- [@option{-p}|@option{--no-params}]
- [@option{-t}|@option{--types}]
- [@option{-i}|@option{--no-verbose}]
- [@option{-s} @var{format}|@option{--format=}@var{format}]
- [@option{--help}] [@option{--version}] [@var{symbol}@dots{}]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION cxxfilt
-
-@kindex cxxfilt
-The C++ and Java languages provide function overloading, which means
-that you can write many functions with the same name, providing that
-each function takes parameters of different types. In order to be
-able to distinguish these similarly named functions C++ and Java
-encode them into a low-level assembler name which uniquely identifies
-each different version. This process is known as @dfn{mangling}. The
-@command{c++filt}
-@footnote{MS-DOS does not allow @kbd{+} characters in file names, so on
-MS-DOS this program is named @command{CXXFILT}.}
-program does the inverse mapping: it decodes (@dfn{demangles}) low-level
-names into user-level names so that they can be read.
-
-Every alphanumeric word (consisting of letters, digits, underscores,
-dollars, or periods) seen in the input is a potential mangled name.
-If the name decodes into a C++ name, the C++ name replaces the
-low-level name in the output, otherwise the original word is output.
-In this way you can pass an entire assembler source file, containing
-mangled names, through @command{c++filt} and see the same source file
-containing demangled names.
-
-You can also use @command{c++filt} to decipher individual symbols by
-passing them on the command line:
-
-@example
-c++filt @var{symbol}
-@end example
-
-If no @var{symbol} arguments are given, @command{c++filt} reads symbol
-names from the standard input instead. All the results are printed on
-the standard output. The difference between reading names from the
-command line versus reading names from the standard input is that
-command line arguments are expected to be just mangled names and no
-checking is performed to seperate them from surrounding text. Thus
-for example:
-
-@smallexample
-c++filt -n _Z1fv
-@end smallexample
-
-will work and demangle the name to ``f()'' whereas:
-
-@smallexample
-c++filt -n _Z1fv,
-@end smallexample
-
-will not work. (Note the extra comma at the end of the mangled
-name which makes it invalid). This command however will work:
-
-@smallexample
-echo _Z1fv, | c++filt -n
-@end smallexample
-
-and will display ``f(),'' ie the demangled name followed by a
-trailing comma. This behaviour is because when the names are read
-from the standard input it is expected that they might be part of an
-assembler source file where there might be extra, extraneous
-characters trailing after a mangled name. eg:
-
-@smallexample
- .type _Z1fv, @@function
-@end smallexample
-
-@c man end
-
-@c man begin OPTIONS cxxfilt
-
-@table @env
-@item -_
-@itemx --strip-underscores
-On some systems, both the C and C++ compilers put an underscore in front
-of every name. For example, the C name @code{foo} gets the low-level
-name @code{_foo}. This option removes the initial underscore. Whether
-@command{c++filt} removes the underscore by default is target dependent.
-
-@item -j
-@itemx --java
-Prints demangled names using Java syntax. The default is to use C++
-syntax.
-
-@item -n
-@itemx --no-strip-underscores
-Do not remove the initial underscore.
-
-@item -p
-@itemx --no-params
-When demangling the name of a function, do not display the types of
-the function's parameters.
-
-@item -t
-@itemx --types
-Attempt to demangle types as well as function names. This is disabled
-by default since mangled types are normally only used internally in
-the compiler, and they can be confused with non-mangled names. eg
-a function called ``a'' treated as a mangled type name would be
-demangled to ``signed char''.
-
-@item -i
-@itemx --no-verbose
-Do not include implementation details (if any) in the demangled
-output.
-
-@item -s @var{format}
-@itemx --format=@var{format}
-@command{c++filt} can decode various methods of mangling, used by
-different compilers. The argument to this option selects which
-method it uses:
-
-@table @code
-@item auto
-Automatic selection based on executable (the default method)
-@item gnu
-the one used by the @sc{gnu} C++ compiler (g++)
-@item lucid
-the one used by the Lucid compiler (lcc)
-@item arm
-the one specified by the C++ Annotated Reference Manual
-@item hp
-the one used by the HP compiler (aCC)
-@item edg
-the one used by the EDG compiler
-@item gnu-v3
-the one used by the @sc{gnu} C++ compiler (g++) with the V3 ABI.
-@item java
-the one used by the @sc{gnu} Java compiler (gcj)
-@item gnat
-the one used by the @sc{gnu} Ada compiler (GNAT).
-@end table
-
-@item --help
-Print a summary of the options to @command{c++filt} and exit.
-
-@item --version
-Print the version number of @command{c++filt} and exit.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO cxxfilt
-the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@quotation
-@emph{Warning:} @command{c++filt} is a new utility, and the details of its
-user interface are subject to change in future releases. In particular,
-a command-line option may be required in the the future to decode a name
-passed as an argument on the command line; in other words,
-
-@example
-c++filt @var{symbol}
-@end example
-
-@noindent
-may in a future release become
-
-@example
-c++filt @var{option} @var{symbol}
-@end example
-@end quotation
-
-@node addr2line
-@chapter addr2line
-
-@kindex addr2line
-@cindex address to file name and line number
-
-@c man title addr2line convert addresses into file names and line numbers.
-
-@smallexample
-@c man begin SYNOPSIS addr2line
-addr2line [@option{-b} @var{bfdname}|@option{--target=}@var{bfdname}]
- [@option{-C}|@option{--demangle}[=@var{style}]]
- [@option{-e} @var{filename}|@option{--exe=}@var{filename}]
- [@option{-f}|@option{--functions}] [@option{-s}|@option{--basename}]
- [@option{-i}|@option{--inlines}]
- [@option{-j}|@option{--section=}@var{name}]
- [@option{-H}|@option{--help}] [@option{-V}|@option{--version}]
- [addr addr @dots{}]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION addr2line
-
-@command{addr2line} translates addresses into file names and line numbers.
-Given an address in an executable or an offset in a section of a relocatable
-object, it uses the debugging information to figure out which file name and
-line number are associated with it.
-
-The executable or relocatable object to use is specified with the @option{-e}
-option. The default is the file @file{a.out}. The section in the relocatable
-object to use is specified with the @option{-j} option.
-
-@command{addr2line} has two modes of operation.
-
-In the first, hexadecimal addresses are specified on the command line,
-and @command{addr2line} displays the file name and line number for each
-address.
-
-In the second, @command{addr2line} reads hexadecimal addresses from
-standard input, and prints the file name and line number for each
-address on standard output. In this mode, @command{addr2line} may be used
-in a pipe to convert dynamically chosen addresses.
-
-The format of the output is @samp{FILENAME:LINENO}. The file name and
-line number for each address is printed on a separate line. If the
-@command{-f} option is used, then each @samp{FILENAME:LINENO} line is
-preceded by a @samp{FUNCTIONNAME} line which is the name of the function
-containing the address.
-
-If the file name or function name can not be determined,
-@command{addr2line} will print two question marks in their place. If the
-line number can not be determined, @command{addr2line} will print 0.
-
-@c man end
-
-@c man begin OPTIONS addr2line
-
-The long and short forms of options, shown here as alternatives, are
-equivalent.
-
-@table @env
-@item -b @var{bfdname}
-@itemx --target=@var{bfdname}
-@cindex object code format
-Specify that the object-code format for the object files is
-@var{bfdname}.
-
-@item -C
-@itemx --demangle[=@var{style}]
-@cindex demangling in objdump
-Decode (@dfn{demangle}) low-level symbol names into user-level names.
-Besides removing any initial underscore prepended by the system, this
-makes C++ function names readable. Different compilers have different
-mangling styles. The optional demangling style argument can be used to
-choose an appropriate demangling style for your compiler. @xref{c++filt},
-for more information on demangling.
-
-@item -e @var{filename}
-@itemx --exe=@var{filename}
-Specify the name of the executable for which addresses should be
-translated. The default file is @file{a.out}.
-
-@item -f
-@itemx --functions
-Display function names as well as file and line number information.
-
-@item -s
-@itemx --basenames
-Display only the base of each file name.
-
-@item -i
-@itemx --inlines
-If the address belongs to a function that was inlined, the source
-information for all enclosing scopes back to the first non-inlined
-function will also be printed. For example, if @code{main} inlines
-@code{callee1} which inlines @code{callee2}, and address is from
-@code{callee2}, the source information for @code{callee1} and @code{main}
-will also be printed.
-
-@item -j
-@itemx --section
-Read offsets relative to the specified section instead of absolute addresses.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO addr2line
-Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node nlmconv
-@chapter nlmconv
-
-@command{nlmconv} converts a relocatable object file into a NetWare
-Loadable Module.
-
-@ignore
-@command{nlmconv} currently works with @samp{i386} object
-files in @code{coff}, @sc{elf}, or @code{a.out} format, and @sc{SPARC}
-object files in @sc{elf}, or @code{a.out} format@footnote{
-@command{nlmconv} should work with any @samp{i386} or @sc{sparc} object
-format in the Binary File Descriptor library. It has only been tested
-with the above formats.}.
-@end ignore
-
-@quotation
-@emph{Warning:} @command{nlmconv} is not always built as part of the binary
-utilities, since it is only useful for NLM targets.
-@end quotation
-
-@c man title nlmconv converts object code into an NLM.
-
-@smallexample
-@c man begin SYNOPSIS nlmconv
-nlmconv [@option{-I} @var{bfdname}|@option{--input-target=}@var{bfdname}]
- [@option{-O} @var{bfdname}|@option{--output-target=}@var{bfdname}]
- [@option{-T} @var{headerfile}|@option{--header-file=}@var{headerfile}]
- [@option{-d}|@option{--debug}] [@option{-l} @var{linker}|@option{--linker=}@var{linker}]
- [@option{-h}|@option{--help}] [@option{-V}|@option{--version}]
- @var{infile} @var{outfile}
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION nlmconv
-
-@command{nlmconv} converts the relocatable @samp{i386} object file
-@var{infile} into the NetWare Loadable Module @var{outfile}, optionally
-reading @var{headerfile} for NLM header information. For instructions
-on writing the NLM command file language used in header files, see the
-@samp{linkers} section, @samp{NLMLINK} in particular, of the @cite{NLM
-Development and Tools Overview}, which is part of the NLM Software
-Developer's Kit (``NLM SDK''), available from Novell, Inc.
-@command{nlmconv} uses the @sc{gnu} Binary File Descriptor library to read
-@var{infile};
-@ifclear man
-see @ref{BFD,,BFD,ld.info,Using LD}, for more information.
-@end ifclear
-
-@command{nlmconv} can perform a link step. In other words, you can list
-more than one object file for input if you list them in the definitions
-file (rather than simply specifying one input file on the command line).
-In this case, @command{nlmconv} calls the linker for you.
-
-@c man end
-
-@c man begin OPTIONS nlmconv
-
-@table @env
-@item -I @var{bfdname}
-@itemx --input-target=@var{bfdname}
-Object format of the input file. @command{nlmconv} can usually determine
-the format of a given file (so no default is necessary).
-@xref{Target Selection}, for more information.
-
-@item -O @var{bfdname}
-@itemx --output-target=@var{bfdname}
-Object format of the output file. @command{nlmconv} infers the output
-format based on the input format, e.g. for a @samp{i386} input file the
-output format is @samp{nlm32-i386}.
-@xref{Target Selection}, for more information.
-
-@item -T @var{headerfile}
-@itemx --header-file=@var{headerfile}
-Reads @var{headerfile} for NLM header information. For instructions on
-writing the NLM command file language used in header files, see@ see the
-@samp{linkers} section, of the @cite{NLM Development and Tools
-Overview}, which is part of the NLM Software Developer's Kit, available
-from Novell, Inc.
-
-@item -d
-@itemx --debug
-Displays (on standard error) the linker command line used by @command{nlmconv}.
-
-@item -l @var{linker}
-@itemx --linker=@var{linker}
-Use @var{linker} for any linking. @var{linker} can be an absolute or a
-relative pathname.
-
-@item -h
-@itemx --help
-Prints a usage summary.
-
-@item -V
-@itemx --version
-Prints the version number for @command{nlmconv}.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO nlmconv
-the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node windres
-@chapter windres
-
-@command{windres} may be used to manipulate Windows resources.
-
-@quotation
-@emph{Warning:} @command{windres} is not always built as part of the binary
-utilities, since it is only useful for Windows targets.
-@end quotation
-
-@c man title windres manipulate Windows resources.
-
-@smallexample
-@c man begin SYNOPSIS windres
-windres [options] [input-file] [output-file]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION windres
-
-@command{windres} reads resources from an input file and copies them into
-an output file. Either file may be in one of three formats:
-
-@table @code
-@item rc
-A text format read by the Resource Compiler.
-
-@item res
-A binary format generated by the Resource Compiler.
-
-@item coff
-A COFF object or executable.
-@end table
-
-The exact description of these different formats is available in
-documentation from Microsoft.
-
-When @command{windres} converts from the @code{rc} format to the @code{res}
-format, it is acting like the Windows Resource Compiler. When
-@command{windres} converts from the @code{res} format to the @code{coff}
-format, it is acting like the Windows @code{CVTRES} program.
-
-When @command{windres} generates an @code{rc} file, the output is similar
-but not identical to the format expected for the input. When an input
-@code{rc} file refers to an external filename, an output @code{rc} file
-will instead include the file contents.
-
-If the input or output format is not specified, @command{windres} will
-guess based on the file name, or, for the input file, the file contents.
-A file with an extension of @file{.rc} will be treated as an @code{rc}
-file, a file with an extension of @file{.res} will be treated as a
-@code{res} file, and a file with an extension of @file{.o} or
-@file{.exe} will be treated as a @code{coff} file.
-
-If no output file is specified, @command{windres} will print the resources
-in @code{rc} format to standard output.
-
-The normal use is for you to write an @code{rc} file, use @command{windres}
-to convert it to a COFF object file, and then link the COFF file into
-your application. This will make the resources described in the
-@code{rc} file available to Windows.
-
-@c man end
-
-@c man begin OPTIONS windres
-
-@table @env
-@item -i @var{filename}
-@itemx --input @var{filename}
-The name of the input file. If this option is not used, then
-@command{windres} will use the first non-option argument as the input file
-name. If there are no non-option arguments, then @command{windres} will
-read from standard input. @command{windres} can not read a COFF file from
-standard input.
-
-@item -o @var{filename}
-@itemx --output @var{filename}
-The name of the output file. If this option is not used, then
-@command{windres} will use the first non-option argument, after any used
-for the input file name, as the output file name. If there is no
-non-option argument, then @command{windres} will write to standard output.
-@command{windres} can not write a COFF file to standard output. Note,
-for compatability with @command{rc} the option @option{-fo} is also
-accepted, but its use is not recommended.
-
-@item -J @var{format}
-@itemx --input-format @var{format}
-The input format to read. @var{format} may be @samp{res}, @samp{rc}, or
-@samp{coff}. If no input format is specified, @command{windres} will
-guess, as described above.
-
-@item -O @var{format}
-@itemx --output-format @var{format}
-The output format to generate. @var{format} may be @samp{res},
-@samp{rc}, or @samp{coff}. If no output format is specified,
-@command{windres} will guess, as described above.
-
-@item -F @var{target}
-@itemx --target @var{target}
-Specify the BFD format to use for a COFF file as input or output. This
-is a BFD target name; you can use the @option{--help} option to see a list
-of supported targets. Normally @command{windres} will use the default
-format, which is the first one listed by the @option{--help} option.
-@ifclear man
-@ref{Target Selection}.
-@end ifclear
-
-@item --preprocessor @var{program}
-When @command{windres} reads an @code{rc} file, it runs it through the C
-preprocessor first. This option may be used to specify the preprocessor
-to use, including any leading arguments. The default preprocessor
-argument is @code{gcc -E -xc-header -DRC_INVOKED}.
-
-@item -I @var{directory}
-@itemx --include-dir @var{directory}
-Specify an include directory to use when reading an @code{rc} file.
-@command{windres} will pass this to the preprocessor as an @option{-I}
-option. @command{windres} will also search this directory when looking for
-files named in the @code{rc} file. If the argument passed to this command
-matches any of the supported @var{formats} (as descrived in the @option{-J}
-option), it will issue a deprecation warning, and behave just like the
-@option{-J} option. New programs should not use this behaviour. If a
-directory happens to match a @var{format}, simple prefix it with @samp{./}
-to disable the backward compatibility.
-
-@item -D @var{target}
-@itemx --define @var{sym}[=@var{val}]
-Specify a @option{-D} option to pass to the preprocessor when reading an
-@code{rc} file.
-
-@item -U @var{target}
-@itemx --undefine @var{sym}
-Specify a @option{-U} option to pass to the preprocessor when reading an
-@code{rc} file.
-
-@item -r
-Ignored for compatibility with rc.
-
-@item -v
-Enable verbose mode. This tells you what the preprocessor is if you
-didn't specify one.
-
-@item -l @var{val}
-@item --language @var{val}
-Specify the default language to use when reading an @code{rc} file.
-@var{val} should be a hexadecimal language code. The low eight bits are
-the language, and the high eight bits are the sublanguage.
-
-@item --use-temp-file
-Use a temporary file to instead of using popen to read the output of
-the preprocessor. Use this option if the popen implementation is buggy
-on the host (eg., certain non-English language versions of Windows 95 and
-Windows 98 are known to have buggy popen where the output will instead
-go the console).
-
-@item --no-use-temp-file
-Use popen, not a temporary file, to read the output of the preprocessor.
-This is the default behaviour.
-
-@item -h
-@item --help
-Prints a usage summary.
-
-@item -V
-@item --version
-Prints the version number for @command{windres}.
-
-@item --yydebug
-If @command{windres} is compiled with @code{YYDEBUG} defined as @code{1},
-this will turn on parser debugging.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO windres
-the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node dlltool
-@chapter dlltool
-@cindex DLL
-@kindex dlltool
-
-@command{dlltool} is used to create the files needed to create dynamic
-link libraries (DLLs) on systems which understand PE format image
-files such as Windows. A DLL contains an export table which contains
-information that the runtime loader needs to resolve references from a
-referencing program.
-
-The export table is generated by this program by reading in a
-@file{.def} file or scanning the @file{.a} and @file{.o} files which
-will be in the DLL. A @file{.o} file can contain information in
-special @samp{.drectve} sections with export information.
-
-@quotation
-@emph{Note:} @command{dlltool} is not always built as part of the
-binary utilities, since it is only useful for those targets which
-support DLLs.
-@end quotation
-
-@c man title dlltool Create files needed to build and use DLLs.
-
-@smallexample
-@c man begin SYNOPSIS dlltool
-dlltool [@option{-d}|@option{--input-def} @var{def-file-name}]
- [@option{-b}|@option{--base-file} @var{base-file-name}]
- [@option{-e}|@option{--output-exp} @var{exports-file-name}]
- [@option{-z}|@option{--output-def} @var{def-file-name}]
- [@option{-l}|@option{--output-lib} @var{library-file-name}]
- [@option{--export-all-symbols}] [@option{--no-export-all-symbols}]
- [@option{--exclude-symbols} @var{list}]
- [@option{--no-default-excludes}]
- [@option{-S}|@option{--as} @var{path-to-assembler}] [@option{-f}|@option{--as-flags} @var{options}]
- [@option{-D}|@option{--dllname} @var{name}] [@option{-m}|@option{--machine} @var{machine}]
- [@option{-a}|@option{--add-indirect}]
- [@option{-U}|@option{--add-underscore}] [@option{--add-stdcall-underscore}]
- [@option{-k}|@option{--kill-at}] [@option{-A}|@option{--add-stdcall-alias}]
- [@option{-p}|@option{--ext-prefix-alias} @var{prefix}]
- [@option{-x}|@option{--no-idata4}] [@option{-c}|@option{--no-idata5}] [@option{-i}|@option{--interwork}]
- [@option{-n}|@option{--nodelete}] [@option{-t}|@option{--temp-prefix} @var{prefix}]
- [@option{-v}|@option{--verbose}]
- [@option{-h}|@option{--help}] [@option{-V}|@option{--version}]
- [object-file @dots{}]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION dlltool
-
-@command{dlltool} reads its inputs, which can come from the @option{-d} and
-@option{-b} options as well as object files specified on the command
-line. It then processes these inputs and if the @option{-e} option has
-been specified it creates a exports file. If the @option{-l} option
-has been specified it creates a library file and if the @option{-z} option
-has been specified it creates a def file. Any or all of the @option{-e},
-@option{-l} and @option{-z} options can be present in one invocation of
-dlltool.
-
-When creating a DLL, along with the source for the DLL, it is necessary
-to have three other files. @command{dlltool} can help with the creation of
-these files.
-
-The first file is a @file{.def} file which specifies which functions are
-exported from the DLL, which functions the DLL imports, and so on. This
-is a text file and can be created by hand, or @command{dlltool} can be used
-to create it using the @option{-z} option. In this case @command{dlltool}
-will scan the object files specified on its command line looking for
-those functions which have been specially marked as being exported and
-put entries for them in the @file{.def} file it creates.
-
-In order to mark a function as being exported from a DLL, it needs to
-have an @option{-export:<name_of_function>} entry in the @samp{.drectve}
-section of the object file. This can be done in C by using the
-asm() operator:
-
-@smallexample
- asm (".section .drectve");
- asm (".ascii \"-export:my_func\"");
-
- int my_func (void) @{ @dots{} @}
-@end smallexample
-
-The second file needed for DLL creation is an exports file. This file
-is linked with the object files that make up the body of the DLL and it
-handles the interface between the DLL and the outside world. This is a
-binary file and it can be created by giving the @option{-e} option to
-@command{dlltool} when it is creating or reading in a @file{.def} file.
-
-The third file needed for DLL creation is the library file that programs
-will link with in order to access the functions in the DLL. This file
-can be created by giving the @option{-l} option to dlltool when it
-is creating or reading in a @file{.def} file.
-
-@command{dlltool} builds the library file by hand, but it builds the
-exports file by creating temporary files containing assembler statements
-and then assembling these. The @option{-S} command line option can be
-used to specify the path to the assembler that dlltool will use,
-and the @option{-f} option can be used to pass specific flags to that
-assembler. The @option{-n} can be used to prevent dlltool from deleting
-these temporary assembler files when it is done, and if @option{-n} is
-specified twice then this will prevent dlltool from deleting the
-temporary object files it used to build the library.
-
-Here is an example of creating a DLL from a source file @samp{dll.c} and
-also creating a program (from an object file called @samp{program.o})
-that uses that DLL:
-
-@smallexample
- gcc -c dll.c
- dlltool -e exports.o -l dll.lib dll.o
- gcc dll.o exports.o -o dll.dll
- gcc program.o dll.lib -o program
-@end smallexample
-
-@c man end
-
-@c man begin OPTIONS dlltool
-
-The command line options have the following meanings:
-
-@table @env
-
-@item -d @var{filename}
-@itemx --input-def @var{filename}
-@cindex input .def file
-Specifies the name of a @file{.def} file to be read in and processed.
-
-@item -b @var{filename}
-@itemx --base-file @var{filename}
-@cindex base files
-Specifies the name of a base file to be read in and processed. The
-contents of this file will be added to the relocation section in the
-exports file generated by dlltool.
-
-@item -e @var{filename}
-@itemx --output-exp @var{filename}
-Specifies the name of the export file to be created by dlltool.
-
-@item -z @var{filename}
-@itemx --output-def @var{filename}
-Specifies the name of the @file{.def} file to be created by dlltool.
-
-@item -l @var{filename}
-@itemx --output-lib @var{filename}
-Specifies the name of the library file to be created by dlltool.
-
-@item --export-all-symbols
-Treat all global and weak defined symbols found in the input object
-files as symbols to be exported. There is a small list of symbols which
-are not exported by default; see the @option{--no-default-excludes}
-option. You may add to the list of symbols to not export by using the
-@option{--exclude-symbols} option.
-
-@item --no-export-all-symbols
-Only export symbols explicitly listed in an input @file{.def} file or in
-@samp{.drectve} sections in the input object files. This is the default
-behaviour. The @samp{.drectve} sections are created by @samp{dllexport}
-attributes in the source code.
-
-@item --exclude-symbols @var{list}
-Do not export the symbols in @var{list}. This is a list of symbol names
-separated by comma or colon characters. The symbol names should not
-contain a leading underscore. This is only meaningful when
-@option{--export-all-symbols} is used.
-
-@item --no-default-excludes
-When @option{--export-all-symbols} is used, it will by default avoid
-exporting certain special symbols. The current list of symbols to avoid
-exporting is @samp{DllMain@@12}, @samp{DllEntryPoint@@0},
-@samp{impure_ptr}. You may use the @option{--no-default-excludes} option
-to go ahead and export these special symbols. This is only meaningful
-when @option{--export-all-symbols} is used.
-
-@item -S @var{path}
-@itemx --as @var{path}
-Specifies the path, including the filename, of the assembler to be used
-to create the exports file.
-
-@item -f @var{options}
-@itemx --as-flags @var{options}
-Specifies any specific command line options to be passed to the
-assembler when building the exports file. This option will work even if
-the @option{-S} option is not used. This option only takes one argument,
-and if it occurs more than once on the command line, then later
-occurrences will override earlier occurrences. So if it is necessary to
-pass multiple options to the assembler they should be enclosed in
-double quotes.
-
-@item -D @var{name}
-@itemx --dll-name @var{name}
-Specifies the name to be stored in the @file{.def} file as the name of
-the DLL when the @option{-e} option is used. If this option is not
-present, then the filename given to the @option{-e} option will be
-used as the name of the DLL.
-
-@item -m @var{machine}
-@itemx -machine @var{machine}
-Specifies the type of machine for which the library file should be
-built. @command{dlltool} has a built in default type, depending upon how
-it was created, but this option can be used to override that. This is
-normally only useful when creating DLLs for an ARM processor, when the
-contents of the DLL are actually encode using Thumb instructions.
-
-@item -a
-@itemx --add-indirect
-Specifies that when @command{dlltool} is creating the exports file it
-should add a section which allows the exported functions to be
-referenced without using the import library. Whatever the hell that
-means!
-
-@item -U
-@itemx --add-underscore
-Specifies that when @command{dlltool} is creating the exports file it
-should prepend an underscore to the names of @emph{all} exported symbols.
-
-@item --add-stdcall-underscore
-Specifies that when @command{dlltool} is creating the exports file it
-should prepend an underscore to the names of exported @emph{stdcall}
-functions. Variable names and non-stdcall function names are not modified.
-This option is useful when creating GNU-compatible import libs for third
-party DLLs that were built with MS-Windows tools.
-
-@item -k
-@itemx --kill-at
-Specifies that when @command{dlltool} is creating the exports file it
-should not append the string @samp{@@ <number>}. These numbers are
-called ordinal numbers and they represent another way of accessing the
-function in a DLL, other than by name.
-
-@item -A
-@itemx --add-stdcall-alias
-Specifies that when @command{dlltool} is creating the exports file it
-should add aliases for stdcall symbols without @samp{@@ <number>}
-in addition to the symbols with @samp{@@ <number>}.
-
-@item -p
-@itemx --ext-prefix-alias @var{prefix}
-Causes @command{dlltool} to create external aliases for all DLL
-imports with the specified prefix. The aliases are created for both
-external and import symbols with no leading underscore.
-
-@item -x
-@itemx --no-idata4
-Specifies that when @command{dlltool} is creating the exports and library
-files it should omit the @code{.idata4} section. This is for compatibility
-with certain operating systems.
-
-@item -c
-@itemx --no-idata5
-Specifies that when @command{dlltool} is creating the exports and library
-files it should omit the @code{.idata5} section. This is for compatibility
-with certain operating systems.
-
-@item -i
-@itemx --interwork
-Specifies that @command{dlltool} should mark the objects in the library
-file and exports file that it produces as supporting interworking
-between ARM and Thumb code.
-
-@item -n
-@itemx --nodelete
-Makes @command{dlltool} preserve the temporary assembler files it used to
-create the exports file. If this option is repeated then dlltool will
-also preserve the temporary object files it uses to create the library
-file.
-
-@item -t @var{prefix}
-@itemx --temp-prefix @var{prefix}
-Makes @command{dlltool} use @var{prefix} when constructing the names of
-temporary assembler and object files. By default, the temp file prefix
-is generated from the pid.
-
-@item -v
-@itemx --verbose
-Make dlltool describe what it is doing.
-
-@item -h
-@itemx --help
-Displays a list of command line options and then exits.
-
-@item -V
-@itemx --version
-Displays dlltool's version number and then exits.
-
-@end table
-
-@c man end
-
-@menu
-* def file format:: The format of the dlltool @file{.def} file
-@end menu
-
-@node def file format
-@section The format of the @command{dlltool} @file{.def} file
-
-A @file{.def} file contains any number of the following commands:
-
-@table @asis
-
-@item @code{NAME} @var{name} @code{[ ,} @var{base} @code{]}
-The result is going to be named @var{name}@code{.exe}.
-
-@item @code{LIBRARY} @var{name} @code{[ ,} @var{base} @code{]}
-The result is going to be named @var{name}@code{.dll}.
-
-@item @code{EXPORTS ( ( (} @var{name1} @code{[ = } @var{name2} @code{] ) | ( } @var{name1} @code{=} @var{module-name} @code{.} @var{external-name} @code{) )}
-@item @code{[} @var{integer} @code{] [ NONAME ] [ CONSTANT ] [ DATA ] [ PRIVATE ] ) *}
-Declares @var{name1} as an exported symbol from the DLL, with optional
-ordinal number @var{integer}, or declares @var{name1} as an alias
-(forward) of the function @var{external-name} in the DLL
-@var{module-name}.
-
-@item @code{IMPORTS ( (} @var{internal-name} @code{=} @var{module-name} @code{.} @var{integer} @code{) | [} @var{internal-name} @code{= ]} @var{module-name} @code{.} @var{external-name} @code{) ) *}
-Declares that @var{external-name} or the exported function whose
-ordinal number is @var{integer} is to be imported from the file
-@var{module-name}. If @var{internal-name} is specified then this is
-the name that the imported function will be referred to in the body of
-the DLL.
-
-@item @code{DESCRIPTION} @var{string}
-Puts @var{string} into the output @file{.exp} file in the
-@code{.rdata} section.
-
-@item @code{STACKSIZE} @var{number-reserve} @code{[, } @var{number-commit} @code{]}
-@item @code{HEAPSIZE} @var{number-reserve} @code{[, } @var{number-commit} @code{]}
-Generates @code{--stack} or @code{--heap}
-@var{number-reserve},@var{number-commit} in the output @code{.drectve}
-section. The linker will see this and act upon it.
-
-@item @code{CODE} @var{attr} @code{+}
-@item @code{DATA} @var{attr} @code{+}
-@item @code{SECTIONS (} @var{section-name} @var{attr}@code{ + ) *}
-Generates @code{--attr} @var{section-name} @var{attr} in the output
-@code{.drectve} section, where @var{attr} is one of @code{READ},
-@code{WRITE}, @code{EXECUTE} or @code{SHARED}. The linker will see
-this and act upon it.
-
-@end table
-
-@ignore
-@c man begin SEEALSO dlltool
-The Info pages for @file{binutils}.
-@c man end
-@end ignore
-
-@node readelf
-@chapter readelf
-
-@cindex ELF file information
-@kindex readelf
-
-@c man title readelf Displays information about ELF files.
-
-@smallexample
-@c man begin SYNOPSIS readelf
-readelf [@option{-a}|@option{--all}]
- [@option{-h}|@option{--file-header}]
- [@option{-l}|@option{--program-headers}|@option{--segments}]
- [@option{-S}|@option{--section-headers}|@option{--sections}]
- [@option{-g}|@option{--section-groups}]
- [@option{-t}|@option{--section-details}]
- [@option{-e}|@option{--headers}]
- [@option{-s}|@option{--syms}|@option{--symbols}]
- [@option{-n}|@option{--notes}]
- [@option{-r}|@option{--relocs}]
- [@option{-u}|@option{--unwind}]
- [@option{-d}|@option{--dynamic}]
- [@option{-V}|@option{--version-info}]
- [@option{-A}|@option{--arch-specific}]
- [@option{-D}|@option{--use-dynamic}]
- [@option{-x} <number or name>|@option{--hex-dump=}<number or name>]
- [@option{-w[liaprmfFsoR]}|
- @option{--debug-dump}[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]]
- [@option{-I}|@option{-histogram}]
- [@option{-v}|@option{--version}]
- [@option{-W}|@option{--wide}]
- [@option{-H}|@option{--help}]
- @var{elffile}@dots{}
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION readelf
-
-@command{readelf} displays information about one or more ELF format object
-files. The options control what particular information to display.
-
-@var{elffile}@dots{} are the object files to be examined. 32-bit and
-64-bit ELF files are supported, as are archives containing ELF files.
-
-This program performs a similar function to @command{objdump} but it
-goes into more detail and it exists independently of the @sc{bfd}
-library, so if there is a bug in @sc{bfd} then readelf will not be
-affected.
-
-@c man end
-
-@c man begin OPTIONS readelf
-
-The long and short forms of options, shown here as alternatives, are
-equivalent. At least one option besides @samp{-v} or @samp{-H} must be
-given.
-
-@table @env
-@item -a
-@itemx --all
-Equivalent to specifiying @option{--file-header},
-@option{--program-headers}, @option{--sections}, @option{--symbols},
-@option{--relocs}, @option{--dynamic}, @option{--notes} and
-@option{--version-info}.
-
-@item -h
-@itemx --file-header
-@cindex ELF file header information
-Displays the information contained in the ELF header at the start of the
-file.
-
-@item -l
-@itemx --program-headers
-@itemx --segments
-@cindex ELF program header information
-@cindex ELF segment information
-Displays the information contained in the file's segment headers, if it
-has any.
-
-@item -S
-@itemx --sections
-@itemx --section-headers
-@cindex ELF section information
-Displays the information contained in the file's section headers, if it
-has any.
-
-@item -g
-@itemx --section-groups
-@cindex ELF section group information
-Displays the information contained in the file's section groups, if it
-has any.
-
-@item -t
-@itemx --section-details
-@cindex ELF section information
-Displays the detailed section information. Implies @option{-S}.
-
-@item -s
-@itemx --symbols
-@itemx --syms
-@cindex ELF symbol table information
-Displays the entries in symbol table section of the file, if it has one.
-
-@item -e
-@itemx --headers
-Display all the headers in the file. Equivalent to @option{-h -l -S}.
-
-@item -n
-@itemx --notes
-@cindex ELF notes
-Displays the contents of the NOTE segments and/or sections, if any.
-
-@item -r
-@itemx --relocs
-@cindex ELF reloc information
-Displays the contents of the file's relocation section, if it has one.
-
-@item -u
-@itemx --unwind
-@cindex unwind information
-Displays the contents of the file's unwind section, if it has one. Only
-the unwind sections for IA64 ELF files are currently supported.
-
-@item -d
-@itemx --dynamic
-@cindex ELF dynamic section information
-Displays the contents of the file's dynamic section, if it has one.
-
-@item -V
-@itemx --version-info
-@cindex ELF version sections informations
-Displays the contents of the version sections in the file, it they
-exist.
-
-@item -A
-@itemx --arch-specific
-Displays architecture-specific information in the file, if there
-is any.
-
-@item -D
-@itemx --use-dynamic
-When displaying symbols, this option makes @command{readelf} use the
-symbol table in the file's dynamic section, rather than the one in the
-symbols section.
-
-@item -x <number or name>
-@itemx --hex-dump=<number or name>
-Displays the contents of the indicated section as a hexadecimal dump.
-A number identifies a particular section by index in the section table;
-any other string identifies all sections with that name in the object file.
-
-@item -w[liaprmfFsoR]
-@itemx --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]
-Displays the contents of the debug sections in the file, if any are
-present. If one of the optional letters or words follows the switch
-then only data found in those specific sections will be dumped.
-
-@item -I
-@itemx --histogram
-Display a histogram of bucket list lengths when displaying the contents
-of the symbol tables.
-
-@item -v
-@itemx --version
-Display the version number of readelf.
-
-@item -W
-@itemx --wide
-Don't break output lines to fit into 80 columns. By default
-@command{readelf} breaks section header and segment listing lines for
-64-bit ELF files, so that they fit into 80 columns. This option causes
-@command{readelf} to print each section header resp. each segment one a
-single line, which is far more readable on terminals wider than 80 columns.
-
-@item -H
-@itemx --help
-Display the command line options understood by @command{readelf}.
-
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO readelf
-objdump(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node Common Options
-@chapter Common Options
-
-The following command-line options are supported by all of the
-programs described in this manual.
-
-@c man begin OPTIONS
-@table @env
-@include at-file.texi
-@c man end
-
-@item --help
-Display the command-line options supported by the program.
-
-@item --version
-Display the version number of the program.
-
-@c man begin OPTIONS
-@end table
-@c man end
-
-@node Selecting The Target System
-@chapter Selecting the Target System
-
-You can specify two aspects of the target system to the @sc{gnu}
-binary file utilities, each in several ways:
-
-@itemize @bullet
-@item
-the target
-
-@item
-the architecture
-@end itemize
-
-In the following summaries, the lists of ways to specify values are in
-order of decreasing precedence. The ways listed first override those
-listed later.
-
-The commands to list valid values only list the values for which the
-programs you are running were configured. If they were configured with
-@option{--enable-targets=all}, the commands list most of the available
-values, but a few are left out; not all targets can be configured in at
-once because some of them can only be configured @dfn{native} (on hosts
-with the same type as the target system).
-
-@menu
-* Target Selection::
-* Architecture Selection::
-@end menu
-
-@node Target Selection
-@section Target Selection
-
-A @dfn{target} is an object file format. A given target may be
-supported for multiple architectures (@pxref{Architecture Selection}).
-A target selection may also have variations for different operating
-systems or architectures.
-
-The command to list valid target values is @samp{objdump -i}
-(the first column of output contains the relevant information).
-
-Some sample values are: @samp{a.out-hp300bsd}, @samp{ecoff-littlemips},
-@samp{a.out-sunos-big}.
-
-You can also specify a target using a configuration triplet. This is
-the same sort of name that is passed to @file{configure} to specify a
-target. When you use a configuration triplet as an argument, it must be
-fully canonicalized. You can see the canonical version of a triplet by
-running the shell script @file{config.sub} which is included with the
-sources.
-
-Some sample configuration triplets are: @samp{m68k-hp-bsd},
-@samp{mips-dec-ultrix}, @samp{sparc-sun-sunos}.
-
-@subheading @command{objdump} Target
-
-Ways to specify:
-
-@enumerate
-@item
-command line option: @option{-b} or @option{--target}
-
-@item
-environment variable @code{GNUTARGET}
-
-@item
-deduced from the input file
-@end enumerate
-
-@subheading @command{objcopy} and @command{strip} Input Target
-
-Ways to specify:
-
-@enumerate
-@item
-command line options: @option{-I} or @option{--input-target}, or @option{-F} or @option{--target}
-
-@item
-environment variable @code{GNUTARGET}
-
-@item
-deduced from the input file
-@end enumerate
-
-@subheading @command{objcopy} and @command{strip} Output Target
-
-Ways to specify:
-
-@enumerate
-@item
-command line options: @option{-O} or @option{--output-target}, or @option{-F} or @option{--target}
-
-@item
-the input target (see ``@command{objcopy} and @command{strip} Input Target'' above)
-
-@item
-environment variable @code{GNUTARGET}
-
-@item
-deduced from the input file
-@end enumerate
-
-@subheading @command{nm}, @command{size}, and @command{strings} Target
-
-Ways to specify:
-
-@enumerate
-@item
-command line option: @option{--target}
-
-@item
-environment variable @code{GNUTARGET}
-
-@item
-deduced from the input file
-@end enumerate
-
-@node Architecture Selection
-@section Architecture Selection
-
-An @dfn{architecture} is a type of @sc{cpu} on which an object file is
-to run. Its name may contain a colon, separating the name of the
-processor family from the name of the particular @sc{cpu}.
-
-The command to list valid architecture values is @samp{objdump -i} (the
-second column contains the relevant information).
-
-Sample values: @samp{m68k:68020}, @samp{mips:3000}, @samp{sparc}.
-
-@subheading @command{objdump} Architecture
-
-Ways to specify:
-
-@enumerate
-@item
-command line option: @option{-m} or @option{--architecture}
-
-@item
-deduced from the input file
-@end enumerate
-
-@subheading @command{objcopy}, @command{nm}, @command{size}, @command{strings} Architecture
-
-Ways to specify:
-
-@enumerate
-@item
-deduced from the input file
-@end enumerate
-
-@node Reporting Bugs
-@chapter Reporting Bugs
-@cindex bugs
-@cindex reporting bugs
-
-Your bug reports play an essential role in making the binary utilities
-reliable.
-
-Reporting a bug may help you by bringing a solution to your problem, or
-it may not. But in any case the principal function of a bug report is
-to help the entire community by making the next version of the binary
-utilities work better. Bug reports are your contribution to their
-maintenance.
-
-In order for a bug report to serve its purpose, you must include the
-information that enables us to fix the bug.
-
-@menu
-* Bug Criteria:: Have you found a bug?
-* Bug Reporting:: How to report bugs
-@end menu
-
-@node Bug Criteria
-@section Have You Found a Bug?
-@cindex bug criteria
-
-If you are not sure whether you have found a bug, here are some guidelines:
-
-@itemize @bullet
-@cindex fatal signal
-@cindex crash
-@item
-If a binary utility gets a fatal signal, for any input whatever, that is
-a bug. Reliable utilities never crash.
-
-@cindex error on valid input
-@item
-If a binary utility produces an error message for valid input, that is a
-bug.
-
-@item
-If you are an experienced user of binary utilities, your suggestions for
-improvement are welcome in any case.
-@end itemize
-
-@node Bug Reporting
-@section How to Report Bugs
-@cindex bug reports
-@cindex bugs, reporting
-
-A number of companies and individuals offer support for @sc{gnu}
-products. If you obtained the binary utilities from a support
-organization, we recommend you contact that organization first.
-
-You can find contact information for many support companies and
-individuals in the file @file{etc/SERVICE} in the @sc{gnu} Emacs
-distribution.
-
-In any event, we also recommend that you send bug reports for the binary
-utilities to @samp{bug-binutils@@gnu.org}.
-
-The fundamental principle of reporting bugs usefully is this:
-@strong{report all the facts}. If you are not sure whether to state a
-fact or leave it out, state it!
-
-Often people omit facts because they think they know what causes the
-problem and assume that some details do not matter. Thus, you might
-assume that the name of a file you use in an example does not matter.
-Well, probably it does not, but one cannot be sure. Perhaps the bug is
-a stray memory reference which happens to fetch from the location where
-that pathname is stored in memory; perhaps, if the pathname were
-different, the contents of that location would fool the utility into
-doing the right thing despite the bug. Play it safe and give a
-specific, complete example. That is the easiest thing for you to do,
-and the most helpful.
-
-Keep in mind that the purpose of a bug report is to enable us to fix the bug if
-it is new to us. Therefore, always write your bug reports on the assumption
-that the bug has not been reported previously.
-
-Sometimes people give a few sketchy facts and ask, ``Does this ring a
-bell?'' This cannot help us fix a bug, so it is basically useless. We
-respond by asking for enough details to enable us to investigate.
-You might as well expedite matters by sending them to begin with.
-
-To enable us to fix the bug, you should include all these things:
-
-@itemize @bullet
-@item
-The version of the utility. Each utility announces it if you start it
-with the @option{--version} argument.
-
-Without this, we will not know whether there is any point in looking for
-the bug in the current version of the binary utilities.
-
-@item
-Any patches you may have applied to the source, including any patches
-made to the @code{BFD} library.
-
-@item
-The type of machine you are using, and the operating system name and
-version number.
-
-@item
-What compiler (and its version) was used to compile the utilities---e.g.
-``@code{gcc-2.7}''.
-
-@item
-The command arguments you gave the utility to observe the bug. To
-guarantee you will not omit something important, list them all. A copy
-of the Makefile (or the output from make) is sufficient.
-
-If we were to try to guess the arguments, we would probably guess wrong
-and then we might not encounter the bug.
-
-@item
-A complete input file, or set of input files, that will reproduce the
-bug. If the utility is reading an object file or files, then it is
-generally most helpful to send the actual object files, uuencoded if
-necessary to get them through the mail system. Note that
-@samp{bug-binutils@@gnu.org} is a mailing list, so you should avoid
-sending very large files to it. Making the files available for
-anonymous FTP is OK.
-
-If the source files were produced exclusively using @sc{gnu} programs
-(e.g., @command{gcc}, @command{gas}, and/or the @sc{gnu} @command{ld}), then it
-may be OK to send the source files rather than the object files. In
-this case, be sure to say exactly what version of @command{gcc}, or
-whatever, was used to produce the object files. Also say how
-@command{gcc}, or whatever, was configured.
-
-@item
-A description of what behavior you observe that you believe is
-incorrect. For example, ``It gets a fatal signal.''
-
-Of course, if the bug is that the utility gets a fatal signal, then we
-will certainly notice it. But if the bug is incorrect output, we might
-not notice unless it is glaringly wrong. You might as well not give us
-a chance to make a mistake.
-
-Even if the problem you experience is a fatal signal, you should still
-say so explicitly. Suppose something strange is going on, such as your
-copy of the utility is out of synch, or you have encountered a bug in
-the C library on your system. (This has happened!) Your copy might
-crash and ours would not. If you told us to expect a crash, then when
-ours fails to crash, we would know that the bug was not happening for
-us. If you had not told us to expect a crash, then we would not be able
-to draw any conclusion from our observations.
-
-@item
-If you wish to suggest changes to the source, send us context diffs, as
-generated by @command{diff} with the @option{-u}, @option{-c}, or @option{-p}
-option. Always send diffs from the old file to the new file. If you
-wish to discuss something in the @command{ld} source, refer to it by
-context, not by line number.
-
-The line numbers in our development sources will not match those in your
-sources. Your line numbers would convey no useful information to us.
-@end itemize
-
-Here are some things that are not necessary:
-
-@itemize @bullet
-@item
-A description of the envelope of the bug.
-
-Often people who encounter a bug spend a lot of time investigating
-which changes to the input file will make the bug go away and which
-changes will not affect it.
-
-This is often time consuming and not very useful, because the way we
-will find the bug is by running a single example under the debugger
-with breakpoints, not by pure deduction from a series of examples.
-We recommend that you save your time for something else.
-
-Of course, if you can find a simpler example to report @emph{instead}
-of the original one, that is a convenience for us. Errors in the
-output will be easier to spot, running under the debugger will take
-less time, and so on.
-
-However, simplification is not vital; if you do not want to do this,
-report the bug anyway and send us the entire test case you used.
-
-@item
-A patch for the bug.
-
-A patch for the bug does help us if it is a good one. But do not omit
-the necessary information, such as the test case, on the assumption that
-a patch is all we need. We might see problems with your patch and decide
-to fix the problem another way, or we might not understand it at all.
-
-Sometimes with programs as complicated as the binary utilities it is
-very hard to construct an example that will make the program follow a
-certain path through the code. If you do not send us the example, we
-will not be able to construct one, so we will not be able to verify that
-the bug is fixed.
-
-And if we cannot understand what bug you are trying to fix, or why your
-patch should be an improvement, we will not install it. A test case will
-help us to understand.
-
-@item
-A guess about what the bug is or what it depends on.
-
-Such guesses are usually wrong. Even we cannot guess right about such
-things without first using the debugger to find the facts.
-@end itemize
-
-@include fdl.texi
-
-@node Index
-@unnumbered Index
-
-@printindex cp
-
-@contents
-@bye
diff --git a/binutils-2.17/binutils/doc/config.texi b/binutils-2.17/binutils/doc/config.texi
deleted file mode 100644
index c49c43a4..00000000
--- a/binutils-2.17/binutils/doc/config.texi
+++ /dev/null
@@ -1,2 +0,0 @@
-@set VERSION 2.17
-@set UPDATED June 2006
diff --git a/binutils-2.17/binutils/doc/cxxfilt.man b/binutils-2.17/binutils/doc/cxxfilt.man
deleted file mode 100644
index 08e77f18..00000000
--- a/binutils-2.17/binutils/doc/cxxfilt.man
+++ /dev/null
@@ -1,345 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "C++FILT 1"
-.TH C++FILT 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-cxxfilt \- Demangle C++ and Java symbols.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-c++filt [\fB\-_\fR|\fB\-\-strip\-underscores\fR]
- [\fB\-n\fR|\fB\-\-no\-strip\-underscores\fR]
- [\fB\-p\fR|\fB\-\-no\-params\fR]
- [\fB\-t\fR|\fB\-\-types\fR]
- [\fB\-i\fR|\fB\-\-no\-verbose\fR]
- [\fB\-s\fR \fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
- [\fB\-\-help\fR] [\fB\-\-version\fR] [\fIsymbol\fR...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \*(C+ and Java languages provide function overloading, which means
-that you can write many functions with the same name, providing that
-each function takes parameters of different types. In order to be
-able to distinguish these similarly named functions \*(C+ and Java
-encode them into a low-level assembler name which uniquely identifies
-each different version. This process is known as \fImangling\fR. The
-\&\fBc++filt\fR
-[1]
-program does the inverse mapping: it decodes (\fIdemangles\fR) low-level
-names into user-level names so that they can be read.
-.PP
-Every alphanumeric word (consisting of letters, digits, underscores,
-dollars, or periods) seen in the input is a potential mangled name.
-If the name decodes into a \*(C+ name, the \*(C+ name replaces the
-low-level name in the output, otherwise the original word is output.
-In this way you can pass an entire assembler source file, containing
-mangled names, through \fBc++filt\fR and see the same source file
-containing demangled names.
-.PP
-You can also use \fBc++filt\fR to decipher individual symbols by
-passing them on the command line:
-.PP
-.Vb 1
-\& c++filt <symbol>
-.Ve
-.PP
-If no \fIsymbol\fR arguments are given, \fBc++filt\fR reads symbol
-names from the standard input instead. All the results are printed on
-the standard output. The difference between reading names from the
-command line versus reading names from the standard input is that
-command line arguments are expected to be just mangled names and no
-checking is performed to seperate them from surrounding text. Thus
-for example:
-.PP
-.Vb 1
-\& c++filt \-n _Z1fv
-.Ve
-.PP
-will work and demangle the name to \*(L"f()\*(R" whereas:
-.PP
-.Vb 1
-\& c++filt \-n _Z1fv,
-.Ve
-.PP
-will not work. (Note the extra comma at the end of the mangled
-name which makes it invalid). This command however will work:
-.PP
-.Vb 1
-\& echo _Z1fv, | c++filt \-n
-.Ve
-.PP
-and will display \*(L"f(),\*(R" ie the demangled name followed by a
-trailing comma. This behaviour is because when the names are read
-from the standard input it is expected that they might be part of an
-assembler source file where there might be extra, extraneous
-characters trailing after a mangled name. eg:
-.PP
-.Vb 1
-\& .type _Z1fv, @function
-.Ve
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-_\fR" 4
-.IX Item "-_"
-.PD 0
-.IP "\fB\-\-strip\-underscores\fR" 4
-.IX Item "--strip-underscores"
-.PD
-On some systems, both the C and \*(C+ compilers put an underscore in front
-of every name. For example, the C name \f(CW\*(C`foo\*(C'\fR gets the low-level
-name \f(CW\*(C`_foo\*(C'\fR. This option removes the initial underscore. Whether
-\&\fBc++filt\fR removes the underscore by default is target dependent.
-.IP "\fB\-j\fR" 4
-.IX Item "-j"
-.PD 0
-.IP "\fB\-\-java\fR" 4
-.IX Item "--java"
-.PD
-Prints demangled names using Java syntax. The default is to use \*(C+
-syntax.
-.IP "\fB\-n\fR" 4
-.IX Item "-n"
-.PD 0
-.IP "\fB\-\-no\-strip\-underscores\fR" 4
-.IX Item "--no-strip-underscores"
-.PD
-Do not remove the initial underscore.
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-no\-params\fR" 4
-.IX Item "--no-params"
-.PD
-When demangling the name of a function, do not display the types of
-the function's parameters.
-.IP "\fB\-t\fR" 4
-.IX Item "-t"
-.PD 0
-.IP "\fB\-\-types\fR" 4
-.IX Item "--types"
-.PD
-Attempt to demangle types as well as function names. This is disabled
-by default since mangled types are normally only used internally in
-the compiler, and they can be confused with non-mangled names. eg
-a function called \*(L"a\*(R" treated as a mangled type name would be
-demangled to \*(L"signed char\*(R".
-.IP "\fB\-i\fR" 4
-.IX Item "-i"
-.PD 0
-.IP "\fB\-\-no\-verbose\fR" 4
-.IX Item "--no-verbose"
-.PD
-Do not include implementation details (if any) in the demangled
-output.
-.IP "\fB\-s\fR \fIformat\fR" 4
-.IX Item "-s format"
-.PD 0
-.IP "\fB\-\-format=\fR\fIformat\fR" 4
-.IX Item "--format=format"
-.PD
-\&\fBc++filt\fR can decode various methods of mangling, used by
-different compilers. The argument to this option selects which
-method it uses:
-.RS 4
-.ie n .IP """auto""" 4
-.el .IP "\f(CWauto\fR" 4
-.IX Item "auto"
-Automatic selection based on executable (the default method)
-.ie n .IP """gnu""" 4
-.el .IP "\f(CWgnu\fR" 4
-.IX Item "gnu"
-the one used by the \s-1GNU\s0 \*(C+ compiler (g++)
-.ie n .IP """lucid""" 4
-.el .IP "\f(CWlucid\fR" 4
-.IX Item "lucid"
-the one used by the Lucid compiler (lcc)
-.ie n .IP """arm""" 4
-.el .IP "\f(CWarm\fR" 4
-.IX Item "arm"
-the one specified by the \*(C+ Annotated Reference Manual
-.ie n .IP """hp""" 4
-.el .IP "\f(CWhp\fR" 4
-.IX Item "hp"
-the one used by the \s-1HP\s0 compiler (aCC)
-.ie n .IP """edg""" 4
-.el .IP "\f(CWedg\fR" 4
-.IX Item "edg"
-the one used by the \s-1EDG\s0 compiler
-.ie n .IP """gnu\-v3""" 4
-.el .IP "\f(CWgnu\-v3\fR" 4
-.IX Item "gnu-v3"
-the one used by the \s-1GNU\s0 \*(C+ compiler (g++) with the V3 \s-1ABI\s0.
-.ie n .IP """java""" 4
-.el .IP "\f(CWjava\fR" 4
-.IX Item "java"
-the one used by the \s-1GNU\s0 Java compiler (gcj)
-.ie n .IP """gnat""" 4
-.el .IP "\f(CWgnat\fR" 4
-.IX Item "gnat"
-the one used by the \s-1GNU\s0 Ada compiler (\s-1GNAT\s0).
-.RE
-.RS 4
-.RE
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Print a summary of the options to \fBc++filt\fR and exit.
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-Print the version number of \fBc++filt\fR and exit.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "FOOTNOTES"
-.IX Header "FOOTNOTES"
-.IP "1." 4
-MS-DOS does not allow \f(CW\*(C`+\*(C'\fR characters in file names, so on
-MS-DOS this program is named \fB\s-1CXXFILT\s0\fR.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/doc/dlltool.1 b/binutils-2.17/binutils/doc/dlltool.1
deleted file mode 100644
index 44c5a4e0..00000000
--- a/binutils-2.17/binutils/doc/dlltool.1
+++ /dev/null
@@ -1,478 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "DLLTOOL 1"
-.TH DLLTOOL 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-dlltool \- Create files needed to build and use DLLs.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-dlltool [\fB\-d\fR|\fB\-\-input\-def\fR \fIdef-file-name\fR]
- [\fB\-b\fR|\fB\-\-base\-file\fR \fIbase-file-name\fR]
- [\fB\-e\fR|\fB\-\-output\-exp\fR \fIexports-file-name\fR]
- [\fB\-z\fR|\fB\-\-output\-def\fR \fIdef-file-name\fR]
- [\fB\-l\fR|\fB\-\-output\-lib\fR \fIlibrary-file-name\fR]
- [\fB\-\-export\-all\-symbols\fR] [\fB\-\-no\-export\-all\-symbols\fR]
- [\fB\-\-exclude\-symbols\fR \fIlist\fR]
- [\fB\-\-no\-default\-excludes\fR]
- [\fB\-S\fR|\fB\-\-as\fR \fIpath-to-assembler\fR] [\fB\-f\fR|\fB\-\-as\-flags\fR \fIoptions\fR]
- [\fB\-D\fR|\fB\-\-dllname\fR \fIname\fR] [\fB\-m\fR|\fB\-\-machine\fR \fImachine\fR]
- [\fB\-a\fR|\fB\-\-add\-indirect\fR]
- [\fB\-U\fR|\fB\-\-add\-underscore\fR] [\fB\-\-add\-stdcall\-underscore\fR]
- [\fB\-k\fR|\fB\-\-kill\-at\fR] [\fB\-A\fR|\fB\-\-add\-stdcall\-alias\fR]
- [\fB\-p\fR|\fB\-\-ext\-prefix\-alias\fR \fIprefix\fR]
- [\fB\-x\fR|\fB\-\-no\-idata4\fR] [\fB\-c\fR|\fB\-\-no\-idata5\fR] [\fB\-i\fR|\fB\-\-interwork\fR]
- [\fB\-n\fR|\fB\-\-nodelete\fR] [\fB\-t\fR|\fB\-\-temp\-prefix\fR \fIprefix\fR]
- [\fB\-v\fR|\fB\-\-verbose\fR]
- [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
- [object\-file ...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBdlltool\fR reads its inputs, which can come from the \fB\-d\fR and
-\&\fB\-b\fR options as well as object files specified on the command
-line. It then processes these inputs and if the \fB\-e\fR option has
-been specified it creates a exports file. If the \fB\-l\fR option
-has been specified it creates a library file and if the \fB\-z\fR option
-has been specified it creates a def file. Any or all of the \fB\-e\fR,
-\&\fB\-l\fR and \fB\-z\fR options can be present in one invocation of
-dlltool.
-.PP
-When creating a \s-1DLL\s0, along with the source for the \s-1DLL\s0, it is necessary
-to have three other files. \fBdlltool\fR can help with the creation of
-these files.
-.PP
-The first file is a \fI.def\fR file which specifies which functions are
-exported from the \s-1DLL\s0, which functions the \s-1DLL\s0 imports, and so on. This
-is a text file and can be created by hand, or \fBdlltool\fR can be used
-to create it using the \fB\-z\fR option. In this case \fBdlltool\fR
-will scan the object files specified on its command line looking for
-those functions which have been specially marked as being exported and
-put entries for them in the \fI.def\fR file it creates.
-.PP
-In order to mark a function as being exported from a \s-1DLL\s0, it needs to
-have an \fB\-export:<name_of_function>\fR entry in the \fB.drectve\fR
-section of the object file. This can be done in C by using the
-\&\fIasm()\fR operator:
-.PP
-.Vb 2
-\& asm (".section .drectve");
-\& asm (".ascii \e"\-export:my_func\e"");
-.Ve
-.PP
-.Vb 1
-\& int my_func (void) { ... }
-.Ve
-.PP
-The second file needed for \s-1DLL\s0 creation is an exports file. This file
-is linked with the object files that make up the body of the \s-1DLL\s0 and it
-handles the interface between the \s-1DLL\s0 and the outside world. This is a
-binary file and it can be created by giving the \fB\-e\fR option to
-\&\fBdlltool\fR when it is creating or reading in a \fI.def\fR file.
-.PP
-The third file needed for \s-1DLL\s0 creation is the library file that programs
-will link with in order to access the functions in the \s-1DLL\s0. This file
-can be created by giving the \fB\-l\fR option to dlltool when it
-is creating or reading in a \fI.def\fR file.
-.PP
-\&\fBdlltool\fR builds the library file by hand, but it builds the
-exports file by creating temporary files containing assembler statements
-and then assembling these. The \fB\-S\fR command line option can be
-used to specify the path to the assembler that dlltool will use,
-and the \fB\-f\fR option can be used to pass specific flags to that
-assembler. The \fB\-n\fR can be used to prevent dlltool from deleting
-these temporary assembler files when it is done, and if \fB\-n\fR is
-specified twice then this will prevent dlltool from deleting the
-temporary object files it used to build the library.
-.PP
-Here is an example of creating a \s-1DLL\s0 from a source file \fBdll.c\fR and
-also creating a program (from an object file called \fBprogram.o\fR)
-that uses that \s-1DLL:\s0
-.PP
-.Vb 4
-\& gcc \-c dll.c
-\& dlltool \-e exports.o \-l dll.lib dll.o
-\& gcc dll.o exports.o \-o dll.dll
-\& gcc program.o dll.lib \-o program
-.Ve
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The command line options have the following meanings:
-.IP "\fB\-d\fR \fIfilename\fR" 4
-.IX Item "-d filename"
-.PD 0
-.IP "\fB\-\-input\-def\fR \fIfilename\fR" 4
-.IX Item "--input-def filename"
-.PD
-Specifies the name of a \fI.def\fR file to be read in and processed.
-.IP "\fB\-b\fR \fIfilename\fR" 4
-.IX Item "-b filename"
-.PD 0
-.IP "\fB\-\-base\-file\fR \fIfilename\fR" 4
-.IX Item "--base-file filename"
-.PD
-Specifies the name of a base file to be read in and processed. The
-contents of this file will be added to the relocation section in the
-exports file generated by dlltool.
-.IP "\fB\-e\fR \fIfilename\fR" 4
-.IX Item "-e filename"
-.PD 0
-.IP "\fB\-\-output\-exp\fR \fIfilename\fR" 4
-.IX Item "--output-exp filename"
-.PD
-Specifies the name of the export file to be created by dlltool.
-.IP "\fB\-z\fR \fIfilename\fR" 4
-.IX Item "-z filename"
-.PD 0
-.IP "\fB\-\-output\-def\fR \fIfilename\fR" 4
-.IX Item "--output-def filename"
-.PD
-Specifies the name of the \fI.def\fR file to be created by dlltool.
-.IP "\fB\-l\fR \fIfilename\fR" 4
-.IX Item "-l filename"
-.PD 0
-.IP "\fB\-\-output\-lib\fR \fIfilename\fR" 4
-.IX Item "--output-lib filename"
-.PD
-Specifies the name of the library file to be created by dlltool.
-.IP "\fB\-\-export\-all\-symbols\fR" 4
-.IX Item "--export-all-symbols"
-Treat all global and weak defined symbols found in the input object
-files as symbols to be exported. There is a small list of symbols which
-are not exported by default; see the \fB\-\-no\-default\-excludes\fR
-option. You may add to the list of symbols to not export by using the
-\&\fB\-\-exclude\-symbols\fR option.
-.IP "\fB\-\-no\-export\-all\-symbols\fR" 4
-.IX Item "--no-export-all-symbols"
-Only export symbols explicitly listed in an input \fI.def\fR file or in
-\&\fB.drectve\fR sections in the input object files. This is the default
-behaviour. The \fB.drectve\fR sections are created by \fBdllexport\fR
-attributes in the source code.
-.IP "\fB\-\-exclude\-symbols\fR \fIlist\fR" 4
-.IX Item "--exclude-symbols list"
-Do not export the symbols in \fIlist\fR. This is a list of symbol names
-separated by comma or colon characters. The symbol names should not
-contain a leading underscore. This is only meaningful when
-\&\fB\-\-export\-all\-symbols\fR is used.
-.IP "\fB\-\-no\-default\-excludes\fR" 4
-.IX Item "--no-default-excludes"
-When \fB\-\-export\-all\-symbols\fR is used, it will by default avoid
-exporting certain special symbols. The current list of symbols to avoid
-exporting is \fBDllMain@12\fR, \fBDllEntryPoint@0\fR,
-\&\fBimpure_ptr\fR. You may use the \fB\-\-no\-default\-excludes\fR option
-to go ahead and export these special symbols. This is only meaningful
-when \fB\-\-export\-all\-symbols\fR is used.
-.IP "\fB\-S\fR \fIpath\fR" 4
-.IX Item "-S path"
-.PD 0
-.IP "\fB\-\-as\fR \fIpath\fR" 4
-.IX Item "--as path"
-.PD
-Specifies the path, including the filename, of the assembler to be used
-to create the exports file.
-.IP "\fB\-f\fR \fIoptions\fR" 4
-.IX Item "-f options"
-.PD 0
-.IP "\fB\-\-as\-flags\fR \fIoptions\fR" 4
-.IX Item "--as-flags options"
-.PD
-Specifies any specific command line options to be passed to the
-assembler when building the exports file. This option will work even if
-the \fB\-S\fR option is not used. This option only takes one argument,
-and if it occurs more than once on the command line, then later
-occurrences will override earlier occurrences. So if it is necessary to
-pass multiple options to the assembler they should be enclosed in
-double quotes.
-.IP "\fB\-D\fR \fIname\fR" 4
-.IX Item "-D name"
-.PD 0
-.IP "\fB\-\-dll\-name\fR \fIname\fR" 4
-.IX Item "--dll-name name"
-.PD
-Specifies the name to be stored in the \fI.def\fR file as the name of
-the \s-1DLL\s0 when the \fB\-e\fR option is used. If this option is not
-present, then the filename given to the \fB\-e\fR option will be
-used as the name of the \s-1DLL\s0.
-.IP "\fB\-m\fR \fImachine\fR" 4
-.IX Item "-m machine"
-.PD 0
-.IP "\fB\-machine\fR \fImachine\fR" 4
-.IX Item "-machine machine"
-.PD
-Specifies the type of machine for which the library file should be
-built. \fBdlltool\fR has a built in default type, depending upon how
-it was created, but this option can be used to override that. This is
-normally only useful when creating DLLs for an \s-1ARM\s0 processor, when the
-contents of the \s-1DLL\s0 are actually encode using Thumb instructions.
-.IP "\fB\-a\fR" 4
-.IX Item "-a"
-.PD 0
-.IP "\fB\-\-add\-indirect\fR" 4
-.IX Item "--add-indirect"
-.PD
-Specifies that when \fBdlltool\fR is creating the exports file it
-should add a section which allows the exported functions to be
-referenced without using the import library. Whatever the hell that
-means!
-.IP "\fB\-U\fR" 4
-.IX Item "-U"
-.PD 0
-.IP "\fB\-\-add\-underscore\fR" 4
-.IX Item "--add-underscore"
-.PD
-Specifies that when \fBdlltool\fR is creating the exports file it
-should prepend an underscore to the names of \fIall\fR exported symbols.
-.IP "\fB\-\-add\-stdcall\-underscore\fR" 4
-.IX Item "--add-stdcall-underscore"
-Specifies that when \fBdlltool\fR is creating the exports file it
-should prepend an underscore to the names of exported \fIstdcall\fR
-functions. Variable names and non-stdcall function names are not modified.
-This option is useful when creating GNU-compatible import libs for third
-party DLLs that were built with MS-Windows tools.
-.IP "\fB\-k\fR" 4
-.IX Item "-k"
-.PD 0
-.IP "\fB\-\-kill\-at\fR" 4
-.IX Item "--kill-at"
-.PD
-Specifies that when \fBdlltool\fR is creating the exports file it
-should not append the string \fB@ <number>\fR. These numbers are
-called ordinal numbers and they represent another way of accessing the
-function in a \s-1DLL\s0, other than by name.
-.IP "\fB\-A\fR" 4
-.IX Item "-A"
-.PD 0
-.IP "\fB\-\-add\-stdcall\-alias\fR" 4
-.IX Item "--add-stdcall-alias"
-.PD
-Specifies that when \fBdlltool\fR is creating the exports file it
-should add aliases for stdcall symbols without \fB@ <number>\fR
-in addition to the symbols with \fB@ <number>\fR.
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-ext\-prefix\-alias\fR \fIprefix\fR" 4
-.IX Item "--ext-prefix-alias prefix"
-.PD
-Causes \fBdlltool\fR to create external aliases for all \s-1DLL\s0
-imports with the specified prefix. The aliases are created for both
-external and import symbols with no leading underscore.
-.IP "\fB\-x\fR" 4
-.IX Item "-x"
-.PD 0
-.IP "\fB\-\-no\-idata4\fR" 4
-.IX Item "--no-idata4"
-.PD
-Specifies that when \fBdlltool\fR is creating the exports and library
-files it should omit the \f(CW\*(C`.idata4\*(C'\fR section. This is for compatibility
-with certain operating systems.
-.IP "\fB\-c\fR" 4
-.IX Item "-c"
-.PD 0
-.IP "\fB\-\-no\-idata5\fR" 4
-.IX Item "--no-idata5"
-.PD
-Specifies that when \fBdlltool\fR is creating the exports and library
-files it should omit the \f(CW\*(C`.idata5\*(C'\fR section. This is for compatibility
-with certain operating systems.
-.IP "\fB\-i\fR" 4
-.IX Item "-i"
-.PD 0
-.IP "\fB\-\-interwork\fR" 4
-.IX Item "--interwork"
-.PD
-Specifies that \fBdlltool\fR should mark the objects in the library
-file and exports file that it produces as supporting interworking
-between \s-1ARM\s0 and Thumb code.
-.IP "\fB\-n\fR" 4
-.IX Item "-n"
-.PD 0
-.IP "\fB\-\-nodelete\fR" 4
-.IX Item "--nodelete"
-.PD
-Makes \fBdlltool\fR preserve the temporary assembler files it used to
-create the exports file. If this option is repeated then dlltool will
-also preserve the temporary object files it uses to create the library
-file.
-.IP "\fB\-t\fR \fIprefix\fR" 4
-.IX Item "-t prefix"
-.PD 0
-.IP "\fB\-\-temp\-prefix\fR \fIprefix\fR" 4
-.IX Item "--temp-prefix prefix"
-.PD
-Makes \fBdlltool\fR use \fIprefix\fR when constructing the names of
-temporary assembler and object files. By default, the temp file prefix
-is generated from the pid.
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.PD 0
-.IP "\fB\-\-verbose\fR" 4
-.IX Item "--verbose"
-.PD
-Make dlltool describe what it is doing.
-.IP "\fB\-h\fR" 4
-.IX Item "-h"
-.PD 0
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-.PD
-Displays a list of command line options and then exits.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Displays dlltool's version number and then exits.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-The Info pages for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/doc/fdl.texi b/binutils-2.17/binutils/doc/fdl.texi
deleted file mode 100644
index cb9b4ae9..00000000
--- a/binutils-2.17/binutils/doc/fdl.texi
+++ /dev/null
@@ -1,368 +0,0 @@
-@c -*-texinfo-*-
-@node GNU Free Documentation License
-
-@appendix GNU Free Documentation License
-@center Version 1.1, March 2000
-
-@display
-Copyright (C) 2000, 2003 Free Software Foundation, Inc.
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-@end display
-@sp 1
-@enumerate 0
-@item
-PREAMBLE
-
-The purpose of this License is to make a manual, textbook, or other
-written document ``free'' in the sense of freedom: to assure everyone
-the effective freedom to copy and redistribute it, with or without
-modifying it, either commercially or noncommercially. Secondarily,
-this License preserves for the author and publisher a way to get
-credit for their work, while not being considered responsible for
-modifications made by others.
-
-This License is a kind of ``copyleft'', which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.
-
-@sp 1
-@item
-APPLICABILITY AND DEFINITIONS
-
-This License applies to any manual or other work that contains a
-notice placed by the copyright holder saying it can be distributed
-under the terms of this License. The ``Document'', below, refers to any
-such manual or work. Any member of the public is a licensee, and is
-addressed as ``you.''
-
-A ``Modified Version'' of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A ``Secondary Section'' is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject. (For example, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.) The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The ``Invariant Sections'' are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License.
-
-The ``Cover Texts'' are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License.
-
-A ``Transparent'' copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, whose contents can be viewed and edited directly and
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters. A copy made in an otherwise Transparent file
-format whose markup has been designed to thwart or discourage
-subsequent modification by readers is not Transparent. A copy that is
-not ``Transparent'' is called ``Opaque.''
-
-Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML designed for human modification. Opaque formats include
-PostScript, PDF, proprietary formats that can be read and edited only
-by proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML produced by some word processors for output
-purposes only.
-
-The ``Title Page'' means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in
-formats which do not have any title page as such, ``Title Page'' means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-@sp 1
-@item
-VERBATIM COPYING
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License. You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute. However, you may accept
-compensation in exchange for copies. If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-@sp 1
-@item
-COPYING IN QUANTITY
-
-If you publish printed copies of the Document numbering more than 100,
-and the Document's license notice requires Cover Texts, you must enclose
-the copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover. Both covers must also clearly and legibly identify
-you as the publisher of these copies. The front cover must present
-the full title with all words of the title equally prominent and
-visible. You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a publicly-accessible computer-network location containing a complete
-Transparent copy of the Document, free of added material, which the
-general network-using public has access to download anonymously at no
-charge using public-standard network protocols. If you use the latter
-option, you must take reasonably prudent steps, when you begin
-distribution of Opaque copies in quantity, to ensure that this
-Transparent copy will remain thus accessible at the stated location
-until at least one year after the last time you distribute an Opaque
-copy (directly or through your agents or retailers) of that edition to
-the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-@sp 1
-@item
-MODIFICATIONS
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it. In addition, you must do these things in the Modified Version:
-
-A. Use in the Title Page (and on the covers, if any) a title distinct
- from that of the Document, and from those of previous versions
- (which should, if there were any, be listed in the History section
- of the Document). You may use the same title as a previous version
- if the original publisher of that version gives permission.@*
-B. List on the Title Page, as authors, one or more persons or entities
- responsible for authorship of the modifications in the Modified
- Version, together with at least five of the principal authors of the
- Document (all of its principal authors, if it has less than five).@*
-C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.@*
-D. Preserve all the copyright notices of the Document.@*
-E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.@*
-F. Include, immediately after the copyright notices, a license notice
- giving the public permission to use the Modified Version under the
- terms of this License, in the form shown in the Addendum below.@*
-G. Preserve in that license notice the full lists of Invariant Sections
- and required Cover Texts given in the Document's license notice.@*
-H. Include an unaltered copy of this License.@*
-I. Preserve the section entitled ``History'', and its title, and add to
- it an item stating at least the title, year, new authors, and
- publisher of the Modified Version as given on the Title Page. If
- there is no section entitled ``History'' in the Document, create one
- stating the title, year, authors, and publisher of the Document as
- given on its Title Page, then add an item describing the Modified
- Version as stated in the previous sentence.@*
-J. Preserve the network location, if any, given in the Document for
- public access to a Transparent copy of the Document, and likewise
- the network locations given in the Document for previous versions
- it was based on. These may be placed in the ``History'' section.
- You may omit a network location for a work that was published at
- least four years before the Document itself, or if the original
- publisher of the version it refers to gives permission.@*
-K. In any section entitled ``Acknowledgements'' or ``Dedications'',
- preserve the section's title, and preserve in the section all the
- substance and tone of each of the contributor acknowledgements
- and/or dedications given therein.@*
-L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section titles.@*
-M. Delete any section entitled ``Endorsements.'' Such a section
- may not be included in the Modified Version.@*
-N. Do not retitle any existing section as ``Endorsements''
- or to conflict in title with any Invariant Section.@*
-@sp 1
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant. To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section entitled ``Endorsements'', provided it contains
-nothing but endorsements of your Modified Version by various
-parties--for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version. Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity. If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-@sp 1
-@item
-COMBINING DOCUMENTS
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy. If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections entitled ``History''
-in the various original documents, forming one section entitled
-``History''; likewise combine any sections entitled ``Acknowledgements'',
-and any sections entitled ``Dedications.'' You must delete all sections
-entitled ``Endorsements.''
-@sp 1
-@item
-COLLECTIONS OF DOCUMENTS
-
-You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-
-You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-@sp 1
-@item
-AGGREGATION WITH INDEPENDENT WORKS
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, does not as a whole count as a Modified Version
-of the Document, provided no compilation copyright is claimed for the
-compilation. Such a compilation is called an ``aggregate'', and this
-License does not apply to the other self-contained works thus compiled
-with the Document, on account of their being thus compiled, if they
-are not themselves derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one quarter
-of the entire aggregate, the Document's Cover Texts may be placed on
-covers that surround only the Document within the aggregate.
-Otherwise they must appear on covers around the whole aggregate.
-@sp 1
-@item
-TRANSLATION
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections. You may include a
-translation of this License provided that you also include the
-original English version of this License. In case of a disagreement
-between the translation and the original English version of this
-License, the original English version will prevail.
-@sp 1
-@item
-TERMINATION
-
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License. Any other attempt to
-copy, modify, sublicense or distribute the Document 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.
-@sp 1
-@item
-FUTURE REVISIONS OF THIS LICENSE
-
-The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation 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. See
-http://www.gnu.org/copyleft/.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License ``or any later version'' applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation. If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.
-
-@end enumerate
-
-@unnumberedsec ADDENDUM: How to use this License for your documents
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
-@smallexample
-@group
-Copyright (C) @var{year} @var{your name}.
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with the Invariant Sections being @var{list their titles}, with the
-Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}.
-A copy of the license is included in the section entitled "GNU
-Free Documentation License."
-@end group
-@end smallexample
-
-If you have no Invariant Sections, write ``with no Invariant Sections''
-instead of saying which ones are invariant. If you have no
-Front-Cover Texts, write ``no Front-Cover Texts'' instead of
-``Front-Cover Texts being @var{list}''; likewise for Back-Cover Texts.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
diff --git a/binutils-2.17/binutils/doc/nlmconv.1 b/binutils-2.17/binutils/doc/nlmconv.1
deleted file mode 100644
index d8f4d14c..00000000
--- a/binutils-2.17/binutils/doc/nlmconv.1
+++ /dev/null
@@ -1,243 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "NLMCONV 1"
-.TH NLMCONV 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-nlmconv \- converts object code into an NLM.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-nlmconv [\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR]
- [\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR]
- [\fB\-T\fR \fIheaderfile\fR|\fB\-\-header\-file=\fR\fIheaderfile\fR]
- [\fB\-d\fR|\fB\-\-debug\fR] [\fB\-l\fR \fIlinker\fR|\fB\-\-linker=\fR\fIlinker\fR]
- [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
- \fIinfile\fR \fIoutfile\fR
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBnlmconv\fR converts the relocatable \fBi386\fR object file
-\&\fIinfile\fR into the NetWare Loadable Module \fIoutfile\fR, optionally
-reading \fIheaderfile\fR for \s-1NLM\s0 header information. For instructions
-on writing the \s-1NLM\s0 command file language used in header files, see the
-\&\fBlinkers\fR section, \fB\s-1NLMLINK\s0\fR in particular, of the \fI\s-1NLM\s0
-Development and Tools Overview\fR, which is part of the \s-1NLM\s0 Software
-Developer's Kit (\*(L"\s-1NLM\s0 \s-1SDK\s0\*(R"), available from Novell, Inc.
-\&\fBnlmconv\fR uses the \s-1GNU\s0 Binary File Descriptor library to read
-\&\fIinfile\fR;
-.PP
-\&\fBnlmconv\fR can perform a link step. In other words, you can list
-more than one object file for input if you list them in the definitions
-file (rather than simply specifying one input file on the command line).
-In this case, \fBnlmconv\fR calls the linker for you.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-I\fR \fIbfdname\fR" 4
-.IX Item "-I bfdname"
-.PD 0
-.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
-.IX Item "--input-target=bfdname"
-.PD
-Object format of the input file. \fBnlmconv\fR can usually determine
-the format of a given file (so no default is necessary).
-.IP "\fB\-O\fR \fIbfdname\fR" 4
-.IX Item "-O bfdname"
-.PD 0
-.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
-.IX Item "--output-target=bfdname"
-.PD
-Object format of the output file. \fBnlmconv\fR infers the output
-format based on the input format, e.g. for a \fBi386\fR input file the
-output format is \fBnlm32\-i386\fR.
-.IP "\fB\-T\fR \fIheaderfile\fR" 4
-.IX Item "-T headerfile"
-.PD 0
-.IP "\fB\-\-header\-file=\fR\fIheaderfile\fR" 4
-.IX Item "--header-file=headerfile"
-.PD
-Reads \fIheaderfile\fR for \s-1NLM\s0 header information. For instructions on
-writing the \s-1NLM\s0 command file language used in header files, see see the
-\&\fBlinkers\fR section, of the \fI\s-1NLM\s0 Development and Tools
-Overview\fR, which is part of the \s-1NLM\s0 Software Developer's Kit, available
-from Novell, Inc.
-.IP "\fB\-d\fR" 4
-.IX Item "-d"
-.PD 0
-.IP "\fB\-\-debug\fR" 4
-.IX Item "--debug"
-.PD
-Displays (on standard error) the linker command line used by \fBnlmconv\fR.
-.IP "\fB\-l\fR \fIlinker\fR" 4
-.IX Item "-l linker"
-.PD 0
-.IP "\fB\-\-linker=\fR\fIlinker\fR" 4
-.IX Item "--linker=linker"
-.PD
-Use \fIlinker\fR for any linking. \fIlinker\fR can be an absolute or a
-relative pathname.
-.IP "\fB\-h\fR" 4
-.IX Item "-h"
-.PD 0
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-.PD
-Prints a usage summary.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Prints the version number for \fBnlmconv\fR.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/doc/nm.1 b/binutils-2.17/binutils/doc/nm.1
deleted file mode 100644
index 9f2271c7..00000000
--- a/binutils-2.17/binutils/doc/nm.1
+++ /dev/null
@@ -1,449 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "NM 1"
-.TH NM 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-nm \- list symbols from object files
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-nm [\fB\-a\fR|\fB\-\-debug\-syms\fR] [\fB\-g\fR|\fB\-\-extern\-only\fR]
- [\fB\-B\fR] [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]] [\fB\-D\fR|\fB\-\-dynamic\fR]
- [\fB\-S\fR|\fB\-\-print\-size\fR] [\fB\-s\fR|\fB\-\-print\-armap\fR]
- [\fB\-A\fR|\fB\-o\fR|\fB\-\-print\-file\-name\fR][\fB\-\-special\-syms\fR]
- [\fB\-n\fR|\fB\-v\fR|\fB\-\-numeric\-sort\fR] [\fB\-p\fR|\fB\-\-no\-sort\fR]
- [\fB\-r\fR|\fB\-\-reverse\-sort\fR] [\fB\-\-size\-sort\fR] [\fB\-u\fR|\fB\-\-undefined\-only\fR]
- [\fB\-t\fR \fIradix\fR|\fB\-\-radix=\fR\fIradix\fR] [\fB\-P\fR|\fB\-\-portability\fR]
- [\fB\-\-target=\fR\fIbfdname\fR] [\fB\-f\fR\fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
- [\fB\-\-defined\-only\fR] [\fB\-l\fR|\fB\-\-line\-numbers\fR] [\fB\-\-no\-demangle\fR]
- [\fB\-V\fR|\fB\-\-version\fR] [\fB\-X 32_64\fR] [\fB\-\-help\fR] [\fIobjfile\fR...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\s-1GNU\s0 \fBnm\fR lists the symbols from object files \fIobjfile\fR....
-If no object files are listed as arguments, \fBnm\fR assumes the file
-\&\fIa.out\fR.
-.PP
-For each symbol, \fBnm\fR shows:
-.IP "\(bu" 4
-The symbol value, in the radix selected by options (see below), or
-hexadecimal by default.
-.IP "\(bu" 4
-The symbol type. At least the following types are used; others are, as
-well, depending on the object file format. If lowercase, the symbol is
-local; if uppercase, the symbol is global (external).
-.RS 4
-.ie n .IP """A""" 4
-.el .IP "\f(CWA\fR" 4
-.IX Item "A"
-The symbol's value is absolute, and will not be changed by further
-linking.
-.ie n .IP """B""" 4
-.el .IP "\f(CWB\fR" 4
-.IX Item "B"
-The symbol is in the uninitialized data section (known as \s-1BSS\s0).
-.ie n .IP """C""" 4
-.el .IP "\f(CWC\fR" 4
-.IX Item "C"
-The symbol is common. Common symbols are uninitialized data. When
-linking, multiple common symbols may appear with the same name. If the
-symbol is defined anywhere, the common symbols are treated as undefined
-references.
-.ie n .IP """D""" 4
-.el .IP "\f(CWD\fR" 4
-.IX Item "D"
-The symbol is in the initialized data section.
-.ie n .IP """G""" 4
-.el .IP "\f(CWG\fR" 4
-.IX Item "G"
-The symbol is in an initialized data section for small objects. Some
-object file formats permit more efficient access to small data objects,
-such as a global int variable as opposed to a large global array.
-.ie n .IP """I""" 4
-.el .IP "\f(CWI\fR" 4
-.IX Item "I"
-The symbol is an indirect reference to another symbol. This is a \s-1GNU\s0
-extension to the a.out object file format which is rarely used.
-.ie n .IP """N""" 4
-.el .IP "\f(CWN\fR" 4
-.IX Item "N"
-The symbol is a debugging symbol.
-.ie n .IP """R""" 4
-.el .IP "\f(CWR\fR" 4
-.IX Item "R"
-The symbol is in a read only data section.
-.ie n .IP """S""" 4
-.el .IP "\f(CWS\fR" 4
-.IX Item "S"
-The symbol is in an uninitialized data section for small objects.
-.ie n .IP """T""" 4
-.el .IP "\f(CWT\fR" 4
-.IX Item "T"
-The symbol is in the text (code) section.
-.ie n .IP """U""" 4
-.el .IP "\f(CWU\fR" 4
-.IX Item "U"
-The symbol is undefined.
-.ie n .IP """V""" 4
-.el .IP "\f(CWV\fR" 4
-.IX Item "V"
-The symbol is a weak object. When a weak defined symbol is linked with
-a normal defined symbol, the normal defined symbol is used with no error.
-When a weak undefined symbol is linked and the symbol is not defined,
-the value of the weak symbol becomes zero with no error.
-.ie n .IP """W""" 4
-.el .IP "\f(CWW\fR" 4
-.IX Item "W"
-The symbol is a weak symbol that has not been specifically tagged as a
-weak object symbol. When a weak defined symbol is linked with a normal
-defined symbol, the normal defined symbol is used with no error.
-When a weak undefined symbol is linked and the symbol is not defined,
-the value of the symbol is determined in a system-specific manner without
-error. On some systems, uppercase indicates that a default value has been
-specified.
-.ie n .IP """\-""" 4
-.el .IP "\f(CW\-\fR" 4
-.IX Item "-"
-The symbol is a stabs symbol in an a.out object file. In this case, the
-next values printed are the stabs other field, the stabs desc field, and
-the stab type. Stabs symbols are used to hold debugging information.
-.ie n .IP """?""" 4
-.el .IP "\f(CW?\fR" 4
-.IX Item "?"
-The symbol type is unknown, or object file format specific.
-.RE
-.RS 4
-.RE
-.IP "\(bu" 4
-The symbol name.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The long and short forms of options, shown here as alternatives, are
-equivalent.
-.IP "\fB\-A\fR" 4
-.IX Item "-A"
-.PD 0
-.IP "\fB\-o\fR" 4
-.IX Item "-o"
-.IP "\fB\-\-print\-file\-name\fR" 4
-.IX Item "--print-file-name"
-.PD
-Precede each symbol by the name of the input file (or archive member)
-in which it was found, rather than identifying the input file once only,
-before all of its symbols.
-.IP "\fB\-a\fR" 4
-.IX Item "-a"
-.PD 0
-.IP "\fB\-\-debug\-syms\fR" 4
-.IX Item "--debug-syms"
-.PD
-Display all symbols, even debugger-only symbols; normally these are not
-listed.
-.IP "\fB\-B\fR" 4
-.IX Item "-B"
-The same as \fB\-\-format=bsd\fR (for compatibility with the \s-1MIPS\s0 \fBnm\fR).
-.IP "\fB\-C\fR" 4
-.IX Item "-C"
-.PD 0
-.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
-.IX Item "--demangle[=style]"
-.PD
-Decode (\fIdemangle\fR) low-level symbol names into user-level names.
-Besides removing any initial underscore prepended by the system, this
-makes \*(C+ function names readable. Different compilers have different
-mangling styles. The optional demangling style argument can be used to
-choose an appropriate demangling style for your compiler.
-.IP "\fB\-\-no\-demangle\fR" 4
-.IX Item "--no-demangle"
-Do not demangle low-level symbol names. This is the default.
-.IP "\fB\-D\fR" 4
-.IX Item "-D"
-.PD 0
-.IP "\fB\-\-dynamic\fR" 4
-.IX Item "--dynamic"
-.PD
-Display the dynamic symbols rather than the normal symbols. This is
-only meaningful for dynamic objects, such as certain types of shared
-libraries.
-.IP "\fB\-f\fR \fIformat\fR" 4
-.IX Item "-f format"
-.PD 0
-.IP "\fB\-\-format=\fR\fIformat\fR" 4
-.IX Item "--format=format"
-.PD
-Use the output format \fIformat\fR, which can be \f(CW\*(C`bsd\*(C'\fR,
-\&\f(CW\*(C`sysv\*(C'\fR, or \f(CW\*(C`posix\*(C'\fR. The default is \f(CW\*(C`bsd\*(C'\fR.
-Only the first character of \fIformat\fR is significant; it can be
-either upper or lower case.
-.IP "\fB\-g\fR" 4
-.IX Item "-g"
-.PD 0
-.IP "\fB\-\-extern\-only\fR" 4
-.IX Item "--extern-only"
-.PD
-Display only external symbols.
-.IP "\fB\-l\fR" 4
-.IX Item "-l"
-.PD 0
-.IP "\fB\-\-line\-numbers\fR" 4
-.IX Item "--line-numbers"
-.PD
-For each symbol, use debugging information to try to find a filename and
-line number. For a defined symbol, look for the line number of the
-address of the symbol. For an undefined symbol, look for the line
-number of a relocation entry which refers to the symbol. If line number
-information can be found, print it after the other symbol information.
-.IP "\fB\-n\fR" 4
-.IX Item "-n"
-.PD 0
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.IP "\fB\-\-numeric\-sort\fR" 4
-.IX Item "--numeric-sort"
-.PD
-Sort symbols numerically by their addresses, rather than alphabetically
-by their names.
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-no\-sort\fR" 4
-.IX Item "--no-sort"
-.PD
-Do not bother to sort the symbols in any order; print them in the order
-encountered.
-.IP "\fB\-P\fR" 4
-.IX Item "-P"
-.PD 0
-.IP "\fB\-\-portability\fR" 4
-.IX Item "--portability"
-.PD
-Use the \s-1POSIX\s0.2 standard output format instead of the default format.
-Equivalent to \fB\-f posix\fR.
-.IP "\fB\-S\fR" 4
-.IX Item "-S"
-.PD 0
-.IP "\fB\-\-print\-size\fR" 4
-.IX Item "--print-size"
-.PD
-Print size, not the value, of defined symbols for the \f(CW\*(C`bsd\*(C'\fR output format.
-.IP "\fB\-s\fR" 4
-.IX Item "-s"
-.PD 0
-.IP "\fB\-\-print\-armap\fR" 4
-.IX Item "--print-armap"
-.PD
-When listing symbols from archive members, include the index: a mapping
-(stored in the archive by \fBar\fR or \fBranlib\fR) of which modules
-contain definitions for which names.
-.IP "\fB\-r\fR" 4
-.IX Item "-r"
-.PD 0
-.IP "\fB\-\-reverse\-sort\fR" 4
-.IX Item "--reverse-sort"
-.PD
-Reverse the order of the sort (whether numeric or alphabetic); let the
-last come first.
-.IP "\fB\-\-size\-sort\fR" 4
-.IX Item "--size-sort"
-Sort symbols by size. The size is computed as the difference between
-the value of the symbol and the value of the symbol with the next higher
-value. If the \f(CW\*(C`bsd\*(C'\fR output format is used the size of the symbol
-is printed, rather than the value, and \fB\-S\fR must be used in order
-both size and value to be printed.
-.IP "\fB\-\-special\-syms\fR" 4
-.IX Item "--special-syms"
-Display symbols which have a target-specific special meaning. These
-symbols are usually used by the target for some special processing and
-are not normally helpful when included included in the normal symbol
-lists. For example for \s-1ARM\s0 targets this option would skip the mapping
-symbols used to mark transistions between \s-1ARM\s0 code, \s-1THUMB\s0 code and
-data.
-.IP "\fB\-t\fR \fIradix\fR" 4
-.IX Item "-t radix"
-.PD 0
-.IP "\fB\-\-radix=\fR\fIradix\fR" 4
-.IX Item "--radix=radix"
-.PD
-Use \fIradix\fR as the radix for printing the symbol values. It must be
-\&\fBd\fR for decimal, \fBo\fR for octal, or \fBx\fR for hexadecimal.
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-Specify an object code format other than your system's default format.
-.IP "\fB\-u\fR" 4
-.IX Item "-u"
-.PD 0
-.IP "\fB\-\-undefined\-only\fR" 4
-.IX Item "--undefined-only"
-.PD
-Display only undefined symbols (those external to each object file).
-.IP "\fB\-\-defined\-only\fR" 4
-.IX Item "--defined-only"
-Display only defined symbols for each object file.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Show the version number of \fBnm\fR and exit.
-.IP "\fB\-X\fR" 4
-.IX Item "-X"
-This option is ignored for compatibility with the \s-1AIX\s0 version of
-\&\fBnm\fR. It takes one parameter which must be the string
-\&\fB32_64\fR. The default mode of \s-1AIX\s0 \fBnm\fR corresponds
-to \fB\-X 32\fR, which is not supported by \s-1GNU\s0 \fBnm\fR.
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Show a summary of the options to \fBnm\fR and exit.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/doc/objcopy.1 b/binutils-2.17/binutils/doc/objcopy.1
deleted file mode 100644
index 828cddef..00000000
--- a/binutils-2.17/binutils/doc/objcopy.1
+++ /dev/null
@@ -1,795 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "OBJCOPY 1"
-.TH OBJCOPY 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-objcopy \- copy and translate object files
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-objcopy [\fB\-F\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
- [\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR]
- [\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR]
- [\fB\-B\fR \fIbfdarch\fR|\fB\-\-binary\-architecture=\fR\fIbfdarch\fR]
- [\fB\-S\fR|\fB\-\-strip\-all\fR]
- [\fB\-g\fR|\fB\-\-strip\-debug\fR]
- [\fB\-K\fR \fIsymbolname\fR|\fB\-\-keep\-symbol=\fR\fIsymbolname\fR]
- [\fB\-N\fR \fIsymbolname\fR|\fB\-\-strip\-symbol=\fR\fIsymbolname\fR]
- [\fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR]
- [\fB\-G\fR \fIsymbolname\fR|\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR]
- [\fB\-L\fR \fIsymbolname\fR|\fB\-\-localize\-symbol=\fR\fIsymbolname\fR]
- [\fB\-\-globalize\-symbol=\fR\fIsymbolname\fR]
- [\fB\-W\fR \fIsymbolname\fR|\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR]
- [\fB\-w\fR|\fB\-\-wildcard\fR]
- [\fB\-x\fR|\fB\-\-discard\-all\fR]
- [\fB\-X\fR|\fB\-\-discard\-locals\fR]
- [\fB\-b\fR \fIbyte\fR|\fB\-\-byte=\fR\fIbyte\fR]
- [\fB\-i\fR \fIinterleave\fR|\fB\-\-interleave=\fR\fIinterleave\fR]
- [\fB\-j\fR \fIsectionname\fR|\fB\-\-only\-section=\fR\fIsectionname\fR]
- [\fB\-R\fR \fIsectionname\fR|\fB\-\-remove\-section=\fR\fIsectionname\fR]
- [\fB\-p\fR|\fB\-\-preserve\-dates\fR]
- [\fB\-\-debugging\fR]
- [\fB\-\-gap\-fill=\fR\fIval\fR]
- [\fB\-\-pad\-to=\fR\fIaddress\fR]
- [\fB\-\-set\-start=\fR\fIval\fR]
- [\fB\-\-adjust\-start=\fR\fIincr\fR]
- [\fB\-\-change\-addresses=\fR\fIincr\fR]
- [\fB\-\-change\-section\-address\fR \fIsection\fR{=,+,\-}\fIval\fR]
- [\fB\-\-change\-section\-lma\fR \fIsection\fR{=,+,\-}\fIval\fR]
- [\fB\-\-change\-section\-vma\fR \fIsection\fR{=,+,\-}\fIval\fR]
- [\fB\-\-change\-warnings\fR] [\fB\-\-no\-change\-warnings\fR]
- [\fB\-\-set\-section\-flags\fR \fIsection\fR=\fIflags\fR]
- [\fB\-\-add\-section\fR \fIsectionname\fR=\fIfilename\fR]
- [\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR[,\fIflags\fR]]
- [\fB\-\-change\-leading\-char\fR] [\fB\-\-remove\-leading\-char\fR]
- [\fB\-\-srec\-len=\fR\fIival\fR] [\fB\-\-srec\-forceS3\fR]
- [\fB\-\-redefine\-sym\fR \fIold\fR=\fInew\fR]
- [\fB\-\-redefine\-syms=\fR\fIfilename\fR]
- [\fB\-\-weaken\fR]
- [\fB\-\-keep\-symbols=\fR\fIfilename\fR]
- [\fB\-\-strip\-symbols=\fR\fIfilename\fR]
- [\fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR]
- [\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR]
- [\fB\-\-localize\-symbols=\fR\fIfilename\fR]
- [\fB\-\-globalize\-symbols=\fR\fIfilename\fR]
- [\fB\-\-weaken\-symbols=\fR\fIfilename\fR]
- [\fB\-\-alt\-machine\-code=\fR\fIindex\fR]
- [\fB\-\-prefix\-symbols=\fR\fIstring\fR]
- [\fB\-\-prefix\-sections=\fR\fIstring\fR]
- [\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR]
- [\fB\-\-add\-gnu\-debuglink=\fR\fIpath-to-file\fR]
- [\fB\-\-keep\-file\-symbols\fR]
- [\fB\-\-only\-keep\-debug\fR]
- [\fB\-\-writable\-text\fR]
- [\fB\-\-readonly\-text\fR]
- [\fB\-\-pure\fR]
- [\fB\-\-impure\fR]
- [\fB\-v\fR|\fB\-\-verbose\fR]
- [\fB\-V\fR|\fB\-\-version\fR]
- [\fB\-\-help\fR] [\fB\-\-info\fR]
- \fIinfile\fR [\fIoutfile\fR]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \s-1GNU\s0 \fBobjcopy\fR utility copies the contents of an object
-file to another. \fBobjcopy\fR uses the \s-1GNU\s0 \s-1BFD\s0 Library to
-read and write the object files. It can write the destination object
-file in a format different from that of the source object file. The
-exact behavior of \fBobjcopy\fR is controlled by command-line options.
-Note that \fBobjcopy\fR should be able to copy a fully linked file
-between any two formats. However, copying a relocatable object file
-between any two formats may not work as expected.
-.PP
-\&\fBobjcopy\fR creates temporary files to do its translations and
-deletes them afterward. \fBobjcopy\fR uses \s-1BFD\s0 to do all its
-translation work; it has access to all the formats described in \s-1BFD\s0
-and thus is able to recognize most formats without being told
-explicitly.
-.PP
-\&\fBobjcopy\fR can be used to generate S\-records by using an output
-target of \fBsrec\fR (e.g., use \fB\-O srec\fR).
-.PP
-\&\fBobjcopy\fR can be used to generate a raw binary file by using an
-output target of \fBbinary\fR (e.g., use \fB\-O binary\fR). When
-\&\fBobjcopy\fR generates a raw binary file, it will essentially produce
-a memory dump of the contents of the input object file. All symbols and
-relocation information will be discarded. The memory dump will start at
-the load address of the lowest section copied into the output file.
-.PP
-When generating an S\-record or a raw binary file, it may be helpful to
-use \fB\-S\fR to remove sections containing debugging information. In
-some cases \fB\-R\fR will be useful to remove sections which contain
-information that is not needed by the binary file.
-.PP
-Note\-\-\-\fBobjcopy\fR is not able to change the endianness of its input
-files. If the input format has an endianness (some formats do not),
-\&\fBobjcopy\fR can only copy the inputs into file formats that have the
-same endianness or which have no endianness (e.g., \fBsrec\fR).
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fIinfile\fR" 4
-.IX Item "infile"
-.PD 0
-.IP "\fIoutfile\fR" 4
-.IX Item "outfile"
-.PD
-The input and output files, respectively.
-If you do not specify \fIoutfile\fR, \fBobjcopy\fR creates a
-temporary file and destructively renames the result with
-the name of \fIinfile\fR.
-.IP "\fB\-I\fR \fIbfdname\fR" 4
-.IX Item "-I bfdname"
-.PD 0
-.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
-.IX Item "--input-target=bfdname"
-.PD
-Consider the source file's object format to be \fIbfdname\fR, rather than
-attempting to deduce it.
-.IP "\fB\-O\fR \fIbfdname\fR" 4
-.IX Item "-O bfdname"
-.PD 0
-.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
-.IX Item "--output-target=bfdname"
-.PD
-Write the output file using the object format \fIbfdname\fR.
-.IP "\fB\-F\fR \fIbfdname\fR" 4
-.IX Item "-F bfdname"
-.PD 0
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-.PD
-Use \fIbfdname\fR as the object format for both the input and the output
-file; i.e., simply transfer data from source to destination with no
-translation.
-.IP "\fB\-B\fR \fIbfdarch\fR" 4
-.IX Item "-B bfdarch"
-.PD 0
-.IP "\fB\-\-binary\-architecture=\fR\fIbfdarch\fR" 4
-.IX Item "--binary-architecture=bfdarch"
-.PD
-Useful when transforming a raw binary input file into an object file.
-In this case the output architecture can be set to \fIbfdarch\fR. This
-option will be ignored if the input file has a known \fIbfdarch\fR. You
-can access this binary data inside a program by referencing the special
-symbols that are created by the conversion process. These symbols are
-called _binary_\fIobjfile\fR_start, _binary_\fIobjfile\fR_end and
-_binary_\fIobjfile\fR_size. e.g. you can transform a picture file into
-an object file and then access it in your code using these symbols.
-.IP "\fB\-j\fR \fIsectionname\fR" 4
-.IX Item "-j sectionname"
-.PD 0
-.IP "\fB\-\-only\-section=\fR\fIsectionname\fR" 4
-.IX Item "--only-section=sectionname"
-.PD
-Copy only the named section from the input file to the output file.
-This option may be given more than once. Note that using this option
-inappropriately may make the output file unusable.
-.IP "\fB\-R\fR \fIsectionname\fR" 4
-.IX Item "-R sectionname"
-.PD 0
-.IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4
-.IX Item "--remove-section=sectionname"
-.PD
-Remove any section named \fIsectionname\fR from the output file. This
-option may be given more than once. Note that using this option
-inappropriately may make the output file unusable.
-.IP "\fB\-S\fR" 4
-.IX Item "-S"
-.PD 0
-.IP "\fB\-\-strip\-all\fR" 4
-.IX Item "--strip-all"
-.PD
-Do not copy relocation and symbol information from the source file.
-.IP "\fB\-g\fR" 4
-.IX Item "-g"
-.PD 0
-.IP "\fB\-\-strip\-debug\fR" 4
-.IX Item "--strip-debug"
-.PD
-Do not copy debugging symbols or sections from the source file.
-.IP "\fB\-\-strip\-unneeded\fR" 4
-.IX Item "--strip-unneeded"
-Strip all symbols that are not needed for relocation processing.
-.IP "\fB\-K\fR \fIsymbolname\fR" 4
-.IX Item "-K symbolname"
-.PD 0
-.IP "\fB\-\-keep\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--keep-symbol=symbolname"
-.PD
-When stripping symbols, keep symbol \fIsymbolname\fR even if it would
-normally be stripped. This option may be given more than once.
-.IP "\fB\-N\fR \fIsymbolname\fR" 4
-.IX Item "-N symbolname"
-.PD 0
-.IP "\fB\-\-strip\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--strip-symbol=symbolname"
-.PD
-Do not copy symbol \fIsymbolname\fR from the source file. This option
-may be given more than once.
-.IP "\fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--strip-unneeded-symbol=symbolname"
-Do not copy symbol \fIsymbolname\fR from the source file unless it is needed
-by a relocation. This option may be given more than once.
-.IP "\fB\-G\fR \fIsymbolname\fR" 4
-.IX Item "-G symbolname"
-.PD 0
-.IP "\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--keep-global-symbol=symbolname"
-.PD
-Keep only symbol \fIsymbolname\fR global. Make all other symbols local
-to the file, so that they are not visible externally. This option may
-be given more than once.
-.IP "\fB\-L\fR \fIsymbolname\fR" 4
-.IX Item "-L symbolname"
-.PD 0
-.IP "\fB\-\-localize\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--localize-symbol=symbolname"
-.PD
-Make symbol \fIsymbolname\fR local to the file, so that it is not
-visible externally. This option may be given more than once.
-.IP "\fB\-W\fR \fIsymbolname\fR" 4
-.IX Item "-W symbolname"
-.PD 0
-.IP "\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--weaken-symbol=symbolname"
-.PD
-Make symbol \fIsymbolname\fR weak. This option may be given more than once.
-.IP "\fB\-\-globalize\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--globalize-symbol=symbolname"
-Give symbol \fIsymbolname\fR global scoping so that it is visible
-outside of the file in which it is defined. This option may be given
-more than once.
-.IP "\fB\-w\fR" 4
-.IX Item "-w"
-.PD 0
-.IP "\fB\-\-wildcard\fR" 4
-.IX Item "--wildcard"
-.PD
-Permit regular expressions in \fIsymbolname\fRs used in other command
-line options. The question mark (?), asterisk (*), backslash (\e) and
-square brackets ([]) operators can be used anywhere in the symbol
-name. If the first character of the symbol name is the exclamation
-point (!) then the sense of the switch is reversed for that symbol.
-For example:
-.Sp
-.Vb 1
-\& \-w \-W !foo \-W fo*
-.Ve
-.Sp
-would cause objcopy to weaken all symbols that start with \*(L"fo\*(R"
-except for the symbol \*(L"foo\*(R".
-.IP "\fB\-x\fR" 4
-.IX Item "-x"
-.PD 0
-.IP "\fB\-\-discard\-all\fR" 4
-.IX Item "--discard-all"
-.PD
-Do not copy non-global symbols from the source file.
-.IP "\fB\-X\fR" 4
-.IX Item "-X"
-.PD 0
-.IP "\fB\-\-discard\-locals\fR" 4
-.IX Item "--discard-locals"
-.PD
-Do not copy compiler-generated local symbols.
-(These usually start with \fBL\fR or \fB.\fR.)
-.IP "\fB\-b\fR \fIbyte\fR" 4
-.IX Item "-b byte"
-.PD 0
-.IP "\fB\-\-byte=\fR\fIbyte\fR" 4
-.IX Item "--byte=byte"
-.PD
-Keep only every \fIbyte\fRth byte of the input file (header data is not
-affected). \fIbyte\fR can be in the range from 0 to \fIinterleave\fR\-1,
-where \fIinterleave\fR is given by the \fB\-i\fR or \fB\-\-interleave\fR
-option, or the default of 4. This option is useful for creating files
-to program \s-1ROM\s0. It is typically used with an \f(CW\*(C`srec\*(C'\fR output
-target.
-.IP "\fB\-i\fR \fIinterleave\fR" 4
-.IX Item "-i interleave"
-.PD 0
-.IP "\fB\-\-interleave=\fR\fIinterleave\fR" 4
-.IX Item "--interleave=interleave"
-.PD
-Only copy one out of every \fIinterleave\fR bytes. Select which byte to
-copy with the \fB\-b\fR or \fB\-\-byte\fR option. The default is 4.
-\&\fBobjcopy\fR ignores this option if you do not specify either \fB\-b\fR or
-\&\fB\-\-byte\fR.
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-preserve\-dates\fR" 4
-.IX Item "--preserve-dates"
-.PD
-Set the access and modification dates of the output file to be the same
-as those of the input file.
-.IP "\fB\-\-debugging\fR" 4
-.IX Item "--debugging"
-Convert debugging information, if possible. This is not the default
-because only certain debugging formats are supported, and the
-conversion process can be time consuming.
-.IP "\fB\-\-gap\-fill\fR \fIval\fR" 4
-.IX Item "--gap-fill val"
-Fill gaps between sections with \fIval\fR. This operation applies to
-the \fIload address\fR (\s-1LMA\s0) of the sections. It is done by increasing
-the size of the section with the lower address, and filling in the extra
-space created with \fIval\fR.
-.IP "\fB\-\-pad\-to\fR \fIaddress\fR" 4
-.IX Item "--pad-to address"
-Pad the output file up to the load address \fIaddress\fR. This is
-done by increasing the size of the last section. The extra space is
-filled in with the value specified by \fB\-\-gap\-fill\fR (default zero).
-.IP "\fB\-\-set\-start\fR \fIval\fR" 4
-.IX Item "--set-start val"
-Set the start address of the new file to \fIval\fR. Not all object file
-formats support setting the start address.
-.IP "\fB\-\-change\-start\fR \fIincr\fR" 4
-.IX Item "--change-start incr"
-.PD 0
-.IP "\fB\-\-adjust\-start\fR \fIincr\fR" 4
-.IX Item "--adjust-start incr"
-.PD
-Change the start address by adding \fIincr\fR. Not all object file
-formats support setting the start address.
-.IP "\fB\-\-change\-addresses\fR \fIincr\fR" 4
-.IX Item "--change-addresses incr"
-.PD 0
-.IP "\fB\-\-adjust\-vma\fR \fIincr\fR" 4
-.IX Item "--adjust-vma incr"
-.PD
-Change the \s-1VMA\s0 and \s-1LMA\s0 addresses of all sections, as well as the start
-address, by adding \fIincr\fR. Some object file formats do not permit
-section addresses to be changed arbitrarily. Note that this does not
-relocate the sections; if the program expects sections to be loaded at a
-certain address, and this option is used to change the sections such
-that they are loaded at a different address, the program may fail.
-.IP "\fB\-\-change\-section\-address\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
-.IX Item "--change-section-address section{=,+,-}val"
-.PD 0
-.IP "\fB\-\-adjust\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
-.IX Item "--adjust-section-vma section{=,+,-}val"
-.PD
-Set or change both the \s-1VMA\s0 address and the \s-1LMA\s0 address of the named
-\&\fIsection\fR. If \fB=\fR is used, the section address is set to
-\&\fIval\fR. Otherwise, \fIval\fR is added to or subtracted from the
-section address. See the comments under \fB\-\-change\-addresses\fR,
-above. If \fIsection\fR does not exist in the input file, a warning will
-be issued, unless \fB\-\-no\-change\-warnings\fR is used.
-.IP "\fB\-\-change\-section\-lma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
-.IX Item "--change-section-lma section{=,+,-}val"
-Set or change the \s-1LMA\s0 address of the named \fIsection\fR. The \s-1LMA\s0
-address is the address where the section will be loaded into memory at
-program load time. Normally this is the same as the \s-1VMA\s0 address, which
-is the address of the section at program run time, but on some systems,
-especially those where a program is held in \s-1ROM\s0, the two can be
-different. If \fB=\fR is used, the section address is set to
-\&\fIval\fR. Otherwise, \fIval\fR is added to or subtracted from the
-section address. See the comments under \fB\-\-change\-addresses\fR,
-above. If \fIsection\fR does not exist in the input file, a warning
-will be issued, unless \fB\-\-no\-change\-warnings\fR is used.
-.IP "\fB\-\-change\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
-.IX Item "--change-section-vma section{=,+,-}val"
-Set or change the \s-1VMA\s0 address of the named \fIsection\fR. The \s-1VMA\s0
-address is the address where the section will be located once the
-program has started executing. Normally this is the same as the \s-1LMA\s0
-address, which is the address where the section will be loaded into
-memory, but on some systems, especially those where a program is held in
-\&\s-1ROM\s0, the two can be different. If \fB=\fR is used, the section address
-is set to \fIval\fR. Otherwise, \fIval\fR is added to or subtracted
-from the section address. See the comments under
-\&\fB\-\-change\-addresses\fR, above. If \fIsection\fR does not exist in
-the input file, a warning will be issued, unless
-\&\fB\-\-no\-change\-warnings\fR is used.
-.IP "\fB\-\-change\-warnings\fR" 4
-.IX Item "--change-warnings"
-.PD 0
-.IP "\fB\-\-adjust\-warnings\fR" 4
-.IX Item "--adjust-warnings"
-.PD
-If \fB\-\-change\-section\-address\fR or \fB\-\-change\-section\-lma\fR or
-\&\fB\-\-change\-section\-vma\fR is used, and the named section does not
-exist, issue a warning. This is the default.
-.IP "\fB\-\-no\-change\-warnings\fR" 4
-.IX Item "--no-change-warnings"
-.PD 0
-.IP "\fB\-\-no\-adjust\-warnings\fR" 4
-.IX Item "--no-adjust-warnings"
-.PD
-Do not issue a warning if \fB\-\-change\-section\-address\fR or
-\&\fB\-\-adjust\-section\-lma\fR or \fB\-\-adjust\-section\-vma\fR is used, even
-if the named section does not exist.
-.IP "\fB\-\-set\-section\-flags\fR \fIsection\fR\fB=\fR\fIflags\fR" 4
-.IX Item "--set-section-flags section=flags"
-Set the flags for the named section. The \fIflags\fR argument is a
-comma separated string of flag names. The recognized names are
-\&\fBalloc\fR, \fBcontents\fR, \fBload\fR, \fBnoload\fR,
-\&\fBreadonly\fR, \fBcode\fR, \fBdata\fR, \fBrom\fR, \fBshare\fR, and
-\&\fBdebug\fR. You can set the \fBcontents\fR flag for a section which
-does not have contents, but it is not meaningful to clear the
-\&\fBcontents\fR flag of a section which does have contents\*(--just remove
-the section instead. Not all flags are meaningful for all object file
-formats.
-.IP "\fB\-\-add\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4
-.IX Item "--add-section sectionname=filename"
-Add a new section named \fIsectionname\fR while copying the file. The
-contents of the new section are taken from the file \fIfilename\fR. The
-size of the section will be the size of the file. This option only
-works on file formats which can support sections with arbitrary names.
-.IP "\fB\-\-rename\-section\fR \fIoldname\fR\fB=\fR\fInewname\fR\fB[,\fR\fIflags\fR\fB]\fR" 4
-.IX Item "--rename-section oldname=newname[,flags]"
-Rename a section from \fIoldname\fR to \fInewname\fR, optionally
-changing the section's flags to \fIflags\fR in the process. This has
-the advantage over usng a linker script to perform the rename in that
-the output stays as an object file and does not become a linked
-executable.
-.Sp
-This option is particularly helpful when the input format is binary,
-since this will always create a section called .data. If for example,
-you wanted instead to create a section called .rodata containing binary
-data you could use the following command line to achieve it:
-.Sp
-.Vb 3
-\& objcopy \-I binary \-O <output_format> \-B <architecture> \e
-\& \-\-rename\-section .data=.rodata,alloc,load,readonly,data,contents \e
-\& <input_binary_file> <output_object_file>
-.Ve
-.IP "\fB\-\-change\-leading\-char\fR" 4
-.IX Item "--change-leading-char"
-Some object file formats use special characters at the start of
-symbols. The most common such character is underscore, which compilers
-often add before every symbol. This option tells \fBobjcopy\fR to
-change the leading character of every symbol when it converts between
-object file formats. If the object file formats use the same leading
-character, this option has no effect. Otherwise, it will add a
-character, or remove a character, or change a character, as
-appropriate.
-.IP "\fB\-\-remove\-leading\-char\fR" 4
-.IX Item "--remove-leading-char"
-If the first character of a global symbol is a special symbol leading
-character used by the object file format, remove the character. The
-most common symbol leading character is underscore. This option will
-remove a leading underscore from all global symbols. This can be useful
-if you want to link together objects of different file formats with
-different conventions for symbol names. This is different from
-\&\fB\-\-change\-leading\-char\fR because it always changes the symbol name
-when appropriate, regardless of the object file format of the output
-file.
-.IP "\fB\-\-srec\-len=\fR\fIival\fR" 4
-.IX Item "--srec-len=ival"
-Meaningful only for srec output. Set the maximum length of the Srecords
-being produced to \fIival\fR. This length covers both address, data and
-crc fields.
-.IP "\fB\-\-srec\-forceS3\fR" 4
-.IX Item "--srec-forceS3"
-Meaningful only for srec output. Avoid generation of S1/S2 records,
-creating S3\-only record format.
-.IP "\fB\-\-redefine\-sym\fR \fIold\fR\fB=\fR\fInew\fR" 4
-.IX Item "--redefine-sym old=new"
-Change the name of a symbol \fIold\fR, to \fInew\fR. This can be useful
-when one is trying link two things together for which you have no
-source, and there are name collisions.
-.IP "\fB\-\-redefine\-syms=\fR\fIfilename\fR" 4
-.IX Item "--redefine-syms=filename"
-Apply \fB\-\-redefine\-sym\fR to each symbol pair "\fIold\fR \fInew\fR"
-listed in the file \fIfilename\fR. \fIfilename\fR is simply a flat file,
-with one symbol pair per line. Line comments may be introduced by the hash
-character. This option may be given more than once.
-.IP "\fB\-\-weaken\fR" 4
-.IX Item "--weaken"
-Change all global symbols in the file to be weak. This can be useful
-when building an object which will be linked against other objects using
-the \fB\-R\fR option to the linker. This option is only effective when
-using an object file format which supports weak symbols.
-.IP "\fB\-\-keep\-symbols=\fR\fIfilename\fR" 4
-.IX Item "--keep-symbols=filename"
-Apply \fB\-\-keep\-symbol\fR option to each symbol listed in the file
-\&\fIfilename\fR. \fIfilename\fR is simply a flat file, with one symbol
-name per line. Line comments may be introduced by the hash character.
-This option may be given more than once.
-.IP "\fB\-\-strip\-symbols=\fR\fIfilename\fR" 4
-.IX Item "--strip-symbols=filename"
-Apply \fB\-\-strip\-symbol\fR option to each symbol listed in the file
-\&\fIfilename\fR. \fIfilename\fR is simply a flat file, with one symbol
-name per line. Line comments may be introduced by the hash character.
-This option may be given more than once.
-.IP "\fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR" 4
-.IX Item "--strip-unneeded-symbols=filename"
-Apply \fB\-\-strip\-unneeded\-symbol\fR option to each symbol listed in
-the file \fIfilename\fR. \fIfilename\fR is simply a flat file, with one
-symbol name per line. Line comments may be introduced by the hash
-character. This option may be given more than once.
-.IP "\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR" 4
-.IX Item "--keep-global-symbols=filename"
-Apply \fB\-\-keep\-global\-symbol\fR option to each symbol listed in the
-file \fIfilename\fR. \fIfilename\fR is simply a flat file, with one
-symbol name per line. Line comments may be introduced by the hash
-character. This option may be given more than once.
-.IP "\fB\-\-localize\-symbols=\fR\fIfilename\fR" 4
-.IX Item "--localize-symbols=filename"
-Apply \fB\-\-localize\-symbol\fR option to each symbol listed in the file
-\&\fIfilename\fR. \fIfilename\fR is simply a flat file, with one symbol
-name per line. Line comments may be introduced by the hash character.
-This option may be given more than once.
-.IP "\fB\-\-globalize\-symbols=\fR\fIfilename\fR" 4
-.IX Item "--globalize-symbols=filename"
-Apply \fB\-\-globalize\-symbol\fR option to each symbol listed in the file
-\&\fIfilename\fR. \fIfilename\fR is simply a flat file, with one symbol
-name per line. Line comments may be introduced by the hash character.
-This option may be given more than once.
-.IP "\fB\-\-weaken\-symbols=\fR\fIfilename\fR" 4
-.IX Item "--weaken-symbols=filename"
-Apply \fB\-\-weaken\-symbol\fR option to each symbol listed in the file
-\&\fIfilename\fR. \fIfilename\fR is simply a flat file, with one symbol
-name per line. Line comments may be introduced by the hash character.
-This option may be given more than once.
-.IP "\fB\-\-alt\-machine\-code=\fR\fIindex\fR" 4
-.IX Item "--alt-machine-code=index"
-If the output architecture has alternate machine codes, use the
-\&\fIindex\fRth code instead of the default one. This is useful in case
-a machine is assigned an official code and the tool-chain adopts the
-new code, but other applications still depend on the original code
-being used. For \s-1ELF\s0 based architectures if the \fIindex\fR
-alternative does not exist then the value is treated as an absolute
-number to be stored in the e_machine field of the \s-1ELF\s0 header.
-.IP "\fB\-\-writable\-text\fR" 4
-.IX Item "--writable-text"
-Mark the output text as writable. This option isn't meaningful for all
-object file formats.
-.IP "\fB\-\-readonly\-text\fR" 4
-.IX Item "--readonly-text"
-Make the output text write protected. This option isn't meaningful for all
-object file formats.
-.IP "\fB\-\-pure\fR" 4
-.IX Item "--pure"
-Mark the output file as demand paged. This option isn't meaningful for all
-object file formats.
-.IP "\fB\-\-impure\fR" 4
-.IX Item "--impure"
-Mark the output file as impure. This option isn't meaningful for all
-object file formats.
-.IP "\fB\-\-prefix\-symbols=\fR\fIstring\fR" 4
-.IX Item "--prefix-symbols=string"
-Prefix all symbols in the output file with \fIstring\fR.
-.IP "\fB\-\-prefix\-sections=\fR\fIstring\fR" 4
-.IX Item "--prefix-sections=string"
-Prefix all section names in the output file with \fIstring\fR.
-.IP "\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR" 4
-.IX Item "--prefix-alloc-sections=string"
-Prefix all the names of all allocated sections in the output file with
-\&\fIstring\fR.
-.IP "\fB\-\-add\-gnu\-debuglink=\fR\fIpath-to-file\fR" 4
-.IX Item "--add-gnu-debuglink=path-to-file"
-Creates a .gnu_debuglink section which contains a reference to \fIpath-to-file\fR
-and adds it to the output file.
-.IP "\fB\-\-keep\-file\-symbols\fR" 4
-.IX Item "--keep-file-symbols"
-When stripping a file, perhaps with \fB\-\-strip\-debug\fR or
-\&\fB\-\-strip\-unneeded\fR, retain any symbols specifying source file names,
-which would otherwise get stripped.
-.IP "\fB\-\-only\-keep\-debug\fR" 4
-.IX Item "--only-keep-debug"
-Strip a file, removing contents of any sections that would not be
-stripped by \fB\-\-strip\-debug\fR and leaving the debugging sections
-intact.
-.Sp
-The intention is that this option will be used in conjunction with
-\&\fB\-\-add\-gnu\-debuglink\fR to create a two part executable. One a
-stripped binary which will occupy less space in \s-1RAM\s0 and in a
-distribution and the second a debugging information file which is only
-needed if debugging abilities are required. The suggested procedure
-to create these files is as follows:
-.RS 4
-.IP "1.<Link the executable as normal. Assuming that is is called>" 4
-.IX Item "1.<Link the executable as normal. Assuming that is is called>"
-\&\f(CW\*(C`foo\*(C'\fR then...
-.ie n .IP "1.<Run ""objcopy \-\-only\-keep\-debug foo foo.dbg"" to>" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-only\-keep\-debug foo foo.dbg\fR to>" 4
-.IX Item "1.<Run objcopy --only-keep-debug foo foo.dbg to>"
-create a file containing the debugging info.
-.ie n .IP "1.<Run ""objcopy \-\-strip\-debug foo"" to create a>" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-strip\-debug foo\fR to create a>" 4
-.IX Item "1.<Run objcopy --strip-debug foo to create a>"
-stripped executable.
-.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.dbg foo"">" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.dbg foo\fR>" 4
-.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.dbg foo>"
-to add a link to the debugging info into the stripped executable.
-.RE
-.RS 4
-.Sp
-Note \- the choice of \f(CW\*(C`.dbg\*(C'\fR as an extension for the debug info
-file is arbitrary. Also the \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR step is
-optional. You could instead do this:
-.IP "1.<Link the executable as normal.>" 4
-.IX Item "1.<Link the executable as normal.>"
-.PD 0
-.ie n .IP "1.<Copy ""foo""\fR to \f(CW""foo.full"">" 4
-.el .IP "1.<Copy \f(CWfoo\fR to \f(CWfoo.full\fR>" 4
-.IX Item "1.<Copy foo to foo.full>"
-.ie n .IP "1.<Run ""objcopy \-\-strip\-debug foo"">" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-strip\-debug foo\fR>" 4
-.IX Item "1.<Run objcopy --strip-debug foo>"
-.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.full foo"">" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.full foo\fR>" 4
-.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.full foo>"
-.RE
-.RS 4
-.PD
-.Sp
-i.e. the file pointed to by the \fB\-\-add\-gnu\-debuglink\fR can be the
-full executable. It does not have to be a file created by the
-\&\fB\-\-only\-keep\-debug\fR switch.
-.RE
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Show the version number of \fBobjcopy\fR.
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.PD 0
-.IP "\fB\-\-verbose\fR" 4
-.IX Item "--verbose"
-.PD
-Verbose output: list all object files modified. In the case of
-archives, \fBobjcopy \-V\fR lists all members of the archive.
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Show a summary of the options to \fBobjcopy\fR.
-.IP "\fB\-\-info\fR" 4
-.IX Item "--info"
-Display a list showing all architectures and object formats available.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIld\fR\|(1), \fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/doc/objdump.1 b/binutils-2.17/binutils/doc/objdump.1
deleted file mode 100644
index a27423c2..00000000
--- a/binutils-2.17/binutils/doc/objdump.1
+++ /dev/null
@@ -1,634 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "OBJDUMP 1"
-.TH OBJDUMP 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-objdump \- display information from object files.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-objdump [\fB\-a\fR|\fB\-\-archive\-headers\fR]
- [\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
- [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR] ]
- [\fB\-d\fR|\fB\-\-disassemble\fR]
- [\fB\-D\fR|\fB\-\-disassemble\-all\fR]
- [\fB\-z\fR|\fB\-\-disassemble\-zeroes\fR]
- [\fB\-EB\fR|\fB\-EL\fR|\fB\-\-endian=\fR{big | little }]
- [\fB\-f\fR|\fB\-\-file\-headers\fR]
- [\fB\-\-file\-start\-context\fR]
- [\fB\-g\fR|\fB\-\-debugging\fR]
- [\fB\-e\fR|\fB\-\-debugging\-tags\fR]
- [\fB\-h\fR|\fB\-\-section\-headers\fR|\fB\-\-headers\fR]
- [\fB\-i\fR|\fB\-\-info\fR]
- [\fB\-j\fR \fIsection\fR|\fB\-\-section=\fR\fIsection\fR]
- [\fB\-l\fR|\fB\-\-line\-numbers\fR]
- [\fB\-S\fR|\fB\-\-source\fR]
- [\fB\-m\fR \fImachine\fR|\fB\-\-architecture=\fR\fImachine\fR]
- [\fB\-M\fR \fIoptions\fR|\fB\-\-disassembler\-options=\fR\fIoptions\fR]
- [\fB\-p\fR|\fB\-\-private\-headers\fR]
- [\fB\-r\fR|\fB\-\-reloc\fR]
- [\fB\-R\fR|\fB\-\-dynamic\-reloc\fR]
- [\fB\-s\fR|\fB\-\-full\-contents\fR]
- [\fB\-W\fR|\fB\-\-dwarf\fR]
- [\fB\-G\fR|\fB\-\-stabs\fR]
- [\fB\-t\fR|\fB\-\-syms\fR]
- [\fB\-T\fR|\fB\-\-dynamic\-syms\fR]
- [\fB\-x\fR|\fB\-\-all\-headers\fR]
- [\fB\-w\fR|\fB\-\-wide\fR]
- [\fB\-\-start\-address=\fR\fIaddress\fR]
- [\fB\-\-stop\-address=\fR\fIaddress\fR]
- [\fB\-\-prefix\-addresses\fR]
- [\fB\-\-[no\-]show\-raw\-insn\fR]
- [\fB\-\-adjust\-vma=\fR\fIoffset\fR]
- [\fB\-\-special\-syms\fR]
- [\fB\-V\fR|\fB\-\-version\fR]
- [\fB\-H\fR|\fB\-\-help\fR]
- \fIobjfile\fR...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBobjdump\fR displays information about one or more object files.
-The options control what particular information to display. This
-information is mostly useful to programmers who are working on the
-compilation tools, as opposed to programmers who just want their
-program to compile and work.
-.PP
-\&\fIobjfile\fR... are the object files to be examined. When you
-specify archives, \fBobjdump\fR shows information on each of the member
-object files.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The long and short forms of options, shown here as alternatives, are
-equivalent. At least one option from the list
-\&\fB\-a,\-d,\-D,\-e,\-f,\-g,\-G,\-h,\-H,\-p,\-r,\-R,\-s,\-S,\-t,\-T,\-V,\-x\fR must be given.
-.IP "\fB\-a\fR" 4
-.IX Item "-a"
-.PD 0
-.IP "\fB\-\-archive\-header\fR" 4
-.IX Item "--archive-header"
-.PD
-If any of the \fIobjfile\fR files are archives, display the archive
-header information (in a format similar to \fBls \-l\fR). Besides the
-information you could list with \fBar tv\fR, \fBobjdump \-a\fR shows
-the object file format of each archive member.
-.IP "\fB\-\-adjust\-vma=\fR\fIoffset\fR" 4
-.IX Item "--adjust-vma=offset"
-When dumping information, first add \fIoffset\fR to all the section
-addresses. This is useful if the section addresses do not correspond to
-the symbol table, which can happen when putting sections at particular
-addresses when using a format which can not represent section addresses,
-such as a.out.
-.IP "\fB\-b\fR \fIbfdname\fR" 4
-.IX Item "-b bfdname"
-.PD 0
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-.PD
-Specify that the object-code format for the object files is
-\&\fIbfdname\fR. This option may not be necessary; \fIobjdump\fR can
-automatically recognize many formats.
-.Sp
-For example,
-.Sp
-.Vb 1
-\& objdump \-b oasys \-m vax \-h fu.o
-.Ve
-.Sp
-displays summary information from the section headers (\fB\-h\fR) of
-\&\fIfu.o\fR, which is explicitly identified (\fB\-m\fR) as a \s-1VAX\s0 object
-file in the format produced by Oasys compilers. You can list the
-formats available with the \fB\-i\fR option.
-.IP "\fB\-C\fR" 4
-.IX Item "-C"
-.PD 0
-.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
-.IX Item "--demangle[=style]"
-.PD
-Decode (\fIdemangle\fR) low-level symbol names into user-level names.
-Besides removing any initial underscore prepended by the system, this
-makes \*(C+ function names readable. Different compilers have different
-mangling styles. The optional demangling style argument can be used to
-choose an appropriate demangling style for your compiler.
-.IP "\fB\-g\fR" 4
-.IX Item "-g"
-.PD 0
-.IP "\fB\-\-debugging\fR" 4
-.IX Item "--debugging"
-.PD
-Display debugging information. This attempts to parse debugging
-information stored in the file and print it out using a C like syntax.
-Only certain types of debugging information have been implemented.
-Some other types are supported by \fBreadelf \-w\fR.
-.IP "\fB\-e\fR" 4
-.IX Item "-e"
-.PD 0
-.IP "\fB\-\-debugging\-tags\fR" 4
-.IX Item "--debugging-tags"
-.PD
-Like \fB\-g\fR, but the information is generated in a format compatible
-with ctags tool.
-.IP "\fB\-d\fR" 4
-.IX Item "-d"
-.PD 0
-.IP "\fB\-\-disassemble\fR" 4
-.IX Item "--disassemble"
-.PD
-Display the assembler mnemonics for the machine instructions from
-\&\fIobjfile\fR. This option only disassembles those sections which are
-expected to contain instructions.
-.IP "\fB\-D\fR" 4
-.IX Item "-D"
-.PD 0
-.IP "\fB\-\-disassemble\-all\fR" 4
-.IX Item "--disassemble-all"
-.PD
-Like \fB\-d\fR, but disassemble the contents of all sections, not just
-those expected to contain instructions.
-.IP "\fB\-\-prefix\-addresses\fR" 4
-.IX Item "--prefix-addresses"
-When disassembling, print the complete address on each line. This is
-the older disassembly format.
-.IP "\fB\-EB\fR" 4
-.IX Item "-EB"
-.PD 0
-.IP "\fB\-EL\fR" 4
-.IX Item "-EL"
-.IP "\fB\-\-endian={big|little}\fR" 4
-.IX Item "--endian={big|little}"
-.PD
-Specify the endianness of the object files. This only affects
-disassembly. This can be useful when disassembling a file format which
-does not describe endianness information, such as S\-records.
-.IP "\fB\-f\fR" 4
-.IX Item "-f"
-.PD 0
-.IP "\fB\-\-file\-headers\fR" 4
-.IX Item "--file-headers"
-.PD
-Display summary information from the overall header of
-each of the \fIobjfile\fR files.
-.IP "\fB\-\-file\-start\-context\fR" 4
-.IX Item "--file-start-context"
-Specify that when displaying interlisted source code/disassembly
-(assumes \fB\-S\fR) from a file that has not yet been displayed, extend the
-context to the start of the file.
-.IP "\fB\-h\fR" 4
-.IX Item "-h"
-.PD 0
-.IP "\fB\-\-section\-headers\fR" 4
-.IX Item "--section-headers"
-.IP "\fB\-\-headers\fR" 4
-.IX Item "--headers"
-.PD
-Display summary information from the section headers of the
-object file.
-.Sp
-File segments may be relocated to nonstandard addresses, for example by
-using the \fB\-Ttext\fR, \fB\-Tdata\fR, or \fB\-Tbss\fR options to
-\&\fBld\fR. However, some object file formats, such as a.out, do not
-store the starting address of the file segments. In those situations,
-although \fBld\fR relocates the sections correctly, using \fBobjdump
-\&\-h\fR to list the file section headers cannot show the correct addresses.
-Instead, it shows the usual addresses, which are implicit for the
-target.
-.IP "\fB\-H\fR" 4
-.IX Item "-H"
-.PD 0
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-.PD
-Print a summary of the options to \fBobjdump\fR and exit.
-.IP "\fB\-i\fR" 4
-.IX Item "-i"
-.PD 0
-.IP "\fB\-\-info\fR" 4
-.IX Item "--info"
-.PD
-Display a list showing all architectures and object formats available
-for specification with \fB\-b\fR or \fB\-m\fR.
-.IP "\fB\-j\fR \fIname\fR" 4
-.IX Item "-j name"
-.PD 0
-.IP "\fB\-\-section=\fR\fIname\fR" 4
-.IX Item "--section=name"
-.PD
-Display information only for section \fIname\fR.
-.IP "\fB\-l\fR" 4
-.IX Item "-l"
-.PD 0
-.IP "\fB\-\-line\-numbers\fR" 4
-.IX Item "--line-numbers"
-.PD
-Label the display (using debugging information) with the filename and
-source line numbers corresponding to the object code or relocs shown.
-Only useful with \fB\-d\fR, \fB\-D\fR, or \fB\-r\fR.
-.IP "\fB\-m\fR \fImachine\fR" 4
-.IX Item "-m machine"
-.PD 0
-.IP "\fB\-\-architecture=\fR\fImachine\fR" 4
-.IX Item "--architecture=machine"
-.PD
-Specify the architecture to use when disassembling object files. This
-can be useful when disassembling object files which do not describe
-architecture information, such as S\-records. You can list the available
-architectures with the \fB\-i\fR option.
-.IP "\fB\-M\fR \fIoptions\fR" 4
-.IX Item "-M options"
-.PD 0
-.IP "\fB\-\-disassembler\-options=\fR\fIoptions\fR" 4
-.IX Item "--disassembler-options=options"
-.PD
-Pass target specific information to the disassembler. Only supported on
-some targets. If it is necessary to specify more than one
-disassembler option then multiple \fB\-M\fR options can be used or
-can be placed together into a comma separated list.
-.Sp
-If the target is an \s-1ARM\s0 architecture then this switch can be used to
-select which register name set is used during disassembler. Specifying
-\&\fB\-M reg-names-std\fR (the default) will select the register names as
-used in \s-1ARM\s0's instruction set documentation, but with register 13 called
-\&'sp', register 14 called 'lr' and register 15 called 'pc'. Specifying
-\&\fB\-M reg-names-apcs\fR will select the name set used by the \s-1ARM\s0
-Procedure Call Standard, whilst specifying \fB\-M reg-names-raw\fR will
-just use \fBr\fR followed by the register number.
-.Sp
-There are also two variants on the \s-1APCS\s0 register naming scheme enabled
-by \fB\-M reg-names-atpcs\fR and \fB\-M reg-names-special-atpcs\fR which
-use the ARM/Thumb Procedure Call Standard naming conventions. (Either
-with the normal register names or the special register names).
-.Sp
-This option can also be used for \s-1ARM\s0 architectures to force the
-disassembler to interpret all instructions as Thumb instructions by
-using the switch \fB\-\-disassembler\-options=force\-thumb\fR. This can be
-useful when attempting to disassemble thumb code produced by other
-compilers.
-.Sp
-For the x86, some of the options duplicate functions of the \fB\-m\fR
-switch, but allow finer grained control. Multiple selections from the
-following may be specified as a comma separated string.
-\&\fBx86\-64\fR, \fBi386\fR and \fBi8086\fR select disassembly for
-the given architecture. \fBintel\fR and \fBatt\fR select between
-intel syntax mode and \s-1AT&T\s0 syntax mode. \fBaddr32\fR,
-\&\fBaddr16\fR, \fBdata32\fR and \fBdata16\fR specify the default
-address size and operand size. These four options will be overridden if
-\&\fBx86\-64\fR, \fBi386\fR or \fBi8086\fR appear later in the
-option string. Lastly, \fBsuffix\fR, when in \s-1AT&T\s0 mode,
-instructs the disassembler to print a mnemonic suffix even when the
-suffix could be inferred by the operands.
-.Sp
-For \s-1PPC\s0, \fBbooke\fR, \fBbooke32\fR and \fBbooke64\fR select
-disassembly of BookE instructions. \fB32\fR and \fB64\fR select
-PowerPC and PowerPC64 disassembly, respectively. \fBe300\fR selects
-disassembly for the e300 family.
-.Sp
-For \s-1MIPS\s0, this option controls the printing of instruction mneumonic
-names and register names in disassembled instructions. Multiple
-selections from the following may be specified as a comma separated
-string, and invalid options are ignored:
-.RS 4
-.ie n .IP """no\-aliases""" 4
-.el .IP "\f(CWno\-aliases\fR" 4
-.IX Item "no-aliases"
-Print the 'raw' instruction mneumonic instead of some pseudo
-instruction mneumonic. I.E. print 'daddu' or 'or' instead of 'move',
-\&'sll' instead of 'nop', etc.
-.ie n .IP """gpr\-names=\f(CI\s-1ABI\s0\f(CW""" 4
-.el .IP "\f(CWgpr\-names=\f(CI\s-1ABI\s0\f(CW\fR" 4
-.IX Item "gpr-names=ABI"
-Print \s-1GPR\s0 (general\-purpose register) names as appropriate
-for the specified \s-1ABI\s0. By default, \s-1GPR\s0 names are selected according to
-the \s-1ABI\s0 of the binary being disassembled.
-.ie n .IP """fpr\-names=\f(CI\s-1ABI\s0\f(CW""" 4
-.el .IP "\f(CWfpr\-names=\f(CI\s-1ABI\s0\f(CW\fR" 4
-.IX Item "fpr-names=ABI"
-Print \s-1FPR\s0 (floating\-point register) names as
-appropriate for the specified \s-1ABI\s0. By default, \s-1FPR\s0 numbers are printed
-rather than names.
-.ie n .IP """cp0\-names=\f(CI\s-1ARCH\s0\f(CW""" 4
-.el .IP "\f(CWcp0\-names=\f(CI\s-1ARCH\s0\f(CW\fR" 4
-.IX Item "cp0-names=ARCH"
-Print \s-1CP0\s0 (system control coprocessor; coprocessor 0) register names
-as appropriate for the \s-1CPU\s0 or architecture specified by
-\&\fI\s-1ARCH\s0\fR. By default, \s-1CP0\s0 register names are selected according to
-the architecture and \s-1CPU\s0 of the binary being disassembled.
-.ie n .IP """hwr\-names=\f(CI\s-1ARCH\s0\f(CW""" 4
-.el .IP "\f(CWhwr\-names=\f(CI\s-1ARCH\s0\f(CW\fR" 4
-.IX Item "hwr-names=ARCH"
-Print \s-1HWR\s0 (hardware register, used by the \f(CW\*(C`rdhwr\*(C'\fR instruction) names
-as appropriate for the \s-1CPU\s0 or architecture specified by
-\&\fI\s-1ARCH\s0\fR. By default, \s-1HWR\s0 names are selected according to
-the architecture and \s-1CPU\s0 of the binary being disassembled.
-.ie n .IP """reg\-names=\f(CI\s-1ABI\s0\f(CW""" 4
-.el .IP "\f(CWreg\-names=\f(CI\s-1ABI\s0\f(CW\fR" 4
-.IX Item "reg-names=ABI"
-Print \s-1GPR\s0 and \s-1FPR\s0 names as appropriate for the selected \s-1ABI\s0.
-.ie n .IP """reg\-names=\f(CI\s-1ARCH\s0\f(CW""" 4
-.el .IP "\f(CWreg\-names=\f(CI\s-1ARCH\s0\f(CW\fR" 4
-.IX Item "reg-names=ARCH"
-Print CPU-specific register names (\s-1CP0\s0 register and \s-1HWR\s0 names)
-as appropriate for the selected \s-1CPU\s0 or architecture.
-.RE
-.RS 4
-.Sp
-For any of the options listed above, \fI\s-1ABI\s0\fR or
-\&\fI\s-1ARCH\s0\fR may be specified as \fBnumeric\fR to have numbers printed
-rather than names, for the selected types of registers.
-You can list the available values of \fI\s-1ABI\s0\fR and \fI\s-1ARCH\s0\fR using
-the \fB\-\-help\fR option.
-.Sp
-For \s-1VAX\s0, you can specify function entry addresses with \fB\-M
-entry:0xf00ba\fR. You can use this multiple times to properly
-disassemble \s-1VAX\s0 binary files that don't contain symbol tables (like
-\&\s-1ROM\s0 dumps). In these cases, the function entry mask would otherwise
-be decoded as \s-1VAX\s0 instructions, which would probably lead the the rest
-of the function being wrongly disassembled.
-.RE
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-private\-headers\fR" 4
-.IX Item "--private-headers"
-.PD
-Print information that is specific to the object file format. The exact
-information printed depends upon the object file format. For some
-object file formats, no additional information is printed.
-.IP "\fB\-r\fR" 4
-.IX Item "-r"
-.PD 0
-.IP "\fB\-\-reloc\fR" 4
-.IX Item "--reloc"
-.PD
-Print the relocation entries of the file. If used with \fB\-d\fR or
-\&\fB\-D\fR, the relocations are printed interspersed with the
-disassembly.
-.IP "\fB\-R\fR" 4
-.IX Item "-R"
-.PD 0
-.IP "\fB\-\-dynamic\-reloc\fR" 4
-.IX Item "--dynamic-reloc"
-.PD
-Print the dynamic relocation entries of the file. This is only
-meaningful for dynamic objects, such as certain types of shared
-libraries.
-.IP "\fB\-s\fR" 4
-.IX Item "-s"
-.PD 0
-.IP "\fB\-\-full\-contents\fR" 4
-.IX Item "--full-contents"
-.PD
-Display the full contents of any sections requested. By default all
-non-empty sections are displayed.
-.IP "\fB\-S\fR" 4
-.IX Item "-S"
-.PD 0
-.IP "\fB\-\-source\fR" 4
-.IX Item "--source"
-.PD
-Display source code intermixed with disassembly, if possible. Implies
-\&\fB\-d\fR.
-.IP "\fB\-\-show\-raw\-insn\fR" 4
-.IX Item "--show-raw-insn"
-When disassembling instructions, print the instruction in hex as well as
-in symbolic form. This is the default except when
-\&\fB\-\-prefix\-addresses\fR is used.
-.IP "\fB\-\-no\-show\-raw\-insn\fR" 4
-.IX Item "--no-show-raw-insn"
-When disassembling instructions, do not print the instruction bytes.
-This is the default when \fB\-\-prefix\-addresses\fR is used.
-.IP "\fB\-W\fR" 4
-.IX Item "-W"
-.PD 0
-.IP "\fB\-\-dwarf\fR" 4
-.IX Item "--dwarf"
-.PD
-Displays the contents of the \s-1DWARF\s0 debug sections in the file, if any
-are present.
-.IP "\fB\-G\fR" 4
-.IX Item "-G"
-.PD 0
-.IP "\fB\-\-stabs\fR" 4
-.IX Item "--stabs"
-.PD
-Display the full contents of any sections requested. Display the
-contents of the .stab and .stab.index and .stab.excl sections from an
-\&\s-1ELF\s0 file. This is only useful on systems (such as Solaris 2.0) in which
-\&\f(CW\*(C`.stab\*(C'\fR debugging symbol-table entries are carried in an \s-1ELF\s0
-section. In most other file formats, debugging symbol-table entries are
-interleaved with linkage symbols, and are visible in the \fB\-\-syms\fR
-output.
-.IP "\fB\-\-start\-address=\fR\fIaddress\fR" 4
-.IX Item "--start-address=address"
-Start displaying data at the specified address. This affects the output
-of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options.
-.IP "\fB\-\-stop\-address=\fR\fIaddress\fR" 4
-.IX Item "--stop-address=address"
-Stop displaying data at the specified address. This affects the output
-of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options.
-.IP "\fB\-t\fR" 4
-.IX Item "-t"
-.PD 0
-.IP "\fB\-\-syms\fR" 4
-.IX Item "--syms"
-.PD
-Print the symbol table entries of the file.
-This is similar to the information provided by the \fBnm\fR program.
-.IP "\fB\-T\fR" 4
-.IX Item "-T"
-.PD 0
-.IP "\fB\-\-dynamic\-syms\fR" 4
-.IX Item "--dynamic-syms"
-.PD
-Print the dynamic symbol table entries of the file. This is only
-meaningful for dynamic objects, such as certain types of shared
-libraries. This is similar to the information provided by the \fBnm\fR
-program when given the \fB\-D\fR (\fB\-\-dynamic\fR) option.
-.IP "\fB\-\-special\-syms\fR" 4
-.IX Item "--special-syms"
-When displaying symbols include those which the target considers to be
-special in some way and which would not normally be of interest to the
-user.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Print the version number of \fBobjdump\fR and exit.
-.IP "\fB\-x\fR" 4
-.IX Item "-x"
-.PD 0
-.IP "\fB\-\-all\-headers\fR" 4
-.IX Item "--all-headers"
-.PD
-Display all available header information, including the symbol table and
-relocation entries. Using \fB\-x\fR is equivalent to specifying all of
-\&\fB\-a \-f \-h \-p \-r \-t\fR.
-.IP "\fB\-w\fR" 4
-.IX Item "-w"
-.PD 0
-.IP "\fB\-\-wide\fR" 4
-.IX Item "--wide"
-.PD
-Format some lines for output devices that have more than 80 columns.
-Also do not truncate symbol names when they are displayed.
-.IP "\fB\-z\fR" 4
-.IX Item "-z"
-.PD 0
-.IP "\fB\-\-disassemble\-zeroes\fR" 4
-.IX Item "--disassemble-zeroes"
-.PD
-Normally the disassembly output will skip blocks of zeroes. This
-option directs the disassembler to disassemble those blocks, just like
-any other data.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fInm\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/doc/ranlib.1 b/binutils-2.17/binutils/doc/ranlib.1
deleted file mode 100644
index fd03dd02..00000000
--- a/binutils-2.17/binutils/doc/ranlib.1
+++ /dev/null
@@ -1,188 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "RANLIB 1"
-.TH RANLIB 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-ranlib \- generate index to archive.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-ranlib [\fB\-vV\fR] \fIarchive\fR
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBranlib\fR generates an index to the contents of an archive and
-stores it in the archive. The index lists each symbol defined by a
-member of an archive that is a relocatable object file.
-.PP
-You may use \fBnm \-s\fR or \fBnm \-\-print\-armap\fR to list this index.
-.PP
-An archive with such an index speeds up linking to the library and
-allows routines in the library to call each other without regard to
-their placement in the archive.
-.PP
-The \s-1GNU\s0 \fBranlib\fR program is another form of \s-1GNU\s0 \fBar\fR; running
-\&\fBranlib\fR is completely equivalent to executing \fBar \-s\fR.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.PD 0
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Show the version number of \fBranlib\fR.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIar\fR\|(1), \fInm\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/doc/readelf.1 b/binutils-2.17/binutils/doc/readelf.1
deleted file mode 100644
index 14480c79..00000000
--- a/binutils-2.17/binutils/doc/readelf.1
+++ /dev/null
@@ -1,376 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "READELF 1"
-.TH READELF 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-readelf \- Displays information about ELF files.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-readelf [\fB\-a\fR|\fB\-\-all\fR]
- [\fB\-h\fR|\fB\-\-file\-header\fR]
- [\fB\-l\fR|\fB\-\-program\-headers\fR|\fB\-\-segments\fR]
- [\fB\-S\fR|\fB\-\-section\-headers\fR|\fB\-\-sections\fR]
- [\fB\-g\fR|\fB\-\-section\-groups\fR]
- [\fB\-t\fR|\fB\-\-section\-details\fR]
- [\fB\-e\fR|\fB\-\-headers\fR]
- [\fB\-s\fR|\fB\-\-syms\fR|\fB\-\-symbols\fR]
- [\fB\-n\fR|\fB\-\-notes\fR]
- [\fB\-r\fR|\fB\-\-relocs\fR]
- [\fB\-u\fR|\fB\-\-unwind\fR]
- [\fB\-d\fR|\fB\-\-dynamic\fR]
- [\fB\-V\fR|\fB\-\-version\-info\fR]
- [\fB\-A\fR|\fB\-\-arch\-specific\fR]
- [\fB\-D\fR|\fB\-\-use\-dynamic\fR]
- [\fB\-x\fR <number or name>|\fB\-\-hex\-dump=\fR<number or name>]
- [\fB\-w[liaprmfFsoR]\fR|
- \fB\-\-debug\-dump\fR[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges]]
- [\fB\-I\fR|\fB\-histogram\fR]
- [\fB\-v\fR|\fB\-\-version\fR]
- [\fB\-W\fR|\fB\-\-wide\fR]
- [\fB\-H\fR|\fB\-\-help\fR]
- \fIelffile\fR...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBreadelf\fR displays information about one or more \s-1ELF\s0 format object
-files. The options control what particular information to display.
-.PP
-\&\fIelffile\fR... are the object files to be examined. 32\-bit and
-64\-bit \s-1ELF\s0 files are supported, as are archives containing \s-1ELF\s0 files.
-.PP
-This program performs a similar function to \fBobjdump\fR but it
-goes into more detail and it exists independently of the \s-1BFD\s0
-library, so if there is a bug in \s-1BFD\s0 then readelf will not be
-affected.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The long and short forms of options, shown here as alternatives, are
-equivalent. At least one option besides \fB\-v\fR or \fB\-H\fR must be
-given.
-.IP "\fB\-a\fR" 4
-.IX Item "-a"
-.PD 0
-.IP "\fB\-\-all\fR" 4
-.IX Item "--all"
-.PD
-Equivalent to specifiying \fB\-\-file\-header\fR,
-\&\fB\-\-program\-headers\fR, \fB\-\-sections\fR, \fB\-\-symbols\fR,
-\&\fB\-\-relocs\fR, \fB\-\-dynamic\fR, \fB\-\-notes\fR and
-\&\fB\-\-version\-info\fR.
-.IP "\fB\-h\fR" 4
-.IX Item "-h"
-.PD 0
-.IP "\fB\-\-file\-header\fR" 4
-.IX Item "--file-header"
-.PD
-Displays the information contained in the \s-1ELF\s0 header at the start of the
-file.
-.IP "\fB\-l\fR" 4
-.IX Item "-l"
-.PD 0
-.IP "\fB\-\-program\-headers\fR" 4
-.IX Item "--program-headers"
-.IP "\fB\-\-segments\fR" 4
-.IX Item "--segments"
-.PD
-Displays the information contained in the file's segment headers, if it
-has any.
-.IP "\fB\-S\fR" 4
-.IX Item "-S"
-.PD 0
-.IP "\fB\-\-sections\fR" 4
-.IX Item "--sections"
-.IP "\fB\-\-section\-headers\fR" 4
-.IX Item "--section-headers"
-.PD
-Displays the information contained in the file's section headers, if it
-has any.
-.IP "\fB\-g\fR" 4
-.IX Item "-g"
-.PD 0
-.IP "\fB\-\-section\-groups\fR" 4
-.IX Item "--section-groups"
-.PD
-Displays the information contained in the file's section groups, if it
-has any.
-.IP "\fB\-t\fR" 4
-.IX Item "-t"
-.PD 0
-.IP "\fB\-\-section\-details\fR" 4
-.IX Item "--section-details"
-.PD
-Displays the detailed section information. Implies \fB\-S\fR.
-.IP "\fB\-s\fR" 4
-.IX Item "-s"
-.PD 0
-.IP "\fB\-\-symbols\fR" 4
-.IX Item "--symbols"
-.IP "\fB\-\-syms\fR" 4
-.IX Item "--syms"
-.PD
-Displays the entries in symbol table section of the file, if it has one.
-.IP "\fB\-e\fR" 4
-.IX Item "-e"
-.PD 0
-.IP "\fB\-\-headers\fR" 4
-.IX Item "--headers"
-.PD
-Display all the headers in the file. Equivalent to \fB\-h \-l \-S\fR.
-.IP "\fB\-n\fR" 4
-.IX Item "-n"
-.PD 0
-.IP "\fB\-\-notes\fR" 4
-.IX Item "--notes"
-.PD
-Displays the contents of the \s-1NOTE\s0 segments and/or sections, if any.
-.IP "\fB\-r\fR" 4
-.IX Item "-r"
-.PD 0
-.IP "\fB\-\-relocs\fR" 4
-.IX Item "--relocs"
-.PD
-Displays the contents of the file's relocation section, if it has one.
-.IP "\fB\-u\fR" 4
-.IX Item "-u"
-.PD 0
-.IP "\fB\-\-unwind\fR" 4
-.IX Item "--unwind"
-.PD
-Displays the contents of the file's unwind section, if it has one. Only
-the unwind sections for \s-1IA64\s0 \s-1ELF\s0 files are currently supported.
-.IP "\fB\-d\fR" 4
-.IX Item "-d"
-.PD 0
-.IP "\fB\-\-dynamic\fR" 4
-.IX Item "--dynamic"
-.PD
-Displays the contents of the file's dynamic section, if it has one.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\-info\fR" 4
-.IX Item "--version-info"
-.PD
-Displays the contents of the version sections in the file, it they
-exist.
-.IP "\fB\-A\fR" 4
-.IX Item "-A"
-.PD 0
-.IP "\fB\-\-arch\-specific\fR" 4
-.IX Item "--arch-specific"
-.PD
-Displays architecture-specific information in the file, if there
-is any.
-.IP "\fB\-D\fR" 4
-.IX Item "-D"
-.PD 0
-.IP "\fB\-\-use\-dynamic\fR" 4
-.IX Item "--use-dynamic"
-.PD
-When displaying symbols, this option makes \fBreadelf\fR use the
-symbol table in the file's dynamic section, rather than the one in the
-symbols section.
-.IP "\fB\-x <number or name>\fR" 4
-.IX Item "-x <number or name>"
-.PD 0
-.IP "\fB\-\-hex\-dump=<number or name>\fR" 4
-.IX Item "--hex-dump=<number or name>"
-.PD
-Displays the contents of the indicated section as a hexadecimal dump.
-A number identifies a particular section by index in the section table;
-any other string identifies all sections with that name in the object file.
-.IP "\fB\-w[liaprmfFsoR]\fR" 4
-.IX Item "-w[liaprmfFsoR]"
-.PD 0
-.IP "\fB\-\-debug\-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges]\fR" 4
-.IX Item "--debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]"
-.PD
-Displays the contents of the debug sections in the file, if any are
-present. If one of the optional letters or words follows the switch
-then only data found in those specific sections will be dumped.
-.IP "\fB\-I\fR" 4
-.IX Item "-I"
-.PD 0
-.IP "\fB\-\-histogram\fR" 4
-.IX Item "--histogram"
-.PD
-Display a histogram of bucket list lengths when displaying the contents
-of the symbol tables.
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Display the version number of readelf.
-.IP "\fB\-W\fR" 4
-.IX Item "-W"
-.PD 0
-.IP "\fB\-\-wide\fR" 4
-.IX Item "--wide"
-.PD
-Don't break output lines to fit into 80 columns. By default
-\&\fBreadelf\fR breaks section header and segment listing lines for
-64\-bit \s-1ELF\s0 files, so that they fit into 80 columns. This option causes
-\&\fBreadelf\fR to print each section header resp. each segment one a
-single line, which is far more readable on terminals wider than 80 columns.
-.IP "\fB\-H\fR" 4
-.IX Item "-H"
-.PD 0
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-.PD
-Display the command line options understood by \fBreadelf\fR.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/doc/size.1 b/binutils-2.17/binutils/doc/size.1
deleted file mode 100644
index 1cf72ac7..00000000
--- a/binutils-2.17/binutils/doc/size.1
+++ /dev/null
@@ -1,263 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "SIZE 1"
-.TH SIZE 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-size \- list section sizes and total size.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-size [\fB\-A\fR|\fB\-B\fR|\fB\-\-format=\fR\fIcompatibility\fR]
- [\fB\-\-help\fR]
- [\fB\-d\fR|\fB\-o\fR|\fB\-x\fR|\fB\-\-radix=\fR\fInumber\fR]
- [\fB\-t\fR|\fB\-\-totals\fR]
- [\fB\-\-target=\fR\fIbfdname\fR] [\fB\-V\fR|\fB\-\-version\fR]
- [\fIobjfile\fR...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \s-1GNU\s0 \fBsize\fR utility lists the section sizes\-\-\-and the total
-size\-\-\-for each of the object or archive files \fIobjfile\fR in its
-argument list. By default, one line of output is generated for each
-object file or each module in an archive.
-.PP
-\&\fIobjfile\fR... are the object files to be examined.
-If none are specified, the file \f(CW\*(C`a.out\*(C'\fR will be used.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The command line options have the following meanings:
-.IP "\fB\-A\fR" 4
-.IX Item "-A"
-.PD 0
-.IP "\fB\-B\fR" 4
-.IX Item "-B"
-.IP "\fB\-\-format=\fR\fIcompatibility\fR" 4
-.IX Item "--format=compatibility"
-.PD
-Using one of these options, you can choose whether the output from \s-1GNU\s0
-\&\fBsize\fR resembles output from System V \fBsize\fR (using \fB\-A\fR,
-or \fB\-\-format=sysv\fR), or Berkeley \fBsize\fR (using \fB\-B\fR, or
-\&\fB\-\-format=berkeley\fR). The default is the one-line format similar to
-Berkeley's.
-.Sp
-Here is an example of the Berkeley (default) format of output from
-\&\fBsize\fR:
-.Sp
-.Vb 4
-\& $ size \-\-format=Berkeley ranlib size
-\& text data bss dec hex filename
-\& 294880 81920 11592 388392 5ed28 ranlib
-\& 294880 81920 11888 388688 5ee50 size
-.Ve
-.Sp
-This is the same data, but displayed closer to System V conventions:
-.Sp
-.Vb 7
-\& $ size \-\-format=SysV ranlib size
-\& ranlib :
-\& section size addr
-\& .text 294880 8192
-\& .data 81920 303104
-\& .bss 11592 385024
-\& Total 388392
-.Ve
-.Sp
-.Vb 6
-\& size :
-\& section size addr
-\& .text 294880 8192
-\& .data 81920 303104
-\& .bss 11888 385024
-\& Total 388688
-.Ve
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Show a summary of acceptable arguments and options.
-.IP "\fB\-d\fR" 4
-.IX Item "-d"
-.PD 0
-.IP "\fB\-o\fR" 4
-.IX Item "-o"
-.IP "\fB\-x\fR" 4
-.IX Item "-x"
-.IP "\fB\-\-radix=\fR\fInumber\fR" 4
-.IX Item "--radix=number"
-.PD
-Using one of these options, you can control whether the size of each
-section is given in decimal (\fB\-d\fR, or \fB\-\-radix=10\fR); octal
-(\fB\-o\fR, or \fB\-\-radix=8\fR); or hexadecimal (\fB\-x\fR, or
-\&\fB\-\-radix=16\fR). In \fB\-\-radix=\fR\fInumber\fR, only the three
-values (8, 10, 16) are supported. The total size is always given in two
-radices; decimal and hexadecimal for \fB\-d\fR or \fB\-x\fR output, or
-octal and hexadecimal if you're using \fB\-o\fR.
-.IP "\fB\-t\fR" 4
-.IX Item "-t"
-.PD 0
-.IP "\fB\-\-totals\fR" 4
-.IX Item "--totals"
-.PD
-Show totals of all objects listed (Berkeley format listing mode only).
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-Specify that the object-code format for \fIobjfile\fR is
-\&\fIbfdname\fR. This option may not be necessary; \fBsize\fR can
-automatically recognize many formats.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Display the version number of \fBsize\fR.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/doc/strings.1 b/binutils-2.17/binutils/doc/strings.1
deleted file mode 100644
index 5cffee12..00000000
--- a/binutils-2.17/binutils/doc/strings.1
+++ /dev/null
@@ -1,249 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "STRINGS 1"
-.TH STRINGS 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-strings \- print the strings of printable characters in files.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-strings [\fB\-afov\fR] [\fB\-\fR\fImin-len\fR]
- [\fB\-n\fR \fImin-len\fR] [\fB\-\-bytes=\fR\fImin-len\fR]
- [\fB\-t\fR \fIradix\fR] [\fB\-\-radix=\fR\fIradix\fR]
- [\fB\-e\fR \fIencoding\fR] [\fB\-\-encoding=\fR\fIencoding\fR]
- [\fB\-\fR] [\fB\-\-all\fR] [\fB\-\-print\-file\-name\fR]
- [\fB\-\-target=\fR\fIbfdname\fR]
- [\fB\-\-help\fR] [\fB\-\-version\fR] \fIfile\fR...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-For each \fIfile\fR given, \s-1GNU\s0 \fBstrings\fR prints the printable
-character sequences that are at least 4 characters long (or the number
-given with the options below) and are followed by an unprintable
-character. By default, it only prints the strings from the initialized
-and loaded sections of object files; for other types of files, it prints
-the strings from the whole file.
-.PP
-\&\fBstrings\fR is mainly useful for determining the contents of non-text
-files.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-a\fR" 4
-.IX Item "-a"
-.PD 0
-.IP "\fB\-\-all\fR" 4
-.IX Item "--all"
-.IP "\fB\-\fR" 4
-.IX Item "-"
-.PD
-Do not scan only the initialized and loaded sections of object files;
-scan the whole files.
-.IP "\fB\-f\fR" 4
-.IX Item "-f"
-.PD 0
-.IP "\fB\-\-print\-file\-name\fR" 4
-.IX Item "--print-file-name"
-.PD
-Print the name of the file before each string.
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Print a summary of the program usage on the standard output and exit.
-.IP "\fB\-\fR\fImin-len\fR" 4
-.IX Item "-min-len"
-.PD 0
-.IP "\fB\-n\fR \fImin-len\fR" 4
-.IX Item "-n min-len"
-.IP "\fB\-\-bytes=\fR\fImin-len\fR" 4
-.IX Item "--bytes=min-len"
-.PD
-Print sequences of characters that are at least \fImin-len\fR characters
-long, instead of the default 4.
-.IP "\fB\-o\fR" 4
-.IX Item "-o"
-Like \fB\-t o\fR. Some other versions of \fBstrings\fR have \fB\-o\fR
-act like \fB\-t d\fR instead. Since we can not be compatible with both
-ways, we simply chose one.
-.IP "\fB\-t\fR \fIradix\fR" 4
-.IX Item "-t radix"
-.PD 0
-.IP "\fB\-\-radix=\fR\fIradix\fR" 4
-.IX Item "--radix=radix"
-.PD
-Print the offset within the file before each string. The single
-character argument specifies the radix of the offset\-\-\-\fBo\fR for
-octal, \fBx\fR for hexadecimal, or \fBd\fR for decimal.
-.IP "\fB\-e\fR \fIencoding\fR" 4
-.IX Item "-e encoding"
-.PD 0
-.IP "\fB\-\-encoding=\fR\fIencoding\fR" 4
-.IX Item "--encoding=encoding"
-.PD
-Select the character encoding of the strings that are to be found.
-Possible values for \fIencoding\fR are: \fBs\fR = single\-7\-bit\-byte
-characters (\s-1ASCII\s0, \s-1ISO\s0 8859, etc., default), \fBS\fR =
-single\-8\-bit\-byte characters, \fBb\fR = 16\-bit bigendian, \fBl\fR =
-16\-bit littleendian, \fBB\fR = 32\-bit bigendian, \fBL\fR = 32\-bit
-littleendian. Useful for finding wide character strings.
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-Specify an object code format other than your system's default format.
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Print the program version number on the standard output and exit.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIar\fR\|(1), \fInm\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), \fIreadelf\fR\|(1)
-and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/doc/strip.1 b/binutils-2.17/binutils/doc/strip.1
deleted file mode 100644
index 982255ef..00000000
--- a/binutils-2.17/binutils/doc/strip.1
+++ /dev/null
@@ -1,383 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "STRIP 1"
-.TH STRIP 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-strip \- Discard symbols from object files.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-strip [\fB\-F\fR \fIbfdname\fR |\fB\-\-target=\fR\fIbfdname\fR]
- [\fB\-I\fR \fIbfdname\fR |\fB\-\-input\-target=\fR\fIbfdname\fR]
- [\fB\-O\fR \fIbfdname\fR |\fB\-\-output\-target=\fR\fIbfdname\fR]
- [\fB\-s\fR|\fB\-\-strip\-all\fR]
- [\fB\-S\fR|\fB\-g\fR|\fB\-d\fR|\fB\-\-strip\-debug\fR]
- [\fB\-K\fR \fIsymbolname\fR |\fB\-\-keep\-symbol=\fR\fIsymbolname\fR]
- [\fB\-N\fR \fIsymbolname\fR |\fB\-\-strip\-symbol=\fR\fIsymbolname\fR]
- [\fB\-w\fR|\fB\-\-wildcard\fR]
- [\fB\-x\fR|\fB\-\-discard\-all\fR] [\fB\-X\fR |\fB\-\-discard\-locals\fR]
- [\fB\-R\fR \fIsectionname\fR |\fB\-\-remove\-section=\fR\fIsectionname\fR]
- [\fB\-o\fR \fIfile\fR] [\fB\-p\fR|\fB\-\-preserve\-dates\fR]
- [\fB\-\-keep\-file\-symbols\fR]
- [\fB\-\-only\-keep\-debug\fR]
- [\fB\-v\fR |\fB\-\-verbose\fR] [\fB\-V\fR|\fB\-\-version\fR]
- [\fB\-\-help\fR] [\fB\-\-info\fR]
- \fIobjfile\fR...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\s-1GNU\s0 \fBstrip\fR discards all symbols from object files
-\&\fIobjfile\fR. The list of object files may include archives.
-At least one object file must be given.
-.PP
-\&\fBstrip\fR modifies the files named in its argument,
-rather than writing modified copies under different names.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-F\fR \fIbfdname\fR" 4
-.IX Item "-F bfdname"
-.PD 0
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-.PD
-Treat the original \fIobjfile\fR as a file with the object
-code format \fIbfdname\fR, and rewrite it in the same format.
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Show a summary of the options to \fBstrip\fR and exit.
-.IP "\fB\-\-info\fR" 4
-.IX Item "--info"
-Display a list showing all architectures and object formats available.
-.IP "\fB\-I\fR \fIbfdname\fR" 4
-.IX Item "-I bfdname"
-.PD 0
-.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
-.IX Item "--input-target=bfdname"
-.PD
-Treat the original \fIobjfile\fR as a file with the object
-code format \fIbfdname\fR.
-.IP "\fB\-O\fR \fIbfdname\fR" 4
-.IX Item "-O bfdname"
-.PD 0
-.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
-.IX Item "--output-target=bfdname"
-.PD
-Replace \fIobjfile\fR with a file in the output format \fIbfdname\fR.
-.IP "\fB\-R\fR \fIsectionname\fR" 4
-.IX Item "-R sectionname"
-.PD 0
-.IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4
-.IX Item "--remove-section=sectionname"
-.PD
-Remove any section named \fIsectionname\fR from the output file. This
-option may be given more than once. Note that using this option
-inappropriately may make the output file unusable.
-.IP "\fB\-s\fR" 4
-.IX Item "-s"
-.PD 0
-.IP "\fB\-\-strip\-all\fR" 4
-.IX Item "--strip-all"
-.PD
-Remove all symbols.
-.IP "\fB\-g\fR" 4
-.IX Item "-g"
-.PD 0
-.IP "\fB\-S\fR" 4
-.IX Item "-S"
-.IP "\fB\-d\fR" 4
-.IX Item "-d"
-.IP "\fB\-\-strip\-debug\fR" 4
-.IX Item "--strip-debug"
-.PD
-Remove debugging symbols only.
-.IP "\fB\-\-strip\-unneeded\fR" 4
-.IX Item "--strip-unneeded"
-Remove all symbols that are not needed for relocation processing.
-.IP "\fB\-K\fR \fIsymbolname\fR" 4
-.IX Item "-K symbolname"
-.PD 0
-.IP "\fB\-\-keep\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--keep-symbol=symbolname"
-.PD
-When stripping symbols, keep symbol \fIsymbolname\fR even if it would
-normally be stripped. This option may be given more than once.
-.IP "\fB\-N\fR \fIsymbolname\fR" 4
-.IX Item "-N symbolname"
-.PD 0
-.IP "\fB\-\-strip\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--strip-symbol=symbolname"
-.PD
-Remove symbol \fIsymbolname\fR from the source file. This option may be
-given more than once, and may be combined with strip options other than
-\&\fB\-K\fR.
-.IP "\fB\-o\fR \fIfile\fR" 4
-.IX Item "-o file"
-Put the stripped output in \fIfile\fR, rather than replacing the
-existing file. When this argument is used, only one \fIobjfile\fR
-argument may be specified.
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-preserve\-dates\fR" 4
-.IX Item "--preserve-dates"
-.PD
-Preserve the access and modification dates of the file.
-.IP "\fB\-w\fR" 4
-.IX Item "-w"
-.PD 0
-.IP "\fB\-\-wildcard\fR" 4
-.IX Item "--wildcard"
-.PD
-Permit regular expressions in \fIsymbolname\fRs used in other command
-line options. The question mark (?), asterisk (*), backslash (\e) and
-square brackets ([]) operators can be used anywhere in the symbol
-name. If the first character of the symbol name is the exclamation
-point (!) then the sense of the switch is reversed for that symbol.
-For example:
-.Sp
-.Vb 1
-\& \-w \-K !foo \-K fo*
-.Ve
-.Sp
-would cause strip to only keep symbols that start with the letters
-\&\*(L"fo\*(R", but to discard the symbol \*(L"foo\*(R".
-.IP "\fB\-x\fR" 4
-.IX Item "-x"
-.PD 0
-.IP "\fB\-\-discard\-all\fR" 4
-.IX Item "--discard-all"
-.PD
-Remove non-global symbols.
-.IP "\fB\-X\fR" 4
-.IX Item "-X"
-.PD 0
-.IP "\fB\-\-discard\-locals\fR" 4
-.IX Item "--discard-locals"
-.PD
-Remove compiler-generated local symbols.
-(These usually start with \fBL\fR or \fB.\fR.)
-.IP "\fB\-\-keep\-file\-symbols\fR" 4
-.IX Item "--keep-file-symbols"
-When stripping a file, perhaps with \fB\-\-strip\-debug\fR or
-\&\fB\-\-strip\-unneeded\fR, retain any symbols specifying source file names,
-which would otherwise get stripped.
-.IP "\fB\-\-only\-keep\-debug\fR" 4
-.IX Item "--only-keep-debug"
-Strip a file, removing any sections that would be stripped by
-\&\fB\-\-strip\-debug\fR and leaving the debugging sections.
-.Sp
-The intention is that this option will be used in conjunction with
-\&\fB\-\-add\-gnu\-debuglink\fR to create a two part executable. One a
-stripped binary which will occupy less space in \s-1RAM\s0 and in a
-distribution and the second a debugging information file which is only
-needed if debugging abilities are required. The suggested procedure
-to create these files is as follows:
-.RS 4
-.IP "1.<Link the executable as normal. Assuming that is is called>" 4
-.IX Item "1.<Link the executable as normal. Assuming that is is called>"
-\&\f(CW\*(C`foo\*(C'\fR then...
-.ie n .IP "1.<Run ""objcopy \-\-only\-keep\-debug foo foo.dbg"" to>" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-only\-keep\-debug foo foo.dbg\fR to>" 4
-.IX Item "1.<Run objcopy --only-keep-debug foo foo.dbg to>"
-create a file containing the debugging info.
-.ie n .IP "1.<Run ""objcopy \-\-strip\-debug foo"" to create a>" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-strip\-debug foo\fR to create a>" 4
-.IX Item "1.<Run objcopy --strip-debug foo to create a>"
-stripped executable.
-.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.dbg foo"">" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.dbg foo\fR>" 4
-.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.dbg foo>"
-to add a link to the debugging info into the stripped executable.
-.RE
-.RS 4
-.Sp
-Note \- the choice of \f(CW\*(C`.dbg\*(C'\fR as an extension for the debug info
-file is arbitrary. Also the \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR step is
-optional. You could instead do this:
-.IP "1.<Link the executable as normal.>" 4
-.IX Item "1.<Link the executable as normal.>"
-.PD 0
-.ie n .IP "1.<Copy ""foo""\fR to \f(CW""foo.full"">" 4
-.el .IP "1.<Copy \f(CWfoo\fR to \f(CWfoo.full\fR>" 4
-.IX Item "1.<Copy foo to foo.full>"
-.ie n .IP "1.<Run ""strip \-\-strip\-debug foo"">" 4
-.el .IP "1.<Run \f(CWstrip \-\-strip\-debug foo\fR>" 4
-.IX Item "1.<Run strip --strip-debug foo>"
-.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.full foo"">" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.full foo\fR>" 4
-.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.full foo>"
-.RE
-.RS 4
-.PD
-.Sp
-ie the file pointed to by the \fB\-\-add\-gnu\-debuglink\fR can be the
-full executable. It does not have to be a file created by the
-\&\fB\-\-only\-keep\-debug\fR switch.
-.RE
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Show the version number for \fBstrip\fR.
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.PD 0
-.IP "\fB\-\-verbose\fR" 4
-.IX Item "--verbose"
-.PD
-Verbose output: list all object files modified. In the case of
-archives, \fBstrip \-v\fR lists all members of the archive.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/doc/windres.1 b/binutils-2.17/binutils/doc/windres.1
deleted file mode 100644
index 8d102543..00000000
--- a/binutils-2.17/binutils/doc/windres.1
+++ /dev/null
@@ -1,343 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. \*(C+ will
-.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "WINDRES 1"
-.TH WINDRES 1 "2006-06-23" "binutils-2.17" "GNU Development Tools"
-.SH "NAME"
-windres \- manipulate Windows resources.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-windres [options] [input\-file] [output\-file]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBwindres\fR reads resources from an input file and copies them into
-an output file. Either file may be in one of three formats:
-.ie n .IP """rc""" 4
-.el .IP "\f(CWrc\fR" 4
-.IX Item "rc"
-A text format read by the Resource Compiler.
-.ie n .IP """res""" 4
-.el .IP "\f(CWres\fR" 4
-.IX Item "res"
-A binary format generated by the Resource Compiler.
-.ie n .IP """coff""" 4
-.el .IP "\f(CWcoff\fR" 4
-.IX Item "coff"
-A \s-1COFF\s0 object or executable.
-.PP
-The exact description of these different formats is available in
-documentation from Microsoft.
-.PP
-When \fBwindres\fR converts from the \f(CW\*(C`rc\*(C'\fR format to the \f(CW\*(C`res\*(C'\fR
-format, it is acting like the Windows Resource Compiler. When
-\&\fBwindres\fR converts from the \f(CW\*(C`res\*(C'\fR format to the \f(CW\*(C`coff\*(C'\fR
-format, it is acting like the Windows \f(CW\*(C`CVTRES\*(C'\fR program.
-.PP
-When \fBwindres\fR generates an \f(CW\*(C`rc\*(C'\fR file, the output is similar
-but not identical to the format expected for the input. When an input
-\&\f(CW\*(C`rc\*(C'\fR file refers to an external filename, an output \f(CW\*(C`rc\*(C'\fR file
-will instead include the file contents.
-.PP
-If the input or output format is not specified, \fBwindres\fR will
-guess based on the file name, or, for the input file, the file contents.
-A file with an extension of \fI.rc\fR will be treated as an \f(CW\*(C`rc\*(C'\fR
-file, a file with an extension of \fI.res\fR will be treated as a
-\&\f(CW\*(C`res\*(C'\fR file, and a file with an extension of \fI.o\fR or
-\&\fI.exe\fR will be treated as a \f(CW\*(C`coff\*(C'\fR file.
-.PP
-If no output file is specified, \fBwindres\fR will print the resources
-in \f(CW\*(C`rc\*(C'\fR format to standard output.
-.PP
-The normal use is for you to write an \f(CW\*(C`rc\*(C'\fR file, use \fBwindres\fR
-to convert it to a \s-1COFF\s0 object file, and then link the \s-1COFF\s0 file into
-your application. This will make the resources described in the
-\&\f(CW\*(C`rc\*(C'\fR file available to Windows.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-i\fR \fIfilename\fR" 4
-.IX Item "-i filename"
-.PD 0
-.IP "\fB\-\-input\fR \fIfilename\fR" 4
-.IX Item "--input filename"
-.PD
-The name of the input file. If this option is not used, then
-\&\fBwindres\fR will use the first non-option argument as the input file
-name. If there are no non-option arguments, then \fBwindres\fR will
-read from standard input. \fBwindres\fR can not read a \s-1COFF\s0 file from
-standard input.
-.IP "\fB\-o\fR \fIfilename\fR" 4
-.IX Item "-o filename"
-.PD 0
-.IP "\fB\-\-output\fR \fIfilename\fR" 4
-.IX Item "--output filename"
-.PD
-The name of the output file. If this option is not used, then
-\&\fBwindres\fR will use the first non-option argument, after any used
-for the input file name, as the output file name. If there is no
-non-option argument, then \fBwindres\fR will write to standard output.
-\&\fBwindres\fR can not write a \s-1COFF\s0 file to standard output. Note,
-for compatability with \fBrc\fR the option \fB\-fo\fR is also
-accepted, but its use is not recommended.
-.IP "\fB\-J\fR \fIformat\fR" 4
-.IX Item "-J format"
-.PD 0
-.IP "\fB\-\-input\-format\fR \fIformat\fR" 4
-.IX Item "--input-format format"
-.PD
-The input format to read. \fIformat\fR may be \fBres\fR, \fBrc\fR, or
-\&\fBcoff\fR. If no input format is specified, \fBwindres\fR will
-guess, as described above.
-.IP "\fB\-O\fR \fIformat\fR" 4
-.IX Item "-O format"
-.PD 0
-.IP "\fB\-\-output\-format\fR \fIformat\fR" 4
-.IX Item "--output-format format"
-.PD
-The output format to generate. \fIformat\fR may be \fBres\fR,
-\&\fBrc\fR, or \fBcoff\fR. If no output format is specified,
-\&\fBwindres\fR will guess, as described above.
-.IP "\fB\-F\fR \fItarget\fR" 4
-.IX Item "-F target"
-.PD 0
-.IP "\fB\-\-target\fR \fItarget\fR" 4
-.IX Item "--target target"
-.PD
-Specify the \s-1BFD\s0 format to use for a \s-1COFF\s0 file as input or output. This
-is a \s-1BFD\s0 target name; you can use the \fB\-\-help\fR option to see a list
-of supported targets. Normally \fBwindres\fR will use the default
-format, which is the first one listed by the \fB\-\-help\fR option.
-.IP "\fB\-\-preprocessor\fR \fIprogram\fR" 4
-.IX Item "--preprocessor program"
-When \fBwindres\fR reads an \f(CW\*(C`rc\*(C'\fR file, it runs it through the C
-preprocessor first. This option may be used to specify the preprocessor
-to use, including any leading arguments. The default preprocessor
-argument is \f(CW\*(C`gcc \-E \-xc\-header \-DRC_INVOKED\*(C'\fR.
-.IP "\fB\-I\fR \fIdirectory\fR" 4
-.IX Item "-I directory"
-.PD 0
-.IP "\fB\-\-include\-dir\fR \fIdirectory\fR" 4
-.IX Item "--include-dir directory"
-.PD
-Specify an include directory to use when reading an \f(CW\*(C`rc\*(C'\fR file.
-\&\fBwindres\fR will pass this to the preprocessor as an \fB\-I\fR
-option. \fBwindres\fR will also search this directory when looking for
-files named in the \f(CW\*(C`rc\*(C'\fR file. If the argument passed to this command
-matches any of the supported \fIformats\fR (as descrived in the \fB\-J\fR
-option), it will issue a deprecation warning, and behave just like the
-\&\fB\-J\fR option. New programs should not use this behaviour. If a
-directory happens to match a \fIformat\fR, simple prefix it with \fB./\fR
-to disable the backward compatibility.
-.IP "\fB\-D\fR \fItarget\fR" 4
-.IX Item "-D target"
-.PD 0
-.IP "\fB\-\-define\fR \fIsym\fR\fB[=\fR\fIval\fR\fB]\fR" 4
-.IX Item "--define sym[=val]"
-.PD
-Specify a \fB\-D\fR option to pass to the preprocessor when reading an
-\&\f(CW\*(C`rc\*(C'\fR file.
-.IP "\fB\-U\fR \fItarget\fR" 4
-.IX Item "-U target"
-.PD 0
-.IP "\fB\-\-undefine\fR \fIsym\fR" 4
-.IX Item "--undefine sym"
-.PD
-Specify a \fB\-U\fR option to pass to the preprocessor when reading an
-\&\f(CW\*(C`rc\*(C'\fR file.
-.IP "\fB\-r\fR" 4
-.IX Item "-r"
-Ignored for compatibility with rc.
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-Enable verbose mode. This tells you what the preprocessor is if you
-didn't specify one.
-.IP "\fB\-l\fR \fIval\fR" 4
-.IX Item "-l val"
-.PD 0
-.IP "\fB\-\-language\fR \fIval\fR" 4
-.IX Item "--language val"
-.PD
-Specify the default language to use when reading an \f(CW\*(C`rc\*(C'\fR file.
-\&\fIval\fR should be a hexadecimal language code. The low eight bits are
-the language, and the high eight bits are the sublanguage.
-.IP "\fB\-\-use\-temp\-file\fR" 4
-.IX Item "--use-temp-file"
-Use a temporary file to instead of using popen to read the output of
-the preprocessor. Use this option if the popen implementation is buggy
-on the host (eg., certain non-English language versions of Windows 95 and
-Windows 98 are known to have buggy popen where the output will instead
-go the console).
-.IP "\fB\-\-no\-use\-temp\-file\fR" 4
-.IX Item "--no-use-temp-file"
-Use popen, not a temporary file, to read the output of the preprocessor.
-This is the default behaviour.
-.IP "\fB\-h\fR" 4
-.IX Item "-h"
-.PD 0
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-.PD
-Prints a usage summary.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Prints the version number for \fBwindres\fR.
-.IP "\fB\-\-yydebug\fR" 4
-.IX Item "--yydebug"
-If \fBwindres\fR is compiled with \f(CW\*(C`YYDEBUG\*(C'\fR defined as \f(CW1\fR,
-this will turn on parser debugging.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR. The options read are
-inserted in place of the original @\fIfile\fR option. If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace. A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes. Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash. The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts. A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils-2.17/binutils/dwarf.c b/binutils-2.17/binutils/dwarf.c
deleted file mode 100644
index c69cab22..00000000
--- a/binutils-2.17/binutils/dwarf.c
+++ /dev/null
@@ -1,3732 +0,0 @@
-/* dwarf.c -- display DWARF contents of a BFD binary file
- Copyright 2005, 2006
- Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#include <stdio.h>
-
-#include "dwarf.h"
-
-#include "bucomm.h"
-#include "libiberty.h"
-
-static int have_frame_base;
-static int need_base_address;
-
-static unsigned int last_pointer_size = 0;
-static int warned_about_missing_comp_units = FALSE;
-
-static unsigned int num_debug_info_entries = 0;
-static debug_info *debug_information = NULL;
-
-dwarf_vma eh_addr_size;
-int is_relocatable;
-
-int do_debug_info;
-int do_debug_abbrevs;
-int do_debug_lines;
-int do_debug_pubnames;
-int do_debug_aranges;
-int do_debug_ranges;
-int do_debug_frames;
-int do_debug_frames_interp;
-int do_debug_macinfo;
-int do_debug_str;
-int do_debug_loc;
-
-dwarf_vma (*byte_get) (unsigned char *, int);
-
-dwarf_vma
-byte_get_little_endian (unsigned char *field, int size)
-{
- switch (size)
- {
- case 1:
- return *field;
-
- case 2:
- return ((unsigned int) (field[0]))
- | (((unsigned int) (field[1])) << 8);
-
- case 4:
- return ((unsigned long) (field[0]))
- | (((unsigned long) (field[1])) << 8)
- | (((unsigned long) (field[2])) << 16)
- | (((unsigned long) (field[3])) << 24);
-
- case 8:
- if (sizeof (dwarf_vma) == 8)
- return ((dwarf_vma) (field[0]))
- | (((dwarf_vma) (field[1])) << 8)
- | (((dwarf_vma) (field[2])) << 16)
- | (((dwarf_vma) (field[3])) << 24)
- | (((dwarf_vma) (field[4])) << 32)
- | (((dwarf_vma) (field[5])) << 40)
- | (((dwarf_vma) (field[6])) << 48)
- | (((dwarf_vma) (field[7])) << 56);
- else if (sizeof (dwarf_vma) == 4)
- /* We want to extract data from an 8 byte wide field and
- place it into a 4 byte wide field. Since this is a little
- endian source we can just use the 4 byte extraction code. */
- return ((unsigned long) (field[0]))
- | (((unsigned long) (field[1])) << 8)
- | (((unsigned long) (field[2])) << 16)
- | (((unsigned long) (field[3])) << 24);
-
- default:
- error (_("Unhandled data length: %d\n"), size);
- abort ();
- }
-}
-
-dwarf_vma
-byte_get_big_endian (unsigned char *field, int size)
-{
- switch (size)
- {
- case 1:
- return *field;
-
- case 2:
- return ((unsigned int) (field[1])) | (((int) (field[0])) << 8);
-
- case 4:
- return ((unsigned long) (field[3]))
- | (((unsigned long) (field[2])) << 8)
- | (((unsigned long) (field[1])) << 16)
- | (((unsigned long) (field[0])) << 24);
-
- case 8:
- if (sizeof (dwarf_vma) == 8)
- return ((dwarf_vma) (field[7]))
- | (((dwarf_vma) (field[6])) << 8)
- | (((dwarf_vma) (field[5])) << 16)
- | (((dwarf_vma) (field[4])) << 24)
- | (((dwarf_vma) (field[3])) << 32)
- | (((dwarf_vma) (field[2])) << 40)
- | (((dwarf_vma) (field[1])) << 48)
- | (((dwarf_vma) (field[0])) << 56);
- else if (sizeof (dwarf_vma) == 4)
- {
- /* Although we are extracing data from an 8 byte wide field,
- we are returning only 4 bytes of data. */
- field += 4;
- return ((unsigned long) (field[3]))
- | (((unsigned long) (field[2])) << 8)
- | (((unsigned long) (field[1])) << 16)
- | (((unsigned long) (field[0])) << 24);
- }
-
- default:
- error (_("Unhandled data length: %d\n"), size);
- abort ();
- }
-}
-
-static dwarf_vma
-byte_get_signed (unsigned char *field, int size)
-{
- dwarf_vma x = byte_get (field, size);
-
- switch (size)
- {
- case 1:
- return (x ^ 0x80) - 0x80;
- case 2:
- return (x ^ 0x8000) - 0x8000;
- case 4:
- return (x ^ 0x80000000) - 0x80000000;
- case 8:
- return x;
- default:
- abort ();
- }
-}
-
-static unsigned long int
-read_leb128 (unsigned char *data, unsigned int *length_return, int sign)
-{
- unsigned long int result = 0;
- unsigned int num_read = 0;
- unsigned int shift = 0;
- unsigned char byte;
-
- do
- {
- byte = *data++;
- num_read++;
-
- result |= ((unsigned long int) (byte & 0x7f)) << shift;
-
- shift += 7;
-
- }
- while (byte & 0x80);
-
- if (length_return != NULL)
- *length_return = num_read;
-
- if (sign && (shift < 8 * sizeof (result)) && (byte & 0x40))
- result |= -1L << shift;
-
- return result;
-}
-
-typedef struct State_Machine_Registers
-{
- unsigned long address;
- unsigned int file;
- unsigned int line;
- unsigned int column;
- int is_stmt;
- int basic_block;
- int end_sequence;
-/* This variable hold the number of the last entry seen
- in the File Table. */
- unsigned int last_file_entry;
-} SMR;
-
-static SMR state_machine_regs;
-
-static void
-reset_state_machine (int is_stmt)
-{
- state_machine_regs.address = 0;
- state_machine_regs.file = 1;
- state_machine_regs.line = 1;
- state_machine_regs.column = 0;
- state_machine_regs.is_stmt = is_stmt;
- state_machine_regs.basic_block = 0;
- state_machine_regs.end_sequence = 0;
- state_machine_regs.last_file_entry = 0;
-}
-
-/* Handled an extend line op.
- Returns the number of bytes read. */
-
-static int
-process_extended_line_op (unsigned char *data, int is_stmt)
-{
- unsigned char op_code;
- unsigned int bytes_read;
- unsigned int len;
- unsigned char *name;
- unsigned long adr;
-
- len = read_leb128 (data, & bytes_read, 0);
- data += bytes_read;
-
- if (len == 0)
- {
- warn (_("badly formed extended line op encountered!\n"));
- return bytes_read;
- }
-
- len += bytes_read;
- op_code = *data++;
-
- printf (_(" Extended opcode %d: "), op_code);
-
- switch (op_code)
- {
- case DW_LNE_end_sequence:
- printf (_("End of Sequence\n\n"));
- reset_state_machine (is_stmt);
- break;
-
- case DW_LNE_set_address:
- adr = byte_get (data, len - bytes_read - 1);
- printf (_("set Address to 0x%lx\n"), adr);
- state_machine_regs.address = adr;
- break;
-
- case DW_LNE_define_file:
- printf (_(" define new File Table entry\n"));
- printf (_(" Entry\tDir\tTime\tSize\tName\n"));
-
- printf (_(" %d\t"), ++state_machine_regs.last_file_entry);
- name = data;
- data += strlen ((char *) data) + 1;
- printf (_("%lu\t"), read_leb128 (data, & bytes_read, 0));
- data += bytes_read;
- printf (_("%lu\t"), read_leb128 (data, & bytes_read, 0));
- data += bytes_read;
- printf (_("%lu\t"), read_leb128 (data, & bytes_read, 0));
- printf (_("%s\n\n"), name);
- break;
-
- default:
- printf (_("UNKNOWN: length %d\n"), len - bytes_read);
- break;
- }
-
- return len;
-}
-
-static const char *
-fetch_indirect_string (unsigned long offset)
-{
- struct dwarf_section *section = &debug_displays [str].section;
-
- if (section->start == NULL)
- return _("<no .debug_str section>");
-
- /* DWARF sections under Mach-O have non-zero addresses. */
- offset -= section->address;
- if (offset > section->size)
- {
- warn (_("DW_FORM_strp offset too big: %lx\n"), offset);
- return _("<offset is too big>");
- }
-
- return (const char *) section->start + offset;
-}
-
-/* FIXME: There are better and more efficient ways to handle
- these structures. For now though, I just want something that
- is simple to implement. */
-typedef struct abbrev_attr
-{
- unsigned long attribute;
- unsigned long form;
- struct abbrev_attr *next;
-}
-abbrev_attr;
-
-typedef struct abbrev_entry
-{
- unsigned long entry;
- unsigned long tag;
- int children;
- struct abbrev_attr *first_attr;
- struct abbrev_attr *last_attr;
- struct abbrev_entry *next;
-}
-abbrev_entry;
-
-static abbrev_entry *first_abbrev = NULL;
-static abbrev_entry *last_abbrev = NULL;
-
-static void
-free_abbrevs (void)
-{
- abbrev_entry *abbrev;
-
- for (abbrev = first_abbrev; abbrev;)
- {
- abbrev_entry *next = abbrev->next;
- abbrev_attr *attr;
-
- for (attr = abbrev->first_attr; attr;)
- {
- abbrev_attr *next = attr->next;
-
- free (attr);
- attr = next;
- }
-
- free (abbrev);
- abbrev = next;
- }
-
- last_abbrev = first_abbrev = NULL;
-}
-
-static void
-add_abbrev (unsigned long number, unsigned long tag, int children)
-{
- abbrev_entry *entry;
-
- entry = malloc (sizeof (*entry));
-
- if (entry == NULL)
- /* ugg */
- return;
-
- entry->entry = number;
- entry->tag = tag;
- entry->children = children;
- entry->first_attr = NULL;
- entry->last_attr = NULL;
- entry->next = NULL;
-
- if (first_abbrev == NULL)
- first_abbrev = entry;
- else
- last_abbrev->next = entry;
-
- last_abbrev = entry;
-}
-
-static void
-add_abbrev_attr (unsigned long attribute, unsigned long form)
-{
- abbrev_attr *attr;
-
- attr = malloc (sizeof (*attr));
-
- if (attr == NULL)
- /* ugg */
- return;
-
- attr->attribute = attribute;
- attr->form = form;
- attr->next = NULL;
-
- if (last_abbrev->first_attr == NULL)
- last_abbrev->first_attr = attr;
- else
- last_abbrev->last_attr->next = attr;
-
- last_abbrev->last_attr = attr;
-}
-
-/* Processes the (partial) contents of a .debug_abbrev section.
- Returns NULL if the end of the section was encountered.
- Returns the address after the last byte read if the end of
- an abbreviation set was found. */
-
-static unsigned char *
-process_abbrev_section (unsigned char *start, unsigned char *end)
-{
- if (first_abbrev != NULL)
- return NULL;
-
- while (start < end)
- {
- unsigned int bytes_read;
- unsigned long entry;
- unsigned long tag;
- unsigned long attribute;
- int children;
-
- entry = read_leb128 (start, & bytes_read, 0);
- start += bytes_read;
-
- /* A single zero is supposed to end the section according
- to the standard. If there's more, then signal that to
- the caller. */
- if (entry == 0)
- return start == end ? NULL : start;
-
- tag = read_leb128 (start, & bytes_read, 0);
- start += bytes_read;
-
- children = *start++;
-
- add_abbrev (entry, tag, children);
-
- do
- {
- unsigned long form;
-
- attribute = read_leb128 (start, & bytes_read, 0);
- start += bytes_read;
-
- form = read_leb128 (start, & bytes_read, 0);
- start += bytes_read;
-
- if (attribute != 0)
- add_abbrev_attr (attribute, form);
- }
- while (attribute != 0);
- }
-
- return NULL;
-}
-
-static char *
-get_TAG_name (unsigned long tag)
-{
- switch (tag)
- {
- case DW_TAG_padding: return "DW_TAG_padding";
- case DW_TAG_array_type: return "DW_TAG_array_type";
- case DW_TAG_class_type: return "DW_TAG_class_type";
- case DW_TAG_entry_point: return "DW_TAG_entry_point";
- case DW_TAG_enumeration_type: return "DW_TAG_enumeration_type";
- case DW_TAG_formal_parameter: return "DW_TAG_formal_parameter";
- case DW_TAG_imported_declaration: return "DW_TAG_imported_declaration";
- case DW_TAG_label: return "DW_TAG_label";
- case DW_TAG_lexical_block: return "DW_TAG_lexical_block";
- case DW_TAG_member: return "DW_TAG_member";
- case DW_TAG_pointer_type: return "DW_TAG_pointer_type";
- case DW_TAG_reference_type: return "DW_TAG_reference_type";
- case DW_TAG_compile_unit: return "DW_TAG_compile_unit";
- case DW_TAG_string_type: return "DW_TAG_string_type";
- case DW_TAG_structure_type: return "DW_TAG_structure_type";
- case DW_TAG_subroutine_type: return "DW_TAG_subroutine_type";
- case DW_TAG_typedef: return "DW_TAG_typedef";
- case DW_TAG_union_type: return "DW_TAG_union_type";
- case DW_TAG_unspecified_parameters: return "DW_TAG_unspecified_parameters";
- case DW_TAG_variant: return "DW_TAG_variant";
- case DW_TAG_common_block: return "DW_TAG_common_block";
- case DW_TAG_common_inclusion: return "DW_TAG_common_inclusion";
- case DW_TAG_inheritance: return "DW_TAG_inheritance";
- case DW_TAG_inlined_subroutine: return "DW_TAG_inlined_subroutine";
- case DW_TAG_module: return "DW_TAG_module";
- case DW_TAG_ptr_to_member_type: return "DW_TAG_ptr_to_member_type";
- case DW_TAG_set_type: return "DW_TAG_set_type";
- case DW_TAG_subrange_type: return "DW_TAG_subrange_type";
- case DW_TAG_with_stmt: return "DW_TAG_with_stmt";
- case DW_TAG_access_declaration: return "DW_TAG_access_declaration";
- case DW_TAG_base_type: return "DW_TAG_base_type";
- case DW_TAG_catch_block: return "DW_TAG_catch_block";
- case DW_TAG_const_type: return "DW_TAG_const_type";
- case DW_TAG_constant: return "DW_TAG_constant";
- case DW_TAG_enumerator: return "DW_TAG_enumerator";
- case DW_TAG_file_type: return "DW_TAG_file_type";
- case DW_TAG_friend: return "DW_TAG_friend";
- case DW_TAG_namelist: return "DW_TAG_namelist";
- case DW_TAG_namelist_item: return "DW_TAG_namelist_item";
- case DW_TAG_packed_type: return "DW_TAG_packed_type";
- case DW_TAG_subprogram: return "DW_TAG_subprogram";
- case DW_TAG_template_type_param: return "DW_TAG_template_type_param";
- case DW_TAG_template_value_param: return "DW_TAG_template_value_param";
- case DW_TAG_thrown_type: return "DW_TAG_thrown_type";
- case DW_TAG_try_block: return "DW_TAG_try_block";
- case DW_TAG_variant_part: return "DW_TAG_variant_part";
- case DW_TAG_variable: return "DW_TAG_variable";
- case DW_TAG_volatile_type: return "DW_TAG_volatile_type";
- case DW_TAG_MIPS_loop: return "DW_TAG_MIPS_loop";
- case DW_TAG_format_label: return "DW_TAG_format_label";
- case DW_TAG_function_template: return "DW_TAG_function_template";
- case DW_TAG_class_template: return "DW_TAG_class_template";
- /* DWARF 2.1 values. */
- case DW_TAG_dwarf_procedure: return "DW_TAG_dwarf_procedure";
- case DW_TAG_restrict_type: return "DW_TAG_restrict_type";
- case DW_TAG_interface_type: return "DW_TAG_interface_type";
- case DW_TAG_namespace: return "DW_TAG_namespace";
- case DW_TAG_imported_module: return "DW_TAG_imported_module";
- case DW_TAG_unspecified_type: return "DW_TAG_unspecified_type";
- case DW_TAG_partial_unit: return "DW_TAG_partial_unit";
- case DW_TAG_imported_unit: return "DW_TAG_imported_unit";
- /* UPC values. */
- case DW_TAG_upc_shared_type: return "DW_TAG_upc_shared_type";
- case DW_TAG_upc_strict_type: return "DW_TAG_upc_strict_type";
- case DW_TAG_upc_relaxed_type: return "DW_TAG_upc_relaxed_type";
- default:
- {
- static char buffer[100];
-
- snprintf (buffer, sizeof (buffer), _("Unknown TAG value: %lx"), tag);
- return buffer;
- }
- }
-}
-
-static char *
-get_FORM_name (unsigned long form)
-{
- switch (form)
- {
- case DW_FORM_addr: return "DW_FORM_addr";
- case DW_FORM_block2: return "DW_FORM_block2";
- case DW_FORM_block4: return "DW_FORM_block4";
- case DW_FORM_data2: return "DW_FORM_data2";
- case DW_FORM_data4: return "DW_FORM_data4";
- case DW_FORM_data8: return "DW_FORM_data8";
- case DW_FORM_string: return "DW_FORM_string";
- case DW_FORM_block: return "DW_FORM_block";
- case DW_FORM_block1: return "DW_FORM_block1";
- case DW_FORM_data1: return "DW_FORM_data1";
- case DW_FORM_flag: return "DW_FORM_flag";
- case DW_FORM_sdata: return "DW_FORM_sdata";
- case DW_FORM_strp: return "DW_FORM_strp";
- case DW_FORM_udata: return "DW_FORM_udata";
- case DW_FORM_ref_addr: return "DW_FORM_ref_addr";
- case DW_FORM_ref1: return "DW_FORM_ref1";
- case DW_FORM_ref2: return "DW_FORM_ref2";
- case DW_FORM_ref4: return "DW_FORM_ref4";
- case DW_FORM_ref8: return "DW_FORM_ref8";
- case DW_FORM_ref_udata: return "DW_FORM_ref_udata";
- case DW_FORM_indirect: return "DW_FORM_indirect";
- default:
- {
- static char buffer[100];
-
- snprintf (buffer, sizeof (buffer), _("Unknown FORM value: %lx"), form);
- return buffer;
- }
- }
-}
-
-static unsigned char *
-display_block (unsigned char *data, unsigned long length)
-{
- printf (_(" %lu byte block: "), length);
-
- while (length --)
- printf ("%lx ", (unsigned long) byte_get (data++, 1));
-
- return data;
-}
-
-static int
-decode_location_expression (unsigned char * data,
- unsigned int pointer_size,
- unsigned long length,
- unsigned long cu_offset)
-{
- unsigned op;
- unsigned int bytes_read;
- unsigned long uvalue;
- unsigned char *end = data + length;
- int need_frame_base = 0;
-
- while (data < end)
- {
- op = *data++;
-
- switch (op)
- {
- case DW_OP_addr:
- printf ("DW_OP_addr: %lx",
- (unsigned long) byte_get (data, pointer_size));
- data += pointer_size;
- break;
- case DW_OP_deref:
- printf ("DW_OP_deref");
- break;
- case DW_OP_const1u:
- printf ("DW_OP_const1u: %lu", (unsigned long) byte_get (data++, 1));
- break;
- case DW_OP_const1s:
- printf ("DW_OP_const1s: %ld", (long) byte_get_signed (data++, 1));
- break;
- case DW_OP_const2u:
- printf ("DW_OP_const2u: %lu", (unsigned long) byte_get (data, 2));
- data += 2;
- break;
- case DW_OP_const2s:
- printf ("DW_OP_const2s: %ld", (long) byte_get_signed (data, 2));
- data += 2;
- break;
- case DW_OP_const4u:
- printf ("DW_OP_const4u: %lu", (unsigned long) byte_get (data, 4));
- data += 4;
- break;
- case DW_OP_const4s:
- printf ("DW_OP_const4s: %ld", (long) byte_get_signed (data, 4));
- data += 4;
- break;
- case DW_OP_const8u:
- printf ("DW_OP_const8u: %lu %lu", (unsigned long) byte_get (data, 4),
- (unsigned long) byte_get (data + 4, 4));
- data += 8;
- break;
- case DW_OP_const8s:
- printf ("DW_OP_const8s: %ld %ld", (long) byte_get (data, 4),
- (long) byte_get (data + 4, 4));
- data += 8;
- break;
- case DW_OP_constu:
- printf ("DW_OP_constu: %lu", read_leb128 (data, &bytes_read, 0));
- data += bytes_read;
- break;
- case DW_OP_consts:
- printf ("DW_OP_consts: %ld", read_leb128 (data, &bytes_read, 1));
- data += bytes_read;
- break;
- case DW_OP_dup:
- printf ("DW_OP_dup");
- break;
- case DW_OP_drop:
- printf ("DW_OP_drop");
- break;
- case DW_OP_over:
- printf ("DW_OP_over");
- break;
- case DW_OP_pick:
- printf ("DW_OP_pick: %ld", (unsigned long) byte_get (data++, 1));
- break;
- case DW_OP_swap:
- printf ("DW_OP_swap");
- break;
- case DW_OP_rot:
- printf ("DW_OP_rot");
- break;
- case DW_OP_xderef:
- printf ("DW_OP_xderef");
- break;
- case DW_OP_abs:
- printf ("DW_OP_abs");
- break;
- case DW_OP_and:
- printf ("DW_OP_and");
- break;
- case DW_OP_div:
- printf ("DW_OP_div");
- break;
- case DW_OP_minus:
- printf ("DW_OP_minus");
- break;
- case DW_OP_mod:
- printf ("DW_OP_mod");
- break;
- case DW_OP_mul:
- printf ("DW_OP_mul");
- break;
- case DW_OP_neg:
- printf ("DW_OP_neg");
- break;
- case DW_OP_not:
- printf ("DW_OP_not");
- break;
- case DW_OP_or:
- printf ("DW_OP_or");
- break;
- case DW_OP_plus:
- printf ("DW_OP_plus");
- break;
- case DW_OP_plus_uconst:
- printf ("DW_OP_plus_uconst: %lu",
- read_leb128 (data, &bytes_read, 0));
- data += bytes_read;
- break;
- case DW_OP_shl:
- printf ("DW_OP_shl");
- break;
- case DW_OP_shr:
- printf ("DW_OP_shr");
- break;
- case DW_OP_shra:
- printf ("DW_OP_shra");
- break;
- case DW_OP_xor:
- printf ("DW_OP_xor");
- break;
- case DW_OP_bra:
- printf ("DW_OP_bra: %ld", (long) byte_get_signed (data, 2));
- data += 2;
- break;
- case DW_OP_eq:
- printf ("DW_OP_eq");
- break;
- case DW_OP_ge:
- printf ("DW_OP_ge");
- break;
- case DW_OP_gt:
- printf ("DW_OP_gt");
- break;
- case DW_OP_le:
- printf ("DW_OP_le");
- break;
- case DW_OP_lt:
- printf ("DW_OP_lt");
- break;
- case DW_OP_ne:
- printf ("DW_OP_ne");
- break;
- case DW_OP_skip:
- printf ("DW_OP_skip: %ld", (long) byte_get_signed (data, 2));
- data += 2;
- break;
-
- case DW_OP_lit0:
- case DW_OP_lit1:
- case DW_OP_lit2:
- case DW_OP_lit3:
- case DW_OP_lit4:
- case DW_OP_lit5:
- case DW_OP_lit6:
- case DW_OP_lit7:
- case DW_OP_lit8:
- case DW_OP_lit9:
- case DW_OP_lit10:
- case DW_OP_lit11:
- case DW_OP_lit12:
- case DW_OP_lit13:
- case DW_OP_lit14:
- case DW_OP_lit15:
- case DW_OP_lit16:
- case DW_OP_lit17:
- case DW_OP_lit18:
- case DW_OP_lit19:
- case DW_OP_lit20:
- case DW_OP_lit21:
- case DW_OP_lit22:
- case DW_OP_lit23:
- case DW_OP_lit24:
- case DW_OP_lit25:
- case DW_OP_lit26:
- case DW_OP_lit27:
- case DW_OP_lit28:
- case DW_OP_lit29:
- case DW_OP_lit30:
- case DW_OP_lit31:
- printf ("DW_OP_lit%d", op - DW_OP_lit0);
- break;
-
- case DW_OP_reg0:
- case DW_OP_reg1:
- case DW_OP_reg2:
- case DW_OP_reg3:
- case DW_OP_reg4:
- case DW_OP_reg5:
- case DW_OP_reg6:
- case DW_OP_reg7:
- case DW_OP_reg8:
- case DW_OP_reg9:
- case DW_OP_reg10:
- case DW_OP_reg11:
- case DW_OP_reg12:
- case DW_OP_reg13:
- case DW_OP_reg14:
- case DW_OP_reg15:
- case DW_OP_reg16:
- case DW_OP_reg17:
- case DW_OP_reg18:
- case DW_OP_reg19:
- case DW_OP_reg20:
- case DW_OP_reg21:
- case DW_OP_reg22:
- case DW_OP_reg23:
- case DW_OP_reg24:
- case DW_OP_reg25:
- case DW_OP_reg26:
- case DW_OP_reg27:
- case DW_OP_reg28:
- case DW_OP_reg29:
- case DW_OP_reg30:
- case DW_OP_reg31:
- printf ("DW_OP_reg%d", op - DW_OP_reg0);
- break;
-
- case DW_OP_breg0:
- case DW_OP_breg1:
- case DW_OP_breg2:
- case DW_OP_breg3:
- case DW_OP_breg4:
- case DW_OP_breg5:
- case DW_OP_breg6:
- case DW_OP_breg7:
- case DW_OP_breg8:
- case DW_OP_breg9:
- case DW_OP_breg10:
- case DW_OP_breg11:
- case DW_OP_breg12:
- case DW_OP_breg13:
- case DW_OP_breg14:
- case DW_OP_breg15:
- case DW_OP_breg16:
- case DW_OP_breg17:
- case DW_OP_breg18:
- case DW_OP_breg19:
- case DW_OP_breg20:
- case DW_OP_breg21:
- case DW_OP_breg22:
- case DW_OP_breg23:
- case DW_OP_breg24:
- case DW_OP_breg25:
- case DW_OP_breg26:
- case DW_OP_breg27:
- case DW_OP_breg28:
- case DW_OP_breg29:
- case DW_OP_breg30:
- case DW_OP_breg31:
- printf ("DW_OP_breg%d: %ld", op - DW_OP_breg0,
- read_leb128 (data, &bytes_read, 1));
- data += bytes_read;
- break;
-
- case DW_OP_regx:
- printf ("DW_OP_regx: %lu", read_leb128 (data, &bytes_read, 0));
- data += bytes_read;
- break;
- case DW_OP_fbreg:
- need_frame_base = 1;
- printf ("DW_OP_fbreg: %ld", read_leb128 (data, &bytes_read, 1));
- data += bytes_read;
- break;
- case DW_OP_bregx:
- uvalue = read_leb128 (data, &bytes_read, 0);
- data += bytes_read;
- printf ("DW_OP_bregx: %lu %ld", uvalue,
- read_leb128 (data, &bytes_read, 1));
- data += bytes_read;
- break;
- case DW_OP_piece:
- printf ("DW_OP_piece: %lu", read_leb128 (data, &bytes_read, 0));
- data += bytes_read;
- break;
- case DW_OP_deref_size:
- printf ("DW_OP_deref_size: %ld", (long) byte_get (data++, 1));
- break;
- case DW_OP_xderef_size:
- printf ("DW_OP_xderef_size: %ld", (long) byte_get (data++, 1));
- break;
- case DW_OP_nop:
- printf ("DW_OP_nop");
- break;
-
- /* DWARF 3 extensions. */
- case DW_OP_push_object_address:
- printf ("DW_OP_push_object_address");
- break;
- case DW_OP_call2:
- /* XXX: Strictly speaking for 64-bit DWARF3 files
- this ought to be an 8-byte wide computation. */
- printf ("DW_OP_call2: <%lx>", (long) byte_get (data, 2) + cu_offset);
- data += 2;
- break;
- case DW_OP_call4:
- /* XXX: Strictly speaking for 64-bit DWARF3 files
- this ought to be an 8-byte wide computation. */
- printf ("DW_OP_call4: <%lx>", (long) byte_get (data, 4) + cu_offset);
- data += 4;
- break;
- case DW_OP_call_ref:
- printf ("DW_OP_call_ref");
- break;
-
- /* GNU extensions. */
- case DW_OP_GNU_push_tls_address:
- printf ("DW_OP_GNU_push_tls_address");
- break;
-
- default:
- if (op >= DW_OP_lo_user
- && op <= DW_OP_hi_user)
- printf (_("(User defined location op)"));
- else
- printf (_("(Unknown location op)"));
- /* No way to tell where the next op is, so just bail. */
- return need_frame_base;
- }
-
- /* Separate the ops. */
- if (data < end)
- printf ("; ");
- }
-
- return need_frame_base;
-}
-
-static unsigned char *
-read_and_display_attr_value (unsigned long attribute,
- unsigned long form,
- unsigned char *data,
- unsigned long cu_offset,
- unsigned long pointer_size,
- unsigned long offset_size,
- int dwarf_version,
- debug_info *debug_info_p,
- int do_loc)
-{
- unsigned long uvalue = 0;
- unsigned char *block_start = NULL;
- unsigned int bytes_read;
-
- switch (form)
- {
- default:
- break;
-
- case DW_FORM_ref_addr:
- if (dwarf_version == 2)
- {
- uvalue = byte_get (data, pointer_size);
- data += pointer_size;
- }
- else if (dwarf_version == 3)
- {
- uvalue = byte_get (data, offset_size);
- data += offset_size;
- }
- else
- {
- error (_("Internal error: DWARF version is not 2 or 3.\n"));
- }
- break;
-
- case DW_FORM_addr:
- uvalue = byte_get (data, pointer_size);
- data += pointer_size;
- break;
-
- case DW_FORM_strp:
- uvalue = byte_get (data, offset_size);
- data += offset_size;
- break;
-
- case DW_FORM_ref1:
- case DW_FORM_flag:
- case DW_FORM_data1:
- uvalue = byte_get (data++, 1);
- break;
-
- case DW_FORM_ref2:
- case DW_FORM_data2:
- uvalue = byte_get (data, 2);
- data += 2;
- break;
-
- case DW_FORM_ref4:
- case DW_FORM_data4:
- uvalue = byte_get (data, 4);
- data += 4;
- break;
-
- case DW_FORM_sdata:
- uvalue = read_leb128 (data, & bytes_read, 1);
- data += bytes_read;
- break;
-
- case DW_FORM_ref_udata:
- case DW_FORM_udata:
- uvalue = read_leb128 (data, & bytes_read, 0);
- data += bytes_read;
- break;
-
- case DW_FORM_indirect:
- form = read_leb128 (data, & bytes_read, 0);
- data += bytes_read;
- if (!do_loc)
- printf (" %s", get_FORM_name (form));
- return read_and_display_attr_value (attribute, form, data,
- cu_offset, pointer_size,
- offset_size, dwarf_version,
- debug_info_p, do_loc);
- }
-
- switch (form)
- {
- case DW_FORM_ref_addr:
- if (!do_loc)
- printf (" <#%lx>", uvalue);
- break;
-
- case DW_FORM_ref1:
- case DW_FORM_ref2:
- case DW_FORM_ref4:
- case DW_FORM_ref_udata:
- if (!do_loc)
- printf (" <%lx>", uvalue + cu_offset);
- break;
-
- case DW_FORM_data4:
- case DW_FORM_addr:
- if (!do_loc)
- printf (" %#lx", uvalue);
- break;
-
- case DW_FORM_flag:
- case DW_FORM_data1:
- case DW_FORM_data2:
- case DW_FORM_sdata:
- case DW_FORM_udata:
- if (!do_loc)
- printf (" %ld", uvalue);
- break;
-
- case DW_FORM_ref8:
- case DW_FORM_data8:
- if (!do_loc)
- {
- uvalue = byte_get (data, 4);
- printf (" %lx", uvalue);
- printf (" %lx", (unsigned long) byte_get (data + 4, 4));
- }
- if ((do_loc || do_debug_loc || do_debug_ranges)
- && num_debug_info_entries == 0)
- {
- if (sizeof (uvalue) == 8)
- uvalue = byte_get (data, 8);
- else
- error (_("DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n"));
- }
- data += 8;
- break;
-
- case DW_FORM_string:
- if (!do_loc)
- printf (" %s", data);
- data += strlen ((char *) data) + 1;
- break;
-
- case DW_FORM_block:
- uvalue = read_leb128 (data, & bytes_read, 0);
- block_start = data + bytes_read;
- if (do_loc)
- data = block_start + uvalue;
- else
- data = display_block (block_start, uvalue);
- break;
-
- case DW_FORM_block1:
- uvalue = byte_get (data, 1);
- block_start = data + 1;
- if (do_loc)
- data = block_start + uvalue;
- else
- data = display_block (block_start, uvalue);
- break;
-
- case DW_FORM_block2:
- uvalue = byte_get (data, 2);
- block_start = data + 2;
- if (do_loc)
- data = block_start + uvalue;
- else
- data = display_block (block_start, uvalue);
- break;
-
- case DW_FORM_block4:
- uvalue = byte_get (data, 4);
- block_start = data + 4;
- if (do_loc)
- data = block_start + uvalue;
- else
- data = display_block (block_start, uvalue);
- break;
-
- case DW_FORM_strp:
- if (!do_loc)
- printf (_(" (indirect string, offset: 0x%lx): %s"),
- uvalue, fetch_indirect_string (uvalue));
- break;
-
- case DW_FORM_indirect:
- /* Handled above. */
- break;
-
- default:
- warn (_("Unrecognized form: %lu\n"), form);
- break;
- }
-
- /* For some attributes we can display further information. */
- if ((do_loc || do_debug_loc || do_debug_ranges)
- && num_debug_info_entries == 0)
- {
- switch (attribute)
- {
- case DW_AT_frame_base:
- have_frame_base = 1;
- case DW_AT_location:
- case DW_AT_data_member_location:
- case DW_AT_vtable_elem_location:
- case DW_AT_allocated:
- case DW_AT_associated:
- case DW_AT_data_location:
- case DW_AT_stride:
- case DW_AT_upper_bound:
- case DW_AT_lower_bound:
- if (form == DW_FORM_data4 || form == DW_FORM_data8)
- {
- /* Process location list. */
- unsigned int max = debug_info_p->max_loc_offsets;
- unsigned int num = debug_info_p->num_loc_offsets;
-
- if (max == 0 || num >= max)
- {
- max += 1024;
- debug_info_p->loc_offsets
- = xcrealloc (debug_info_p->loc_offsets,
- max, sizeof (*debug_info_p->loc_offsets));
- debug_info_p->have_frame_base
- = xcrealloc (debug_info_p->have_frame_base,
- max, sizeof (*debug_info_p->have_frame_base));
- debug_info_p->max_loc_offsets = max;
- }
- debug_info_p->loc_offsets [num] = uvalue;
- debug_info_p->have_frame_base [num] = have_frame_base;
- debug_info_p->num_loc_offsets++;
- }
- break;
-
- case DW_AT_low_pc:
- if (need_base_address)
- debug_info_p->base_address = uvalue;
- break;
-
- case DW_AT_ranges:
- if (form == DW_FORM_data4 || form == DW_FORM_data8)
- {
- /* Process range list. */
- unsigned int max = debug_info_p->max_range_lists;
- unsigned int num = debug_info_p->num_range_lists;
-
- if (max == 0 || num >= max)
- {
- max += 1024;
- debug_info_p->range_lists
- = xcrealloc (debug_info_p->range_lists,
- max, sizeof (*debug_info_p->range_lists));
- debug_info_p->max_range_lists = max;
- }
- debug_info_p->range_lists [num] = uvalue;
- debug_info_p->num_range_lists++;
- }
- break;
-
- default:
- break;
- }
- }
-
- if (do_loc)
- return data;
-
- printf ("\t");
-
- switch (attribute)
- {
- case DW_AT_inline:
- switch (uvalue)
- {
- case DW_INL_not_inlined:
- printf (_("(not inlined)"));
- break;
- case DW_INL_inlined:
- printf (_("(inlined)"));
- break;
- case DW_INL_declared_not_inlined:
- printf (_("(declared as inline but ignored)"));
- break;
- case DW_INL_declared_inlined:
- printf (_("(declared as inline and inlined)"));
- break;
- default:
- printf (_(" (Unknown inline attribute value: %lx)"), uvalue);
- break;
- }
- break;
-
- case DW_AT_language:
- switch (uvalue)
- {
- case DW_LANG_C: printf ("(non-ANSI C)"); break;
- case DW_LANG_C89: printf ("(ANSI C)"); break;
- case DW_LANG_C_plus_plus: printf ("(C++)"); break;
- case DW_LANG_Fortran77: printf ("(FORTRAN 77)"); break;
- case DW_LANG_Fortran90: printf ("(Fortran 90)"); break;
- case DW_LANG_Modula2: printf ("(Modula 2)"); break;
- case DW_LANG_Pascal83: printf ("(ANSI Pascal)"); break;
- case DW_LANG_Ada83: printf ("(Ada)"); break;
- case DW_LANG_Cobol74: printf ("(Cobol 74)"); break;
- case DW_LANG_Cobol85: printf ("(Cobol 85)"); break;
- /* DWARF 2.1 values. */
- case DW_LANG_C99: printf ("(ANSI C99)"); break;
- case DW_LANG_Ada95: printf ("(ADA 95)"); break;
- case DW_LANG_Fortran95: printf ("(Fortran 95)"); break;
- /* MIPS extension. */
- case DW_LANG_Mips_Assembler: printf ("(MIPS assembler)"); break;
- /* UPC extension. */
- case DW_LANG_Upc: printf ("(Unified Parallel C)"); break;
- default:
- printf ("(Unknown: %lx)", uvalue);
- break;
- }
- break;
-
- case DW_AT_encoding:
- switch (uvalue)
- {
- case DW_ATE_void: printf ("(void)"); break;
- case DW_ATE_address: printf ("(machine address)"); break;
- case DW_ATE_boolean: printf ("(boolean)"); break;
- case DW_ATE_complex_float: printf ("(complex float)"); break;
- case DW_ATE_float: printf ("(float)"); break;
- case DW_ATE_signed: printf ("(signed)"); break;
- case DW_ATE_signed_char: printf ("(signed char)"); break;
- case DW_ATE_unsigned: printf ("(unsigned)"); break;
- case DW_ATE_unsigned_char: printf ("(unsigned char)"); break;
- /* DWARF 2.1 value. */
- case DW_ATE_imaginary_float: printf ("(imaginary float)"); break;
- case DW_ATE_decimal_float: printf ("(decimal float)"); break;
- default:
- if (uvalue >= DW_ATE_lo_user
- && uvalue <= DW_ATE_hi_user)
- printf ("(user defined type)");
- else
- printf ("(unknown type)");
- break;
- }
- break;
-
- case DW_AT_accessibility:
- switch (uvalue)
- {
- case DW_ACCESS_public: printf ("(public)"); break;
- case DW_ACCESS_protected: printf ("(protected)"); break;
- case DW_ACCESS_private: printf ("(private)"); break;
- default:
- printf ("(unknown accessibility)");
- break;
- }
- break;
-
- case DW_AT_visibility:
- switch (uvalue)
- {
- case DW_VIS_local: printf ("(local)"); break;
- case DW_VIS_exported: printf ("(exported)"); break;
- case DW_VIS_qualified: printf ("(qualified)"); break;
- default: printf ("(unknown visibility)"); break;
- }
- break;
-
- case DW_AT_virtuality:
- switch (uvalue)
- {
- case DW_VIRTUALITY_none: printf ("(none)"); break;
- case DW_VIRTUALITY_virtual: printf ("(virtual)"); break;
- case DW_VIRTUALITY_pure_virtual:printf ("(pure_virtual)"); break;
- default: printf ("(unknown virtuality)"); break;
- }
- break;
-
- case DW_AT_identifier_case:
- switch (uvalue)
- {
- case DW_ID_case_sensitive: printf ("(case_sensitive)"); break;
- case DW_ID_up_case: printf ("(up_case)"); break;
- case DW_ID_down_case: printf ("(down_case)"); break;
- case DW_ID_case_insensitive: printf ("(case_insensitive)"); break;
- default: printf ("(unknown case)"); break;
- }
- break;
-
- case DW_AT_calling_convention:
- switch (uvalue)
- {
- case DW_CC_normal: printf ("(normal)"); break;
- case DW_CC_program: printf ("(program)"); break;
- case DW_CC_nocall: printf ("(nocall)"); break;
- default:
- if (uvalue >= DW_CC_lo_user
- && uvalue <= DW_CC_hi_user)
- printf ("(user defined)");
- else
- printf ("(unknown convention)");
- }
- break;
-
- case DW_AT_ordering:
- switch (uvalue)
- {
- case -1: printf ("(undefined)"); break;
- case 0: printf ("(row major)"); break;
- case 1: printf ("(column major)"); break;
- }
- break;
-
- case DW_AT_frame_base:
- have_frame_base = 1;
- case DW_AT_location:
- case DW_AT_data_member_location:
- case DW_AT_vtable_elem_location:
- case DW_AT_allocated:
- case DW_AT_associated:
- case DW_AT_data_location:
- case DW_AT_stride:
- case DW_AT_upper_bound:
- case DW_AT_lower_bound:
- if (block_start)
- {
- int need_frame_base;
-
- printf ("(");
- need_frame_base = decode_location_expression (block_start,
- pointer_size,
- uvalue,
- cu_offset);
- printf (")");
- if (need_frame_base && !have_frame_base)
- printf (_(" [without DW_AT_frame_base]"));
- }
- else if (form == DW_FORM_data4 || form == DW_FORM_data8)
- printf (_("(location list)"));
-
- break;
-
- default:
- break;
- }
-
- return data;
-}
-
-static char *
-get_AT_name (unsigned long attribute)
-{
- switch (attribute)
- {
- case DW_AT_sibling: return "DW_AT_sibling";
- case DW_AT_location: return "DW_AT_location";
- case DW_AT_name: return "DW_AT_name";
- case DW_AT_ordering: return "DW_AT_ordering";
- case DW_AT_subscr_data: return "DW_AT_subscr_data";
- case DW_AT_byte_size: return "DW_AT_byte_size";
- case DW_AT_bit_offset: return "DW_AT_bit_offset";
- case DW_AT_bit_size: return "DW_AT_bit_size";
- case DW_AT_element_list: return "DW_AT_element_list";
- case DW_AT_stmt_list: return "DW_AT_stmt_list";
- case DW_AT_low_pc: return "DW_AT_low_pc";
- case DW_AT_high_pc: return "DW_AT_high_pc";
- case DW_AT_language: return "DW_AT_language";
- case DW_AT_member: return "DW_AT_member";
- case DW_AT_discr: return "DW_AT_discr";
- case DW_AT_discr_value: return "DW_AT_discr_value";
- case DW_AT_visibility: return "DW_AT_visibility";
- case DW_AT_import: return "DW_AT_import";
- case DW_AT_string_length: return "DW_AT_string_length";
- case DW_AT_common_reference: return "DW_AT_common_reference";
- case DW_AT_comp_dir: return "DW_AT_comp_dir";
- case DW_AT_const_value: return "DW_AT_const_value";
- case DW_AT_containing_type: return "DW_AT_containing_type";
- case DW_AT_default_value: return "DW_AT_default_value";
- case DW_AT_inline: return "DW_AT_inline";
- case DW_AT_is_optional: return "DW_AT_is_optional";
- case DW_AT_lower_bound: return "DW_AT_lower_bound";
- case DW_AT_producer: return "DW_AT_producer";
- case DW_AT_prototyped: return "DW_AT_prototyped";
- case DW_AT_return_addr: return "DW_AT_return_addr";
- case DW_AT_start_scope: return "DW_AT_start_scope";
- case DW_AT_stride_size: return "DW_AT_stride_size";
- case DW_AT_upper_bound: return "DW_AT_upper_bound";
- case DW_AT_abstract_origin: return "DW_AT_abstract_origin";
- case DW_AT_accessibility: return "DW_AT_accessibility";
- case DW_AT_address_class: return "DW_AT_address_class";
- case DW_AT_artificial: return "DW_AT_artificial";
- case DW_AT_base_types: return "DW_AT_base_types";
- case DW_AT_calling_convention: return "DW_AT_calling_convention";
- case DW_AT_count: return "DW_AT_count";
- case DW_AT_data_member_location: return "DW_AT_data_member_location";
- case DW_AT_decl_column: return "DW_AT_decl_column";
- case DW_AT_decl_file: return "DW_AT_decl_file";
- case DW_AT_decl_line: return "DW_AT_decl_line";
- case DW_AT_declaration: return "DW_AT_declaration";
- case DW_AT_discr_list: return "DW_AT_discr_list";
- case DW_AT_encoding: return "DW_AT_encoding";
- case DW_AT_external: return "DW_AT_external";
- case DW_AT_frame_base: return "DW_AT_frame_base";
- case DW_AT_friend: return "DW_AT_friend";
- case DW_AT_identifier_case: return "DW_AT_identifier_case";
- case DW_AT_macro_info: return "DW_AT_macro_info";
- case DW_AT_namelist_items: return "DW_AT_namelist_items";
- case DW_AT_priority: return "DW_AT_priority";
- case DW_AT_segment: return "DW_AT_segment";
- case DW_AT_specification: return "DW_AT_specification";
- case DW_AT_static_link: return "DW_AT_static_link";
- case DW_AT_type: return "DW_AT_type";
- case DW_AT_use_location: return "DW_AT_use_location";
- case DW_AT_variable_parameter: return "DW_AT_variable_parameter";
- case DW_AT_virtuality: return "DW_AT_virtuality";
- case DW_AT_vtable_elem_location: return "DW_AT_vtable_elem_location";
- /* DWARF 2.1 values. */
- case DW_AT_allocated: return "DW_AT_allocated";
- case DW_AT_associated: return "DW_AT_associated";
- case DW_AT_data_location: return "DW_AT_data_location";
- case DW_AT_stride: return "DW_AT_stride";
- case DW_AT_entry_pc: return "DW_AT_entry_pc";
- case DW_AT_use_UTF8: return "DW_AT_use_UTF8";
- case DW_AT_extension: return "DW_AT_extension";
- case DW_AT_ranges: return "DW_AT_ranges";
- case DW_AT_trampoline: return "DW_AT_trampoline";
- case DW_AT_call_column: return "DW_AT_call_column";
- case DW_AT_call_file: return "DW_AT_call_file";
- case DW_AT_call_line: return "DW_AT_call_line";
- /* SGI/MIPS extensions. */
- case DW_AT_MIPS_fde: return "DW_AT_MIPS_fde";
- case DW_AT_MIPS_loop_begin: return "DW_AT_MIPS_loop_begin";
- case DW_AT_MIPS_tail_loop_begin: return "DW_AT_MIPS_tail_loop_begin";
- case DW_AT_MIPS_epilog_begin: return "DW_AT_MIPS_epilog_begin";
- case DW_AT_MIPS_loop_unroll_factor: return "DW_AT_MIPS_loop_unroll_factor";
- case DW_AT_MIPS_software_pipeline_depth:
- return "DW_AT_MIPS_software_pipeline_depth";
- case DW_AT_MIPS_linkage_name: return "DW_AT_MIPS_linkage_name";
- case DW_AT_MIPS_stride: return "DW_AT_MIPS_stride";
- case DW_AT_MIPS_abstract_name: return "DW_AT_MIPS_abstract_name";
- case DW_AT_MIPS_clone_origin: return "DW_AT_MIPS_clone_origin";
- case DW_AT_MIPS_has_inlines: return "DW_AT_MIPS_has_inlines";
- /* GNU extensions. */
- case DW_AT_sf_names: return "DW_AT_sf_names";
- case DW_AT_src_info: return "DW_AT_src_info";
- case DW_AT_mac_info: return "DW_AT_mac_info";
- case DW_AT_src_coords: return "DW_AT_src_coords";
- case DW_AT_body_begin: return "DW_AT_body_begin";
- case DW_AT_body_end: return "DW_AT_body_end";
- case DW_AT_GNU_vector: return "DW_AT_GNU_vector";
- /* UPC extension. */
- case DW_AT_upc_threads_scaled: return "DW_AT_upc_threads_scaled";
- default:
- {
- static char buffer[100];
-
- snprintf (buffer, sizeof (buffer), _("Unknown AT value: %lx"),
- attribute);
- return buffer;
- }
- }
-}
-
-static unsigned char *
-read_and_display_attr (unsigned long attribute,
- unsigned long form,
- unsigned char *data,
- unsigned long cu_offset,
- unsigned long pointer_size,
- unsigned long offset_size,
- int dwarf_version,
- debug_info *debug_info_p,
- int do_loc)
-{
- if (!do_loc)
- printf (" %-18s:", get_AT_name (attribute));
- data = read_and_display_attr_value (attribute, form, data, cu_offset,
- pointer_size, offset_size,
- dwarf_version, debug_info_p,
- do_loc);
- if (!do_loc)
- printf ("\n");
- return data;
-}
-
-
-/* Process the contents of a .debug_info section. If do_loc is non-zero
- then we are scanning for location lists and we do not want to display
- anything to the user. */
-
-static int
-process_debug_info (struct dwarf_section *section, void *file,
- int do_loc)
-{
- unsigned char *start = section->start;
- unsigned char *end = start + section->size;
- unsigned char *section_begin;
- unsigned int unit;
- unsigned int num_units = 0;
-
- if ((do_loc || do_debug_loc || do_debug_ranges)
- && num_debug_info_entries == 0)
- {
- unsigned long length;
-
- /* First scan the section to get the number of comp units. */
- for (section_begin = start, num_units = 0; section_begin < end;
- num_units ++)
- {
- /* Read the first 4 bytes. For a 32-bit DWARF section, this
- will be the length. For a 64-bit DWARF section, it'll be
- the escape code 0xffffffff followed by an 8 byte length. */
- length = byte_get (section_begin, 4);
-
- if (length == 0xffffffff)
- {
- length = byte_get (section_begin + 4, 8);
- section_begin += length + 12;
- }
- else
- section_begin += length + 4;
- }
-
- if (num_units == 0)
- {
- error (_("No comp units in %s section ?"), section->name);
- return 0;
- }
-
- /* Then allocate an array to hold the information. */
- debug_information = cmalloc (num_units,
- sizeof (* debug_information));
- if (debug_information == NULL)
- {
- error (_("Not enough memory for a debug info array of %u entries"),
- num_units);
- return 0;
- }
- }
-
- if (!do_loc)
- {
- printf (_("The section %s contains:\n\n"), section->name);
-
- load_debug_section (str, file);
- }
-
- load_debug_section (abbrev, file);
- if (debug_displays [abbrev].section.start == NULL)
- {
- warn (_("Unable to locate %s section!\n"),
- debug_displays [abbrev].section.name);
- return 0;
- }
-
- for (section_begin = start, unit = 0; start < end; unit++)
- {
- DWARF2_Internal_CompUnit compunit;
- unsigned char *hdrptr;
- unsigned char *cu_abbrev_offset_ptr;
- unsigned char *tags;
- int level;
- unsigned long cu_offset;
- int offset_size;
- int initial_length_size;
-
- hdrptr = start;
-
- compunit.cu_length = byte_get (hdrptr, 4);
- hdrptr += 4;
-
- if (compunit.cu_length == 0xffffffff)
- {
- compunit.cu_length = byte_get (hdrptr, 8);
- hdrptr += 8;
- offset_size = 8;
- initial_length_size = 12;
- }
- else
- {
- offset_size = 4;
- initial_length_size = 4;
- }
-
- compunit.cu_version = byte_get (hdrptr, 2);
- hdrptr += 2;
-
- cu_offset = start - section_begin;
- start += compunit.cu_length + initial_length_size;
-
- cu_abbrev_offset_ptr = hdrptr;
- compunit.cu_abbrev_offset = byte_get (hdrptr, offset_size);
- hdrptr += offset_size;
-
- compunit.cu_pointer_size = byte_get (hdrptr, 1);
- hdrptr += 1;
- if ((do_loc || do_debug_loc || do_debug_ranges)
- && num_debug_info_entries == 0)
- {
- debug_information [unit].cu_offset = cu_offset;
- debug_information [unit].pointer_size
- = compunit.cu_pointer_size;
- debug_information [unit].base_address = 0;
- debug_information [unit].loc_offsets = NULL;
- debug_information [unit].have_frame_base = NULL;
- debug_information [unit].max_loc_offsets = 0;
- debug_information [unit].num_loc_offsets = 0;
- debug_information [unit].range_lists = NULL;
- debug_information [unit].max_range_lists= 0;
- debug_information [unit].num_range_lists = 0;
- }
-
- tags = hdrptr;
-
- if (!do_loc)
- {
- printf (_(" Compilation Unit @ offset 0x%lx:\n"), cu_offset);
- printf (_(" Length: %ld\n"), compunit.cu_length);
- printf (_(" Version: %d\n"), compunit.cu_version);
- printf (_(" Abbrev Offset: %ld\n"), compunit.cu_abbrev_offset);
- printf (_(" Pointer Size: %d\n"), compunit.cu_pointer_size);
- }
-
- if (compunit.cu_version != 2 && compunit.cu_version != 3)
- {
- warn (_("Only version 2 and 3 DWARF debug information is currently supported.\n"));
- continue;
- }
-
- free_abbrevs ();
-
- /* Process the abbrevs used by this compilation unit. DWARF
- sections under Mach-O have non-zero addresses. */
- process_abbrev_section
- ((unsigned char *) debug_displays [abbrev].section.start
- + compunit.cu_abbrev_offset - debug_displays [abbrev].section.address,
- (unsigned char *) debug_displays [abbrev].section.start
- + debug_displays [abbrev].section.size);
-
- level = 0;
- while (tags < start)
- {
- unsigned int bytes_read;
- unsigned long abbrev_number;
- abbrev_entry *entry;
- abbrev_attr *attr;
-
- abbrev_number = read_leb128 (tags, & bytes_read, 0);
- tags += bytes_read;
-
- /* A null DIE marks the end of a list of children. */
- if (abbrev_number == 0)
- {
- --level;
- continue;
- }
-
- /* Scan through the abbreviation list until we reach the
- correct entry. */
- for (entry = first_abbrev;
- entry && entry->entry != abbrev_number;
- entry = entry->next)
- continue;
-
- if (entry == NULL)
- {
- warn (_("Unable to locate entry %lu in the abbreviation table\n"),
- abbrev_number);
- return 0;
- }
-
- if (!do_loc)
- printf (_(" <%d><%lx>: Abbrev Number: %lu (%s)\n"),
- level,
- (unsigned long) (tags - section_begin
- - bytes_read),
- abbrev_number,
- get_TAG_name (entry->tag));
-
- switch (entry->tag)
- {
- default:
- need_base_address = 0;
- break;
- case DW_TAG_compile_unit:
- need_base_address = 1;
- break;
- case DW_TAG_entry_point:
- case DW_TAG_inlined_subroutine:
- case DW_TAG_subprogram:
- need_base_address = 0;
- /* Assuming that there is no DW_AT_frame_base. */
- have_frame_base = 0;
- break;
- }
-
- for (attr = entry->first_attr; attr; attr = attr->next)
- tags = read_and_display_attr (attr->attribute,
- attr->form,
- tags, cu_offset,
- compunit.cu_pointer_size,
- offset_size,
- compunit.cu_version,
- &debug_information [unit],
- do_loc);
-
- if (entry->children)
- ++level;
- }
- }
-
- /* Set num_debug_info_entries here so that it can be used to check if
- we need to process .debug_loc and .debug_ranges sections. */
- if ((do_loc || do_debug_loc || do_debug_ranges)
- && num_debug_info_entries == 0)
- num_debug_info_entries = num_units;
-
- if (!do_loc)
- {
- printf ("\n");
- }
-
- return 1;
-}
-
-/* Locate and scan the .debug_info section in the file and record the pointer
- sizes and offsets for the compilation units in it. Usually an executable
- will have just one pointer size, but this is not guaranteed, and so we try
- not to make any assumptions. Returns zero upon failure, or the number of
- compilation units upon success. */
-
-static unsigned int
-load_debug_info (void * file)
-{
- /* Reset the last pointer size so that we can issue correct error
- messages if we are displaying the contents of more than one section. */
- last_pointer_size = 0;
- warned_about_missing_comp_units = FALSE;
-
- /* If we already have the information there is nothing else to do. */
- if (num_debug_info_entries > 0)
- return num_debug_info_entries;
-
- if (load_debug_section (info, file)
- && process_debug_info (&debug_displays [info].section, file, 1))
- return num_debug_info_entries;
- else
- return 0;
-}
-
-static int
-display_debug_lines (struct dwarf_section *section, void *file)
-{
- unsigned char *start = section->start;
- unsigned char *data = start;
- unsigned char *end = start + section->size;
-
- printf (_("\nDump of debug contents of section %s:\n\n"),
- section->name);
-
- load_debug_info (file);
-
- while (data < end)
- {
- DWARF2_Internal_LineInfo info;
- unsigned char *standard_opcodes;
- unsigned char *end_of_sequence;
- unsigned char *hdrptr;
- int initial_length_size;
- int offset_size;
- int i;
-
- hdrptr = data;
-
- /* Check the length of the block. */
- info.li_length = byte_get (hdrptr, 4);
- hdrptr += 4;
-
- if (info.li_length == 0xffffffff)
- {
- /* This section is 64-bit DWARF 3. */
- info.li_length = byte_get (hdrptr, 8);
- hdrptr += 8;
- offset_size = 8;
- initial_length_size = 12;
- }
- else
- {
- offset_size = 4;
- initial_length_size = 4;
- }
-
- if (info.li_length + initial_length_size > section->size)
- {
- warn
- (_("The line info appears to be corrupt - the section is too small\n"));
- return 0;
- }
-
- /* Check its version number. */
- info.li_version = byte_get (hdrptr, 2);
- hdrptr += 2;
- if (info.li_version != 2 && info.li_version != 3)
- {
- warn (_("Only DWARF version 2 and 3 line info is currently supported.\n"));
- return 0;
- }
-
- info.li_prologue_length = byte_get (hdrptr, offset_size);
- hdrptr += offset_size;
- info.li_min_insn_length = byte_get (hdrptr, 1);
- hdrptr++;
- info.li_default_is_stmt = byte_get (hdrptr, 1);
- hdrptr++;
- info.li_line_base = byte_get (hdrptr, 1);
- hdrptr++;
- info.li_line_range = byte_get (hdrptr, 1);
- hdrptr++;
- info.li_opcode_base = byte_get (hdrptr, 1);
- hdrptr++;
-
- /* Sign extend the line base field. */
- info.li_line_base <<= 24;
- info.li_line_base >>= 24;
-
- printf (_(" Length: %ld\n"), info.li_length);
- printf (_(" DWARF Version: %d\n"), info.li_version);
- printf (_(" Prologue Length: %d\n"), info.li_prologue_length);
- printf (_(" Minimum Instruction Length: %d\n"), info.li_min_insn_length);
- printf (_(" Initial value of 'is_stmt': %d\n"), info.li_default_is_stmt);
- printf (_(" Line Base: %d\n"), info.li_line_base);
- printf (_(" Line Range: %d\n"), info.li_line_range);
- printf (_(" Opcode Base: %d\n"), info.li_opcode_base);
-
- end_of_sequence = data + info.li_length + initial_length_size;
-
- reset_state_machine (info.li_default_is_stmt);
-
- /* Display the contents of the Opcodes table. */
- standard_opcodes = hdrptr;
-
- printf (_("\n Opcodes:\n"));
-
- for (i = 1; i < info.li_opcode_base; i++)
- printf (_(" Opcode %d has %d args\n"), i, standard_opcodes[i - 1]);
-
- /* Display the contents of the Directory table. */
- data = standard_opcodes + info.li_opcode_base - 1;
-
- if (*data == 0)
- printf (_("\n The Directory Table is empty.\n"));
- else
- {
- printf (_("\n The Directory Table:\n"));
-
- while (*data != 0)
- {
- printf (_(" %s\n"), data);
-
- data += strlen ((char *) data) + 1;
- }
- }
-
- /* Skip the NUL at the end of the table. */
- data++;
-
- /* Display the contents of the File Name table. */
- if (*data == 0)
- printf (_("\n The File Name Table is empty.\n"));
- else
- {
- printf (_("\n The File Name Table:\n"));
- printf (_(" Entry\tDir\tTime\tSize\tName\n"));
-
- while (*data != 0)
- {
- unsigned char *name;
- unsigned int bytes_read;
-
- printf (_(" %d\t"), ++state_machine_regs.last_file_entry);
- name = data;
-
- data += strlen ((char *) data) + 1;
-
- printf (_("%lu\t"), read_leb128 (data, & bytes_read, 0));
- data += bytes_read;
- printf (_("%lu\t"), read_leb128 (data, & bytes_read, 0));
- data += bytes_read;
- printf (_("%lu\t"), read_leb128 (data, & bytes_read, 0));
- data += bytes_read;
- printf (_("%s\n"), name);
- }
- }
-
- /* Skip the NUL at the end of the table. */
- data++;
-
- /* Now display the statements. */
- printf (_("\n Line Number Statements:\n"));
-
- while (data < end_of_sequence)
- {
- unsigned char op_code;
- int adv;
- unsigned long int uladv;
- unsigned int bytes_read;
-
- op_code = *data++;
-
- if (op_code >= info.li_opcode_base)
- {
- op_code -= info.li_opcode_base;
- uladv = (op_code / info.li_line_range) * info.li_min_insn_length;
- state_machine_regs.address += uladv;
- printf (_(" Special opcode %d: advance Address by %lu to 0x%lx"),
- op_code, uladv, state_machine_regs.address);
- adv = (op_code % info.li_line_range) + info.li_line_base;
- state_machine_regs.line += adv;
- printf (_(" and Line by %d to %d\n"),
- adv, state_machine_regs.line);
- }
- else switch (op_code)
- {
- case DW_LNS_extended_op:
- data += process_extended_line_op (data, info.li_default_is_stmt);
- break;
-
- case DW_LNS_copy:
- printf (_(" Copy\n"));
- break;
-
- case DW_LNS_advance_pc:
- uladv = read_leb128 (data, & bytes_read, 0);
- uladv *= info.li_min_insn_length;
- data += bytes_read;
- state_machine_regs.address += uladv;
- printf (_(" Advance PC by %lu to 0x%lx\n"), uladv,
- state_machine_regs.address);
- break;
-
- case DW_LNS_advance_line:
- adv = read_leb128 (data, & bytes_read, 1);
- data += bytes_read;
- state_machine_regs.line += adv;
- printf (_(" Advance Line by %d to %d\n"), adv,
- state_machine_regs.line);
- break;
-
- case DW_LNS_set_file:
- adv = read_leb128 (data, & bytes_read, 0);
- data += bytes_read;
- printf (_(" Set File Name to entry %d in the File Name Table\n"),
- adv);
- state_machine_regs.file = adv;
- break;
-
- case DW_LNS_set_column:
- uladv = read_leb128 (data, & bytes_read, 0);
- data += bytes_read;
- printf (_(" Set column to %lu\n"), uladv);
- state_machine_regs.column = uladv;
- break;
-
- case DW_LNS_negate_stmt:
- adv = state_machine_regs.is_stmt;
- adv = ! adv;
- printf (_(" Set is_stmt to %d\n"), adv);
- state_machine_regs.is_stmt = adv;
- break;
-
- case DW_LNS_set_basic_block:
- printf (_(" Set basic block\n"));
- state_machine_regs.basic_block = 1;
- break;
-
- case DW_LNS_const_add_pc:
- uladv = (((255 - info.li_opcode_base) / info.li_line_range)
- * info.li_min_insn_length);
- state_machine_regs.address += uladv;
- printf (_(" Advance PC by constant %lu to 0x%lx\n"), uladv,
- state_machine_regs.address);
- break;
-
- case DW_LNS_fixed_advance_pc:
- uladv = byte_get (data, 2);
- data += 2;
- state_machine_regs.address += uladv;
- printf (_(" Advance PC by fixed size amount %lu to 0x%lx\n"),
- uladv, state_machine_regs.address);
- break;
-
- case DW_LNS_set_prologue_end:
- printf (_(" Set prologue_end to true\n"));
- break;
-
- case DW_LNS_set_epilogue_begin:
- printf (_(" Set epilogue_begin to true\n"));
- break;
-
- case DW_LNS_set_isa:
- uladv = read_leb128 (data, & bytes_read, 0);
- data += bytes_read;
- printf (_(" Set ISA to %lu\n"), uladv);
- break;
-
- default:
- printf (_(" Unknown opcode %d with operands: "), op_code);
-
- for (i = standard_opcodes[op_code - 1]; i > 0 ; --i)
- {
- printf ("0x%lx%s", read_leb128 (data, &bytes_read, 0),
- i == 1 ? "" : ", ");
- data += bytes_read;
- }
- putchar ('\n');
- break;
- }
- }
- putchar ('\n');
- }
-
- return 1;
-}
-
-static int
-display_debug_pubnames (struct dwarf_section *section,
- void *file ATTRIBUTE_UNUSED)
-{
- DWARF2_Internal_PubNames pubnames;
- unsigned char *start = section->start;
- unsigned char *end = start + section->size;
-
- printf (_("Contents of the %s section:\n\n"), section->name);
-
- while (start < end)
- {
- unsigned char *data;
- unsigned long offset;
- int offset_size, initial_length_size;
-
- data = start;
-
- pubnames.pn_length = byte_get (data, 4);
- data += 4;
- if (pubnames.pn_length == 0xffffffff)
- {
- pubnames.pn_length = byte_get (data, 8);
- data += 8;
- offset_size = 8;
- initial_length_size = 12;
- }
- else
- {
- offset_size = 4;
- initial_length_size = 4;
- }
-
- pubnames.pn_version = byte_get (data, 2);
- data += 2;
- pubnames.pn_offset = byte_get (data, offset_size);
- data += offset_size;
- pubnames.pn_size = byte_get (data, offset_size);
- data += offset_size;
-
- start += pubnames.pn_length + initial_length_size;
-
- if (pubnames.pn_version != 2 && pubnames.pn_version != 3)
- {
- static int warned = 0;
-
- if (! warned)
- {
- warn (_("Only DWARF 2 and 3 pubnames are currently supported\n"));
- warned = 1;
- }
-
- continue;
- }
-
- printf (_(" Length: %ld\n"),
- pubnames.pn_length);
- printf (_(" Version: %d\n"),
- pubnames.pn_version);
- printf (_(" Offset into .debug_info section: %ld\n"),
- pubnames.pn_offset);
- printf (_(" Size of area in .debug_info section: %ld\n"),
- pubnames.pn_size);
-
- printf (_("\n Offset\tName\n"));
-
- do
- {
- offset = byte_get (data, offset_size);
-
- if (offset != 0)
- {
- data += offset_size;
- printf (" %-6ld\t\t%s\n", offset, data);
- data += strlen ((char *) data) + 1;
- }
- }
- while (offset != 0);
- }
-
- printf ("\n");
- return 1;
-}
-
-static int
-display_debug_macinfo (struct dwarf_section *section,
- void *file ATTRIBUTE_UNUSED)
-{
- unsigned char *start = section->start;
- unsigned char *end = start + section->size;
- unsigned char *curr = start;
- unsigned int bytes_read;
- enum dwarf_macinfo_record_type op;
-
- printf (_("Contents of the %s section:\n\n"), section->name);
-
- while (curr < end)
- {
- unsigned int lineno;
- const char *string;
-
- op = *curr;
- curr++;
-
- switch (op)
- {
- case DW_MACINFO_start_file:
- {
- unsigned int filenum;
-
- lineno = read_leb128 (curr, & bytes_read, 0);
- curr += bytes_read;
- filenum = read_leb128 (curr, & bytes_read, 0);
- curr += bytes_read;
-
- printf (_(" DW_MACINFO_start_file - lineno: %d filenum: %d\n"),
- lineno, filenum);
- }
- break;
-
- case DW_MACINFO_end_file:
- printf (_(" DW_MACINFO_end_file\n"));
- break;
-
- case DW_MACINFO_define:
- lineno = read_leb128 (curr, & bytes_read, 0);
- curr += bytes_read;
- string = (char *) curr;
- curr += strlen (string) + 1;
- printf (_(" DW_MACINFO_define - lineno : %d macro : %s\n"),
- lineno, string);
- break;
-
- case DW_MACINFO_undef:
- lineno = read_leb128 (curr, & bytes_read, 0);
- curr += bytes_read;
- string = (char *) curr;
- curr += strlen (string) + 1;
- printf (_(" DW_MACINFO_undef - lineno : %d macro : %s\n"),
- lineno, string);
- break;
-
- case DW_MACINFO_vendor_ext:
- {
- unsigned int constant;
-
- constant = read_leb128 (curr, & bytes_read, 0);
- curr += bytes_read;
- string = (char *) curr;
- curr += strlen (string) + 1;
- printf (_(" DW_MACINFO_vendor_ext - constant : %d string : %s\n"),
- constant, string);
- }
- break;
- }
- }
-
- return 1;
-}
-
-static int
-display_debug_abbrev (struct dwarf_section *section,
- void *file ATTRIBUTE_UNUSED)
-{
- abbrev_entry *entry;
- unsigned char *start = section->start;
- unsigned char *end = start + section->size;
-
- printf (_("Contents of the %s section:\n\n"), section->name);
-
- do
- {
- free_abbrevs ();
-
- start = process_abbrev_section (start, end);
-
- if (first_abbrev == NULL)
- continue;
-
- printf (_(" Number TAG\n"));
-
- for (entry = first_abbrev; entry; entry = entry->next)
- {
- abbrev_attr *attr;
-
- printf (_(" %ld %s [%s]\n"),
- entry->entry,
- get_TAG_name (entry->tag),
- entry->children ? _("has children") : _("no children"));
-
- for (attr = entry->first_attr; attr; attr = attr->next)
- printf (_(" %-18s %s\n"),
- get_AT_name (attr->attribute),
- get_FORM_name (attr->form));
- }
- }
- while (start);
-
- printf ("\n");
-
- return 1;
-}
-
-static int
-display_debug_loc (struct dwarf_section *section, void *file)
-{
- unsigned char *start = section->start;
- unsigned char *section_end;
- unsigned long bytes;
- unsigned char *section_begin = start;
- unsigned int num_loc_list = 0;
- unsigned long last_offset = 0;
- unsigned int first = 0;
- unsigned int i;
- unsigned int j;
- int seen_first_offset = 0;
- int use_debug_info = 1;
- unsigned char *next;
-
- bytes = section->size;
- section_end = start + bytes;
-
- if (bytes == 0)
- {
- printf (_("\nThe %s section is empty.\n"), section->name);
- return 0;
- }
-
- load_debug_info (file);
-
- /* Check the order of location list in .debug_info section. If
- offsets of location lists are in the ascending order, we can
- use `debug_information' directly. */
- for (i = 0; i < num_debug_info_entries; i++)
- {
- unsigned int num;
-
- num = debug_information [i].num_loc_offsets;
- num_loc_list += num;
-
- /* Check if we can use `debug_information' directly. */
- if (use_debug_info && num != 0)
- {
- if (!seen_first_offset)
- {
- /* This is the first location list. */
- last_offset = debug_information [i].loc_offsets [0];
- first = i;
- seen_first_offset = 1;
- j = 1;
- }
- else
- j = 0;
-
- for (; j < num; j++)
- {
- if (last_offset >
- debug_information [i].loc_offsets [j])
- {
- use_debug_info = 0;
- break;
- }
- last_offset = debug_information [i].loc_offsets [j];
- }
- }
- }
-
- if (!use_debug_info)
- /* FIXME: Should we handle this case? */
- error (_("Location lists in .debug_info section aren't in ascending order!\n"));
-
- if (!seen_first_offset)
- error (_("No location lists in .debug_info section!\n"));
-
- /* DWARF sections under Mach-O have non-zero addresses. */
- if (debug_information [first].loc_offsets [0] != section->address)
- warn (_("Location lists in %s section start at 0x%lx\n"),
- section->name, debug_information [first].loc_offsets [0]);
-
- printf (_("Contents of the %s section:\n\n"), section->name);
- printf (_(" Offset Begin End Expression\n"));
-
- seen_first_offset = 0;
- for (i = first; i < num_debug_info_entries; i++)
- {
- unsigned long begin;
- unsigned long end;
- unsigned short length;
- unsigned long offset;
- unsigned int pointer_size;
- unsigned long cu_offset;
- unsigned long base_address;
- int need_frame_base;
- int has_frame_base;
-
- pointer_size = debug_information [i].pointer_size;
- cu_offset = debug_information [i].cu_offset;
-
- for (j = 0; j < debug_information [i].num_loc_offsets; j++)
- {
- has_frame_base = debug_information [i].have_frame_base [j];
- /* DWARF sections under Mach-O have non-zero addresses. */
- offset = debug_information [i].loc_offsets [j] - section->address;
- next = section_begin + offset;
- base_address = debug_information [i].base_address;
-
- if (!seen_first_offset)
- seen_first_offset = 1;
- else
- {
- if (start < next)
- warn (_("There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"),
- (long)(start - section_begin), (long)(next - section_begin));
- else if (start > next)
- warn (_("There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"),
- (long)(start - section_begin), (long)(next - section_begin));
- }
- start = next;
-
- if (offset >= bytes)
- {
- warn (_("Offset 0x%lx is bigger than .debug_loc section size.\n"),
- offset);
- continue;
- }
-
- while (1)
- {
- if (start + 2 * pointer_size > section_end)
- {
- warn (_("Location list starting at offset 0x%lx is not terminated.\n"),
- offset);
- break;
- }
-
- begin = byte_get (start, pointer_size);
- start += pointer_size;
- end = byte_get (start, pointer_size);
- start += pointer_size;
-
- if (begin == 0 && end == 0)
- {
- printf (_(" %8.8lx <End of list>\n"), offset);
- break;
- }
-
- /* Check base address specifiers. */
- if (begin == -1UL && end != -1UL)
- {
- base_address = end;
- printf (_(" %8.8lx %8.8lx %8.8lx (base address)\n"),
- offset, begin, end);
- continue;
- }
-
- if (start + 2 > section_end)
- {
- warn (_("Location list starting at offset 0x%lx is not terminated.\n"),
- offset);
- break;
- }
-
- length = byte_get (start, 2);
- start += 2;
-
- if (start + length > section_end)
- {
- warn (_("Location list starting at offset 0x%lx is not terminated.\n"),
- offset);
- break;
- }
-
- printf (" %8.8lx %8.8lx %8.8lx (",
- offset, begin + base_address, end + base_address);
- need_frame_base = decode_location_expression (start,
- pointer_size,
- length,
- cu_offset);
- putchar (')');
-
- if (need_frame_base && !has_frame_base)
- printf (_(" [without DW_AT_frame_base]"));
-
- if (begin == end)
- fputs (_(" (start == end)"), stdout);
- else if (begin > end)
- fputs (_(" (start > end)"), stdout);
-
- putchar ('\n');
-
- start += length;
- }
- }
- }
- return 1;
-}
-
-static int
-display_debug_str (struct dwarf_section *section,
- void *file ATTRIBUTE_UNUSED)
-{
- unsigned char *start = section->start;
- unsigned long bytes = section->size;
- dwarf_vma addr = section->address;
-
- if (bytes == 0)
- {
- printf (_("\nThe %s section is empty.\n"), section->name);
- return 0;
- }
-
- printf (_("Contents of the %s section:\n\n"), section->name);
-
- while (bytes)
- {
- int j;
- int k;
- int lbytes;
-
- lbytes = (bytes > 16 ? 16 : bytes);
-
- printf (" 0x%8.8lx ", (unsigned long) addr);
-
- for (j = 0; j < 16; j++)
- {
- if (j < lbytes)
- printf ("%2.2x", start[j]);
- else
- printf (" ");
-
- if ((j & 3) == 3)
- printf (" ");
- }
-
- for (j = 0; j < lbytes; j++)
- {
- k = start[j];
- if (k >= ' ' && k < 0x80)
- printf ("%c", k);
- else
- printf (".");
- }
-
- putchar ('\n');
-
- start += lbytes;
- addr += lbytes;
- bytes -= lbytes;
- }
-
- putchar ('\n');
-
- return 1;
-}
-
-
-static int
-display_debug_info (struct dwarf_section *section, void *file)
-{
- return process_debug_info (section, file, 0);
-}
-
-
-static int
-display_debug_aranges (struct dwarf_section *section,
- void *file ATTRIBUTE_UNUSED)
-{
- unsigned char *start = section->start;
- unsigned char *end = start + section->size;
-
- printf (_("The section %s contains:\n\n"), section->name);
-
- while (start < end)
- {
- unsigned char *hdrptr;
- DWARF2_Internal_ARange arange;
- unsigned char *ranges;
- unsigned long length;
- unsigned long address;
- int excess;
- int offset_size;
- int initial_length_size;
-
- hdrptr = start;
-
- arange.ar_length = byte_get (hdrptr, 4);
- hdrptr += 4;
-
- if (arange.ar_length == 0xffffffff)
- {
- arange.ar_length = byte_get (hdrptr, 8);
- hdrptr += 8;
- offset_size = 8;
- initial_length_size = 12;
- }
- else
- {
- offset_size = 4;
- initial_length_size = 4;
- }
-
- arange.ar_version = byte_get (hdrptr, 2);
- hdrptr += 2;
-
- arange.ar_info_offset = byte_get (hdrptr, offset_size);
- hdrptr += offset_size;
-
- arange.ar_pointer_size = byte_get (hdrptr, 1);
- hdrptr += 1;
-
- arange.ar_segment_size = byte_get (hdrptr, 1);
- hdrptr += 1;
-
- if (arange.ar_version != 2 && arange.ar_version != 3)
- {
- warn (_("Only DWARF 2 and 3 aranges are currently supported.\n"));
- break;
- }
-
- printf (_(" Length: %ld\n"), arange.ar_length);
- printf (_(" Version: %d\n"), arange.ar_version);
- printf (_(" Offset into .debug_info: %lx\n"), arange.ar_info_offset);
- printf (_(" Pointer Size: %d\n"), arange.ar_pointer_size);
- printf (_(" Segment Size: %d\n"), arange.ar_segment_size);
-
- printf (_("\n Address Length\n"));
-
- ranges = hdrptr;
-
- /* Must pad to an alignment boundary that is twice the pointer size. */
- excess = (hdrptr - start) % (2 * arange.ar_pointer_size);
- if (excess)
- ranges += (2 * arange.ar_pointer_size) - excess;
-
- start += arange.ar_length + initial_length_size;
-
- while (ranges + 2 * arange.ar_pointer_size <= start)
- {
- address = byte_get (ranges, arange.ar_pointer_size);
-
- ranges += arange.ar_pointer_size;
-
- length = byte_get (ranges, arange.ar_pointer_size);
-
- ranges += arange.ar_pointer_size;
-
- printf (" %8.8lx %lu\n", address, length);
- }
- }
-
- printf ("\n");
-
- return 1;
-}
-
-static int
-display_debug_ranges (struct dwarf_section *section,
- void *file ATTRIBUTE_UNUSED)
-{
- unsigned char *start = section->start;
- unsigned char *section_end;
- unsigned long bytes;
- unsigned char *section_begin = start;
- unsigned int num_range_list = 0;
- unsigned long last_offset = 0;
- unsigned int first = 0;
- unsigned int i;
- unsigned int j;
- int seen_first_offset = 0;
- int use_debug_info = 1;
- unsigned char *next;
-
- bytes = section->size;
- section_end = start + bytes;
-
- if (bytes == 0)
- {
- printf (_("\nThe %s section is empty.\n"), section->name);
- return 0;
- }
-
- load_debug_info (file);
-
- /* Check the order of range list in .debug_info section. If
- offsets of range lists are in the ascending order, we can
- use `debug_information' directly. */
- for (i = 0; i < num_debug_info_entries; i++)
- {
- unsigned int num;
-
- num = debug_information [i].num_range_lists;
- num_range_list += num;
-
- /* Check if we can use `debug_information' directly. */
- if (use_debug_info && num != 0)
- {
- if (!seen_first_offset)
- {
- /* This is the first range list. */
- last_offset = debug_information [i].range_lists [0];
- first = i;
- seen_first_offset = 1;
- j = 1;
- }
- else
- j = 0;
-
- for (; j < num; j++)
- {
- if (last_offset >
- debug_information [i].range_lists [j])
- {
- use_debug_info = 0;
- break;
- }
- last_offset = debug_information [i].range_lists [j];
- }
- }
- }
-
- if (!use_debug_info)
- /* FIXME: Should we handle this case? */
- error (_("Range lists in .debug_info section aren't in ascending order!\n"));
-
- if (!seen_first_offset)
- error (_("No range lists in .debug_info section!\n"));
-
- /* DWARF sections under Mach-O have non-zero addresses. */
- if (debug_information [first].range_lists [0] != section->address)
- warn (_("Range lists in %s section start at 0x%lx\n"),
- section->name, debug_information [first].range_lists [0]);
-
- printf (_("Contents of the %s section:\n\n"), section->name);
- printf (_(" Offset Begin End\n"));
-
- seen_first_offset = 0;
- for (i = first; i < num_debug_info_entries; i++)
- {
- unsigned long begin;
- unsigned long end;
- unsigned long offset;
- unsigned int pointer_size;
- unsigned long base_address;
-
- pointer_size = debug_information [i].pointer_size;
-
- for (j = 0; j < debug_information [i].num_range_lists; j++)
- {
- /* DWARF sections under Mach-O have non-zero addresses. */
- offset = debug_information [i].range_lists [j] - section->address;
- next = section_begin + offset;
- base_address = debug_information [i].base_address;
-
- if (!seen_first_offset)
- seen_first_offset = 1;
- else
- {
- if (start < next)
- warn (_("There is a hole [0x%lx - 0x%lx] in %s section.\n"),
- (long)(start - section_begin),
- (long)(next - section_begin), section->name);
- else if (start > next)
- warn (_("There is an overlap [0x%lx - 0x%lx] in %s section.\n"),
- (long)(start - section_begin),
- (long)(next - section_begin), section->name);
- }
- start = next;
-
- while (1)
- {
- begin = byte_get (start, pointer_size);
- start += pointer_size;
- end = byte_get (start, pointer_size);
- start += pointer_size;
-
- if (begin == 0 && end == 0)
- {
- printf (_(" %8.8lx <End of list>\n"), offset);
- break;
- }
-
- /* Check base address specifiers. */
- if (begin == -1UL && end != -1UL)
- {
- base_address = end;
- printf (" %8.8lx %8.8lx %8.8lx (base address)\n",
- offset, begin, end);
- continue;
- }
-
- printf (" %8.8lx %8.8lx %8.8lx",
- offset, begin + base_address, end + base_address);
-
- if (begin == end)
- fputs (_(" (start == end)"), stdout);
- else if (begin > end)
- fputs (_(" (start > end)"), stdout);
-
- putchar ('\n');
- }
- }
- }
- putchar ('\n');
- return 1;
-}
-
-typedef struct Frame_Chunk
-{
- struct Frame_Chunk *next;
- unsigned char *chunk_start;
- int ncols;
- /* DW_CFA_{undefined,same_value,offset,register,unreferenced} */
- short int *col_type;
- int *col_offset;
- char *augmentation;
- unsigned int code_factor;
- int data_factor;
- unsigned long pc_begin;
- unsigned long pc_range;
- int cfa_reg;
- int cfa_offset;
- int ra;
- unsigned char fde_encoding;
- unsigned char cfa_exp;
-}
-Frame_Chunk;
-
-/* A marker for a col_type that means this column was never referenced
- in the frame info. */
-#define DW_CFA_unreferenced (-1)
-
-static void
-frame_need_space (Frame_Chunk *fc, int reg)
-{
- int prev = fc->ncols;
-
- if (reg < fc->ncols)
- return;
-
- fc->ncols = reg + 1;
- fc->col_type = xcrealloc (fc->col_type, fc->ncols, sizeof (short int));
- fc->col_offset = xcrealloc (fc->col_offset, fc->ncols, sizeof (int));
-
- while (prev < fc->ncols)
- {
- fc->col_type[prev] = DW_CFA_unreferenced;
- fc->col_offset[prev] = 0;
- prev++;
- }
-}
-
-static void
-frame_display_row (Frame_Chunk *fc, int *need_col_headers, int *max_regs)
-{
- int r;
- char tmp[100];
-
- if (*max_regs < fc->ncols)
- *max_regs = fc->ncols;
-
- if (*need_col_headers)
- {
- *need_col_headers = 0;
-
- printf (" LOC CFA ");
-
- for (r = 0; r < *max_regs; r++)
- if (fc->col_type[r] != DW_CFA_unreferenced)
- {
- if (r == fc->ra)
- printf ("ra ");
- else
- printf ("r%-4d", r);
- }
-
- printf ("\n");
- }
-
- printf ("%08lx ", fc->pc_begin);
- if (fc->cfa_exp)
- strcpy (tmp, "exp");
- else
- sprintf (tmp, "r%d%+d", fc->cfa_reg, fc->cfa_offset);
- printf ("%-8s ", tmp);
-
- for (r = 0; r < fc->ncols; r++)
- {
- if (fc->col_type[r] != DW_CFA_unreferenced)
- {
- switch (fc->col_type[r])
- {
- case DW_CFA_undefined:
- strcpy (tmp, "u");
- break;
- case DW_CFA_same_value:
- strcpy (tmp, "s");
- break;
- case DW_CFA_offset:
- sprintf (tmp, "c%+d", fc->col_offset[r]);
- break;
- case DW_CFA_val_offset:
- sprintf (tmp, "v%+d", fc->col_offset[r]);
- break;
- case DW_CFA_register:
- sprintf (tmp, "r%d", fc->col_offset[r]);
- break;
- case DW_CFA_expression:
- strcpy (tmp, "exp");
- break;
- case DW_CFA_val_expression:
- strcpy (tmp, "vexp");
- break;
- default:
- strcpy (tmp, "n/a");
- break;
- }
- printf ("%-5s", tmp);
- }
- }
- printf ("\n");
-}
-
-static int
-size_of_encoded_value (int encoding)
-{
- switch (encoding & 0x7)
- {
- default: /* ??? */
- case 0: return eh_addr_size;
- case 2: return 2;
- case 3: return 4;
- case 4: return 8;
- }
-}
-
-static dwarf_vma
-get_encoded_value (unsigned char *data, int encoding)
-{
- int size = size_of_encoded_value (encoding);
- if (encoding & DW_EH_PE_signed)
- return byte_get_signed (data, size);
- else
- return byte_get (data, size);
-}
-
-#define GET(N) byte_get (start, N); start += N
-#define LEB() read_leb128 (start, & length_return, 0); start += length_return
-#define SLEB() read_leb128 (start, & length_return, 1); start += length_return
-
-static int
-display_debug_frames (struct dwarf_section *section,
- void *file ATTRIBUTE_UNUSED)
-{
- unsigned char *start = section->start;
- unsigned char *end = start + section->size;
- unsigned char *section_start = start;
- Frame_Chunk *chunks = 0;
- Frame_Chunk *remembered_state = 0;
- Frame_Chunk *rs;
- int is_eh = strcmp (section->name, ".eh_frame") == 0;
- unsigned int length_return;
- int max_regs = 0;
-
- printf (_("The section %s contains:\n"), section->name);
-
- while (start < end)
- {
- unsigned char *saved_start;
- unsigned char *block_end;
- unsigned long length;
- unsigned long cie_id;
- Frame_Chunk *fc;
- Frame_Chunk *cie;
- int need_col_headers = 1;
- unsigned char *augmentation_data = NULL;
- unsigned long augmentation_data_len = 0;
- int encoded_ptr_size = eh_addr_size;
- int offset_size;
- int initial_length_size;
-
- saved_start = start;
- length = byte_get (start, 4); start += 4;
-
- if (length == 0)
- {
- printf ("\n%08lx ZERO terminator\n\n",
- (unsigned long)(saved_start - section_start));
- return 1;
- }
-
- if (length == 0xffffffff)
- {
- length = byte_get (start, 8);
- start += 8;
- offset_size = 8;
- initial_length_size = 12;
- }
- else
- {
- offset_size = 4;
- initial_length_size = 4;
- }
-
- block_end = saved_start + length + initial_length_size;
- cie_id = byte_get (start, offset_size); start += offset_size;
-
- if (is_eh ? (cie_id == 0) : (cie_id == DW_CIE_ID))
- {
- int version;
-
- fc = xmalloc (sizeof (Frame_Chunk));
- memset (fc, 0, sizeof (Frame_Chunk));
-
- fc->next = chunks;
- chunks = fc;
- fc->chunk_start = saved_start;
- fc->ncols = 0;
- fc->col_type = xmalloc (sizeof (short int));
- fc->col_offset = xmalloc (sizeof (int));
- frame_need_space (fc, max_regs-1);
-
- version = *start++;
-
- fc->augmentation = (char *) start;
- start = (unsigned char *) strchr ((char *) start, '\0') + 1;
-
- if (fc->augmentation[0] == 'z')
- {
- fc->code_factor = LEB ();
- fc->data_factor = SLEB ();
- if (version == 1)
- {
- fc->ra = GET (1);
- }
- else
- {
- fc->ra = LEB ();
- }
- augmentation_data_len = LEB ();
- augmentation_data = start;
- start += augmentation_data_len;
- }
- else if (strcmp (fc->augmentation, "eh") == 0)
- {
- start += eh_addr_size;
- fc->code_factor = LEB ();
- fc->data_factor = SLEB ();
- if (version == 1)
- {
- fc->ra = GET (1);
- }
- else
- {
- fc->ra = LEB ();
- }
- }
- else
- {
- fc->code_factor = LEB ();
- fc->data_factor = SLEB ();
- if (version == 1)
- {
- fc->ra = GET (1);
- }
- else
- {
- fc->ra = LEB ();
- }
- }
- cie = fc;
-
- if (do_debug_frames_interp)
- printf ("\n%08lx %08lx %08lx CIE \"%s\" cf=%d df=%d ra=%d\n",
- (unsigned long)(saved_start - section_start), length, cie_id,
- fc->augmentation, fc->code_factor, fc->data_factor,
- fc->ra);
- else
- {
- printf ("\n%08lx %08lx %08lx CIE\n",
- (unsigned long)(saved_start - section_start), length, cie_id);
- printf (" Version: %d\n", version);
- printf (" Augmentation: \"%s\"\n", fc->augmentation);
- printf (" Code alignment factor: %u\n", fc->code_factor);
- printf (" Data alignment factor: %d\n", fc->data_factor);
- printf (" Return address column: %d\n", fc->ra);
-
- if (augmentation_data_len)
- {
- unsigned long i;
- printf (" Augmentation data: ");
- for (i = 0; i < augmentation_data_len; ++i)
- printf (" %02x", augmentation_data[i]);
- putchar ('\n');
- }
- putchar ('\n');
- }
-
- if (augmentation_data_len)
- {
- unsigned char *p, *q;
- p = (unsigned char *) fc->augmentation + 1;
- q = augmentation_data;
-
- while (1)
- {
- if (*p == 'L')
- q++;
- else if (*p == 'P')
- q += 1 + size_of_encoded_value (*q);
- else if (*p == 'R')
- fc->fde_encoding = *q++;
- else
- break;
- p++;
- }
-
- if (fc->fde_encoding)
- encoded_ptr_size = size_of_encoded_value (fc->fde_encoding);
- }
-
- frame_need_space (fc, fc->ra);
- }
- else
- {
- unsigned char *look_for;
- static Frame_Chunk fde_fc;
-
- fc = & fde_fc;
- memset (fc, 0, sizeof (Frame_Chunk));
-
- look_for = is_eh ? start - 4 - cie_id : section_start + cie_id;
-
- for (cie = chunks; cie ; cie = cie->next)
- if (cie->chunk_start == look_for)
- break;
-
- if (!cie)
- {
- warn ("Invalid CIE pointer %08lx in FDE at %08lx\n",
- cie_id, (unsigned long)(saved_start - section_start));
- start = block_end;
- fc->ncols = 0;
- fc->col_type = xmalloc (sizeof (short int));
- fc->col_offset = xmalloc (sizeof (int));
- frame_need_space (fc, max_regs - 1);
- cie = fc;
- fc->augmentation = "";
- fc->fde_encoding = 0;
- }
- else
- {
- fc->ncols = cie->ncols;
- fc->col_type = xcmalloc (fc->ncols, sizeof (short int));
- fc->col_offset = xcmalloc (fc->ncols, sizeof (int));
- memcpy (fc->col_type, cie->col_type, fc->ncols * sizeof (short int));
- memcpy (fc->col_offset, cie->col_offset, fc->ncols * sizeof (int));
- fc->augmentation = cie->augmentation;
- fc->code_factor = cie->code_factor;
- fc->data_factor = cie->data_factor;
- fc->cfa_reg = cie->cfa_reg;
- fc->cfa_offset = cie->cfa_offset;
- fc->ra = cie->ra;
- frame_need_space (fc, max_regs-1);
- fc->fde_encoding = cie->fde_encoding;
- }
-
- if (fc->fde_encoding)
- encoded_ptr_size = size_of_encoded_value (fc->fde_encoding);
-
- fc->pc_begin = get_encoded_value (start, fc->fde_encoding);
- if ((fc->fde_encoding & 0x70) == DW_EH_PE_pcrel
- /* Don't adjust for relocatable file since there's
- invariably a pcrel reloc here, which we haven't
- applied. */
- && !is_relocatable)
- fc->pc_begin += section->address + (start - section_start);
- start += encoded_ptr_size;
- fc->pc_range = byte_get (start, encoded_ptr_size);
- start += encoded_ptr_size;
-
- if (cie->augmentation[0] == 'z')
- {
- augmentation_data_len = LEB ();
- augmentation_data = start;
- start += augmentation_data_len;
- }
-
- printf ("\n%08lx %08lx %08lx FDE cie=%08lx pc=%08lx..%08lx\n",
- (unsigned long)(saved_start - section_start), length, cie_id,
- (unsigned long)(cie->chunk_start - section_start),
- fc->pc_begin, fc->pc_begin + fc->pc_range);
- if (! do_debug_frames_interp && augmentation_data_len)
- {
- unsigned long i;
-
- printf (" Augmentation data: ");
- for (i = 0; i < augmentation_data_len; ++i)
- printf (" %02x", augmentation_data[i]);
- putchar ('\n');
- putchar ('\n');
- }
- }
-
- /* At this point, fc is the current chunk, cie (if any) is set, and
- we're about to interpret instructions for the chunk. */
- /* ??? At present we need to do this always, since this sizes the
- fc->col_type and fc->col_offset arrays, which we write into always.
- We should probably split the interpreted and non-interpreted bits
- into two different routines, since there's so much that doesn't
- really overlap between them. */
- if (1 || do_debug_frames_interp)
- {
- /* Start by making a pass over the chunk, allocating storage
- and taking note of what registers are used. */
- unsigned char *tmp = start;
-
- while (start < block_end)
- {
- unsigned op, opa;
- unsigned long reg, tmp;
-
- op = *start++;
- opa = op & 0x3f;
- if (op & 0xc0)
- op &= 0xc0;
-
- /* Warning: if you add any more cases to this switch, be
- sure to add them to the corresponding switch below. */
- switch (op)
- {
- case DW_CFA_advance_loc:
- break;
- case DW_CFA_offset:
- LEB ();
- frame_need_space (fc, opa);
- fc->col_type[opa] = DW_CFA_undefined;
- break;
- case DW_CFA_restore:
- frame_need_space (fc, opa);
- fc->col_type[opa] = DW_CFA_undefined;
- break;
- case DW_CFA_set_loc:
- start += encoded_ptr_size;
- break;
- case DW_CFA_advance_loc1:
- start += 1;
- break;
- case DW_CFA_advance_loc2:
- start += 2;
- break;
- case DW_CFA_advance_loc4:
- start += 4;
- break;
- case DW_CFA_offset_extended:
- case DW_CFA_val_offset:
- reg = LEB (); LEB ();
- frame_need_space (fc, reg);
- fc->col_type[reg] = DW_CFA_undefined;
- break;
- case DW_CFA_restore_extended:
- reg = LEB ();
- frame_need_space (fc, reg);
- fc->col_type[reg] = DW_CFA_undefined;
- break;
- case DW_CFA_undefined:
- reg = LEB ();
- frame_need_space (fc, reg);
- fc->col_type[reg] = DW_CFA_undefined;
- break;
- case DW_CFA_same_value:
- reg = LEB ();
- frame_need_space (fc, reg);
- fc->col_type[reg] = DW_CFA_undefined;
- break;
- case DW_CFA_register:
- reg = LEB (); LEB ();
- frame_need_space (fc, reg);
- fc->col_type[reg] = DW_CFA_undefined;
- break;
- case DW_CFA_def_cfa:
- LEB (); LEB ();
- break;
- case DW_CFA_def_cfa_register:
- LEB ();
- break;
- case DW_CFA_def_cfa_offset:
- LEB ();
- break;
- case DW_CFA_def_cfa_expression:
- tmp = LEB ();
- start += tmp;
- break;
- case DW_CFA_expression:
- case DW_CFA_val_expression:
- reg = LEB ();
- tmp = LEB ();
- start += tmp;
- frame_need_space (fc, reg);
- fc->col_type[reg] = DW_CFA_undefined;
- break;
- case DW_CFA_offset_extended_sf:
- case DW_CFA_val_offset_sf:
- reg = LEB (); SLEB ();
- frame_need_space (fc, reg);
- fc->col_type[reg] = DW_CFA_undefined;
- break;
- case DW_CFA_def_cfa_sf:
- LEB (); SLEB ();
- break;
- case DW_CFA_def_cfa_offset_sf:
- SLEB ();
- break;
- case DW_CFA_MIPS_advance_loc8:
- start += 8;
- break;
- case DW_CFA_GNU_args_size:
- LEB ();
- break;
- case DW_CFA_GNU_negative_offset_extended:
- reg = LEB (); LEB ();
- frame_need_space (fc, reg);
- fc->col_type[reg] = DW_CFA_undefined;
-
- default:
- break;
- }
- }
- start = tmp;
- }
-
- /* Now we know what registers are used, make a second pass over
- the chunk, this time actually printing out the info. */
-
- while (start < block_end)
- {
- unsigned op, opa;
- unsigned long ul, reg, roffs;
- long l, ofs;
- dwarf_vma vma;
-
- op = *start++;
- opa = op & 0x3f;
- if (op & 0xc0)
- op &= 0xc0;
-
- /* Warning: if you add any more cases to this switch, be
- sure to add them to the corresponding switch above. */
- switch (op)
- {
- case DW_CFA_advance_loc:
- if (do_debug_frames_interp)
- frame_display_row (fc, &need_col_headers, &max_regs);
- else
- printf (" DW_CFA_advance_loc: %d to %08lx\n",
- opa * fc->code_factor,
- fc->pc_begin + opa * fc->code_factor);
- fc->pc_begin += opa * fc->code_factor;
- break;
-
- case DW_CFA_offset:
- roffs = LEB ();
- if (! do_debug_frames_interp)
- printf (" DW_CFA_offset: r%d at cfa%+ld\n",
- opa, roffs * fc->data_factor);
- fc->col_type[opa] = DW_CFA_offset;
- fc->col_offset[opa] = roffs * fc->data_factor;
- break;
-
- case DW_CFA_restore:
- if (! do_debug_frames_interp)
- printf (" DW_CFA_restore: r%d\n", opa);
- fc->col_type[opa] = cie->col_type[opa];
- fc->col_offset[opa] = cie->col_offset[opa];
- break;
-
- case DW_CFA_set_loc:
- vma = get_encoded_value (start, fc->fde_encoding);
- if ((fc->fde_encoding & 0x70) == DW_EH_PE_pcrel
- && !is_relocatable)
- vma += section->address + (start - section_start);
- start += encoded_ptr_size;
- if (do_debug_frames_interp)
- frame_display_row (fc, &need_col_headers, &max_regs);
- else
- printf (" DW_CFA_set_loc: %08lx\n", (unsigned long)vma);
- fc->pc_begin = vma;
- break;
-
- case DW_CFA_advance_loc1:
- ofs = byte_get (start, 1); start += 1;
- if (do_debug_frames_interp)
- frame_display_row (fc, &need_col_headers, &max_regs);
- else
- printf (" DW_CFA_advance_loc1: %ld to %08lx\n",
- ofs * fc->code_factor,
- fc->pc_begin + ofs * fc->code_factor);
- fc->pc_begin += ofs * fc->code_factor;
- break;
-
- case DW_CFA_advance_loc2:
- ofs = byte_get (start, 2); start += 2;
- if (do_debug_frames_interp)
- frame_display_row (fc, &need_col_headers, &max_regs);
- else
- printf (" DW_CFA_advance_loc2: %ld to %08lx\n",
- ofs * fc->code_factor,
- fc->pc_begin + ofs * fc->code_factor);
- fc->pc_begin += ofs * fc->code_factor;
- break;
-
- case DW_CFA_advance_loc4:
- ofs = byte_get (start, 4); start += 4;
- if (do_debug_frames_interp)
- frame_display_row (fc, &need_col_headers, &max_regs);
- else
- printf (" DW_CFA_advance_loc4: %ld to %08lx\n",
- ofs * fc->code_factor,
- fc->pc_begin + ofs * fc->code_factor);
- fc->pc_begin += ofs * fc->code_factor;
- break;
-
- case DW_CFA_offset_extended:
- reg = LEB ();
- roffs = LEB ();
- if (! do_debug_frames_interp)
- printf (" DW_CFA_offset_extended: r%ld at cfa%+ld\n",
- reg, roffs * fc->data_factor);
- fc->col_type[reg] = DW_CFA_offset;
- fc->col_offset[reg] = roffs * fc->data_factor;
- break;
-
- case DW_CFA_val_offset:
- reg = LEB ();
- roffs = LEB ();
- if (! do_debug_frames_interp)
- printf (" DW_CFA_val_offset: r%ld at cfa%+ld\n",
- reg, roffs * fc->data_factor);
- fc->col_type[reg] = DW_CFA_val_offset;
- fc->col_offset[reg] = roffs * fc->data_factor;
- break;
-
- case DW_CFA_restore_extended:
- reg = LEB ();
- if (! do_debug_frames_interp)
- printf (" DW_CFA_restore_extended: r%ld\n", reg);
- fc->col_type[reg] = cie->col_type[reg];
- fc->col_offset[reg] = cie->col_offset[reg];
- break;
-
- case DW_CFA_undefined:
- reg = LEB ();
- if (! do_debug_frames_interp)
- printf (" DW_CFA_undefined: r%ld\n", reg);
- fc->col_type[reg] = DW_CFA_undefined;
- fc->col_offset[reg] = 0;
- break;
-
- case DW_CFA_same_value:
- reg = LEB ();
- if (! do_debug_frames_interp)
- printf (" DW_CFA_same_value: r%ld\n", reg);
- fc->col_type[reg] = DW_CFA_same_value;
- fc->col_offset[reg] = 0;
- break;
-
- case DW_CFA_register:
- reg = LEB ();
- roffs = LEB ();
- if (! do_debug_frames_interp)
- printf (" DW_CFA_register: r%ld in r%ld\n", reg, roffs);
- fc->col_type[reg] = DW_CFA_register;
- fc->col_offset[reg] = roffs;
- break;
-
- case DW_CFA_remember_state:
- if (! do_debug_frames_interp)
- printf (" DW_CFA_remember_state\n");
- rs = xmalloc (sizeof (Frame_Chunk));
- rs->ncols = fc->ncols;
- rs->col_type = xcmalloc (rs->ncols, sizeof (short int));
- rs->col_offset = xcmalloc (rs->ncols, sizeof (int));
- memcpy (rs->col_type, fc->col_type, rs->ncols);
- memcpy (rs->col_offset, fc->col_offset, rs->ncols * sizeof (int));
- rs->next = remembered_state;
- remembered_state = rs;
- break;
-
- case DW_CFA_restore_state:
- if (! do_debug_frames_interp)
- printf (" DW_CFA_restore_state\n");
- rs = remembered_state;
- if (rs)
- {
- remembered_state = rs->next;
- frame_need_space (fc, rs->ncols-1);
- memcpy (fc->col_type, rs->col_type, rs->ncols);
- memcpy (fc->col_offset, rs->col_offset,
- rs->ncols * sizeof (int));
- free (rs->col_type);
- free (rs->col_offset);
- free (rs);
- }
- else if (do_debug_frames_interp)
- printf ("Mismatched DW_CFA_restore_state\n");
- break;
-
- case DW_CFA_def_cfa:
- fc->cfa_reg = LEB ();
- fc->cfa_offset = LEB ();
- fc->cfa_exp = 0;
- if (! do_debug_frames_interp)
- printf (" DW_CFA_def_cfa: r%d ofs %d\n",
- fc->cfa_reg, fc->cfa_offset);
- break;
-
- case DW_CFA_def_cfa_register:
- fc->cfa_reg = LEB ();
- fc->cfa_exp = 0;
- if (! do_debug_frames_interp)
- printf (" DW_CFA_def_cfa_reg: r%d\n", fc->cfa_reg);
- break;
-
- case DW_CFA_def_cfa_offset:
- fc->cfa_offset = LEB ();
- if (! do_debug_frames_interp)
- printf (" DW_CFA_def_cfa_offset: %d\n", fc->cfa_offset);
- break;
-
- case DW_CFA_nop:
- if (! do_debug_frames_interp)
- printf (" DW_CFA_nop\n");
- break;
-
- case DW_CFA_def_cfa_expression:
- ul = LEB ();
- if (! do_debug_frames_interp)
- {
- printf (" DW_CFA_def_cfa_expression (");
- decode_location_expression (start, eh_addr_size, ul, 0);
- printf (")\n");
- }
- fc->cfa_exp = 1;
- start += ul;
- break;
-
- case DW_CFA_expression:
- reg = LEB ();
- ul = LEB ();
- if (! do_debug_frames_interp)
- {
- printf (" DW_CFA_expression: r%ld (", reg);
- decode_location_expression (start, eh_addr_size, ul, 0);
- printf (")\n");
- }
- fc->col_type[reg] = DW_CFA_expression;
- start += ul;
- break;
-
- case DW_CFA_val_expression:
- reg = LEB ();
- ul = LEB ();
- if (! do_debug_frames_interp)
- {
- printf (" DW_CFA_val_expression: r%ld (", reg);
- decode_location_expression (start, eh_addr_size, ul, 0);
- printf (")\n");
- }
- fc->col_type[reg] = DW_CFA_val_expression;
- start += ul;
- break;
-
- case DW_CFA_offset_extended_sf:
- reg = LEB ();
- l = SLEB ();
- frame_need_space (fc, reg);
- if (! do_debug_frames_interp)
- printf (" DW_CFA_offset_extended_sf: r%ld at cfa%+ld\n",
- reg, l * fc->data_factor);
- fc->col_type[reg] = DW_CFA_offset;
- fc->col_offset[reg] = l * fc->data_factor;
- break;
-
- case DW_CFA_val_offset_sf:
- reg = LEB ();
- l = SLEB ();
- frame_need_space (fc, reg);
- if (! do_debug_frames_interp)
- printf (" DW_CFA_val_offset_sf: r%ld at cfa%+ld\n",
- reg, l * fc->data_factor);
- fc->col_type[reg] = DW_CFA_val_offset;
- fc->col_offset[reg] = l * fc->data_factor;
- break;
-
- case DW_CFA_def_cfa_sf:
- fc->cfa_reg = LEB ();
- fc->cfa_offset = SLEB ();
- fc->cfa_offset = fc->cfa_offset * fc->data_factor;
- fc->cfa_exp = 0;
- if (! do_debug_frames_interp)
- printf (" DW_CFA_def_cfa_sf: r%d ofs %d\n",
- fc->cfa_reg, fc->cfa_offset);
- break;
-
- case DW_CFA_def_cfa_offset_sf:
- fc->cfa_offset = SLEB ();
- fc->cfa_offset = fc->cfa_offset * fc->data_factor;
- if (! do_debug_frames_interp)
- printf (" DW_CFA_def_cfa_offset_sf: %d\n", fc->cfa_offset);
- break;
-
- case DW_CFA_MIPS_advance_loc8:
- ofs = byte_get (start, 8); start += 8;
- if (do_debug_frames_interp)
- frame_display_row (fc, &need_col_headers, &max_regs);
- else
- printf (" DW_CFA_MIPS_advance_loc8: %ld to %08lx\n",
- ofs * fc->code_factor,
- fc->pc_begin + ofs * fc->code_factor);
- fc->pc_begin += ofs * fc->code_factor;
- break;
-
- case DW_CFA_GNU_window_save:
- if (! do_debug_frames_interp)
- printf (" DW_CFA_GNU_window_save\n");
- break;
-
- case DW_CFA_GNU_args_size:
- ul = LEB ();
- if (! do_debug_frames_interp)
- printf (" DW_CFA_GNU_args_size: %ld\n", ul);
- break;
-
- case DW_CFA_GNU_negative_offset_extended:
- reg = LEB ();
- l = - LEB ();
- frame_need_space (fc, reg);
- if (! do_debug_frames_interp)
- printf (" DW_CFA_GNU_negative_offset_extended: r%ld at cfa%+ld\n",
- reg, l * fc->data_factor);
- fc->col_type[reg] = DW_CFA_offset;
- fc->col_offset[reg] = l * fc->data_factor;
- break;
-
- default:
- warn (_("unsupported or unknown DW_CFA_%d\n"), op);
- start = block_end;
- }
- }
-
- if (do_debug_frames_interp)
- frame_display_row (fc, &need_col_headers, &max_regs);
-
- start = block_end;
- }
-
- printf ("\n");
-
- return 1;
-}
-
-#undef GET
-#undef LEB
-#undef SLEB
-
-static int
-display_debug_not_supported (struct dwarf_section *section,
- void *file ATTRIBUTE_UNUSED)
-{
- printf (_("Displaying the debug contents of section %s is not yet supported.\n"),
- section->name);
-
- return 1;
-}
-
-void *
-cmalloc (size_t nmemb, size_t size)
-{
- /* Check for overflow. */
- if (nmemb >= ~(size_t) 0 / size)
- return NULL;
- else
- return malloc (nmemb * size);
-}
-
-void *
-xcmalloc (size_t nmemb, size_t size)
-{
- /* Check for overflow. */
- if (nmemb >= ~(size_t) 0 / size)
- return NULL;
- else
- return xmalloc (nmemb * size);
-}
-
-void *
-xcrealloc (void *ptr, size_t nmemb, size_t size)
-{
- /* Check for overflow. */
- if (nmemb >= ~(size_t) 0 / size)
- return NULL;
- else
- return xrealloc (ptr, nmemb * size);
-}
-
-void
-error (const char *message, ...)
-{
- va_list args;
-
- va_start (args, message);
- fprintf (stderr, _("%s: Error: "), program_name);
- vfprintf (stderr, message, args);
- va_end (args);
-}
-
-void
-warn (const char *message, ...)
-{
- va_list args;
-
- va_start (args, message);
- fprintf (stderr, _("%s: Warning: "), program_name);
- vfprintf (stderr, message, args);
- va_end (args);
-}
-
-void
-free_debug_memory (void)
-{
- enum dwarf_section_display_enum i;
-
- free_abbrevs ();
-
- for (i = 0; i < max; i++)
- free_debug_section (i);
-
- if (debug_information)
- {
- for (i = 0; i < num_debug_info_entries; i++)
- {
- if (!debug_information [i].max_loc_offsets)
- {
- free (debug_information [i].loc_offsets);
- free (debug_information [i].have_frame_base);
- }
- if (!debug_information [i].max_range_lists)
- free (debug_information [i].range_lists);
- }
- free (debug_information);
- debug_information = NULL;
- num_debug_info_entries = 0;
- }
-
-}
-
-struct dwarf_section_display debug_displays[] =
-{
- { { ".debug_abbrev", NULL, 0, 0 },
- display_debug_abbrev, 0, 0 },
- { { ".debug_aranges", NULL, 0, 0 },
- display_debug_aranges, 0, 0 },
- { { ".debug_frame", NULL, 0, 0 },
- display_debug_frames, 1, 0 },
- { { ".debug_info", NULL, 0, 0 },
- display_debug_info, 1, 0 },
- { { ".debug_line", NULL, 0, 0 },
- display_debug_lines, 0, 0 },
- { { ".debug_pubnames", NULL, 0, 0 },
- display_debug_pubnames, 0, 0 },
- { { ".eh_frame", NULL, 0, 0 },
- display_debug_frames, 1, 1 },
- { { ".debug_macinfo", NULL, 0, 0 },
- display_debug_macinfo, 0, 0 },
- { { ".debug_str", NULL, 0, 0 },
- display_debug_str, 0, 0 },
- { { ".debug_loc", NULL, 0, 0 },
- display_debug_loc, 0, 0 },
- { { ".debug_pubtypes", NULL, 0, 0 },
- display_debug_pubnames, 0, 0 },
- { { ".debug_ranges", NULL, 0, 0 },
- display_debug_ranges, 0, 0 },
- { { ".debug_static_func", NULL, 0, 0 },
- display_debug_not_supported, 0, 0 },
- { { ".debug_static_vars", NULL, 0, 0 },
- display_debug_not_supported, 0, 0 },
- { { ".debug_types", NULL, 0, 0 },
- display_debug_not_supported, 0, 0 },
- { { ".debug_weaknames", NULL, 0, 0 },
- display_debug_not_supported, 0, 0 }
-};
diff --git a/binutils-2.17/binutils/dwarf.h b/binutils-2.17/binutils/dwarf.h
deleted file mode 100644
index 907ac93e..00000000
--- a/binutils-2.17/binutils/dwarf.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* dwwrf.h - DWARF support header file
- Copyright 2005
- Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "bfd.h"
-#include "elf/dwarf2.h"
-
-#if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2)
-/* We can't use any bfd types here since readelf may define BFD64 and
- objdump may not. */
-typedef unsigned long long dwarf_vma;
-typedef unsigned long long dwarf_size_type;
-#else
-typedef unsigned long dwarf_vma;
-typedef unsigned long dwarf_size_type;
-#endif
-
-struct dwarf_section
-{
- const char *name;
- unsigned char *start;
- dwarf_vma address;
- dwarf_size_type size;
-};
-
-/* A structure containing the name of a debug section
- and a pointer to a function that can decode it. */
-struct dwarf_section_display
-{
- struct dwarf_section section;
- int (*display) (struct dwarf_section *, void *);
- unsigned int relocate : 1;
- unsigned int eh_frame : 1;
-};
-
-enum dwarf_section_display_enum {
- abbrev = 0,
- aranges,
- frame,
- info,
- line,
- pubnames,
- eh_frame,
- macinfo,
- str,
- loc,
- pubtypes,
- ranges,
- static_func,
- static_vars,
- types,
- weaknames,
- max
-};
-
-extern struct dwarf_section_display debug_displays [];
-
-/* This structure records the information that
- we extract from the.debug_info section. */
-typedef struct
-{
- unsigned int pointer_size;
- unsigned long cu_offset;
- unsigned long base_address;
- /* This is an array of offsets to the location list table. */
- unsigned long *loc_offsets;
- int *have_frame_base;
- unsigned int num_loc_offsets;
- unsigned int max_loc_offsets;
- unsigned long *range_lists;
- unsigned int num_range_lists;
- unsigned int max_range_lists;
-}
-debug_info;
-
-extern dwarf_vma (*byte_get) (unsigned char *, int);
-extern dwarf_vma byte_get_little_endian (unsigned char *, int);
-extern dwarf_vma byte_get_big_endian (unsigned char *, int);
-
-extern dwarf_vma eh_addr_size;
-extern int is_relocatable;
-
-extern int do_debug_info;
-extern int do_debug_abbrevs;
-extern int do_debug_lines;
-extern int do_debug_pubnames;
-extern int do_debug_aranges;
-extern int do_debug_ranges;
-extern int do_debug_frames;
-extern int do_debug_frames_interp;
-extern int do_debug_macinfo;
-extern int do_debug_str;
-extern int do_debug_loc;
-
-extern int load_debug_section (enum dwarf_section_display_enum,
- void *);
-extern void free_debug_section (enum dwarf_section_display_enum);
-
-extern void free_debug_memory (void);
-
-void *cmalloc (size_t, size_t);
-void *xcmalloc (size_t, size_t);
-void *xcrealloc (void *, size_t, size_t);
-
-void error (const char *, ...) ATTRIBUTE_PRINTF_1;
-void warn (const char *, ...) ATTRIBUTE_PRINTF_1;
diff --git a/binutils-2.17/binutils/emul_aix.c b/binutils-2.17/binutils/emul_aix.c
deleted file mode 100644
index 8161a868..00000000
--- a/binutils-2.17/binutils/emul_aix.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/* Binutils emulation layer.
- Copyright 2002, 2003 Free Software Foundation, Inc.
- Written by Tom Rix, Red Hat Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "binemul.h"
-#include "bfdlink.h"
-#include "coff/internal.h"
-#include "coff/xcoff.h"
-#include "libcoff.h"
-#include "libxcoff.h"
-
-/* Default to <bigaf>. */
-static bfd_boolean big_archive = TRUE;
-
-/* Whether to include 32 bit objects. */
-static bfd_boolean X32 = TRUE;
-
-/* Whether to include 64 bit objects. */
-static bfd_boolean X64 = FALSE;
-
-static void ar_emul_aix_usage (FILE *);
-static bfd_boolean ar_emul_aix_append (bfd **, char *, bfd_boolean);
-static bfd_boolean ar_emul_aix5_append (bfd **, char *, bfd_boolean);
-static bfd_boolean ar_emul_aix_replace (bfd **, char *, bfd_boolean);
-static bfd_boolean ar_emul_aix5_replace (bfd **, char *, bfd_boolean);
-static bfd_boolean ar_emul_aix_parse_arg (char *);
-static bfd_boolean ar_emul_aix_internal
- (bfd **, char *, bfd_boolean, const char *, bfd_boolean);
-
-static void
-ar_emul_aix_usage (FILE *fp)
-{
- AR_EMUL_USAGE_PRINT_OPTION_HEADER (fp);
- /* xgettext:c-format */
- fprintf (fp, _(" [-g] - 32 bit small archive\n"));
- fprintf (fp, _(" [-X32] - ignores 64 bit objects\n"));
- fprintf (fp, _(" [-X64] - ignores 32 bit objects\n"));
- fprintf (fp, _(" [-X32_64] - accepts 32 and 64 bit objects\n"));
-}
-
-static bfd_boolean
-ar_emul_aix_internal (bfd **after_bfd, char *file_name, bfd_boolean verbose,
- const char * target_name, bfd_boolean is_append)
-{
- bfd *temp;
- bfd *try_bfd;
-
- temp = *after_bfd;
-
- /* Try 64 bit. */
- try_bfd = bfd_openr (file_name, target_name);
-
- /* Failed or the object is possibly 32 bit. */
- if (NULL == try_bfd || ! bfd_check_format (try_bfd, bfd_object))
- try_bfd = bfd_openr (file_name, "aixcoff-rs6000");
-
- AR_EMUL_ELEMENT_CHECK (try_bfd, file_name);
-
- if (bfd_xcoff_is_xcoff64 (try_bfd) && (! X64))
- return FALSE;
-
- if (bfd_xcoff_is_xcoff32 (try_bfd)
- && bfd_check_format (try_bfd, bfd_object) && (! X32))
- return FALSE;
-
- if (is_append)
- {
- AR_EMUL_APPEND_PRINT_VERBOSE (verbose, file_name);
- }
- else
- {
- AR_EMUL_REPLACE_PRINT_VERBOSE (verbose, file_name);
- }
-
- *after_bfd = try_bfd;
- (*after_bfd)->next = temp;
-
- return TRUE;
-}
-
-
-static bfd_boolean
-ar_emul_aix_append (bfd **after_bfd, char *file_name, bfd_boolean verbose)
-{
- return ar_emul_aix_internal (after_bfd, file_name, verbose,
- "aixcoff64-rs6000", TRUE);
-}
-
-static bfd_boolean
-ar_emul_aix5_append (bfd **after_bfd, char *file_name, bfd_boolean verbose)
-{
- return ar_emul_aix_internal (after_bfd, file_name, verbose,
- "aix5coff64-rs6000", TRUE);
-}
-
-static bfd_boolean
-ar_emul_aix_replace (bfd **after_bfd, char *file_name, bfd_boolean verbose)
-{
- return ar_emul_aix_internal (after_bfd, file_name, verbose,
- "aixcoff64-rs6000", FALSE);
-}
-
-static bfd_boolean
-ar_emul_aix5_replace (bfd **after_bfd, char *file_name, bfd_boolean verbose)
-{
- return ar_emul_aix_internal (after_bfd, file_name, verbose,
- "aix5coff64-rs6000", FALSE);
-}
-
-static bfd_boolean
-ar_emul_aix_parse_arg (char *arg)
-{
- if (strncmp (arg, "-X32_64", 6) == 0)
- {
- big_archive = TRUE;
- X32 = TRUE;
- X64 = TRUE;
- }
- else if (strncmp (arg, "-X32", 3) == 0)
- {
- big_archive = TRUE;
- X32 = TRUE;
- X64 = FALSE;
- }
- else if (strncmp (arg, "-X64", 3) == 0)
- {
- big_archive = TRUE;
- X32 = FALSE;
- X64 = TRUE;
- }
- else if (strncmp (arg, "-g", 2) == 0)
- {
- big_archive = FALSE;
- X32 = TRUE;
- X64 = FALSE;
- }
- else
- return FALSE;
-
- return TRUE;
-}
-
-struct bin_emulation_xfer_struct bin_aix_emulation =
-{
- ar_emul_aix_usage,
- ar_emul_aix_append,
- ar_emul_aix_replace,
- ar_emul_aix_parse_arg,
-};
-
-struct bin_emulation_xfer_struct bin_aix5_emulation =
-{
- ar_emul_aix_usage,
- ar_emul_aix5_append,
- ar_emul_aix5_replace,
- ar_emul_aix_parse_arg,
-};
diff --git a/binutils-2.17/binutils/emul_vanilla.c b/binutils-2.17/binutils/emul_vanilla.c
deleted file mode 100644
index 2f34f9d5..00000000
--- a/binutils-2.17/binutils/emul_vanilla.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Binutils emulation layer.
- Copyright (C) 2002 Free Software Foundation, Inc.
- Written by Tom Rix, Red Hat Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "binemul.h"
-
-struct bin_emulation_xfer_struct bin_vanilla_emulation =
-{
- ar_emul_default_usage,
- ar_emul_default_append,
- ar_emul_default_replace,
- ar_emul_default_parse_arg,
-};
diff --git a/binutils-2.17/binutils/filemode.c b/binutils-2.17/binutils/filemode.c
deleted file mode 100644
index 78578c88..00000000
--- a/binutils-2.17/binutils/filemode.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/* filemode.c -- make a string describing file modes
- Copyright 1985, 1990, 1991, 1994, 1995, 1997, 1999, 2002, 2003, 2005
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#include "bfd.h"
-#include "bucomm.h"
-
-static char ftypelet (unsigned long);
-static void setst (unsigned long, char *);
-
-/* filemodestring - fill in string STR with an ls-style ASCII
- representation of the st_mode field of file stats block STATP.
- 10 characters are stored in STR; no terminating null is added.
- The characters stored in STR are:
-
- 0 File type. 'd' for directory, 'c' for character
- special, 'b' for block special, 'm' for multiplex,
- 'l' for symbolic link, 's' for socket, 'p' for fifo,
- '-' for any other file type
-
- 1 'r' if the owner may read, '-' otherwise.
-
- 2 'w' if the owner may write, '-' otherwise.
-
- 3 'x' if the owner may execute, 's' if the file is
- set-user-id, '-' otherwise.
- 'S' if the file is set-user-id, but the execute
- bit isn't set.
-
- 4 'r' if group members may read, '-' otherwise.
-
- 5 'w' if group members may write, '-' otherwise.
-
- 6 'x' if group members may execute, 's' if the file is
- set-group-id, '-' otherwise.
- 'S' if it is set-group-id but not executable.
-
- 7 'r' if any user may read, '-' otherwise.
-
- 8 'w' if any user may write, '-' otherwise.
-
- 9 'x' if any user may execute, 't' if the file is "sticky"
- (will be retained in swap space after execution), '-'
- otherwise.
- 'T' if the file is sticky but not executable. */
-
-/* Get definitions for the file permission bits. */
-
-#ifndef S_IRWXU
-#define S_IRWXU 0700
-#endif
-#ifndef S_IRUSR
-#define S_IRUSR 0400
-#endif
-#ifndef S_IWUSR
-#define S_IWUSR 0200
-#endif
-#ifndef S_IXUSR
-#define S_IXUSR 0100
-#endif
-
-#ifndef S_IRWXG
-#define S_IRWXG 0070
-#endif
-#ifndef S_IRGRP
-#define S_IRGRP 0040
-#endif
-#ifndef S_IWGRP
-#define S_IWGRP 0020
-#endif
-#ifndef S_IXGRP
-#define S_IXGRP 0010
-#endif
-
-#ifndef S_IRWXO
-#define S_IRWXO 0007
-#endif
-#ifndef S_IROTH
-#define S_IROTH 0004
-#endif
-#ifndef S_IWOTH
-#define S_IWOTH 0002
-#endif
-#ifndef S_IXOTH
-#define S_IXOTH 0001
-#endif
-
-/* Like filemodestring, but only the relevant part of the `struct stat'
- is given as an argument. */
-
-void
-mode_string (unsigned long mode, char *str)
-{
- str[0] = ftypelet ((unsigned long) mode);
- str[1] = (mode & S_IRUSR) != 0 ? 'r' : '-';
- str[2] = (mode & S_IWUSR) != 0 ? 'w' : '-';
- str[3] = (mode & S_IXUSR) != 0 ? 'x' : '-';
- str[4] = (mode & S_IRGRP) != 0 ? 'r' : '-';
- str[5] = (mode & S_IWGRP) != 0 ? 'w' : '-';
- str[6] = (mode & S_IXGRP) != 0 ? 'x' : '-';
- str[7] = (mode & S_IROTH) != 0 ? 'r' : '-';
- str[8] = (mode & S_IWOTH) != 0 ? 'w' : '-';
- str[9] = (mode & S_IXOTH) != 0 ? 'x' : '-';
- setst ((unsigned long) mode, str);
-}
-
-/* Return a character indicating the type of file described by
- file mode BITS:
- 'd' for directories
- 'b' for block special files
- 'c' for character special files
- 'm' for multiplexer files
- 'l' for symbolic links
- 's' for sockets
- 'p' for fifos
- '-' for any other file type. */
-
-#ifndef S_ISDIR
-#ifdef S_IFDIR
-#define S_ISDIR(i) (((i) & S_IFMT) == S_IFDIR)
-#else /* ! defined (S_IFDIR) */
-#define S_ISDIR(i) (((i) & 0170000) == 040000)
-#endif /* ! defined (S_IFDIR) */
-#endif /* ! defined (S_ISDIR) */
-
-#ifndef S_ISBLK
-#ifdef S_IFBLK
-#define S_ISBLK(i) (((i) & S_IFMT) == S_IFBLK)
-#else /* ! defined (S_IFBLK) */
-#define S_ISBLK(i) 0
-#endif /* ! defined (S_IFBLK) */
-#endif /* ! defined (S_ISBLK) */
-
-#ifndef S_ISCHR
-#ifdef S_IFCHR
-#define S_ISCHR(i) (((i) & S_IFMT) == S_IFCHR)
-#else /* ! defined (S_IFCHR) */
-#define S_ISCHR(i) 0
-#endif /* ! defined (S_IFCHR) */
-#endif /* ! defined (S_ISCHR) */
-
-#ifndef S_ISFIFO
-#ifdef S_IFIFO
-#define S_ISFIFO(i) (((i) & S_IFMT) == S_IFIFO)
-#else /* ! defined (S_IFIFO) */
-#define S_ISFIFO(i) 0
-#endif /* ! defined (S_IFIFO) */
-#endif /* ! defined (S_ISFIFO) */
-
-#ifndef S_ISSOCK
-#ifdef S_IFSOCK
-#define S_ISSOCK(i) (((i) & S_IFMT) == S_IFSOCK)
-#else /* ! defined (S_IFSOCK) */
-#define S_ISSOCK(i) 0
-#endif /* ! defined (S_IFSOCK) */
-#endif /* ! defined (S_ISSOCK) */
-
-#ifndef S_ISLNK
-#ifdef S_IFLNK
-#define S_ISLNK(i) (((i) & S_IFMT) == S_IFLNK)
-#else /* ! defined (S_IFLNK) */
-#define S_ISLNK(i) 0
-#endif /* ! defined (S_IFLNK) */
-#endif /* ! defined (S_ISLNK) */
-
-static char
-ftypelet (unsigned long bits)
-{
- if (S_ISDIR (bits))
- return 'd';
- if (S_ISLNK (bits))
- return 'l';
- if (S_ISBLK (bits))
- return 'b';
- if (S_ISCHR (bits))
- return 'c';
- if (S_ISSOCK (bits))
- return 's';
- if (S_ISFIFO (bits))
- return 'p';
-
-#ifdef S_IFMT
-#ifdef S_IFMPC
- if ((bits & S_IFMT) == S_IFMPC
- || (bits & S_IFMT) == S_IFMPB)
- return 'm';
-#endif
-#ifdef S_IFNWK
- if ((bits & S_IFMT) == S_IFNWK)
- return 'n';
-#endif
-#endif
-
- return '-';
-}
-
-/* Set the 's' and 't' flags in file attributes string CHARS,
- according to the file mode BITS. */
-
-static void
-setst (unsigned long bits ATTRIBUTE_UNUSED, char *chars ATTRIBUTE_UNUSED)
-{
-#ifdef S_ISUID
- if (bits & S_ISUID)
- {
- if (chars[3] != 'x')
- /* Set-uid, but not executable by owner. */
- chars[3] = 'S';
- else
- chars[3] = 's';
- }
-#endif
-#ifdef S_ISGID
- if (bits & S_ISGID)
- {
- if (chars[6] != 'x')
- /* Set-gid, but not executable by group. */
- chars[6] = 'S';
- else
- chars[6] = 's';
- }
-#endif
-#ifdef S_ISVTX
- if (bits & S_ISVTX)
- {
- if (chars[9] != 'x')
- /* Sticky, but not executable by others. */
- chars[9] = 'T';
- else
- chars[9] = 't';
- }
-#endif
-}
diff --git a/binutils-2.17/binutils/ieee.c b/binutils-2.17/binutils/ieee.c
deleted file mode 100644
index 98ec30de..00000000
--- a/binutils-2.17/binutils/ieee.c
+++ /dev/null
@@ -1,7399 +0,0 @@
-/* ieee.c -- Read and write IEEE-695 debugging information.
- Copyright 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2006
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor <ian@cygnus.com>.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This file reads and writes IEEE-695 debugging information. */
-
-#include <stdio.h>
-#include <assert.h>
-
-#include "bfd.h"
-#include "ieee.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "debug.h"
-#include "budbg.h"
-#include "filenames.h"
-
-/* This structure holds an entry on the block stack. */
-
-struct ieee_block
-{
- /* The kind of block. */
- int kind;
- /* The source file name, for a BB5 block. */
- const char *filename;
- /* The index of the function type, for a BB4 or BB6 block. */
- unsigned int fnindx;
- /* TRUE if this function is being skipped. */
- bfd_boolean skip;
-};
-
-/* This structure is the block stack. */
-
-#define BLOCKSTACK_SIZE (16)
-
-struct ieee_blockstack
-{
- /* The stack pointer. */
- struct ieee_block *bsp;
- /* The stack. */
- struct ieee_block stack[BLOCKSTACK_SIZE];
-};
-
-/* This structure holds information for a variable. */
-
-struct ieee_var
-{
- /* Start of name. */
- const char *name;
- /* Length of name. */
- unsigned long namlen;
- /* Type. */
- debug_type type;
- /* Slot if we make an indirect type. */
- debug_type *pslot;
- /* Kind of variable or function. */
- enum
- {
- IEEE_UNKNOWN,
- IEEE_EXTERNAL,
- IEEE_GLOBAL,
- IEEE_STATIC,
- IEEE_LOCAL,
- IEEE_FUNCTION
- } kind;
-};
-
-/* This structure holds all the variables. */
-
-struct ieee_vars
-{
- /* Number of slots allocated. */
- unsigned int alloc;
- /* Variables. */
- struct ieee_var *vars;
-};
-
-/* This structure holds information for a type. We need this because
- we don't want to represent bitfields as real types. */
-
-struct ieee_type
-{
- /* Type. */
- debug_type type;
- /* Slot if this is type is referenced before it is defined. */
- debug_type *pslot;
- /* Slots for arguments if we make indirect types for them. */
- debug_type *arg_slots;
- /* If this is a bitfield, this is the size in bits. If this is not
- a bitfield, this is zero. */
- unsigned long bitsize;
-};
-
-/* This structure holds all the type information. */
-
-struct ieee_types
-{
- /* Number of slots allocated. */
- unsigned int alloc;
- /* Types. */
- struct ieee_type *types;
- /* Builtin types. */
-#define BUILTIN_TYPE_COUNT (60)
- debug_type builtins[BUILTIN_TYPE_COUNT];
-};
-
-/* This structure holds a linked last of structs with their tag names,
- so that we can convert them to C++ classes if necessary. */
-
-struct ieee_tag
-{
- /* Next tag. */
- struct ieee_tag *next;
- /* This tag name. */
- const char *name;
- /* The type of the tag. */
- debug_type type;
- /* The tagged type is an indirect type pointing at this slot. */
- debug_type slot;
- /* This is an array of slots used when a field type is converted
- into a indirect type, in case it needs to be later converted into
- a reference type. */
- debug_type *fslots;
-};
-
-/* This structure holds the information we pass around to the parsing
- functions. */
-
-struct ieee_info
-{
- /* The debugging handle. */
- void *dhandle;
- /* The BFD. */
- bfd *abfd;
- /* The start of the bytes to be parsed. */
- const bfd_byte *bytes;
- /* The end of the bytes to be parsed. */
- const bfd_byte *pend;
- /* The block stack. */
- struct ieee_blockstack blockstack;
- /* Whether we have seen a BB1 or BB2. */
- bfd_boolean saw_filename;
- /* The variables. */
- struct ieee_vars vars;
- /* The global variables, after a global typedef block. */
- struct ieee_vars *global_vars;
- /* The types. */
- struct ieee_types types;
- /* The global types, after a global typedef block. */
- struct ieee_types *global_types;
- /* The list of tagged structs. */
- struct ieee_tag *tags;
-};
-
-/* Basic builtin types, not including the pointers. */
-
-enum builtin_types
-{
- builtin_unknown = 0,
- builtin_void = 1,
- builtin_signed_char = 2,
- builtin_unsigned_char = 3,
- builtin_signed_short_int = 4,
- builtin_unsigned_short_int = 5,
- builtin_signed_long = 6,
- builtin_unsigned_long = 7,
- builtin_signed_long_long = 8,
- builtin_unsigned_long_long = 9,
- builtin_float = 10,
- builtin_double = 11,
- builtin_long_double = 12,
- builtin_long_long_double = 13,
- builtin_quoted_string = 14,
- builtin_instruction_address = 15,
- builtin_int = 16,
- builtin_unsigned = 17,
- builtin_unsigned_int = 18,
- builtin_char = 19,
- builtin_long = 20,
- builtin_short = 21,
- builtin_unsigned_short = 22,
- builtin_short_int = 23,
- builtin_signed_short = 24,
- builtin_bcd_float = 25
-};
-
-/* These are the values found in the derivation flags of a 'b'
- component record of a 'T' type extension record in a C++ pmisc
- record. These are bitmasks. */
-
-/* Set for a private base class, clear for a public base class.
- Protected base classes are not supported. */
-#define BASEFLAGS_PRIVATE (0x1)
-/* Set for a virtual base class. */
-#define BASEFLAGS_VIRTUAL (0x2)
-/* Set for a friend class, clear for a base class. */
-#define BASEFLAGS_FRIEND (0x10)
-
-/* These are the values found in the specs flags of a 'd', 'm', or 'v'
- component record of a 'T' type extension record in a C++ pmisc
- record. The same flags are used for a 'M' record in a C++ pmisc
- record. */
-
-/* The lower two bits hold visibility information. */
-#define CXXFLAGS_VISIBILITY (0x3)
-/* This value in the lower two bits indicates a public member. */
-#define CXXFLAGS_VISIBILITY_PUBLIC (0x0)
-/* This value in the lower two bits indicates a private member. */
-#define CXXFLAGS_VISIBILITY_PRIVATE (0x1)
-/* This value in the lower two bits indicates a protected member. */
-#define CXXFLAGS_VISIBILITY_PROTECTED (0x2)
-/* Set for a static member. */
-#define CXXFLAGS_STATIC (0x4)
-/* Set for a virtual override. */
-#define CXXFLAGS_OVERRIDE (0x8)
-/* Set for a friend function. */
-#define CXXFLAGS_FRIEND (0x10)
-/* Set for a const function. */
-#define CXXFLAGS_CONST (0x20)
-/* Set for a volatile function. */
-#define CXXFLAGS_VOLATILE (0x40)
-/* Set for an overloaded function. */
-#define CXXFLAGS_OVERLOADED (0x80)
-/* Set for an operator function. */
-#define CXXFLAGS_OPERATOR (0x100)
-/* Set for a constructor or destructor. */
-#define CXXFLAGS_CTORDTOR (0x400)
-/* Set for a constructor. */
-#define CXXFLAGS_CTOR (0x200)
-/* Set for an inline function. */
-#define CXXFLAGS_INLINE (0x800)
-
-/* Local functions. */
-
-static void ieee_error (struct ieee_info *, const bfd_byte *, const char *);
-static void ieee_eof (struct ieee_info *);
-static char *savestring (const char *, unsigned long);
-static bfd_boolean ieee_read_number
- (struct ieee_info *, const bfd_byte **, bfd_vma *);
-static bfd_boolean ieee_read_optional_number
- (struct ieee_info *, const bfd_byte **, bfd_vma *, bfd_boolean *);
-static bfd_boolean ieee_read_id
- (struct ieee_info *, const bfd_byte **, const char **, unsigned long *);
-static bfd_boolean ieee_read_optional_id
- (struct ieee_info *, const bfd_byte **, const char **, unsigned long *,
- bfd_boolean *);
-static bfd_boolean ieee_read_expression
- (struct ieee_info *, const bfd_byte **, bfd_vma *);
-static debug_type ieee_builtin_type
- (struct ieee_info *, const bfd_byte *, unsigned int);
-static bfd_boolean ieee_alloc_type
- (struct ieee_info *, unsigned int, bfd_boolean);
-static bfd_boolean ieee_read_type_index
- (struct ieee_info *, const bfd_byte **, debug_type *);
-static int ieee_regno_to_genreg (bfd *, int);
-static int ieee_genreg_to_regno (bfd *, int);
-static bfd_boolean parse_ieee_bb (struct ieee_info *, const bfd_byte **);
-static bfd_boolean parse_ieee_be (struct ieee_info *, const bfd_byte **);
-static bfd_boolean parse_ieee_nn (struct ieee_info *, const bfd_byte **);
-static bfd_boolean parse_ieee_ty (struct ieee_info *, const bfd_byte **);
-static bfd_boolean parse_ieee_atn (struct ieee_info *, const bfd_byte **);
-static bfd_boolean ieee_read_cxx_misc
- (struct ieee_info *, const bfd_byte **, unsigned long);
-static bfd_boolean ieee_read_cxx_class
- (struct ieee_info *, const bfd_byte **, unsigned long);
-static bfd_boolean ieee_read_cxx_defaults
- (struct ieee_info *, const bfd_byte **, unsigned long);
-static bfd_boolean ieee_read_reference
- (struct ieee_info *, const bfd_byte **);
-static bfd_boolean ieee_require_asn
- (struct ieee_info *, const bfd_byte **, bfd_vma *);
-static bfd_boolean ieee_require_atn65
- (struct ieee_info *, const bfd_byte **, const char **, unsigned long *);
-
-/* Report an error in the IEEE debugging information. */
-
-static void
-ieee_error (struct ieee_info *info, const bfd_byte *p, const char *s)
-{
- if (p != NULL)
- fprintf (stderr, "%s: 0x%lx: %s (0x%x)\n", bfd_get_filename (info->abfd),
- (unsigned long) (p - info->bytes), s, *p);
- else
- fprintf (stderr, "%s: %s\n", bfd_get_filename (info->abfd), s);
-}
-
-/* Report an unexpected EOF in the IEEE debugging information. */
-
-static void
-ieee_eof (struct ieee_info *info)
-{
- ieee_error (info, (const bfd_byte *) NULL,
- _("unexpected end of debugging information"));
-}
-
-/* Save a string in memory. */
-
-static char *
-savestring (const char *start, unsigned long len)
-{
- char *ret;
-
- ret = (char *) xmalloc (len + 1);
- memcpy (ret, start, len);
- ret[len] = '\0';
- return ret;
-}
-
-/* Read a number which must be present in an IEEE file. */
-
-static bfd_boolean
-ieee_read_number (struct ieee_info *info, const bfd_byte **pp, bfd_vma *pv)
-{
- return ieee_read_optional_number (info, pp, pv, (bfd_boolean *) NULL);
-}
-
-/* Read a number in an IEEE file. If ppresent is not NULL, the number
- need not be there. */
-
-static bfd_boolean
-ieee_read_optional_number (struct ieee_info *info, const bfd_byte **pp,
- bfd_vma *pv, bfd_boolean *ppresent)
-{
- ieee_record_enum_type b;
-
- if (*pp >= info->pend)
- {
- if (ppresent != NULL)
- {
- *ppresent = FALSE;
- return TRUE;
- }
- ieee_eof (info);
- return FALSE;
- }
-
- b = (ieee_record_enum_type) **pp;
- ++*pp;
-
- if (b <= ieee_number_end_enum)
- {
- *pv = (bfd_vma) b;
- if (ppresent != NULL)
- *ppresent = TRUE;
- return TRUE;
- }
-
- if (b >= ieee_number_repeat_start_enum && b <= ieee_number_repeat_end_enum)
- {
- unsigned int i;
-
- i = (int) b - (int) ieee_number_repeat_start_enum;
- if (*pp + i - 1 >= info->pend)
- {
- ieee_eof (info);
- return FALSE;
- }
-
- *pv = 0;
- for (; i > 0; i--)
- {
- *pv <<= 8;
- *pv += **pp;
- ++*pp;
- }
-
- if (ppresent != NULL)
- *ppresent = TRUE;
-
- return TRUE;
- }
-
- if (ppresent != NULL)
- {
- --*pp;
- *ppresent = FALSE;
- return TRUE;
- }
-
- ieee_error (info, *pp - 1, _("invalid number"));
- return FALSE;
-}
-
-/* Read a required string from an IEEE file. */
-
-static bfd_boolean
-ieee_read_id (struct ieee_info *info, const bfd_byte **pp,
- const char **pname, unsigned long *pnamlen)
-{
- return ieee_read_optional_id (info, pp, pname, pnamlen, (bfd_boolean *) NULL);
-}
-
-/* Read a string from an IEEE file. If ppresent is not NULL, the
- string is optional. */
-
-static bfd_boolean
-ieee_read_optional_id (struct ieee_info *info, const bfd_byte **pp,
- const char **pname, unsigned long *pnamlen,
- bfd_boolean *ppresent)
-{
- bfd_byte b;
- unsigned long len;
-
- if (*pp >= info->pend)
- {
- ieee_eof (info);
- return FALSE;
- }
-
- b = **pp;
- ++*pp;
-
- if (b <= 0x7f)
- len = b;
- else if ((ieee_record_enum_type) b == ieee_extension_length_1_enum)
- {
- len = **pp;
- ++*pp;
- }
- else if ((ieee_record_enum_type) b == ieee_extension_length_2_enum)
- {
- len = (**pp << 8) + (*pp)[1];
- *pp += 2;
- }
- else
- {
- if (ppresent != NULL)
- {
- --*pp;
- *ppresent = FALSE;
- return TRUE;
- }
- ieee_error (info, *pp - 1, _("invalid string length"));
- return FALSE;
- }
-
- if ((unsigned long) (info->pend - *pp) < len)
- {
- ieee_eof (info);
- return FALSE;
- }
-
- *pname = (const char *) *pp;
- *pnamlen = len;
- *pp += len;
-
- if (ppresent != NULL)
- *ppresent = TRUE;
-
- return TRUE;
-}
-
-/* Read an expression from an IEEE file. Since this code is only used
- to parse debugging information, I haven't bothered to write a full
- blown IEEE expression parser. I've only thrown in the things I've
- seen in debugging information. This can be easily extended if
- necessary. */
-
-static bfd_boolean
-ieee_read_expression (struct ieee_info *info, const bfd_byte **pp,
- bfd_vma *pv)
-{
- const bfd_byte *expr_start;
-#define EXPR_STACK_SIZE (10)
- bfd_vma expr_stack[EXPR_STACK_SIZE];
- bfd_vma *esp;
-
- expr_start = *pp;
-
- esp = expr_stack;
-
- while (1)
- {
- const bfd_byte *start;
- bfd_vma val;
- bfd_boolean present;
- ieee_record_enum_type c;
-
- start = *pp;
-
- if (! ieee_read_optional_number (info, pp, &val, &present))
- return FALSE;
-
- if (present)
- {
- if (esp - expr_stack >= EXPR_STACK_SIZE)
- {
- ieee_error (info, start, _("expression stack overflow"));
- return FALSE;
- }
- *esp++ = val;
- continue;
- }
-
- c = (ieee_record_enum_type) **pp;
-
- if (c >= ieee_module_beginning_enum)
- break;
-
- ++*pp;
-
- if (c == ieee_comma)
- break;
-
- switch (c)
- {
- default:
- ieee_error (info, start, _("unsupported IEEE expression operator"));
- break;
-
- case ieee_variable_R_enum:
- {
- bfd_vma indx;
- asection *s;
-
- if (! ieee_read_number (info, pp, &indx))
- return FALSE;
- for (s = info->abfd->sections; s != NULL; s = s->next)
- if ((bfd_vma) s->target_index == indx)
- break;
- if (s == NULL)
- {
- ieee_error (info, start, _("unknown section"));
- return FALSE;
- }
-
- if (esp - expr_stack >= EXPR_STACK_SIZE)
- {
- ieee_error (info, start, _("expression stack overflow"));
- return FALSE;
- }
-
- *esp++ = bfd_get_section_vma (info->abfd, s);
- }
- break;
-
- case ieee_function_plus_enum:
- case ieee_function_minus_enum:
- {
- bfd_vma v1, v2;
-
- if (esp - expr_stack < 2)
- {
- ieee_error (info, start, _("expression stack underflow"));
- return FALSE;
- }
-
- v1 = *--esp;
- v2 = *--esp;
- *esp++ = v1 + v2;
- }
- break;
- }
- }
-
- if (esp - 1 != expr_stack)
- {
- ieee_error (info, expr_start, _("expression stack mismatch"));
- return FALSE;
- }
-
- *pv = *--esp;
-
- return TRUE;
-}
-
-/* Return an IEEE builtin type. */
-
-static debug_type
-ieee_builtin_type (struct ieee_info *info, const bfd_byte *p,
- unsigned int indx)
-{
- void *dhandle;
- debug_type type;
- const char *name;
-
- if (indx < BUILTIN_TYPE_COUNT
- && info->types.builtins[indx] != DEBUG_TYPE_NULL)
- return info->types.builtins[indx];
-
- dhandle = info->dhandle;
-
- if (indx >= 32 && indx < 64)
- {
- type = debug_make_pointer_type (dhandle,
- ieee_builtin_type (info, p, indx - 32));
- assert (indx < BUILTIN_TYPE_COUNT);
- info->types.builtins[indx] = type;
- return type;
- }
-
- switch ((enum builtin_types) indx)
- {
- default:
- ieee_error (info, p, _("unknown builtin type"));
- return NULL;
-
- case builtin_unknown:
- type = debug_make_void_type (dhandle);
- name = NULL;
- break;
-
- case builtin_void:
- type = debug_make_void_type (dhandle);
- name = "void";
- break;
-
- case builtin_signed_char:
- type = debug_make_int_type (dhandle, 1, FALSE);
- name = "signed char";
- break;
-
- case builtin_unsigned_char:
- type = debug_make_int_type (dhandle, 1, TRUE);
- name = "unsigned char";
- break;
-
- case builtin_signed_short_int:
- type = debug_make_int_type (dhandle, 2, FALSE);
- name = "signed short int";
- break;
-
- case builtin_unsigned_short_int:
- type = debug_make_int_type (dhandle, 2, TRUE);
- name = "unsigned short int";
- break;
-
- case builtin_signed_long:
- type = debug_make_int_type (dhandle, 4, FALSE);
- name = "signed long";
- break;
-
- case builtin_unsigned_long:
- type = debug_make_int_type (dhandle, 4, TRUE);
- name = "unsigned long";
- break;
-
- case builtin_signed_long_long:
- type = debug_make_int_type (dhandle, 8, FALSE);
- name = "signed long long";
- break;
-
- case builtin_unsigned_long_long:
- type = debug_make_int_type (dhandle, 8, TRUE);
- name = "unsigned long long";
- break;
-
- case builtin_float:
- type = debug_make_float_type (dhandle, 4);
- name = "float";
- break;
-
- case builtin_double:
- type = debug_make_float_type (dhandle, 8);
- name = "double";
- break;
-
- case builtin_long_double:
- /* FIXME: The size for this type should depend upon the
- processor. */
- type = debug_make_float_type (dhandle, 12);
- name = "long double";
- break;
-
- case builtin_long_long_double:
- type = debug_make_float_type (dhandle, 16);
- name = "long long double";
- break;
-
- case builtin_quoted_string:
- type = debug_make_array_type (dhandle,
- ieee_builtin_type (info, p,
- ((unsigned int)
- builtin_char)),
- ieee_builtin_type (info, p,
- ((unsigned int)
- builtin_int)),
- 0, -1, TRUE);
- name = "QUOTED STRING";
- break;
-
- case builtin_instruction_address:
- /* FIXME: This should be a code address. */
- type = debug_make_int_type (dhandle, 4, TRUE);
- name = "instruction address";
- break;
-
- case builtin_int:
- /* FIXME: The size for this type should depend upon the
- processor. */
- type = debug_make_int_type (dhandle, 4, FALSE);
- name = "int";
- break;
-
- case builtin_unsigned:
- /* FIXME: The size for this type should depend upon the
- processor. */
- type = debug_make_int_type (dhandle, 4, TRUE);
- name = "unsigned";
- break;
-
- case builtin_unsigned_int:
- /* FIXME: The size for this type should depend upon the
- processor. */
- type = debug_make_int_type (dhandle, 4, TRUE);
- name = "unsigned int";
- break;
-
- case builtin_char:
- type = debug_make_int_type (dhandle, 1, FALSE);
- name = "char";
- break;
-
- case builtin_long:
- type = debug_make_int_type (dhandle, 4, FALSE);
- name = "long";
- break;
-
- case builtin_short:
- type = debug_make_int_type (dhandle, 2, FALSE);
- name = "short";
- break;
-
- case builtin_unsigned_short:
- type = debug_make_int_type (dhandle, 2, TRUE);
- name = "unsigned short";
- break;
-
- case builtin_short_int:
- type = debug_make_int_type (dhandle, 2, FALSE);
- name = "short int";
- break;
-
- case builtin_signed_short:
- type = debug_make_int_type (dhandle, 2, FALSE);
- name = "signed short";
- break;
-
- case builtin_bcd_float:
- ieee_error (info, p, _("BCD float type not supported"));
- return DEBUG_TYPE_NULL;
- }
-
- if (name != NULL)
- type = debug_name_type (dhandle, name, type);
-
- assert (indx < BUILTIN_TYPE_COUNT);
-
- info->types.builtins[indx] = type;
-
- return type;
-}
-
-/* Allocate more space in the type table. If ref is TRUE, this is a
- reference to the type; if it is not already defined, we should set
- up an indirect type. */
-
-static bfd_boolean
-ieee_alloc_type (struct ieee_info *info, unsigned int indx, bfd_boolean ref)
-{
- unsigned int nalloc;
- register struct ieee_type *t;
- struct ieee_type *tend;
-
- if (indx >= info->types.alloc)
- {
- nalloc = info->types.alloc;
- if (nalloc == 0)
- nalloc = 4;
- while (indx >= nalloc)
- nalloc *= 2;
-
- info->types.types = ((struct ieee_type *)
- xrealloc (info->types.types,
- nalloc * sizeof *info->types.types));
-
- memset (info->types.types + info->types.alloc, 0,
- (nalloc - info->types.alloc) * sizeof *info->types.types);
-
- tend = info->types.types + nalloc;
- for (t = info->types.types + info->types.alloc; t < tend; t++)
- t->type = DEBUG_TYPE_NULL;
-
- info->types.alloc = nalloc;
- }
-
- if (ref)
- {
- t = info->types.types + indx;
- if (t->type == NULL)
- {
- t->pslot = (debug_type *) xmalloc (sizeof *t->pslot);
- *t->pslot = DEBUG_TYPE_NULL;
- t->type = debug_make_indirect_type (info->dhandle, t->pslot,
- (const char *) NULL);
- if (t->type == NULL)
- return FALSE;
- }
- }
-
- return TRUE;
-}
-
-/* Read a type index and return the corresponding type. */
-
-static bfd_boolean
-ieee_read_type_index (struct ieee_info *info, const bfd_byte **pp,
- debug_type *ptype)
-{
- const bfd_byte *start;
- bfd_vma indx;
-
- start = *pp;
-
- if (! ieee_read_number (info, pp, &indx))
- return FALSE;
-
- if (indx < 256)
- {
- *ptype = ieee_builtin_type (info, start, indx);
- if (*ptype == NULL)
- return FALSE;
- return TRUE;
- }
-
- indx -= 256;
- if (! ieee_alloc_type (info, indx, TRUE))
- return FALSE;
-
- *ptype = info->types.types[indx].type;
-
- return TRUE;
-}
-
-/* Parse IEEE debugging information for a file. This is passed the
- bytes which compose the Debug Information Part of an IEEE file. */
-
-bfd_boolean
-parse_ieee (void *dhandle, bfd *abfd, const bfd_byte *bytes, bfd_size_type len)
-{
- struct ieee_info info;
- unsigned int i;
- const bfd_byte *p, *pend;
-
- info.dhandle = dhandle;
- info.abfd = abfd;
- info.bytes = bytes;
- info.pend = bytes + len;
- info.blockstack.bsp = info.blockstack.stack;
- info.saw_filename = FALSE;
- info.vars.alloc = 0;
- info.vars.vars = NULL;
- info.global_vars = NULL;
- info.types.alloc = 0;
- info.types.types = NULL;
- info.global_types = NULL;
- info.tags = NULL;
- for (i = 0; i < BUILTIN_TYPE_COUNT; i++)
- info.types.builtins[i] = DEBUG_TYPE_NULL;
-
- p = bytes;
- pend = info.pend;
- while (p < pend)
- {
- const bfd_byte *record_start;
- ieee_record_enum_type c;
-
- record_start = p;
-
- c = (ieee_record_enum_type) *p++;
-
- if (c == ieee_at_record_enum)
- c = (ieee_record_enum_type) (((unsigned int) c << 8) | *p++);
-
- if (c <= ieee_number_repeat_end_enum)
- {
- ieee_error (&info, record_start, _("unexpected number"));
- return FALSE;
- }
-
- switch (c)
- {
- default:
- ieee_error (&info, record_start, _("unexpected record type"));
- return FALSE;
-
- case ieee_bb_record_enum:
- if (! parse_ieee_bb (&info, &p))
- return FALSE;
- break;
-
- case ieee_be_record_enum:
- if (! parse_ieee_be (&info, &p))
- return FALSE;
- break;
-
- case ieee_nn_record:
- if (! parse_ieee_nn (&info, &p))
- return FALSE;
- break;
-
- case ieee_ty_record_enum:
- if (! parse_ieee_ty (&info, &p))
- return FALSE;
- break;
-
- case ieee_atn_record_enum:
- if (! parse_ieee_atn (&info, &p))
- return FALSE;
- break;
- }
- }
-
- if (info.blockstack.bsp != info.blockstack.stack)
- {
- ieee_error (&info, (const bfd_byte *) NULL,
- _("blocks left on stack at end"));
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Handle an IEEE BB record. */
-
-static bfd_boolean
-parse_ieee_bb (struct ieee_info *info, const bfd_byte **pp)
-{
- const bfd_byte *block_start;
- bfd_byte b;
- bfd_vma size;
- const char *name;
- unsigned long namlen;
- char *namcopy = NULL;
- unsigned int fnindx;
- bfd_boolean skip;
-
- block_start = *pp;
-
- b = **pp;
- ++*pp;
-
- if (! ieee_read_number (info, pp, &size)
- || ! ieee_read_id (info, pp, &name, &namlen))
- return FALSE;
-
- fnindx = (unsigned int) -1;
- skip = FALSE;
-
- switch (b)
- {
- case 1:
- /* BB1: Type definitions local to a module. */
- namcopy = savestring (name, namlen);
- if (namcopy == NULL)
- return FALSE;
- if (! debug_set_filename (info->dhandle, namcopy))
- return FALSE;
- info->saw_filename = TRUE;
-
- /* Discard any variables or types we may have seen before. */
- if (info->vars.vars != NULL)
- free (info->vars.vars);
- info->vars.vars = NULL;
- info->vars.alloc = 0;
- if (info->types.types != NULL)
- free (info->types.types);
- info->types.types = NULL;
- info->types.alloc = 0;
-
- /* Initialize the types to the global types. */
- if (info->global_types != NULL)
- {
- info->types.alloc = info->global_types->alloc;
- info->types.types = ((struct ieee_type *)
- xmalloc (info->types.alloc
- * sizeof (*info->types.types)));
- memcpy (info->types.types, info->global_types->types,
- info->types.alloc * sizeof (*info->types.types));
- }
-
- break;
-
- case 2:
- /* BB2: Global type definitions. The name is supposed to be
- empty, but we don't check. */
- if (! debug_set_filename (info->dhandle, "*global*"))
- return FALSE;
- info->saw_filename = TRUE;
- break;
-
- case 3:
- /* BB3: High level module block begin. We don't have to do
- anything here. The name is supposed to be the same as for
- the BB1, but we don't check. */
- break;
-
- case 4:
- /* BB4: Global function. */
- {
- bfd_vma stackspace, typindx, offset;
- debug_type return_type;
-
- if (! ieee_read_number (info, pp, &stackspace)
- || ! ieee_read_number (info, pp, &typindx)
- || ! ieee_read_expression (info, pp, &offset))
- return FALSE;
-
- /* We have no way to record the stack space. FIXME. */
-
- if (typindx < 256)
- {
- return_type = ieee_builtin_type (info, block_start, typindx);
- if (return_type == DEBUG_TYPE_NULL)
- return FALSE;
- }
- else
- {
- typindx -= 256;
- if (! ieee_alloc_type (info, typindx, TRUE))
- return FALSE;
- fnindx = typindx;
- return_type = info->types.types[typindx].type;
- if (debug_get_type_kind (info->dhandle, return_type)
- == DEBUG_KIND_FUNCTION)
- return_type = debug_get_return_type (info->dhandle,
- return_type);
- }
-
- namcopy = savestring (name, namlen);
- if (namcopy == NULL)
- return FALSE;
- if (! debug_record_function (info->dhandle, namcopy, return_type,
- TRUE, offset))
- return FALSE;
- }
- break;
-
- case 5:
- /* BB5: File name for source line numbers. */
- {
- unsigned int i;
-
- /* We ignore the date and time. FIXME. */
- for (i = 0; i < 6; i++)
- {
- bfd_vma ignore;
- bfd_boolean present;
-
- if (! ieee_read_optional_number (info, pp, &ignore, &present))
- return FALSE;
- if (! present)
- break;
- }
-
- namcopy = savestring (name, namlen);
- if (namcopy == NULL)
- return FALSE;
- if (! debug_start_source (info->dhandle, namcopy))
- return FALSE;
- }
- break;
-
- case 6:
- /* BB6: Local function or block. */
- {
- bfd_vma stackspace, typindx, offset;
-
- if (! ieee_read_number (info, pp, &stackspace)
- || ! ieee_read_number (info, pp, &typindx)
- || ! ieee_read_expression (info, pp, &offset))
- return FALSE;
-
- /* We have no way to record the stack space. FIXME. */
-
- if (namlen == 0)
- {
- if (! debug_start_block (info->dhandle, offset))
- return FALSE;
- /* Change b to indicate that this is a block
- rather than a function. */
- b = 0x86;
- }
- else
- {
- /* The MRI C++ compiler will output a fake function named
- __XRYCPP to hold C++ debugging information. We skip
- that function. This is not crucial, but it makes
- converting from IEEE to other debug formats work
- better. */
- if (strncmp (name, "__XRYCPP", namlen) == 0)
- skip = TRUE;
- else
- {
- debug_type return_type;
-
- if (typindx < 256)
- {
- return_type = ieee_builtin_type (info, block_start,
- typindx);
- if (return_type == NULL)
- return FALSE;
- }
- else
- {
- typindx -= 256;
- if (! ieee_alloc_type (info, typindx, TRUE))
- return FALSE;
- fnindx = typindx;
- return_type = info->types.types[typindx].type;
- if (debug_get_type_kind (info->dhandle, return_type)
- == DEBUG_KIND_FUNCTION)
- return_type = debug_get_return_type (info->dhandle,
- return_type);
- }
-
- namcopy = savestring (name, namlen);
- if (namcopy == NULL)
- return FALSE;
- if (! debug_record_function (info->dhandle, namcopy,
- return_type, FALSE, offset))
- return FALSE;
- }
- }
- }
- break;
-
- case 10:
- /* BB10: Assembler module scope. In the normal case, we
- completely ignore all this information. FIXME. */
- {
- const char *inam, *vstr;
- unsigned long inamlen, vstrlen;
- bfd_vma tool_type;
- bfd_boolean present;
- unsigned int i;
-
- if (! info->saw_filename)
- {
- namcopy = savestring (name, namlen);
- if (namcopy == NULL)
- return FALSE;
- if (! debug_set_filename (info->dhandle, namcopy))
- return FALSE;
- info->saw_filename = TRUE;
- }
-
- if (! ieee_read_id (info, pp, &inam, &inamlen)
- || ! ieee_read_number (info, pp, &tool_type)
- || ! ieee_read_optional_id (info, pp, &vstr, &vstrlen, &present))
- return FALSE;
- for (i = 0; i < 6; i++)
- {
- bfd_vma ignore;
-
- if (! ieee_read_optional_number (info, pp, &ignore, &present))
- return FALSE;
- if (! present)
- break;
- }
- }
- break;
-
- case 11:
- /* BB11: Module section. We completely ignore all this
- information. FIXME. */
- {
- bfd_vma sectype, secindx, offset, map;
- bfd_boolean present;
-
- if (! ieee_read_number (info, pp, &sectype)
- || ! ieee_read_number (info, pp, &secindx)
- || ! ieee_read_expression (info, pp, &offset)
- || ! ieee_read_optional_number (info, pp, &map, &present))
- return FALSE;
- }
- break;
-
- default:
- ieee_error (info, block_start, _("unknown BB type"));
- return FALSE;
- }
-
-
- /* Push this block on the block stack. */
-
- if (info->blockstack.bsp >= info->blockstack.stack + BLOCKSTACK_SIZE)
- {
- ieee_error (info, (const bfd_byte *) NULL, _("stack overflow"));
- return FALSE;
- }
-
- info->blockstack.bsp->kind = b;
- if (b == 5)
- info->blockstack.bsp->filename = namcopy;
- info->blockstack.bsp->fnindx = fnindx;
- info->blockstack.bsp->skip = skip;
- ++info->blockstack.bsp;
-
- return TRUE;
-}
-
-/* Handle an IEEE BE record. */
-
-static bfd_boolean
-parse_ieee_be (struct ieee_info *info, const bfd_byte **pp)
-{
- bfd_vma offset;
-
- if (info->blockstack.bsp <= info->blockstack.stack)
- {
- ieee_error (info, *pp, _("stack underflow"));
- return FALSE;
- }
- --info->blockstack.bsp;
-
- switch (info->blockstack.bsp->kind)
- {
- case 2:
- /* When we end the global typedefs block, we copy out the
- contents of info->vars. This is because the variable indices
- may be reused in the local blocks. However, we need to
- preserve them so that we can locate a function returning a
- reference variable whose type is named in the global typedef
- block. */
- info->global_vars = ((struct ieee_vars *)
- xmalloc (sizeof *info->global_vars));
- info->global_vars->alloc = info->vars.alloc;
- info->global_vars->vars = ((struct ieee_var *)
- xmalloc (info->vars.alloc
- * sizeof (*info->vars.vars)));
- memcpy (info->global_vars->vars, info->vars.vars,
- info->vars.alloc * sizeof (*info->vars.vars));
-
- /* We also copy out the non builtin parts of info->types, since
- the types are discarded when we start a new block. */
- info->global_types = ((struct ieee_types *)
- xmalloc (sizeof *info->global_types));
- info->global_types->alloc = info->types.alloc;
- info->global_types->types = ((struct ieee_type *)
- xmalloc (info->types.alloc
- * sizeof (*info->types.types)));
- memcpy (info->global_types->types, info->types.types,
- info->types.alloc * sizeof (*info->types.types));
- memset (info->global_types->builtins, 0,
- sizeof (info->global_types->builtins));
-
- break;
-
- case 4:
- case 6:
- if (! ieee_read_expression (info, pp, &offset))
- return FALSE;
- if (! info->blockstack.bsp->skip)
- {
- if (! debug_end_function (info->dhandle, offset + 1))
- return FALSE;
- }
- break;
-
- case 0x86:
- /* This is BE6 when BB6 started a block rather than a local
- function. */
- if (! ieee_read_expression (info, pp, &offset))
- return FALSE;
- if (! debug_end_block (info->dhandle, offset + 1))
- return FALSE;
- break;
-
- case 5:
- /* When we end a BB5, we look up the stack for the last BB5, if
- there is one, so that we can call debug_start_source. */
- if (info->blockstack.bsp > info->blockstack.stack)
- {
- struct ieee_block *bl;
-
- bl = info->blockstack.bsp;
- do
- {
- --bl;
- if (bl->kind == 5)
- {
- if (! debug_start_source (info->dhandle, bl->filename))
- return FALSE;
- break;
- }
- }
- while (bl != info->blockstack.stack);
- }
- break;
-
- case 11:
- if (! ieee_read_expression (info, pp, &offset))
- return FALSE;
- /* We just ignore the module size. FIXME. */
- break;
-
- default:
- /* Other block types do not have any trailing information. */
- break;
- }
-
- return TRUE;
-}
-
-/* Parse an NN record. */
-
-static bfd_boolean
-parse_ieee_nn (struct ieee_info *info, const bfd_byte **pp)
-{
- const bfd_byte *nn_start;
- bfd_vma varindx;
- const char *name;
- unsigned long namlen;
-
- nn_start = *pp;
-
- if (! ieee_read_number (info, pp, &varindx)
- || ! ieee_read_id (info, pp, &name, &namlen))
- return FALSE;
-
- if (varindx < 32)
- {
- ieee_error (info, nn_start, _("illegal variable index"));
- return FALSE;
- }
- varindx -= 32;
-
- if (varindx >= info->vars.alloc)
- {
- unsigned int alloc;
-
- alloc = info->vars.alloc;
- if (alloc == 0)
- alloc = 4;
- while (varindx >= alloc)
- alloc *= 2;
- info->vars.vars = ((struct ieee_var *)
- xrealloc (info->vars.vars,
- alloc * sizeof *info->vars.vars));
- memset (info->vars.vars + info->vars.alloc, 0,
- (alloc - info->vars.alloc) * sizeof *info->vars.vars);
- info->vars.alloc = alloc;
- }
-
- info->vars.vars[varindx].name = name;
- info->vars.vars[varindx].namlen = namlen;
-
- return TRUE;
-}
-
-/* Parse a TY record. */
-
-static bfd_boolean
-parse_ieee_ty (struct ieee_info *info, const bfd_byte **pp)
-{
- const bfd_byte *ty_start, *ty_var_start, *ty_code_start;
- bfd_vma typeindx, varindx, tc;
- void *dhandle;
- bfd_boolean tag, typdef;
- debug_type *arg_slots;
- unsigned long type_bitsize;
- debug_type type;
-
- ty_start = *pp;
-
- if (! ieee_read_number (info, pp, &typeindx))
- return FALSE;
-
- if (typeindx < 256)
- {
- ieee_error (info, ty_start, _("illegal type index"));
- return FALSE;
- }
-
- typeindx -= 256;
- if (! ieee_alloc_type (info, typeindx, FALSE))
- return FALSE;
-
- if (**pp != 0xce)
- {
- ieee_error (info, *pp, _("unknown TY code"));
- return FALSE;
- }
- ++*pp;
-
- ty_var_start = *pp;
-
- if (! ieee_read_number (info, pp, &varindx))
- return FALSE;
-
- if (varindx < 32)
- {
- ieee_error (info, ty_var_start, _("illegal variable index"));
- return FALSE;
- }
- varindx -= 32;
-
- if (varindx >= info->vars.alloc || info->vars.vars[varindx].name == NULL)
- {
- ieee_error (info, ty_var_start, _("undefined variable in TY"));
- return FALSE;
- }
-
- ty_code_start = *pp;
-
- if (! ieee_read_number (info, pp, &tc))
- return FALSE;
-
- dhandle = info->dhandle;
-
- tag = FALSE;
- typdef = FALSE;
- arg_slots = NULL;
- type_bitsize = 0;
- switch (tc)
- {
- default:
- ieee_error (info, ty_code_start, _("unknown TY code"));
- return FALSE;
-
- case '!':
- /* Unknown type, with size. We treat it as int. FIXME. */
- {
- bfd_vma size;
-
- if (! ieee_read_number (info, pp, &size))
- return FALSE;
- type = debug_make_int_type (dhandle, size, FALSE);
- }
- break;
-
- case 'A': /* Array. */
- case 'a': /* FORTRAN array in column/row order. FIXME: Not
- distinguished from normal array. */
- {
- debug_type ele_type;
- bfd_vma lower, upper;
-
- if (! ieee_read_type_index (info, pp, &ele_type)
- || ! ieee_read_number (info, pp, &lower)
- || ! ieee_read_number (info, pp, &upper))
- return FALSE;
- type = debug_make_array_type (dhandle, ele_type,
- ieee_builtin_type (info, ty_code_start,
- ((unsigned int)
- builtin_int)),
- (bfd_signed_vma) lower,
- (bfd_signed_vma) upper,
- FALSE);
- }
- break;
-
- case 'E':
- /* Simple enumeration. */
- {
- bfd_vma size;
- unsigned int alloc;
- const char **names;
- unsigned int c;
- bfd_signed_vma *vals;
- unsigned int i;
-
- if (! ieee_read_number (info, pp, &size))
- return FALSE;
- /* FIXME: we ignore the enumeration size. */
-
- alloc = 10;
- names = (const char **) xmalloc (alloc * sizeof *names);
- memset (names, 0, alloc * sizeof *names);
- c = 0;
- while (1)
- {
- const char *name;
- unsigned long namlen;
- bfd_boolean present;
-
- if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
- return FALSE;
- if (! present)
- break;
-
- if (c + 1 >= alloc)
- {
- alloc += 10;
- names = ((const char **)
- xrealloc (names, alloc * sizeof *names));
- }
-
- names[c] = savestring (name, namlen);
- if (names[c] == NULL)
- return FALSE;
- ++c;
- }
-
- names[c] = NULL;
-
- vals = (bfd_signed_vma *) xmalloc (c * sizeof *vals);
- for (i = 0; i < c; i++)
- vals[i] = i;
-
- type = debug_make_enum_type (dhandle, names, vals);
- tag = TRUE;
- }
- break;
-
- case 'G':
- /* Struct with bit fields. */
- {
- bfd_vma size;
- unsigned int alloc;
- debug_field *fields;
- unsigned int c;
-
- if (! ieee_read_number (info, pp, &size))
- return FALSE;
-
- alloc = 10;
- fields = (debug_field *) xmalloc (alloc * sizeof *fields);
- c = 0;
- while (1)
- {
- const char *name;
- unsigned long namlen;
- bfd_boolean present;
- debug_type ftype;
- bfd_vma bitpos, bitsize;
-
- if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
- return FALSE;
- if (! present)
- break;
- if (! ieee_read_type_index (info, pp, &ftype)
- || ! ieee_read_number (info, pp, &bitpos)
- || ! ieee_read_number (info, pp, &bitsize))
- return FALSE;
-
- if (c + 1 >= alloc)
- {
- alloc += 10;
- fields = ((debug_field *)
- xrealloc (fields, alloc * sizeof *fields));
- }
-
- fields[c] = debug_make_field (dhandle, savestring (name, namlen),
- ftype, bitpos, bitsize,
- DEBUG_VISIBILITY_PUBLIC);
- if (fields[c] == NULL)
- return FALSE;
- ++c;
- }
-
- fields[c] = NULL;
-
- type = debug_make_struct_type (dhandle, TRUE, size, fields);
- tag = TRUE;
- }
- break;
-
- case 'N':
- /* Enumeration. */
- {
- unsigned int alloc;
- const char **names;
- bfd_signed_vma *vals;
- unsigned int c;
-
- alloc = 10;
- names = (const char **) xmalloc (alloc * sizeof *names);
- vals = (bfd_signed_vma *) xmalloc (alloc * sizeof *names);
- c = 0;
- while (1)
- {
- const char *name;
- unsigned long namlen;
- bfd_boolean present;
- bfd_vma val;
-
- if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
- return FALSE;
- if (! present)
- break;
- if (! ieee_read_number (info, pp, &val))
- return FALSE;
-
- /* If the length of the name is zero, then the value is
- actually the size of the enum. We ignore this
- information. FIXME. */
- if (namlen == 0)
- continue;
-
- if (c + 1 >= alloc)
- {
- alloc += 10;
- names = ((const char **)
- xrealloc (names, alloc * sizeof *names));
- vals = ((bfd_signed_vma *)
- xrealloc (vals, alloc * sizeof *vals));
- }
-
- names[c] = savestring (name, namlen);
- if (names[c] == NULL)
- return FALSE;
- vals[c] = (bfd_signed_vma) val;
- ++c;
- }
-
- names[c] = NULL;
-
- type = debug_make_enum_type (dhandle, names, vals);
- tag = TRUE;
- }
- break;
-
- case 'O': /* Small pointer. We don't distinguish small and large
- pointers. FIXME. */
- case 'P': /* Large pointer. */
- {
- debug_type t;
-
- if (! ieee_read_type_index (info, pp, &t))
- return FALSE;
- type = debug_make_pointer_type (dhandle, t);
- }
- break;
-
- case 'R':
- /* Range. */
- {
- bfd_vma low, high, signedp, size;
-
- if (! ieee_read_number (info, pp, &low)
- || ! ieee_read_number (info, pp, &high)
- || ! ieee_read_number (info, pp, &signedp)
- || ! ieee_read_number (info, pp, &size))
- return FALSE;
-
- type = debug_make_range_type (dhandle,
- debug_make_int_type (dhandle, size,
- ! signedp),
- (bfd_signed_vma) low,
- (bfd_signed_vma) high);
- }
- break;
-
- case 'S': /* Struct. */
- case 'U': /* Union. */
- {
- bfd_vma size;
- unsigned int alloc;
- debug_field *fields;
- unsigned int c;
-
- if (! ieee_read_number (info, pp, &size))
- return FALSE;
-
- alloc = 10;
- fields = (debug_field *) xmalloc (alloc * sizeof *fields);
- c = 0;
- while (1)
- {
- const char *name;
- unsigned long namlen;
- bfd_boolean present;
- bfd_vma tindx;
- bfd_vma offset;
- debug_type ftype;
- bfd_vma bitsize;
-
- if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
- return FALSE;
- if (! present)
- break;
- if (! ieee_read_number (info, pp, &tindx)
- || ! ieee_read_number (info, pp, &offset))
- return FALSE;
-
- if (tindx < 256)
- {
- ftype = ieee_builtin_type (info, ty_code_start, tindx);
- bitsize = 0;
- offset *= 8;
- }
- else
- {
- struct ieee_type *t;
-
- tindx -= 256;
- if (! ieee_alloc_type (info, tindx, TRUE))
- return FALSE;
- t = info->types.types + tindx;
- ftype = t->type;
- bitsize = t->bitsize;
- if (bitsize == 0)
- offset *= 8;
- }
-
- if (c + 1 >= alloc)
- {
- alloc += 10;
- fields = ((debug_field *)
- xrealloc (fields, alloc * sizeof *fields));
- }
-
- fields[c] = debug_make_field (dhandle, savestring (name, namlen),
- ftype, offset, bitsize,
- DEBUG_VISIBILITY_PUBLIC);
- if (fields[c] == NULL)
- return FALSE;
- ++c;
- }
-
- fields[c] = NULL;
-
- type = debug_make_struct_type (dhandle, tc == 'S', size, fields);
- tag = TRUE;
- }
- break;
-
- case 'T':
- /* Typedef. */
- if (! ieee_read_type_index (info, pp, &type))
- return FALSE;
- typdef = TRUE;
- break;
-
- case 'X':
- /* Procedure. FIXME: This is an extern declaration, which we
- have no way of representing. */
- {
- bfd_vma attr;
- debug_type rtype;
- bfd_vma nargs;
- bfd_boolean present;
- struct ieee_var *pv;
-
- /* FIXME: We ignore the attribute and the argument names. */
-
- if (! ieee_read_number (info, pp, &attr)
- || ! ieee_read_type_index (info, pp, &rtype)
- || ! ieee_read_number (info, pp, &nargs))
- return FALSE;
- do
- {
- const char *name;
- unsigned long namlen;
-
- if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
- return FALSE;
- }
- while (present);
-
- pv = info->vars.vars + varindx;
- pv->kind = IEEE_EXTERNAL;
- if (pv->namlen > 0
- && debug_get_type_kind (dhandle, rtype) == DEBUG_KIND_POINTER)
- {
- /* Set up the return type as an indirect type pointing to
- the variable slot, so that we can change it to a
- reference later if appropriate. */
- pv->pslot = (debug_type *) xmalloc (sizeof *pv->pslot);
- *pv->pslot = rtype;
- rtype = debug_make_indirect_type (dhandle, pv->pslot,
- (const char *) NULL);
- }
-
- type = debug_make_function_type (dhandle, rtype, (debug_type *) NULL,
- FALSE);
- }
- break;
-
- case 'V':
- /* Void. This is not documented, but the MRI compiler emits it. */
- type = debug_make_void_type (dhandle);
- break;
-
- case 'Z':
- /* Array with 0 lower bound. */
- {
- debug_type etype;
- bfd_vma high;
-
- if (! ieee_read_type_index (info, pp, &etype)
- || ! ieee_read_number (info, pp, &high))
- return FALSE;
-
- type = debug_make_array_type (dhandle, etype,
- ieee_builtin_type (info, ty_code_start,
- ((unsigned int)
- builtin_int)),
- 0, (bfd_signed_vma) high, FALSE);
- }
- break;
-
- case 'c': /* Complex. */
- case 'd': /* Double complex. */
- {
- const char *name;
- unsigned long namlen;
-
- /* FIXME: I don't know what the name means. */
-
- if (! ieee_read_id (info, pp, &name, &namlen))
- return FALSE;
-
- type = debug_make_complex_type (dhandle, tc == 'c' ? 4 : 8);
- }
- break;
-
- case 'f':
- /* Pascal file name. FIXME. */
- ieee_error (info, ty_code_start, _("Pascal file name not supported"));
- return FALSE;
-
- case 'g':
- /* Bitfield type. */
- {
- bfd_vma signedp, bitsize, dummy;
- const bfd_byte *hold;
- bfd_boolean present;
-
- if (! ieee_read_number (info, pp, &signedp)
- || ! ieee_read_number (info, pp, &bitsize))
- return FALSE;
-
- /* I think the documentation says that there is a type index,
- but some actual files do not have one. */
- hold = *pp;
- if (! ieee_read_optional_number (info, pp, &dummy, &present))
- return FALSE;
- if (! present)
- {
- /* FIXME: This is just a guess. */
- type = debug_make_int_type (dhandle, 4,
- signedp ? FALSE : TRUE);
- }
- else
- {
- *pp = hold;
- if (! ieee_read_type_index (info, pp, &type))
- return FALSE;
- }
- type_bitsize = bitsize;
- }
- break;
-
- case 'n':
- /* Qualifier. */
- {
- bfd_vma kind;
- debug_type t;
-
- if (! ieee_read_number (info, pp, &kind)
- || ! ieee_read_type_index (info, pp, &t))
- return FALSE;
-
- switch (kind)
- {
- default:
- ieee_error (info, ty_start, _("unsupported qualifier"));
- return FALSE;
-
- case 1:
- type = debug_make_const_type (dhandle, t);
- break;
-
- case 2:
- type = debug_make_volatile_type (dhandle, t);
- break;
- }
- }
- break;
-
- case 's':
- /* Set. */
- {
- bfd_vma size;
- debug_type etype;
-
- if (! ieee_read_number (info, pp, &size)
- || ! ieee_read_type_index (info, pp, &etype))
- return FALSE;
-
- /* FIXME: We ignore the size. */
-
- type = debug_make_set_type (dhandle, etype, FALSE);
- }
- break;
-
- case 'x':
- /* Procedure with compiler dependencies. */
- {
- struct ieee_var *pv;
- bfd_vma attr, frame_type, push_mask, nargs, level, father;
- debug_type rtype;
- debug_type *arg_types;
- bfd_boolean varargs;
- bfd_boolean present;
-
- /* FIXME: We ignore some of this information. */
-
- pv = info->vars.vars + varindx;
-
- if (! ieee_read_number (info, pp, &attr)
- || ! ieee_read_number (info, pp, &frame_type)
- || ! ieee_read_number (info, pp, &push_mask)
- || ! ieee_read_type_index (info, pp, &rtype)
- || ! ieee_read_number (info, pp, &nargs))
- return FALSE;
- if (nargs == (bfd_vma) -1)
- {
- arg_types = NULL;
- varargs = FALSE;
- }
- else
- {
- unsigned int i;
-
- arg_types = ((debug_type *)
- xmalloc ((nargs + 1) * sizeof *arg_types));
- for (i = 0; i < nargs; i++)
- if (! ieee_read_type_index (info, pp, arg_types + i))
- return FALSE;
-
- /* If the last type is pointer to void, this is really a
- varargs function. */
- varargs = FALSE;
- if (nargs > 0)
- {
- debug_type last;
-
- last = arg_types[nargs - 1];
- if (debug_get_type_kind (dhandle, last) == DEBUG_KIND_POINTER
- && (debug_get_type_kind (dhandle,
- debug_get_target_type (dhandle,
- last))
- == DEBUG_KIND_VOID))
- {
- --nargs;
- varargs = TRUE;
- }
- }
-
- /* If there are any pointer arguments, turn them into
- indirect types in case we later need to convert them to
- reference types. */
- for (i = 0; i < nargs; i++)
- {
- if (debug_get_type_kind (dhandle, arg_types[i])
- == DEBUG_KIND_POINTER)
- {
- if (arg_slots == NULL)
- {
- arg_slots = ((debug_type *)
- xmalloc (nargs * sizeof *arg_slots));
- memset (arg_slots, 0, nargs * sizeof *arg_slots);
- }
- arg_slots[i] = arg_types[i];
- arg_types[i] =
- debug_make_indirect_type (dhandle,
- arg_slots + i,
- (const char *) NULL);
- }
- }
-
- arg_types[nargs] = DEBUG_TYPE_NULL;
- }
- if (! ieee_read_number (info, pp, &level)
- || ! ieee_read_optional_number (info, pp, &father, &present))
- return FALSE;
-
- /* We can't distinguish between a global function and a static
- function. */
- pv->kind = IEEE_FUNCTION;
-
- if (pv->namlen > 0
- && debug_get_type_kind (dhandle, rtype) == DEBUG_KIND_POINTER)
- {
- /* Set up the return type as an indirect type pointing to
- the variable slot, so that we can change it to a
- reference later if appropriate. */
- pv->pslot = (debug_type *) xmalloc (sizeof *pv->pslot);
- *pv->pslot = rtype;
- rtype = debug_make_indirect_type (dhandle, pv->pslot,
- (const char *) NULL);
- }
-
- type = debug_make_function_type (dhandle, rtype, arg_types, varargs);
- }
- break;
- }
-
- /* Record the type in the table. */
-
- if (type == DEBUG_TYPE_NULL)
- return FALSE;
-
- info->vars.vars[varindx].type = type;
-
- if ((tag || typdef)
- && info->vars.vars[varindx].namlen > 0)
- {
- const char *name;
-
- name = savestring (info->vars.vars[varindx].name,
- info->vars.vars[varindx].namlen);
- if (typdef)
- type = debug_name_type (dhandle, name, type);
- else if (tc == 'E' || tc == 'N')
- type = debug_tag_type (dhandle, name, type);
- else
- {
- struct ieee_tag *it;
-
- /* We must allocate all struct tags as indirect types, so
- that if we later see a definition of the tag as a C++
- record we can update the indirect slot and automatically
- change all the existing references. */
- it = (struct ieee_tag *) xmalloc (sizeof *it);
- memset (it, 0, sizeof *it);
- it->next = info->tags;
- info->tags = it;
- it->name = name;
- it->slot = type;
-
- type = debug_make_indirect_type (dhandle, &it->slot, name);
- type = debug_tag_type (dhandle, name, type);
-
- it->type = type;
- }
- if (type == NULL)
- return FALSE;
- }
-
- info->types.types[typeindx].type = type;
- info->types.types[typeindx].arg_slots = arg_slots;
- info->types.types[typeindx].bitsize = type_bitsize;
-
- /* We may have already allocated type as an indirect type pointing
- to slot. It does no harm to replace the indirect type with the
- real type. Filling in slot as well handles the indirect types
- which are already hanging around. */
- if (info->types.types[typeindx].pslot != NULL)
- *info->types.types[typeindx].pslot = type;
-
- return TRUE;
-}
-
-/* Parse an ATN record. */
-
-static bfd_boolean
-parse_ieee_atn (struct ieee_info *info, const bfd_byte **pp)
-{
- const bfd_byte *atn_start, *atn_code_start;
- bfd_vma varindx;
- struct ieee_var *pvar;
- debug_type type;
- bfd_vma atn_code;
- void *dhandle;
- bfd_vma v, v2, v3, v4, v5;
- const char *name;
- unsigned long namlen;
- char *namcopy;
- bfd_boolean present;
- int blocktype;
-
- atn_start = *pp;
-
- if (! ieee_read_number (info, pp, &varindx)
- || ! ieee_read_type_index (info, pp, &type))
- return FALSE;
-
- atn_code_start = *pp;
-
- if (! ieee_read_number (info, pp, &atn_code))
- return FALSE;
-
- if (varindx == 0)
- {
- pvar = NULL;
- name = "";
- namlen = 0;
- }
- else if (varindx < 32)
- {
- /* The MRI compiler reportedly sometimes emits variable lifetime
- information for a register. We just ignore it. */
- if (atn_code == 9)
- return ieee_read_number (info, pp, &v);
-
- ieee_error (info, atn_start, _("illegal variable index"));
- return FALSE;
- }
- else
- {
- varindx -= 32;
- if (varindx >= info->vars.alloc
- || info->vars.vars[varindx].name == NULL)
- {
- /* The MRI compiler or linker sometimes omits the NN record
- for a pmisc record. */
- if (atn_code == 62)
- {
- if (varindx >= info->vars.alloc)
- {
- unsigned int alloc;
-
- alloc = info->vars.alloc;
- if (alloc == 0)
- alloc = 4;
- while (varindx >= alloc)
- alloc *= 2;
- info->vars.vars = ((struct ieee_var *)
- xrealloc (info->vars.vars,
- (alloc
- * sizeof *info->vars.vars)));
- memset (info->vars.vars + info->vars.alloc, 0,
- ((alloc - info->vars.alloc)
- * sizeof *info->vars.vars));
- info->vars.alloc = alloc;
- }
-
- pvar = info->vars.vars + varindx;
- pvar->name = "";
- pvar->namlen = 0;
- }
- else
- {
- ieee_error (info, atn_start, _("undefined variable in ATN"));
- return FALSE;
- }
- }
-
- pvar = info->vars.vars + varindx;
-
- pvar->type = type;
-
- name = pvar->name;
- namlen = pvar->namlen;
- }
-
- dhandle = info->dhandle;
-
- /* If we are going to call debug_record_variable with a pointer
- type, change the type to an indirect type so that we can later
- change it to a reference type if we encounter a C++ pmisc 'R'
- record. */
- if (pvar != NULL
- && type != DEBUG_TYPE_NULL
- && debug_get_type_kind (dhandle, type) == DEBUG_KIND_POINTER)
- {
- switch (atn_code)
- {
- case 1:
- case 2:
- case 3:
- case 5:
- case 8:
- case 10:
- pvar->pslot = (debug_type *) xmalloc (sizeof *pvar->pslot);
- *pvar->pslot = type;
- type = debug_make_indirect_type (dhandle, pvar->pslot,
- (const char *) NULL);
- pvar->type = type;
- break;
- }
- }
-
- switch (atn_code)
- {
- default:
- ieee_error (info, atn_code_start, _("unknown ATN type"));
- return FALSE;
-
- case 1:
- /* Automatic variable. */
- if (! ieee_read_number (info, pp, &v))
- return FALSE;
- namcopy = savestring (name, namlen);
- if (type == NULL)
- type = debug_make_void_type (dhandle);
- if (pvar != NULL)
- pvar->kind = IEEE_LOCAL;
- return debug_record_variable (dhandle, namcopy, type, DEBUG_LOCAL, v);
-
- case 2:
- /* Register variable. */
- if (! ieee_read_number (info, pp, &v))
- return FALSE;
- namcopy = savestring (name, namlen);
- if (type == NULL)
- type = debug_make_void_type (dhandle);
- if (pvar != NULL)
- pvar->kind = IEEE_LOCAL;
- return debug_record_variable (dhandle, namcopy, type, DEBUG_REGISTER,
- ieee_regno_to_genreg (info->abfd, v));
-
- case 3:
- /* Static variable. */
- if (! ieee_require_asn (info, pp, &v))
- return FALSE;
- namcopy = savestring (name, namlen);
- if (type == NULL)
- type = debug_make_void_type (dhandle);
- if (info->blockstack.bsp <= info->blockstack.stack)
- blocktype = 0;
- else
- blocktype = info->blockstack.bsp[-1].kind;
- if (pvar != NULL)
- {
- if (blocktype == 4 || blocktype == 6)
- pvar->kind = IEEE_LOCAL;
- else
- pvar->kind = IEEE_STATIC;
- }
- return debug_record_variable (dhandle, namcopy, type,
- (blocktype == 4 || blocktype == 6
- ? DEBUG_LOCAL_STATIC
- : DEBUG_STATIC),
- v);
-
- case 4:
- /* External function. We don't currently record these. FIXME. */
- if (pvar != NULL)
- pvar->kind = IEEE_EXTERNAL;
- return TRUE;
-
- case 5:
- /* External variable. We don't currently record these. FIXME. */
- if (pvar != NULL)
- pvar->kind = IEEE_EXTERNAL;
- return TRUE;
-
- case 7:
- if (! ieee_read_number (info, pp, &v)
- || ! ieee_read_number (info, pp, &v2)
- || ! ieee_read_optional_number (info, pp, &v3, &present))
- return FALSE;
- if (present)
- {
- if (! ieee_read_optional_number (info, pp, &v4, &present))
- return FALSE;
- }
-
- /* We just ignore the two optional fields in v3 and v4, since
- they are not defined. */
-
- if (! ieee_require_asn (info, pp, &v3))
- return FALSE;
-
- /* We have no way to record the column number. FIXME. */
-
- return debug_record_line (dhandle, v, v3);
-
- case 8:
- /* Global variable. */
- if (! ieee_require_asn (info, pp, &v))
- return FALSE;
- namcopy = savestring (name, namlen);
- if (type == NULL)
- type = debug_make_void_type (dhandle);
- if (pvar != NULL)
- pvar->kind = IEEE_GLOBAL;
- return debug_record_variable (dhandle, namcopy, type, DEBUG_GLOBAL, v);
-
- case 9:
- /* Variable lifetime information. */
- if (! ieee_read_number (info, pp, &v))
- return FALSE;
-
- /* We have no way to record this information. FIXME. */
- return TRUE;
-
- case 10:
- /* Locked register. The spec says that there are two required
- fields, but at least on occasion the MRI compiler only emits
- one. */
- if (! ieee_read_number (info, pp, &v)
- || ! ieee_read_optional_number (info, pp, &v2, &present))
- return FALSE;
-
- /* I think this means a variable that is both in a register and
- a frame slot. We ignore the frame slot. FIXME. */
-
- namcopy = savestring (name, namlen);
- if (type == NULL)
- type = debug_make_void_type (dhandle);
- if (pvar != NULL)
- pvar->kind = IEEE_LOCAL;
- return debug_record_variable (dhandle, namcopy, type, DEBUG_REGISTER, v);
-
- case 11:
- /* Reserved for FORTRAN common. */
- ieee_error (info, atn_code_start, _("unsupported ATN11"));
-
- /* Return TRUE to keep going. */
- return TRUE;
-
- case 12:
- /* Based variable. */
- v3 = 0;
- v4 = 0x80;
- v5 = 0;
- if (! ieee_read_number (info, pp, &v)
- || ! ieee_read_number (info, pp, &v2)
- || ! ieee_read_optional_number (info, pp, &v3, &present))
- return FALSE;
- if (present)
- {
- if (! ieee_read_optional_number (info, pp, &v4, &present))
- return FALSE;
- if (present)
- {
- if (! ieee_read_optional_number (info, pp, &v5, &present))
- return FALSE;
- }
- }
-
- /* We have no way to record this information. FIXME. */
-
- ieee_error (info, atn_code_start, _("unsupported ATN12"));
-
- /* Return TRUE to keep going. */
- return TRUE;
-
- case 16:
- /* Constant. The description of this that I have is ambiguous,
- so I'm not going to try to implement it. */
- if (! ieee_read_number (info, pp, &v)
- || ! ieee_read_optional_number (info, pp, &v2, &present))
- return FALSE;
- if (present)
- {
- if (! ieee_read_optional_number (info, pp, &v2, &present))
- return FALSE;
- if (present)
- {
- if (! ieee_read_optional_id (info, pp, &name, &namlen, &present))
- return FALSE;
- }
- }
-
- if ((ieee_record_enum_type) **pp == ieee_e2_first_byte_enum)
- {
- if (! ieee_require_asn (info, pp, &v3))
- return FALSE;
- }
-
- return TRUE;
-
- case 19:
- /* Static variable from assembler. */
- v2 = 0;
- if (! ieee_read_number (info, pp, &v)
- || ! ieee_read_optional_number (info, pp, &v2, &present)
- || ! ieee_require_asn (info, pp, &v3))
- return FALSE;
- namcopy = savestring (name, namlen);
- /* We don't really handle this correctly. FIXME. */
- return debug_record_variable (dhandle, namcopy,
- debug_make_void_type (dhandle),
- v2 != 0 ? DEBUG_GLOBAL : DEBUG_STATIC,
- v3);
-
- case 62:
- /* Procedure miscellaneous information. */
- case 63:
- /* Variable miscellaneous information. */
- case 64:
- /* Module miscellaneous information. */
- if (! ieee_read_number (info, pp, &v)
- || ! ieee_read_number (info, pp, &v2)
- || ! ieee_read_optional_id (info, pp, &name, &namlen, &present))
- return FALSE;
-
- if (atn_code == 62 && v == 80)
- {
- if (present)
- {
- ieee_error (info, atn_code_start,
- _("unexpected string in C++ misc"));
- return FALSE;
- }
- return ieee_read_cxx_misc (info, pp, v2);
- }
-
- /* We just ignore all of this stuff. FIXME. */
-
- for (; v2 > 0; --v2)
- {
- switch ((ieee_record_enum_type) **pp)
- {
- default:
- ieee_error (info, *pp, _("bad misc record"));
- return FALSE;
-
- case ieee_at_record_enum:
- if (! ieee_require_atn65 (info, pp, &name, &namlen))
- return FALSE;
- break;
-
- case ieee_e2_first_byte_enum:
- if (! ieee_require_asn (info, pp, &v3))
- return FALSE;
- break;
- }
- }
-
- return TRUE;
- }
-
- /*NOTREACHED*/
-}
-
-/* Handle C++ debugging miscellaneous records. This is called for
- procedure miscellaneous records of type 80. */
-
-static bfd_boolean
-ieee_read_cxx_misc (struct ieee_info *info, const bfd_byte **pp,
- unsigned long count)
-{
- const bfd_byte *start;
- bfd_vma category;
-
- start = *pp;
-
- /* Get the category of C++ misc record. */
- if (! ieee_require_asn (info, pp, &category))
- return FALSE;
- --count;
-
- switch (category)
- {
- default:
- ieee_error (info, start, _("unrecognized C++ misc record"));
- return FALSE;
-
- case 'T':
- if (! ieee_read_cxx_class (info, pp, count))
- return FALSE;
- break;
-
- case 'M':
- {
- bfd_vma flags;
- const char *name;
- unsigned long namlen;
-
- /* The IEEE spec indicates that the 'M' record only has a
- flags field. The MRI compiler also emits the name of the
- function. */
-
- if (! ieee_require_asn (info, pp, &flags))
- return FALSE;
- if (*pp < info->pend
- && (ieee_record_enum_type) **pp == ieee_at_record_enum)
- {
- if (! ieee_require_atn65 (info, pp, &name, &namlen))
- return FALSE;
- }
-
- /* This is emitted for method functions, but I don't think we
- care very much. It might help if it told us useful
- information like the class with which this function is
- associated, but it doesn't, so it isn't helpful. */
- }
- break;
-
- case 'B':
- if (! ieee_read_cxx_defaults (info, pp, count))
- return FALSE;
- break;
-
- case 'z':
- {
- const char *name, *mangled, *class;
- unsigned long namlen, mangledlen, classlen;
- bfd_vma control;
-
- /* Pointer to member. */
-
- if (! ieee_require_atn65 (info, pp, &name, &namlen)
- || ! ieee_require_atn65 (info, pp, &mangled, &mangledlen)
- || ! ieee_require_atn65 (info, pp, &class, &classlen)
- || ! ieee_require_asn (info, pp, &control))
- return FALSE;
-
- /* FIXME: We should now track down name and change its type. */
- }
- break;
-
- case 'R':
- if (! ieee_read_reference (info, pp))
- return FALSE;
- break;
- }
-
- return TRUE;
-}
-
-/* Read a C++ class definition. This is a pmisc type 80 record of
- category 'T'. */
-
-static bfd_boolean
-ieee_read_cxx_class (struct ieee_info *info, const bfd_byte **pp,
- unsigned long count)
-{
- const bfd_byte *start;
- bfd_vma class;
- const char *tag;
- unsigned long taglen;
- struct ieee_tag *it;
- void *dhandle;
- debug_field *fields;
- unsigned int field_count, field_alloc;
- debug_baseclass *baseclasses;
- unsigned int baseclasses_count, baseclasses_alloc;
- const debug_field *structfields;
- struct ieee_method
- {
- const char *name;
- unsigned long namlen;
- debug_method_variant *variants;
- unsigned count;
- unsigned int alloc;
- } *methods;
- unsigned int methods_count, methods_alloc;
- debug_type vptrbase;
- bfd_boolean ownvptr;
- debug_method *dmethods;
-
- start = *pp;
-
- if (! ieee_require_asn (info, pp, &class))
- return FALSE;
- --count;
-
- if (! ieee_require_atn65 (info, pp, &tag, &taglen))
- return FALSE;
- --count;
-
- /* Find the C struct with this name. */
- for (it = info->tags; it != NULL; it = it->next)
- if (it->name[0] == tag[0]
- && strncmp (it->name, tag, taglen) == 0
- && strlen (it->name) == taglen)
- break;
- if (it == NULL)
- {
- ieee_error (info, start, _("undefined C++ object"));
- return FALSE;
- }
-
- dhandle = info->dhandle;
-
- fields = NULL;
- field_count = 0;
- field_alloc = 0;
- baseclasses = NULL;
- baseclasses_count = 0;
- baseclasses_alloc = 0;
- methods = NULL;
- methods_count = 0;
- methods_alloc = 0;
- vptrbase = DEBUG_TYPE_NULL;
- ownvptr = FALSE;
-
- structfields = debug_get_fields (dhandle, it->type);
-
- while (count > 0)
- {
- bfd_vma id;
- const bfd_byte *spec_start;
-
- spec_start = *pp;
-
- if (! ieee_require_asn (info, pp, &id))
- return FALSE;
- --count;
-
- switch (id)
- {
- default:
- ieee_error (info, spec_start, _("unrecognized C++ object spec"));
- return FALSE;
-
- case 'b':
- {
- bfd_vma flags, cinline;
- const char *basename, *fieldname;
- unsigned long baselen, fieldlen;
- char *basecopy;
- debug_type basetype;
- bfd_vma bitpos;
- bfd_boolean virtualp;
- enum debug_visibility visibility;
- debug_baseclass baseclass;
-
- /* This represents a base or friend class. */
-
- if (! ieee_require_asn (info, pp, &flags)
- || ! ieee_require_atn65 (info, pp, &basename, &baselen)
- || ! ieee_require_asn (info, pp, &cinline)
- || ! ieee_require_atn65 (info, pp, &fieldname, &fieldlen))
- return FALSE;
- count -= 4;
-
- /* We have no way of recording friend information, so we
- just ignore it. */
- if ((flags & BASEFLAGS_FRIEND) != 0)
- break;
-
- /* I assume that either all of the members of the
- baseclass are included in the object, starting at the
- beginning of the object, or that none of them are
- included. */
-
- if ((fieldlen == 0) == (cinline == 0))
- {
- ieee_error (info, start, _("unsupported C++ object type"));
- return FALSE;
- }
-
- basecopy = savestring (basename, baselen);
- basetype = debug_find_tagged_type (dhandle, basecopy,
- DEBUG_KIND_ILLEGAL);
- free (basecopy);
- if (basetype == DEBUG_TYPE_NULL)
- {
- ieee_error (info, start, _("C++ base class not defined"));
- return FALSE;
- }
-
- if (fieldlen == 0)
- bitpos = 0;
- else
- {
- const debug_field *pf;
-
- if (structfields == NULL)
- {
- ieee_error (info, start, _("C++ object has no fields"));
- return FALSE;
- }
-
- for (pf = structfields; *pf != DEBUG_FIELD_NULL; pf++)
- {
- const char *fname;
-
- fname = debug_get_field_name (dhandle, *pf);
- if (fname == NULL)
- return FALSE;
- if (fname[0] == fieldname[0]
- && strncmp (fname, fieldname, fieldlen) == 0
- && strlen (fname) == fieldlen)
- break;
- }
- if (*pf == DEBUG_FIELD_NULL)
- {
- ieee_error (info, start,
- _("C++ base class not found in container"));
- return FALSE;
- }
-
- bitpos = debug_get_field_bitpos (dhandle, *pf);
- }
-
- if ((flags & BASEFLAGS_VIRTUAL) != 0)
- virtualp = TRUE;
- else
- virtualp = FALSE;
- if ((flags & BASEFLAGS_PRIVATE) != 0)
- visibility = DEBUG_VISIBILITY_PRIVATE;
- else
- visibility = DEBUG_VISIBILITY_PUBLIC;
-
- baseclass = debug_make_baseclass (dhandle, basetype, bitpos,
- virtualp, visibility);
- if (baseclass == DEBUG_BASECLASS_NULL)
- return FALSE;
-
- if (baseclasses_count + 1 >= baseclasses_alloc)
- {
- baseclasses_alloc += 10;
- baseclasses = ((debug_baseclass *)
- xrealloc (baseclasses,
- (baseclasses_alloc
- * sizeof *baseclasses)));
- }
-
- baseclasses[baseclasses_count] = baseclass;
- ++baseclasses_count;
- baseclasses[baseclasses_count] = DEBUG_BASECLASS_NULL;
- }
- break;
-
- case 'd':
- {
- bfd_vma flags;
- const char *fieldname, *mangledname;
- unsigned long fieldlen, mangledlen;
- char *fieldcopy;
- bfd_boolean staticp;
- debug_type ftype;
- const debug_field *pf = NULL;
- enum debug_visibility visibility;
- debug_field field;
-
- /* This represents a data member. */
-
- if (! ieee_require_asn (info, pp, &flags)
- || ! ieee_require_atn65 (info, pp, &fieldname, &fieldlen)
- || ! ieee_require_atn65 (info, pp, &mangledname, &mangledlen))
- return FALSE;
- count -= 3;
-
- fieldcopy = savestring (fieldname, fieldlen);
-
- staticp = (flags & CXXFLAGS_STATIC) != 0 ? TRUE : FALSE;
-
- if (staticp)
- {
- struct ieee_var *pv, *pvend;
-
- /* See if we can find a definition for this variable. */
- pv = info->vars.vars;
- pvend = pv + info->vars.alloc;
- for (; pv < pvend; pv++)
- if (pv->namlen == mangledlen
- && strncmp (pv->name, mangledname, mangledlen) == 0)
- break;
- if (pv < pvend)
- ftype = pv->type;
- else
- {
- /* This can happen if the variable is never used. */
- ftype = ieee_builtin_type (info, start,
- (unsigned int) builtin_void);
- }
- }
- else
- {
- unsigned int findx;
-
- if (structfields == NULL)
- {
- ieee_error (info, start, _("C++ object has no fields"));
- return FALSE;
- }
-
- for (pf = structfields, findx = 0;
- *pf != DEBUG_FIELD_NULL;
- pf++, findx++)
- {
- const char *fname;
-
- fname = debug_get_field_name (dhandle, *pf);
- if (fname == NULL)
- return FALSE;
- if (fname[0] == mangledname[0]
- && strncmp (fname, mangledname, mangledlen) == 0
- && strlen (fname) == mangledlen)
- break;
- }
- if (*pf == DEBUG_FIELD_NULL)
- {
- ieee_error (info, start,
- _("C++ data member not found in container"));
- return FALSE;
- }
-
- ftype = debug_get_field_type (dhandle, *pf);
-
- if (debug_get_type_kind (dhandle, ftype) == DEBUG_KIND_POINTER)
- {
- /* We might need to convert this field into a
- reference type later on, so make it an indirect
- type. */
- if (it->fslots == NULL)
- {
- unsigned int fcnt;
- const debug_field *pfcnt;
-
- fcnt = 0;
- for (pfcnt = structfields;
- *pfcnt != DEBUG_FIELD_NULL;
- pfcnt++)
- ++fcnt;
- it->fslots = ((debug_type *)
- xmalloc (fcnt * sizeof *it->fslots));
- memset (it->fslots, 0,
- fcnt * sizeof *it->fslots);
- }
-
- if (ftype == DEBUG_TYPE_NULL)
- return FALSE;
- it->fslots[findx] = ftype;
- ftype = debug_make_indirect_type (dhandle,
- it->fslots + findx,
- (const char *) NULL);
- }
- }
- if (ftype == DEBUG_TYPE_NULL)
- return FALSE;
-
- switch (flags & CXXFLAGS_VISIBILITY)
- {
- default:
- ieee_error (info, start, _("unknown C++ visibility"));
- return FALSE;
-
- case CXXFLAGS_VISIBILITY_PUBLIC:
- visibility = DEBUG_VISIBILITY_PUBLIC;
- break;
-
- case CXXFLAGS_VISIBILITY_PRIVATE:
- visibility = DEBUG_VISIBILITY_PRIVATE;
- break;
-
- case CXXFLAGS_VISIBILITY_PROTECTED:
- visibility = DEBUG_VISIBILITY_PROTECTED;
- break;
- }
-
- if (staticp)
- {
- char *mangledcopy;
-
- mangledcopy = savestring (mangledname, mangledlen);
-
- field = debug_make_static_member (dhandle, fieldcopy,
- ftype, mangledcopy,
- visibility);
- }
- else
- {
- bfd_vma bitpos, bitsize;
-
- bitpos = debug_get_field_bitpos (dhandle, *pf);
- bitsize = debug_get_field_bitsize (dhandle, *pf);
- if (bitpos == (bfd_vma) -1 || bitsize == (bfd_vma) -1)
- {
- ieee_error (info, start, _("bad C++ field bit pos or size"));
- return FALSE;
- }
- field = debug_make_field (dhandle, fieldcopy, ftype, bitpos,
- bitsize, visibility);
- }
-
- if (field == DEBUG_FIELD_NULL)
- return FALSE;
-
- if (field_count + 1 >= field_alloc)
- {
- field_alloc += 10;
- fields = ((debug_field *)
- xrealloc (fields, field_alloc * sizeof *fields));
- }
-
- fields[field_count] = field;
- ++field_count;
- fields[field_count] = DEBUG_FIELD_NULL;
- }
- break;
-
- case 'm':
- case 'v':
- {
- bfd_vma flags, voffset, control;
- const char *name, *mangled;
- unsigned long namlen, mangledlen;
- struct ieee_var *pv, *pvend;
- debug_type type;
- enum debug_visibility visibility;
- bfd_boolean constp, volatilep;
- char *mangledcopy;
- debug_method_variant mv;
- struct ieee_method *meth;
- unsigned int im;
-
- if (! ieee_require_asn (info, pp, &flags)
- || ! ieee_require_atn65 (info, pp, &name, &namlen)
- || ! ieee_require_atn65 (info, pp, &mangled, &mangledlen))
- return FALSE;
- count -= 3;
- if (id != 'v')
- voffset = 0;
- else
- {
- if (! ieee_require_asn (info, pp, &voffset))
- return FALSE;
- --count;
- }
- if (! ieee_require_asn (info, pp, &control))
- return FALSE;
- --count;
-
- /* We just ignore the control information. */
-
- /* We have no way to represent friend information, so we
- just ignore it. */
- if ((flags & CXXFLAGS_FRIEND) != 0)
- break;
-
- /* We should already have seen a type for the function. */
- pv = info->vars.vars;
- pvend = pv + info->vars.alloc;
- for (; pv < pvend; pv++)
- if (pv->namlen == mangledlen
- && strncmp (pv->name, mangled, mangledlen) == 0)
- break;
-
- if (pv >= pvend)
- {
- /* We won't have type information for this function if
- it is not included in this file. We don't try to
- handle this case. FIXME. */
- type = (debug_make_function_type
- (dhandle,
- ieee_builtin_type (info, start,
- (unsigned int) builtin_void),
- (debug_type *) NULL,
- FALSE));
- }
- else
- {
- debug_type return_type;
- const debug_type *arg_types;
- bfd_boolean varargs;
-
- if (debug_get_type_kind (dhandle, pv->type)
- != DEBUG_KIND_FUNCTION)
- {
- ieee_error (info, start,
- _("bad type for C++ method function"));
- return FALSE;
- }
-
- return_type = debug_get_return_type (dhandle, pv->type);
- arg_types = debug_get_parameter_types (dhandle, pv->type,
- &varargs);
- if (return_type == DEBUG_TYPE_NULL || arg_types == NULL)
- {
- ieee_error (info, start,
- _("no type information for C++ method function"));
- return FALSE;
- }
-
- type = debug_make_method_type (dhandle, return_type, it->type,
- (debug_type *) arg_types,
- varargs);
- }
- if (type == DEBUG_TYPE_NULL)
- return FALSE;
-
- switch (flags & CXXFLAGS_VISIBILITY)
- {
- default:
- ieee_error (info, start, _("unknown C++ visibility"));
- return FALSE;
-
- case CXXFLAGS_VISIBILITY_PUBLIC:
- visibility = DEBUG_VISIBILITY_PUBLIC;
- break;
-
- case CXXFLAGS_VISIBILITY_PRIVATE:
- visibility = DEBUG_VISIBILITY_PRIVATE;
- break;
-
- case CXXFLAGS_VISIBILITY_PROTECTED:
- visibility = DEBUG_VISIBILITY_PROTECTED;
- break;
- }
-
- constp = (flags & CXXFLAGS_CONST) != 0 ? TRUE : FALSE;
- volatilep = (flags & CXXFLAGS_VOLATILE) != 0 ? TRUE : FALSE;
-
- mangledcopy = savestring (mangled, mangledlen);
-
- if ((flags & CXXFLAGS_STATIC) != 0)
- {
- if (id == 'v')
- {
- ieee_error (info, start, _("C++ static virtual method"));
- return FALSE;
- }
- mv = debug_make_static_method_variant (dhandle, mangledcopy,
- type, visibility,
- constp, volatilep);
- }
- else
- {
- debug_type vcontext;
-
- if (id != 'v')
- vcontext = DEBUG_TYPE_NULL;
- else
- {
- /* FIXME: How can we calculate this correctly? */
- vcontext = it->type;
- }
- mv = debug_make_method_variant (dhandle, mangledcopy, type,
- visibility, constp,
- volatilep, voffset,
- vcontext);
- }
- if (mv == DEBUG_METHOD_VARIANT_NULL)
- return FALSE;
-
- for (meth = methods, im = 0; im < methods_count; meth++, im++)
- if (meth->namlen == namlen
- && strncmp (meth->name, name, namlen) == 0)
- break;
- if (im >= methods_count)
- {
- if (methods_count >= methods_alloc)
- {
- methods_alloc += 10;
- methods = ((struct ieee_method *)
- xrealloc (methods,
- methods_alloc * sizeof *methods));
- }
- methods[methods_count].name = name;
- methods[methods_count].namlen = namlen;
- methods[methods_count].variants = NULL;
- methods[methods_count].count = 0;
- methods[methods_count].alloc = 0;
- meth = methods + methods_count;
- ++methods_count;
- }
-
- if (meth->count + 1 >= meth->alloc)
- {
- meth->alloc += 10;
- meth->variants = ((debug_method_variant *)
- xrealloc (meth->variants,
- (meth->alloc
- * sizeof *meth->variants)));
- }
-
- meth->variants[meth->count] = mv;
- ++meth->count;
- meth->variants[meth->count] = DEBUG_METHOD_VARIANT_NULL;
- }
- break;
-
- case 'o':
- {
- bfd_vma spec;
-
- /* We have no way to store this information, so we just
- ignore it. */
- if (! ieee_require_asn (info, pp, &spec))
- return FALSE;
- --count;
- if ((spec & 4) != 0)
- {
- const char *filename;
- unsigned long filenamlen;
- bfd_vma lineno;
-
- if (! ieee_require_atn65 (info, pp, &filename, &filenamlen)
- || ! ieee_require_asn (info, pp, &lineno))
- return FALSE;
- count -= 2;
- }
- else if ((spec & 8) != 0)
- {
- const char *mangled;
- unsigned long mangledlen;
-
- if (! ieee_require_atn65 (info, pp, &mangled, &mangledlen))
- return FALSE;
- --count;
- }
- else
- {
- ieee_error (info, start,
- _("unrecognized C++ object overhead spec"));
- return FALSE;
- }
- }
- break;
-
- case 'z':
- {
- const char *vname, *basename;
- unsigned long vnamelen, baselen;
- bfd_vma vsize, control;
-
- /* A virtual table pointer. */
-
- if (! ieee_require_atn65 (info, pp, &vname, &vnamelen)
- || ! ieee_require_asn (info, pp, &vsize)
- || ! ieee_require_atn65 (info, pp, &basename, &baselen)
- || ! ieee_require_asn (info, pp, &control))
- return FALSE;
- count -= 4;
-
- /* We just ignore the control number. We don't care what
- the virtual table name is. We have no way to store the
- virtual table size, and I don't think we care anyhow. */
-
- /* FIXME: We can't handle multiple virtual table pointers. */
-
- if (baselen == 0)
- ownvptr = TRUE;
- else
- {
- char *basecopy;
-
- basecopy = savestring (basename, baselen);
- vptrbase = debug_find_tagged_type (dhandle, basecopy,
- DEBUG_KIND_ILLEGAL);
- free (basecopy);
- if (vptrbase == DEBUG_TYPE_NULL)
- {
- ieee_error (info, start, _("undefined C++ vtable"));
- return FALSE;
- }
- }
- }
- break;
- }
- }
-
- /* Now that we have seen all the method variants, we can call
- debug_make_method for each one. */
-
- if (methods_count == 0)
- dmethods = NULL;
- else
- {
- unsigned int i;
-
- dmethods = ((debug_method *)
- xmalloc ((methods_count + 1) * sizeof *dmethods));
- for (i = 0; i < methods_count; i++)
- {
- char *namcopy;
-
- namcopy = savestring (methods[i].name, methods[i].namlen);
- dmethods[i] = debug_make_method (dhandle, namcopy,
- methods[i].variants);
- if (dmethods[i] == DEBUG_METHOD_NULL)
- return FALSE;
- }
- dmethods[i] = DEBUG_METHOD_NULL;
- free (methods);
- }
-
- /* The struct type was created as an indirect type pointing at
- it->slot. We update it->slot to automatically update all
- references to this struct. */
- it->slot = debug_make_object_type (dhandle,
- class != 'u',
- debug_get_type_size (dhandle,
- it->slot),
- fields, baseclasses, dmethods,
- vptrbase, ownvptr);
- if (it->slot == DEBUG_TYPE_NULL)
- return FALSE;
-
- return TRUE;
-}
-
-/* Read C++ default argument value and reference type information. */
-
-static bfd_boolean
-ieee_read_cxx_defaults (struct ieee_info *info, const bfd_byte **pp,
- unsigned long count)
-{
- const bfd_byte *start;
- const char *fnname;
- unsigned long fnlen;
- bfd_vma defcount;
-
- start = *pp;
-
- /* Giving the function name before the argument count is an addendum
- to the spec. The function name is demangled, though, so this
- record must always refer to the current function. */
-
- if (info->blockstack.bsp <= info->blockstack.stack
- || info->blockstack.bsp[-1].fnindx == (unsigned int) -1)
- {
- ieee_error (info, start, _("C++ default values not in a function"));
- return FALSE;
- }
-
- if (! ieee_require_atn65 (info, pp, &fnname, &fnlen)
- || ! ieee_require_asn (info, pp, &defcount))
- return FALSE;
- count -= 2;
-
- while (defcount-- > 0)
- {
- bfd_vma type, val;
- const char *strval;
- unsigned long strvallen;
-
- if (! ieee_require_asn (info, pp, &type))
- return FALSE;
- --count;
-
- switch (type)
- {
- case 0:
- case 4:
- break;
-
- case 1:
- case 2:
- if (! ieee_require_asn (info, pp, &val))
- return FALSE;
- --count;
- break;
-
- case 3:
- case 7:
- if (! ieee_require_atn65 (info, pp, &strval, &strvallen))
- return FALSE;
- --count;
- break;
-
- default:
- ieee_error (info, start, _("unrecognized C++ default type"));
- return FALSE;
- }
-
- /* We have no way to record the default argument values, so we
- just ignore them. FIXME. */
- }
-
- /* Any remaining arguments are indices of parameters that are really
- reference type. */
- if (count > 0)
- {
- void *dhandle;
- debug_type *arg_slots;
-
- dhandle = info->dhandle;
- arg_slots = info->types.types[info->blockstack.bsp[-1].fnindx].arg_slots;
- while (count-- > 0)
- {
- bfd_vma indx;
- debug_type target;
-
- if (! ieee_require_asn (info, pp, &indx))
- return FALSE;
- /* The index is 1 based. */
- --indx;
- if (arg_slots == NULL
- || arg_slots[indx] == DEBUG_TYPE_NULL
- || (debug_get_type_kind (dhandle, arg_slots[indx])
- != DEBUG_KIND_POINTER))
- {
- ieee_error (info, start, _("reference parameter is not a pointer"));
- return FALSE;
- }
-
- target = debug_get_target_type (dhandle, arg_slots[indx]);
- arg_slots[indx] = debug_make_reference_type (dhandle, target);
- if (arg_slots[indx] == DEBUG_TYPE_NULL)
- return FALSE;
- }
- }
-
- return TRUE;
-}
-
-/* Read a C++ reference definition. */
-
-static bfd_boolean
-ieee_read_reference (struct ieee_info *info, const bfd_byte **pp)
-{
- const bfd_byte *start;
- bfd_vma flags;
- const char *class, *name;
- unsigned long classlen, namlen;
- debug_type *pslot;
- debug_type target;
-
- start = *pp;
-
- if (! ieee_require_asn (info, pp, &flags))
- return FALSE;
-
- /* Giving the class name before the member name is in an addendum to
- the spec. */
- if (flags == 3)
- {
- if (! ieee_require_atn65 (info, pp, &class, &classlen))
- return FALSE;
- }
-
- if (! ieee_require_atn65 (info, pp, &name, &namlen))
- return FALSE;
-
- pslot = NULL;
- if (flags != 3)
- {
- int pass;
-
- /* We search from the last variable indices to the first in
- hopes of finding local variables correctly. We search the
- local variables on the first pass, and the global variables
- on the second. FIXME: This probably won't work in all cases.
- On the other hand, I don't know what will. */
- for (pass = 0; pass < 2; pass++)
- {
- struct ieee_vars *vars;
- int i;
- struct ieee_var *pv = NULL;
-
- if (pass == 0)
- vars = &info->vars;
- else
- {
- vars = info->global_vars;
- if (vars == NULL)
- break;
- }
-
- for (i = (int) vars->alloc - 1; i >= 0; i--)
- {
- bfd_boolean found;
-
- pv = vars->vars + i;
-
- if (pv->pslot == NULL
- || pv->namlen != namlen
- || strncmp (pv->name, name, namlen) != 0)
- continue;
-
- found = FALSE;
- switch (flags)
- {
- default:
- ieee_error (info, start,
- _("unrecognized C++ reference type"));
- return FALSE;
-
- case 0:
- /* Global variable or function. */
- if (pv->kind == IEEE_GLOBAL
- || pv->kind == IEEE_EXTERNAL
- || pv->kind == IEEE_FUNCTION)
- found = TRUE;
- break;
-
- case 1:
- /* Global static variable or function. */
- if (pv->kind == IEEE_STATIC
- || pv->kind == IEEE_FUNCTION)
- found = TRUE;
- break;
-
- case 2:
- /* Local variable. */
- if (pv->kind == IEEE_LOCAL)
- found = TRUE;
- break;
- }
-
- if (found)
- break;
- }
-
- if (i >= 0)
- {
- pslot = pv->pslot;
- break;
- }
- }
- }
- else
- {
- struct ieee_tag *it;
-
- for (it = info->tags; it != NULL; it = it->next)
- {
- if (it->name[0] == class[0]
- && strncmp (it->name, class, classlen) == 0
- && strlen (it->name) == classlen)
- {
- if (it->fslots != NULL)
- {
- const debug_field *pf;
- unsigned int findx;
-
- pf = debug_get_fields (info->dhandle, it->type);
- if (pf == NULL)
- {
- ieee_error (info, start,
- "C++ reference in class with no fields");
- return FALSE;
- }
-
- for (findx = 0; *pf != DEBUG_FIELD_NULL; pf++, findx++)
- {
- const char *fname;
-
- fname = debug_get_field_name (info->dhandle, *pf);
- if (fname == NULL)
- return FALSE;
- if (strncmp (fname, name, namlen) == 0
- && strlen (fname) == namlen)
- {
- pslot = it->fslots + findx;
- break;
- }
- }
- }
-
- break;
- }
- }
- }
-
- if (pslot == NULL)
- {
- ieee_error (info, start, _("C++ reference not found"));
- return FALSE;
- }
-
- /* We allocated the type of the object as an indirect type pointing
- to *pslot, which we can now update to be a reference type. */
- if (debug_get_type_kind (info->dhandle, *pslot) != DEBUG_KIND_POINTER)
- {
- ieee_error (info, start, _("C++ reference is not pointer"));
- return FALSE;
- }
-
- target = debug_get_target_type (info->dhandle, *pslot);
- *pslot = debug_make_reference_type (info->dhandle, target);
- if (*pslot == DEBUG_TYPE_NULL)
- return FALSE;
-
- return TRUE;
-}
-
-/* Require an ASN record. */
-
-static bfd_boolean
-ieee_require_asn (struct ieee_info *info, const bfd_byte **pp, bfd_vma *pv)
-{
- const bfd_byte *start;
- ieee_record_enum_type c;
- bfd_vma varindx;
-
- start = *pp;
-
- c = (ieee_record_enum_type) **pp;
- if (c != ieee_e2_first_byte_enum)
- {
- ieee_error (info, start, _("missing required ASN"));
- return FALSE;
- }
- ++*pp;
-
- c = (ieee_record_enum_type) (((unsigned int) c << 8) | **pp);
- if (c != ieee_asn_record_enum)
- {
- ieee_error (info, start, _("missing required ASN"));
- return FALSE;
- }
- ++*pp;
-
- /* Just ignore the variable index. */
- if (! ieee_read_number (info, pp, &varindx))
- return FALSE;
-
- return ieee_read_expression (info, pp, pv);
-}
-
-/* Require an ATN65 record. */
-
-static bfd_boolean
-ieee_require_atn65 (struct ieee_info *info, const bfd_byte **pp,
- const char **pname, unsigned long *pnamlen)
-{
- const bfd_byte *start;
- ieee_record_enum_type c;
- bfd_vma name_indx, type_indx, atn_code;
-
- start = *pp;
-
- c = (ieee_record_enum_type) **pp;
- if (c != ieee_at_record_enum)
- {
- ieee_error (info, start, _("missing required ATN65"));
- return FALSE;
- }
- ++*pp;
-
- c = (ieee_record_enum_type) (((unsigned int) c << 8) | **pp);
- if (c != ieee_atn_record_enum)
- {
- ieee_error (info, start, _("missing required ATN65"));
- return FALSE;
- }
- ++*pp;
-
- if (! ieee_read_number (info, pp, &name_indx)
- || ! ieee_read_number (info, pp, &type_indx)
- || ! ieee_read_number (info, pp, &atn_code))
- return FALSE;
-
- /* Just ignore name_indx. */
-
- if (type_indx != 0 || atn_code != 65)
- {
- ieee_error (info, start, _("bad ATN65 record"));
- return FALSE;
- }
-
- return ieee_read_id (info, pp, pname, pnamlen);
-}
-
-/* Convert a register number in IEEE debugging information into a
- generic register number. */
-
-static int
-ieee_regno_to_genreg (bfd *abfd, int r)
-{
- switch (bfd_get_arch (abfd))
- {
- case bfd_arch_m68k:
- /* For some reasons stabs adds 2 to the floating point register
- numbers. */
- if (r >= 16)
- r += 2;
- break;
-
- case bfd_arch_i960:
- /* Stabs uses 0 to 15 for r0 to r15, 16 to 31 for g0 to g15, and
- 32 to 35 for fp0 to fp3. */
- --r;
- break;
-
- default:
- break;
- }
-
- return r;
-}
-
-/* Convert a generic register number to an IEEE specific one. */
-
-static int
-ieee_genreg_to_regno (bfd *abfd, int r)
-{
- switch (bfd_get_arch (abfd))
- {
- case bfd_arch_m68k:
- /* For some reason stabs add 2 to the floating point register
- numbers. */
- if (r >= 18)
- r -= 2;
- break;
-
- case bfd_arch_i960:
- /* Stabs uses 0 to 15 for r0 to r15, 16 to 31 for g0 to g15, and
- 32 to 35 for fp0 to fp3. */
- ++r;
- break;
-
- default:
- break;
- }
-
- return r;
-}
-
-/* These routines build IEEE debugging information out of the generic
- debugging information. */
-
-/* We build the IEEE debugging information byte by byte. Rather than
- waste time copying data around, we use a linked list of buffers to
- hold the data. */
-
-#define IEEE_BUFSIZE (490)
-
-struct ieee_buf
-{
- /* Next buffer. */
- struct ieee_buf *next;
- /* Number of data bytes in this buffer. */
- unsigned int c;
- /* Bytes. */
- bfd_byte buf[IEEE_BUFSIZE];
-};
-
-/* A list of buffers. */
-
-struct ieee_buflist
-{
- /* Head of list. */
- struct ieee_buf *head;
- /* Tail--last buffer on list. */
- struct ieee_buf *tail;
-};
-
-/* In order to generate the BB11 blocks required by the HP emulator,
- we keep track of ranges of addresses which correspond to a given
- compilation unit. */
-
-struct ieee_range
-{
- /* Next range. */
- struct ieee_range *next;
- /* Low address. */
- bfd_vma low;
- /* High address. */
- bfd_vma high;
-};
-
-/* This structure holds information for a class on the type stack. */
-
-struct ieee_type_class
-{
- /* The name index in the debugging information. */
- unsigned int indx;
- /* The pmisc records for the class. */
- struct ieee_buflist pmiscbuf;
- /* The number of pmisc records. */
- unsigned int pmisccount;
- /* The name of the class holding the virtual table, if not this
- class. */
- const char *vclass;
- /* Whether this class holds its own virtual table. */
- bfd_boolean ownvptr;
- /* The largest virtual table offset seen so far. */
- bfd_vma voffset;
- /* The current method. */
- const char *method;
- /* Additional pmisc records used to record fields of reference type. */
- struct ieee_buflist refs;
-};
-
-/* This is how we store types for the writing routines. Most types
- are simply represented by a type index. */
-
-struct ieee_write_type
-{
- /* Type index. */
- unsigned int indx;
- /* The size of the type, if known. */
- unsigned int size;
- /* The name of the type, if any. */
- const char *name;
- /* If this is a function or method type, we build the type here, and
- only add it to the output buffers if we need it. */
- struct ieee_buflist fndef;
- /* If this is a struct, this is where the struct definition is
- built. */
- struct ieee_buflist strdef;
- /* If this is a class, this is where the class information is built. */
- struct ieee_type_class *classdef;
- /* Whether the type is unsigned. */
- unsigned int unsignedp : 1;
- /* Whether this is a reference type. */
- unsigned int referencep : 1;
- /* Whether this is in the local type block. */
- unsigned int localp : 1;
- /* Whether this is a duplicate struct definition which we are
- ignoring. */
- unsigned int ignorep : 1;
-};
-
-/* This is the type stack used by the debug writing routines. FIXME:
- We could generate more efficient output if we remembered when we
- have output a particular type before. */
-
-struct ieee_type_stack
-{
- /* Next entry on stack. */
- struct ieee_type_stack *next;
- /* Type information. */
- struct ieee_write_type type;
-};
-
-/* This is a list of associations between a name and some types.
- These are used for typedefs and tags. */
-
-struct ieee_name_type
-{
- /* Next type for this name. */
- struct ieee_name_type *next;
- /* ID number. For a typedef, this is the index of the type to which
- this name is typedefed. */
- unsigned int id;
- /* Type. */
- struct ieee_write_type type;
- /* If this is a tag which has not yet been defined, this is the
- kind. If the tag has been defined, this is DEBUG_KIND_ILLEGAL. */
- enum debug_type_kind kind;
-};
-
-/* We use a hash table to associate names and types. */
-
-struct ieee_name_type_hash_table
-{
- struct bfd_hash_table root;
-};
-
-struct ieee_name_type_hash_entry
-{
- struct bfd_hash_entry root;
- /* Information for this name. */
- struct ieee_name_type *types;
-};
-
-/* This is a list of enums. */
-
-struct ieee_defined_enum
-{
- /* Next enum. */
- struct ieee_defined_enum *next;
- /* Type index. */
- unsigned int indx;
- /* Whether this enum has been defined. */
- bfd_boolean defined;
- /* Tag. */
- const char *tag;
- /* Names. */
- const char **names;
- /* Values. */
- bfd_signed_vma *vals;
-};
-
-/* We keep a list of modified versions of types, so that we don't
- output them more than once. */
-
-struct ieee_modified_type
-{
- /* Pointer to this type. */
- unsigned int pointer;
- /* Function with unknown arguments returning this type. */
- unsigned int function;
- /* Const version of this type. */
- unsigned int const_qualified;
- /* Volatile version of this type. */
- unsigned int volatile_qualified;
- /* List of arrays of this type of various bounds. */
- struct ieee_modified_array_type *arrays;
-};
-
-/* A list of arrays bounds. */
-
-struct ieee_modified_array_type
-{
- /* Next array bounds. */
- struct ieee_modified_array_type *next;
- /* Type index with these bounds. */
- unsigned int indx;
- /* Low bound. */
- bfd_signed_vma low;
- /* High bound. */
- bfd_signed_vma high;
-};
-
-/* This is a list of pending function parameter information. We don't
- output them until we see the first block. */
-
-struct ieee_pending_parm
-{
- /* Next pending parameter. */
- struct ieee_pending_parm *next;
- /* Name. */
- const char *name;
- /* Type index. */
- unsigned int type;
- /* Whether the type is a reference. */
- bfd_boolean referencep;
- /* Kind. */
- enum debug_parm_kind kind;
- /* Value. */
- bfd_vma val;
-};
-
-/* This is the handle passed down by debug_write. */
-
-struct ieee_handle
-{
- /* BFD we are writing to. */
- bfd *abfd;
- /* Whether we got an error in a subroutine called via traverse or
- map_over_sections. */
- bfd_boolean error;
- /* Current data buffer list. */
- struct ieee_buflist *current;
- /* Current data buffer. */
- struct ieee_buf *curbuf;
- /* Filename of current compilation unit. */
- const char *filename;
- /* Module name of current compilation unit. */
- const char *modname;
- /* List of buffer for global types. */
- struct ieee_buflist global_types;
- /* List of finished data buffers. */
- struct ieee_buflist data;
- /* List of buffers for typedefs in the current compilation unit. */
- struct ieee_buflist types;
- /* List of buffers for variables and functions in the current
- compilation unit. */
- struct ieee_buflist vars;
- /* List of buffers for C++ class definitions in the current
- compilation unit. */
- struct ieee_buflist cxx;
- /* List of buffers for line numbers in the current compilation unit. */
- struct ieee_buflist linenos;
- /* Ranges for the current compilation unit. */
- struct ieee_range *ranges;
- /* Ranges for all debugging information. */
- struct ieee_range *global_ranges;
- /* Nested pending ranges. */
- struct ieee_range *pending_ranges;
- /* Type stack. */
- struct ieee_type_stack *type_stack;
- /* Next unallocated type index. */
- unsigned int type_indx;
- /* Next unallocated name index. */
- unsigned int name_indx;
- /* Typedefs. */
- struct ieee_name_type_hash_table typedefs;
- /* Tags. */
- struct ieee_name_type_hash_table tags;
- /* Enums. */
- struct ieee_defined_enum *enums;
- /* Modified versions of types. */
- struct ieee_modified_type *modified;
- /* Number of entries allocated in modified. */
- unsigned int modified_alloc;
- /* 4 byte complex type. */
- unsigned int complex_float_index;
- /* 8 byte complex type. */
- unsigned int complex_double_index;
- /* The depth of block nesting. This is 0 outside a function, and 1
- just after start_function is called. */
- unsigned int block_depth;
- /* The name of the current function. */
- const char *fnname;
- /* List of buffers for the type of the function we are currently
- writing out. */
- struct ieee_buflist fntype;
- /* List of buffers for the parameters of the function we are
- currently writing out. */
- struct ieee_buflist fnargs;
- /* Number of arguments written to fnargs. */
- unsigned int fnargcount;
- /* Pending function parameters. */
- struct ieee_pending_parm *pending_parms;
- /* Current line number filename. */
- const char *lineno_filename;
- /* Line number name index. */
- unsigned int lineno_name_indx;
- /* Filename of pending line number. */
- const char *pending_lineno_filename;
- /* Pending line number. */
- unsigned long pending_lineno;
- /* Address of pending line number. */
- bfd_vma pending_lineno_addr;
- /* Highest address seen at end of procedure. */
- bfd_vma highaddr;
-};
-
-static bfd_boolean ieee_init_buffer
- (struct ieee_handle *, struct ieee_buflist *);
-static bfd_boolean ieee_change_buffer
- (struct ieee_handle *, struct ieee_buflist *);
-static bfd_boolean ieee_append_buffer
- (struct ieee_handle *, struct ieee_buflist *, struct ieee_buflist *);
-static bfd_boolean ieee_real_write_byte (struct ieee_handle *, int);
-static bfd_boolean ieee_write_2bytes (struct ieee_handle *, int);
-static bfd_boolean ieee_write_number (struct ieee_handle *, bfd_vma);
-static bfd_boolean ieee_write_id (struct ieee_handle *, const char *);
-static bfd_boolean ieee_write_asn
- (struct ieee_handle *, unsigned int, bfd_vma);
-static bfd_boolean ieee_write_atn65
- (struct ieee_handle *, unsigned int, const char *);
-static bfd_boolean ieee_push_type
- (struct ieee_handle *, unsigned int, unsigned int, bfd_boolean,
- bfd_boolean);
-static unsigned int ieee_pop_type (struct ieee_handle *);
-static void ieee_pop_unused_type (struct ieee_handle *);
-static unsigned int ieee_pop_type_used (struct ieee_handle *, bfd_boolean);
-static bfd_boolean ieee_add_range
- (struct ieee_handle *, bfd_boolean, bfd_vma, bfd_vma);
-static bfd_boolean ieee_start_range (struct ieee_handle *, bfd_vma);
-static bfd_boolean ieee_end_range (struct ieee_handle *, bfd_vma);
-static bfd_boolean ieee_define_type
- (struct ieee_handle *, unsigned int, bfd_boolean, bfd_boolean);
-static bfd_boolean ieee_define_named_type
- (struct ieee_handle *, const char *, unsigned int, unsigned int,
- bfd_boolean, bfd_boolean, struct ieee_buflist *);
-static struct ieee_modified_type *ieee_get_modified_info
- (struct ieee_handle *, unsigned int);
-static struct bfd_hash_entry *ieee_name_type_newfunc
- (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
-static bfd_boolean ieee_write_undefined_tag
- (struct ieee_name_type_hash_entry *, void *);
-static bfd_boolean ieee_finish_compilation_unit (struct ieee_handle *);
-static void ieee_add_bb11_blocks (bfd *, asection *, void *);
-static bfd_boolean ieee_add_bb11
- (struct ieee_handle *, asection *, bfd_vma, bfd_vma);
-static bfd_boolean ieee_output_pending_parms (struct ieee_handle *);
-static unsigned int ieee_vis_to_flags (enum debug_visibility);
-static bfd_boolean ieee_class_method_var
- (struct ieee_handle *, const char *, enum debug_visibility, bfd_boolean,
- bfd_boolean, bfd_boolean, bfd_vma, bfd_boolean);
-
-static bfd_boolean ieee_start_compilation_unit (void *, const char *);
-static bfd_boolean ieee_start_source (void *, const char *);
-static bfd_boolean ieee_empty_type (void *);
-static bfd_boolean ieee_void_type (void *);
-static bfd_boolean ieee_int_type (void *, unsigned int, bfd_boolean);
-static bfd_boolean ieee_float_type (void *, unsigned int);
-static bfd_boolean ieee_complex_type (void *, unsigned int);
-static bfd_boolean ieee_bool_type (void *, unsigned int);
-static bfd_boolean ieee_enum_type
- (void *, const char *, const char **, bfd_signed_vma *);
-static bfd_boolean ieee_pointer_type (void *);
-static bfd_boolean ieee_function_type (void *, int, bfd_boolean);
-static bfd_boolean ieee_reference_type (void *);
-static bfd_boolean ieee_range_type (void *, bfd_signed_vma, bfd_signed_vma);
-static bfd_boolean ieee_array_type
- (void *, bfd_signed_vma, bfd_signed_vma, bfd_boolean);
-static bfd_boolean ieee_set_type (void *, bfd_boolean);
-static bfd_boolean ieee_offset_type (void *);
-static bfd_boolean ieee_method_type (void *, bfd_boolean, int, bfd_boolean);
-static bfd_boolean ieee_const_type (void *);
-static bfd_boolean ieee_volatile_type (void *);
-static bfd_boolean ieee_start_struct_type
- (void *, const char *, unsigned int, bfd_boolean, unsigned int);
-static bfd_boolean ieee_struct_field
- (void *, const char *, bfd_vma, bfd_vma, enum debug_visibility);
-static bfd_boolean ieee_end_struct_type (void *);
-static bfd_boolean ieee_start_class_type
- (void *, const char *, unsigned int, bfd_boolean, unsigned int, bfd_boolean,
- bfd_boolean);
-static bfd_boolean ieee_class_static_member
- (void *, const char *, const char *, enum debug_visibility);
-static bfd_boolean ieee_class_baseclass
- (void *, bfd_vma, bfd_boolean, enum debug_visibility);
-static bfd_boolean ieee_class_start_method (void *, const char *);
-static bfd_boolean ieee_class_method_variant
- (void *, const char *, enum debug_visibility, bfd_boolean, bfd_boolean,
- bfd_vma, bfd_boolean);
-static bfd_boolean ieee_class_static_method_variant
- (void *, const char *, enum debug_visibility, bfd_boolean, bfd_boolean);
-static bfd_boolean ieee_class_end_method (void *);
-static bfd_boolean ieee_end_class_type (void *);
-static bfd_boolean ieee_typedef_type (void *, const char *);
-static bfd_boolean ieee_tag_type
- (void *, const char *, unsigned int, enum debug_type_kind);
-static bfd_boolean ieee_typdef (void *, const char *);
-static bfd_boolean ieee_tag (void *, const char *);
-static bfd_boolean ieee_int_constant (void *, const char *, bfd_vma);
-static bfd_boolean ieee_float_constant (void *, const char *, double);
-static bfd_boolean ieee_typed_constant (void *, const char *, bfd_vma);
-static bfd_boolean ieee_variable
- (void *, const char *, enum debug_var_kind, bfd_vma);
-static bfd_boolean ieee_start_function (void *, const char *, bfd_boolean);
-static bfd_boolean ieee_function_parameter
- (void *, const char *, enum debug_parm_kind, bfd_vma);
-static bfd_boolean ieee_start_block (void *, bfd_vma);
-static bfd_boolean ieee_end_block (void *, bfd_vma);
-static bfd_boolean ieee_end_function (void *);
-static bfd_boolean ieee_lineno (void *, const char *, unsigned long, bfd_vma);
-
-static const struct debug_write_fns ieee_fns =
-{
- ieee_start_compilation_unit,
- ieee_start_source,
- ieee_empty_type,
- ieee_void_type,
- ieee_int_type,
- ieee_float_type,
- ieee_complex_type,
- ieee_bool_type,
- ieee_enum_type,
- ieee_pointer_type,
- ieee_function_type,
- ieee_reference_type,
- ieee_range_type,
- ieee_array_type,
- ieee_set_type,
- ieee_offset_type,
- ieee_method_type,
- ieee_const_type,
- ieee_volatile_type,
- ieee_start_struct_type,
- ieee_struct_field,
- ieee_end_struct_type,
- ieee_start_class_type,
- ieee_class_static_member,
- ieee_class_baseclass,
- ieee_class_start_method,
- ieee_class_method_variant,
- ieee_class_static_method_variant,
- ieee_class_end_method,
- ieee_end_class_type,
- ieee_typedef_type,
- ieee_tag_type,
- ieee_typdef,
- ieee_tag,
- ieee_int_constant,
- ieee_float_constant,
- ieee_typed_constant,
- ieee_variable,
- ieee_start_function,
- ieee_function_parameter,
- ieee_start_block,
- ieee_end_block,
- ieee_end_function,
- ieee_lineno
-};
-
-/* Initialize a buffer to be empty. */
-
-static bfd_boolean
-ieee_init_buffer (struct ieee_handle *info ATTRIBUTE_UNUSED,
- struct ieee_buflist *buflist)
-{
- buflist->head = NULL;
- buflist->tail = NULL;
- return TRUE;
-}
-
-/* See whether a buffer list has any data. */
-
-#define ieee_buffer_emptyp(buflist) ((buflist)->head == NULL)
-
-/* Change the current buffer to a specified buffer chain. */
-
-static bfd_boolean
-ieee_change_buffer (struct ieee_handle *info, struct ieee_buflist *buflist)
-{
- if (buflist->head == NULL)
- {
- struct ieee_buf *buf;
-
- buf = (struct ieee_buf *) xmalloc (sizeof *buf);
- buf->next = NULL;
- buf->c = 0;
- buflist->head = buf;
- buflist->tail = buf;
- }
-
- info->current = buflist;
- info->curbuf = buflist->tail;
-
- return TRUE;
-}
-
-/* Append a buffer chain. */
-
-static bfd_boolean
-ieee_append_buffer (struct ieee_handle *info ATTRIBUTE_UNUSED,
- struct ieee_buflist *mainbuf,
- struct ieee_buflist *newbuf)
-{
- if (newbuf->head != NULL)
- {
- if (mainbuf->head == NULL)
- mainbuf->head = newbuf->head;
- else
- mainbuf->tail->next = newbuf->head;
- mainbuf->tail = newbuf->tail;
- }
- return TRUE;
-}
-
-/* Write a byte into the buffer. We use a macro for speed and a
- function for the complex cases. */
-
-#define ieee_write_byte(info, b) \
- ((info)->curbuf->c < IEEE_BUFSIZE \
- ? ((info)->curbuf->buf[(info)->curbuf->c++] = (b), TRUE) \
- : ieee_real_write_byte ((info), (b)))
-
-static bfd_boolean
-ieee_real_write_byte (struct ieee_handle *info, int b)
-{
- if (info->curbuf->c >= IEEE_BUFSIZE)
- {
- struct ieee_buf *n;
-
- n = (struct ieee_buf *) xmalloc (sizeof *n);
- n->next = NULL;
- n->c = 0;
- if (info->current->head == NULL)
- info->current->head = n;
- else
- info->current->tail->next = n;
- info->current->tail = n;
- info->curbuf = n;
- }
-
- info->curbuf->buf[info->curbuf->c] = b;
- ++info->curbuf->c;
-
- return TRUE;
-}
-
-/* Write out two bytes. */
-
-static bfd_boolean
-ieee_write_2bytes (struct ieee_handle *info, int i)
-{
- return (ieee_write_byte (info, i >> 8)
- && ieee_write_byte (info, i & 0xff));
-}
-
-/* Write out an integer. */
-
-static bfd_boolean
-ieee_write_number (struct ieee_handle *info, bfd_vma v)
-{
- bfd_vma t;
- bfd_byte ab[20];
- bfd_byte *p;
- unsigned int c;
-
- if (v <= (bfd_vma) ieee_number_end_enum)
- return ieee_write_byte (info, (int) v);
-
- t = v;
- p = ab + sizeof ab;
- while (t != 0)
- {
- *--p = t & 0xff;
- t >>= 8;
- }
- c = (ab + 20) - p;
-
- if (c > (unsigned int) (ieee_number_repeat_end_enum
- - ieee_number_repeat_start_enum))
- {
- fprintf (stderr, _("IEEE numeric overflow: 0x"));
- fprintf_vma (stderr, v);
- fprintf (stderr, "\n");
- return FALSE;
- }
-
- if (! ieee_write_byte (info, (int) ieee_number_repeat_start_enum + c))
- return FALSE;
- for (; c > 0; --c, ++p)
- {
- if (! ieee_write_byte (info, *p))
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Write out a string. */
-
-static bfd_boolean
-ieee_write_id (struct ieee_handle *info, const char *s)
-{
- unsigned int len;
-
- len = strlen (s);
- if (len <= 0x7f)
- {
- if (! ieee_write_byte (info, len))
- return FALSE;
- }
- else if (len <= 0xff)
- {
- if (! ieee_write_byte (info, (int) ieee_extension_length_1_enum)
- || ! ieee_write_byte (info, len))
- return FALSE;
- }
- else if (len <= 0xffff)
- {
- if (! ieee_write_byte (info, (int) ieee_extension_length_2_enum)
- || ! ieee_write_2bytes (info, len))
- return FALSE;
- }
- else
- {
- fprintf (stderr, _("IEEE string length overflow: %u\n"), len);
- return FALSE;
- }
-
- for (; *s != '\0'; s++)
- if (! ieee_write_byte (info, *s))
- return FALSE;
-
- return TRUE;
-}
-
-/* Write out an ASN record. */
-
-static bfd_boolean
-ieee_write_asn (struct ieee_handle *info, unsigned int indx, bfd_vma val)
-{
- return (ieee_write_2bytes (info, (int) ieee_asn_record_enum)
- && ieee_write_number (info, indx)
- && ieee_write_number (info, val));
-}
-
-/* Write out an ATN65 record. */
-
-static bfd_boolean
-ieee_write_atn65 (struct ieee_handle *info, unsigned int indx, const char *s)
-{
- return (ieee_write_2bytes (info, (int) ieee_atn_record_enum)
- && ieee_write_number (info, indx)
- && ieee_write_number (info, 0)
- && ieee_write_number (info, 65)
- && ieee_write_id (info, s));
-}
-
-/* Push a type index onto the type stack. */
-
-static bfd_boolean
-ieee_push_type (struct ieee_handle *info, unsigned int indx,
- unsigned int size, bfd_boolean unsignedp, bfd_boolean localp)
-{
- struct ieee_type_stack *ts;
-
- ts = (struct ieee_type_stack *) xmalloc (sizeof *ts);
- memset (ts, 0, sizeof *ts);
-
- ts->type.indx = indx;
- ts->type.size = size;
- ts->type.unsignedp = unsignedp;
- ts->type.localp = localp;
-
- ts->next = info->type_stack;
- info->type_stack = ts;
-
- return TRUE;
-}
-
-/* Pop a type index off the type stack. */
-
-static unsigned int
-ieee_pop_type (struct ieee_handle *info)
-{
- return ieee_pop_type_used (info, TRUE);
-}
-
-/* Pop an unused type index off the type stack. */
-
-static void
-ieee_pop_unused_type (struct ieee_handle *info)
-{
- (void) ieee_pop_type_used (info, FALSE);
-}
-
-/* Pop a used or unused type index off the type stack. */
-
-static unsigned int
-ieee_pop_type_used (struct ieee_handle *info, bfd_boolean used)
-{
- struct ieee_type_stack *ts;
- unsigned int ret;
-
- ts = info->type_stack;
- assert (ts != NULL);
-
- /* If this is a function type, and we need it, we need to append the
- actual definition to the typedef block now. */
- if (used && ! ieee_buffer_emptyp (&ts->type.fndef))
- {
- struct ieee_buflist *buflist;
-
- if (ts->type.localp)
- {
- /* Make sure we have started the types block. */
- if (ieee_buffer_emptyp (&info->types))
- {
- if (! ieee_change_buffer (info, &info->types)
- || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 1)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, info->modname))
- return FALSE;
- }
- buflist = &info->types;
- }
- else
- {
- /* Make sure we started the global type block. */
- if (ieee_buffer_emptyp (&info->global_types))
- {
- if (! ieee_change_buffer (info, &info->global_types)
- || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 2)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, ""))
- return FALSE;
- }
- buflist = &info->global_types;
- }
-
- if (! ieee_append_buffer (info, buflist, &ts->type.fndef))
- return FALSE;
- }
-
- ret = ts->type.indx;
- info->type_stack = ts->next;
- free (ts);
- return ret;
-}
-
-/* Add a range of bytes included in the current compilation unit. */
-
-static bfd_boolean
-ieee_add_range (struct ieee_handle *info, bfd_boolean global, bfd_vma low,
- bfd_vma high)
-{
- struct ieee_range **plist, *r, **pr;
-
- if (low == (bfd_vma) -1 || high == (bfd_vma) -1 || low == high)
- return TRUE;
-
- if (global)
- plist = &info->global_ranges;
- else
- plist = &info->ranges;
-
- for (r = *plist; r != NULL; r = r->next)
- {
- if (high >= r->low && low <= r->high)
- {
- /* The new range overlaps r. */
- if (low < r->low)
- r->low = low;
- if (high > r->high)
- r->high = high;
- pr = &r->next;
- while (*pr != NULL && (*pr)->low <= r->high)
- {
- struct ieee_range *n;
-
- if ((*pr)->high > r->high)
- r->high = (*pr)->high;
- n = (*pr)->next;
- free (*pr);
- *pr = n;
- }
- return TRUE;
- }
- }
-
- r = (struct ieee_range *) xmalloc (sizeof *r);
- memset (r, 0, sizeof *r);
-
- r->low = low;
- r->high = high;
-
- /* Store the ranges sorted by address. */
- for (pr = plist; *pr != NULL; pr = &(*pr)->next)
- if ((*pr)->low > high)
- break;
- r->next = *pr;
- *pr = r;
-
- return TRUE;
-}
-
-/* Start a new range for which we only have the low address. */
-
-static bfd_boolean
-ieee_start_range (struct ieee_handle *info, bfd_vma low)
-{
- struct ieee_range *r;
-
- r = (struct ieee_range *) xmalloc (sizeof *r);
- memset (r, 0, sizeof *r);
- r->low = low;
- r->next = info->pending_ranges;
- info->pending_ranges = r;
- return TRUE;
-}
-
-/* Finish a range started by ieee_start_range. */
-
-static bfd_boolean
-ieee_end_range (struct ieee_handle *info, bfd_vma high)
-{
- struct ieee_range *r;
- bfd_vma low;
-
- assert (info->pending_ranges != NULL);
- r = info->pending_ranges;
- low = r->low;
- info->pending_ranges = r->next;
- free (r);
- return ieee_add_range (info, FALSE, low, high);
-}
-
-/* Start defining a type. */
-
-static bfd_boolean
-ieee_define_type (struct ieee_handle *info, unsigned int size,
- bfd_boolean unsignedp, bfd_boolean localp)
-{
- return ieee_define_named_type (info, (const char *) NULL,
- (unsigned int) -1, size, unsignedp,
- localp, (struct ieee_buflist *) NULL);
-}
-
-/* Start defining a named type. */
-
-static bfd_boolean
-ieee_define_named_type (struct ieee_handle *info, const char *name,
- unsigned int indx, unsigned int size,
- bfd_boolean unsignedp, bfd_boolean localp,
- struct ieee_buflist *buflist)
-{
- unsigned int type_indx;
- unsigned int name_indx;
-
- if (indx != (unsigned int) -1)
- type_indx = indx;
- else
- {
- type_indx = info->type_indx;
- ++info->type_indx;
- }
-
- name_indx = info->name_indx;
- ++info->name_indx;
-
- if (name == NULL)
- name = "";
-
- /* If we were given a buffer, use it; otherwise, use either the
- local or the global type information, and make sure that the type
- block is started. */
- if (buflist != NULL)
- {
- if (! ieee_change_buffer (info, buflist))
- return FALSE;
- }
- else if (localp)
- {
- if (! ieee_buffer_emptyp (&info->types))
- {
- if (! ieee_change_buffer (info, &info->types))
- return FALSE;
- }
- else
- {
- if (! ieee_change_buffer (info, &info->types)
- || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 1)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, info->modname))
- return FALSE;
- }
- }
- else
- {
- if (! ieee_buffer_emptyp (&info->global_types))
- {
- if (! ieee_change_buffer (info, &info->global_types))
- return FALSE;
- }
- else
- {
- if (! ieee_change_buffer (info, &info->global_types)
- || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 2)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, ""))
- return FALSE;
- }
- }
-
- /* Push the new type on the type stack, write out an NN record, and
- write out the start of a TY record. The caller will then finish
- the TY record. */
- if (! ieee_push_type (info, type_indx, size, unsignedp, localp))
- return FALSE;
-
- return (ieee_write_byte (info, (int) ieee_nn_record)
- && ieee_write_number (info, name_indx)
- && ieee_write_id (info, name)
- && ieee_write_byte (info, (int) ieee_ty_record_enum)
- && ieee_write_number (info, type_indx)
- && ieee_write_byte (info, 0xce)
- && ieee_write_number (info, name_indx));
-}
-
-/* Get an entry to the list of modified versions of a type. */
-
-static struct ieee_modified_type *
-ieee_get_modified_info (struct ieee_handle *info, unsigned int indx)
-{
- if (indx >= info->modified_alloc)
- {
- unsigned int nalloc;
-
- nalloc = info->modified_alloc;
- if (nalloc == 0)
- nalloc = 16;
- while (indx >= nalloc)
- nalloc *= 2;
- info->modified = ((struct ieee_modified_type *)
- xrealloc (info->modified,
- nalloc * sizeof *info->modified));
- memset (info->modified + info->modified_alloc, 0,
- (nalloc - info->modified_alloc) * sizeof *info->modified);
- info->modified_alloc = nalloc;
- }
-
- return info->modified + indx;
-}
-
-/* Routines for the hash table mapping names to types. */
-
-/* Initialize an entry in the hash table. */
-
-static struct bfd_hash_entry *
-ieee_name_type_newfunc (struct bfd_hash_entry *entry,
- struct bfd_hash_table *table, const char *string)
-{
- struct ieee_name_type_hash_entry *ret =
- (struct ieee_name_type_hash_entry *) entry;
-
- /* Allocate the structure if it has not already been allocated by a
- subclass. */
- if (ret == NULL)
- ret = ((struct ieee_name_type_hash_entry *)
- bfd_hash_allocate (table, sizeof *ret));
- if (ret == NULL)
- return NULL;
-
- /* Call the allocation method of the superclass. */
- ret = ((struct ieee_name_type_hash_entry *)
- bfd_hash_newfunc ((struct bfd_hash_entry *) ret, table, string));
- if (ret)
- {
- /* Set local fields. */
- ret->types = NULL;
- }
-
- return (struct bfd_hash_entry *) ret;
-}
-
-/* Look up an entry in the hash table. */
-
-#define ieee_name_type_hash_lookup(table, string, create, copy) \
- ((struct ieee_name_type_hash_entry *) \
- bfd_hash_lookup (&(table)->root, (string), (create), (copy)))
-
-/* Traverse the hash table. */
-
-#define ieee_name_type_hash_traverse(table, func, info) \
- (bfd_hash_traverse \
- (&(table)->root, \
- (bfd_boolean (*) (struct bfd_hash_entry *, void *)) (func), \
- (info)))
-
-/* The general routine to write out IEEE debugging information. */
-
-bfd_boolean
-write_ieee_debugging_info (bfd *abfd, void *dhandle)
-{
- struct ieee_handle info;
- asection *s;
- const char *err;
- struct ieee_buf *b;
-
- memset (&info, 0, sizeof info);
- info.abfd = abfd;
- info.type_indx = 256;
- info.name_indx = 32;
-
- if (!bfd_hash_table_init (&info.typedefs.root, ieee_name_type_newfunc,
- sizeof (struct ieee_name_type_hash_entry))
- || !bfd_hash_table_init (&info.tags.root, ieee_name_type_newfunc,
- sizeof (struct ieee_name_type_hash_entry)))
- return FALSE;
-
- if (! ieee_init_buffer (&info, &info.global_types)
- || ! ieee_init_buffer (&info, &info.data)
- || ! ieee_init_buffer (&info, &info.types)
- || ! ieee_init_buffer (&info, &info.vars)
- || ! ieee_init_buffer (&info, &info.cxx)
- || ! ieee_init_buffer (&info, &info.linenos)
- || ! ieee_init_buffer (&info, &info.fntype)
- || ! ieee_init_buffer (&info, &info.fnargs))
- return FALSE;
-
- if (! debug_write (dhandle, &ieee_fns, (void *) &info))
- return FALSE;
-
- if (info.filename != NULL)
- {
- if (! ieee_finish_compilation_unit (&info))
- return FALSE;
- }
-
- /* Put any undefined tags in the global typedef information. */
- info.error = FALSE;
- ieee_name_type_hash_traverse (&info.tags,
- ieee_write_undefined_tag,
- (void *) &info);
- if (info.error)
- return FALSE;
-
- /* Prepend the global typedef information to the other data. */
- if (! ieee_buffer_emptyp (&info.global_types))
- {
- /* The HP debugger seems to have a bug in which it ignores the
- last entry in the global types, so we add a dummy entry. */
- if (! ieee_change_buffer (&info, &info.global_types)
- || ! ieee_write_byte (&info, (int) ieee_nn_record)
- || ! ieee_write_number (&info, info.name_indx)
- || ! ieee_write_id (&info, "")
- || ! ieee_write_byte (&info, (int) ieee_ty_record_enum)
- || ! ieee_write_number (&info, info.type_indx)
- || ! ieee_write_byte (&info, 0xce)
- || ! ieee_write_number (&info, info.name_indx)
- || ! ieee_write_number (&info, 'P')
- || ! ieee_write_number (&info, (int) builtin_void + 32)
- || ! ieee_write_byte (&info, (int) ieee_be_record_enum))
- return FALSE;
-
- if (! ieee_append_buffer (&info, &info.global_types, &info.data))
- return FALSE;
- info.data = info.global_types;
- }
-
- /* Make sure that we have declare BB11 blocks for each range in the
- file. They are added to info->vars. */
- info.error = FALSE;
- if (! ieee_init_buffer (&info, &info.vars))
- return FALSE;
- bfd_map_over_sections (abfd, ieee_add_bb11_blocks, (void *) &info);
- if (info.error)
- return FALSE;
- if (! ieee_buffer_emptyp (&info.vars))
- {
- if (! ieee_change_buffer (&info, &info.vars)
- || ! ieee_write_byte (&info, (int) ieee_be_record_enum))
- return FALSE;
-
- if (! ieee_append_buffer (&info, &info.data, &info.vars))
- return FALSE;
- }
-
- /* Now all the data is in info.data. Write it out to the BFD. We
- normally would need to worry about whether all the other sections
- are set up yet, but the IEEE backend will handle this particular
- case correctly regardless. */
- if (ieee_buffer_emptyp (&info.data))
- {
- /* There is no debugging information. */
- return TRUE;
- }
- err = NULL;
- s = bfd_make_section (abfd, ".debug");
- if (s == NULL)
- err = "bfd_make_section";
- if (err == NULL)
- {
- if (! bfd_set_section_flags (abfd, s, SEC_DEBUGGING | SEC_HAS_CONTENTS))
- err = "bfd_set_section_flags";
- }
- if (err == NULL)
- {
- bfd_size_type size;
-
- size = 0;
- for (b = info.data.head; b != NULL; b = b->next)
- size += b->c;
- if (! bfd_set_section_size (abfd, s, size))
- err = "bfd_set_section_size";
- }
- if (err == NULL)
- {
- file_ptr offset;
-
- offset = 0;
- for (b = info.data.head; b != NULL; b = b->next)
- {
- if (! bfd_set_section_contents (abfd, s, b->buf, offset, b->c))
- {
- err = "bfd_set_section_contents";
- break;
- }
- offset += b->c;
- }
- }
-
- if (err != NULL)
- {
- fprintf (stderr, "%s: %s: %s\n", bfd_get_filename (abfd), err,
- bfd_errmsg (bfd_get_error ()));
- return FALSE;
- }
-
- bfd_hash_table_free (&info.typedefs.root);
- bfd_hash_table_free (&info.tags.root);
-
- return TRUE;
-}
-
-/* Write out information for an undefined tag. This is called via
- ieee_name_type_hash_traverse. */
-
-static bfd_boolean
-ieee_write_undefined_tag (struct ieee_name_type_hash_entry *h, void *p)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- struct ieee_name_type *nt;
-
- for (nt = h->types; nt != NULL; nt = nt->next)
- {
- unsigned int name_indx;
- char code;
-
- if (nt->kind == DEBUG_KIND_ILLEGAL)
- continue;
-
- if (ieee_buffer_emptyp (&info->global_types))
- {
- if (! ieee_change_buffer (info, &info->global_types)
- || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 2)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, ""))
- {
- info->error = TRUE;
- return FALSE;
- }
- }
- else
- {
- if (! ieee_change_buffer (info, &info->global_types))
- {
- info->error = TRUE;
- return FALSE;
- }
- }
-
- name_indx = info->name_indx;
- ++info->name_indx;
- if (! ieee_write_byte (info, (int) ieee_nn_record)
- || ! ieee_write_number (info, name_indx)
- || ! ieee_write_id (info, nt->type.name)
- || ! ieee_write_byte (info, (int) ieee_ty_record_enum)
- || ! ieee_write_number (info, nt->type.indx)
- || ! ieee_write_byte (info, 0xce)
- || ! ieee_write_number (info, name_indx))
- {
- info->error = TRUE;
- return FALSE;
- }
-
- switch (nt->kind)
- {
- default:
- abort ();
- info->error = TRUE;
- return FALSE;
- case DEBUG_KIND_STRUCT:
- case DEBUG_KIND_CLASS:
- code = 'S';
- break;
- case DEBUG_KIND_UNION:
- case DEBUG_KIND_UNION_CLASS:
- code = 'U';
- break;
- case DEBUG_KIND_ENUM:
- code = 'E';
- break;
- }
- if (! ieee_write_number (info, code)
- || ! ieee_write_number (info, 0))
- {
- info->error = TRUE;
- return FALSE;
- }
- }
-
- return TRUE;
-}
-
-/* Start writing out information for a compilation unit. */
-
-static bfd_boolean
-ieee_start_compilation_unit (void *p, const char *filename)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- const char *modname;
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- const char *backslash;
-#endif
- char *c, *s;
- unsigned int nindx;
-
- if (info->filename != NULL)
- {
- if (! ieee_finish_compilation_unit (info))
- return FALSE;
- }
-
- info->filename = filename;
- modname = strrchr (filename, '/');
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- /* We could have a mixed forward/back slash case. */
- backslash = strrchr (filename, '\\');
- if (modname == NULL || (backslash != NULL && backslash > modname))
- modname = backslash;
-#endif
-
- if (modname != NULL)
- ++modname;
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- else if (filename[0] && filename[1] == ':')
- modname = filename + 2;
-#endif
- else
- modname = filename;
-
- c = xstrdup (modname);
- s = strrchr (c, '.');
- if (s != NULL)
- *s = '\0';
- info->modname = c;
-
- if (! ieee_init_buffer (info, &info->types)
- || ! ieee_init_buffer (info, &info->vars)
- || ! ieee_init_buffer (info, &info->cxx)
- || ! ieee_init_buffer (info, &info->linenos))
- return FALSE;
- info->ranges = NULL;
-
- /* Always include a BB1 and a BB3 block. That is what the output of
- the MRI linker seems to look like. */
- if (! ieee_change_buffer (info, &info->types)
- || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 1)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, info->modname))
- return FALSE;
-
- nindx = info->name_indx;
- ++info->name_indx;
- if (! ieee_change_buffer (info, &info->vars)
- || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 3)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, info->modname))
- return FALSE;
-
- return TRUE;
-}
-
-/* Finish up a compilation unit. */
-
-static bfd_boolean
-ieee_finish_compilation_unit (struct ieee_handle *info)
-{
- struct ieee_range *r;
-
- if (! ieee_buffer_emptyp (&info->types))
- {
- if (! ieee_change_buffer (info, &info->types)
- || ! ieee_write_byte (info, (int) ieee_be_record_enum))
- return FALSE;
- }
-
- if (! ieee_buffer_emptyp (&info->cxx))
- {
- /* Append any C++ information to the global function and
- variable information. */
- assert (! ieee_buffer_emptyp (&info->vars));
- if (! ieee_change_buffer (info, &info->vars))
- return FALSE;
-
- /* We put the pmisc records in a dummy procedure, just as the
- MRI compiler does. */
- if (! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 6)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, "__XRYCPP")
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, info->highaddr - 1)
- || ! ieee_append_buffer (info, &info->vars, &info->cxx)
- || ! ieee_change_buffer (info, &info->vars)
- || ! ieee_write_byte (info, (int) ieee_be_record_enum)
- || ! ieee_write_number (info, info->highaddr - 1))
- return FALSE;
- }
-
- if (! ieee_buffer_emptyp (&info->vars))
- {
- if (! ieee_change_buffer (info, &info->vars)
- || ! ieee_write_byte (info, (int) ieee_be_record_enum))
- return FALSE;
- }
-
- if (info->pending_lineno_filename != NULL)
- {
- /* Force out the pending line number. */
- if (! ieee_lineno ((void *) info, (const char *) NULL, 0, (bfd_vma) -1))
- return FALSE;
- }
- if (! ieee_buffer_emptyp (&info->linenos))
- {
- if (! ieee_change_buffer (info, &info->linenos)
- || ! ieee_write_byte (info, (int) ieee_be_record_enum))
- return FALSE;
- if (strcmp (info->filename, info->lineno_filename) != 0)
- {
- /* We were not in the main file. We just closed the
- included line number block, and now we must close the
- main line number block. */
- if (! ieee_write_byte (info, (int) ieee_be_record_enum))
- return FALSE;
- }
- }
-
- if (! ieee_append_buffer (info, &info->data, &info->types)
- || ! ieee_append_buffer (info, &info->data, &info->vars)
- || ! ieee_append_buffer (info, &info->data, &info->linenos))
- return FALSE;
-
- /* Build BB10/BB11 blocks based on the ranges we recorded. */
- if (! ieee_change_buffer (info, &info->data))
- return FALSE;
-
- if (! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 10)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, info->modname)
- || ! ieee_write_id (info, "")
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, "GNU objcopy"))
- return FALSE;
-
- for (r = info->ranges; r != NULL; r = r->next)
- {
- bfd_vma low, high;
- asection *s;
- int kind;
-
- low = r->low;
- high = r->high;
-
- /* Find the section corresponding to this range. */
- for (s = info->abfd->sections; s != NULL; s = s->next)
- {
- if (bfd_get_section_vma (info->abfd, s) <= low
- && high <= (bfd_get_section_vma (info->abfd, s)
- + bfd_section_size (info->abfd, s)))
- break;
- }
-
- if (s == NULL)
- {
- /* Just ignore this range. */
- continue;
- }
-
- /* Coalesce ranges if it seems reasonable. */
- while (r->next != NULL
- && high + 0x1000 >= r->next->low
- && (r->next->high
- <= (bfd_get_section_vma (info->abfd, s)
- + bfd_section_size (info->abfd, s))))
- {
- r = r->next;
- high = r->high;
- }
-
- if ((s->flags & SEC_CODE) != 0)
- kind = 1;
- else if ((s->flags & SEC_READONLY) != 0)
- kind = 3;
- else
- kind = 2;
-
- if (! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 11)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, "")
- || ! ieee_write_number (info, kind)
- || ! ieee_write_number (info, s->index + IEEE_SECTION_NUMBER_BASE)
- || ! ieee_write_number (info, low)
- || ! ieee_write_byte (info, (int) ieee_be_record_enum)
- || ! ieee_write_number (info, high - low))
- return FALSE;
-
- /* Add this range to the list of global ranges. */
- if (! ieee_add_range (info, TRUE, low, high))
- return FALSE;
- }
-
- if (! ieee_write_byte (info, (int) ieee_be_record_enum))
- return FALSE;
-
- return TRUE;
-}
-
-/* Add BB11 blocks describing each range that we have not already
- described. */
-
-static void
-ieee_add_bb11_blocks (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *data)
-{
- struct ieee_handle *info = (struct ieee_handle *) data;
- bfd_vma low, high;
- struct ieee_range *r;
-
- low = bfd_get_section_vma (abfd, sec);
- high = low + bfd_section_size (abfd, sec);
-
- /* Find the first range at or after this section. The ranges are
- sorted by address. */
- for (r = info->global_ranges; r != NULL; r = r->next)
- if (r->high > low)
- break;
-
- while (low < high)
- {
- if (r == NULL || r->low >= high)
- {
- if (! ieee_add_bb11 (info, sec, low, high))
- info->error = TRUE;
- return;
- }
-
- if (low < r->low
- && r->low - low > 0x100)
- {
- if (! ieee_add_bb11 (info, sec, low, r->low))
- {
- info->error = TRUE;
- return;
- }
- }
- low = r->high;
-
- r = r->next;
- }
-}
-
-/* Add a single BB11 block for a range. We add it to info->vars. */
-
-static bfd_boolean
-ieee_add_bb11 (struct ieee_handle *info, asection *sec, bfd_vma low,
- bfd_vma high)
-{
- int kind;
-
- if (! ieee_buffer_emptyp (&info->vars))
- {
- if (! ieee_change_buffer (info, &info->vars))
- return FALSE;
- }
- else
- {
- const char *filename, *modname;
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- const char *backslash;
-#endif
- char *c, *s;
-
- /* Start the enclosing BB10 block. */
- filename = bfd_get_filename (info->abfd);
- modname = strrchr (filename, '/');
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- backslash = strrchr (filename, '\\');
- if (modname == NULL || (backslash != NULL && backslash > modname))
- modname = backslash;
-#endif
-
- if (modname != NULL)
- ++modname;
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- else if (filename[0] && filename[1] == ':')
- modname = filename + 2;
-#endif
- else
- modname = filename;
-
- c = xstrdup (modname);
- s = strrchr (c, '.');
- if (s != NULL)
- *s = '\0';
-
- if (! ieee_change_buffer (info, &info->vars)
- || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 10)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, c)
- || ! ieee_write_id (info, "")
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, "GNU objcopy"))
- return FALSE;
-
- free (c);
- }
-
- if ((sec->flags & SEC_CODE) != 0)
- kind = 1;
- else if ((sec->flags & SEC_READONLY) != 0)
- kind = 3;
- else
- kind = 2;
-
- if (! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 11)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, "")
- || ! ieee_write_number (info, kind)
- || ! ieee_write_number (info, sec->index + IEEE_SECTION_NUMBER_BASE)
- || ! ieee_write_number (info, low)
- || ! ieee_write_byte (info, (int) ieee_be_record_enum)
- || ! ieee_write_number (info, high - low))
- return FALSE;
-
- return TRUE;
-}
-
-/* Start recording information from a particular source file. This is
- used to record which file defined which types, variables, etc. It
- is not used for line numbers, since the lineno entry point passes
- down the file name anyhow. IEEE debugging information doesn't seem
- to store this information anywhere. */
-
-static bfd_boolean
-ieee_start_source (void *p ATTRIBUTE_UNUSED,
- const char *filename ATTRIBUTE_UNUSED)
-{
- return TRUE;
-}
-
-/* Make an empty type. */
-
-static bfd_boolean
-ieee_empty_type (void *p)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- return ieee_push_type (info, (int) builtin_unknown, 0, FALSE, FALSE);
-}
-
-/* Make a void type. */
-
-static bfd_boolean
-ieee_void_type (void *p)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- return ieee_push_type (info, (int) builtin_void, 0, FALSE, FALSE);
-}
-
-/* Make an integer type. */
-
-static bfd_boolean
-ieee_int_type (void *p, unsigned int size, bfd_boolean unsignedp)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- unsigned int indx;
-
- switch (size)
- {
- case 1:
- indx = (int) builtin_signed_char;
- break;
- case 2:
- indx = (int) builtin_signed_short_int;
- break;
- case 4:
- indx = (int) builtin_signed_long;
- break;
- case 8:
- indx = (int) builtin_signed_long_long;
- break;
- default:
- fprintf (stderr, _("IEEE unsupported integer type size %u\n"), size);
- return FALSE;
- }
-
- if (unsignedp)
- ++indx;
-
- return ieee_push_type (info, indx, size, unsignedp, FALSE);
-}
-
-/* Make a floating point type. */
-
-static bfd_boolean
-ieee_float_type (void *p, unsigned int size)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- unsigned int indx;
-
- switch (size)
- {
- case 4:
- indx = (int) builtin_float;
- break;
- case 8:
- indx = (int) builtin_double;
- break;
- case 12:
- /* FIXME: This size really depends upon the processor. */
- indx = (int) builtin_long_double;
- break;
- case 16:
- indx = (int) builtin_long_long_double;
- break;
- default:
- fprintf (stderr, _("IEEE unsupported float type size %u\n"), size);
- return FALSE;
- }
-
- return ieee_push_type (info, indx, size, FALSE, FALSE);
-}
-
-/* Make a complex type. */
-
-static bfd_boolean
-ieee_complex_type (void *p, unsigned int size)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- char code;
-
- switch (size)
- {
- case 4:
- if (info->complex_float_index != 0)
- return ieee_push_type (info, info->complex_float_index, size * 2,
- FALSE, FALSE);
- code = 'c';
- break;
- case 12:
- case 16:
- /* These cases can be output by gcc -gstabs. Outputting the
- wrong type is better than crashing. */
- case 8:
- if (info->complex_double_index != 0)
- return ieee_push_type (info, info->complex_double_index, size * 2,
- FALSE, FALSE);
- code = 'd';
- break;
- default:
- fprintf (stderr, _("IEEE unsupported complex type size %u\n"), size);
- return FALSE;
- }
-
- /* FIXME: I don't know what the string is for. */
- if (! ieee_define_type (info, size * 2, FALSE, FALSE)
- || ! ieee_write_number (info, code)
- || ! ieee_write_id (info, ""))
- return FALSE;
-
- if (size == 4)
- info->complex_float_index = info->type_stack->type.indx;
- else
- info->complex_double_index = info->type_stack->type.indx;
-
- return TRUE;
-}
-
-/* Make a boolean type. IEEE doesn't support these, so we just make
- an integer type instead. */
-
-static bfd_boolean
-ieee_bool_type (void *p, unsigned int size)
-{
- return ieee_int_type (p, size, TRUE);
-}
-
-/* Make an enumeration. */
-
-static bfd_boolean
-ieee_enum_type (void *p, const char *tag, const char **names,
- bfd_signed_vma *vals)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- struct ieee_defined_enum *e;
- bfd_boolean localp, simple;
- unsigned int indx;
- int i = 0;
-
- localp = FALSE;
- indx = (unsigned int) -1;
- for (e = info->enums; e != NULL; e = e->next)
- {
- if (tag == NULL)
- {
- if (e->tag != NULL)
- continue;
- }
- else
- {
- if (e->tag == NULL
- || tag[0] != e->tag[0]
- || strcmp (tag, e->tag) != 0)
- continue;
- }
-
- if (! e->defined)
- {
- /* This enum tag has been seen but not defined. */
- indx = e->indx;
- break;
- }
-
- if (names != NULL && e->names != NULL)
- {
- for (i = 0; names[i] != NULL && e->names[i] != NULL; i++)
- {
- if (names[i][0] != e->names[i][0]
- || vals[i] != e->vals[i]
- || strcmp (names[i], e->names[i]) != 0)
- break;
- }
- }
-
- if ((names == NULL && e->names == NULL)
- || (names != NULL
- && e->names != NULL
- && names[i] == NULL
- && e->names[i] == NULL))
- {
- /* We've seen this enum before. */
- return ieee_push_type (info, e->indx, 0, TRUE, FALSE);
- }
-
- if (tag != NULL)
- {
- /* We've already seen an enum of the same name, so we must make
- sure to output this one locally. */
- localp = TRUE;
- break;
- }
- }
-
- /* If this is a simple enumeration, in which the values start at 0
- and always increment by 1, we can use type E. Otherwise we must
- use type N. */
-
- simple = TRUE;
- if (names != NULL)
- {
- for (i = 0; names[i] != NULL; i++)
- {
- if (vals[i] != i)
- {
- simple = FALSE;
- break;
- }
- }
- }
-
- if (! ieee_define_named_type (info, tag, indx, 0, TRUE, localp,
- (struct ieee_buflist *) NULL)
- || ! ieee_write_number (info, simple ? 'E' : 'N'))
- return FALSE;
- if (simple)
- {
- /* FIXME: This is supposed to be the enumeration size, but we
- don't store that. */
- if (! ieee_write_number (info, 4))
- return FALSE;
- }
- if (names != NULL)
- {
- for (i = 0; names[i] != NULL; i++)
- {
- if (! ieee_write_id (info, names[i]))
- return FALSE;
- if (! simple)
- {
- if (! ieee_write_number (info, vals[i]))
- return FALSE;
- }
- }
- }
-
- if (! localp)
- {
- if (indx == (unsigned int) -1)
- {
- e = (struct ieee_defined_enum *) xmalloc (sizeof *e);
- memset (e, 0, sizeof *e);
- e->indx = info->type_stack->type.indx;
- e->tag = tag;
-
- e->next = info->enums;
- info->enums = e;
- }
-
- e->names = names;
- e->vals = vals;
- e->defined = TRUE;
- }
-
- return TRUE;
-}
-
-/* Make a pointer type. */
-
-static bfd_boolean
-ieee_pointer_type (void *p)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- bfd_boolean localp;
- unsigned int indx;
- struct ieee_modified_type *m = NULL;
-
- localp = info->type_stack->type.localp;
- indx = ieee_pop_type (info);
-
- /* A pointer to a simple builtin type can be obtained by adding 32.
- FIXME: Will this be a short pointer, and will that matter? */
- if (indx < 32)
- return ieee_push_type (info, indx + 32, 0, TRUE, FALSE);
-
- if (! localp)
- {
- m = ieee_get_modified_info (p, indx);
- if (m == NULL)
- return FALSE;
-
- /* FIXME: The size should depend upon the architecture. */
- if (m->pointer > 0)
- return ieee_push_type (info, m->pointer, 4, TRUE, FALSE);
- }
-
- if (! ieee_define_type (info, 4, TRUE, localp)
- || ! ieee_write_number (info, 'P')
- || ! ieee_write_number (info, indx))
- return FALSE;
-
- if (! localp)
- m->pointer = info->type_stack->type.indx;
-
- return TRUE;
-}
-
-/* Make a function type. This will be called for a method, but we
- don't want to actually add it to the type table in that case. We
- handle this by defining the type in a private buffer, and only
- adding that buffer to the typedef block if we are going to use it. */
-
-static bfd_boolean
-ieee_function_type (void *p, int argcount, bfd_boolean varargs)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- bfd_boolean localp;
- unsigned int *args = NULL;
- int i;
- unsigned int retindx;
- struct ieee_buflist fndef;
- struct ieee_modified_type *m;
-
- localp = FALSE;
-
- if (argcount > 0)
- {
- args = (unsigned int *) xmalloc (argcount * sizeof *args);
- for (i = argcount - 1; i >= 0; i--)
- {
- if (info->type_stack->type.localp)
- localp = TRUE;
- args[i] = ieee_pop_type (info);
- }
- }
- else if (argcount < 0)
- varargs = FALSE;
-
- if (info->type_stack->type.localp)
- localp = TRUE;
- retindx = ieee_pop_type (info);
-
- m = NULL;
- if (argcount < 0 && ! localp)
- {
- m = ieee_get_modified_info (p, retindx);
- if (m == NULL)
- return FALSE;
-
- if (m->function > 0)
- return ieee_push_type (info, m->function, 0, TRUE, FALSE);
- }
-
- /* An attribute of 0x41 means that the frame and push mask are
- unknown. */
- if (! ieee_init_buffer (info, &fndef)
- || ! ieee_define_named_type (info, (const char *) NULL,
- (unsigned int) -1, 0, TRUE, localp,
- &fndef)
- || ! ieee_write_number (info, 'x')
- || ! ieee_write_number (info, 0x41)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, retindx)
- || ! ieee_write_number (info, (bfd_vma) argcount + (varargs ? 1 : 0)))
- return FALSE;
- if (argcount > 0)
- {
- for (i = 0; i < argcount; i++)
- if (! ieee_write_number (info, args[i]))
- return FALSE;
- free (args);
- }
- if (varargs)
- {
- /* A varargs function is represented by writing out the last
- argument as type void *, although this makes little sense. */
- if (! ieee_write_number (info, (bfd_vma) builtin_void + 32))
- return FALSE;
- }
-
- if (! ieee_write_number (info, 0))
- return FALSE;
-
- /* We wrote the information into fndef, in case we don't need it.
- It will be appended to info->types by ieee_pop_type. */
- info->type_stack->type.fndef = fndef;
-
- if (m != NULL)
- m->function = info->type_stack->type.indx;
-
- return TRUE;
-}
-
-/* Make a reference type. */
-
-static bfd_boolean
-ieee_reference_type (void *p)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- /* IEEE appears to record a normal pointer type, and then use a
- pmisc record to indicate that it is really a reference. */
-
- if (! ieee_pointer_type (p))
- return FALSE;
- info->type_stack->type.referencep = TRUE;
- return TRUE;
-}
-
-/* Make a range type. */
-
-static bfd_boolean
-ieee_range_type (void *p, bfd_signed_vma low, bfd_signed_vma high)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- unsigned int size;
- bfd_boolean unsignedp, localp;
-
- size = info->type_stack->type.size;
- unsignedp = info->type_stack->type.unsignedp;
- localp = info->type_stack->type.localp;
- ieee_pop_unused_type (info);
- return (ieee_define_type (info, size, unsignedp, localp)
- && ieee_write_number (info, 'R')
- && ieee_write_number (info, (bfd_vma) low)
- && ieee_write_number (info, (bfd_vma) high)
- && ieee_write_number (info, unsignedp ? 0 : 1)
- && ieee_write_number (info, size));
-}
-
-/* Make an array type. */
-
-static bfd_boolean
-ieee_array_type (void *p, bfd_signed_vma low, bfd_signed_vma high,
- bfd_boolean stringp ATTRIBUTE_UNUSED)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- unsigned int eleindx;
- bfd_boolean localp;
- unsigned int size;
- struct ieee_modified_type *m = NULL;
- struct ieee_modified_array_type *a;
-
- /* IEEE does not store the range, so we just ignore it. */
- ieee_pop_unused_type (info);
- localp = info->type_stack->type.localp;
- size = info->type_stack->type.size;
- eleindx = ieee_pop_type (info);
-
- /* If we don't know the range, treat the size as exactly one
- element. */
- if (low < high)
- size *= (high - low) + 1;
-
- if (! localp)
- {
- m = ieee_get_modified_info (info, eleindx);
- if (m == NULL)
- return FALSE;
-
- for (a = m->arrays; a != NULL; a = a->next)
- {
- if (a->low == low && a->high == high)
- return ieee_push_type (info, a->indx, size, FALSE, FALSE);
- }
- }
-
- if (! ieee_define_type (info, size, FALSE, localp)
- || ! ieee_write_number (info, low == 0 ? 'Z' : 'C')
- || ! ieee_write_number (info, eleindx))
- return FALSE;
- if (low != 0)
- {
- if (! ieee_write_number (info, low))
- return FALSE;
- }
-
- if (! ieee_write_number (info, high + 1))
- return FALSE;
-
- if (! localp)
- {
- a = (struct ieee_modified_array_type *) xmalloc (sizeof *a);
- memset (a, 0, sizeof *a);
-
- a->indx = info->type_stack->type.indx;
- a->low = low;
- a->high = high;
-
- a->next = m->arrays;
- m->arrays = a;
- }
-
- return TRUE;
-}
-
-/* Make a set type. */
-
-static bfd_boolean
-ieee_set_type (void *p, bfd_boolean bitstringp ATTRIBUTE_UNUSED)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- bfd_boolean localp;
- unsigned int eleindx;
-
- localp = info->type_stack->type.localp;
- eleindx = ieee_pop_type (info);
-
- /* FIXME: We don't know the size, so we just use 4. */
-
- return (ieee_define_type (info, 0, TRUE, localp)
- && ieee_write_number (info, 's')
- && ieee_write_number (info, 4)
- && ieee_write_number (info, eleindx));
-}
-
-/* Make an offset type. */
-
-static bfd_boolean
-ieee_offset_type (void *p)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- unsigned int targetindx, baseindx;
-
- targetindx = ieee_pop_type (info);
- baseindx = ieee_pop_type (info);
-
- /* FIXME: The MRI C++ compiler does not appear to generate any
- useful type information about an offset type. It just records a
- pointer to member as an integer. The MRI/HP IEEE spec does
- describe a pmisc record which can be used for a pointer to
- member. Unfortunately, it does not describe the target type,
- which seems pretty important. I'm going to punt this for now. */
-
- return ieee_int_type (p, 4, TRUE);
-}
-
-/* Make a method type. */
-
-static bfd_boolean
-ieee_method_type (void *p, bfd_boolean domain, int argcount,
- bfd_boolean varargs)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- /* FIXME: The MRI/HP IEEE spec defines a pmisc record to use for a
- method, but the definition is incomplete. We just output an 'x'
- type. */
-
- if (domain)
- ieee_pop_unused_type (info);
-
- return ieee_function_type (p, argcount, varargs);
-}
-
-/* Make a const qualified type. */
-
-static bfd_boolean
-ieee_const_type (void *p)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- unsigned int size;
- bfd_boolean unsignedp, localp;
- unsigned int indx;
- struct ieee_modified_type *m = NULL;
-
- size = info->type_stack->type.size;
- unsignedp = info->type_stack->type.unsignedp;
- localp = info->type_stack->type.localp;
- indx = ieee_pop_type (info);
-
- if (! localp)
- {
- m = ieee_get_modified_info (info, indx);
- if (m == NULL)
- return FALSE;
-
- if (m->const_qualified > 0)
- return ieee_push_type (info, m->const_qualified, size, unsignedp,
- FALSE);
- }
-
- if (! ieee_define_type (info, size, unsignedp, localp)
- || ! ieee_write_number (info, 'n')
- || ! ieee_write_number (info, 1)
- || ! ieee_write_number (info, indx))
- return FALSE;
-
- if (! localp)
- m->const_qualified = info->type_stack->type.indx;
-
- return TRUE;
-}
-
-/* Make a volatile qualified type. */
-
-static bfd_boolean
-ieee_volatile_type (void *p)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- unsigned int size;
- bfd_boolean unsignedp, localp;
- unsigned int indx;
- struct ieee_modified_type *m = NULL;
-
- size = info->type_stack->type.size;
- unsignedp = info->type_stack->type.unsignedp;
- localp = info->type_stack->type.localp;
- indx = ieee_pop_type (info);
-
- if (! localp)
- {
- m = ieee_get_modified_info (info, indx);
- if (m == NULL)
- return FALSE;
-
- if (m->volatile_qualified > 0)
- return ieee_push_type (info, m->volatile_qualified, size, unsignedp,
- FALSE);
- }
-
- if (! ieee_define_type (info, size, unsignedp, localp)
- || ! ieee_write_number (info, 'n')
- || ! ieee_write_number (info, 2)
- || ! ieee_write_number (info, indx))
- return FALSE;
-
- if (! localp)
- m->volatile_qualified = info->type_stack->type.indx;
-
- return TRUE;
-}
-
-/* Convert an enum debug_visibility into a CXXFLAGS value. */
-
-static unsigned int
-ieee_vis_to_flags (enum debug_visibility visibility)
-{
- switch (visibility)
- {
- default:
- abort ();
- case DEBUG_VISIBILITY_PUBLIC:
- return CXXFLAGS_VISIBILITY_PUBLIC;
- case DEBUG_VISIBILITY_PRIVATE:
- return CXXFLAGS_VISIBILITY_PRIVATE;
- case DEBUG_VISIBILITY_PROTECTED:
- return CXXFLAGS_VISIBILITY_PROTECTED;
- }
- /*NOTREACHED*/
-}
-
-/* Start defining a struct type. We build it in the strdef field on
- the stack, to avoid confusing type definitions required by the
- fields with the struct type itself. */
-
-static bfd_boolean
-ieee_start_struct_type (void *p, const char *tag, unsigned int id,
- bfd_boolean structp, unsigned int size)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- bfd_boolean localp, ignorep;
- bfd_boolean copy;
- char ab[20];
- const char *look;
- struct ieee_name_type_hash_entry *h;
- struct ieee_name_type *nt, *ntlook;
- struct ieee_buflist strdef;
-
- localp = FALSE;
- ignorep = FALSE;
-
- /* We need to create a tag for internal use even if we don't want
- one for external use. This will let us refer to an anonymous
- struct. */
- if (tag != NULL)
- {
- look = tag;
- copy = FALSE;
- }
- else
- {
- sprintf (ab, "__anon%u", id);
- look = ab;
- copy = TRUE;
- }
-
- /* If we already have references to the tag, we must use the
- existing type index. */
- h = ieee_name_type_hash_lookup (&info->tags, look, TRUE, copy);
- if (h == NULL)
- return FALSE;
-
- nt = NULL;
- for (ntlook = h->types; ntlook != NULL; ntlook = ntlook->next)
- {
- if (ntlook->id == id)
- nt = ntlook;
- else if (! ntlook->type.localp)
- {
- /* We are creating a duplicate definition of a globally
- defined tag. Force it to be local to avoid
- confusion. */
- localp = TRUE;
- }
- }
-
- if (nt != NULL)
- {
- assert (localp == nt->type.localp);
- if (nt->kind == DEBUG_KIND_ILLEGAL && ! localp)
- {
- /* We've already seen a global definition of the type.
- Ignore this new definition. */
- ignorep = TRUE;
- }
- }
- else
- {
- nt = (struct ieee_name_type *) xmalloc (sizeof *nt);
- memset (nt, 0, sizeof *nt);
- nt->id = id;
- nt->type.name = h->root.string;
- nt->next = h->types;
- h->types = nt;
- nt->type.indx = info->type_indx;
- ++info->type_indx;
- }
-
- nt->kind = DEBUG_KIND_ILLEGAL;
-
- if (! ieee_init_buffer (info, &strdef)
- || ! ieee_define_named_type (info, tag, nt->type.indx, size, TRUE,
- localp, &strdef)
- || ! ieee_write_number (info, structp ? 'S' : 'U')
- || ! ieee_write_number (info, size))
- return FALSE;
-
- if (! ignorep)
- {
- const char *hold;
-
- /* We never want nt->type.name to be NULL. We want the rest of
- the type to be the object set up on the type stack; it will
- have a NULL name if tag is NULL. */
- hold = nt->type.name;
- nt->type = info->type_stack->type;
- nt->type.name = hold;
- }
-
- info->type_stack->type.name = tag;
- info->type_stack->type.strdef = strdef;
- info->type_stack->type.ignorep = ignorep;
-
- return TRUE;
-}
-
-/* Add a field to a struct. */
-
-static bfd_boolean
-ieee_struct_field (void *p, const char *name, bfd_vma bitpos, bfd_vma bitsize,
- enum debug_visibility visibility)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- unsigned int size;
- bfd_boolean unsignedp;
- bfd_boolean referencep;
- bfd_boolean localp;
- unsigned int indx;
- bfd_vma offset;
-
- assert (info->type_stack != NULL
- && info->type_stack->next != NULL
- && ! ieee_buffer_emptyp (&info->type_stack->next->type.strdef));
-
- /* If we are ignoring this struct definition, just pop and ignore
- the type. */
- if (info->type_stack->next->type.ignorep)
- {
- ieee_pop_unused_type (info);
- return TRUE;
- }
-
- size = info->type_stack->type.size;
- unsignedp = info->type_stack->type.unsignedp;
- referencep = info->type_stack->type.referencep;
- localp = info->type_stack->type.localp;
- indx = ieee_pop_type (info);
-
- if (localp)
- info->type_stack->type.localp = TRUE;
-
- if (info->type_stack->type.classdef != NULL)
- {
- unsigned int flags;
- unsigned int nindx;
-
- /* This is a class. We must add a description of this field to
- the class records we are building. */
-
- flags = ieee_vis_to_flags (visibility);
- nindx = info->type_stack->type.classdef->indx;
- if (! ieee_change_buffer (info,
- &info->type_stack->type.classdef->pmiscbuf)
- || ! ieee_write_asn (info, nindx, 'd')
- || ! ieee_write_asn (info, nindx, flags)
- || ! ieee_write_atn65 (info, nindx, name)
- || ! ieee_write_atn65 (info, nindx, name))
- return FALSE;
- info->type_stack->type.classdef->pmisccount += 4;
-
- if (referencep)
- {
- unsigned int nindx;
-
- /* We need to output a record recording that this field is
- really of reference type. We put this on the refs field
- of classdef, so that it can be appended to the C++
- records after the class is defined. */
-
- nindx = info->name_indx;
- ++info->name_indx;
-
- if (! ieee_change_buffer (info,
- &info->type_stack->type.classdef->refs)
- || ! ieee_write_byte (info, (int) ieee_nn_record)
- || ! ieee_write_number (info, nindx)
- || ! ieee_write_id (info, "")
- || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
- || ! ieee_write_number (info, nindx)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, 62)
- || ! ieee_write_number (info, 80)
- || ! ieee_write_number (info, 4)
- || ! ieee_write_asn (info, nindx, 'R')
- || ! ieee_write_asn (info, nindx, 3)
- || ! ieee_write_atn65 (info, nindx, info->type_stack->type.name)
- || ! ieee_write_atn65 (info, nindx, name))
- return FALSE;
- }
- }
-
- /* If the bitsize doesn't match the expected size, we need to output
- a bitfield type. */
- if (size == 0 || bitsize == 0 || bitsize == size * 8)
- offset = bitpos / 8;
- else
- {
- if (! ieee_define_type (info, 0, unsignedp,
- info->type_stack->type.localp)
- || ! ieee_write_number (info, 'g')
- || ! ieee_write_number (info, unsignedp ? 0 : 1)
- || ! ieee_write_number (info, bitsize)
- || ! ieee_write_number (info, indx))
- return FALSE;
- indx = ieee_pop_type (info);
- offset = bitpos;
- }
-
- /* Switch to the struct we are building in order to output this
- field definition. */
- return (ieee_change_buffer (info, &info->type_stack->type.strdef)
- && ieee_write_id (info, name)
- && ieee_write_number (info, indx)
- && ieee_write_number (info, offset));
-}
-
-/* Finish up a struct type. */
-
-static bfd_boolean
-ieee_end_struct_type (void *p)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- struct ieee_buflist *pb;
-
- assert (info->type_stack != NULL
- && ! ieee_buffer_emptyp (&info->type_stack->type.strdef));
-
- /* If we were ignoring this struct definition because it was a
- duplicate definition, just through away whatever bytes we have
- accumulated. Leave the type on the stack. */
- if (info->type_stack->type.ignorep)
- return TRUE;
-
- /* If this is not a duplicate definition of this tag, then localp
- will be FALSE, and we can put it in the global type block.
- FIXME: We should avoid outputting duplicate definitions which are
- the same. */
- if (! info->type_stack->type.localp)
- {
- /* Make sure we have started the global type block. */
- if (ieee_buffer_emptyp (&info->global_types))
- {
- if (! ieee_change_buffer (info, &info->global_types)
- || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 2)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, ""))
- return FALSE;
- }
- pb = &info->global_types;
- }
- else
- {
- /* Make sure we have started the types block. */
- if (ieee_buffer_emptyp (&info->types))
- {
- if (! ieee_change_buffer (info, &info->types)
- || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 1)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, info->modname))
- return FALSE;
- }
- pb = &info->types;
- }
-
- /* Append the struct definition to the types. */
- if (! ieee_append_buffer (info, pb, &info->type_stack->type.strdef)
- || ! ieee_init_buffer (info, &info->type_stack->type.strdef))
- return FALSE;
-
- /* Leave the struct on the type stack. */
-
- return TRUE;
-}
-
-/* Start a class type. */
-
-static bfd_boolean
-ieee_start_class_type (void *p, const char *tag, unsigned int id,
- bfd_boolean structp, unsigned int size,
- bfd_boolean vptr, bfd_boolean ownvptr)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- const char *vclass;
- struct ieee_buflist pmiscbuf;
- unsigned int indx;
- struct ieee_type_class *classdef;
-
- /* A C++ class is output as a C++ struct along with a set of pmisc
- records describing the class. */
-
- /* We need to have a name so that we can associate the struct and
- the class. */
- if (tag == NULL)
- {
- char *t;
-
- t = (char *) xmalloc (20);
- sprintf (t, "__anon%u", id);
- tag = t;
- }
-
- /* We can't write out the virtual table information until we have
- finished the class, because we don't know the virtual table size.
- We get the size from the largest voffset we see. */
- vclass = NULL;
- if (vptr && ! ownvptr)
- {
- vclass = info->type_stack->type.name;
- assert (vclass != NULL);
- /* We don't call ieee_pop_unused_type, since the class should
- get defined. */
- (void) ieee_pop_type (info);
- }
-
- if (! ieee_start_struct_type (p, tag, id, structp, size))
- return FALSE;
-
- indx = info->name_indx;
- ++info->name_indx;
-
- /* We write out pmisc records into the classdef field. We will
- write out the pmisc start after we know the number of records we
- need. */
- if (! ieee_init_buffer (info, &pmiscbuf)
- || ! ieee_change_buffer (info, &pmiscbuf)
- || ! ieee_write_asn (info, indx, 'T')
- || ! ieee_write_asn (info, indx, structp ? 'o' : 'u')
- || ! ieee_write_atn65 (info, indx, tag))
- return FALSE;
-
- classdef = (struct ieee_type_class *) xmalloc (sizeof *classdef);
- memset (classdef, 0, sizeof *classdef);
-
- classdef->indx = indx;
- classdef->pmiscbuf = pmiscbuf;
- classdef->pmisccount = 3;
- classdef->vclass = vclass;
- classdef->ownvptr = ownvptr;
-
- info->type_stack->type.classdef = classdef;
-
- return TRUE;
-}
-
-/* Add a static member to a class. */
-
-static bfd_boolean
-ieee_class_static_member (void *p, const char *name, const char *physname,
- enum debug_visibility visibility)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- unsigned int flags;
- unsigned int nindx;
-
- /* We don't care about the type. Hopefully there will be a call to
- ieee_variable declaring the physical name and the type, since
- that is where an IEEE consumer must get the type. */
- ieee_pop_unused_type (info);
-
- assert (info->type_stack != NULL
- && info->type_stack->type.classdef != NULL);
-
- flags = ieee_vis_to_flags (visibility);
- flags |= CXXFLAGS_STATIC;
-
- nindx = info->type_stack->type.classdef->indx;
-
- if (! ieee_change_buffer (info, &info->type_stack->type.classdef->pmiscbuf)
- || ! ieee_write_asn (info, nindx, 'd')
- || ! ieee_write_asn (info, nindx, flags)
- || ! ieee_write_atn65 (info, nindx, name)
- || ! ieee_write_atn65 (info, nindx, physname))
- return FALSE;
- info->type_stack->type.classdef->pmisccount += 4;
-
- return TRUE;
-}
-
-/* Add a base class to a class. */
-
-static bfd_boolean
-ieee_class_baseclass (void *p, bfd_vma bitpos, bfd_boolean virtual,
- enum debug_visibility visibility)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- const char *bname;
- bfd_boolean localp;
- unsigned int bindx;
- char *fname;
- unsigned int flags;
- unsigned int nindx;
-
- assert (info->type_stack != NULL
- && info->type_stack->type.name != NULL
- && info->type_stack->next != NULL
- && info->type_stack->next->type.classdef != NULL
- && ! ieee_buffer_emptyp (&info->type_stack->next->type.strdef));
-
- bname = info->type_stack->type.name;
- localp = info->type_stack->type.localp;
- bindx = ieee_pop_type (info);
-
- /* We are currently defining both a struct and a class. We must
- write out a field definition in the struct which holds the base
- class. The stabs debugging reader will create a field named
- _vb$CLASS for a virtual base class, so we just use that. FIXME:
- we should not depend upon a detail of stabs debugging. */
- if (virtual)
- {
- fname = (char *) xmalloc (strlen (bname) + sizeof "_vb$");
- sprintf (fname, "_vb$%s", bname);
- flags = BASEFLAGS_VIRTUAL;
- }
- else
- {
- if (localp)
- info->type_stack->type.localp = TRUE;
-
- fname = (char *) xmalloc (strlen (bname) + sizeof "_b$");
- sprintf (fname, "_b$%s", bname);
-
- if (! ieee_change_buffer (info, &info->type_stack->type.strdef)
- || ! ieee_write_id (info, fname)
- || ! ieee_write_number (info, bindx)
- || ! ieee_write_number (info, bitpos / 8))
- return FALSE;
- flags = 0;
- }
-
- if (visibility == DEBUG_VISIBILITY_PRIVATE)
- flags |= BASEFLAGS_PRIVATE;
-
- nindx = info->type_stack->type.classdef->indx;
-
- if (! ieee_change_buffer (info, &info->type_stack->type.classdef->pmiscbuf)
- || ! ieee_write_asn (info, nindx, 'b')
- || ! ieee_write_asn (info, nindx, flags)
- || ! ieee_write_atn65 (info, nindx, bname)
- || ! ieee_write_asn (info, nindx, 0)
- || ! ieee_write_atn65 (info, nindx, fname))
- return FALSE;
- info->type_stack->type.classdef->pmisccount += 5;
-
- free (fname);
-
- return TRUE;
-}
-
-/* Start building a method for a class. */
-
-static bfd_boolean
-ieee_class_start_method (void *p, const char *name)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- assert (info->type_stack != NULL
- && info->type_stack->type.classdef != NULL
- && info->type_stack->type.classdef->method == NULL);
-
- info->type_stack->type.classdef->method = name;
-
- return TRUE;
-}
-
-/* Define a new method variant, either static or not. */
-
-static bfd_boolean
-ieee_class_method_var (struct ieee_handle *info, const char *physname,
- enum debug_visibility visibility,
- bfd_boolean staticp, bfd_boolean constp,
- bfd_boolean volatilep, bfd_vma voffset,
- bfd_boolean context)
-{
- unsigned int flags;
- unsigned int nindx;
- bfd_boolean virtual;
-
- /* We don't need the type of the method. An IEEE consumer which
- wants the type must track down the function by the physical name
- and get the type from that. */
- ieee_pop_unused_type (info);
-
- /* We don't use the context. FIXME: We probably ought to use it to
- adjust the voffset somehow, but I don't really know how. */
- if (context)
- ieee_pop_unused_type (info);
-
- assert (info->type_stack != NULL
- && info->type_stack->type.classdef != NULL
- && info->type_stack->type.classdef->method != NULL);
-
- flags = ieee_vis_to_flags (visibility);
-
- /* FIXME: We never set CXXFLAGS_OVERRIDE, CXXFLAGS_OPERATOR,
- CXXFLAGS_CTORDTOR, CXXFLAGS_CTOR, or CXXFLAGS_INLINE. */
-
- if (staticp)
- flags |= CXXFLAGS_STATIC;
- if (constp)
- flags |= CXXFLAGS_CONST;
- if (volatilep)
- flags |= CXXFLAGS_VOLATILE;
-
- nindx = info->type_stack->type.classdef->indx;
-
- virtual = context || voffset > 0;
-
- if (! ieee_change_buffer (info,
- &info->type_stack->type.classdef->pmiscbuf)
- || ! ieee_write_asn (info, nindx, virtual ? 'v' : 'm')
- || ! ieee_write_asn (info, nindx, flags)
- || ! ieee_write_atn65 (info, nindx,
- info->type_stack->type.classdef->method)
- || ! ieee_write_atn65 (info, nindx, physname))
- return FALSE;
-
- if (virtual)
- {
- if (voffset > info->type_stack->type.classdef->voffset)
- info->type_stack->type.classdef->voffset = voffset;
- if (! ieee_write_asn (info, nindx, voffset))
- return FALSE;
- ++info->type_stack->type.classdef->pmisccount;
- }
-
- if (! ieee_write_asn (info, nindx, 0))
- return FALSE;
-
- info->type_stack->type.classdef->pmisccount += 5;
-
- return TRUE;
-}
-
-/* Define a new method variant. */
-
-static bfd_boolean
-ieee_class_method_variant (void *p, const char *physname,
- enum debug_visibility visibility,
- bfd_boolean constp, bfd_boolean volatilep,
- bfd_vma voffset, bfd_boolean context)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- return ieee_class_method_var (info, physname, visibility, FALSE, constp,
- volatilep, voffset, context);
-}
-
-/* Define a new static method variant. */
-
-static bfd_boolean
-ieee_class_static_method_variant (void *p, const char *physname,
- enum debug_visibility visibility,
- bfd_boolean constp, bfd_boolean volatilep)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- return ieee_class_method_var (info, physname, visibility, TRUE, constp,
- volatilep, 0, FALSE);
-}
-
-/* Finish up a method. */
-
-static bfd_boolean
-ieee_class_end_method (void *p)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- assert (info->type_stack != NULL
- && info->type_stack->type.classdef != NULL
- && info->type_stack->type.classdef->method != NULL);
-
- info->type_stack->type.classdef->method = NULL;
-
- return TRUE;
-}
-
-/* Finish up a class. */
-
-static bfd_boolean
-ieee_end_class_type (void *p)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- unsigned int nindx;
-
- assert (info->type_stack != NULL
- && info->type_stack->type.classdef != NULL);
-
- /* If we were ignoring this class definition because it was a
- duplicate definition, just through away whatever bytes we have
- accumulated. Leave the type on the stack. */
- if (info->type_stack->type.ignorep)
- return TRUE;
-
- nindx = info->type_stack->type.classdef->indx;
-
- /* If we have a virtual table, we can write out the information now. */
- if (info->type_stack->type.classdef->vclass != NULL
- || info->type_stack->type.classdef->ownvptr)
- {
- if (! ieee_change_buffer (info,
- &info->type_stack->type.classdef->pmiscbuf)
- || ! ieee_write_asn (info, nindx, 'z')
- || ! ieee_write_atn65 (info, nindx, "")
- || ! ieee_write_asn (info, nindx,
- info->type_stack->type.classdef->voffset))
- return FALSE;
- if (info->type_stack->type.classdef->ownvptr)
- {
- if (! ieee_write_atn65 (info, nindx, ""))
- return FALSE;
- }
- else
- {
- if (! ieee_write_atn65 (info, nindx,
- info->type_stack->type.classdef->vclass))
- return FALSE;
- }
- if (! ieee_write_asn (info, nindx, 0))
- return FALSE;
- info->type_stack->type.classdef->pmisccount += 5;
- }
-
- /* Now that we know the number of pmisc records, we can write out
- the atn62 which starts the pmisc records, and append them to the
- C++ buffers. */
-
- if (! ieee_change_buffer (info, &info->cxx)
- || ! ieee_write_byte (info, (int) ieee_nn_record)
- || ! ieee_write_number (info, nindx)
- || ! ieee_write_id (info, "")
- || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
- || ! ieee_write_number (info, nindx)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, 62)
- || ! ieee_write_number (info, 80)
- || ! ieee_write_number (info,
- info->type_stack->type.classdef->pmisccount))
- return FALSE;
-
- if (! ieee_append_buffer (info, &info->cxx,
- &info->type_stack->type.classdef->pmiscbuf))
- return FALSE;
- if (! ieee_buffer_emptyp (&info->type_stack->type.classdef->refs))
- {
- if (! ieee_append_buffer (info, &info->cxx,
- &info->type_stack->type.classdef->refs))
- return FALSE;
- }
-
- return ieee_end_struct_type (p);
-}
-
-/* Push a previously seen typedef onto the type stack. */
-
-static bfd_boolean
-ieee_typedef_type (void *p, const char *name)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- struct ieee_name_type_hash_entry *h;
- struct ieee_name_type *nt;
-
- h = ieee_name_type_hash_lookup (&info->typedefs, name, FALSE, FALSE);
-
- /* h should never be NULL, since that would imply that the generic
- debugging code has asked for a typedef which it has not yet
- defined. */
- assert (h != NULL);
-
- /* We always use the most recently defined type for this name, which
- will be the first one on the list. */
-
- nt = h->types;
- if (! ieee_push_type (info, nt->type.indx, nt->type.size,
- nt->type.unsignedp, nt->type.localp))
- return FALSE;
-
- /* Copy over any other type information we may have. */
- info->type_stack->type = nt->type;
-
- return TRUE;
-}
-
-/* Push a tagged type onto the type stack. */
-
-static bfd_boolean
-ieee_tag_type (void *p, const char *name, unsigned int id,
- enum debug_type_kind kind)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- bfd_boolean localp;
- bfd_boolean copy;
- char ab[20];
- struct ieee_name_type_hash_entry *h;
- struct ieee_name_type *nt;
-
- if (kind == DEBUG_KIND_ENUM)
- {
- struct ieee_defined_enum *e;
-
- if (name == NULL)
- abort ();
- for (e = info->enums; e != NULL; e = e->next)
- if (e->tag != NULL && strcmp (e->tag, name) == 0)
- return ieee_push_type (info, e->indx, 0, TRUE, FALSE);
-
- e = (struct ieee_defined_enum *) xmalloc (sizeof *e);
- memset (e, 0, sizeof *e);
-
- e->indx = info->type_indx;
- ++info->type_indx;
- e->tag = name;
- e->defined = FALSE;
-
- e->next = info->enums;
- info->enums = e;
-
- return ieee_push_type (info, e->indx, 0, TRUE, FALSE);
- }
-
- localp = FALSE;
-
- copy = FALSE;
- if (name == NULL)
- {
- sprintf (ab, "__anon%u", id);
- name = ab;
- copy = TRUE;
- }
-
- h = ieee_name_type_hash_lookup (&info->tags, name, TRUE, copy);
- if (h == NULL)
- return FALSE;
-
- for (nt = h->types; nt != NULL; nt = nt->next)
- {
- if (nt->id == id)
- {
- if (! ieee_push_type (info, nt->type.indx, nt->type.size,
- nt->type.unsignedp, nt->type.localp))
- return FALSE;
- /* Copy over any other type information we may have. */
- info->type_stack->type = nt->type;
- return TRUE;
- }
-
- if (! nt->type.localp)
- {
- /* This is a duplicate of a global type, so it must be
- local. */
- localp = TRUE;
- }
- }
-
- nt = (struct ieee_name_type *) xmalloc (sizeof *nt);
- memset (nt, 0, sizeof *nt);
-
- nt->id = id;
- nt->type.name = h->root.string;
- nt->type.indx = info->type_indx;
- nt->type.localp = localp;
- ++info->type_indx;
- nt->kind = kind;
-
- nt->next = h->types;
- h->types = nt;
-
- if (! ieee_push_type (info, nt->type.indx, 0, FALSE, localp))
- return FALSE;
-
- info->type_stack->type.name = h->root.string;
-
- return TRUE;
-}
-
-/* Output a typedef. */
-
-static bfd_boolean
-ieee_typdef (void *p, const char *name)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- struct ieee_write_type type;
- unsigned int indx;
- bfd_boolean found;
- bfd_boolean localp;
- struct ieee_name_type_hash_entry *h;
- struct ieee_name_type *nt;
-
- type = info->type_stack->type;
- indx = type.indx;
-
- /* If this is a simple builtin type using a builtin name, we don't
- want to output the typedef itself. We also want to change the
- type index to correspond to the name being used. We recognize
- names used in stabs debugging output even if they don't exactly
- correspond to the names used for the IEEE builtin types. */
- found = FALSE;
- if (indx <= (unsigned int) builtin_bcd_float)
- {
- switch ((enum builtin_types) indx)
- {
- default:
- break;
-
- case builtin_void:
- if (strcmp (name, "void") == 0)
- found = TRUE;
- break;
-
- case builtin_signed_char:
- case builtin_char:
- if (strcmp (name, "signed char") == 0)
- {
- indx = (unsigned int) builtin_signed_char;
- found = TRUE;
- }
- else if (strcmp (name, "char") == 0)
- {
- indx = (unsigned int) builtin_char;
- found = TRUE;
- }
- break;
-
- case builtin_unsigned_char:
- if (strcmp (name, "unsigned char") == 0)
- found = TRUE;
- break;
-
- case builtin_signed_short_int:
- case builtin_short:
- case builtin_short_int:
- case builtin_signed_short:
- if (strcmp (name, "signed short int") == 0)
- {
- indx = (unsigned int) builtin_signed_short_int;
- found = TRUE;
- }
- else if (strcmp (name, "short") == 0)
- {
- indx = (unsigned int) builtin_short;
- found = TRUE;
- }
- else if (strcmp (name, "short int") == 0)
- {
- indx = (unsigned int) builtin_short_int;
- found = TRUE;
- }
- else if (strcmp (name, "signed short") == 0)
- {
- indx = (unsigned int) builtin_signed_short;
- found = TRUE;
- }
- break;
-
- case builtin_unsigned_short_int:
- case builtin_unsigned_short:
- if (strcmp (name, "unsigned short int") == 0
- || strcmp (name, "short unsigned int") == 0)
- {
- indx = builtin_unsigned_short_int;
- found = TRUE;
- }
- else if (strcmp (name, "unsigned short") == 0)
- {
- indx = builtin_unsigned_short;
- found = TRUE;
- }
- break;
-
- case builtin_signed_long:
- case builtin_int: /* FIXME: Size depends upon architecture. */
- case builtin_long:
- if (strcmp (name, "signed long") == 0)
- {
- indx = builtin_signed_long;
- found = TRUE;
- }
- else if (strcmp (name, "int") == 0)
- {
- indx = builtin_int;
- found = TRUE;
- }
- else if (strcmp (name, "long") == 0
- || strcmp (name, "long int") == 0)
- {
- indx = builtin_long;
- found = TRUE;
- }
- break;
-
- case builtin_unsigned_long:
- case builtin_unsigned: /* FIXME: Size depends upon architecture. */
- case builtin_unsigned_int: /* FIXME: Like builtin_unsigned. */
- if (strcmp (name, "unsigned long") == 0
- || strcmp (name, "long unsigned int") == 0)
- {
- indx = builtin_unsigned_long;
- found = TRUE;
- }
- else if (strcmp (name, "unsigned") == 0)
- {
- indx = builtin_unsigned;
- found = TRUE;
- }
- else if (strcmp (name, "unsigned int") == 0)
- {
- indx = builtin_unsigned_int;
- found = TRUE;
- }
- break;
-
- case builtin_signed_long_long:
- if (strcmp (name, "signed long long") == 0
- || strcmp (name, "long long int") == 0)
- found = TRUE;
- break;
-
- case builtin_unsigned_long_long:
- if (strcmp (name, "unsigned long long") == 0
- || strcmp (name, "long long unsigned int") == 0)
- found = TRUE;
- break;
-
- case builtin_float:
- if (strcmp (name, "float") == 0)
- found = TRUE;
- break;
-
- case builtin_double:
- if (strcmp (name, "double") == 0)
- found = TRUE;
- break;
-
- case builtin_long_double:
- if (strcmp (name, "long double") == 0)
- found = TRUE;
- break;
-
- case builtin_long_long_double:
- if (strcmp (name, "long long double") == 0)
- found = TRUE;
- break;
- }
-
- if (found)
- type.indx = indx;
- }
-
- h = ieee_name_type_hash_lookup (&info->typedefs, name, TRUE, FALSE);
- if (h == NULL)
- return FALSE;
-
- /* See if we have already defined this type with this name. */
- localp = type.localp;
- for (nt = h->types; nt != NULL; nt = nt->next)
- {
- if (nt->id == indx)
- {
- /* If this is a global definition, then we don't need to
- do anything here. */
- if (! nt->type.localp)
- {
- ieee_pop_unused_type (info);
- return TRUE;
- }
- }
- else
- {
- /* This is a duplicate definition, so make this one local. */
- localp = TRUE;
- }
- }
-
- /* We need to add a new typedef for this type. */
-
- nt = (struct ieee_name_type *) xmalloc (sizeof *nt);
- memset (nt, 0, sizeof *nt);
- nt->id = indx;
- nt->type = type;
- nt->type.name = name;
- nt->type.localp = localp;
- nt->kind = DEBUG_KIND_ILLEGAL;
-
- nt->next = h->types;
- h->types = nt;
-
- if (found)
- {
- /* This is one of the builtin typedefs, so we don't need to
- actually define it. */
- ieee_pop_unused_type (info);
- return TRUE;
- }
-
- indx = ieee_pop_type (info);
-
- if (! ieee_define_named_type (info, name, (unsigned int) -1, type.size,
- type.unsignedp, localp,
- (struct ieee_buflist *) NULL)
- || ! ieee_write_number (info, 'T')
- || ! ieee_write_number (info, indx))
- return FALSE;
-
- /* Remove the type we just added to the type stack. This should not
- be ieee_pop_unused_type, since the type is used, we just don't
- need it now. */
- (void) ieee_pop_type (info);
-
- return TRUE;
-}
-
-/* Output a tag for a type. We don't have to do anything here. */
-
-static bfd_boolean
-ieee_tag (void *p, const char *name ATTRIBUTE_UNUSED)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- /* This should not be ieee_pop_unused_type, since we want the type
- to be defined. */
- (void) ieee_pop_type (info);
- return TRUE;
-}
-
-/* Output an integer constant. */
-
-static bfd_boolean
-ieee_int_constant (void *p ATTRIBUTE_UNUSED, const char *name ATTRIBUTE_UNUSED,
- bfd_vma val ATTRIBUTE_UNUSED)
-{
- /* FIXME. */
- return TRUE;
-}
-
-/* Output a floating point constant. */
-
-static bfd_boolean
-ieee_float_constant (void *p ATTRIBUTE_UNUSED,
- const char *name ATTRIBUTE_UNUSED,
- double val ATTRIBUTE_UNUSED)
-{
- /* FIXME. */
- return TRUE;
-}
-
-/* Output a typed constant. */
-
-static bfd_boolean
-ieee_typed_constant (void *p, const char *name ATTRIBUTE_UNUSED,
- bfd_vma val ATTRIBUTE_UNUSED)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- /* FIXME. */
- ieee_pop_unused_type (info);
- return TRUE;
-}
-
-/* Output a variable. */
-
-static bfd_boolean
-ieee_variable (void *p, const char *name, enum debug_var_kind kind,
- bfd_vma val)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- unsigned int name_indx;
- unsigned int size;
- bfd_boolean referencep;
- unsigned int type_indx;
- bfd_boolean asn;
- int refflag;
-
- size = info->type_stack->type.size;
- referencep = info->type_stack->type.referencep;
- type_indx = ieee_pop_type (info);
-
- assert (! ieee_buffer_emptyp (&info->vars));
- if (! ieee_change_buffer (info, &info->vars))
- return FALSE;
-
- name_indx = info->name_indx;
- ++info->name_indx;
-
- /* Write out an NN and an ATN record for this variable. */
- if (! ieee_write_byte (info, (int) ieee_nn_record)
- || ! ieee_write_number (info, name_indx)
- || ! ieee_write_id (info, name)
- || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
- || ! ieee_write_number (info, name_indx)
- || ! ieee_write_number (info, type_indx))
- return FALSE;
- switch (kind)
- {
- default:
- abort ();
- return FALSE;
- case DEBUG_GLOBAL:
- if (! ieee_write_number (info, 8)
- || ! ieee_add_range (info, FALSE, val, val + size))
- return FALSE;
- refflag = 0;
- asn = TRUE;
- break;
- case DEBUG_STATIC:
- if (! ieee_write_number (info, 3)
- || ! ieee_add_range (info, FALSE, val, val + size))
- return FALSE;
- refflag = 1;
- asn = TRUE;
- break;
- case DEBUG_LOCAL_STATIC:
- if (! ieee_write_number (info, 3)
- || ! ieee_add_range (info, FALSE, val, val + size))
- return FALSE;
- refflag = 2;
- asn = TRUE;
- break;
- case DEBUG_LOCAL:
- if (! ieee_write_number (info, 1)
- || ! ieee_write_number (info, val))
- return FALSE;
- refflag = 2;
- asn = FALSE;
- break;
- case DEBUG_REGISTER:
- if (! ieee_write_number (info, 2)
- || ! ieee_write_number (info,
- ieee_genreg_to_regno (info->abfd, val)))
- return FALSE;
- refflag = 2;
- asn = FALSE;
- break;
- }
-
- if (asn)
- {
- if (! ieee_write_asn (info, name_indx, val))
- return FALSE;
- }
-
- /* If this is really a reference type, then we just output it with
- pointer type, and must now output a C++ record indicating that it
- is really reference type. */
- if (referencep)
- {
- unsigned int nindx;
-
- nindx = info->name_indx;
- ++info->name_indx;
-
- /* If this is a global variable, we want to output the misc
- record in the C++ misc record block. Otherwise, we want to
- output it just after the variable definition, which is where
- the current buffer is. */
- if (refflag != 2)
- {
- if (! ieee_change_buffer (info, &info->cxx))
- return FALSE;
- }
-
- if (! ieee_write_byte (info, (int) ieee_nn_record)
- || ! ieee_write_number (info, nindx)
- || ! ieee_write_id (info, "")
- || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
- || ! ieee_write_number (info, nindx)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, 62)
- || ! ieee_write_number (info, 80)
- || ! ieee_write_number (info, 3)
- || ! ieee_write_asn (info, nindx, 'R')
- || ! ieee_write_asn (info, nindx, refflag)
- || ! ieee_write_atn65 (info, nindx, name))
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Start outputting information for a function. */
-
-static bfd_boolean
-ieee_start_function (void *p, const char *name, bfd_boolean global)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- bfd_boolean referencep;
- unsigned int retindx, typeindx;
-
- referencep = info->type_stack->type.referencep;
- retindx = ieee_pop_type (info);
-
- /* Besides recording a BB4 or BB6 block, we record the type of the
- function in the BB1 typedef block. We can't write out the full
- type until we have seen all the parameters, so we accumulate it
- in info->fntype and info->fnargs. */
- if (! ieee_buffer_emptyp (&info->fntype))
- {
- /* FIXME: This might happen someday if we support nested
- functions. */
- abort ();
- }
-
- info->fnname = name;
-
- /* An attribute of 0x40 means that the push mask is unknown. */
- if (! ieee_define_named_type (info, name, (unsigned int) -1, 0, FALSE, TRUE,
- &info->fntype)
- || ! ieee_write_number (info, 'x')
- || ! ieee_write_number (info, 0x40)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, retindx))
- return FALSE;
-
- typeindx = ieee_pop_type (info);
-
- if (! ieee_init_buffer (info, &info->fnargs))
- return FALSE;
- info->fnargcount = 0;
-
- /* If the function return value is actually a reference type, we
- must add a record indicating that. */
- if (referencep)
- {
- unsigned int nindx;
-
- nindx = info->name_indx;
- ++info->name_indx;
- if (! ieee_change_buffer (info, &info->cxx)
- || ! ieee_write_byte (info, (int) ieee_nn_record)
- || ! ieee_write_number (info, nindx)
- || ! ieee_write_id (info, "")
- || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
- || ! ieee_write_number (info, nindx)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, 62)
- || ! ieee_write_number (info, 80)
- || ! ieee_write_number (info, 3)
- || ! ieee_write_asn (info, nindx, 'R')
- || ! ieee_write_asn (info, nindx, global ? 0 : 1)
- || ! ieee_write_atn65 (info, nindx, name))
- return FALSE;
- }
-
- assert (! ieee_buffer_emptyp (&info->vars));
- if (! ieee_change_buffer (info, &info->vars))
- return FALSE;
-
- /* The address is written out as the first block. */
-
- ++info->block_depth;
-
- return (ieee_write_byte (info, (int) ieee_bb_record_enum)
- && ieee_write_byte (info, global ? 4 : 6)
- && ieee_write_number (info, 0)
- && ieee_write_id (info, name)
- && ieee_write_number (info, 0)
- && ieee_write_number (info, typeindx));
-}
-
-/* Add a function parameter. This will normally be called before the
- first block, so we postpone them until we see the block. */
-
-static bfd_boolean
-ieee_function_parameter (void *p, const char *name, enum debug_parm_kind kind,
- bfd_vma val)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
- struct ieee_pending_parm *m, **pm;
-
- assert (info->block_depth == 1);
-
- m = (struct ieee_pending_parm *) xmalloc (sizeof *m);
- memset (m, 0, sizeof *m);
-
- m->next = NULL;
- m->name = name;
- m->referencep = info->type_stack->type.referencep;
- m->type = ieee_pop_type (info);
- m->kind = kind;
- m->val = val;
-
- for (pm = &info->pending_parms; *pm != NULL; pm = &(*pm)->next)
- ;
- *pm = m;
-
- /* Add the type to the fnargs list. */
- if (! ieee_change_buffer (info, &info->fnargs)
- || ! ieee_write_number (info, m->type))
- return FALSE;
- ++info->fnargcount;
-
- return TRUE;
-}
-
-/* Output pending function parameters. */
-
-static bfd_boolean
-ieee_output_pending_parms (struct ieee_handle *info)
-{
- struct ieee_pending_parm *m;
- unsigned int refcount;
-
- refcount = 0;
- for (m = info->pending_parms; m != NULL; m = m->next)
- {
- enum debug_var_kind vkind;
-
- switch (m->kind)
- {
- default:
- abort ();
- return FALSE;
- case DEBUG_PARM_STACK:
- case DEBUG_PARM_REFERENCE:
- vkind = DEBUG_LOCAL;
- break;
- case DEBUG_PARM_REG:
- case DEBUG_PARM_REF_REG:
- vkind = DEBUG_REGISTER;
- break;
- }
-
- if (! ieee_push_type (info, m->type, 0, FALSE, FALSE))
- return FALSE;
- info->type_stack->type.referencep = m->referencep;
- if (m->referencep)
- ++refcount;
- if (! ieee_variable ((void *) info, m->name, vkind, m->val))
- return FALSE;
- }
-
- /* If there are any reference parameters, we need to output a
- miscellaneous record indicating them. */
- if (refcount > 0)
- {
- unsigned int nindx, varindx;
-
- /* FIXME: The MRI compiler outputs the demangled function name
- here, but we are outputting the mangled name. */
- nindx = info->name_indx;
- ++info->name_indx;
- if (! ieee_change_buffer (info, &info->vars)
- || ! ieee_write_byte (info, (int) ieee_nn_record)
- || ! ieee_write_number (info, nindx)
- || ! ieee_write_id (info, "")
- || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
- || ! ieee_write_number (info, nindx)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, 62)
- || ! ieee_write_number (info, 80)
- || ! ieee_write_number (info, refcount + 3)
- || ! ieee_write_asn (info, nindx, 'B')
- || ! ieee_write_atn65 (info, nindx, info->fnname)
- || ! ieee_write_asn (info, nindx, 0))
- return FALSE;
- for (m = info->pending_parms, varindx = 1;
- m != NULL;
- m = m->next, varindx++)
- {
- if (m->referencep)
- {
- if (! ieee_write_asn (info, nindx, varindx))
- return FALSE;
- }
- }
- }
-
- m = info->pending_parms;
- while (m != NULL)
- {
- struct ieee_pending_parm *next;
-
- next = m->next;
- free (m);
- m = next;
- }
-
- info->pending_parms = NULL;
-
- return TRUE;
-}
-
-/* Start a block. If this is the first block, we output the address
- to finish the BB4 or BB6, and then output the function parameters. */
-
-static bfd_boolean
-ieee_start_block (void *p, bfd_vma addr)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- if (! ieee_change_buffer (info, &info->vars))
- return FALSE;
-
- if (info->block_depth == 1)
- {
- if (! ieee_write_number (info, addr)
- || ! ieee_output_pending_parms (info))
- return FALSE;
- }
- else
- {
- if (! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 6)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, "")
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, addr))
- return FALSE;
- }
-
- if (! ieee_start_range (info, addr))
- return FALSE;
-
- ++info->block_depth;
-
- return TRUE;
-}
-
-/* End a block. */
-
-static bfd_boolean
-ieee_end_block (void *p, bfd_vma addr)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- /* The address we are given is the end of the block, but IEEE seems
- to want to the address of the last byte in the block, so we
- subtract one. */
- if (! ieee_change_buffer (info, &info->vars)
- || ! ieee_write_byte (info, (int) ieee_be_record_enum)
- || ! ieee_write_number (info, addr - 1))
- return FALSE;
-
- if (! ieee_end_range (info, addr))
- return FALSE;
-
- --info->block_depth;
-
- if (addr > info->highaddr)
- info->highaddr = addr;
-
- return TRUE;
-}
-
-/* End a function. */
-
-static bfd_boolean
-ieee_end_function (void *p)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- assert (info->block_depth == 1);
-
- --info->block_depth;
-
- /* Now we can finish up fntype, and add it to the typdef section.
- At this point, fntype is the 'x' type up to the argument count,
- and fnargs is the argument types. We must add the argument
- count, and we must add the level. FIXME: We don't record varargs
- functions correctly. In fact, stabs debugging does not give us
- enough information to do so. */
- if (! ieee_change_buffer (info, &info->fntype)
- || ! ieee_write_number (info, info->fnargcount)
- || ! ieee_change_buffer (info, &info->fnargs)
- || ! ieee_write_number (info, 0))
- return FALSE;
-
- /* Make sure the typdef block has been started. */
- if (ieee_buffer_emptyp (&info->types))
- {
- if (! ieee_change_buffer (info, &info->types)
- || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 1)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, info->modname))
- return FALSE;
- }
-
- if (! ieee_append_buffer (info, &info->types, &info->fntype)
- || ! ieee_append_buffer (info, &info->types, &info->fnargs))
- return FALSE;
-
- info->fnname = NULL;
- if (! ieee_init_buffer (info, &info->fntype)
- || ! ieee_init_buffer (info, &info->fnargs))
- return FALSE;
- info->fnargcount = 0;
-
- return TRUE;
-}
-
-/* Record line number information. */
-
-static bfd_boolean
-ieee_lineno (void *p, const char *filename, unsigned long lineno, bfd_vma addr)
-{
- struct ieee_handle *info = (struct ieee_handle *) p;
-
- assert (info->filename != NULL);
-
- /* The HP simulator seems to get confused when more than one line is
- listed for the same address, at least if they are in different
- files. We handle this by always listing the last line for a
- given address, since that seems to be the one that gdb uses. */
- if (info->pending_lineno_filename != NULL
- && addr != info->pending_lineno_addr)
- {
- /* Make sure we have a line number block. */
- if (! ieee_buffer_emptyp (&info->linenos))
- {
- if (! ieee_change_buffer (info, &info->linenos))
- return FALSE;
- }
- else
- {
- info->lineno_name_indx = info->name_indx;
- ++info->name_indx;
- if (! ieee_change_buffer (info, &info->linenos)
- || ! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 5)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, info->filename)
- || ! ieee_write_byte (info, (int) ieee_nn_record)
- || ! ieee_write_number (info, info->lineno_name_indx)
- || ! ieee_write_id (info, ""))
- return FALSE;
- info->lineno_filename = info->filename;
- }
-
- if (strcmp (info->pending_lineno_filename, info->lineno_filename) != 0)
- {
- if (strcmp (info->filename, info->lineno_filename) != 0)
- {
- /* We were not in the main file. Close the block for the
- included file. */
- if (! ieee_write_byte (info, (int) ieee_be_record_enum))
- return FALSE;
- if (strcmp (info->filename, info->pending_lineno_filename) == 0)
- {
- /* We need a new NN record, and we aren't about to
- output one. */
- info->lineno_name_indx = info->name_indx;
- ++info->name_indx;
- if (! ieee_write_byte (info, (int) ieee_nn_record)
- || ! ieee_write_number (info, info->lineno_name_indx)
- || ! ieee_write_id (info, ""))
- return FALSE;
- }
- }
- if (strcmp (info->filename, info->pending_lineno_filename) != 0)
- {
- /* We are not changing to the main file. Open a block for
- the new included file. */
- info->lineno_name_indx = info->name_indx;
- ++info->name_indx;
- if (! ieee_write_byte (info, (int) ieee_bb_record_enum)
- || ! ieee_write_byte (info, 5)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_id (info, info->pending_lineno_filename)
- || ! ieee_write_byte (info, (int) ieee_nn_record)
- || ! ieee_write_number (info, info->lineno_name_indx)
- || ! ieee_write_id (info, ""))
- return FALSE;
- }
- info->lineno_filename = info->pending_lineno_filename;
- }
-
- if (! ieee_write_2bytes (info, (int) ieee_atn_record_enum)
- || ! ieee_write_number (info, info->lineno_name_indx)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_number (info, 7)
- || ! ieee_write_number (info, info->pending_lineno)
- || ! ieee_write_number (info, 0)
- || ! ieee_write_asn (info, info->lineno_name_indx,
- info->pending_lineno_addr))
- return FALSE;
- }
-
- info->pending_lineno_filename = filename;
- info->pending_lineno = lineno;
- info->pending_lineno_addr = addr;
-
- return TRUE;
-}
diff --git a/binutils-2.17/binutils/is-ranlib.c b/binutils-2.17/binutils/is-ranlib.c
deleted file mode 100644
index 22ce3aa4..00000000
--- a/binutils-2.17/binutils/is-ranlib.c
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Linked with ar.o to flag that this program is 'ranlib' (not 'ar'). */
-
-int is_ranlib = 1;
diff --git a/binutils-2.17/binutils/is-strip.c b/binutils-2.17/binutils/is-strip.c
deleted file mode 100644
index 338245d0..00000000
--- a/binutils-2.17/binutils/is-strip.c
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Linked with objcopy.o to flag that this program is 'strip' (not
- 'objcopy'). */
-
-int is_strip = 1;
diff --git a/binutils-2.17/binutils/makefile.vms-in b/binutils-2.17/binutils/makefile.vms-in
deleted file mode 100644
index a809d1b1..00000000
--- a/binutils-2.17/binutils/makefile.vms-in
+++ /dev/null
@@ -1,98 +0,0 @@
-#
-# Makefile for binutils under openVMS (Alpha and Vax)
-#
-# For use with gnu-make for vms
-#
-# Created by Klaus K"ampf, kkaempf@rmi.de
-#
-#
-
-# Distribution version, filled in by configure.com
-VERSION=@VERSION@
-
-ifeq ($(ARCH),ALPHA)
-TARGET=""vms-alpha""
-else
-TARGET=""vms-vax""
-endif
-
-ifeq ($(CC),gcc)
-CFLAGS=/include=([],[-.include],[-.bfd])$(DEFS)
-DEFS=/define=("TARGET=$(TARGET)")
-LIBS=,gnu_cc_library:libgcc/lib,sys$$library:vaxcrtl.olb/lib,gnu_cc_library:crt0.obj
-else
-CFLAGS=/noopt/debug/include=([],[-.include],[-.bfd])$(DEFS)\
-/warnings=disable=(missingreturn,implicitfunc,longextern)
-DEFS=/define=("TARGET=$(TARGET)","const=","unlink=remove")
-LIBS=,sys$$library:vaxcrtl.olb/lib
-endif
-
-BFDLIB = [-.bfd]libbfd.olb/lib
-BFDLIB_DEP = [-.bfd]libbfd.olb
-LIBIBERTY_DEP = [-.libiberty]libiberty.olb
-LIBIBERTY = [-.libiberty]libiberty.olb/lib
-OPCODES_DEP = [-.opcodes]libopcodes.olb
-OPCODES = [-.opcodes]libopcodes.olb/lib
-
-DEBUG_OBJS = rddbg.obj,debug.obj,stabs.obj,ieee.obj,rdcoff.obj
-
-WRITE_DEBUG_OBJS = $(DEBUG_OBJS),wrstabs.obj
-
-BULIBS = []bucomm.obj,version.obj,filemode.obj
-
-ADDL_DEPS = $(BULIBS),$(BFDLIB_DEP),$(LIBIBERTY_DEP)
-ADDL_LIBS = $(BULIBS),$(BFDLIB),$(LIBIBERTY)
-
-SIZEOBJS = $(ADDL_DEPS),size.obj
-
-STRINGSOBJS = $(ADDL_DEPS),strings.obj
-
-NMOBJS = $(ADDL_DEPS),nm.obj
-
-OBJDUMPOBJS = $(ADDL_DEPS),objdump.obj,prdbg.obj,$(DEBUG_OBJS),$(OPCODES_DEP)
-
-all: config.h size.exe strings.exe objdump.exe nm.exe
-
-size.exe: $(SIZEOBJS)
- link/exe=$@ size.obj,$(ADDL_LIBS)$(LIBS)
-
-strings.exe: $(STRINGSOBJS)
- link/exe=$@ strings.obj,$(ADDL_LIBS)$(LIBS)
-
-nm.exe: $(NMOBJS)
- link/exe=$@ nm.obj,$(ADDL_LIBS)$(LIBS)
-
-objdump.exe: $(OBJDUMPOBJS)
- link/exe=$@ objdump.obj,prdbg.obj,$(DEBUG_OBJS),$(BFDLIB),$(OPCODES),$(ADDL_LIBS)$(LIBS)
-
-
-version.obj: version.c
- $(CC) $(CFLAGS)/define=(VERSION="""$(VERSION)""") $<
-
-config.h:
- $$ @configure
- $(MAKE) -f makefile.vms "CC=$(CC)"
-
-[-.bfd]libbfd.olb:
- $(CD) [-.bfd]
- $(MAKE) -f makefile.vms "CC=$(CC)"
- $(CD) [-.binutils]
-
-[-.libiberty]libiberty.olb:
- $(CD) [-.libiberty]
- $(MAKE) -f makefile.vms "CC=$(CC)"
- $(CD) [-.binutils]
-
-[-.opcodes]libopcodes.olb:
- $(CD) [-.opcodes]
- $(MAKE) -f makefile.vms "CC=$(CC)"
- $(CD) [-.binutils]
-
-clean:
- $$ purge
- $(RM) *.obj;
- $(RM) *.exe;
-
-distclean: clean
- $(RM) config.h;
- $(RM) makefile.vms;
diff --git a/binutils-2.17/binutils/maybe-ranlib.c b/binutils-2.17/binutils/maybe-ranlib.c
deleted file mode 100644
index dcaded3d..00000000
--- a/binutils-2.17/binutils/maybe-ranlib.c
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Linked with ar.o to flag that this program decides at runtime
- (using argv[0] if it is is 'ar' or 'ranlib'. */
-
-int is_ranlib = -1;
diff --git a/binutils-2.17/binutils/maybe-strip.c b/binutils-2.17/binutils/maybe-strip.c
deleted file mode 100644
index cfcc1ba0..00000000
--- a/binutils-2.17/binutils/maybe-strip.c
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Linked with objcopy.o to flag that this program decides at runtime
- (using argv[0] if it is is 'strip' or 'objcopy'. */
-
-int is_strip = -1;
diff --git a/binutils-2.17/binutils/nlmconv.c b/binutils-2.17/binutils/nlmconv.c
deleted file mode 100644
index 551e7e59..00000000
--- a/binutils-2.17/binutils/nlmconv.c
+++ /dev/null
@@ -1,2140 +0,0 @@
-/* nlmconv.c -- NLM conversion program
- Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005 Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Written by Ian Lance Taylor <ian@cygnus.com>.
-
- This program can be used to convert any appropriate object file
- into a NetWare Loadable Module (an NLM). It will accept a linker
- specification file which is identical to that accepted by the
- NetWare linker, NLMLINK. */
-
-/* AIX requires this to be the first thing in the file. */
-#ifndef __GNUC__
-# ifdef _AIX
- #pragma alloca
-#endif
-#endif
-
-#include "bfd.h"
-#include "libiberty.h"
-#include "bucomm.h"
-#include "safe-ctype.h"
-
-#include "ansidecl.h"
-#include <time.h>
-#include <sys/stat.h>
-#include <sys/file.h>
-#include <assert.h>
-#include "getopt.h"
-
-/* Internal BFD NLM header. */
-#include "libnlm.h"
-#include "nlmconv.h"
-
-#ifdef NLMCONV_ALPHA
-#include "coff/sym.h"
-#include "coff/ecoff.h"
-#endif
-
-/* If strerror is just a macro, we want to use the one from libiberty
- since it will handle undefined values. */
-#undef strerror
-extern char *strerror (int);
-
-#ifndef SEEK_SET
-#define SEEK_SET 0
-#endif
-
-#ifndef R_OK
-#define R_OK 4
-#define W_OK 2
-#define X_OK 1
-#endif
-
-/* Global variables. */
-
-/* The name used to invoke the program. */
-char *program_name;
-
-/* Local variables. */
-
-/* Whether to print out debugging information (currently just controls
- whether it prints the linker command if there is one). */
-static int debug;
-
-/* The symbol table. */
-static asymbol **symbols;
-
-/* A section we create in the output file to hold pointers to where
- the sections of the input file end up. We will put a pointer to
- this section in the NLM header. These is an entry for each input
- section. The format is
- null terminated section name
- zeroes to adjust to 4 byte boundary
- 4 byte section data file pointer
- 4 byte section size
- We don't need a version number. The way we find this information
- is by finding a stamp in the NLM header information. If we need to
- change the format of this information, we can simply change the
- stamp. */
-static asection *secsec;
-
-/* A temporary file name to be unlinked on exit. Actually, for most
- errors, we leave it around. It's not clear whether that is helpful
- or not. */
-static char *unlink_on_exit;
-
-/* The list of long options. */
-static struct option long_options[] =
-{
- { "debug", no_argument, 0, 'd' },
- { "header-file", required_argument, 0, 'T' },
- { "help", no_argument, 0, 'h' },
- { "input-target", required_argument, 0, 'I' },
- { "input-format", required_argument, 0, 'I' }, /* Obsolete */
- { "linker", required_argument, 0, 'l' },
- { "output-target", required_argument, 0, 'O' },
- { "output-format", required_argument, 0, 'O' }, /* Obsolete */
- { "version", no_argument, 0, 'V' },
- { NULL, no_argument, 0, 0 }
-};
-
-/* Local routines. */
-
-int main (int, char **);
-
-static void show_usage (FILE *, int);
-static const char *select_output_format
- (enum bfd_architecture, unsigned long, bfd_boolean);
-static void setup_sections (bfd *, asection *, void *);
-static void copy_sections (bfd *, asection *, void *);
-static void mangle_relocs
- (bfd *, asection *, arelent ***, long *, char *, bfd_size_type);
-static void default_mangle_relocs
- (bfd *, asection *, arelent ***, long *, char *, bfd_size_type);
-static char *link_inputs (struct string_list *, char *, char *);
-
-#ifdef NLMCONV_I386
-static void i386_mangle_relocs (bfd *, asection *, arelent ***, long *, char *, bfd_size_type);
-#endif
-
-#ifdef NLMCONV_ALPHA
-static void alpha_mangle_relocs (bfd *, asection *, arelent ***, long *, char *, bfd_size_type);
-#endif
-
-#ifdef NLMCONV_POWERPC
-static void powerpc_build_stubs (bfd *, bfd *, asymbol ***, long *);
-static void powerpc_resolve_stubs (bfd *, bfd *);
-static void powerpc_mangle_relocs (bfd *, asection *, arelent ***, long *, char *, bfd_size_type);
-#endif
-
-/* The main routine. */
-
-int
-main (int argc, char **argv)
-{
- int opt;
- char *input_file = NULL;
- const char *input_format = NULL;
- const char *output_format = NULL;
- const char *header_file = NULL;
- char *ld_arg = NULL;
- Nlm_Internal_Fixed_Header fixed_hdr_struct;
- Nlm_Internal_Variable_Header var_hdr_struct;
- Nlm_Internal_Version_Header version_hdr_struct;
- Nlm_Internal_Copyright_Header copyright_hdr_struct;
- Nlm_Internal_Extended_Header extended_hdr_struct;
- bfd *inbfd;
- bfd *outbfd;
- asymbol **newsyms, **outsyms;
- long symcount, newsymalloc, newsymcount;
- long symsize;
- asection *text_sec, *bss_sec, *data_sec;
- bfd_vma vma;
- bfd_size_type align;
- asymbol *endsym;
- long i;
- char inlead, outlead;
- bfd_boolean gotstart, gotexit, gotcheck;
- struct stat st;
- FILE *custom_data = NULL;
- FILE *help_data = NULL;
- FILE *message_data = NULL;
- FILE *rpc_data = NULL;
- FILE *shared_data = NULL;
- size_t custom_size = 0;
- size_t help_size = 0;
- size_t message_size = 0;
- size_t module_size = 0;
- size_t rpc_size = 0;
- asection *custom_section = NULL;
- asection *help_section = NULL;
- asection *message_section = NULL;
- asection *module_section = NULL;
- asection *rpc_section = NULL;
- asection *shared_section = NULL;
- bfd *sharedbfd;
- size_t shared_offset = 0;
- size_t shared_size = 0;
- static Nlm_Internal_Fixed_Header sharedhdr;
- int len;
- char *modname;
- char **matching;
-
-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- program_name = argv[0];
- xmalloc_set_program_name (program_name);
-
- expandargv (&argc, &argv);
-
- bfd_init ();
- set_default_bfd_target ();
-
- while ((opt = getopt_long (argc, argv, "dHhI:l:O:T:Vv", long_options,
- (int *) NULL))
- != EOF)
- {
- switch (opt)
- {
- case 'd':
- debug = 1;
- break;
- case 'H':
- case 'h':
- show_usage (stdout, 0);
- break;
- case 'I':
- input_format = optarg;
- break;
- case 'l':
- ld_arg = optarg;
- break;
- case 'O':
- output_format = optarg;
- break;
- case 'T':
- header_file = optarg;
- break;
- case 'v':
- case 'V':
- print_version ("nlmconv");
- break;
- case 0:
- break;
- default:
- show_usage (stderr, 1);
- break;
- }
- }
-
- /* The input and output files may be named on the command line. */
- output_file = NULL;
- if (optind < argc)
- {
- input_file = argv[optind];
- ++optind;
- if (optind < argc)
- {
- output_file = argv[optind];
- ++optind;
- if (optind < argc)
- show_usage (stderr, 1);
- if (strcmp (input_file, output_file) == 0)
- {
- fatal (_("input and output files must be different"));
- }
- }
- }
-
- /* Initialize the header information to default values. */
- fixed_hdr = &fixed_hdr_struct;
- memset ((void *) &fixed_hdr_struct, 0, sizeof fixed_hdr_struct);
- var_hdr = &var_hdr_struct;
- memset ((void *) &var_hdr_struct, 0, sizeof var_hdr_struct);
- version_hdr = &version_hdr_struct;
- memset ((void *) &version_hdr_struct, 0, sizeof version_hdr_struct);
- copyright_hdr = &copyright_hdr_struct;
- memset ((void *) &copyright_hdr_struct, 0, sizeof copyright_hdr_struct);
- extended_hdr = &extended_hdr_struct;
- memset ((void *) &extended_hdr_struct, 0, sizeof extended_hdr_struct);
- check_procedure = NULL;
- custom_file = NULL;
- debug_info = FALSE;
- exit_procedure = "_Stop";
- export_symbols = NULL;
- map_file = NULL;
- full_map = FALSE;
- help_file = NULL;
- import_symbols = NULL;
- message_file = NULL;
- modules = NULL;
- sharelib_file = NULL;
- start_procedure = "_Prelude";
- verbose = FALSE;
- rpc_file = NULL;
-
- parse_errors = 0;
-
- /* Parse the header file (if there is one). */
- if (header_file != NULL)
- {
- if (! nlmlex_file (header_file)
- || yyparse () != 0
- || parse_errors != 0)
- exit (1);
- }
-
- if (input_files != NULL)
- {
- if (input_file != NULL)
- {
- fatal (_("input file named both on command line and with INPUT"));
- }
- if (input_files->next == NULL)
- input_file = input_files->string;
- else
- input_file = link_inputs (input_files, ld_arg, map_file);
- }
- else if (input_file == NULL)
- {
- non_fatal (_("no input file"));
- show_usage (stderr, 1);
- }
-
- inbfd = bfd_openr (input_file, input_format);
- if (inbfd == NULL)
- bfd_fatal (input_file);
-
- if (! bfd_check_format_matches (inbfd, bfd_object, &matching))
- {
- bfd_nonfatal (input_file);
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- {
- list_matching_formats (matching);
- free (matching);
- }
- exit (1);
- }
-
- if (output_format == NULL)
- output_format = select_output_format (bfd_get_arch (inbfd),
- bfd_get_mach (inbfd),
- bfd_big_endian (inbfd));
-
- assert (output_format != NULL);
-
- /* Use the output file named on the command line if it exists.
- Otherwise use the file named in the OUTPUT statement. */
- if (output_file == NULL)
- {
- non_fatal (_("no name for output file"));
- show_usage (stderr, 1);
- }
-
- outbfd = bfd_openw (output_file, output_format);
- if (outbfd == NULL)
- bfd_fatal (output_file);
- if (! bfd_set_format (outbfd, bfd_object))
- bfd_fatal (output_file);
-
- assert (bfd_get_flavour (outbfd) == bfd_target_nlm_flavour);
-
- /* XXX: Should we accept the unknown bfd format here ? */
- if (bfd_arch_get_compatible (inbfd, outbfd, TRUE) == NULL)
- non_fatal (_("warning: input and output formats are not compatible"));
-
- /* Move the values read from the command file into outbfd. */
- *nlm_fixed_header (outbfd) = fixed_hdr_struct;
- *nlm_variable_header (outbfd) = var_hdr_struct;
- *nlm_version_header (outbfd) = version_hdr_struct;
- *nlm_copyright_header (outbfd) = copyright_hdr_struct;
- *nlm_extended_header (outbfd) = extended_hdr_struct;
-
- /* Start copying the input BFD to the output BFD. */
- if (! bfd_set_file_flags (outbfd, bfd_get_file_flags (inbfd)))
- bfd_fatal (bfd_get_filename (outbfd));
-
- symsize = bfd_get_symtab_upper_bound (inbfd);
- if (symsize < 0)
- bfd_fatal (input_file);
- symbols = (asymbol **) xmalloc (symsize);
- symcount = bfd_canonicalize_symtab (inbfd, symbols);
- if (symcount < 0)
- bfd_fatal (input_file);
-
- /* Make sure we have a .bss section. */
- bss_sec = bfd_get_section_by_name (outbfd, NLM_UNINITIALIZED_DATA_NAME);
- if (bss_sec == NULL)
- {
- bss_sec = bfd_make_section (outbfd, NLM_UNINITIALIZED_DATA_NAME);
- if (bss_sec == NULL
- || ! bfd_set_section_flags (outbfd, bss_sec, SEC_ALLOC)
- || ! bfd_set_section_alignment (outbfd, bss_sec, 1))
- bfd_fatal (_("make .bss section"));
- }
-
- /* We store the original section names in the .nlmsections section,
- so that programs which understand it can resurrect the original
- sections from the NLM. We will put a pointer to .nlmsections in
- the NLM header area. */
- secsec = bfd_make_section (outbfd, ".nlmsections");
- if (secsec == NULL)
- bfd_fatal (_("make .nlmsections section"));
- if (! bfd_set_section_flags (outbfd, secsec, SEC_HAS_CONTENTS))
- bfd_fatal (_("set .nlmsections flags"));
-
-#ifdef NLMCONV_POWERPC
- /* For PowerPC NetWare we need to build stubs for calls to undefined
- symbols. Because each stub requires an entry in the TOC section
- which must be at the same location as other entries in the TOC
- section, we must do this before determining where the TOC section
- goes in setup_sections. */
- if (bfd_get_arch (inbfd) == bfd_arch_powerpc)
- powerpc_build_stubs (inbfd, outbfd, &symbols, &symcount);
-#endif
-
- /* Set up the sections. */
- bfd_map_over_sections (inbfd, setup_sections, (void *) outbfd);
-
- text_sec = bfd_get_section_by_name (outbfd, NLM_CODE_NAME);
-
- /* The .bss section immediately follows the .data section. */
- data_sec = bfd_get_section_by_name (outbfd, NLM_INITIALIZED_DATA_NAME);
- if (data_sec != NULL)
- {
- bfd_size_type add;
-
- vma = bfd_get_section_size (data_sec);
- align = 1 << bss_sec->alignment_power;
- add = ((vma + align - 1) &~ (align - 1)) - vma;
- vma += add;
- if (! bfd_set_section_vma (outbfd, bss_sec, vma))
- bfd_fatal (_("set .bss vma"));
- if (add != 0)
- {
- bfd_size_type data_size;
-
- data_size = bfd_get_section_size (data_sec);
- if (! bfd_set_section_size (outbfd, data_sec, data_size + add))
- bfd_fatal (_("set .data size"));
- }
- }
-
- /* Adjust symbol information. */
- inlead = bfd_get_symbol_leading_char (inbfd);
- outlead = bfd_get_symbol_leading_char (outbfd);
- gotstart = FALSE;
- gotexit = FALSE;
- gotcheck = FALSE;
- newsymalloc = 10;
- newsyms = (asymbol **) xmalloc (newsymalloc * sizeof (asymbol *));
- newsymcount = 0;
- endsym = NULL;
- for (i = 0; i < symcount; i++)
- {
- asymbol *sym;
-
- sym = symbols[i];
-
- /* Add or remove a leading underscore. */
- if (inlead != outlead)
- {
- if (inlead != '\0')
- {
- if (bfd_asymbol_name (sym)[0] == inlead)
- {
- if (outlead == '\0')
- ++sym->name;
- else
- {
- char *new;
-
- new = xmalloc (strlen (bfd_asymbol_name (sym)) + 1);
- new[0] = outlead;
- strcpy (new + 1, bfd_asymbol_name (sym) + 1);
- sym->name = new;
- }
- }
- }
- else
- {
- char *new;
-
- new = xmalloc (strlen (bfd_asymbol_name (sym)) + 2);
- new[0] = outlead;
- strcpy (new + 1, bfd_asymbol_name (sym));
- sym->name = new;
- }
- }
-
- /* NLM's have an uninitialized data section, but they do not
- have a common section in the Unix sense. Move all common
- symbols into the .bss section, and mark them as exported. */
- if (bfd_is_com_section (bfd_get_section (sym)))
- {
- bfd_vma size = sym->value;
-
- sym->section = bss_sec;
- sym->value = bfd_get_section_size (bss_sec);
- size += sym->value;
- align = 1 << bss_sec->alignment_power;
- size = (size + align - 1) & ~(align - 1);
- bfd_set_section_size (outbfd, bss_sec, size);
- sym->flags |= BSF_EXPORT | BSF_GLOBAL;
- }
- else if (bfd_get_section (sym)->output_section != NULL)
- {
- /* Move the symbol into the output section. */
- sym->value += bfd_get_section (sym)->output_offset;
- sym->section = bfd_get_section (sym)->output_section;
- /* This is no longer a section symbol. */
- sym->flags &=~ BSF_SECTION_SYM;
- }
-
- /* Force _edata and _end to be defined. This would normally be
- done by the linker, but the manipulation of the common
- symbols will confuse it. */
- if ((sym->flags & BSF_DEBUGGING) == 0
- && bfd_asymbol_name (sym)[0] == '_'
- && bfd_is_und_section (bfd_get_section (sym)))
- {
- if (strcmp (bfd_asymbol_name (sym), "_edata") == 0)
- {
- sym->section = bss_sec;
- sym->value = 0;
- }
- if (strcmp (bfd_asymbol_name (sym), "_end") == 0)
- {
- sym->section = bss_sec;
- endsym = sym;
- }
-
-#ifdef NLMCONV_POWERPC
- /* For PowerPC NetWare, we define __GOT0. This is the start
- of the .got section. */
- if (bfd_get_arch (inbfd) == bfd_arch_powerpc
- && strcmp (bfd_asymbol_name (sym), "__GOT0") == 0)
- {
- asection *got_sec;
-
- got_sec = bfd_get_section_by_name (inbfd, ".got");
- assert (got_sec != (asection *) NULL);
- sym->value = got_sec->output_offset;
- sym->section = got_sec->output_section;
- }
-#endif
- }
-
- /* If this is a global symbol, check the export list. */
- if ((sym->flags & (BSF_EXPORT | BSF_GLOBAL)) != 0)
- {
- struct string_list *l;
- int found_simple;
-
- /* Unfortunately, a symbol can appear multiple times on the
- export list, with and without prefixes. */
- found_simple = 0;
- for (l = export_symbols; l != NULL; l = l->next)
- {
- if (strcmp (l->string, bfd_asymbol_name (sym)) == 0)
- found_simple = 1;
- else
- {
- char *zbase;
-
- zbase = strchr (l->string, '@');
- if (zbase != NULL
- && strcmp (zbase + 1, bfd_asymbol_name (sym)) == 0)
- {
- /* We must add a symbol with this prefix. */
- if (newsymcount >= newsymalloc)
- {
- newsymalloc += 10;
- newsyms = ((asymbol **)
- xrealloc ((void *) newsyms,
- (newsymalloc
- * sizeof (asymbol *))));
- }
- newsyms[newsymcount] =
- (asymbol *) xmalloc (sizeof (asymbol));
- *newsyms[newsymcount] = *sym;
- newsyms[newsymcount]->name = l->string;
- ++newsymcount;
- }
- }
- }
- if (! found_simple)
- {
- /* The unmodified symbol is actually not exported at
- all. */
- sym->flags &=~ (BSF_GLOBAL | BSF_EXPORT);
- sym->flags |= BSF_LOCAL;
- }
- }
-
- /* If it's an undefined symbol, see if it's on the import list.
- Change the prefix if necessary. */
- if (bfd_is_und_section (bfd_get_section (sym)))
- {
- struct string_list *l;
-
- for (l = import_symbols; l != NULL; l = l->next)
- {
- if (strcmp (l->string, bfd_asymbol_name (sym)) == 0)
- break;
- else
- {
- char *zbase;
-
- zbase = strchr (l->string, '@');
- if (zbase != NULL
- && strcmp (zbase + 1, bfd_asymbol_name (sym)) == 0)
- {
- sym->name = l->string;
- break;
- }
- }
- }
- if (l == NULL)
- non_fatal (_("warning: symbol %s imported but not in import list"),
- bfd_asymbol_name (sym));
- }
-
- /* See if it's one of the special named symbols. */
- if ((sym->flags & BSF_DEBUGGING) == 0)
- {
- bfd_vma val;
-
- /* FIXME: If these symbols are not in the .text section, we
- add the .text section size to the value. This may not be
- correct for all targets. I'm not sure how this should
- really be handled. */
- if (strcmp (bfd_asymbol_name (sym), start_procedure) == 0)
- {
- val = bfd_asymbol_value (sym);
- if (bfd_get_section (sym) == data_sec
- && text_sec != (asection *) NULL)
- val += bfd_section_size (outbfd, text_sec);
- if (! bfd_set_start_address (outbfd, val))
- bfd_fatal (_("set start address"));
- gotstart = TRUE;
- }
- if (strcmp (bfd_asymbol_name (sym), exit_procedure) == 0)
- {
- val = bfd_asymbol_value (sym);
- if (bfd_get_section (sym) == data_sec
- && text_sec != (asection *) NULL)
- val += bfd_section_size (outbfd, text_sec);
- nlm_fixed_header (outbfd)->exitProcedureOffset = val;
- gotexit = TRUE;
- }
- if (check_procedure != NULL
- && strcmp (bfd_asymbol_name (sym), check_procedure) == 0)
- {
- val = bfd_asymbol_value (sym);
- if (bfd_get_section (sym) == data_sec
- && text_sec != (asection *) NULL)
- val += bfd_section_size (outbfd, text_sec);
- nlm_fixed_header (outbfd)->checkUnloadProcedureOffset = val;
- gotcheck = TRUE;
- }
- }
- }
-
- if (endsym != NULL)
- {
- endsym->value = bfd_get_section_size (bss_sec);
-
- /* FIXME: If any relocs referring to _end use inplace addends,
- then I think they need to be updated. This is handled by
- i386_mangle_relocs. Is it needed for any other object
- formats? */
- }
-
- if (newsymcount == 0)
- outsyms = symbols;
- else
- {
- outsyms = (asymbol **) xmalloc ((symcount + newsymcount + 1)
- * sizeof (asymbol *));
- memcpy (outsyms, symbols, symcount * sizeof (asymbol *));
- memcpy (outsyms + symcount, newsyms, newsymcount * sizeof (asymbol *));
- outsyms[symcount + newsymcount] = NULL;
- }
-
- bfd_set_symtab (outbfd, outsyms, symcount + newsymcount);
-
- if (! gotstart)
- non_fatal (_("warning: START procedure %s not defined"), start_procedure);
- if (! gotexit)
- non_fatal (_("warning: EXIT procedure %s not defined"), exit_procedure);
- if (check_procedure != NULL && ! gotcheck)
- non_fatal (_("warning: CHECK procedure %s not defined"), check_procedure);
-
- /* Add additional sections required for the header information. */
- if (custom_file != NULL)
- {
- custom_data = fopen (custom_file, "r");
- if (custom_data == NULL
- || fstat (fileno (custom_data), &st) < 0)
- {
- fprintf (stderr, "%s:%s: %s\n", program_name, custom_file,
- strerror (errno));
- custom_file = NULL;
- }
- else
- {
- custom_size = st.st_size;
- custom_section = bfd_make_section (outbfd, ".nlmcustom");
- if (custom_section == NULL
- || ! bfd_set_section_size (outbfd, custom_section, custom_size)
- || ! bfd_set_section_flags (outbfd, custom_section,
- SEC_HAS_CONTENTS))
- bfd_fatal (_("custom section"));
- }
- }
- if (help_file != NULL)
- {
- help_data = fopen (help_file, "r");
- if (help_data == NULL
- || fstat (fileno (help_data), &st) < 0)
- {
- fprintf (stderr, "%s:%s: %s\n", program_name, help_file,
- strerror (errno));
- help_file = NULL;
- }
- else
- {
- help_size = st.st_size;
- help_section = bfd_make_section (outbfd, ".nlmhelp");
- if (help_section == NULL
- || ! bfd_set_section_size (outbfd, help_section, help_size)
- || ! bfd_set_section_flags (outbfd, help_section,
- SEC_HAS_CONTENTS))
- bfd_fatal (_("help section"));
- strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
- }
- }
- if (message_file != NULL)
- {
- message_data = fopen (message_file, "r");
- if (message_data == NULL
- || fstat (fileno (message_data), &st) < 0)
- {
- fprintf (stderr, "%s:%s: %s\n", program_name, message_file,
- strerror (errno));
- message_file = NULL;
- }
- else
- {
- message_size = st.st_size;
- message_section = bfd_make_section (outbfd, ".nlmmessages");
- if (message_section == NULL
- || ! bfd_set_section_size (outbfd, message_section, message_size)
- || ! bfd_set_section_flags (outbfd, message_section,
- SEC_HAS_CONTENTS))
- bfd_fatal (_("message section"));
- strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
- }
- }
- if (modules != NULL)
- {
- struct string_list *l;
-
- module_size = 0;
- for (l = modules; l != NULL; l = l->next)
- module_size += strlen (l->string) + 1;
- module_section = bfd_make_section (outbfd, ".nlmmodules");
- if (module_section == NULL
- || ! bfd_set_section_size (outbfd, module_section, module_size)
- || ! bfd_set_section_flags (outbfd, module_section,
- SEC_HAS_CONTENTS))
- bfd_fatal (_("module section"));
- }
- if (rpc_file != NULL)
- {
- rpc_data = fopen (rpc_file, "r");
- if (rpc_data == NULL
- || fstat (fileno (rpc_data), &st) < 0)
- {
- fprintf (stderr, "%s:%s: %s\n", program_name, rpc_file,
- strerror (errno));
- rpc_file = NULL;
- }
- else
- {
- rpc_size = st.st_size;
- rpc_section = bfd_make_section (outbfd, ".nlmrpc");
- if (rpc_section == NULL
- || ! bfd_set_section_size (outbfd, rpc_section, rpc_size)
- || ! bfd_set_section_flags (outbfd, rpc_section,
- SEC_HAS_CONTENTS))
- bfd_fatal (_("rpc section"));
- strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
- }
- }
- if (sharelib_file != NULL)
- {
- sharedbfd = bfd_openr (sharelib_file, output_format);
- if (sharedbfd == NULL
- || ! bfd_check_format (sharedbfd, bfd_object))
- {
- fprintf (stderr, "%s:%s: %s\n", program_name, sharelib_file,
- bfd_errmsg (bfd_get_error ()));
- sharelib_file = NULL;
- }
- else
- {
- sharedhdr = *nlm_fixed_header (sharedbfd);
- bfd_close (sharedbfd);
- shared_data = fopen (sharelib_file, "r");
- if (shared_data == NULL
- || (fstat (fileno (shared_data), &st) < 0))
- {
- fprintf (stderr, "%s:%s: %s\n", program_name, sharelib_file,
- strerror (errno));
- sharelib_file = NULL;
- }
- else
- {
- /* If we were clever, we could just copy out the
- sections of the shared library which we actually
- need. However, we would have to figure out the sizes
- of the external and public information, and that can
- not be done without reading through them. */
- if (sharedhdr.uninitializedDataSize > 0)
- {
- /* There is no place to record this information. */
- non_fatal (_("%s: warning: shared libraries can not have uninitialized data"),
- sharelib_file);
- }
- shared_offset = st.st_size;
- if (shared_offset > (size_t) sharedhdr.codeImageOffset)
- shared_offset = sharedhdr.codeImageOffset;
- if (shared_offset > (size_t) sharedhdr.dataImageOffset)
- shared_offset = sharedhdr.dataImageOffset;
- if (shared_offset > (size_t) sharedhdr.relocationFixupOffset)
- shared_offset = sharedhdr.relocationFixupOffset;
- if (shared_offset > (size_t) sharedhdr.externalReferencesOffset)
- shared_offset = sharedhdr.externalReferencesOffset;
- if (shared_offset > (size_t) sharedhdr.publicsOffset)
- shared_offset = sharedhdr.publicsOffset;
- shared_size = st.st_size - shared_offset;
- shared_section = bfd_make_section (outbfd, ".nlmshared");
- if (shared_section == NULL
- || ! bfd_set_section_size (outbfd, shared_section,
- shared_size)
- || ! bfd_set_section_flags (outbfd, shared_section,
- SEC_HAS_CONTENTS))
- bfd_fatal (_("shared section"));
- strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
- }
- }
- }
-
- /* Check whether a version was given. */
- if (strncmp (version_hdr->stamp, "VeRsIoN#", 8) != 0)
- non_fatal (_("warning: No version number given"));
-
- /* At least for now, always create an extended header, because that
- is what NLMLINK does. */
- strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
-
- strncpy (nlm_cygnus_ext_header (outbfd)->stamp, "CyGnUsEx", 8);
-
- /* If the date was not given, force it in. */
- if (nlm_version_header (outbfd)->month == 0
- && nlm_version_header (outbfd)->day == 0
- && nlm_version_header (outbfd)->year == 0)
- {
- time_t now;
- struct tm *ptm;
-
- time (&now);
- ptm = localtime (&now);
- nlm_version_header (outbfd)->month = ptm->tm_mon + 1;
- nlm_version_header (outbfd)->day = ptm->tm_mday;
- nlm_version_header (outbfd)->year = ptm->tm_year + 1900;
- strncpy (version_hdr->stamp, "VeRsIoN#", 8);
- }
-
-#ifdef NLMCONV_POWERPC
- /* Resolve the stubs we build for PowerPC NetWare. */
- if (bfd_get_arch (inbfd) == bfd_arch_powerpc)
- powerpc_resolve_stubs (inbfd, outbfd);
-#endif
-
- /* Copy over the sections. */
- bfd_map_over_sections (inbfd, copy_sections, (void *) outbfd);
-
- /* Finish up the header information. */
- if (custom_file != NULL)
- {
- void *data;
-
- data = xmalloc (custom_size);
- if (fread (data, 1, custom_size, custom_data) != custom_size)
- non_fatal (_("%s: read: %s"), custom_file, strerror (errno));
- else
- {
- if (! bfd_set_section_contents (outbfd, custom_section, data,
- (file_ptr) 0, custom_size))
- bfd_fatal (_("custom section"));
- nlm_fixed_header (outbfd)->customDataOffset =
- custom_section->filepos;
- nlm_fixed_header (outbfd)->customDataSize = custom_size;
- }
- free (data);
- }
- if (! debug_info)
- {
- /* As a special hack, the backend recognizes a debugInfoOffset
- of -1 to mean that it should not output any debugging
- information. This can not be handling by fiddling with the
- symbol table because exported symbols appear in both the
- export information and the debugging information. */
- nlm_fixed_header (outbfd)->debugInfoOffset = (file_ptr) -1;
- }
- if (full_map)
- non_fatal (_("warning: FULLMAP is not supported; try ld -M"));
- if (help_file != NULL)
- {
- void *data;
-
- data = xmalloc (help_size);
- if (fread (data, 1, help_size, help_data) != help_size)
- non_fatal (_("%s: read: %s"), help_file, strerror (errno));
- else
- {
- if (! bfd_set_section_contents (outbfd, help_section, data,
- (file_ptr) 0, help_size))
- bfd_fatal (_("help section"));
- nlm_extended_header (outbfd)->helpFileOffset =
- help_section->filepos;
- nlm_extended_header (outbfd)->helpFileLength = help_size;
- }
- free (data);
- }
- if (message_file != NULL)
- {
- void *data;
-
- data = xmalloc (message_size);
- if (fread (data, 1, message_size, message_data) != message_size)
- non_fatal (_("%s: read: %s"), message_file, strerror (errno));
- else
- {
- if (! bfd_set_section_contents (outbfd, message_section, data,
- (file_ptr) 0, message_size))
- bfd_fatal (_("message section"));
- nlm_extended_header (outbfd)->messageFileOffset =
- message_section->filepos;
- nlm_extended_header (outbfd)->messageFileLength = message_size;
-
- /* FIXME: Are these offsets correct on all platforms? Are
- they 32 bits on all platforms? What endianness? */
- nlm_extended_header (outbfd)->languageID =
- bfd_h_get_32 (outbfd, (bfd_byte *) data + 106);
- nlm_extended_header (outbfd)->messageCount =
- bfd_h_get_32 (outbfd, (bfd_byte *) data + 110);
- }
- free (data);
- }
- if (modules != NULL)
- {
- void *data;
- unsigned char *set;
- struct string_list *l;
- bfd_size_type c;
-
- data = xmalloc (module_size);
- c = 0;
- set = (unsigned char *) data;
- for (l = modules; l != NULL; l = l->next)
- {
- *set = strlen (l->string);
- strncpy ((char *) set + 1, l->string, *set);
- set += *set + 1;
- ++c;
- }
- if (! bfd_set_section_contents (outbfd, module_section, data,
- (file_ptr) 0, module_size))
- bfd_fatal (_("module section"));
- nlm_fixed_header (outbfd)->moduleDependencyOffset =
- module_section->filepos;
- nlm_fixed_header (outbfd)->numberOfModuleDependencies = c;
- }
- if (rpc_file != NULL)
- {
- void *data;
-
- data = xmalloc (rpc_size);
- if (fread (data, 1, rpc_size, rpc_data) != rpc_size)
- non_fatal (_("%s: read: %s"), rpc_file, strerror (errno));
- else
- {
- if (! bfd_set_section_contents (outbfd, rpc_section, data,
- (file_ptr) 0, rpc_size))
- bfd_fatal (_("rpc section"));
- nlm_extended_header (outbfd)->RPCDataOffset =
- rpc_section->filepos;
- nlm_extended_header (outbfd)->RPCDataLength = rpc_size;
- }
- free (data);
- }
- if (sharelib_file != NULL)
- {
- void *data;
-
- data = xmalloc (shared_size);
- if (fseek (shared_data, shared_offset, SEEK_SET) != 0
- || fread (data, 1, shared_size, shared_data) != shared_size)
- non_fatal (_("%s: read: %s"), sharelib_file, strerror (errno));
- else
- {
- if (! bfd_set_section_contents (outbfd, shared_section, data,
- (file_ptr) 0, shared_size))
- bfd_fatal (_("shared section"));
- }
- nlm_extended_header (outbfd)->sharedCodeOffset =
- sharedhdr.codeImageOffset - shared_offset + shared_section->filepos;
- nlm_extended_header (outbfd)->sharedCodeLength =
- sharedhdr.codeImageSize;
- nlm_extended_header (outbfd)->sharedDataOffset =
- sharedhdr.dataImageOffset - shared_offset + shared_section->filepos;
- nlm_extended_header (outbfd)->sharedDataLength =
- sharedhdr.dataImageSize;
- nlm_extended_header (outbfd)->sharedRelocationFixupOffset =
- (sharedhdr.relocationFixupOffset
- - shared_offset
- + shared_section->filepos);
- nlm_extended_header (outbfd)->sharedRelocationFixupCount =
- sharedhdr.numberOfRelocationFixups;
- nlm_extended_header (outbfd)->sharedExternalReferenceOffset =
- (sharedhdr.externalReferencesOffset
- - shared_offset
- + shared_section->filepos);
- nlm_extended_header (outbfd)->sharedExternalReferenceCount =
- sharedhdr.numberOfExternalReferences;
- nlm_extended_header (outbfd)->sharedPublicsOffset =
- sharedhdr.publicsOffset - shared_offset + shared_section->filepos;
- nlm_extended_header (outbfd)->sharedPublicsCount =
- sharedhdr.numberOfPublics;
- nlm_extended_header (outbfd)->sharedDebugRecordOffset =
- sharedhdr.debugInfoOffset - shared_offset + shared_section->filepos;
- nlm_extended_header (outbfd)->sharedDebugRecordCount =
- sharedhdr.numberOfDebugRecords;
- nlm_extended_header (outbfd)->SharedInitializationOffset =
- sharedhdr.codeStartOffset;
- nlm_extended_header (outbfd)->SharedExitProcedureOffset =
- sharedhdr.exitProcedureOffset;
- free (data);
- }
-
- {
- const int max_len = NLM_MODULE_NAME_SIZE - 2;
- const char * filename = lbasename (output_file);
-
- len = strlen (filename);
- if (len > max_len)
- len = max_len;
- nlm_fixed_header (outbfd)->moduleName[0] = len;
-
- strncpy (nlm_fixed_header (outbfd)->moduleName + 1, filename, max_len);
- nlm_fixed_header (outbfd)->moduleName[max_len + 1] = '\0';
-
- for (modname = nlm_fixed_header (outbfd)->moduleName;
- *modname != '\0';
- modname++)
- *modname = TOUPPER (*modname);
- }
-
- strncpy (nlm_variable_header (outbfd)->oldThreadName, " LONG",
- NLM_OLD_THREAD_NAME_LENGTH);
-
- nlm_cygnus_ext_header (outbfd)->offset = secsec->filepos;
- nlm_cygnus_ext_header (outbfd)->length = bfd_section_size (outbfd, secsec);
-
- if (! bfd_close (outbfd))
- bfd_fatal (output_file);
- if (! bfd_close (inbfd))
- bfd_fatal (input_file);
-
- if (unlink_on_exit != NULL)
- unlink (unlink_on_exit);
-
- return 0;
-}
-
-
-/* Show a usage message and exit. */
-
-static void
-show_usage (FILE *file, int status)
-{
- fprintf (file, _("Usage: %s [option(s)] [in-file [out-file]]\n"), program_name);
- fprintf (file, _(" Convert an object file into a NetWare Loadable Module\n"));
- fprintf (file, _(" The options are:\n\
- -I --input-target=<bfdname> Set the input binary file format\n\
- -O --output-target=<bfdname> Set the output binary file format\n\
- -T --header-file=<file> Read <file> for NLM header information\n\
- -l --linker=<linker> Use <linker> for any linking\n\
- -d --debug Display on stderr the linker command line\n\
- @<file> Read options from <file>.\n\
- -h --help Display this information\n\
- -v --version Display the program's version\n\
-"));
- if (status == 0)
- fprintf (file, _("Report bugs to %s\n"), REPORT_BUGS_TO);
- exit (status);
-}
-
-/* Select the output format based on the input architecture, machine,
- and endianness. This chooses the appropriate NLM target. */
-
-static const char *
-select_output_format (enum bfd_architecture arch, unsigned long mach,
- bfd_boolean bigendian ATTRIBUTE_UNUSED)
-{
- switch (arch)
- {
-#ifdef NLMCONV_I386
- case bfd_arch_i386:
- return "nlm32-i386";
-#endif
-#ifdef NLMCONV_SPARC
- case bfd_arch_sparc:
- return "nlm32-sparc";
-#endif
-#ifdef NLMCONV_ALPHA
- case bfd_arch_alpha:
- return "nlm32-alpha";
-#endif
-#ifdef NLMCONV_POWERPC
- case bfd_arch_powerpc:
- return "nlm32-powerpc";
-#endif
- default:
- fatal (_("support not compiled in for %s"),
- bfd_printable_arch_mach (arch, mach));
- }
- /*NOTREACHED*/
-}
-
-/* The BFD sections are copied in two passes. This function selects
- the output section for each input section, and sets up the section
- name, size, etc. */
-
-static void
-setup_sections (bfd *inbfd ATTRIBUTE_UNUSED, asection *insec, void *data_ptr)
-{
- bfd *outbfd = (bfd *) data_ptr;
- flagword f;
- const char *outname;
- asection *outsec;
- bfd_vma offset;
- bfd_size_type align;
- bfd_size_type add;
- bfd_size_type secsecsize;
-
- f = bfd_get_section_flags (inbfd, insec);
- if (f & SEC_CODE)
- outname = NLM_CODE_NAME;
- else if ((f & SEC_LOAD) && (f & SEC_HAS_CONTENTS))
- outname = NLM_INITIALIZED_DATA_NAME;
- else if (f & SEC_ALLOC)
- outname = NLM_UNINITIALIZED_DATA_NAME;
- else
- outname = bfd_section_name (inbfd, insec);
-
- outsec = bfd_get_section_by_name (outbfd, outname);
- if (outsec == NULL)
- {
- outsec = bfd_make_section (outbfd, outname);
- if (outsec == NULL)
- bfd_fatal (_("make section"));
- }
-
- insec->output_section = outsec;
-
- offset = bfd_section_size (outbfd, outsec);
- align = 1 << bfd_section_alignment (inbfd, insec);
- add = ((offset + align - 1) &~ (align - 1)) - offset;
- insec->output_offset = offset + add;
-
- if (! bfd_set_section_size (outbfd, outsec,
- (bfd_section_size (outbfd, outsec)
- + bfd_section_size (inbfd, insec)
- + add)))
- bfd_fatal (_("set section size"));
-
- if ((bfd_section_alignment (inbfd, insec)
- > bfd_section_alignment (outbfd, outsec))
- && ! bfd_set_section_alignment (outbfd, outsec,
- bfd_section_alignment (inbfd, insec)))
- bfd_fatal (_("set section alignment"));
-
- if (! bfd_set_section_flags (outbfd, outsec,
- f | bfd_get_section_flags (outbfd, outsec)))
- bfd_fatal (_("set section flags"));
-
- bfd_set_reloc (outbfd, outsec, (arelent **) NULL, 0);
-
- /* For each input section we allocate space for an entry in
- .nlmsections. */
- secsecsize = bfd_section_size (outbfd, secsec);
- secsecsize += strlen (bfd_section_name (inbfd, insec)) + 1;
- secsecsize = (secsecsize + 3) &~ 3;
- secsecsize += 8;
- if (! bfd_set_section_size (outbfd, secsec, secsecsize))
- bfd_fatal (_("set .nlmsections size"));
-}
-
-/* Copy the section contents. */
-
-static void
-copy_sections (bfd *inbfd, asection *insec, void *data_ptr)
-{
- static bfd_size_type secsecoff = 0;
- bfd *outbfd = (bfd *) data_ptr;
- const char *inname;
- asection *outsec;
- bfd_size_type size;
- void *contents;
- long reloc_size;
- bfd_byte buf[4];
- bfd_size_type add;
-
- inname = bfd_section_name (inbfd, insec);
-
- outsec = insec->output_section;
- assert (outsec != NULL);
-
- size = bfd_get_section_size (insec);
-
- if ((bfd_get_section_flags (inbfd, insec) & SEC_HAS_CONTENTS) == 0)
- contents = NULL;
- else
- {
- contents = xmalloc (size);
- if (! bfd_get_section_contents (inbfd, insec, contents,
- (file_ptr) 0, size))
- bfd_fatal (bfd_get_filename (inbfd));
- }
-
- reloc_size = bfd_get_reloc_upper_bound (inbfd, insec);
- if (reloc_size < 0)
- bfd_fatal (bfd_get_filename (inbfd));
- if (reloc_size != 0)
- {
- arelent **relocs;
- long reloc_count;
-
- relocs = (arelent **) xmalloc (reloc_size);
- reloc_count = bfd_canonicalize_reloc (inbfd, insec, relocs, symbols);
- if (reloc_count < 0)
- bfd_fatal (bfd_get_filename (inbfd));
- mangle_relocs (outbfd, insec, &relocs, &reloc_count, (char *) contents,
- size);
-
- /* FIXME: refers to internal BFD fields. */
- if (outsec->orelocation != (arelent **) NULL)
- {
- bfd_size_type total_count;
- arelent **combined;
-
- total_count = reloc_count + outsec->reloc_count;
- combined = (arelent **) xmalloc (total_count * sizeof (arelent *));
- memcpy (combined, outsec->orelocation,
- outsec->reloc_count * sizeof (arelent *));
- memcpy (combined + outsec->reloc_count, relocs,
- (size_t) (reloc_count * sizeof (arelent *)));
- free (outsec->orelocation);
- reloc_count = total_count;
- relocs = combined;
- }
-
- bfd_set_reloc (outbfd, outsec, relocs, reloc_count);
- }
-
- if (contents != NULL)
- {
- if (! bfd_set_section_contents (outbfd, outsec, contents,
- insec->output_offset, size))
- bfd_fatal (bfd_get_filename (outbfd));
- free (contents);
- }
-
- /* Add this section to .nlmsections. */
- if (! bfd_set_section_contents (outbfd, secsec, (void *) inname, secsecoff,
- strlen (inname) + 1))
- bfd_fatal (_("set .nlmsection contents"));
- secsecoff += strlen (inname) + 1;
-
- add = ((secsecoff + 3) &~ 3) - secsecoff;
- if (add != 0)
- {
- bfd_h_put_32 (outbfd, (bfd_vma) 0, buf);
- if (! bfd_set_section_contents (outbfd, secsec, buf, secsecoff, add))
- bfd_fatal (_("set .nlmsection contents"));
- secsecoff += add;
- }
-
- if (contents != NULL)
- bfd_h_put_32 (outbfd, (bfd_vma) outsec->filepos, buf);
- else
- bfd_h_put_32 (outbfd, (bfd_vma) 0, buf);
- if (! bfd_set_section_contents (outbfd, secsec, buf, secsecoff, 4))
- bfd_fatal (_("set .nlmsection contents"));
- secsecoff += 4;
-
- bfd_h_put_32 (outbfd, (bfd_vma) size, buf);
- if (! bfd_set_section_contents (outbfd, secsec, buf, secsecoff, 4))
- bfd_fatal (_("set .nlmsection contents"));
- secsecoff += 4;
-}
-
-/* Some, perhaps all, NetWare targets require changing the relocs used
- by the input formats. */
-
-static void
-mangle_relocs (bfd *outbfd, asection *insec, arelent ***relocs_ptr,
- long *reloc_count_ptr, char *contents,
- bfd_size_type contents_size)
-{
- switch (bfd_get_arch (outbfd))
- {
-#ifdef NLMCONV_I386
- case bfd_arch_i386:
- i386_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr,
- contents, contents_size);
- break;
-#endif
-#ifdef NLMCONV_ALPHA
- case bfd_arch_alpha:
- alpha_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr,
- contents, contents_size);
- break;
-#endif
-#ifdef NLMCONV_POWERPC
- case bfd_arch_powerpc:
- powerpc_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr,
- contents, contents_size);
- break;
-#endif
- default:
- default_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr,
- contents, contents_size);
- break;
- }
-}
-
-/* By default all we need to do for relocs is change the address by
- the output_offset. */
-
-static void
-default_mangle_relocs (bfd *outbfd ATTRIBUTE_UNUSED, asection *insec,
- arelent ***relocs_ptr, long *reloc_count_ptr,
- char *contents ATTRIBUTE_UNUSED,
- bfd_size_type contents_size ATTRIBUTE_UNUSED)
-{
- if (insec->output_offset != 0)
- {
- long reloc_count;
- arelent **relocs;
- long i;
-
- reloc_count = *reloc_count_ptr;
- relocs = *relocs_ptr;
- for (i = 0; i < reloc_count; i++, relocs++)
- (*relocs)->address += insec->output_offset;
- }
-}
-
-#ifdef NLMCONV_I386
-
-/* NetWare on the i386 supports a restricted set of relocs, which are
- different from those used on other i386 targets. This routine
- converts the relocs. It is, obviously, very target dependent. At
- the moment, the nlm32-i386 backend performs similar translations;
- however, it is more reliable and efficient to do them here. */
-
-static reloc_howto_type nlm_i386_pcrel_howto =
- HOWTO (1, /* type */
- 0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
- 32, /* bitsize */
- TRUE, /* pc_relative */
- 0, /* bitpos */
- complain_overflow_signed, /* complain_on_overflow */
- 0, /* special_function */
- "DISP32", /* name */
- TRUE, /* partial_inplace */
- 0xffffffff, /* src_mask */
- 0xffffffff, /* dst_mask */
- TRUE); /* pcrel_offset */
-
-static void
-i386_mangle_relocs (bfd *outbfd, asection *insec, arelent ***relocs_ptr,
- long *reloc_count_ptr, char *contents,
- bfd_size_type contents_size)
-{
- long reloc_count, i;
- arelent **relocs;
-
- reloc_count = *reloc_count_ptr;
- relocs = *relocs_ptr;
- for (i = 0; i < reloc_count; i++)
- {
- arelent *rel;
- asymbol *sym;
- bfd_size_type address;
- bfd_vma addend;
-
- rel = *relocs++;
- sym = *rel->sym_ptr_ptr;
-
- /* We're moving the relocs from the input section to the output
- section, so we must adjust the address accordingly. */
- address = rel->address;
- rel->address += insec->output_offset;
-
- /* Note that no serious harm will ensue if we fail to change a
- reloc. The backend will fail when writing out the reloc. */
-
- /* Make sure this reloc is within the data we have. We use only
- 4 byte relocs here, so we insist on having 4 bytes. */
- if (address + 4 > contents_size)
- continue;
-
- /* A PC relative reloc entirely within a single section is
- completely unnecessary. This can be generated by ld -r. */
- if (sym == insec->symbol
- && rel->howto != NULL
- && rel->howto->pc_relative
- && ! rel->howto->pcrel_offset)
- {
- --*reloc_count_ptr;
- --relocs;
- memmove (relocs, relocs + 1,
- (size_t) ((reloc_count - i) * sizeof (arelent *)));
- continue;
- }
-
- /* Get the amount the relocation will add in. */
- addend = rel->addend + sym->value;
-
- /* NetWare doesn't support PC relative relocs against defined
- symbols, so we have to eliminate them by doing the relocation
- now. We can only do this if the reloc is within a single
- section. */
- if (rel->howto != NULL
- && rel->howto->pc_relative
- && bfd_get_section (sym) == insec->output_section)
- {
- bfd_vma val;
-
- if (rel->howto->pcrel_offset)
- addend -= address;
-
- val = bfd_get_32 (outbfd, (bfd_byte *) contents + address);
- val += addend;
- bfd_put_32 (outbfd, val, (bfd_byte *) contents + address);
-
- --*reloc_count_ptr;
- --relocs;
- memmove (relocs, relocs + 1,
- (size_t) ((reloc_count - i) * sizeof (arelent *)));
- continue;
- }
-
- /* NetWare doesn't support reloc addends, so we get rid of them
- here by simply adding them into the object data. We handle
- the symbol value, if any, the same way. */
- if (addend != 0
- && rel->howto != NULL
- && rel->howto->rightshift == 0
- && rel->howto->size == 2
- && rel->howto->bitsize == 32
- && rel->howto->bitpos == 0
- && rel->howto->src_mask == 0xffffffff
- && rel->howto->dst_mask == 0xffffffff)
- {
- bfd_vma val;
-
- val = bfd_get_32 (outbfd, (bfd_byte *) contents + address);
- val += addend;
- bfd_put_32 (outbfd, val, (bfd_byte *) contents + address);
-
- /* Adjust the reloc for the changes we just made. */
- rel->addend = 0;
- if (! bfd_is_und_section (bfd_get_section (sym)))
- rel->sym_ptr_ptr = bfd_get_section (sym)->symbol_ptr_ptr;
- }
-
- /* NetWare uses a reloc with pcrel_offset set. We adjust
- pc_relative relocs accordingly. We are going to change the
- howto field, so we can only do this if the current one is
- compatible. We should check that special_function is NULL
- here, but at the moment coff-i386 uses a special_function
- which does not affect what we are doing here. */
- if (rel->howto != NULL
- && rel->howto->pc_relative
- && ! rel->howto->pcrel_offset
- && rel->howto->rightshift == 0
- && rel->howto->size == 2
- && rel->howto->bitsize == 32
- && rel->howto->bitpos == 0
- && rel->howto->src_mask == 0xffffffff
- && rel->howto->dst_mask == 0xffffffff)
- {
- bfd_vma val;
-
- /* When pcrel_offset is not set, it means that the negative
- of the address of the memory location is stored in the
- memory location. We must add it back in. */
- val = bfd_get_32 (outbfd, (bfd_byte *) contents + address);
- val += address;
- bfd_put_32 (outbfd, val, (bfd_byte *) contents + address);
-
- /* We must change to a new howto. */
- rel->howto = &nlm_i386_pcrel_howto;
- }
- }
-}
-
-#endif /* NLMCONV_I386 */
-
-#ifdef NLMCONV_ALPHA
-
-/* On the Alpha the first reloc for every section must be a special
- relocs which hold the GP address. Also, the first reloc in the
- file must be a special reloc which holds the address of the .lita
- section. */
-
-static reloc_howto_type nlm32_alpha_nw_howto =
- HOWTO (ALPHA_R_NW_RELOC, /* type */
- 0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
- 0, /* bitsize */
- FALSE, /* pc_relative */
- 0, /* bitpos */
- complain_overflow_dont, /* complain_on_overflow */
- 0, /* special_function */
- "NW_RELOC", /* name */
- FALSE, /* partial_inplace */
- 0, /* src_mask */
- 0, /* dst_mask */
- FALSE); /* pcrel_offset */
-
-static void
-alpha_mangle_relocs (bfd *outbfd, asection *insec,
- arelent ***relocs_ptr, long *reloc_count_ptr,
- char *contents ATTRIBUTE_UNUSED,
- bfd_size_type contents_size ATTRIBUTE_UNUSED)
-{
- long old_reloc_count;
- arelent **old_relocs;
- arelent **relocs;
-
- old_reloc_count = *reloc_count_ptr;
- old_relocs = *relocs_ptr;
- relocs = (arelent **) xmalloc ((old_reloc_count + 3) * sizeof (arelent *));
- *relocs_ptr = relocs;
-
- if (nlm_alpha_backend_data (outbfd)->lita_address == 0)
- {
- bfd *inbfd;
- asection *lita_section;
-
- inbfd = insec->owner;
- lita_section = bfd_get_section_by_name (inbfd, _LITA);
- if (lita_section != (asection *) NULL)
- {
- nlm_alpha_backend_data (outbfd)->lita_address =
- bfd_get_section_vma (inbfd, lita_section);
- nlm_alpha_backend_data (outbfd)->lita_size =
- bfd_section_size (inbfd, lita_section);
- }
- else
- {
- /* Avoid outputting this reloc again. */
- nlm_alpha_backend_data (outbfd)->lita_address = 4;
- }
-
- *relocs = (arelent *) xmalloc (sizeof (arelent));
- (*relocs)->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
- (*relocs)->address = nlm_alpha_backend_data (outbfd)->lita_address;
- (*relocs)->addend = nlm_alpha_backend_data (outbfd)->lita_size + 1;
- (*relocs)->howto = &nlm32_alpha_nw_howto;
- ++relocs;
- ++(*reloc_count_ptr);
- }
-
- /* Get the GP value from bfd. */
- if (nlm_alpha_backend_data (outbfd)->gp == 0)
- nlm_alpha_backend_data (outbfd)->gp =
- bfd_ecoff_get_gp_value (insec->owner);
-
- *relocs = (arelent *) xmalloc (sizeof (arelent));
- (*relocs)->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
- (*relocs)->address = nlm_alpha_backend_data (outbfd)->gp;
- (*relocs)->addend = 0;
- (*relocs)->howto = &nlm32_alpha_nw_howto;
- ++relocs;
- ++(*reloc_count_ptr);
-
- memcpy (relocs, old_relocs, (size_t) old_reloc_count * sizeof (arelent *));
- relocs[old_reloc_count] = (arelent *) NULL;
-
- free (old_relocs);
-
- if (insec->output_offset != 0)
- {
- bfd_size_type i;
-
- for (i = 0; i < (bfd_size_type) old_reloc_count; i++, relocs++)
- (*relocs)->address += insec->output_offset;
- }
-}
-
-#endif /* NLMCONV_ALPHA */
-
-#ifdef NLMCONV_POWERPC
-
-/* We keep a linked list of stubs which we must build. Because BFD
- requires us to know the sizes of all sections before we can set the
- contents of any, we must figure out which stubs we want to build
- before we can actually build any of them. */
-
-struct powerpc_stub
-{
- /* Next stub in linked list. */
- struct powerpc_stub *next;
-
- /* Symbol whose value is the start of the stub. This is a symbol
- whose name begins with `.'. */
- asymbol *start;
-
- /* Symbol we are going to create a reloc against. This is a symbol
- with the same name as START but without the leading `.'. */
- asymbol *reloc;
-
- /* The TOC index for this stub. This is the index into the TOC
- section at which the reloc is created. */
- unsigned int toc_index;
-};
-
-/* The linked list of stubs. */
-
-static struct powerpc_stub *powerpc_stubs;
-
-/* This is what a stub looks like. The first instruction will get
- adjusted with the correct TOC index. */
-
-static unsigned long powerpc_stub_insns[] =
-{
- 0x81820000, /* lwz r12,0(r2) */
- 0x90410014, /* stw r2,20(r1) */
- 0x800c0000, /* lwz r0,0(r12) */
- 0x804c0004, /* lwz r2,r(r12) */
- 0x7c0903a6, /* mtctr r0 */
- 0x4e800420, /* bctr */
- 0, /* Traceback table. */
- 0xc8000,
- 0
-};
-
-#define POWERPC_STUB_INSN_COUNT \
- (sizeof powerpc_stub_insns / sizeof powerpc_stub_insns[0])
-
-#define POWERPC_STUB_SIZE (4 * POWERPC_STUB_INSN_COUNT)
-
-/* Each stub uses a four byte TOC entry. */
-#define POWERPC_STUB_TOC_ENTRY_SIZE (4)
-
-/* The original size of the .got section. */
-static bfd_size_type powerpc_initial_got_size;
-
-/* Look for all undefined symbols beginning with `.', and prepare to
- build a stub for each one. */
-
-static void
-powerpc_build_stubs (bfd *inbfd, bfd *outbfd ATTRIBUTE_UNUSED,
- asymbol ***symbols_ptr, long *symcount_ptr)
-{
- asection *stub_sec;
- asection *got_sec;
- unsigned int got_base;
- long i;
- long symcount;
- long stubcount;
-
- /* Make a section to hold stubs. We don't set SEC_HAS_CONTENTS for
- the section to prevent copy_sections from reading from it. */
- stub_sec = bfd_make_section (inbfd, ".stubs");
- if (stub_sec == (asection *) NULL
- || ! bfd_set_section_flags (inbfd, stub_sec,
- (SEC_CODE
- | SEC_RELOC
- | SEC_ALLOC
- | SEC_LOAD))
- || ! bfd_set_section_alignment (inbfd, stub_sec, 2))
- bfd_fatal (".stubs");
-
- /* Get the TOC section, which is named .got. */
- got_sec = bfd_get_section_by_name (inbfd, ".got");
- if (got_sec == (asection *) NULL)
- {
- got_sec = bfd_make_section (inbfd, ".got");
- if (got_sec == (asection *) NULL
- || ! bfd_set_section_flags (inbfd, got_sec,
- (SEC_DATA
- | SEC_RELOC
- | SEC_ALLOC
- | SEC_LOAD
- | SEC_HAS_CONTENTS))
- || ! bfd_set_section_alignment (inbfd, got_sec, 2))
- bfd_fatal (".got");
- }
-
- powerpc_initial_got_size = bfd_section_size (inbfd, got_sec);
- got_base = powerpc_initial_got_size;
- got_base = (got_base + 3) &~ 3;
-
- stubcount = 0;
-
- symcount = *symcount_ptr;
- for (i = 0; i < symcount; i++)
- {
- asymbol *sym;
- asymbol *newsym;
- char *newname;
- struct powerpc_stub *item;
-
- sym = (*symbols_ptr)[i];
-
- /* We must make a stub for every undefined symbol whose name
- starts with '.'. */
- if (bfd_asymbol_name (sym)[0] != '.'
- || ! bfd_is_und_section (bfd_get_section (sym)))
- continue;
-
- /* Make a new undefined symbol with the same name but without
- the leading `.'. */
- newsym = (asymbol *) xmalloc (sizeof (asymbol));
- *newsym = *sym;
- newname = (char *) xmalloc (strlen (bfd_asymbol_name (sym)));
- strcpy (newname, bfd_asymbol_name (sym) + 1);
- newsym->name = newname;
-
- /* Define the `.' symbol to be in the stub section. */
- sym->section = stub_sec;
- sym->value = stubcount * POWERPC_STUB_SIZE;
- /* We set the BSF_DYNAMIC flag here so that we can check it when
- we are mangling relocs. FIXME: This is a hack. */
- sym->flags = BSF_LOCAL | BSF_DYNAMIC;
-
- /* Add this stub to the linked list. */
- item = (struct powerpc_stub *) xmalloc (sizeof (struct powerpc_stub));
- item->start = sym;
- item->reloc = newsym;
- item->toc_index = got_base + stubcount * POWERPC_STUB_TOC_ENTRY_SIZE;
-
- item->next = powerpc_stubs;
- powerpc_stubs = item;
-
- ++stubcount;
- }
-
- if (stubcount > 0)
- {
- asymbol **s;
- struct powerpc_stub *l;
-
- /* Add the new symbols we just created to the symbol table. */
- *symbols_ptr = (asymbol **) xrealloc ((char *) *symbols_ptr,
- ((symcount + stubcount)
- * sizeof (asymbol)));
- *symcount_ptr += stubcount;
- s = &(*symbols_ptr)[symcount];
- for (l = powerpc_stubs; l != (struct powerpc_stub *) NULL; l = l->next)
- *s++ = l->reloc;
-
- /* Set the size of the .stubs section and increase the size of
- the .got section. */
- if (! bfd_set_section_size (inbfd, stub_sec,
- stubcount * POWERPC_STUB_SIZE)
- || ! bfd_set_section_size (inbfd, got_sec,
- (got_base
- + (stubcount
- * POWERPC_STUB_TOC_ENTRY_SIZE))))
- bfd_fatal (_("stub section sizes"));
- }
-}
-
-/* Resolve all the stubs for PowerPC NetWare. We fill in the contents
- of the output section, and create new relocs in the TOC. */
-
-static void
-powerpc_resolve_stubs (bfd *inbfd, bfd *outbfd)
-{
- bfd_byte buf[POWERPC_STUB_SIZE];
- unsigned int i;
- unsigned int stubcount;
- arelent **relocs;
- asection *got_sec;
- arelent **r;
- struct powerpc_stub *l;
-
- if (powerpc_stubs == (struct powerpc_stub *) NULL)
- return;
-
- for (i = 0; i < POWERPC_STUB_INSN_COUNT; i++)
- bfd_put_32 (outbfd, (bfd_vma) powerpc_stub_insns[i], buf + i * 4);
-
- got_sec = bfd_get_section_by_name (inbfd, ".got");
- assert (got_sec != (asection *) NULL);
- assert (got_sec->output_section->orelocation == (arelent **) NULL);
-
- stubcount = 0;
- for (l = powerpc_stubs; l != (struct powerpc_stub *) NULL; l = l->next)
- ++stubcount;
- relocs = (arelent **) xmalloc (stubcount * sizeof (arelent *));
-
- r = relocs;
- for (l = powerpc_stubs; l != (struct powerpc_stub *) NULL; l = l->next)
- {
- arelent *reloc;
-
- /* Adjust the first instruction to use the right TOC index. */
- bfd_put_32 (outbfd, (bfd_vma) powerpc_stub_insns[0] + l->toc_index, buf);
-
- /* Write this stub out. */
- if (! bfd_set_section_contents (outbfd,
- bfd_get_section (l->start),
- buf,
- l->start->value,
- POWERPC_STUB_SIZE))
- bfd_fatal (_("writing stub"));
-
- /* Create a new reloc for the TOC entry. */
- reloc = (arelent *) xmalloc (sizeof (arelent));
- reloc->sym_ptr_ptr = &l->reloc;
- reloc->address = l->toc_index + got_sec->output_offset;
- reloc->addend = 0;
- reloc->howto = bfd_reloc_type_lookup (inbfd, BFD_RELOC_32);
-
- *r++ = reloc;
- }
-
- bfd_set_reloc (outbfd, got_sec->output_section, relocs, stubcount);
-}
-
-/* Adjust relocation entries for PowerPC NetWare. We do not output
- TOC relocations. The object code already contains the offset from
- the TOC pointer. When the function is called, the TOC register,
- r2, will be set to the correct TOC value, so there is no need for
- any further reloc. */
-
-static void
-powerpc_mangle_relocs (bfd *outbfd, asection *insec,
- arelent ***relocs_ptr,
- long *reloc_count_ptr, char *contents,
- bfd_size_type contents_size ATTRIBUTE_UNUSED)
-{
- reloc_howto_type *toc_howto;
- long reloc_count;
- arelent **relocs;
- long i;
-
- toc_howto = bfd_reloc_type_lookup (insec->owner, BFD_RELOC_PPC_TOC16);
- if (toc_howto == (reloc_howto_type *) NULL)
- abort ();
-
- /* If this is the .got section, clear out all the contents beyond
- the initial size. We must do this here because copy_sections is
- going to write out whatever we return in the contents field. */
- if (strcmp (bfd_get_section_name (insec->owner, insec), ".got") == 0)
- memset (contents + powerpc_initial_got_size, 0,
- (size_t) (bfd_get_section_size (insec) - powerpc_initial_got_size));
-
- reloc_count = *reloc_count_ptr;
- relocs = *relocs_ptr;
- for (i = 0; i < reloc_count; i++)
- {
- arelent *rel;
- asymbol *sym;
- bfd_vma sym_value;
-
- rel = *relocs++;
- sym = *rel->sym_ptr_ptr;
-
- /* Convert any relocs against the .bss section into relocs
- against the .data section. */
- if (strcmp (bfd_get_section_name (outbfd, bfd_get_section (sym)),
- NLM_UNINITIALIZED_DATA_NAME) == 0)
- {
- asection *datasec;
-
- datasec = bfd_get_section_by_name (outbfd,
- NLM_INITIALIZED_DATA_NAME);
- if (datasec != NULL)
- {
- rel->addend += (bfd_get_section_vma (outbfd,
- bfd_get_section (sym))
- + sym->value);
- rel->sym_ptr_ptr = datasec->symbol_ptr_ptr;
- sym = *rel->sym_ptr_ptr;
- }
- }
-
- /* We must be able to resolve all PC relative relocs at this
- point. If we get a branch to an undefined symbol we build a
- stub, since NetWare will resolve undefined symbols into a
- pointer to a function descriptor. */
- if (rel->howto->pc_relative)
- {
- /* This check for whether a symbol is in the same section as
- the reloc will be wrong if there is a PC relative reloc
- between two sections both of which were placed in the
- same output section. This should not happen. */
- if (bfd_get_section (sym) != insec->output_section)
- non_fatal (_("unresolved PC relative reloc against %s"),
- bfd_asymbol_name (sym));
- else
- {
- bfd_vma val;
-
- assert (rel->howto->size == 2 && rel->howto->pcrel_offset);
- val = bfd_get_32 (outbfd, (bfd_byte *) contents + rel->address);
- val = ((val &~ rel->howto->dst_mask)
- | (((val & rel->howto->src_mask)
- + (sym->value - rel->address)
- + rel->addend)
- & rel->howto->dst_mask));
- bfd_put_32 (outbfd, val, (bfd_byte *) contents + rel->address);
-
- /* If this reloc is against an stubbed symbol and the
- next instruction is
- cror 31,31,31
- then we replace the next instruction with
- lwz r2,20(r1)
- This reloads the TOC pointer after a stub call. */
- if (bfd_asymbol_name (sym)[0] == '.'
- && (sym->flags & BSF_DYNAMIC) != 0
- && (bfd_get_32 (outbfd,
- (bfd_byte *) contents + rel->address + 4)
- == 0x4ffffb82)) /* cror 31,31,31 */
- bfd_put_32 (outbfd, (bfd_vma) 0x80410014, /* lwz r2,20(r1) */
- (bfd_byte *) contents + rel->address + 4);
-
- --*reloc_count_ptr;
- --relocs;
- memmove (relocs, relocs + 1,
- (size_t) ((reloc_count - 1) * sizeof (arelent *)));
- continue;
- }
- }
-
- /* When considering a TOC reloc, we do not want to include the
- symbol value. The symbol will be start of the TOC section
- (which is named .got). We do want to include the addend. */
- if (rel->howto == toc_howto)
- sym_value = 0;
- else
- sym_value = sym->value;
-
- /* If this is a relocation against a symbol with a value, or
- there is a reloc addend, we need to update the addend in the
- object file. */
- if (sym_value + rel->addend != 0)
- {
- bfd_vma val;
-
- switch (rel->howto->size)
- {
- case 1:
- val = bfd_get_16 (outbfd,
- (bfd_byte *) contents + rel->address);
- val = ((val &~ rel->howto->dst_mask)
- | (((val & rel->howto->src_mask)
- + sym_value
- + rel->addend)
- & rel->howto->dst_mask));
- if ((bfd_signed_vma) val < - 0x8000
- || (bfd_signed_vma) val >= 0x8000)
- non_fatal (_("overflow when adjusting relocation against %s"),
- bfd_asymbol_name (sym));
- bfd_put_16 (outbfd, val, (bfd_byte *) contents + rel->address);
- break;
-
- case 2:
- val = bfd_get_32 (outbfd,
- (bfd_byte *) contents + rel->address);
- val = ((val &~ rel->howto->dst_mask)
- | (((val & rel->howto->src_mask)
- + sym_value
- + rel->addend)
- & rel->howto->dst_mask));
- bfd_put_32 (outbfd, val, (bfd_byte *) contents + rel->address);
- break;
-
- default:
- abort ();
- }
-
- if (! bfd_is_und_section (bfd_get_section (sym)))
- rel->sym_ptr_ptr = bfd_get_section (sym)->symbol_ptr_ptr;
- rel->addend = 0;
- }
-
- /* Now that we have incorporated the addend, remove any TOC
- relocs. */
- if (rel->howto == toc_howto)
- {
- --*reloc_count_ptr;
- --relocs;
- memmove (relocs, relocs + 1,
- (size_t) ((reloc_count - i) * sizeof (arelent *)));
- continue;
- }
-
- rel->address += insec->output_offset;
- }
-}
-
-#endif /* NLMCONV_POWERPC */
-
-/* Name of linker. */
-#ifndef LD_NAME
-#define LD_NAME "ld"
-#endif
-
-/* The user has specified several input files. Invoke the linker to
- link them all together, and convert and delete the resulting output
- file. */
-
-static char *
-link_inputs (struct string_list *inputs, char *ld, char * map_file)
-{
- size_t c;
- struct string_list *q;
- char **argv;
- size_t i;
- int pid;
- int status;
- char *errfmt;
- char *errarg;
-
- c = 0;
- for (q = inputs; q != NULL; q = q->next)
- ++c;
-
- argv = (char **) alloca ((c + 7) * sizeof (char *));
-
-#ifndef __MSDOS__
- if (ld == NULL)
- {
- char *p;
-
- /* Find the linker to invoke based on how nlmconv was run. */
- p = program_name + strlen (program_name);
- while (p != program_name)
- {
- if (p[-1] == '/')
- {
- ld = (char *) xmalloc (p - program_name + strlen (LD_NAME) + 1);
- memcpy (ld, program_name, p - program_name);
- strcpy (ld + (p - program_name), LD_NAME);
- break;
- }
- --p;
- }
- }
-#endif
-
- if (ld == NULL)
- ld = (char *) LD_NAME;
-
- unlink_on_exit = make_temp_file (".O");
-
- argv[0] = ld;
- argv[1] = (char *) "-Ur";
- argv[2] = (char *) "-o";
- argv[3] = unlink_on_exit;
- /* If we have been given the name of a mapfile and that
- name is not 'stderr' then pass it on to the linker. */
- if (map_file
- && * map_file
- && strcmp (map_file, "stderr") == 0)
- {
- argv[4] = (char *) "-Map";
- argv[5] = map_file;
- i = 6;
- }
- else
- i = 4;
-
- for (q = inputs; q != NULL; q = q->next, i++)
- argv[i] = q->string;
- argv[i] = NULL;
-
- if (debug)
- {
- for (i = 0; argv[i] != NULL; i++)
- fprintf (stderr, " %s", argv[i]);
- fprintf (stderr, "\n");
- }
-
- pid = pexecute (ld, argv, program_name, (char *) NULL, &errfmt, &errarg,
- PEXECUTE_SEARCH | PEXECUTE_ONE);
- if (pid == -1)
- {
- fprintf (stderr, _("%s: execution of %s failed: "), program_name, ld);
- fprintf (stderr, errfmt, errarg);
- unlink (unlink_on_exit);
- exit (1);
- }
-
- if (pwait (pid, &status, 0) < 0)
- {
- perror ("pwait");
- unlink (unlink_on_exit);
- exit (1);
- }
-
- if (status != 0)
- {
- non_fatal (_("Execution of %s failed"), ld);
- unlink (unlink_on_exit);
- exit (1);
- }
-
- return unlink_on_exit;
-}
diff --git a/binutils-2.17/binutils/nlmconv.h b/binutils-2.17/binutils/nlmconv.h
deleted file mode 100644
index eb951240..00000000
--- a/binutils-2.17/binutils/nlmconv.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* nlmconv.h -- header file for NLM conversion program
- Copyright 1993, 2002, 2003 Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Written by Ian Lance Taylor <ian@cygnus.com>.
-
- bfd.h, nlm/common.h and nlm/internal.h must be included before this
- file. */
-
-/* A linked list of strings. */
-
-struct string_list
-{
- struct string_list *next;
- char *string;
-};
-
-/* The NLM header parser in nlmheader.y stores information in the
- following variables. */
-
-extern Nlm_Internal_Fixed_Header *fixed_hdr;
-extern Nlm_Internal_Variable_Header *var_hdr;
-extern Nlm_Internal_Version_Header *version_hdr;
-extern Nlm_Internal_Copyright_Header *copyright_hdr;
-extern Nlm_Internal_Extended_Header *extended_hdr;
-
-/* Procedure named by CHECK. */
-extern char *check_procedure;
-/* File named by CUSTOM. */
-extern char *custom_file;
-/* Whether to generate debugging information (DEBUG). */
-extern bfd_boolean debug_info;
-/* Procedure named by EXIT. */
-extern char *exit_procedure;
-/* Exported symbols (EXPORT). */
-extern struct string_list *export_symbols;
-/* List of files from INPUT. */
-extern struct string_list *input_files;
-/* Map file name (MAP, FULLMAP). */
-extern char *map_file;
-/* Whether a full map has been requested (FULLMAP). */
-extern bfd_boolean full_map;
-/* File named by HELP. */
-extern char *help_file;
-/* Imported symbols (IMPORT). */
-extern struct string_list *import_symbols;
-/* File named by MESSAGES. */
-extern char *message_file;
-/* Autoload module list (MODULE). */
-extern struct string_list *modules;
-/* File named by OUTPUT. */
-extern char *output_file;
-/* File named by SHARELIB. */
-extern char *sharelib_file;
-/* Start procedure name (START). */
-extern char *start_procedure;
-/* VERBOSE. */
-extern bfd_boolean verbose;
-/* RPC description file (XDCDATA). */
-extern char *rpc_file;
-
-/* The number of serious parse errors. */
-extern int parse_errors;
-
-/* The parser. */
-extern int yyparse (void);
-
-/* Tell the lexer what file to read. */
-extern bfd_boolean nlmlex_file (const char *);
diff --git a/binutils-2.17/binutils/nlmheader.c b/binutils-2.17/binutils/nlmheader.c
deleted file mode 100644
index 1e6a862b..00000000
--- a/binutils-2.17/binutils/nlmheader.c
+++ /dev/null
@@ -1,2534 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.1. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, 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
-
-/* Bison version. */
-#define YYBISON_VERSION "2.1"
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- CHECK = 258,
- CODESTART = 259,
- COPYRIGHT = 260,
- CUSTOM = 261,
- DATE = 262,
- DEBUG = 263,
- DESCRIPTION = 264,
- EXIT = 265,
- EXPORT = 266,
- FLAG_ON = 267,
- FLAG_OFF = 268,
- FULLMAP = 269,
- HELP = 270,
- IMPORT = 271,
- INPUT = 272,
- MAP = 273,
- MESSAGES = 274,
- MODULE = 275,
- MULTIPLE = 276,
- OS_DOMAIN = 277,
- OUTPUT = 278,
- PSEUDOPREEMPTION = 279,
- REENTRANT = 280,
- SCREENNAME = 281,
- SHARELIB = 282,
- STACK = 283,
- START = 284,
- SYNCHRONIZE = 285,
- THREADNAME = 286,
- TYPE = 287,
- VERBOSE = 288,
- VERSIONK = 289,
- XDCDATA = 290,
- STRING = 291,
- QUOTED_STRING = 292
- };
-#endif
-/* Tokens. */
-#define CHECK 258
-#define CODESTART 259
-#define COPYRIGHT 260
-#define CUSTOM 261
-#define DATE 262
-#define DEBUG 263
-#define DESCRIPTION 264
-#define EXIT 265
-#define EXPORT 266
-#define FLAG_ON 267
-#define FLAG_OFF 268
-#define FULLMAP 269
-#define HELP 270
-#define IMPORT 271
-#define INPUT 272
-#define MAP 273
-#define MESSAGES 274
-#define MODULE 275
-#define MULTIPLE 276
-#define OS_DOMAIN 277
-#define OUTPUT 278
-#define PSEUDOPREEMPTION 279
-#define REENTRANT 280
-#define SCREENNAME 281
-#define SHARELIB 282
-#define STACK 283
-#define START 284
-#define SYNCHRONIZE 285
-#define THREADNAME 286
-#define TYPE 287
-#define VERBOSE 288
-#define VERSIONK 289
-#define XDCDATA 290
-#define STRING 291
-#define QUOTED_STRING 292
-
-
-
-
-/* Copy the first part of user declarations. */
-#line 1 "nlmheader.y"
-/* nlmheader.y - parse NLM header specification keywords.
- Copyright 1993, 1994, 1995, 1997, 1998, 2001, 2002, 2003
- Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Written by Ian Lance Taylor <ian@cygnus.com>.
-
- This bison file parses the commands recognized by the NetWare NLM
- linker, except for lists of object files. It stores the
- information in global variables.
-
- This implementation is based on the description in the NetWare Tool
- Maker Specification manual, edition 1.0. */
-
-#include "ansidecl.h"
-#include <stdio.h>
-#include "safe-ctype.h"
-#include "bfd.h"
-#include "bucomm.h"
-#include "nlm/common.h"
-#include "nlm/internal.h"
-#include "nlmconv.h"
-
-/* Information is stored in the structures pointed to by these
- variables. */
-
-Nlm_Internal_Fixed_Header *fixed_hdr;
-Nlm_Internal_Variable_Header *var_hdr;
-Nlm_Internal_Version_Header *version_hdr;
-Nlm_Internal_Copyright_Header *copyright_hdr;
-Nlm_Internal_Extended_Header *extended_hdr;
-
-/* Procedure named by CHECK. */
-char *check_procedure;
-/* File named by CUSTOM. */
-char *custom_file;
-/* Whether to generate debugging information (DEBUG). */
-bfd_boolean debug_info;
-/* Procedure named by EXIT. */
-char *exit_procedure;
-/* Exported symbols (EXPORT). */
-struct string_list *export_symbols;
-/* List of files from INPUT. */
-struct string_list *input_files;
-/* Map file name (MAP, FULLMAP). */
-char *map_file;
-/* Whether a full map has been requested (FULLMAP). */
-bfd_boolean full_map;
-/* File named by HELP. */
-char *help_file;
-/* Imported symbols (IMPORT). */
-struct string_list *import_symbols;
-/* File named by MESSAGES. */
-char *message_file;
-/* Autoload module list (MODULE). */
-struct string_list *modules;
-/* File named by OUTPUT. */
-char *output_file;
-/* File named by SHARELIB. */
-char *sharelib_file;
-/* Start procedure name (START). */
-char *start_procedure;
-/* VERBOSE. */
-bfd_boolean verbose;
-/* RPC description file (XDCDATA). */
-char *rpc_file;
-
-/* The number of serious errors that have occurred. */
-int parse_errors;
-
-/* The current symbol prefix when reading a list of import or export
- symbols. */
-static char *symbol_prefix;
-
-/* Parser error message handler. */
-#define yyerror(msg) nlmheader_error (msg);
-
-/* Local functions. */
-static int yylex (void);
-static void nlmlex_file_push (const char *);
-static bfd_boolean nlmlex_file_open (const char *);
-static int nlmlex_buf_init (void);
-static char nlmlex_buf_add (int);
-static long nlmlex_get_number (const char *);
-static void nlmheader_identify (void);
-static void nlmheader_warn (const char *, int);
-static void nlmheader_error (const char *);
-static struct string_list * string_list_cons (char *, struct string_list *);
-static struct string_list * string_list_append (struct string_list *,
- struct string_list *);
-static struct string_list * string_list_append1 (struct string_list *,
- char *);
-static char *xstrdup (const char *);
-
-
-
-/* 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
-
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 113 "nlmheader.y"
-typedef union YYSTYPE {
- char *string;
- struct string_list *list;
-} YYSTYPE;
-/* Line 196 of yacc.c. */
-#line 275 "nlmheader.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 219 of yacc.c. */
-#line 287 "nlmheader.c"
-
-#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) && (defined (__STDC__) || defined (__cplusplus))
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
-#ifndef YY_
-# if YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(msgid) dgettext ("bison-runtime", msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(msgid) msgid
-# endif
-#endif
-
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# else
-# define YYSTACK_ALLOC alloca
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# define YYINCLUDED_STDLIB_H
-# endif
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
-# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
-# endif
-# else
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# ifndef YYSTACK_ALLOC_MAXIMUM
-# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
-# endif
-# ifdef __cplusplus
-extern "C" {
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
- && (defined (__STDC__) || defined (__cplusplus)))
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifndef YYFREE
-# define YYFREE free
-# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
- && (defined (__STDC__) || defined (__cplusplus)))
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifdef __cplusplus
-}
-# endif
-# 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 int 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 int) + 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 \
- { \
- 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 int yysigned_char;
-#endif
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 64
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 73
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 40
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 11
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 52
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 82
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 292
-
-#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, 2, 2,
- 38, 39, 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, 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, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37
-};
-
-#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, 6, 9, 12, 15, 18, 21,
- 26, 28, 31, 34, 35, 39, 42, 45, 47, 50,
- 53, 54, 58, 61, 63, 66, 69, 72, 74, 76,
- 79, 81, 83, 86, 89, 92, 95, 97, 100, 103,
- 105, 110, 114, 117, 118, 120, 122, 124, 127, 130,
- 134, 136, 137
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yysigned_char yyrhs[] =
-{
- 41, 0, -1, 42, -1, -1, 43, 42, -1, 3,
- 36, -1, 4, 36, -1, 5, 37, -1, 6, 36,
- -1, 7, 36, 36, 36, -1, 8, -1, 9, 37,
- -1, 10, 36, -1, -1, 11, 44, 46, -1, 12,
- 36, -1, 13, 36, -1, 14, -1, 14, 36, -1,
- 15, 36, -1, -1, 16, 45, 46, -1, 17, 50,
- -1, 18, -1, 18, 36, -1, 19, 36, -1, 20,
- 50, -1, 21, -1, 22, -1, 23, 36, -1, 24,
- -1, 25, -1, 26, 37, -1, 27, 36, -1, 28,
- 36, -1, 29, 36, -1, 30, -1, 31, 37, -1,
- 32, 36, -1, 33, -1, 34, 36, 36, 36, -1,
- 34, 36, 36, -1, 35, 36, -1, -1, 47, -1,
- 49, -1, 48, -1, 47, 49, -1, 47, 48, -1,
- 38, 36, 39, -1, 36, -1, -1, 36, 50, -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const unsigned short int yyrline[] =
-{
- 0, 144, 144, 149, 151, 157, 161, 166, 183, 187,
- 205, 209, 225, 230, 229, 237, 242, 247, 252, 257,
- 262, 261, 269, 273, 277, 281, 285, 289, 293, 297,
- 304, 308, 312, 328, 332, 337, 341, 345, 361, 366,
- 370, 394, 410, 420, 423, 434, 438, 442, 446, 455,
- 466, 483, 486
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-/* YYTNAME[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", "CHECK", "CODESTART", "COPYRIGHT",
- "CUSTOM", "DATE", "DEBUG", "DESCRIPTION", "EXIT", "EXPORT", "FLAG_ON",
- "FLAG_OFF", "FULLMAP", "HELP", "IMPORT", "INPUT", "MAP", "MESSAGES",
- "MODULE", "MULTIPLE", "OS_DOMAIN", "OUTPUT", "PSEUDOPREEMPTION",
- "REENTRANT", "SCREENNAME", "SHARELIB", "STACK", "START", "SYNCHRONIZE",
- "THREADNAME", "TYPE", "VERBOSE", "VERSIONK", "XDCDATA", "STRING",
- "QUOTED_STRING", "'('", "')'", "$accept", "file", "commands", "command",
- "@1", "@2", "symbol_list_opt", "symbol_list", "symbol_prefix", "symbol",
- "string_list", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
-static const unsigned short int 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, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 40, 41
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const unsigned char yyr1[] =
-{
- 0, 40, 41, 42, 42, 43, 43, 43, 43, 43,
- 43, 43, 43, 44, 43, 43, 43, 43, 43, 43,
- 45, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 46, 46, 47, 47, 47, 47, 48,
- 49, 50, 50
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const unsigned char yyr2[] =
-{
- 0, 2, 1, 0, 2, 2, 2, 2, 2, 4,
- 1, 2, 2, 0, 3, 2, 2, 1, 2, 2,
- 0, 3, 2, 1, 2, 2, 2, 1, 1, 2,
- 1, 1, 2, 2, 2, 2, 1, 2, 2, 1,
- 4, 3, 2, 0, 1, 1, 1, 2, 2, 3,
- 1, 0, 2
-};
-
-/* 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[] =
-{
- 3, 0, 0, 0, 0, 0, 10, 0, 0, 13,
- 0, 0, 17, 0, 20, 51, 23, 0, 51, 27,
- 28, 0, 30, 31, 0, 0, 0, 0, 36, 0,
- 0, 39, 0, 0, 0, 2, 3, 5, 6, 7,
- 8, 0, 11, 12, 43, 15, 16, 18, 19, 43,
- 51, 22, 24, 25, 26, 29, 32, 33, 34, 35,
- 37, 38, 0, 42, 1, 4, 0, 50, 0, 14,
- 44, 46, 45, 21, 52, 41, 9, 0, 48, 47,
- 40, 49
-};
-
-/* YYDEFGOTO[NTERM-NUM]. */
-static const yysigned_char yydefgoto[] =
-{
- -1, 34, 35, 36, 44, 49, 69, 70, 71, 72,
- 51
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-#define YYPACT_NINF -20
-static const yysigned_char yypact[] =
-{
- -3, -1, 1, 2, 4, 5, -20, 6, 8, -20,
- 9, 10, 11, 12, -20, 13, 14, 16, 13, -20,
- -20, 17, -20, -20, 18, 20, 21, 22, -20, 23,
- 25, -20, 26, 27, 38, -20, -3, -20, -20, -20,
- -20, 28, -20, -20, -2, -20, -20, -20, -20, -2,
- 13, -20, -20, -20, -20, -20, -20, -20, -20, -20,
- -20, -20, 30, -20, -20, -20, 31, -20, 32, -20,
- -2, -20, -20, -20, -20, 33, -20, 3, -20, -20,
- -20, -20
-};
-
-/* YYPGOTO[NTERM-NUM]. */
-static const yysigned_char yypgoto[] =
-{
- -20, -20, 34, -20, -20, -20, 24, -20, -19, -16,
- 15
-};
-
-/* 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[] =
-{
- 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, 27, 28, 29, 30,
- 31, 32, 33, 54, 67, 37, 68, 38, 64, 39,
- 40, 41, 81, 42, 43, 45, 46, 47, 48, 50,
- 52, 78, 53, 55, 79, 56, 57, 58, 59, 0,
- 60, 61, 62, 63, 66, 74, 75, 76, 77, 80,
- 65, 0, 0, 73
-};
-
-static const yysigned_char yycheck[] =
-{
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 18, 36, 36, 38, 36, 0, 37,
- 36, 36, 39, 37, 36, 36, 36, 36, 36, 36,
- 36, 70, 36, 36, 70, 37, 36, 36, 36, -1,
- 37, 36, 36, 36, 36, 50, 36, 36, 36, 36,
- 36, -1, -1, 49
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const unsigned char yystos[] =
-{
- 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 41, 42, 43, 36, 36, 37,
- 36, 36, 37, 36, 44, 36, 36, 36, 36, 45,
- 36, 50, 36, 36, 50, 36, 37, 36, 36, 36,
- 37, 36, 36, 36, 0, 42, 36, 36, 38, 46,
- 47, 48, 49, 46, 50, 36, 36, 36, 48, 49,
- 36, 39
-};
-
-#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 (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
-while (0)
-
-
-#define YYTERROR 1
-#define YYERRCODE 256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
- If N is 0, then set CURRENT to the empty location which ends
- the previous symbol: RHS[0] (always defined). */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- do \
- if (N) \
- { \
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
- } \
- else \
- { \
- (Current).first_line = (Current).last_line = \
- YYRHSLOC (Rhs, 0).last_line; \
- (Current).first_column = (Current).last_column = \
- YYRHSLOC (Rhs, 0).last_column; \
- } \
- while (0)
-#endif
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
-
-#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#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 YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yysymprint (stderr, \
- Type, 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 int *bottom, short int *top)
-#else
-static void
-yy_stack_print (bottom, top)
- short int *bottom;
- short int *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 long int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
- 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 YY_SYMBOL_PRINT(Title, Type, 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
- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
-#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
-{
- 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
-{
- char *yyd = yydest;
- const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
- if (*yystr == '"')
- {
- size_t yyn = 0;
- char const *yyp = yystr;
-
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
- }
-
- if (! yyres)
- return yystrlen (yystr);
-
- return yystpcpy (yyres, yystr) - yyres;
-}
-# 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]);
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
-
-# ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
- switch (yytype)
- {
- default:
- break;
- }
- YYFPRINTF (yyoutput, ")");
-}
-
-#endif /* ! YYDEBUG */
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep)
- const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
-{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
-
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- 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 look-ahead symbol. */
-int yychar;
-
-/* The semantic value of the look-ahead 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
-{
-
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Look-ahead 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 int yyssa[YYINITDEPTH];
- short int *yyss = yyssa;
- short int *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- 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 int *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 (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
- &yystacksize);
-
- yyss = yyss1;
- yyvs = yyvs1;
- }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyexhaustedlab;
-# else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
- short int *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyexhaustedlab;
- 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 look-ahead token if we need one and don't already have one. */
-/* yyresume: */
-
- /* First try to decide what to do without reference to look-ahead token. */
-
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
- /* Not known => get a look-ahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead 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);
- YY_SYMBOL_PRINT ("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 look-ahead token. */
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
- /* 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 5:
-#line 158 "nlmheader.y"
- {
- check_procedure = (yyvsp[0].string);
- }
- break;
-
- case 6:
-#line 162 "nlmheader.y"
- {
- nlmheader_warn (_("CODESTART is not implemented; sorry"), -1);
- free ((yyvsp[0].string));
- }
- break;
-
- case 7:
-#line 167 "nlmheader.y"
- {
- int len;
-
- strncpy (copyright_hdr->stamp, "CoPyRiGhT=", 10);
- len = strlen ((yyvsp[0].string));
- if (len >= NLM_MAX_COPYRIGHT_MESSAGE_LENGTH)
- {
- nlmheader_warn (_("copyright string is too long"),
- NLM_MAX_COPYRIGHT_MESSAGE_LENGTH - 1);
- len = NLM_MAX_COPYRIGHT_MESSAGE_LENGTH - 1;
- }
- copyright_hdr->copyrightMessageLength = len;
- strncpy (copyright_hdr->copyrightMessage, (yyvsp[0].string), len);
- copyright_hdr->copyrightMessage[len] = '\0';
- free ((yyvsp[0].string));
- }
- break;
-
- case 8:
-#line 184 "nlmheader.y"
- {
- custom_file = (yyvsp[0].string);
- }
- break;
-
- case 9:
-#line 188 "nlmheader.y"
- {
- /* We don't set the version stamp here, because we use the
- version stamp to detect whether the required VERSION
- keyword was given. */
- version_hdr->month = nlmlex_get_number ((yyvsp[-2].string));
- version_hdr->day = nlmlex_get_number ((yyvsp[-1].string));
- version_hdr->year = nlmlex_get_number ((yyvsp[0].string));
- free ((yyvsp[-2].string));
- free ((yyvsp[-1].string));
- free ((yyvsp[0].string));
- if (version_hdr->month < 1 || version_hdr->month > 12)
- nlmheader_warn (_("illegal month"), -1);
- if (version_hdr->day < 1 || version_hdr->day > 31)
- nlmheader_warn (_("illegal day"), -1);
- if (version_hdr->year < 1900 || version_hdr->year > 3000)
- nlmheader_warn (_("illegal year"), -1);
- }
- break;
-
- case 10:
-#line 206 "nlmheader.y"
- {
- debug_info = TRUE;
- }
- break;
-
- case 11:
-#line 210 "nlmheader.y"
- {
- int len;
-
- len = strlen ((yyvsp[0].string));
- if (len > NLM_MAX_DESCRIPTION_LENGTH)
- {
- nlmheader_warn (_("description string is too long"),
- NLM_MAX_DESCRIPTION_LENGTH);
- len = NLM_MAX_DESCRIPTION_LENGTH;
- }
- var_hdr->descriptionLength = len;
- strncpy (var_hdr->descriptionText, (yyvsp[0].string), len);
- var_hdr->descriptionText[len] = '\0';
- free ((yyvsp[0].string));
- }
- break;
-
- case 12:
-#line 226 "nlmheader.y"
- {
- exit_procedure = (yyvsp[0].string);
- }
- break;
-
- case 13:
-#line 230 "nlmheader.y"
- {
- symbol_prefix = NULL;
- }
- break;
-
- case 14:
-#line 234 "nlmheader.y"
- {
- export_symbols = string_list_append (export_symbols, (yyvsp[0].list));
- }
- break;
-
- case 15:
-#line 238 "nlmheader.y"
- {
- fixed_hdr->flags |= nlmlex_get_number ((yyvsp[0].string));
- free ((yyvsp[0].string));
- }
- break;
-
- case 16:
-#line 243 "nlmheader.y"
- {
- fixed_hdr->flags &=~ nlmlex_get_number ((yyvsp[0].string));
- free ((yyvsp[0].string));
- }
- break;
-
- case 17:
-#line 248 "nlmheader.y"
- {
- map_file = "";
- full_map = TRUE;
- }
- break;
-
- case 18:
-#line 253 "nlmheader.y"
- {
- map_file = (yyvsp[0].string);
- full_map = TRUE;
- }
- break;
-
- case 19:
-#line 258 "nlmheader.y"
- {
- help_file = (yyvsp[0].string);
- }
- break;
-
- case 20:
-#line 262 "nlmheader.y"
- {
- symbol_prefix = NULL;
- }
- break;
-
- case 21:
-#line 266 "nlmheader.y"
- {
- import_symbols = string_list_append (import_symbols, (yyvsp[0].list));
- }
- break;
-
- case 22:
-#line 270 "nlmheader.y"
- {
- input_files = string_list_append (input_files, (yyvsp[0].list));
- }
- break;
-
- case 23:
-#line 274 "nlmheader.y"
- {
- map_file = "";
- }
- break;
-
- case 24:
-#line 278 "nlmheader.y"
- {
- map_file = (yyvsp[0].string);
- }
- break;
-
- case 25:
-#line 282 "nlmheader.y"
- {
- message_file = (yyvsp[0].string);
- }
- break;
-
- case 26:
-#line 286 "nlmheader.y"
- {
- modules = string_list_append (modules, (yyvsp[0].list));
- }
- break;
-
- case 27:
-#line 290 "nlmheader.y"
- {
- fixed_hdr->flags |= 0x2;
- }
- break;
-
- case 28:
-#line 294 "nlmheader.y"
- {
- fixed_hdr->flags |= 0x10;
- }
- break;
-
- case 29:
-#line 298 "nlmheader.y"
- {
- if (output_file == NULL)
- output_file = (yyvsp[0].string);
- else
- nlmheader_warn (_("ignoring duplicate OUTPUT statement"), -1);
- }
- break;
-
- case 30:
-#line 305 "nlmheader.y"
- {
- fixed_hdr->flags |= 0x8;
- }
- break;
-
- case 31:
-#line 309 "nlmheader.y"
- {
- fixed_hdr->flags |= 0x1;
- }
- break;
-
- case 32:
-#line 313 "nlmheader.y"
- {
- int len;
-
- len = strlen ((yyvsp[0].string));
- if (len >= NLM_MAX_SCREEN_NAME_LENGTH)
- {
- nlmheader_warn (_("screen name is too long"),
- NLM_MAX_SCREEN_NAME_LENGTH);
- len = NLM_MAX_SCREEN_NAME_LENGTH;
- }
- var_hdr->screenNameLength = len;
- strncpy (var_hdr->screenName, (yyvsp[0].string), len);
- var_hdr->screenName[NLM_MAX_SCREEN_NAME_LENGTH] = '\0';
- free ((yyvsp[0].string));
- }
- break;
-
- case 33:
-#line 329 "nlmheader.y"
- {
- sharelib_file = (yyvsp[0].string);
- }
- break;
-
- case 34:
-#line 333 "nlmheader.y"
- {
- var_hdr->stackSize = nlmlex_get_number ((yyvsp[0].string));
- free ((yyvsp[0].string));
- }
- break;
-
- case 35:
-#line 338 "nlmheader.y"
- {
- start_procedure = (yyvsp[0].string);
- }
- break;
-
- case 36:
-#line 342 "nlmheader.y"
- {
- fixed_hdr->flags |= 0x4;
- }
- break;
-
- case 37:
-#line 346 "nlmheader.y"
- {
- int len;
-
- len = strlen ((yyvsp[0].string));
- if (len >= NLM_MAX_THREAD_NAME_LENGTH)
- {
- nlmheader_warn (_("thread name is too long"),
- NLM_MAX_THREAD_NAME_LENGTH);
- len = NLM_MAX_THREAD_NAME_LENGTH;
- }
- var_hdr->threadNameLength = len;
- strncpy (var_hdr->threadName, (yyvsp[0].string), len);
- var_hdr->threadName[len] = '\0';
- free ((yyvsp[0].string));
- }
- break;
-
- case 38:
-#line 362 "nlmheader.y"
- {
- fixed_hdr->moduleType = nlmlex_get_number ((yyvsp[0].string));
- free ((yyvsp[0].string));
- }
- break;
-
- case 39:
-#line 367 "nlmheader.y"
- {
- verbose = TRUE;
- }
- break;
-
- case 40:
-#line 371 "nlmheader.y"
- {
- long val;
-
- strncpy (version_hdr->stamp, "VeRsIoN#", 8);
- version_hdr->majorVersion = nlmlex_get_number ((yyvsp[-2].string));
- val = nlmlex_get_number ((yyvsp[-1].string));
- if (val < 0 || val > 99)
- nlmheader_warn (_("illegal minor version number (must be between 0 and 99)"),
- -1);
- else
- version_hdr->minorVersion = val;
- val = nlmlex_get_number ((yyvsp[0].string));
- if (val < 0)
- nlmheader_warn (_("illegal revision number (must be between 0 and 26)"),
- -1);
- else if (val > 26)
- version_hdr->revision = 0;
- else
- version_hdr->revision = val;
- free ((yyvsp[-2].string));
- free ((yyvsp[-1].string));
- free ((yyvsp[0].string));
- }
- break;
-
- case 41:
-#line 395 "nlmheader.y"
- {
- long val;
-
- strncpy (version_hdr->stamp, "VeRsIoN#", 8);
- version_hdr->majorVersion = nlmlex_get_number ((yyvsp[-1].string));
- val = nlmlex_get_number ((yyvsp[0].string));
- if (val < 0 || val > 99)
- nlmheader_warn (_("illegal minor version number (must be between 0 and 99)"),
- -1);
- else
- version_hdr->minorVersion = val;
- version_hdr->revision = 0;
- free ((yyvsp[-1].string));
- free ((yyvsp[0].string));
- }
- break;
-
- case 42:
-#line 411 "nlmheader.y"
- {
- rpc_file = (yyvsp[0].string);
- }
- break;
-
- case 43:
-#line 420 "nlmheader.y"
- {
- (yyval.list) = NULL;
- }
- break;
-
- case 44:
-#line 424 "nlmheader.y"
- {
- (yyval.list) = (yyvsp[0].list);
- }
- break;
-
- case 45:
-#line 435 "nlmheader.y"
- {
- (yyval.list) = string_list_cons ((yyvsp[0].string), NULL);
- }
- break;
-
- case 46:
-#line 439 "nlmheader.y"
- {
- (yyval.list) = NULL;
- }
- break;
-
- case 47:
-#line 443 "nlmheader.y"
- {
- (yyval.list) = string_list_append1 ((yyvsp[-1].list), (yyvsp[0].string));
- }
- break;
-
- case 48:
-#line 447 "nlmheader.y"
- {
- (yyval.list) = (yyvsp[-1].list);
- }
- break;
-
- case 49:
-#line 456 "nlmheader.y"
- {
- if (symbol_prefix != NULL)
- free (symbol_prefix);
- symbol_prefix = (yyvsp[-1].string);
- }
- break;
-
- case 50:
-#line 467 "nlmheader.y"
- {
- if (symbol_prefix == NULL)
- (yyval.string) = (yyvsp[0].string);
- else
- {
- (yyval.string) = xmalloc (strlen (symbol_prefix) + strlen ((yyvsp[0].string)) + 2);
- sprintf ((yyval.string), "%s@%s", symbol_prefix, (yyvsp[0].string));
- free ((yyvsp[0].string));
- }
- }
- break;
-
- case 51:
-#line 483 "nlmheader.y"
- {
- (yyval.list) = NULL;
- }
- break;
-
- case 52:
-#line 487 "nlmheader.y"
- {
- (yyval.list) = string_list_cons ((yyvsp[-1].string), (yyvsp[0].list));
- }
- break;
-
-
- default: break;
- }
-
-/* Line 1126 of yacc.c. */
-#line 1797 "nlmheader.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)
- {
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- char *yymsg = 0;
-# define YYERROR_VERBOSE_ARGS_MAXIMUM 5
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-#if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-#endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* 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 = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= yysize1 < yysize;
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
-
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= yysize1 < yysize;
- yysize = yysize1;
-
- if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
- yymsg = (char *) YYSTACK_ALLOC (yysize);
- if (yymsg)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yymsg;
- int yyi = 0;
- while ((*yyp = *yyf))
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- yyerror (yymsg);
- YYSTACK_FREE (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- goto yyexhaustedlab;
- }
- }
- else
-#endif /* YYERROR_VERBOSE */
- yyerror (YY_("syntax error"));
- }
-
-
-
- if (yyerrstatus == 3)
- {
- /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
- else
- {
- yydestruct ("Error: discarding", yytoken, &yylval);
- yychar = YYEMPTY;
- }
- }
-
- /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
-
- /* Pacify compilers like GCC when the user code never invokes
- YYERROR and the label yyerrorlab therefore never appears in user
- code. */
- if (0)
- goto yyerrorlab;
-
-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;
-
-
- yydestruct ("Error: popping", yystos[yystate], yyvsp);
- YYPOPSTACK;
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- *++yyvsp = yylval;
-
-
- /* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-#ifndef yyoverflow
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
-yyexhaustedlab:
- yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
-#endif
-
-yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
- while (yyssp != yyss)
- {
- yydestruct ("Cleanup: popping",
- yystos[*yyssp], yyvsp);
- YYPOPSTACK;
- }
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
-#endif
- return yyresult;
-}
-
-
-#line 492 "nlmheader.y"
-
-
-/* If strerror is just a macro, we want to use the one from libiberty
- since it will handle undefined values. */
-#undef strerror
-extern char *strerror PARAMS ((int));
-
-/* The lexer is simple, too simple for flex. Keywords are only
- recognized at the start of lines. Everything else must be an
- argument. A comma is treated as whitespace. */
-
-/* The states the lexer can be in. */
-
-enum lex_state
-{
- /* At the beginning of a line. */
- BEGINNING_OF_LINE,
- /* In the middle of a line. */
- IN_LINE
-};
-
-/* We need to keep a stack of files to handle file inclusion. */
-
-struct input
-{
- /* The file to read from. */
- FILE *file;
- /* The name of the file. */
- char *name;
- /* The current line number. */
- int lineno;
- /* The current state. */
- enum lex_state state;
- /* The next file on the stack. */
- struct input *next;
-};
-
-/* The current input file. */
-
-static struct input current;
-
-/* The character which introduces comments. */
-#define COMMENT_CHAR '#'
-
-/* Start the lexer going on the main input file. */
-
-bfd_boolean
-nlmlex_file (const char *name)
-{
- current.next = NULL;
- return nlmlex_file_open (name);
-}
-
-/* Start the lexer going on a subsidiary input file. */
-
-static void
-nlmlex_file_push (const char *name)
-{
- struct input *push;
-
- push = (struct input *) xmalloc (sizeof (struct input));
- *push = current;
- if (nlmlex_file_open (name))
- current.next = push;
- else
- {
- current = *push;
- free (push);
- }
-}
-
-/* Start lexing from a file. */
-
-static bfd_boolean
-nlmlex_file_open (const char *name)
-{
- current.file = fopen (name, "r");
- if (current.file == NULL)
- {
- fprintf (stderr, "%s:%s: %s\n", program_name, name, strerror (errno));
- ++parse_errors;
- return FALSE;
- }
- current.name = xstrdup (name);
- current.lineno = 1;
- current.state = BEGINNING_OF_LINE;
- return TRUE;
-}
-
-/* Table used to turn keywords into tokens. */
-
-struct keyword_tokens_struct
-{
- const char *keyword;
- int token;
-};
-
-static struct keyword_tokens_struct keyword_tokens[] =
-{
- { "CHECK", CHECK },
- { "CODESTART", CODESTART },
- { "COPYRIGHT", COPYRIGHT },
- { "CUSTOM", CUSTOM },
- { "DATE", DATE },
- { "DEBUG", DEBUG },
- { "DESCRIPTION", DESCRIPTION },
- { "EXIT", EXIT },
- { "EXPORT", EXPORT },
- { "FLAG_ON", FLAG_ON },
- { "FLAG_OFF", FLAG_OFF },
- { "FULLMAP", FULLMAP },
- { "HELP", HELP },
- { "IMPORT", IMPORT },
- { "INPUT", INPUT },
- { "MAP", MAP },
- { "MESSAGES", MESSAGES },
- { "MODULE", MODULE },
- { "MULTIPLE", MULTIPLE },
- { "OS_DOMAIN", OS_DOMAIN },
- { "OUTPUT", OUTPUT },
- { "PSEUDOPREEMPTION", PSEUDOPREEMPTION },
- { "REENTRANT", REENTRANT },
- { "SCREENNAME", SCREENNAME },
- { "SHARELIB", SHARELIB },
- { "STACK", STACK },
- { "STACKSIZE", STACK },
- { "START", START },
- { "SYNCHRONIZE", SYNCHRONIZE },
- { "THREADNAME", THREADNAME },
- { "TYPE", TYPE },
- { "VERBOSE", VERBOSE },
- { "VERSION", VERSIONK },
- { "XDCDATA", XDCDATA }
-};
-
-#define KEYWORD_COUNT (sizeof (keyword_tokens) / sizeof (keyword_tokens[0]))
-
-/* The lexer accumulates strings in these variables. */
-static char *lex_buf;
-static int lex_size;
-static int lex_pos;
-
-/* Start accumulating strings into the buffer. */
-#define BUF_INIT() \
- ((void) (lex_buf != NULL ? lex_pos = 0 : nlmlex_buf_init ()))
-
-static int
-nlmlex_buf_init (void)
-{
- lex_size = 10;
- lex_buf = xmalloc (lex_size + 1);
- lex_pos = 0;
- return 0;
-}
-
-/* Finish a string in the buffer. */
-#define BUF_FINISH() ((void) (lex_buf[lex_pos] = '\0'))
-
-/* Accumulate a character into the buffer. */
-#define BUF_ADD(c) \
- ((void) (lex_pos < lex_size \
- ? lex_buf[lex_pos++] = (c) \
- : nlmlex_buf_add (c)))
-
-static char
-nlmlex_buf_add (int c)
-{
- if (lex_pos >= lex_size)
- {
- lex_size *= 2;
- lex_buf = xrealloc (lex_buf, lex_size + 1);
- }
-
- return lex_buf[lex_pos++] = c;
-}
-
-/* The lexer proper. This is called by the bison generated parsing
- code. */
-
-static int
-yylex (void)
-{
- int c;
-
-tail_recurse:
-
- c = getc (current.file);
-
- /* Commas are treated as whitespace characters. */
- while (ISSPACE (c) || c == ',')
- {
- current.state = IN_LINE;
- if (c == '\n')
- {
- ++current.lineno;
- current.state = BEGINNING_OF_LINE;
- }
- c = getc (current.file);
- }
-
- /* At the end of the file we either pop to the previous file or
- finish up. */
- if (c == EOF)
- {
- fclose (current.file);
- free (current.name);
- if (current.next == NULL)
- return 0;
- else
- {
- struct input *next;
-
- next = current.next;
- current = *next;
- free (next);
- goto tail_recurse;
- }
- }
-
- /* A comment character always means to drop everything until the
- next newline. */
- if (c == COMMENT_CHAR)
- {
- do
- {
- c = getc (current.file);
- }
- while (c != '\n');
- ++current.lineno;
- current.state = BEGINNING_OF_LINE;
- goto tail_recurse;
- }
-
- /* An '@' introduces an include file. */
- if (c == '@')
- {
- do
- {
- c = getc (current.file);
- if (c == '\n')
- ++current.lineno;
- }
- while (ISSPACE (c));
- BUF_INIT ();
- while (! ISSPACE (c) && c != EOF)
- {
- BUF_ADD (c);
- c = getc (current.file);
- }
- BUF_FINISH ();
-
- ungetc (c, current.file);
-
- nlmlex_file_push (lex_buf);
- goto tail_recurse;
- }
-
- /* A non-space character at the start of a line must be the start of
- a keyword. */
- if (current.state == BEGINNING_OF_LINE)
- {
- BUF_INIT ();
- while (ISALNUM (c) || c == '_')
- {
- BUF_ADD (TOUPPER (c));
- c = getc (current.file);
- }
- BUF_FINISH ();
-
- if (c != EOF && ! ISSPACE (c) && c != ',')
- {
- nlmheader_identify ();
- fprintf (stderr, _("%s:%d: illegal character in keyword: %c\n"),
- current.name, current.lineno, c);
- }
- else
- {
- unsigned int i;
-
- for (i = 0; i < KEYWORD_COUNT; i++)
- {
- if (lex_buf[0] == keyword_tokens[i].keyword[0]
- && strcmp (lex_buf, keyword_tokens[i].keyword) == 0)
- {
- /* Pushing back the final whitespace avoids worrying
- about \n here. */
- ungetc (c, current.file);
- current.state = IN_LINE;
- return keyword_tokens[i].token;
- }
- }
-
- nlmheader_identify ();
- fprintf (stderr, _("%s:%d: unrecognized keyword: %s\n"),
- current.name, current.lineno, lex_buf);
- }
-
- ++parse_errors;
- /* Treat the rest of this line as a comment. */
- ungetc (COMMENT_CHAR, current.file);
- goto tail_recurse;
- }
-
- /* Parentheses just represent themselves. */
- if (c == '(' || c == ')')
- return c;
-
- /* Handle quoted strings. */
- if (c == '"' || c == '\'')
- {
- int quote;
- int start_lineno;
-
- quote = c;
- start_lineno = current.lineno;
-
- c = getc (current.file);
- BUF_INIT ();
- while (c != quote && c != EOF)
- {
- BUF_ADD (c);
- if (c == '\n')
- ++current.lineno;
- c = getc (current.file);
- }
- BUF_FINISH ();
-
- if (c == EOF)
- {
- nlmheader_identify ();
- fprintf (stderr, _("%s:%d: end of file in quoted string\n"),
- current.name, start_lineno);
- ++parse_errors;
- }
-
- /* FIXME: Possible memory leak. */
- yylval.string = xstrdup (lex_buf);
- return QUOTED_STRING;
- }
-
- /* Gather a generic argument. */
- BUF_INIT ();
- while (! ISSPACE (c)
- && c != ','
- && c != COMMENT_CHAR
- && c != '('
- && c != ')')
- {
- BUF_ADD (c);
- c = getc (current.file);
- }
- BUF_FINISH ();
-
- ungetc (c, current.file);
-
- /* FIXME: Possible memory leak. */
- yylval.string = xstrdup (lex_buf);
- return STRING;
-}
-
-/* Get a number from a string. */
-
-static long
-nlmlex_get_number (const char *s)
-{
- long ret;
- char *send;
-
- ret = strtol (s, &send, 10);
- if (*send != '\0')
- nlmheader_warn (_("bad number"), -1);
- return ret;
-}
-
-/* Prefix the nlmconv warnings with a note as to where they come from.
- We don't use program_name on every warning, because then some
- versions of the emacs next-error function can't recognize the line
- number. */
-
-static void
-nlmheader_identify (void)
-{
- static int done;
-
- if (! done)
- {
- fprintf (stderr, _("%s: problems in NLM command language input:\n"),
- program_name);
- done = 1;
- }
-}
-
-/* Issue a warning. */
-
-static void
-nlmheader_warn (const char *s, int imax)
-{
- nlmheader_identify ();
- fprintf (stderr, "%s:%d: %s", current.name, current.lineno, s);
- if (imax != -1)
- fprintf (stderr, " (max %d)", imax);
- fprintf (stderr, "\n");
-}
-
-/* Report an error. */
-
-static void
-nlmheader_error (const char *s)
-{
- nlmheader_warn (s, -1);
- ++parse_errors;
-}
-
-/* Add a string to a string list. */
-
-static struct string_list *
-string_list_cons (char *s, struct string_list *l)
-{
- struct string_list *ret;
-
- ret = (struct string_list *) xmalloc (sizeof (struct string_list));
- ret->next = l;
- ret->string = s;
- return ret;
-}
-
-/* Append a string list to another string list. */
-
-static struct string_list *
-string_list_append (struct string_list *l1, struct string_list *l2)
-{
- register struct string_list **pp;
-
- for (pp = &l1; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = l2;
- return l1;
-}
-
-/* Append a string to a string list. */
-
-static struct string_list *
-string_list_append1 (struct string_list *l, char *s)
-{
- struct string_list *n;
- register struct string_list **pp;
-
- n = (struct string_list *) xmalloc (sizeof (struct string_list));
- n->next = NULL;
- n->string = s;
- for (pp = &l; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = n;
- return l;
-}
-
-/* Duplicate a string in memory. */
-
-static char *
-xstrdup (const char *s)
-{
- unsigned long len;
- char *ret;
-
- len = strlen (s);
- ret = xmalloc (len + 1);
- strcpy (ret, s);
- return ret;
-}
-
diff --git a/binutils-2.17/binutils/nlmheader.h b/binutils-2.17/binutils/nlmheader.h
deleted file mode 100644
index 42ca39af..00000000
--- a/binutils-2.17/binutils/nlmheader.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.1. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, 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 {
- CHECK = 258,
- CODESTART = 259,
- COPYRIGHT = 260,
- CUSTOM = 261,
- DATE = 262,
- DEBUG = 263,
- DESCRIPTION = 264,
- EXIT = 265,
- EXPORT = 266,
- FLAG_ON = 267,
- FLAG_OFF = 268,
- FULLMAP = 269,
- HELP = 270,
- IMPORT = 271,
- INPUT = 272,
- MAP = 273,
- MESSAGES = 274,
- MODULE = 275,
- MULTIPLE = 276,
- OS_DOMAIN = 277,
- OUTPUT = 278,
- PSEUDOPREEMPTION = 279,
- REENTRANT = 280,
- SCREENNAME = 281,
- SHARELIB = 282,
- STACK = 283,
- START = 284,
- SYNCHRONIZE = 285,
- THREADNAME = 286,
- TYPE = 287,
- VERBOSE = 288,
- VERSIONK = 289,
- XDCDATA = 290,
- STRING = 291,
- QUOTED_STRING = 292
- };
-#endif
-/* Tokens. */
-#define CHECK 258
-#define CODESTART 259
-#define COPYRIGHT 260
-#define CUSTOM 261
-#define DATE 262
-#define DEBUG 263
-#define DESCRIPTION 264
-#define EXIT 265
-#define EXPORT 266
-#define FLAG_ON 267
-#define FLAG_OFF 268
-#define FULLMAP 269
-#define HELP 270
-#define IMPORT 271
-#define INPUT 272
-#define MAP 273
-#define MESSAGES 274
-#define MODULE 275
-#define MULTIPLE 276
-#define OS_DOMAIN 277
-#define OUTPUT 278
-#define PSEUDOPREEMPTION 279
-#define REENTRANT 280
-#define SCREENNAME 281
-#define SHARELIB 282
-#define STACK 283
-#define START 284
-#define SYNCHRONIZE 285
-#define THREADNAME 286
-#define TYPE 287
-#define VERBOSE 288
-#define VERSIONK 289
-#define XDCDATA 290
-#define STRING 291
-#define QUOTED_STRING 292
-
-
-
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 113 "nlmheader.y"
-typedef union YYSTYPE {
- char *string;
- struct string_list *list;
-} YYSTYPE;
-/* Line 1447 of yacc.c. */
-#line 117 "nlmheader.h"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-extern YYSTYPE yylval;
-
-
-
diff --git a/binutils-2.17/binutils/nlmheader.y b/binutils-2.17/binutils/nlmheader.y
deleted file mode 100644
index b79d63ad..00000000
--- a/binutils-2.17/binutils/nlmheader.y
+++ /dev/null
@@ -1,960 +0,0 @@
-%{/* nlmheader.y - parse NLM header specification keywords.
- Copyright 1993, 1994, 1995, 1997, 1998, 2001, 2002, 2003
- Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Written by Ian Lance Taylor <ian@cygnus.com>.
-
- This bison file parses the commands recognized by the NetWare NLM
- linker, except for lists of object files. It stores the
- information in global variables.
-
- This implementation is based on the description in the NetWare Tool
- Maker Specification manual, edition 1.0. */
-
-#include "ansidecl.h"
-#include <stdio.h>
-#include "safe-ctype.h"
-#include "bfd.h"
-#include "bucomm.h"
-#include "nlm/common.h"
-#include "nlm/internal.h"
-#include "nlmconv.h"
-
-/* Information is stored in the structures pointed to by these
- variables. */
-
-Nlm_Internal_Fixed_Header *fixed_hdr;
-Nlm_Internal_Variable_Header *var_hdr;
-Nlm_Internal_Version_Header *version_hdr;
-Nlm_Internal_Copyright_Header *copyright_hdr;
-Nlm_Internal_Extended_Header *extended_hdr;
-
-/* Procedure named by CHECK. */
-char *check_procedure;
-/* File named by CUSTOM. */
-char *custom_file;
-/* Whether to generate debugging information (DEBUG). */
-bfd_boolean debug_info;
-/* Procedure named by EXIT. */
-char *exit_procedure;
-/* Exported symbols (EXPORT). */
-struct string_list *export_symbols;
-/* List of files from INPUT. */
-struct string_list *input_files;
-/* Map file name (MAP, FULLMAP). */
-char *map_file;
-/* Whether a full map has been requested (FULLMAP). */
-bfd_boolean full_map;
-/* File named by HELP. */
-char *help_file;
-/* Imported symbols (IMPORT). */
-struct string_list *import_symbols;
-/* File named by MESSAGES. */
-char *message_file;
-/* Autoload module list (MODULE). */
-struct string_list *modules;
-/* File named by OUTPUT. */
-char *output_file;
-/* File named by SHARELIB. */
-char *sharelib_file;
-/* Start procedure name (START). */
-char *start_procedure;
-/* VERBOSE. */
-bfd_boolean verbose;
-/* RPC description file (XDCDATA). */
-char *rpc_file;
-
-/* The number of serious errors that have occurred. */
-int parse_errors;
-
-/* The current symbol prefix when reading a list of import or export
- symbols. */
-static char *symbol_prefix;
-
-/* Parser error message handler. */
-#define yyerror(msg) nlmheader_error (msg);
-
-/* Local functions. */
-static int yylex (void);
-static void nlmlex_file_push (const char *);
-static bfd_boolean nlmlex_file_open (const char *);
-static int nlmlex_buf_init (void);
-static char nlmlex_buf_add (int);
-static long nlmlex_get_number (const char *);
-static void nlmheader_identify (void);
-static void nlmheader_warn (const char *, int);
-static void nlmheader_error (const char *);
-static struct string_list * string_list_cons (char *, struct string_list *);
-static struct string_list * string_list_append (struct string_list *,
- struct string_list *);
-static struct string_list * string_list_append1 (struct string_list *,
- char *);
-static char *xstrdup (const char *);
-
-%}
-
-%union
-{
- char *string;
- struct string_list *list;
-};
-
-/* The reserved words. */
-
-%token CHECK CODESTART COPYRIGHT CUSTOM DATE DEBUG DESCRIPTION EXIT
-%token EXPORT FLAG_ON FLAG_OFF FULLMAP HELP IMPORT INPUT MAP MESSAGES
-%token MODULE MULTIPLE OS_DOMAIN OUTPUT PSEUDOPREEMPTION REENTRANT
-%token SCREENNAME SHARELIB STACK START SYNCHRONIZE
-%token THREADNAME TYPE VERBOSE VERSIONK XDCDATA
-
-/* Arguments. */
-
-%token <string> STRING
-%token <string> QUOTED_STRING
-
-/* Typed non-terminals. */
-%type <list> symbol_list_opt symbol_list string_list
-%type <string> symbol
-
-%%
-
-/* Keywords must start in the leftmost column of the file. Arguments
- may appear anywhere else. The lexer uses this to determine what
- token to return, so we don't have to worry about it here. */
-
-/* The entire file is just a list of commands. */
-
-file:
- commands
- ;
-
-/* A possibly empty list of commands. */
-
-commands:
- /* May be empty. */
- | command commands
- ;
-
-/* A single command. There is where most of the work takes place. */
-
-command:
- CHECK STRING
- {
- check_procedure = $2;
- }
- | CODESTART STRING
- {
- nlmheader_warn (_("CODESTART is not implemented; sorry"), -1);
- free ($2);
- }
- | COPYRIGHT QUOTED_STRING
- {
- int len;
-
- strncpy (copyright_hdr->stamp, "CoPyRiGhT=", 10);
- len = strlen ($2);
- if (len >= NLM_MAX_COPYRIGHT_MESSAGE_LENGTH)
- {
- nlmheader_warn (_("copyright string is too long"),
- NLM_MAX_COPYRIGHT_MESSAGE_LENGTH - 1);
- len = NLM_MAX_COPYRIGHT_MESSAGE_LENGTH - 1;
- }
- copyright_hdr->copyrightMessageLength = len;
- strncpy (copyright_hdr->copyrightMessage, $2, len);
- copyright_hdr->copyrightMessage[len] = '\0';
- free ($2);
- }
- | CUSTOM STRING
- {
- custom_file = $2;
- }
- | DATE STRING STRING STRING
- {
- /* We don't set the version stamp here, because we use the
- version stamp to detect whether the required VERSION
- keyword was given. */
- version_hdr->month = nlmlex_get_number ($2);
- version_hdr->day = nlmlex_get_number ($3);
- version_hdr->year = nlmlex_get_number ($4);
- free ($2);
- free ($3);
- free ($4);
- if (version_hdr->month < 1 || version_hdr->month > 12)
- nlmheader_warn (_("illegal month"), -1);
- if (version_hdr->day < 1 || version_hdr->day > 31)
- nlmheader_warn (_("illegal day"), -1);
- if (version_hdr->year < 1900 || version_hdr->year > 3000)
- nlmheader_warn (_("illegal year"), -1);
- }
- | DEBUG
- {
- debug_info = TRUE;
- }
- | DESCRIPTION QUOTED_STRING
- {
- int len;
-
- len = strlen ($2);
- if (len > NLM_MAX_DESCRIPTION_LENGTH)
- {
- nlmheader_warn (_("description string is too long"),
- NLM_MAX_DESCRIPTION_LENGTH);
- len = NLM_MAX_DESCRIPTION_LENGTH;
- }
- var_hdr->descriptionLength = len;
- strncpy (var_hdr->descriptionText, $2, len);
- var_hdr->descriptionText[len] = '\0';
- free ($2);
- }
- | EXIT STRING
- {
- exit_procedure = $2;
- }
- | EXPORT
- {
- symbol_prefix = NULL;
- }
- symbol_list_opt
- {
- export_symbols = string_list_append (export_symbols, $3);
- }
- | FLAG_ON STRING
- {
- fixed_hdr->flags |= nlmlex_get_number ($2);
- free ($2);
- }
- | FLAG_OFF STRING
- {
- fixed_hdr->flags &=~ nlmlex_get_number ($2);
- free ($2);
- }
- | FULLMAP
- {
- map_file = "";
- full_map = TRUE;
- }
- | FULLMAP STRING
- {
- map_file = $2;
- full_map = TRUE;
- }
- | HELP STRING
- {
- help_file = $2;
- }
- | IMPORT
- {
- symbol_prefix = NULL;
- }
- symbol_list_opt
- {
- import_symbols = string_list_append (import_symbols, $3);
- }
- | INPUT string_list
- {
- input_files = string_list_append (input_files, $2);
- }
- | MAP
- {
- map_file = "";
- }
- | MAP STRING
- {
- map_file = $2;
- }
- | MESSAGES STRING
- {
- message_file = $2;
- }
- | MODULE string_list
- {
- modules = string_list_append (modules, $2);
- }
- | MULTIPLE
- {
- fixed_hdr->flags |= 0x2;
- }
- | OS_DOMAIN
- {
- fixed_hdr->flags |= 0x10;
- }
- | OUTPUT STRING
- {
- if (output_file == NULL)
- output_file = $2;
- else
- nlmheader_warn (_("ignoring duplicate OUTPUT statement"), -1);
- }
- | PSEUDOPREEMPTION
- {
- fixed_hdr->flags |= 0x8;
- }
- | REENTRANT
- {
- fixed_hdr->flags |= 0x1;
- }
- | SCREENNAME QUOTED_STRING
- {
- int len;
-
- len = strlen ($2);
- if (len >= NLM_MAX_SCREEN_NAME_LENGTH)
- {
- nlmheader_warn (_("screen name is too long"),
- NLM_MAX_SCREEN_NAME_LENGTH);
- len = NLM_MAX_SCREEN_NAME_LENGTH;
- }
- var_hdr->screenNameLength = len;
- strncpy (var_hdr->screenName, $2, len);
- var_hdr->screenName[NLM_MAX_SCREEN_NAME_LENGTH] = '\0';
- free ($2);
- }
- | SHARELIB STRING
- {
- sharelib_file = $2;
- }
- | STACK STRING
- {
- var_hdr->stackSize = nlmlex_get_number ($2);
- free ($2);
- }
- | START STRING
- {
- start_procedure = $2;
- }
- | SYNCHRONIZE
- {
- fixed_hdr->flags |= 0x4;
- }
- | THREADNAME QUOTED_STRING
- {
- int len;
-
- len = strlen ($2);
- if (len >= NLM_MAX_THREAD_NAME_LENGTH)
- {
- nlmheader_warn (_("thread name is too long"),
- NLM_MAX_THREAD_NAME_LENGTH);
- len = NLM_MAX_THREAD_NAME_LENGTH;
- }
- var_hdr->threadNameLength = len;
- strncpy (var_hdr->threadName, $2, len);
- var_hdr->threadName[len] = '\0';
- free ($2);
- }
- | TYPE STRING
- {
- fixed_hdr->moduleType = nlmlex_get_number ($2);
- free ($2);
- }
- | VERBOSE
- {
- verbose = TRUE;
- }
- | VERSIONK STRING STRING STRING
- {
- long val;
-
- strncpy (version_hdr->stamp, "VeRsIoN#", 8);
- version_hdr->majorVersion = nlmlex_get_number ($2);
- val = nlmlex_get_number ($3);
- if (val < 0 || val > 99)
- nlmheader_warn (_("illegal minor version number (must be between 0 and 99)"),
- -1);
- else
- version_hdr->minorVersion = val;
- val = nlmlex_get_number ($4);
- if (val < 0)
- nlmheader_warn (_("illegal revision number (must be between 0 and 26)"),
- -1);
- else if (val > 26)
- version_hdr->revision = 0;
- else
- version_hdr->revision = val;
- free ($2);
- free ($3);
- free ($4);
- }
- | VERSIONK STRING STRING
- {
- long val;
-
- strncpy (version_hdr->stamp, "VeRsIoN#", 8);
- version_hdr->majorVersion = nlmlex_get_number ($2);
- val = nlmlex_get_number ($3);
- if (val < 0 || val > 99)
- nlmheader_warn (_("illegal minor version number (must be between 0 and 99)"),
- -1);
- else
- version_hdr->minorVersion = val;
- version_hdr->revision = 0;
- free ($2);
- free ($3);
- }
- | XDCDATA STRING
- {
- rpc_file = $2;
- }
- ;
-
-/* A possibly empty list of symbols. */
-
-symbol_list_opt:
- /* Empty. */
- {
- $$ = NULL;
- }
- | symbol_list
- {
- $$ = $1;
- }
- ;
-
-/* A list of symbols in an import or export list. Prefixes may appear
- in parentheses. We need to use left recursion here to avoid
- building up a large import list on the parser stack. */
-
-symbol_list:
- symbol
- {
- $$ = string_list_cons ($1, NULL);
- }
- | symbol_prefix
- {
- $$ = NULL;
- }
- | symbol_list symbol
- {
- $$ = string_list_append1 ($1, $2);
- }
- | symbol_list symbol_prefix
- {
- $$ = $1;
- }
- ;
-
-/* A prefix for subsequent symbols. */
-
-symbol_prefix:
- '(' STRING ')'
- {
- if (symbol_prefix != NULL)
- free (symbol_prefix);
- symbol_prefix = $2;
- }
- ;
-
-/* A single symbol. */
-
-symbol:
- STRING
- {
- if (symbol_prefix == NULL)
- $$ = $1;
- else
- {
- $$ = xmalloc (strlen (symbol_prefix) + strlen ($1) + 2);
- sprintf ($$, "%s@%s", symbol_prefix, $1);
- free ($1);
- }
- }
- ;
-
-/* A list of strings. */
-
-string_list:
- /* May be empty. */
- {
- $$ = NULL;
- }
- | STRING string_list
- {
- $$ = string_list_cons ($1, $2);
- }
- ;
-
-%%
-
-/* If strerror is just a macro, we want to use the one from libiberty
- since it will handle undefined values. */
-#undef strerror
-extern char *strerror PARAMS ((int));
-
-/* The lexer is simple, too simple for flex. Keywords are only
- recognized at the start of lines. Everything else must be an
- argument. A comma is treated as whitespace. */
-
-/* The states the lexer can be in. */
-
-enum lex_state
-{
- /* At the beginning of a line. */
- BEGINNING_OF_LINE,
- /* In the middle of a line. */
- IN_LINE
-};
-
-/* We need to keep a stack of files to handle file inclusion. */
-
-struct input
-{
- /* The file to read from. */
- FILE *file;
- /* The name of the file. */
- char *name;
- /* The current line number. */
- int lineno;
- /* The current state. */
- enum lex_state state;
- /* The next file on the stack. */
- struct input *next;
-};
-
-/* The current input file. */
-
-static struct input current;
-
-/* The character which introduces comments. */
-#define COMMENT_CHAR '#'
-
-/* Start the lexer going on the main input file. */
-
-bfd_boolean
-nlmlex_file (const char *name)
-{
- current.next = NULL;
- return nlmlex_file_open (name);
-}
-
-/* Start the lexer going on a subsidiary input file. */
-
-static void
-nlmlex_file_push (const char *name)
-{
- struct input *push;
-
- push = (struct input *) xmalloc (sizeof (struct input));
- *push = current;
- if (nlmlex_file_open (name))
- current.next = push;
- else
- {
- current = *push;
- free (push);
- }
-}
-
-/* Start lexing from a file. */
-
-static bfd_boolean
-nlmlex_file_open (const char *name)
-{
- current.file = fopen (name, "r");
- if (current.file == NULL)
- {
- fprintf (stderr, "%s:%s: %s\n", program_name, name, strerror (errno));
- ++parse_errors;
- return FALSE;
- }
- current.name = xstrdup (name);
- current.lineno = 1;
- current.state = BEGINNING_OF_LINE;
- return TRUE;
-}
-
-/* Table used to turn keywords into tokens. */
-
-struct keyword_tokens_struct
-{
- const char *keyword;
- int token;
-};
-
-static struct keyword_tokens_struct keyword_tokens[] =
-{
- { "CHECK", CHECK },
- { "CODESTART", CODESTART },
- { "COPYRIGHT", COPYRIGHT },
- { "CUSTOM", CUSTOM },
- { "DATE", DATE },
- { "DEBUG", DEBUG },
- { "DESCRIPTION", DESCRIPTION },
- { "EXIT", EXIT },
- { "EXPORT", EXPORT },
- { "FLAG_ON", FLAG_ON },
- { "FLAG_OFF", FLAG_OFF },
- { "FULLMAP", FULLMAP },
- { "HELP", HELP },
- { "IMPORT", IMPORT },
- { "INPUT", INPUT },
- { "MAP", MAP },
- { "MESSAGES", MESSAGES },
- { "MODULE", MODULE },
- { "MULTIPLE", MULTIPLE },
- { "OS_DOMAIN", OS_DOMAIN },
- { "OUTPUT", OUTPUT },
- { "PSEUDOPREEMPTION", PSEUDOPREEMPTION },
- { "REENTRANT", REENTRANT },
- { "SCREENNAME", SCREENNAME },
- { "SHARELIB", SHARELIB },
- { "STACK", STACK },
- { "STACKSIZE", STACK },
- { "START", START },
- { "SYNCHRONIZE", SYNCHRONIZE },
- { "THREADNAME", THREADNAME },
- { "TYPE", TYPE },
- { "VERBOSE", VERBOSE },
- { "VERSION", VERSIONK },
- { "XDCDATA", XDCDATA }
-};
-
-#define KEYWORD_COUNT (sizeof (keyword_tokens) / sizeof (keyword_tokens[0]))
-
-/* The lexer accumulates strings in these variables. */
-static char *lex_buf;
-static int lex_size;
-static int lex_pos;
-
-/* Start accumulating strings into the buffer. */
-#define BUF_INIT() \
- ((void) (lex_buf != NULL ? lex_pos = 0 : nlmlex_buf_init ()))
-
-static int
-nlmlex_buf_init (void)
-{
- lex_size = 10;
- lex_buf = xmalloc (lex_size + 1);
- lex_pos = 0;
- return 0;
-}
-
-/* Finish a string in the buffer. */
-#define BUF_FINISH() ((void) (lex_buf[lex_pos] = '\0'))
-
-/* Accumulate a character into the buffer. */
-#define BUF_ADD(c) \
- ((void) (lex_pos < lex_size \
- ? lex_buf[lex_pos++] = (c) \
- : nlmlex_buf_add (c)))
-
-static char
-nlmlex_buf_add (int c)
-{
- if (lex_pos >= lex_size)
- {
- lex_size *= 2;
- lex_buf = xrealloc (lex_buf, lex_size + 1);
- }
-
- return lex_buf[lex_pos++] = c;
-}
-
-/* The lexer proper. This is called by the bison generated parsing
- code. */
-
-static int
-yylex (void)
-{
- int c;
-
-tail_recurse:
-
- c = getc (current.file);
-
- /* Commas are treated as whitespace characters. */
- while (ISSPACE (c) || c == ',')
- {
- current.state = IN_LINE;
- if (c == '\n')
- {
- ++current.lineno;
- current.state = BEGINNING_OF_LINE;
- }
- c = getc (current.file);
- }
-
- /* At the end of the file we either pop to the previous file or
- finish up. */
- if (c == EOF)
- {
- fclose (current.file);
- free (current.name);
- if (current.next == NULL)
- return 0;
- else
- {
- struct input *next;
-
- next = current.next;
- current = *next;
- free (next);
- goto tail_recurse;
- }
- }
-
- /* A comment character always means to drop everything until the
- next newline. */
- if (c == COMMENT_CHAR)
- {
- do
- {
- c = getc (current.file);
- }
- while (c != '\n');
- ++current.lineno;
- current.state = BEGINNING_OF_LINE;
- goto tail_recurse;
- }
-
- /* An '@' introduces an include file. */
- if (c == '@')
- {
- do
- {
- c = getc (current.file);
- if (c == '\n')
- ++current.lineno;
- }
- while (ISSPACE (c));
- BUF_INIT ();
- while (! ISSPACE (c) && c != EOF)
- {
- BUF_ADD (c);
- c = getc (current.file);
- }
- BUF_FINISH ();
-
- ungetc (c, current.file);
-
- nlmlex_file_push (lex_buf);
- goto tail_recurse;
- }
-
- /* A non-space character at the start of a line must be the start of
- a keyword. */
- if (current.state == BEGINNING_OF_LINE)
- {
- BUF_INIT ();
- while (ISALNUM (c) || c == '_')
- {
- BUF_ADD (TOUPPER (c));
- c = getc (current.file);
- }
- BUF_FINISH ();
-
- if (c != EOF && ! ISSPACE (c) && c != ',')
- {
- nlmheader_identify ();
- fprintf (stderr, _("%s:%d: illegal character in keyword: %c\n"),
- current.name, current.lineno, c);
- }
- else
- {
- unsigned int i;
-
- for (i = 0; i < KEYWORD_COUNT; i++)
- {
- if (lex_buf[0] == keyword_tokens[i].keyword[0]
- && strcmp (lex_buf, keyword_tokens[i].keyword) == 0)
- {
- /* Pushing back the final whitespace avoids worrying
- about \n here. */
- ungetc (c, current.file);
- current.state = IN_LINE;
- return keyword_tokens[i].token;
- }
- }
-
- nlmheader_identify ();
- fprintf (stderr, _("%s:%d: unrecognized keyword: %s\n"),
- current.name, current.lineno, lex_buf);
- }
-
- ++parse_errors;
- /* Treat the rest of this line as a comment. */
- ungetc (COMMENT_CHAR, current.file);
- goto tail_recurse;
- }
-
- /* Parentheses just represent themselves. */
- if (c == '(' || c == ')')
- return c;
-
- /* Handle quoted strings. */
- if (c == '"' || c == '\'')
- {
- int quote;
- int start_lineno;
-
- quote = c;
- start_lineno = current.lineno;
-
- c = getc (current.file);
- BUF_INIT ();
- while (c != quote && c != EOF)
- {
- BUF_ADD (c);
- if (c == '\n')
- ++current.lineno;
- c = getc (current.file);
- }
- BUF_FINISH ();
-
- if (c == EOF)
- {
- nlmheader_identify ();
- fprintf (stderr, _("%s:%d: end of file in quoted string\n"),
- current.name, start_lineno);
- ++parse_errors;
- }
-
- /* FIXME: Possible memory leak. */
- yylval.string = xstrdup (lex_buf);
- return QUOTED_STRING;
- }
-
- /* Gather a generic argument. */
- BUF_INIT ();
- while (! ISSPACE (c)
- && c != ','
- && c != COMMENT_CHAR
- && c != '('
- && c != ')')
- {
- BUF_ADD (c);
- c = getc (current.file);
- }
- BUF_FINISH ();
-
- ungetc (c, current.file);
-
- /* FIXME: Possible memory leak. */
- yylval.string = xstrdup (lex_buf);
- return STRING;
-}
-
-/* Get a number from a string. */
-
-static long
-nlmlex_get_number (const char *s)
-{
- long ret;
- char *send;
-
- ret = strtol (s, &send, 10);
- if (*send != '\0')
- nlmheader_warn (_("bad number"), -1);
- return ret;
-}
-
-/* Prefix the nlmconv warnings with a note as to where they come from.
- We don't use program_name on every warning, because then some
- versions of the emacs next-error function can't recognize the line
- number. */
-
-static void
-nlmheader_identify (void)
-{
- static int done;
-
- if (! done)
- {
- fprintf (stderr, _("%s: problems in NLM command language input:\n"),
- program_name);
- done = 1;
- }
-}
-
-/* Issue a warning. */
-
-static void
-nlmheader_warn (const char *s, int imax)
-{
- nlmheader_identify ();
- fprintf (stderr, "%s:%d: %s", current.name, current.lineno, s);
- if (imax != -1)
- fprintf (stderr, " (max %d)", imax);
- fprintf (stderr, "\n");
-}
-
-/* Report an error. */
-
-static void
-nlmheader_error (const char *s)
-{
- nlmheader_warn (s, -1);
- ++parse_errors;
-}
-
-/* Add a string to a string list. */
-
-static struct string_list *
-string_list_cons (char *s, struct string_list *l)
-{
- struct string_list *ret;
-
- ret = (struct string_list *) xmalloc (sizeof (struct string_list));
- ret->next = l;
- ret->string = s;
- return ret;
-}
-
-/* Append a string list to another string list. */
-
-static struct string_list *
-string_list_append (struct string_list *l1, struct string_list *l2)
-{
- register struct string_list **pp;
-
- for (pp = &l1; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = l2;
- return l1;
-}
-
-/* Append a string to a string list. */
-
-static struct string_list *
-string_list_append1 (struct string_list *l, char *s)
-{
- struct string_list *n;
- register struct string_list **pp;
-
- n = (struct string_list *) xmalloc (sizeof (struct string_list));
- n->next = NULL;
- n->string = s;
- for (pp = &l; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = n;
- return l;
-}
-
-/* Duplicate a string in memory. */
-
-static char *
-xstrdup (const char *s)
-{
- unsigned long len;
- char *ret;
-
- len = strlen (s);
- ret = xmalloc (len + 1);
- strcpy (ret, s);
- return ret;
-}
diff --git a/binutils-2.17/binutils/nm.c b/binutils-2.17/binutils/nm.c
deleted file mode 100644
index c1fb4d80..00000000
--- a/binutils-2.17/binutils/nm.c
+++ /dev/null
@@ -1,1639 +0,0 @@
-/* nm.c -- Describe symbol table of a rel file.
- Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005
- Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#include "bfd.h"
-#include "progress.h"
-#include "bucomm.h"
-#include "budemang.h"
-#include "getopt.h"
-#include "aout/stab_gnu.h"
-#include "aout/ranlib.h"
-#include "demangle.h"
-#include "libiberty.h"
-#include "elf-bfd.h"
-#include "elf/common.h"
-
-/* When sorting by size, we use this structure to hold the size and a
- pointer to the minisymbol. */
-
-struct size_sym
-{
- const void *minisym;
- bfd_vma size;
-};
-
-/* When fetching relocs, we use this structure to pass information to
- get_relocs. */
-
-struct get_relocs_info
-{
- asection **secs;
- arelent ***relocs;
- long *relcount;
- asymbol **syms;
-};
-
-struct extended_symbol_info
-{
- symbol_info *sinfo;
- bfd_vma ssize;
- elf_symbol_type *elfinfo;
- /* FIXME: We should add more fields for Type, Line, Section. */
-};
-#define SYM_NAME(sym) (sym->sinfo->name)
-#define SYM_VALUE(sym) (sym->sinfo->value)
-#define SYM_TYPE(sym) (sym->sinfo->type)
-#define SYM_STAB_NAME(sym) (sym->sinfo->stab_name)
-#define SYM_STAB_DESC(sym) (sym->sinfo->stab_desc)
-#define SYM_STAB_OTHER(sym) (sym->sinfo->stab_other)
-#define SYM_SIZE(sym) \
- (sym->elfinfo ? sym->elfinfo->internal_elf_sym.st_size: sym->ssize)
-
-/* The output formatting functions. */
-static void print_object_filename_bsd (char *);
-static void print_object_filename_sysv (char *);
-static void print_object_filename_posix (char *);
-static void print_archive_filename_bsd (char *);
-static void print_archive_filename_sysv (char *);
-static void print_archive_filename_posix (char *);
-static void print_archive_member_bsd (char *, const char *);
-static void print_archive_member_sysv (char *, const char *);
-static void print_archive_member_posix (char *, const char *);
-static void print_symbol_filename_bsd (bfd *, bfd *);
-static void print_symbol_filename_sysv (bfd *, bfd *);
-static void print_symbol_filename_posix (bfd *, bfd *);
-static void print_value (bfd *, bfd_vma);
-static void print_symbol_info_bsd (struct extended_symbol_info *, bfd *);
-static void print_symbol_info_sysv (struct extended_symbol_info *, bfd *);
-static void print_symbol_info_posix (struct extended_symbol_info *, bfd *);
-
-/* Support for different output formats. */
-struct output_fns
- {
- /* Print the name of an object file given on the command line. */
- void (*print_object_filename) (char *);
-
- /* Print the name of an archive file given on the command line. */
- void (*print_archive_filename) (char *);
-
- /* Print the name of an archive member file. */
- void (*print_archive_member) (char *, const char *);
-
- /* Print the name of the file (and archive, if there is one)
- containing a symbol. */
- void (*print_symbol_filename) (bfd *, bfd *);
-
- /* Print a line of information about a symbol. */
- void (*print_symbol_info) (struct extended_symbol_info *, bfd *);
- };
-
-static struct output_fns formats[] =
-{
- {print_object_filename_bsd,
- print_archive_filename_bsd,
- print_archive_member_bsd,
- print_symbol_filename_bsd,
- print_symbol_info_bsd},
- {print_object_filename_sysv,
- print_archive_filename_sysv,
- print_archive_member_sysv,
- print_symbol_filename_sysv,
- print_symbol_info_sysv},
- {print_object_filename_posix,
- print_archive_filename_posix,
- print_archive_member_posix,
- print_symbol_filename_posix,
- print_symbol_info_posix}
-};
-
-/* Indices in `formats'. */
-#define FORMAT_BSD 0
-#define FORMAT_SYSV 1
-#define FORMAT_POSIX 2
-#define FORMAT_DEFAULT FORMAT_BSD
-
-/* The output format to use. */
-static struct output_fns *format = &formats[FORMAT_DEFAULT];
-
-/* Command options. */
-
-static int do_demangle = 0; /* Pretty print C++ symbol names. */
-static int external_only = 0; /* Print external symbols only. */
-static int defined_only = 0; /* Print defined symbols only. */
-static int no_sort = 0; /* Don't sort; print syms in order found. */
-static int print_debug_syms = 0;/* Print debugger-only symbols too. */
-static int print_armap = 0; /* Describe __.SYMDEF data in archive files. */
-static int print_size = 0; /* Print size of defined symbols. */
-static int reverse_sort = 0; /* Sort in downward(alpha or numeric) order. */
-static int sort_numerically = 0;/* Sort in numeric rather than alpha order. */
-static int sort_by_size = 0; /* Sort by size of symbol. */
-static int undefined_only = 0; /* Print undefined symbols only. */
-static int dynamic = 0; /* Print dynamic symbols. */
-static int show_version = 0; /* Show the version number. */
-static int show_stats = 0; /* Show statistics. */
-static int show_synthetic = 0; /* Display synthesized symbols too. */
-static int line_numbers = 0; /* Print line numbers for symbols. */
-static int allow_special_symbols = 0; /* Allow special symbols. */
-
-/* When to print the names of files. Not mutually exclusive in SYSV format. */
-static int filename_per_file = 0; /* Once per file, on its own line. */
-static int filename_per_symbol = 0; /* Once per symbol, at start of line. */
-
-/* Print formats for printing a symbol value. */
-#ifndef BFD64
-static char value_format[] = "%08lx";
-#else
-#if BFD_HOST_64BIT_LONG
-static char value_format[] = "%016lx";
-#else
-/* We don't use value_format for this case. */
-#endif
-#endif
-#ifdef BFD64
-static int print_width = 16;
-#else
-static int print_width = 8;
-#endif
-static int print_radix = 16;
-/* Print formats for printing stab info. */
-static char other_format[] = "%02x";
-static char desc_format[] = "%04x";
-
-static char *target = NULL;
-
-/* Used to cache the line numbers for a BFD. */
-static bfd *lineno_cache_bfd;
-static bfd *lineno_cache_rel_bfd;
-
-#define OPTION_TARGET 200
-
-static struct option long_options[] =
-{
- {"debug-syms", no_argument, &print_debug_syms, 1},
- {"demangle", optional_argument, 0, 'C'},
- {"dynamic", no_argument, &dynamic, 1},
- {"extern-only", no_argument, &external_only, 1},
- {"format", required_argument, 0, 'f'},
- {"help", no_argument, 0, 'h'},
- {"line-numbers", no_argument, 0, 'l'},
- {"no-cplus", no_argument, &do_demangle, 0}, /* Linux compatibility. */
- {"no-demangle", no_argument, &do_demangle, 0},
- {"no-sort", no_argument, &no_sort, 1},
- {"numeric-sort", no_argument, &sort_numerically, 1},
- {"portability", no_argument, 0, 'P'},
- {"print-armap", no_argument, &print_armap, 1},
- {"print-file-name", no_argument, 0, 'o'},
- {"print-size", no_argument, 0, 'S'},
- {"radix", required_argument, 0, 't'},
- {"reverse-sort", no_argument, &reverse_sort, 1},
- {"size-sort", no_argument, &sort_by_size, 1},
- {"special-syms", no_argument, &allow_special_symbols, 1},
- {"stats", no_argument, &show_stats, 1},
- {"synthetic", no_argument, &show_synthetic, 1},
- {"target", required_argument, 0, OPTION_TARGET},
- {"defined-only", no_argument, &defined_only, 1},
- {"undefined-only", no_argument, &undefined_only, 1},
- {"version", no_argument, &show_version, 1},
- {0, no_argument, 0, 0}
-};
-
-/* Some error-reporting functions. */
-
-static void
-usage (FILE *stream, int status)
-{
- fprintf (stream, _("Usage: %s [option(s)] [file(s)]\n"), program_name);
- fprintf (stream, _(" List symbols in [file(s)] (a.out by default).\n"));
- fprintf (stream, _(" The options are:\n\
- -a, --debug-syms Display debugger-only symbols\n\
- -A, --print-file-name Print name of the input file before every symbol\n\
- -B Same as --format=bsd\n\
- -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n\
- The STYLE, if specified, can be `auto' (the default),\n\
- `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n\
- or `gnat'\n\
- --no-demangle Do not demangle low-level symbol names\n\
- -D, --dynamic Display dynamic symbols instead of normal symbols\n\
- --defined-only Display only defined symbols\n\
- -e (ignored)\n\
- -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n\
- `sysv' or `posix'. The default is `bsd'\n\
- -g, --extern-only Display only external symbols\n\
- -l, --line-numbers Use debugging information to find a filename and\n\
- line number for each symbol\n\
- -n, --numeric-sort Sort symbols numerically by address\n\
- -o Same as -A\n\
- -p, --no-sort Do not sort the symbols\n\
- -P, --portability Same as --format=posix\n\
- -r, --reverse-sort Reverse the sense of the sort\n\
- -S, --print-size Print size of defined symbols\n\
- -s, --print-armap Include index for symbols from archive members\n\
- --size-sort Sort symbols by size\n\
- --special-syms Include special symbols in the output\n\
- --synthetic Display synthetic symbols as well\n\
- -t, --radix=RADIX Use RADIX for printing symbol values\n\
- --target=BFDNAME Specify the target object format as BFDNAME\n\
- -u, --undefined-only Display only undefined symbols\n\
- -X 32_64 (ignored)\n\
- @FILE Read options from FILE\n\
- -h, --help Display this information\n\
- -V, --version Display this program's version number\n\
-\n"));
- list_supported_targets (program_name, stream);
- if (status == 0)
- fprintf (stream, _("Report bugs to %s.\n"), REPORT_BUGS_TO);
- exit (status);
-}
-
-/* Set the radix for the symbol value and size according to RADIX. */
-
-static void
-set_print_radix (char *radix)
-{
- switch (*radix)
- {
- case 'x':
- break;
- case 'd':
- case 'o':
- if (*radix == 'd')
- print_radix = 10;
- else
- print_radix = 8;
-#ifndef BFD64
- value_format[4] = *radix;
-#else
-#if BFD_HOST_64BIT_LONG
- value_format[5] = *radix;
-#else
- /* This case requires special handling for octal and decimal
- printing. */
-#endif
-#endif
- other_format[3] = desc_format[3] = *radix;
- break;
- default:
- fatal (_("%s: invalid radix"), radix);
- }
-}
-
-static void
-set_output_format (char *f)
-{
- int i;
-
- switch (*f)
- {
- case 'b':
- case 'B':
- i = FORMAT_BSD;
- break;
- case 'p':
- case 'P':
- i = FORMAT_POSIX;
- break;
- case 's':
- case 'S':
- i = FORMAT_SYSV;
- break;
- default:
- fatal (_("%s: invalid output format"), f);
- }
- format = &formats[i];
-}
-
-static const char *
-get_symbol_type (unsigned int type)
-{
- static char buff [32];
-
- switch (type)
- {
- case STT_NOTYPE: return "NOTYPE";
- case STT_OBJECT: return "OBJECT";
- case STT_FUNC: return "FUNC";
- case STT_SECTION: return "SECTION";
- case STT_FILE: return "FILE";
- case STT_COMMON: return "COMMON";
- case STT_TLS: return "TLS";
- default:
- if (type >= STT_LOPROC && type <= STT_HIPROC)
- sprintf (buff, _("<processor specific>: %d"), type);
- else if (type >= STT_LOOS && type <= STT_HIOS)
- sprintf (buff, _("<OS specific>: %d"), type);
- else
- sprintf (buff, _("<unknown>: %d"), type);
- return buff;
- }
-}
-
-/* Print symbol name NAME, read from ABFD, with printf format FORMAT,
- demangling it if requested. */
-
-static void
-print_symname (const char *format, const char *name, bfd *abfd)
-{
- if (do_demangle && *name)
- {
- char *res = demangle (abfd, name);
-
- printf (format, res);
- free (res);
- return;
- }
-
- printf (format, name);
-}
-
-static void
-print_symdef_entry (bfd *abfd)
-{
- symindex idx = BFD_NO_MORE_SYMBOLS;
- carsym *thesym;
- bfd_boolean everprinted = FALSE;
-
- for (idx = bfd_get_next_mapent (abfd, idx, &thesym);
- idx != BFD_NO_MORE_SYMBOLS;
- idx = bfd_get_next_mapent (abfd, idx, &thesym))
- {
- bfd *elt;
- if (!everprinted)
- {
- printf (_("\nArchive index:\n"));
- everprinted = TRUE;
- }
- elt = bfd_get_elt_at_index (abfd, idx);
- if (elt == NULL)
- bfd_fatal ("bfd_get_elt_at_index");
- if (thesym->name != (char *) NULL)
- {
- print_symname ("%s", thesym->name, abfd);
- printf (" in %s\n", bfd_get_filename (elt));
- }
- }
-}
-
-/* Choose which symbol entries to print;
- compact them downward to get rid of the rest.
- Return the number of symbols to be printed. */
-
-static long
-filter_symbols (bfd *abfd, bfd_boolean dynamic, void *minisyms,
- long symcount, unsigned int size)
-{
- bfd_byte *from, *fromend, *to;
- asymbol *store;
-
- store = bfd_make_empty_symbol (abfd);
- if (store == NULL)
- bfd_fatal (bfd_get_filename (abfd));
-
- from = (bfd_byte *) minisyms;
- fromend = from + symcount * size;
- to = (bfd_byte *) minisyms;
-
- for (; from < fromend; from += size)
- {
- int keep = 0;
- asymbol *sym;
-
- PROGRESS (1);
-
- sym = bfd_minisymbol_to_symbol (abfd, dynamic, (const void *) from, store);
- if (sym == NULL)
- bfd_fatal (bfd_get_filename (abfd));
-
- if (undefined_only)
- keep = bfd_is_und_section (sym->section);
- else if (external_only)
- keep = ((sym->flags & BSF_GLOBAL) != 0
- || (sym->flags & BSF_WEAK) != 0
- || bfd_is_und_section (sym->section)
- || bfd_is_com_section (sym->section));
- else
- keep = 1;
-
- if (keep
- && ! print_debug_syms
- && (sym->flags & BSF_DEBUGGING) != 0)
- keep = 0;
-
- if (keep
- && sort_by_size
- && (bfd_is_abs_section (sym->section)
- || bfd_is_und_section (sym->section)))
- keep = 0;
-
- if (keep
- && defined_only)
- {
- if (bfd_is_und_section (sym->section))
- keep = 0;
- }
-
- if (keep
- && bfd_is_target_special_symbol (abfd, sym)
- && ! allow_special_symbols)
- keep = 0;
-
- if (keep)
- {
- memcpy (to, from, size);
- to += size;
- }
- }
-
- return (to - (bfd_byte *) minisyms) / size;
-}
-
-/* These globals are used to pass information into the sorting
- routines. */
-static bfd *sort_bfd;
-static bfd_boolean sort_dynamic;
-static asymbol *sort_x;
-static asymbol *sort_y;
-
-/* Symbol-sorting predicates */
-#define valueof(x) ((x)->section->vma + (x)->value)
-
-/* Numeric sorts. Undefined symbols are always considered "less than"
- defined symbols with zero values. Common symbols are not treated
- specially -- i.e., their sizes are used as their "values". */
-
-static int
-non_numeric_forward (const void *P_x, const void *P_y)
-{
- asymbol *x, *y;
- const char *xn, *yn;
-
- x = bfd_minisymbol_to_symbol (sort_bfd, sort_dynamic, P_x, sort_x);
- y = bfd_minisymbol_to_symbol (sort_bfd, sort_dynamic, P_y, sort_y);
- if (x == NULL || y == NULL)
- bfd_fatal (bfd_get_filename (sort_bfd));
-
- xn = bfd_asymbol_name (x);
- yn = bfd_asymbol_name (y);
-
- if (yn == NULL)
- return xn != NULL;
- if (xn == NULL)
- return -1;
-
-#ifdef HAVE_STRCOLL
- /* Solaris 2.5 has a bug in strcoll.
- strcoll returns invalid values when confronted with empty strings. */
- if (*yn == '\0')
- return *xn != '\0';
- if (*xn == '\0')
- return -1;
-
- return strcoll (xn, yn);
-#else
- return strcmp (xn, yn);
-#endif
-}
-
-static int
-non_numeric_reverse (const void *x, const void *y)
-{
- return - non_numeric_forward (x, y);
-}
-
-static int
-numeric_forward (const void *P_x, const void *P_y)
-{
- asymbol *x, *y;
- asection *xs, *ys;
-
- x = bfd_minisymbol_to_symbol (sort_bfd, sort_dynamic, P_x, sort_x);
- y = bfd_minisymbol_to_symbol (sort_bfd, sort_dynamic, P_y, sort_y);
- if (x == NULL || y == NULL)
- bfd_fatal (bfd_get_filename (sort_bfd));
-
- xs = bfd_get_section (x);
- ys = bfd_get_section (y);
-
- if (bfd_is_und_section (xs))
- {
- if (! bfd_is_und_section (ys))
- return -1;
- }
- else if (bfd_is_und_section (ys))
- return 1;
- else if (valueof (x) != valueof (y))
- return valueof (x) < valueof (y) ? -1 : 1;
-
- return non_numeric_forward (P_x, P_y);
-}
-
-static int
-numeric_reverse (const void *x, const void *y)
-{
- return - numeric_forward (x, y);
-}
-
-static int (*(sorters[2][2])) (const void *, const void *) =
-{
- { non_numeric_forward, non_numeric_reverse },
- { numeric_forward, numeric_reverse }
-};
-
-/* This sort routine is used by sort_symbols_by_size. It is similar
- to numeric_forward, but when symbols have the same value it sorts
- by section VMA. This simplifies the sort_symbols_by_size code
- which handles symbols at the end of sections. Also, this routine
- tries to sort file names before other symbols with the same value.
- That will make the file name have a zero size, which will make
- sort_symbols_by_size choose the non file name symbol, leading to
- more meaningful output. For similar reasons, this code sorts
- gnu_compiled_* and gcc2_compiled before other symbols with the same
- value. */
-
-static int
-size_forward1 (const void *P_x, const void *P_y)
-{
- asymbol *x, *y;
- asection *xs, *ys;
- const char *xn, *yn;
- size_t xnl, ynl;
- int xf, yf;
-
- x = bfd_minisymbol_to_symbol (sort_bfd, sort_dynamic, P_x, sort_x);
- y = bfd_minisymbol_to_symbol (sort_bfd, sort_dynamic, P_y, sort_y);
- if (x == NULL || y == NULL)
- bfd_fatal (bfd_get_filename (sort_bfd));
-
- xs = bfd_get_section (x);
- ys = bfd_get_section (y);
-
- if (bfd_is_und_section (xs))
- abort ();
- if (bfd_is_und_section (ys))
- abort ();
-
- if (valueof (x) != valueof (y))
- return valueof (x) < valueof (y) ? -1 : 1;
-
- if (xs->vma != ys->vma)
- return xs->vma < ys->vma ? -1 : 1;
-
- xn = bfd_asymbol_name (x);
- yn = bfd_asymbol_name (y);
- xnl = strlen (xn);
- ynl = strlen (yn);
-
- /* The symbols gnu_compiled and gcc2_compiled convey even less
- information than the file name, so sort them out first. */
-
- xf = (strstr (xn, "gnu_compiled") != NULL
- || strstr (xn, "gcc2_compiled") != NULL);
- yf = (strstr (yn, "gnu_compiled") != NULL
- || strstr (yn, "gcc2_compiled") != NULL);
-
- if (xf && ! yf)
- return -1;
- if (! xf && yf)
- return 1;
-
- /* We use a heuristic for the file name. It may not work on non
- Unix systems, but it doesn't really matter; the only difference
- is precisely which symbol names get printed. */
-
-#define file_symbol(s, sn, snl) \
- (((s)->flags & BSF_FILE) != 0 \
- || ((sn)[(snl) - 2] == '.' \
- && ((sn)[(snl) - 1] == 'o' \
- || (sn)[(snl) - 1] == 'a')))
-
- xf = file_symbol (x, xn, xnl);
- yf = file_symbol (y, yn, ynl);
-
- if (xf && ! yf)
- return -1;
- if (! xf && yf)
- return 1;
-
- return non_numeric_forward (P_x, P_y);
-}
-
-/* This sort routine is used by sort_symbols_by_size. It is sorting
- an array of size_sym structures into size order. */
-
-static int
-size_forward2 (const void *P_x, const void *P_y)
-{
- const struct size_sym *x = (const struct size_sym *) P_x;
- const struct size_sym *y = (const struct size_sym *) P_y;
-
- if (x->size < y->size)
- return reverse_sort ? 1 : -1;
- else if (x->size > y->size)
- return reverse_sort ? -1 : 1;
- else
- return sorters[0][reverse_sort] (x->minisym, y->minisym);
-}
-
-/* Sort the symbols by size. ELF provides a size but for other formats
- we have to make a guess by assuming that the difference between the
- address of a symbol and the address of the next higher symbol is the
- size. */
-
-static long
-sort_symbols_by_size (bfd *abfd, bfd_boolean dynamic, void *minisyms,
- long symcount, unsigned int size,
- struct size_sym **symsizesp)
-{
- struct size_sym *symsizes;
- bfd_byte *from, *fromend;
- asymbol *sym = NULL;
- asymbol *store_sym, *store_next;
-
- qsort (minisyms, symcount, size, size_forward1);
-
- /* We are going to return a special set of symbols and sizes to
- print. */
- symsizes = xmalloc (symcount * sizeof (struct size_sym));
- *symsizesp = symsizes;
-
- /* Note that filter_symbols has already removed all absolute and
- undefined symbols. Here we remove all symbols whose size winds
- up as zero. */
- from = (bfd_byte *) minisyms;
- fromend = from + symcount * size;
-
- store_sym = sort_x;
- store_next = sort_y;
-
- if (from < fromend)
- {
- sym = bfd_minisymbol_to_symbol (abfd, dynamic, (const void *) from,
- store_sym);
- if (sym == NULL)
- bfd_fatal (bfd_get_filename (abfd));
- }
-
- for (; from < fromend; from += size)
- {
- asymbol *next;
- asection *sec;
- bfd_vma sz;
- asymbol *temp;
-
- if (from + size < fromend)
- {
- next = bfd_minisymbol_to_symbol (abfd,
- dynamic,
- (const void *) (from + size),
- store_next);
- if (next == NULL)
- bfd_fatal (bfd_get_filename (abfd));
- }
- else
- next = NULL;
-
- sec = bfd_get_section (sym);
-
- if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
- sz = ((elf_symbol_type *) sym)->internal_elf_sym.st_size;
- else if (bfd_is_com_section (sec))
- sz = sym->value;
- else
- {
- if (from + size < fromend
- && sec == bfd_get_section (next))
- sz = valueof (next) - valueof (sym);
- else
- sz = (bfd_get_section_vma (abfd, sec)
- + bfd_section_size (abfd, sec)
- - valueof (sym));
- }
-
- if (sz != 0)
- {
- symsizes->minisym = (const void *) from;
- symsizes->size = sz;
- ++symsizes;
- }
-
- sym = next;
-
- temp = store_sym;
- store_sym = store_next;
- store_next = temp;
- }
-
- symcount = symsizes - *symsizesp;
-
- /* We must now sort again by size. */
- qsort ((void *) *symsizesp, symcount, sizeof (struct size_sym), size_forward2);
-
- return symcount;
-}
-
-/* This function is used to get the relocs for a particular section.
- It is called via bfd_map_over_sections. */
-
-static void
-get_relocs (bfd *abfd, asection *sec, void *dataarg)
-{
- struct get_relocs_info *data = (struct get_relocs_info *) dataarg;
-
- *data->secs = sec;
-
- if ((sec->flags & SEC_RELOC) == 0)
- {
- *data->relocs = NULL;
- *data->relcount = 0;
- }
- else
- {
- long relsize;
-
- relsize = bfd_get_reloc_upper_bound (abfd, sec);
- if (relsize < 0)
- bfd_fatal (bfd_get_filename (abfd));
-
- *data->relocs = xmalloc (relsize);
- *data->relcount = bfd_canonicalize_reloc (abfd, sec, *data->relocs,
- data->syms);
- if (*data->relcount < 0)
- bfd_fatal (bfd_get_filename (abfd));
- }
-
- ++data->secs;
- ++data->relocs;
- ++data->relcount;
-}
-
-/* Print a single symbol. */
-
-static void
-print_symbol (bfd *abfd, asymbol *sym, bfd_vma ssize, bfd *archive_bfd)
-{
- symbol_info syminfo;
- struct extended_symbol_info info;
-
- PROGRESS (1);
-
- format->print_symbol_filename (archive_bfd, abfd);
-
- bfd_get_symbol_info (abfd, sym, &syminfo);
- info.sinfo = &syminfo;
- info.ssize = ssize;
- if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
- info.elfinfo = (elf_symbol_type *) sym;
- else
- info.elfinfo = NULL;
- format->print_symbol_info (&info, abfd);
-
- if (line_numbers)
- {
- static asymbol **syms;
- static long symcount;
- const char *filename, *functionname;
- unsigned int lineno;
-
- /* We need to get the canonical symbols in order to call
- bfd_find_nearest_line. This is inefficient, but, then, you
- don't have to use --line-numbers. */
- if (abfd != lineno_cache_bfd && syms != NULL)
- {
- free (syms);
- syms = NULL;
- }
- if (syms == NULL)
- {
- long symsize;
-
- symsize = bfd_get_symtab_upper_bound (abfd);
- if (symsize < 0)
- bfd_fatal (bfd_get_filename (abfd));
- syms = xmalloc (symsize);
- symcount = bfd_canonicalize_symtab (abfd, syms);
- if (symcount < 0)
- bfd_fatal (bfd_get_filename (abfd));
- lineno_cache_bfd = abfd;
- }
-
- if (bfd_is_und_section (bfd_get_section (sym)))
- {
- static asection **secs;
- static arelent ***relocs;
- static long *relcount;
- static unsigned int seccount;
- unsigned int i;
- const char *symname;
-
- /* For an undefined symbol, we try to find a reloc for the
- symbol, and print the line number of the reloc. */
- if (abfd != lineno_cache_rel_bfd && relocs != NULL)
- {
- for (i = 0; i < seccount; i++)
- if (relocs[i] != NULL)
- free (relocs[i]);
- free (secs);
- free (relocs);
- free (relcount);
- secs = NULL;
- relocs = NULL;
- relcount = NULL;
- }
-
- if (relocs == NULL)
- {
- struct get_relocs_info info;
-
- seccount = bfd_count_sections (abfd);
-
- secs = xmalloc (seccount * sizeof *secs);
- relocs = xmalloc (seccount * sizeof *relocs);
- relcount = xmalloc (seccount * sizeof *relcount);
-
- info.secs = secs;
- info.relocs = relocs;
- info.relcount = relcount;
- info.syms = syms;
- bfd_map_over_sections (abfd, get_relocs, (void *) &info);
- lineno_cache_rel_bfd = abfd;
- }
-
- symname = bfd_asymbol_name (sym);
- for (i = 0; i < seccount; i++)
- {
- long j;
-
- for (j = 0; j < relcount[i]; j++)
- {
- arelent *r;
-
- r = relocs[i][j];
- if (r->sym_ptr_ptr != NULL
- && (*r->sym_ptr_ptr)->section == sym->section
- && (*r->sym_ptr_ptr)->value == sym->value
- && strcmp (symname,
- bfd_asymbol_name (*r->sym_ptr_ptr)) == 0
- && bfd_find_nearest_line (abfd, secs[i], syms,
- r->address, &filename,
- &functionname, &lineno)
- && filename != NULL)
- {
- /* We only print the first one we find. */
- printf ("\t%s:%u", filename, lineno);
- i = seccount;
- break;
- }
- }
- }
- }
- else if (bfd_get_section (sym)->owner == abfd)
- {
- if ((bfd_find_line (abfd, syms, sym, &filename, &lineno)
- || bfd_find_nearest_line (abfd, bfd_get_section (sym),
- syms, sym->value, &filename,
- &functionname, &lineno))
- && filename != NULL
- && lineno != 0)
- printf ("\t%s:%u", filename, lineno);
- }
- }
-
- putchar ('\n');
-}
-
-/* Print the symbols when sorting by size. */
-
-static void
-print_size_symbols (bfd *abfd, bfd_boolean dynamic,
- struct size_sym *symsizes, long symcount,
- bfd *archive_bfd)
-{
- asymbol *store;
- struct size_sym *from, *fromend;
-
- store = bfd_make_empty_symbol (abfd);
- if (store == NULL)
- bfd_fatal (bfd_get_filename (abfd));
-
- from = symsizes;
- fromend = from + symcount;
- for (; from < fromend; from++)
- {
- asymbol *sym;
- bfd_vma ssize;
-
- sym = bfd_minisymbol_to_symbol (abfd, dynamic, from->minisym, store);
- if (sym == NULL)
- bfd_fatal (bfd_get_filename (abfd));
-
- /* For elf we have already computed the correct symbol size. */
- if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
- ssize = from->size;
- else
- ssize = from->size - bfd_section_vma (abfd, bfd_get_section (sym));
-
- print_symbol (abfd, sym, ssize, archive_bfd);
- }
-}
-
-
-/* Print the symbols. If ARCHIVE_BFD is non-NULL, it is the archive
- containing ABFD. */
-
-static void
-print_symbols (bfd *abfd, bfd_boolean dynamic, void *minisyms, long symcount,
- unsigned int size, bfd *archive_bfd)
-{
- asymbol *store;
- bfd_byte *from, *fromend;
-
- store = bfd_make_empty_symbol (abfd);
- if (store == NULL)
- bfd_fatal (bfd_get_filename (abfd));
-
- from = (bfd_byte *) minisyms;
- fromend = from + symcount * size;
- for (; from < fromend; from += size)
- {
- asymbol *sym;
-
- sym = bfd_minisymbol_to_symbol (abfd, dynamic, from, store);
- if (sym == NULL)
- bfd_fatal (bfd_get_filename (abfd));
-
- print_symbol (abfd, sym, (bfd_vma) 0, archive_bfd);
- }
-}
-
-/* If ARCHIVE_BFD is non-NULL, it is the archive containing ABFD. */
-
-static void
-display_rel_file (bfd *abfd, bfd *archive_bfd)
-{
- long symcount;
- void *minisyms;
- unsigned int size;
- struct size_sym *symsizes;
-
- if (! dynamic)
- {
- if (!(bfd_get_file_flags (abfd) & HAS_SYMS))
- {
- non_fatal (_("%s: no symbols"), bfd_get_filename (abfd));
- return;
- }
- }
-
- symcount = bfd_read_minisymbols (abfd, dynamic, &minisyms, &size);
- if (symcount < 0)
- bfd_fatal (bfd_get_filename (abfd));
-
- if (symcount == 0)
- {
- non_fatal (_("%s: no symbols"), bfd_get_filename (abfd));
- return;
- }
-
- if (show_synthetic && size == sizeof (asymbol *))
- {
- asymbol *synthsyms;
- long synth_count;
- asymbol **static_syms = NULL;
- asymbol **dyn_syms = NULL;
- long static_count = 0;
- long dyn_count = 0;
-
- if (dynamic)
- {
- dyn_count = symcount;
- dyn_syms = minisyms;
- }
- else
- {
- long storage = bfd_get_dynamic_symtab_upper_bound (abfd);
-
- static_count = symcount;
- static_syms = minisyms;
-
- if (storage > 0)
- {
- dyn_syms = xmalloc (storage);
- dyn_count = bfd_canonicalize_dynamic_symtab (abfd, dyn_syms);
- if (dyn_count < 0)
- bfd_fatal (bfd_get_filename (abfd));
- }
- }
- synth_count = bfd_get_synthetic_symtab (abfd, static_count, static_syms,
- dyn_count, dyn_syms, &synthsyms);
- if (synth_count > 0)
- {
- asymbol **symp;
- void *new_mini;
- long i;
-
- new_mini = xmalloc ((symcount + synth_count + 1) * sizeof (*symp));
- symp = new_mini;
- memcpy (symp, minisyms, symcount * sizeof (*symp));
- symp += symcount;
- for (i = 0; i < synth_count; i++)
- *symp++ = synthsyms + i;
- *symp = 0;
- minisyms = new_mini;
- symcount += synth_count;
- }
- }
-
- /* Discard the symbols we don't want to print.
- It's OK to do this in place; we'll free the storage anyway
- (after printing). */
-
- symcount = filter_symbols (abfd, dynamic, minisyms, symcount, size);
-
- symsizes = NULL;
- if (! no_sort)
- {
- sort_bfd = abfd;
- sort_dynamic = dynamic;
- sort_x = bfd_make_empty_symbol (abfd);
- sort_y = bfd_make_empty_symbol (abfd);
- if (sort_x == NULL || sort_y == NULL)
- bfd_fatal (bfd_get_filename (abfd));
-
- if (! sort_by_size)
- qsort (minisyms, symcount, size,
- sorters[sort_numerically][reverse_sort]);
- else
- symcount = sort_symbols_by_size (abfd, dynamic, minisyms, symcount,
- size, &symsizes);
- }
-
- if (! sort_by_size)
- print_symbols (abfd, dynamic, minisyms, symcount, size, archive_bfd);
- else
- print_size_symbols (abfd, dynamic, symsizes, symcount, archive_bfd);
-
- free (minisyms);
-}
-
-static void
-display_archive (bfd *file)
-{
- bfd *arfile = NULL;
- bfd *last_arfile = NULL;
- char **matching;
-
- format->print_archive_filename (bfd_get_filename (file));
-
- if (print_armap)
- print_symdef_entry (file);
-
- for (;;)
- {
- PROGRESS (1);
-
- arfile = bfd_openr_next_archived_file (file, arfile);
-
- if (arfile == NULL)
- {
- if (bfd_get_error () != bfd_error_no_more_archived_files)
- bfd_fatal (bfd_get_filename (file));
- break;
- }
-
- if (bfd_check_format_matches (arfile, bfd_object, &matching))
- {
- char buf[30];
-
- bfd_sprintf_vma (arfile, buf, (bfd_vma) -1);
- print_width = strlen (buf);
- format->print_archive_member (bfd_get_filename (file),
- bfd_get_filename (arfile));
- display_rel_file (arfile, file);
- }
- else
- {
- bfd_nonfatal (bfd_get_filename (arfile));
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- {
- list_matching_formats (matching);
- free (matching);
- }
- }
-
- if (last_arfile != NULL)
- {
- bfd_close (last_arfile);
- lineno_cache_bfd = NULL;
- lineno_cache_rel_bfd = NULL;
- }
- last_arfile = arfile;
- }
-
- if (last_arfile != NULL)
- {
- bfd_close (last_arfile);
- lineno_cache_bfd = NULL;
- lineno_cache_rel_bfd = NULL;
- }
-}
-
-static bfd_boolean
-display_file (char *filename)
-{
- bfd_boolean retval = TRUE;
- bfd *file;
- char **matching;
-
- if (get_file_size (filename) < 1)
- return FALSE;
-
- file = bfd_openr (filename, target);
- if (file == NULL)
- {
- bfd_nonfatal (filename);
- return FALSE;
- }
-
- if (bfd_check_format (file, bfd_archive))
- {
- display_archive (file);
- }
- else if (bfd_check_format_matches (file, bfd_object, &matching))
- {
- char buf[30];
-
- bfd_sprintf_vma (file, buf, (bfd_vma) -1);
- print_width = strlen (buf);
- format->print_object_filename (filename);
- display_rel_file (file, NULL);
- }
- else
- {
- bfd_nonfatal (filename);
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- {
- list_matching_formats (matching);
- free (matching);
- }
- retval = FALSE;
- }
-
- if (!bfd_close (file))
- bfd_fatal (filename);
-
- lineno_cache_bfd = NULL;
- lineno_cache_rel_bfd = NULL;
-
- return retval;
-}
-
-/* The following 3 groups of functions are called unconditionally,
- once at the start of processing each file of the appropriate type.
- They should check `filename_per_file' and `filename_per_symbol',
- as appropriate for their output format, to determine whether to
- print anything. */
-
-/* Print the name of an object file given on the command line. */
-
-static void
-print_object_filename_bsd (char *filename)
-{
- if (filename_per_file && !filename_per_symbol)
- printf ("\n%s:\n", filename);
-}
-
-static void
-print_object_filename_sysv (char *filename)
-{
- if (undefined_only)
- printf (_("\n\nUndefined symbols from %s:\n\n"), filename);
- else
- printf (_("\n\nSymbols from %s:\n\n"), filename);
- if (print_width == 8)
- printf (_("\
-Name Value Class Type Size Line Section\n\n"));
- else
- printf (_("\
-Name Value Class Type Size Line Section\n\n"));
-}
-
-static void
-print_object_filename_posix (char *filename)
-{
- if (filename_per_file && !filename_per_symbol)
- printf ("%s:\n", filename);
-}
-
-/* Print the name of an archive file given on the command line. */
-
-static void
-print_archive_filename_bsd (char *filename)
-{
- if (filename_per_file)
- printf ("\n%s:\n", filename);
-}
-
-static void
-print_archive_filename_sysv (char *filename ATTRIBUTE_UNUSED)
-{
-}
-
-static void
-print_archive_filename_posix (char *filename ATTRIBUTE_UNUSED)
-{
-}
-
-/* Print the name of an archive member file. */
-
-static void
-print_archive_member_bsd (char *archive ATTRIBUTE_UNUSED,
- const char *filename)
-{
- if (!filename_per_symbol)
- printf ("\n%s:\n", filename);
-}
-
-static void
-print_archive_member_sysv (char *archive, const char *filename)
-{
- if (undefined_only)
- printf (_("\n\nUndefined symbols from %s[%s]:\n\n"), archive, filename);
- else
- printf (_("\n\nSymbols from %s[%s]:\n\n"), archive, filename);
- if (print_width == 8)
- printf (_("\
-Name Value Class Type Size Line Section\n\n"));
- else
- printf (_("\
-Name Value Class Type Size Line Section\n\n"));
-}
-
-static void
-print_archive_member_posix (char *archive, const char *filename)
-{
- if (!filename_per_symbol)
- printf ("%s[%s]:\n", archive, filename);
-}
-
-/* Print the name of the file (and archive, if there is one)
- containing a symbol. */
-
-static void
-print_symbol_filename_bsd (bfd *archive_bfd, bfd *abfd)
-{
- if (filename_per_symbol)
- {
- if (archive_bfd)
- printf ("%s:", bfd_get_filename (archive_bfd));
- printf ("%s:", bfd_get_filename (abfd));
- }
-}
-
-static void
-print_symbol_filename_sysv (bfd *archive_bfd, bfd *abfd)
-{
- if (filename_per_symbol)
- {
- if (archive_bfd)
- printf ("%s:", bfd_get_filename (archive_bfd));
- printf ("%s:", bfd_get_filename (abfd));
- }
-}
-
-static void
-print_symbol_filename_posix (bfd *archive_bfd, bfd *abfd)
-{
- if (filename_per_symbol)
- {
- if (archive_bfd)
- printf ("%s[%s]: ", bfd_get_filename (archive_bfd),
- bfd_get_filename (abfd));
- else
- printf ("%s: ", bfd_get_filename (abfd));
- }
-}
-
-/* Print a symbol value. */
-
-static void
-print_value (bfd *abfd ATTRIBUTE_UNUSED, bfd_vma val)
-{
-#if ! defined (BFD64) || BFD_HOST_64BIT_LONG
- printf (value_format, val);
-#else
- /* We have a 64 bit value to print, but the host is only 32 bit. */
- if (print_radix == 16)
- bfd_fprintf_vma (abfd, stdout, val);
- else
- {
- char buf[30];
- char *s;
-
- s = buf + sizeof buf;
- *--s = '\0';
- while (val > 0)
- {
- *--s = (val % print_radix) + '0';
- val /= print_radix;
- }
- while ((buf + sizeof buf - 1) - s < 16)
- *--s = '0';
- printf ("%s", s);
- }
-#endif
-}
-
-/* Print a line of information about a symbol. */
-
-static void
-print_symbol_info_bsd (struct extended_symbol_info *info, bfd *abfd)
-{
- if (bfd_is_undefined_symclass (SYM_TYPE (info)))
- {
- if (print_width == 16)
- printf (" ");
- printf (" ");
- }
- else
- {
- /* Normally we print the value of the symbol. If we are printing the
- size or sorting by size then we print its size, except for the
- (weird) special case where both flags are defined, in which case we
- print both values. This conforms to documented behaviour. */
- if (sort_by_size && !print_size)
- print_value (abfd, SYM_SIZE (info));
- else
- print_value (abfd, SYM_VALUE (info));
-
- if (print_size && SYM_SIZE (info))
- {
- printf (" ");
- print_value (abfd, SYM_SIZE (info));
- }
- }
-
- printf (" %c", SYM_TYPE (info));
-
- if (SYM_TYPE (info) == '-')
- {
- /* A stab. */
- printf (" ");
- printf (other_format, SYM_STAB_OTHER (info));
- printf (" ");
- printf (desc_format, SYM_STAB_DESC (info));
- printf (" %5s", SYM_STAB_NAME (info));
- }
- print_symname (" %s", SYM_NAME (info), abfd);
-}
-
-static void
-print_symbol_info_sysv (struct extended_symbol_info *info, bfd *abfd)
-{
- print_symname ("%-20s|", SYM_NAME (info), abfd);
-
- if (bfd_is_undefined_symclass (SYM_TYPE (info)))
- {
- if (print_width == 8)
- printf (" ");
- else
- printf (" ");
- }
- else
- print_value (abfd, SYM_VALUE (info));
-
- printf ("| %c |", SYM_TYPE (info));
-
- if (SYM_TYPE (info) == '-')
- {
- /* A stab. */
- printf ("%18s| ", SYM_STAB_NAME (info)); /* (C) Type. */
- printf (desc_format, SYM_STAB_DESC (info)); /* Size. */
- printf ("| |"); /* Line, Section. */
- }
- else
- {
- /* Type, Size, Line, Section */
- if (info->elfinfo)
- printf ("%18s|",
- get_symbol_type (ELF_ST_TYPE (info->elfinfo->internal_elf_sym.st_info)));
- else
- printf (" |");
-
- if (SYM_SIZE (info))
- print_value (abfd, SYM_SIZE (info));
- else
- {
- if (print_width == 8)
- printf (" ");
- else
- printf (" ");
- }
-
- if (info->elfinfo)
- printf("| |%s", info->elfinfo->symbol.section->name);
- else
- printf("| |");
- }
-}
-
-static void
-print_symbol_info_posix (struct extended_symbol_info *info, bfd *abfd)
-{
- print_symname ("%s ", SYM_NAME (info), abfd);
- printf ("%c ", SYM_TYPE (info));
-
- if (bfd_is_undefined_symclass (SYM_TYPE (info)))
- printf (" ");
- else
- {
- print_value (abfd, SYM_VALUE (info));
- printf (" ");
- if (SYM_SIZE (info))
- print_value (abfd, SYM_SIZE (info));
- }
-}
-
-int
-main (int argc, char **argv)
-{
- int c;
- int retval;
-
-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
- setlocale (LC_COLLATE, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- program_name = *argv;
- xmalloc_set_program_name (program_name);
-
- START_PROGRESS (program_name, 0);
-
- expandargv (&argc, &argv);
-
- bfd_init ();
- set_default_bfd_target ();
-
- while ((c = getopt_long (argc, argv, "aABCDef:gHhlnopPrSst:uvVvX:",
- long_options, (int *) 0)) != EOF)
- {
- switch (c)
- {
- case 'a':
- print_debug_syms = 1;
- break;
- case 'A':
- case 'o':
- filename_per_symbol = 1;
- break;
- case 'B': /* For MIPS compatibility. */
- set_output_format ("bsd");
- break;
- case 'C':
- do_demangle = 1;
- if (optarg != NULL)
- {
- enum demangling_styles style;
-
- style = cplus_demangle_name_to_style (optarg);
- if (style == unknown_demangling)
- fatal (_("unknown demangling style `%s'"),
- optarg);
-
- cplus_demangle_set_style (style);
- }
- break;
- case 'D':
- dynamic = 1;
- break;
- case 'e':
- /* Ignored for HP/UX compatibility. */
- break;
- case 'f':
- set_output_format (optarg);
- break;
- case 'g':
- external_only = 1;
- break;
- case 'H':
- case 'h':
- usage (stdout, 0);
- case 'l':
- line_numbers = 1;
- break;
- case 'n':
- case 'v':
- sort_numerically = 1;
- break;
- case 'p':
- no_sort = 1;
- break;
- case 'P':
- set_output_format ("posix");
- break;
- case 'r':
- reverse_sort = 1;
- break;
- case 's':
- print_armap = 1;
- break;
- case 'S':
- print_size = 1;
- break;
- case 't':
- set_print_radix (optarg);
- break;
- case 'u':
- undefined_only = 1;
- break;
- case 'V':
- show_version = 1;
- break;
- case 'X':
- /* Ignored for (partial) AIX compatibility. On AIX, the
- argument has values 32, 64, or 32_64, and specifies that
- only 32-bit, only 64-bit, or both kinds of objects should
- be examined. The default is 32. So plain AIX nm on a
- library archive with both kinds of objects will ignore
- the 64-bit ones. For GNU nm, the default is and always
- has been -X 32_64, and other options are not supported. */
- if (strcmp (optarg, "32_64") != 0)
- fatal (_("Only -X 32_64 is supported"));
- break;
-
- case OPTION_TARGET: /* --target */
- target = optarg;
- break;
-
- case 0: /* A long option that just sets a flag. */
- break;
-
- default:
- usage (stderr, 1);
- }
- }
-
- if (show_version)
- print_version ("nm");
-
- if (sort_by_size && undefined_only)
- {
- non_fatal (_("Using the --size-sort and --undefined-only options together"));
- non_fatal (_("will produce no output, since undefined symbols have no size."));
- return 0;
- }
-
- /* OK, all options now parsed. If no filename specified, do a.out. */
- if (optind == argc)
- return !display_file ("a.out");
-
- retval = 0;
-
- if (argc - optind > 1)
- filename_per_file = 1;
-
- /* We were given several filenames to do. */
- while (optind < argc)
- {
- PROGRESS (1);
- if (!display_file (argv[optind++]))
- retval++;
- }
-
- END_PROGRESS (program_name);
-
-#ifdef HAVE_SBRK
- if (show_stats)
- {
- char *lim = (char *) sbrk (0);
-
- non_fatal (_("data size %ld"), (long) (lim - (char *) &environ));
- }
-#endif
-
- exit (retval);
- return retval;
-}
diff --git a/binutils-2.17/binutils/not-ranlib.c b/binutils-2.17/binutils/not-ranlib.c
deleted file mode 100644
index 6e61331b..00000000
--- a/binutils-2.17/binutils/not-ranlib.c
+++ /dev/null
@@ -1,3 +0,0 @@
-/* Linked with ar.o to flag that this program is 'ar' (not 'ranlib'). */
-
-int is_ranlib = 0;
diff --git a/binutils-2.17/binutils/not-strip.c b/binutils-2.17/binutils/not-strip.c
deleted file mode 100644
index 854a6697..00000000
--- a/binutils-2.17/binutils/not-strip.c
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Linked with objcopy.o to flag that this program is 'objcopy' (not
- 'strip'). */
-
-int is_strip = 0;
diff --git a/binutils-2.17/binutils/objcopy.c b/binutils-2.17/binutils/objcopy.c
deleted file mode 100644
index 0e0cfaac..00000000
--- a/binutils-2.17/binutils/objcopy.c
+++ /dev/null
@@ -1,3301 +0,0 @@
-/* objcopy.c -- copy object file from input to output, optionally massaging it.
- Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#include "bfd.h"
-#include "progress.h"
-#include "bucomm.h"
-#include "getopt.h"
-#include "libiberty.h"
-#include "budbg.h"
-#include "filenames.h"
-#include "fnmatch.h"
-#include "elf-bfd.h"
-#include <sys/stat.h>
-#include "libbfd.h"
-
-/* A list of symbols to explicitly strip out, or to keep. A linked
- list is good enough for a small number from the command line, but
- this will slow things down a lot if many symbols are being
- deleted. */
-
-struct symlist
-{
- const char *name;
- struct symlist *next;
-};
-
-/* A list to support redefine_sym. */
-struct redefine_node
-{
- char *source;
- char *target;
- struct redefine_node *next;
-};
-
-typedef struct section_rename
-{
- const char * old_name;
- const char * new_name;
- flagword flags;
- struct section_rename * next;
-}
-section_rename;
-
-/* List of sections to be renamed. */
-static section_rename *section_rename_list;
-
-#define RETURN_NONFATAL(s) {bfd_nonfatal (s); status = 1; return;}
-
-static asymbol **isympp = NULL; /* Input symbols. */
-static asymbol **osympp = NULL; /* Output symbols that survive stripping. */
-
-/* If `copy_byte' >= 0, copy only that byte of every `interleave' bytes. */
-static int copy_byte = -1;
-static int interleave = 4;
-
-static bfd_boolean verbose; /* Print file and target names. */
-static bfd_boolean preserve_dates; /* Preserve input file timestamp. */
-static int status = 0; /* Exit status. */
-
-enum strip_action
- {
- STRIP_UNDEF,
- STRIP_NONE, /* Don't strip. */
- STRIP_DEBUG, /* Strip all debugger symbols. */
- STRIP_UNNEEDED, /* Strip unnecessary symbols. */
- STRIP_NONDEBUG, /* Strip everything but debug info. */
- STRIP_ALL /* Strip all symbols. */
- };
-
-/* Which symbols to remove. */
-static enum strip_action strip_symbols;
-
-enum locals_action
- {
- LOCALS_UNDEF,
- LOCALS_START_L, /* Discard locals starting with L. */
- LOCALS_ALL /* Discard all locals. */
- };
-
-/* Which local symbols to remove. Overrides STRIP_ALL. */
-static enum locals_action discard_locals;
-
-/* What kind of change to perform. */
-enum change_action
-{
- CHANGE_IGNORE,
- CHANGE_MODIFY,
- CHANGE_SET
-};
-
-/* Structure used to hold lists of sections and actions to take. */
-struct section_list
-{
- struct section_list * next; /* Next section to change. */
- const char * name; /* Section name. */
- bfd_boolean used; /* Whether this entry was used. */
- bfd_boolean remove; /* Whether to remove this section. */
- bfd_boolean copy; /* Whether to copy this section. */
- enum change_action change_vma;/* Whether to change or set VMA. */
- bfd_vma vma_val; /* Amount to change by or set to. */
- enum change_action change_lma;/* Whether to change or set LMA. */
- bfd_vma lma_val; /* Amount to change by or set to. */
- bfd_boolean set_flags; /* Whether to set the section flags. */
- flagword flags; /* What to set the section flags to. */
-};
-
-static struct section_list *change_sections;
-
-/* TRUE if some sections are to be removed. */
-static bfd_boolean sections_removed;
-
-/* TRUE if only some sections are to be copied. */
-static bfd_boolean sections_copied;
-
-/* Changes to the start address. */
-static bfd_vma change_start = 0;
-static bfd_boolean set_start_set = FALSE;
-static bfd_vma set_start;
-
-/* Changes to section addresses. */
-static bfd_vma change_section_address = 0;
-
-/* Filling gaps between sections. */
-static bfd_boolean gap_fill_set = FALSE;
-static bfd_byte gap_fill = 0;
-
-/* Pad to a given address. */
-static bfd_boolean pad_to_set = FALSE;
-static bfd_vma pad_to;
-
-/* Use alternative machine code? */
-static unsigned long use_alt_mach_code = 0;
-
-/* Output BFD flags user wants to set or clear */
-static flagword bfd_flags_to_set;
-static flagword bfd_flags_to_clear;
-
-/* List of sections to add. */
-struct section_add
-{
- /* Next section to add. */
- struct section_add *next;
- /* Name of section to add. */
- const char *name;
- /* Name of file holding section contents. */
- const char *filename;
- /* Size of file. */
- size_t size;
- /* Contents of file. */
- bfd_byte *contents;
- /* BFD section, after it has been added. */
- asection *section;
-};
-
-/* List of sections to add to the output BFD. */
-static struct section_add *add_sections;
-
-/* If non-NULL the argument to --add-gnu-debuglink.
- This should be the filename to store in the .gnu_debuglink section. */
-static const char * gnu_debuglink_filename = NULL;
-
-/* Whether to convert debugging information. */
-static bfd_boolean convert_debugging = FALSE;
-
-/* Whether to change the leading character in symbol names. */
-static bfd_boolean change_leading_char = FALSE;
-
-/* Whether to remove the leading character from global symbol names. */
-static bfd_boolean remove_leading_char = FALSE;
-
-/* Whether to permit wildcard in symbol comparison. */
-static bfd_boolean wildcard = FALSE;
-
-/* List of symbols to strip, keep, localize, keep-global, weaken,
- or redefine. */
-static struct symlist *strip_specific_list = NULL;
-static struct symlist *strip_unneeded_list = NULL;
-static struct symlist *keep_specific_list = NULL;
-static struct symlist *localize_specific_list = NULL;
-static struct symlist *globalize_specific_list = NULL;
-static struct symlist *keepglobal_specific_list = NULL;
-static struct symlist *weaken_specific_list = NULL;
-static struct redefine_node *redefine_sym_list = NULL;
-
-/* If this is TRUE, we weaken global symbols (set BSF_WEAK). */
-static bfd_boolean weaken = FALSE;
-
-/* If this is TRUE, we retain BSF_FILE symbols. */
-static bfd_boolean keep_file_symbols = FALSE;
-
-/* Prefix symbols/sections. */
-static char *prefix_symbols_string = 0;
-static char *prefix_sections_string = 0;
-static char *prefix_alloc_sections_string = 0;
-
-/* 150 isn't special; it's just an arbitrary non-ASCII char value. */
-enum command_line_switch
- {
- OPTION_ADD_SECTION=150,
- OPTION_CHANGE_ADDRESSES,
- OPTION_CHANGE_LEADING_CHAR,
- OPTION_CHANGE_START,
- OPTION_CHANGE_SECTION_ADDRESS,
- OPTION_CHANGE_SECTION_LMA,
- OPTION_CHANGE_SECTION_VMA,
- OPTION_CHANGE_WARNINGS,
- OPTION_DEBUGGING,
- OPTION_GAP_FILL,
- OPTION_NO_CHANGE_WARNINGS,
- OPTION_PAD_TO,
- OPTION_REMOVE_LEADING_CHAR,
- OPTION_SET_SECTION_FLAGS,
- OPTION_SET_START,
- OPTION_STRIP_UNNEEDED,
- OPTION_WEAKEN,
- OPTION_REDEFINE_SYM,
- OPTION_REDEFINE_SYMS,
- OPTION_SREC_LEN,
- OPTION_SREC_FORCES3,
- OPTION_STRIP_SYMBOLS,
- OPTION_STRIP_UNNEEDED_SYMBOL,
- OPTION_STRIP_UNNEEDED_SYMBOLS,
- OPTION_KEEP_SYMBOLS,
- OPTION_LOCALIZE_SYMBOLS,
- OPTION_GLOBALIZE_SYMBOL,
- OPTION_GLOBALIZE_SYMBOLS,
- OPTION_KEEPGLOBAL_SYMBOLS,
- OPTION_WEAKEN_SYMBOLS,
- OPTION_RENAME_SECTION,
- OPTION_ALT_MACH_CODE,
- OPTION_PREFIX_SYMBOLS,
- OPTION_PREFIX_SECTIONS,
- OPTION_PREFIX_ALLOC_SECTIONS,
- OPTION_FORMATS_INFO,
- OPTION_ADD_GNU_DEBUGLINK,
- OPTION_ONLY_KEEP_DEBUG,
- OPTION_KEEP_FILE_SYMBOLS,
- OPTION_READONLY_TEXT,
- OPTION_WRITABLE_TEXT,
- OPTION_PURE,
- OPTION_IMPURE
- };
-
-/* Options to handle if running as "strip". */
-
-static struct option strip_options[] =
-{
- {"discard-all", no_argument, 0, 'x'},
- {"discard-locals", no_argument, 0, 'X'},
- {"format", required_argument, 0, 'F'}, /* Obsolete */
- {"help", no_argument, 0, 'h'},
- {"info", no_argument, 0, OPTION_FORMATS_INFO},
- {"input-format", required_argument, 0, 'I'}, /* Obsolete */
- {"input-target", required_argument, 0, 'I'},
- {"keep-file-symbols", no_argument, 0, OPTION_KEEP_FILE_SYMBOLS},
- {"keep-symbol", required_argument, 0, 'K'},
- {"only-keep-debug", no_argument, 0, OPTION_ONLY_KEEP_DEBUG},
- {"output-format", required_argument, 0, 'O'}, /* Obsolete */
- {"output-target", required_argument, 0, 'O'},
- {"output-file", required_argument, 0, 'o'},
- {"preserve-dates", no_argument, 0, 'p'},
- {"remove-section", required_argument, 0, 'R'},
- {"strip-all", no_argument, 0, 's'},
- {"strip-debug", no_argument, 0, 'S'},
- {"strip-unneeded", no_argument, 0, OPTION_STRIP_UNNEEDED},
- {"strip-symbol", required_argument, 0, 'N'},
- {"target", required_argument, 0, 'F'},
- {"verbose", no_argument, 0, 'v'},
- {"version", no_argument, 0, 'V'},
- {"wildcard", no_argument, 0, 'w'},
- {0, no_argument, 0, 0}
-};
-
-/* Options to handle if running as "objcopy". */
-
-static struct option copy_options[] =
-{
- {"add-gnu-debuglink", required_argument, 0, OPTION_ADD_GNU_DEBUGLINK},
- {"add-section", required_argument, 0, OPTION_ADD_SECTION},
- {"adjust-start", required_argument, 0, OPTION_CHANGE_START},
- {"adjust-vma", required_argument, 0, OPTION_CHANGE_ADDRESSES},
- {"adjust-section-vma", required_argument, 0, OPTION_CHANGE_SECTION_ADDRESS},
- {"adjust-warnings", no_argument, 0, OPTION_CHANGE_WARNINGS},
- {"alt-machine-code", required_argument, 0, OPTION_ALT_MACH_CODE},
- {"binary-architecture", required_argument, 0, 'B'},
- {"byte", required_argument, 0, 'b'},
- {"change-addresses", required_argument, 0, OPTION_CHANGE_ADDRESSES},
- {"change-leading-char", no_argument, 0, OPTION_CHANGE_LEADING_CHAR},
- {"change-section-address", required_argument, 0, OPTION_CHANGE_SECTION_ADDRESS},
- {"change-section-lma", required_argument, 0, OPTION_CHANGE_SECTION_LMA},
- {"change-section-vma", required_argument, 0, OPTION_CHANGE_SECTION_VMA},
- {"change-start", required_argument, 0, OPTION_CHANGE_START},
- {"change-warnings", no_argument, 0, OPTION_CHANGE_WARNINGS},
- {"debugging", no_argument, 0, OPTION_DEBUGGING},
- {"discard-all", no_argument, 0, 'x'},
- {"discard-locals", no_argument, 0, 'X'},
- {"format", required_argument, 0, 'F'}, /* Obsolete */
- {"gap-fill", required_argument, 0, OPTION_GAP_FILL},
- {"globalize-symbol", required_argument, 0, OPTION_GLOBALIZE_SYMBOL},
- {"globalize-symbols", required_argument, 0, OPTION_GLOBALIZE_SYMBOLS},
- {"help", no_argument, 0, 'h'},
- {"impure", no_argument, 0, OPTION_IMPURE},
- {"info", no_argument, 0, OPTION_FORMATS_INFO},
- {"input-format", required_argument, 0, 'I'}, /* Obsolete */
- {"input-target", required_argument, 0, 'I'},
- {"interleave", required_argument, 0, 'i'},
- {"keep-file-symbols", no_argument, 0, OPTION_KEEP_FILE_SYMBOLS},
- {"keep-global-symbol", required_argument, 0, 'G'},
- {"keep-global-symbols", required_argument, 0, OPTION_KEEPGLOBAL_SYMBOLS},
- {"keep-symbol", required_argument, 0, 'K'},
- {"keep-symbols", required_argument, 0, OPTION_KEEP_SYMBOLS},
- {"localize-symbol", required_argument, 0, 'L'},
- {"localize-symbols", required_argument, 0, OPTION_LOCALIZE_SYMBOLS},
- {"no-adjust-warnings", no_argument, 0, OPTION_NO_CHANGE_WARNINGS},
- {"no-change-warnings", no_argument, 0, OPTION_NO_CHANGE_WARNINGS},
- {"only-keep-debug", no_argument, 0, OPTION_ONLY_KEEP_DEBUG},
- {"only-section", required_argument, 0, 'j'},
- {"output-format", required_argument, 0, 'O'}, /* Obsolete */
- {"output-target", required_argument, 0, 'O'},
- {"pad-to", required_argument, 0, OPTION_PAD_TO},
- {"prefix-symbols", required_argument, 0, OPTION_PREFIX_SYMBOLS},
- {"prefix-sections", required_argument, 0, OPTION_PREFIX_SECTIONS},
- {"prefix-alloc-sections", required_argument, 0, OPTION_PREFIX_ALLOC_SECTIONS},
- {"preserve-dates", no_argument, 0, 'p'},
- {"pure", no_argument, 0, OPTION_PURE},
- {"readonly-text", no_argument, 0, OPTION_READONLY_TEXT},
- {"redefine-sym", required_argument, 0, OPTION_REDEFINE_SYM},
- {"redefine-syms", required_argument, 0, OPTION_REDEFINE_SYMS},
- {"remove-leading-char", no_argument, 0, OPTION_REMOVE_LEADING_CHAR},
- {"remove-section", required_argument, 0, 'R'},
- {"rename-section", required_argument, 0, OPTION_RENAME_SECTION},
- {"set-section-flags", required_argument, 0, OPTION_SET_SECTION_FLAGS},
- {"set-start", required_argument, 0, OPTION_SET_START},
- {"srec-len", required_argument, 0, OPTION_SREC_LEN},
- {"srec-forceS3", no_argument, 0, OPTION_SREC_FORCES3},
- {"strip-all", no_argument, 0, 'S'},
- {"strip-debug", no_argument, 0, 'g'},
- {"strip-unneeded", no_argument, 0, OPTION_STRIP_UNNEEDED},
- {"strip-unneeded-symbol", required_argument, 0, OPTION_STRIP_UNNEEDED_SYMBOL},
- {"strip-unneeded-symbols", required_argument, 0, OPTION_STRIP_UNNEEDED_SYMBOLS},
- {"strip-symbol", required_argument, 0, 'N'},
- {"strip-symbols", required_argument, 0, OPTION_STRIP_SYMBOLS},
- {"target", required_argument, 0, 'F'},
- {"verbose", no_argument, 0, 'v'},
- {"version", no_argument, 0, 'V'},
- {"weaken", no_argument, 0, OPTION_WEAKEN},
- {"weaken-symbol", required_argument, 0, 'W'},
- {"weaken-symbols", required_argument, 0, OPTION_WEAKEN_SYMBOLS},
- {"wildcard", no_argument, 0, 'w'},
- {"writable-text", no_argument, 0, OPTION_WRITABLE_TEXT},
- {0, no_argument, 0, 0}
-};
-
-/* IMPORTS */
-extern char *program_name;
-
-/* This flag distinguishes between strip and objcopy:
- 1 means this is 'strip'; 0 means this is 'objcopy'.
- -1 means if we should use argv[0] to decide. */
-extern int is_strip;
-
-/* The maximum length of an S record. This variable is declared in srec.c
- and can be modified by the --srec-len parameter. */
-extern unsigned int Chunk;
-
-/* Restrict the generation of Srecords to type S3 only.
- This variable is declare in bfd/srec.c and can be toggled
- on by the --srec-forceS3 command line switch. */
-extern bfd_boolean S3Forced;
-
-/* Defined in bfd/binary.c. Used to set architecture and machine of input
- binary files. */
-extern enum bfd_architecture bfd_external_binary_architecture;
-extern unsigned long bfd_external_machine;
-
-/* Forward declarations. */
-static void setup_section (bfd *, asection *, void *);
-static void setup_bfd_headers (bfd *, bfd *);
-static void copy_section (bfd *, asection *, void *);
-static void get_sections (bfd *, asection *, void *);
-static int compare_section_lma (const void *, const void *);
-static void mark_symbols_used_in_relocations (bfd *, asection *, void *);
-static bfd_boolean write_debugging_info (bfd *, void *, long *, asymbol ***);
-static const char *lookup_sym_redefinition (const char *);
-
-static void
-copy_usage (FILE *stream, int exit_status)
-{
- fprintf (stream, _("Usage: %s [option(s)] in-file [out-file]\n"), program_name);
- fprintf (stream, _(" Copies a binary file, possibly transforming it in the process\n"));
- fprintf (stream, _(" The options are:\n"));
- fprintf (stream, _("\
- -I --input-target <bfdname> Assume input file is in format <bfdname>\n\
- -O --output-target <bfdname> Create an output file in format <bfdname>\n\
- -B --binary-architecture <arch> Set arch of output file, when input is binary\n\
- -F --target <bfdname> Set both input and output format to <bfdname>\n\
- --debugging Convert debugging information, if possible\n\
- -p --preserve-dates Copy modified/access timestamps to the output\n\
- -j --only-section <name> Only copy section <name> into the output\n\
- --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>\n\
- -R --remove-section <name> Remove section <name> from the output\n\
- -S --strip-all Remove all symbol and relocation information\n\
- -g --strip-debug Remove all debugging symbols & sections\n\
- --strip-unneeded Remove all symbols not needed by relocations\n\
- -N --strip-symbol <name> Do not copy symbol <name>\n\
- --strip-unneeded-symbol <name>\n\
- Do not copy symbol <name> unless needed by\n\
- relocations\n\
- --only-keep-debug Strip everything but the debug information\n\
- -K --keep-symbol <name> Do not strip symbol <name>\n\
- --keep-file-symbols Do not strip file symbol(s)\n\
- -L --localize-symbol <name> Force symbol <name> to be marked as a local\n\
- --globalize-symbol <name> Force symbol <name> to be marked as a global\n\
- -G --keep-global-symbol <name> Localize all symbols except <name>\n\
- -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n\
- --weaken Force all global symbols to be marked as weak\n\
- -w --wildcard Permit wildcard in symbol comparison\n\
- -x --discard-all Remove all non-global symbols\n\
- -X --discard-locals Remove any compiler-generated symbols\n\
- -i --interleave <number> Only copy one out of every <number> bytes\n\
- -b --byte <num> Select byte <num> in every interleaved block\n\
- --gap-fill <val> Fill gaps between sections with <val>\n\
- --pad-to <addr> Pad the last section up to address <addr>\n\
- --set-start <addr> Set the start address to <addr>\n\
- {--change-start|--adjust-start} <incr>\n\
- Add <incr> to the start address\n\
- {--change-addresses|--adjust-vma} <incr>\n\
- Add <incr> to LMA, VMA and start addresses\n\
- {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n\
- Change LMA and VMA of section <name> by <val>\n\
- --change-section-lma <name>{=|+|-}<val>\n\
- Change the LMA of section <name> by <val>\n\
- --change-section-vma <name>{=|+|-}<val>\n\
- Change the VMA of section <name> by <val>\n\
- {--[no-]change-warnings|--[no-]adjust-warnings}\n\
- Warn if a named section does not exist\n\
- --set-section-flags <name>=<flags>\n\
- Set section <name>'s properties to <flags>\n\
- --add-section <name>=<file> Add section <name> found in <file> to output\n\
- --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n\
- --change-leading-char Force output format's leading character style\n\
- --remove-leading-char Remove leading character from global symbols\n\
- --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n\
- --redefine-syms <file> --redefine-sym for all symbol pairs \n\
- listed in <file>\n\
- --srec-len <number> Restrict the length of generated Srecords\n\
- --srec-forceS3 Restrict the type of generated Srecords to S3\n\
- --strip-symbols <file> -N for all symbols listed in <file>\n\
- --strip-unneeded-symbols <file>\n\
- --strip-unneeded-symbol for all symbols listed\n\
- in <file>\n\
- --keep-symbols <file> -K for all symbols listed in <file>\n\
- --localize-symbols <file> -L for all symbols listed in <file>\n\
- --globalize-symbols <file> --globalize-symbol for all in <file>\n\
- --keep-global-symbols <file> -G for all symbols listed in <file>\n\
- --weaken-symbols <file> -W for all symbols listed in <file>\n\
- --alt-machine-code <index> Use the target's <index>'th alternative machine\n\
- --writable-text Mark the output text as writable\n\
- --readonly-text Make the output text write protected\n\
- --pure Mark the output file as demand paged\n\
- --impure Mark the output file as impure\n\
- --prefix-symbols <prefix> Add <prefix> to start of every symbol name\n\
- --prefix-sections <prefix> Add <prefix> to start of every section name\n\
- --prefix-alloc-sections <prefix>\n\
- Add <prefix> to start of every allocatable\n\
- section name\n\
- -v --verbose List all object files modified\n\
- @<file> Read options from <file>\n\
- -V --version Display this program's version number\n\
- -h --help Display this output\n\
- --info List object formats & architectures supported\n\
-"));
- list_supported_targets (program_name, stream);
- if (exit_status == 0)
- fprintf (stream, _("Report bugs to %s\n"), REPORT_BUGS_TO);
- exit (exit_status);
-}
-
-static void
-strip_usage (FILE *stream, int exit_status)
-{
- fprintf (stream, _("Usage: %s <option(s)> in-file(s)\n"), program_name);
- fprintf (stream, _(" Removes symbols and sections from files\n"));
- fprintf (stream, _(" The options are:\n"));
- fprintf (stream, _("\
- -I --input-target=<bfdname> Assume input file is in format <bfdname>\n\
- -O --output-target=<bfdname> Create an output file in format <bfdname>\n\
- -F --target=<bfdname> Set both input and output format to <bfdname>\n\
- -p --preserve-dates Copy modified/access timestamps to the output\n\
- -R --remove-section=<name> Remove section <name> from the output\n\
- -s --strip-all Remove all symbol and relocation information\n\
- -g -S -d --strip-debug Remove all debugging symbols & sections\n\
- --strip-unneeded Remove all symbols not needed by relocations\n\
- --only-keep-debug Strip everything but the debug information\n\
- -N --strip-symbol=<name> Do not copy symbol <name>\n\
- -K --keep-symbol=<name> Do not strip symbol <name>\n\
- --keep-file-symbols Do not strip file symbol(s)\n\
- -w --wildcard Permit wildcard in symbol comparison\n\
- -x --discard-all Remove all non-global symbols\n\
- -X --discard-locals Remove any compiler-generated symbols\n\
- -v --verbose List all object files modified\n\
- -V --version Display this program's version number\n\
- -h --help Display this output\n\
- --info List object formats & architectures supported\n\
- -o <file> Place stripped output into <file>\n\
-"));
-
- list_supported_targets (program_name, stream);
- if (exit_status == 0)
- fprintf (stream, _("Report bugs to %s\n"), REPORT_BUGS_TO);
- exit (exit_status);
-}
-
-/* Parse section flags into a flagword, with a fatal error if the
- string can't be parsed. */
-
-static flagword
-parse_flags (const char *s)
-{
- flagword ret;
- const char *snext;
- int len;
-
- ret = SEC_NO_FLAGS;
-
- do
- {
- snext = strchr (s, ',');
- if (snext == NULL)
- len = strlen (s);
- else
- {
- len = snext - s;
- ++snext;
- }
-
- if (0) ;
-#define PARSE_FLAG(fname,fval) \
- else if (strncasecmp (fname, s, len) == 0) ret |= fval
- PARSE_FLAG ("alloc", SEC_ALLOC);
- PARSE_FLAG ("load", SEC_LOAD);
- PARSE_FLAG ("noload", SEC_NEVER_LOAD);
- PARSE_FLAG ("readonly", SEC_READONLY);
- PARSE_FLAG ("debug", SEC_DEBUGGING);
- PARSE_FLAG ("code", SEC_CODE);
- PARSE_FLAG ("data", SEC_DATA);
- PARSE_FLAG ("rom", SEC_ROM);
- PARSE_FLAG ("share", SEC_COFF_SHARED);
- PARSE_FLAG ("contents", SEC_HAS_CONTENTS);
-#undef PARSE_FLAG
- else
- {
- char *copy;
-
- copy = xmalloc (len + 1);
- strncpy (copy, s, len);
- copy[len] = '\0';
- non_fatal (_("unrecognized section flag `%s'"), copy);
- fatal (_("supported flags: %s"),
- "alloc, load, noload, readonly, debug, code, data, rom, share, contents");
- }
-
- s = snext;
- }
- while (s != NULL);
-
- return ret;
-}
-
-/* Find and optionally add an entry in the change_sections list. */
-
-static struct section_list *
-find_section_list (const char *name, bfd_boolean add)
-{
- struct section_list *p;
-
- for (p = change_sections; p != NULL; p = p->next)
- if (strcmp (p->name, name) == 0)
- return p;
-
- if (! add)
- return NULL;
-
- p = xmalloc (sizeof (struct section_list));
- p->name = name;
- p->used = FALSE;
- p->remove = FALSE;
- p->copy = FALSE;
- p->change_vma = CHANGE_IGNORE;
- p->change_lma = CHANGE_IGNORE;
- p->vma_val = 0;
- p->lma_val = 0;
- p->set_flags = FALSE;
- p->flags = 0;
-
- p->next = change_sections;
- change_sections = p;
-
- return p;
-}
-
-/* Add a symbol to strip_specific_list. */
-
-static void
-add_specific_symbol (const char *name, struct symlist **list)
-{
- struct symlist *tmp_list;
-
- tmp_list = xmalloc (sizeof (struct symlist));
- tmp_list->name = name;
- tmp_list->next = *list;
- *list = tmp_list;
-}
-
-/* Add symbols listed in `filename' to strip_specific_list. */
-
-#define IS_WHITESPACE(c) ((c) == ' ' || (c) == '\t')
-#define IS_LINE_TERMINATOR(c) ((c) == '\n' || (c) == '\r' || (c) == '\0')
-
-static void
-add_specific_symbols (const char *filename, struct symlist **list)
-{
- off_t size;
- FILE * f;
- char * line;
- char * buffer;
- unsigned int line_count;
-
- size = get_file_size (filename);
- if (size == 0)
- return;
-
- buffer = xmalloc (size + 2);
- f = fopen (filename, FOPEN_RT);
- if (f == NULL)
- fatal (_("cannot open '%s': %s"), filename, strerror (errno));
-
- if (fread (buffer, 1, size, f) == 0 || ferror (f))
- fatal (_("%s: fread failed"), filename);
-
- fclose (f);
- buffer [size] = '\n';
- buffer [size + 1] = '\0';
-
- line_count = 1;
-
- for (line = buffer; * line != '\0'; line ++)
- {
- char * eol;
- char * name;
- char * name_end;
- int finished = FALSE;
-
- for (eol = line;; eol ++)
- {
- switch (* eol)
- {
- case '\n':
- * eol = '\0';
- /* Cope with \n\r. */
- if (eol[1] == '\r')
- ++ eol;
- finished = TRUE;
- break;
-
- case '\r':
- * eol = '\0';
- /* Cope with \r\n. */
- if (eol[1] == '\n')
- ++ eol;
- finished = TRUE;
- break;
-
- case 0:
- finished = TRUE;
- break;
-
- case '#':
- /* Line comment, Terminate the line here, in case a
- name is present and then allow the rest of the
- loop to find the real end of the line. */
- * eol = '\0';
- break;
-
- default:
- break;
- }
-
- if (finished)
- break;
- }
-
- /* A name may now exist somewhere between 'line' and 'eol'.
- Strip off leading whitespace and trailing whitespace,
- then add it to the list. */
- for (name = line; IS_WHITESPACE (* name); name ++)
- ;
- for (name_end = name;
- (! IS_WHITESPACE (* name_end))
- && (! IS_LINE_TERMINATOR (* name_end));
- name_end ++)
- ;
-
- if (! IS_LINE_TERMINATOR (* name_end))
- {
- char * extra;
-
- for (extra = name_end + 1; IS_WHITESPACE (* extra); extra ++)
- ;
-
- if (! IS_LINE_TERMINATOR (* extra))
- non_fatal (_("%s:%d: Ignoring rubbish found on this line"),
- filename, line_count);
- }
-
- * name_end = '\0';
-
- if (name_end > name)
- add_specific_symbol (name, list);
-
- /* Advance line pointer to end of line. The 'eol ++' in the for
- loop above will then advance us to the start of the next line. */
- line = eol;
- line_count ++;
- }
-}
-
-/* See whether a symbol should be stripped or kept based on
- strip_specific_list and keep_symbols. */
-
-static bfd_boolean
-is_specified_symbol (const char *name, struct symlist *list)
-{
- struct symlist *tmp_list;
-
- if (wildcard)
- {
- for (tmp_list = list; tmp_list; tmp_list = tmp_list->next)
- if (*(tmp_list->name) != '!')
- {
- if (!fnmatch (tmp_list->name, name, 0))
- return TRUE;
- }
- else
- {
- if (fnmatch (tmp_list->name + 1, name, 0))
- return TRUE;
- }
- }
- else
- {
- for (tmp_list = list; tmp_list; tmp_list = tmp_list->next)
- if (strcmp (name, tmp_list->name) == 0)
- return TRUE;
- }
-
- return FALSE;
-}
-
-/* See if a section is being removed. */
-
-static bfd_boolean
-is_strip_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
-{
- if (sections_removed || sections_copied)
- {
- struct section_list *p;
-
- p = find_section_list (bfd_get_section_name (abfd, sec), FALSE);
-
- if (sections_removed && p != NULL && p->remove)
- return TRUE;
- if (sections_copied && (p == NULL || ! p->copy))
- return TRUE;
- }
-
- if ((bfd_get_section_flags (abfd, sec) & SEC_DEBUGGING) != 0)
- {
- if (strip_symbols == STRIP_DEBUG
- || strip_symbols == STRIP_UNNEEDED
- || strip_symbols == STRIP_ALL
- || discard_locals == LOCALS_ALL
- || convert_debugging)
- return TRUE;
-
- if (strip_symbols == STRIP_NONDEBUG)
- return FALSE;
- }
-
- return FALSE;
-}
-
-/* Choose which symbol entries to copy; put the result in OSYMS.
- We don't copy in place, because that confuses the relocs.
- Return the number of symbols to print. */
-
-static unsigned int
-filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
- asymbol **isyms, long symcount)
-{
- asymbol **from = isyms, **to = osyms;
- long src_count = 0, dst_count = 0;
- int relocatable = (abfd->flags & (HAS_RELOC | EXEC_P | DYNAMIC))
- == HAS_RELOC;
-
- for (; src_count < symcount; src_count++)
- {
- asymbol *sym = from[src_count];
- flagword flags = sym->flags;
- char *name = (char *) bfd_asymbol_name (sym);
- int keep;
- bfd_boolean undefined;
- bfd_boolean rem_leading_char;
- bfd_boolean add_leading_char;
-
- undefined = bfd_is_und_section (bfd_get_section (sym));
-
- if (redefine_sym_list)
- {
- char *old_name, *new_name;
-
- old_name = (char *) bfd_asymbol_name (sym);
- new_name = (char *) lookup_sym_redefinition (old_name);
- bfd_asymbol_name (sym) = new_name;
- name = new_name;
- }
-
- /* Check if we will remove the current leading character. */
- rem_leading_char =
- (name[0] == bfd_get_symbol_leading_char (abfd))
- && (change_leading_char
- || (remove_leading_char
- && ((flags & (BSF_GLOBAL | BSF_WEAK)) != 0
- || undefined
- || bfd_is_com_section (bfd_get_section (sym)))));
-
- /* Check if we will add a new leading character. */
- add_leading_char =
- change_leading_char
- && (bfd_get_symbol_leading_char (obfd) != '\0')
- && (bfd_get_symbol_leading_char (abfd) == '\0'
- || (name[0] == bfd_get_symbol_leading_char (abfd)));
-
- /* Short circuit for change_leading_char if we can do it in-place. */
- if (rem_leading_char && add_leading_char && !prefix_symbols_string)
- {
- name[0] = bfd_get_symbol_leading_char (obfd);
- bfd_asymbol_name (sym) = name;
- rem_leading_char = FALSE;
- add_leading_char = FALSE;
- }
-
- /* Remove leading char. */
- if (rem_leading_char)
- bfd_asymbol_name (sym) = ++name;
-
- /* Add new leading char and/or prefix. */
- if (add_leading_char || prefix_symbols_string)
- {
- char *n, *ptr;
-
- ptr = n = xmalloc (1 + strlen (prefix_symbols_string)
- + strlen (name) + 1);
- if (add_leading_char)
- *ptr++ = bfd_get_symbol_leading_char (obfd);
-
- if (prefix_symbols_string)
- {
- strcpy (ptr, prefix_symbols_string);
- ptr += strlen (prefix_symbols_string);
- }
-
- strcpy (ptr, name);
- bfd_asymbol_name (sym) = n;
- name = n;
- }
-
- if (strip_symbols == STRIP_ALL)
- keep = 0;
- else if ((flags & BSF_KEEP) != 0 /* Used in relocation. */
- || ((flags & BSF_SECTION_SYM) != 0
- && ((*bfd_get_section (sym)->symbol_ptr_ptr)->flags
- & BSF_KEEP) != 0))
- keep = 1;
- else if (relocatable /* Relocatable file. */
- && (flags & (BSF_GLOBAL | BSF_WEAK)) != 0)
- keep = 1;
- else if (bfd_decode_symclass (sym) == 'I')
- /* Global symbols in $idata sections need to be retained
- even if relocatable is FALSE. External users of the
- library containing the $idata section may reference these
- symbols. */
- keep = 1;
- else if ((flags & BSF_GLOBAL) != 0 /* Global symbol. */
- || (flags & BSF_WEAK) != 0
- || undefined
- || bfd_is_com_section (bfd_get_section (sym)))
- keep = strip_symbols != STRIP_UNNEEDED;
- else if ((flags & BSF_DEBUGGING) != 0) /* Debugging symbol. */
- keep = (strip_symbols != STRIP_DEBUG
- && strip_symbols != STRIP_UNNEEDED
- && ! convert_debugging);
- else if (bfd_coff_get_comdat_section (abfd, bfd_get_section (sym)))
- /* COMDAT sections store special information in local
- symbols, so we cannot risk stripping any of them. */
- keep = 1;
- else /* Local symbol. */
- keep = (strip_symbols != STRIP_UNNEEDED
- && (discard_locals != LOCALS_ALL
- && (discard_locals != LOCALS_START_L
- || ! bfd_is_local_label (abfd, sym))));
-
- if (keep && is_specified_symbol (name, strip_specific_list))
- keep = 0;
- if (keep
- && !(flags & BSF_KEEP)
- && is_specified_symbol (name, strip_unneeded_list))
- keep = 0;
- if (!keep
- && ((keep_file_symbols && (flags & BSF_FILE))
- || is_specified_symbol (name, keep_specific_list)))
- keep = 1;
- if (keep && is_strip_section (abfd, bfd_get_section (sym)))
- keep = 0;
-
- if (keep)
- {
- if ((flags & BSF_GLOBAL) != 0
- && (weaken || is_specified_symbol (name, weaken_specific_list)))
- {
- sym->flags &= ~ BSF_GLOBAL;
- sym->flags |= BSF_WEAK;
- }
-
- if (!undefined
- && (flags & (BSF_GLOBAL | BSF_WEAK))
- && (is_specified_symbol (name, localize_specific_list)
- || (keepglobal_specific_list != NULL
- && ! is_specified_symbol (name, keepglobal_specific_list))))
- {
- sym->flags &= ~ (BSF_GLOBAL | BSF_WEAK);
- sym->flags |= BSF_LOCAL;
- }
-
- if (!undefined
- && (flags & BSF_LOCAL)
- && is_specified_symbol (name, globalize_specific_list))
- {
- sym->flags &= ~ BSF_LOCAL;
- sym->flags |= BSF_GLOBAL;
- }
-
- to[dst_count++] = sym;
- }
- }
-
- to[dst_count] = NULL;
-
- return dst_count;
-}
-
-/* Find the redefined name of symbol SOURCE. */
-
-static const char *
-lookup_sym_redefinition (const char *source)
-{
- struct redefine_node *list;
-
- for (list = redefine_sym_list; list != NULL; list = list->next)
- if (strcmp (source, list->source) == 0)
- return list->target;
-
- return source;
-}
-
-/* Add a node to a symbol redefine list. */
-
-static void
-redefine_list_append (const char *cause, const char *source, const char *target)
-{
- struct redefine_node **p;
- struct redefine_node *list;
- struct redefine_node *new_node;
-
- for (p = &redefine_sym_list; (list = *p) != NULL; p = &list->next)
- {
- if (strcmp (source, list->source) == 0)
- fatal (_("%s: Multiple redefinition of symbol \"%s\""),
- cause, source);
-
- if (strcmp (target, list->target) == 0)
- fatal (_("%s: Symbol \"%s\" is target of more than one redefinition"),
- cause, target);
- }
-
- new_node = xmalloc (sizeof (struct redefine_node));
-
- new_node->source = strdup (source);
- new_node->target = strdup (target);
- new_node->next = NULL;
-
- *p = new_node;
-}
-
-/* Handle the --redefine-syms option. Read lines containing "old new"
- from the file, and add them to the symbol redefine list. */
-
-static void
-add_redefine_syms_file (const char *filename)
-{
- FILE *file;
- char *buf;
- size_t bufsize;
- size_t len;
- size_t outsym_off;
- int c, lineno;
-
- file = fopen (filename, "r");
- if (file == NULL)
- fatal (_("couldn't open symbol redefinition file %s (error: %s)"),
- filename, strerror (errno));
-
- bufsize = 100;
- buf = xmalloc (bufsize);
-
- lineno = 1;
- c = getc (file);
- len = 0;
- outsym_off = 0;
- while (c != EOF)
- {
- /* Collect the input symbol name. */
- while (! IS_WHITESPACE (c) && ! IS_LINE_TERMINATOR (c) && c != EOF)
- {
- if (c == '#')
- goto comment;
- buf[len++] = c;
- if (len >= bufsize)
- {
- bufsize *= 2;
- buf = xrealloc (buf, bufsize);
- }
- c = getc (file);
- }
- buf[len++] = '\0';
- if (c == EOF)
- break;
-
- /* Eat white space between the symbol names. */
- while (IS_WHITESPACE (c))
- c = getc (file);
- if (c == '#' || IS_LINE_TERMINATOR (c))
- goto comment;
- if (c == EOF)
- break;
-
- /* Collect the output symbol name. */
- outsym_off = len;
- while (! IS_WHITESPACE (c) && ! IS_LINE_TERMINATOR (c) && c != EOF)
- {
- if (c == '#')
- goto comment;
- buf[len++] = c;
- if (len >= bufsize)
- {
- bufsize *= 2;
- buf = xrealloc (buf, bufsize);
- }
- c = getc (file);
- }
- buf[len++] = '\0';
- if (c == EOF)
- break;
-
- /* Eat white space at end of line. */
- while (! IS_LINE_TERMINATOR(c) && c != EOF && IS_WHITESPACE (c))
- c = getc (file);
- if (c == '#')
- goto comment;
- /* Handle \r\n. */
- if ((c == '\r' && (c = getc (file)) == '\n')
- || c == '\n' || c == EOF)
- {
- end_of_line:
- /* Append the redefinition to the list. */
- if (buf[0] != '\0')
- redefine_list_append (filename, &buf[0], &buf[outsym_off]);
-
- lineno++;
- len = 0;
- outsym_off = 0;
- if (c == EOF)
- break;
- c = getc (file);
- continue;
- }
- else
- fatal (_("%s:%d: garbage found at end of line"), filename, lineno);
- comment:
- if (len != 0 && (outsym_off == 0 || outsym_off == len))
- fatal (_("%s:%d: missing new symbol name"), filename, lineno);
- buf[len++] = '\0';
-
- /* Eat the rest of the line and finish it. */
- while (c != '\n' && c != EOF)
- c = getc (file);
- goto end_of_line;
- }
-
- if (len != 0)
- fatal (_("%s:%d: premature end of file"), filename, lineno);
-
- free (buf);
-}
-
-/* Copy unkown object file IBFD onto OBFD.
- Returns TRUE upon success, FALSE otherwise. */
-
-static bfd_boolean
-copy_unknown_object (bfd *ibfd, bfd *obfd)
-{
- char *cbuf;
- int tocopy;
- long ncopied;
- long size;
- struct stat buf;
-
- if (bfd_stat_arch_elt (ibfd, &buf) != 0)
- {
- bfd_nonfatal (bfd_get_archive_filename (ibfd));
- return FALSE;
- }
-
- size = buf.st_size;
- if (size < 0)
- {
- non_fatal (_("stat returns negative size for `%s'"),
- bfd_get_archive_filename (ibfd));
- return FALSE;
- }
-
- if (bfd_seek (ibfd, (file_ptr) 0, SEEK_SET) != 0)
- {
- bfd_nonfatal (bfd_get_archive_filename (ibfd));
- return FALSE;
- }
-
- if (verbose)
- printf (_("copy from `%s' [unknown] to `%s' [unknown]\n"),
- bfd_get_archive_filename (ibfd), bfd_get_filename (obfd));
-
- cbuf = xmalloc (BUFSIZE);
- ncopied = 0;
- while (ncopied < size)
- {
- tocopy = size - ncopied;
- if (tocopy > BUFSIZE)
- tocopy = BUFSIZE;
-
- if (bfd_bread (cbuf, (bfd_size_type) tocopy, ibfd)
- != (bfd_size_type) tocopy)
- {
- bfd_nonfatal (bfd_get_archive_filename (ibfd));
- free (cbuf);
- return FALSE;
- }
-
- if (bfd_bwrite (cbuf, (bfd_size_type) tocopy, obfd)
- != (bfd_size_type) tocopy)
- {
- bfd_nonfatal (bfd_get_filename (obfd));
- free (cbuf);
- return FALSE;
- }
-
- ncopied += tocopy;
- }
-
- chmod (bfd_get_filename (obfd), buf.st_mode);
- free (cbuf);
- return TRUE;
-}
-
-/* Copy object file IBFD onto OBFD.
- Returns TRUE upon success, FALSE otherwise. */
-
-static bfd_boolean
-copy_object (bfd *ibfd, bfd *obfd)
-{
- bfd_vma start;
- long symcount;
- asection **osections = NULL;
- asection *gnu_debuglink_section = NULL;
- bfd_size_type *gaps = NULL;
- bfd_size_type max_gap = 0;
- long symsize;
- void *dhandle;
- enum bfd_architecture iarch;
- unsigned int imach;
-
- if (ibfd->xvec->byteorder != obfd->xvec->byteorder
- && ibfd->xvec->byteorder != BFD_ENDIAN_UNKNOWN
- && obfd->xvec->byteorder != BFD_ENDIAN_UNKNOWN)
- fatal (_("Unable to change endianness of input file(s)"));
-
- if (!bfd_set_format (obfd, bfd_get_format (ibfd)))
- {
- bfd_nonfatal (bfd_get_filename (obfd));
- return FALSE;
- }
-
- if (verbose)
- printf (_("copy from `%s' [%s] to `%s' [%s]\n"),
- bfd_get_archive_filename (ibfd), bfd_get_target (ibfd),
- bfd_get_filename (obfd), bfd_get_target (obfd));
-
- if (set_start_set)
- start = set_start;
- else
- start = bfd_get_start_address (ibfd);
- start += change_start;
-
- /* Neither the start address nor the flags
- need to be set for a core file. */
- if (bfd_get_format (obfd) != bfd_core)
- {
- flagword flags;
-
- flags = bfd_get_file_flags (ibfd);
- flags |= bfd_flags_to_set;
- flags &= ~bfd_flags_to_clear;
- flags &= bfd_applicable_file_flags (obfd);
-
- if (!bfd_set_start_address (obfd, start)
- || !bfd_set_file_flags (obfd, flags))
- {
- bfd_nonfatal (bfd_get_archive_filename (ibfd));
- return FALSE;
- }
- }
-
- /* Copy architecture of input file to output file. */
- iarch = bfd_get_arch (ibfd);
- imach = bfd_get_mach (ibfd);
- if (!bfd_set_arch_mach (obfd, iarch, imach)
- && (ibfd->target_defaulted
- || bfd_get_arch (ibfd) != bfd_get_arch (obfd)))
- {
- if (bfd_get_arch (ibfd) == bfd_arch_unknown)
- non_fatal (_("Unable to recognise the format of the input file `%s'"),
- bfd_get_archive_filename (ibfd));
- else
- non_fatal (_("Warning: Output file cannot represent architecture `%s'"),
- bfd_printable_arch_mach (bfd_get_arch (ibfd),
- bfd_get_mach (ibfd)));
- return FALSE;
- }
-
- if (!bfd_set_format (obfd, bfd_get_format (ibfd)))
- {
- bfd_nonfatal (bfd_get_archive_filename (ibfd));
- return FALSE;
- }
-
- if (isympp)
- free (isympp);
-
- if (osympp != isympp)
- free (osympp);
-
- isympp = NULL;
- osympp = NULL;
-
- /* BFD mandates that all output sections be created and sizes set before
- any output is done. Thus, we traverse all sections multiple times. */
- bfd_map_over_sections (ibfd, setup_section, obfd);
-
- setup_bfd_headers (ibfd, obfd);
-
- if (add_sections != NULL)
- {
- struct section_add *padd;
- struct section_list *pset;
-
- for (padd = add_sections; padd != NULL; padd = padd->next)
- {
- flagword flags;
-
- pset = find_section_list (padd->name, FALSE);
- if (pset != NULL)
- pset->used = TRUE;
-
- flags = SEC_HAS_CONTENTS | SEC_READONLY | SEC_DATA;
- if (pset != NULL && pset->set_flags)
- flags = pset->flags | SEC_HAS_CONTENTS;
-
- /* bfd_make_section_with_flags() does not return very helpful
- error codes, so check for the most likely user error first. */
- if (bfd_get_section_by_name (obfd, padd->name))
- {
- non_fatal (_("can't add section '%s' - it already exists!"), padd->name);
- return FALSE;
- }
- else
- {
- padd->section = bfd_make_section_with_flags (obfd, padd->name, flags);
- if (padd->section == NULL)
- {
- non_fatal (_("can't create section `%s': %s"),
- padd->name, bfd_errmsg (bfd_get_error ()));
- return FALSE;
- }
- }
-
- if (! bfd_set_section_size (obfd, padd->section, padd->size))
- {
- bfd_nonfatal (bfd_get_filename (obfd));
- return FALSE;
- }
-
- if (pset != NULL)
- {
- if (pset->change_vma != CHANGE_IGNORE)
- if (! bfd_set_section_vma (obfd, padd->section,
- pset->vma_val))
- {
- bfd_nonfatal (bfd_get_filename (obfd));
- return FALSE;
- }
-
- if (pset->change_lma != CHANGE_IGNORE)
- {
- padd->section->lma = pset->lma_val;
-
- if (! bfd_set_section_alignment
- (obfd, padd->section,
- bfd_section_alignment (obfd, padd->section)))
- {
- bfd_nonfatal (bfd_get_filename (obfd));
- return FALSE;
- }
- }
- }
- }
- }
-
- if (gnu_debuglink_filename != NULL)
- {
- gnu_debuglink_section = bfd_create_gnu_debuglink_section
- (obfd, gnu_debuglink_filename);
-
- if (gnu_debuglink_section == NULL)
- {
- bfd_nonfatal (gnu_debuglink_filename);
- return FALSE;
- }
-
- /* Special processing for PE format files. We
- have no way to distinguish PE from COFF here. */
- if (bfd_get_flavour (obfd) == bfd_target_coff_flavour)
- {
- bfd_vma debuglink_vma;
- asection * highest_section;
- asection * sec;
-
- /* The PE spec requires that all sections be adjacent and sorted
- in ascending order of VMA. It also specifies that debug
- sections should be last. This is despite the fact that debug
- sections are not loaded into memory and so in theory have no
- use for a VMA.
-
- This means that the debuglink section must be given a non-zero
- VMA which makes it contiguous with other debug sections. So
- walk the current section list, find the section with the
- highest VMA and start the debuglink section after that one. */
- for (sec = obfd->sections, highest_section = NULL;
- sec != NULL;
- sec = sec->next)
- if (sec->vma > 0
- && (highest_section == NULL
- || sec->vma > highest_section->vma))
- highest_section = sec;
-
- if (highest_section)
- debuglink_vma = BFD_ALIGN (highest_section->vma
- + highest_section->size,
- /* FIXME: We ought to be using
- COFF_PAGE_SIZE here or maybe
- bfd_get_section_alignment() (if it
- was set) but since this is for PE
- and we know the required alignment
- it is easier just to hard code it. */
- 0x1000);
- else
- /* Umm, not sure what to do in this case. */
- debuglink_vma = 0x1000;
-
- bfd_set_section_vma (obfd, gnu_debuglink_section, debuglink_vma);
- }
- }
-
- if (bfd_count_sections (obfd) == 0)
- {
- non_fatal (_("there are no sections to be copied!"));
- return FALSE;
- }
-
- if (gap_fill_set || pad_to_set)
- {
- asection **set;
- unsigned int c, i;
-
- /* We must fill in gaps between the sections and/or we must pad
- the last section to a specified address. We do this by
- grabbing a list of the sections, sorting them by VMA, and
- increasing the section sizes as required to fill the gaps.
- We write out the gap contents below. */
-
- c = bfd_count_sections (obfd);
- osections = xmalloc (c * sizeof (asection *));
- set = osections;
- bfd_map_over_sections (obfd, get_sections, &set);
-
- qsort (osections, c, sizeof (asection *), compare_section_lma);
-
- gaps = xmalloc (c * sizeof (bfd_size_type));
- memset (gaps, 0, c * sizeof (bfd_size_type));
-
- if (gap_fill_set)
- {
- for (i = 0; i < c - 1; i++)
- {
- flagword flags;
- bfd_size_type size;
- bfd_vma gap_start, gap_stop;
-
- flags = bfd_get_section_flags (obfd, osections[i]);
- if ((flags & SEC_HAS_CONTENTS) == 0
- || (flags & SEC_LOAD) == 0)
- continue;
-
- size = bfd_section_size (obfd, osections[i]);
- gap_start = bfd_section_lma (obfd, osections[i]) + size;
- gap_stop = bfd_section_lma (obfd, osections[i + 1]);
- if (gap_start < gap_stop)
- {
- if (! bfd_set_section_size (obfd, osections[i],
- size + (gap_stop - gap_start)))
- {
- non_fatal (_("Can't fill gap after %s: %s"),
- bfd_get_section_name (obfd, osections[i]),
- bfd_errmsg (bfd_get_error ()));
- status = 1;
- break;
- }
- gaps[i] = gap_stop - gap_start;
- if (max_gap < gap_stop - gap_start)
- max_gap = gap_stop - gap_start;
- }
- }
- }
-
- if (pad_to_set)
- {
- bfd_vma lma;
- bfd_size_type size;
-
- lma = bfd_section_lma (obfd, osections[c - 1]);
- size = bfd_section_size (obfd, osections[c - 1]);
- if (lma + size < pad_to)
- {
- if (! bfd_set_section_size (obfd, osections[c - 1],
- pad_to - lma))
- {
- non_fatal (_("Can't add padding to %s: %s"),
- bfd_get_section_name (obfd, osections[c - 1]),
- bfd_errmsg (bfd_get_error ()));
- status = 1;
- }
- else
- {
- gaps[c - 1] = pad_to - (lma + size);
- if (max_gap < pad_to - (lma + size))
- max_gap = pad_to - (lma + size);
- }
- }
- }
- }
-
- /* Symbol filtering must happen after the output sections
- have been created, but before their contents are set. */
- dhandle = NULL;
- symsize = bfd_get_symtab_upper_bound (ibfd);
- if (symsize < 0)
- {
- bfd_nonfatal (bfd_get_archive_filename (ibfd));
- return FALSE;
- }
-
- osympp = isympp = xmalloc (symsize);
- symcount = bfd_canonicalize_symtab (ibfd, isympp);
- if (symcount < 0)
- {
- bfd_nonfatal (bfd_get_filename (ibfd));
- return FALSE;
- }
-
- if (convert_debugging)
- dhandle = read_debugging_info (ibfd, isympp, symcount);
-
- if (strip_symbols == STRIP_DEBUG
- || strip_symbols == STRIP_ALL
- || strip_symbols == STRIP_UNNEEDED
- || strip_symbols == STRIP_NONDEBUG
- || discard_locals != LOCALS_UNDEF
- || strip_specific_list != NULL
- || keep_specific_list != NULL
- || localize_specific_list != NULL
- || globalize_specific_list != NULL
- || keepglobal_specific_list != NULL
- || weaken_specific_list != NULL
- || prefix_symbols_string
- || sections_removed
- || sections_copied
- || convert_debugging
- || change_leading_char
- || remove_leading_char
- || redefine_sym_list
- || weaken)
- {
- /* Mark symbols used in output relocations so that they
- are kept, even if they are local labels or static symbols.
-
- Note we iterate over the input sections examining their
- relocations since the relocations for the output sections
- haven't been set yet. mark_symbols_used_in_relocations will
- ignore input sections which have no corresponding output
- section. */
- if (strip_symbols != STRIP_ALL)
- bfd_map_over_sections (ibfd,
- mark_symbols_used_in_relocations,
- isympp);
- osympp = xmalloc ((symcount + 1) * sizeof (asymbol *));
- symcount = filter_symbols (ibfd, obfd, osympp, isympp, symcount);
- }
-
- if (convert_debugging && dhandle != NULL)
- {
- if (! write_debugging_info (obfd, dhandle, &symcount, &osympp))
- {
- status = 1;
- return FALSE;
- }
- }
-
- bfd_set_symtab (obfd, osympp, symcount);
-
- /* This has to happen after the symbol table has been set. */
- bfd_map_over_sections (ibfd, copy_section, obfd);
-
- if (add_sections != NULL)
- {
- struct section_add *padd;
-
- for (padd = add_sections; padd != NULL; padd = padd->next)
- {
- if (! bfd_set_section_contents (obfd, padd->section, padd->contents,
- 0, padd->size))
- {
- bfd_nonfatal (bfd_get_filename (obfd));
- return FALSE;
- }
- }
- }
-
- if (gnu_debuglink_filename != NULL)
- {
- if (! bfd_fill_in_gnu_debuglink_section
- (obfd, gnu_debuglink_section, gnu_debuglink_filename))
- {
- bfd_nonfatal (gnu_debuglink_filename);
- return FALSE;
- }
- }
-
- if (gap_fill_set || pad_to_set)
- {
- bfd_byte *buf;
- int c, i;
-
- /* Fill in the gaps. */
- if (max_gap > 8192)
- max_gap = 8192;
- buf = xmalloc (max_gap);
- memset (buf, gap_fill, max_gap);
-
- c = bfd_count_sections (obfd);
- for (i = 0; i < c; i++)
- {
- if (gaps[i] != 0)
- {
- bfd_size_type left;
- file_ptr off;
-
- left = gaps[i];
- off = bfd_section_size (obfd, osections[i]) - left;
-
- while (left > 0)
- {
- bfd_size_type now;
-
- if (left > 8192)
- now = 8192;
- else
- now = left;
-
- if (! bfd_set_section_contents (obfd, osections[i], buf,
- off, now))
- {
- bfd_nonfatal (bfd_get_filename (obfd));
- return FALSE;
- }
-
- left -= now;
- off += now;
- }
- }
- }
- }
-
- /* Allow the BFD backend to copy any private data it understands
- from the input BFD to the output BFD. This is done last to
- permit the routine to look at the filtered symbol table, which is
- important for the ECOFF code at least. */
- if (bfd_get_flavour (ibfd) == bfd_target_elf_flavour
- && strip_symbols == STRIP_NONDEBUG)
- /* Do not copy the private data when creating an ELF format
- debug info file. We do not want the program headers. */
- ;
- else if (! bfd_copy_private_bfd_data (ibfd, obfd))
- {
- non_fatal (_("%s: error copying private BFD data: %s"),
- bfd_get_filename (obfd),
- bfd_errmsg (bfd_get_error ()));
- return FALSE;
- }
-
- /* Switch to the alternate machine code. We have to do this at the
- very end, because we only initialize the header when we create
- the first section. */
- if (use_alt_mach_code != 0)
- {
- if (! bfd_alt_mach_code (obfd, use_alt_mach_code))
- {
- non_fatal (_("this target does not support %lu alternative machine codes"),
- use_alt_mach_code);
- if (bfd_get_flavour (obfd) == bfd_target_elf_flavour)
- {
- non_fatal (_("treating that number as an absolute e_machine value instead"));
- elf_elfheader (obfd)->e_machine = use_alt_mach_code;
- }
- else
- non_fatal (_("ignoring the alternative value"));
- }
- }
-
- return TRUE;
-}
-
-#undef MKDIR
-#if defined (_WIN32) && !defined (__CYGWIN32__)
-#define MKDIR(DIR, MODE) mkdir (DIR)
-#else
-#define MKDIR(DIR, MODE) mkdir (DIR, MODE)
-#endif
-
-/* Read each archive element in turn from IBFD, copy the
- contents to temp file, and keep the temp file handle. */
-
-static void
-copy_archive (bfd *ibfd, bfd *obfd, const char *output_target)
-{
- struct name_list
- {
- struct name_list *next;
- const char *name;
- bfd *obfd;
- } *list, *l;
- bfd **ptr = &obfd->archive_head;
- bfd *this_element;
- char *dir = make_tempname (bfd_get_filename (obfd));
-
- /* Make a temp directory to hold the contents. */
- if (MKDIR (dir, 0700) != 0)
- fatal (_("cannot mkdir %s for archive copying (error: %s)"),
- dir, strerror (errno));
-
- obfd->has_armap = ibfd->has_armap;
-
- list = NULL;
-
- this_element = bfd_openr_next_archived_file (ibfd, NULL);
-
- if (!bfd_set_format (obfd, bfd_get_format (ibfd)))
- RETURN_NONFATAL (bfd_get_filename (obfd));
-
- while (!status && this_element != NULL)
- {
- char *output_name;
- bfd *output_bfd;
- bfd *last_element;
- struct stat buf;
- int stat_status = 0;
- bfd_boolean delete = TRUE;
-
- /* Create an output file for this member. */
- output_name = concat (dir, "/",
- bfd_get_filename (this_element), (char *) 0);
-
- /* If the file already exists, make another temp dir. */
- if (stat (output_name, &buf) >= 0)
- {
- output_name = make_tempname (output_name);
- if (MKDIR (output_name, 0700) != 0)
- fatal (_("cannot mkdir %s for archive copying (error: %s)"),
- output_name, strerror (errno));
-
- l = xmalloc (sizeof (struct name_list));
- l->name = output_name;
- l->next = list;
- l->obfd = NULL;
- list = l;
- output_name = concat (output_name, "/",
- bfd_get_filename (this_element), (char *) 0);
- }
-
- output_bfd = bfd_openw (output_name, output_target);
- if (preserve_dates)
- {
- stat_status = bfd_stat_arch_elt (this_element, &buf);
-
- if (stat_status != 0)
- non_fatal (_("internal stat error on %s"),
- bfd_get_filename (this_element));
- }
-
- l = xmalloc (sizeof (struct name_list));
- l->name = output_name;
- l->next = list;
- l->obfd = NULL;
- list = l;
-
- if (output_bfd == NULL)
- RETURN_NONFATAL (output_name);
-
- if (bfd_check_format (this_element, bfd_object))
- {
- delete = ! copy_object (this_element, output_bfd);
-
- if (! delete
- || bfd_get_arch (this_element) != bfd_arch_unknown)
- {
- if (!bfd_close (output_bfd))
- {
- bfd_nonfatal (bfd_get_filename (output_bfd));
- /* Error in new object file. Don't change archive. */
- status = 1;
- }
- }
- else
- goto copy_unknown_element;
- }
- else
- {
- non_fatal (_("Unable to recognise the format of the input file `%s'"),
- bfd_get_archive_filename (this_element));
-
-copy_unknown_element:
- delete = !copy_unknown_object (this_element, output_bfd);
- if (!bfd_close_all_done (output_bfd))
- {
- bfd_nonfatal (bfd_get_filename (output_bfd));
- /* Error in new object file. Don't change archive. */
- status = 1;
- }
- }
-
- if (delete)
- {
- unlink (output_name);
- status = 1;
- }
- else
- {
- if (preserve_dates && stat_status == 0)
- set_times (output_name, &buf);
-
- /* Open the newly output file and attach to our list. */
- output_bfd = bfd_openr (output_name, output_target);
-
- l->obfd = output_bfd;
-
- *ptr = output_bfd;
- ptr = &output_bfd->next;
-
- last_element = this_element;
-
- this_element = bfd_openr_next_archived_file (ibfd, last_element);
-
- bfd_close (last_element);
- }
- }
- *ptr = NULL;
-
- if (!bfd_close (obfd))
- RETURN_NONFATAL (bfd_get_filename (obfd));
-
- if (!bfd_close (ibfd))
- RETURN_NONFATAL (bfd_get_filename (ibfd));
-
- /* Delete all the files that we opened. */
- for (l = list; l != NULL; l = l->next)
- {
- if (l->obfd == NULL)
- rmdir (l->name);
- else
- {
- bfd_close (l->obfd);
- unlink (l->name);
- }
- }
- rmdir (dir);
-}
-
-/* The top-level control. */
-
-static void
-copy_file (const char *input_filename, const char *output_filename,
- const char *input_target, const char *output_target)
-{
- bfd *ibfd;
- char **obj_matching;
- char **core_matching;
-
- if (get_file_size (input_filename) < 1)
- {
- non_fatal (_("error: the input file '%s' is empty"), input_filename);
- status = 1;
- return;
- }
-
- /* To allow us to do "strip *" without dying on the first
- non-object file, failures are nonfatal. */
- ibfd = bfd_openr (input_filename, input_target);
- if (ibfd == NULL)
- RETURN_NONFATAL (input_filename);
-
- if (bfd_check_format (ibfd, bfd_archive))
- {
- bfd *obfd;
-
- /* bfd_get_target does not return the correct value until
- bfd_check_format succeeds. */
- if (output_target == NULL)
- output_target = bfd_get_target (ibfd);
-
- obfd = bfd_openw (output_filename, output_target);
- if (obfd == NULL)
- RETURN_NONFATAL (output_filename);
-
- copy_archive (ibfd, obfd, output_target);
- }
- else if (bfd_check_format_matches (ibfd, bfd_object, &obj_matching))
- {
- bfd *obfd;
- do_copy:
-
- /* bfd_get_target does not return the correct value until
- bfd_check_format succeeds. */
- if (output_target == NULL)
- output_target = bfd_get_target (ibfd);
-
- obfd = bfd_openw (output_filename, output_target);
- if (obfd == NULL)
- RETURN_NONFATAL (output_filename);
-
- if (! copy_object (ibfd, obfd))
- status = 1;
-
- if (!bfd_close (obfd))
- RETURN_NONFATAL (output_filename);
-
- if (!bfd_close (ibfd))
- RETURN_NONFATAL (input_filename);
-
- }
- else
- {
- bfd_error_type obj_error = bfd_get_error ();
- bfd_error_type core_error;
-
- if (bfd_check_format_matches (ibfd, bfd_core, &core_matching))
- {
- /* This probably can't happen.. */
- if (obj_error == bfd_error_file_ambiguously_recognized)
- free (obj_matching);
- goto do_copy;
- }
-
- core_error = bfd_get_error ();
- /* Report the object error in preference to the core error. */
- if (obj_error != core_error)
- bfd_set_error (obj_error);
-
- bfd_nonfatal (input_filename);
-
- if (obj_error == bfd_error_file_ambiguously_recognized)
- {
- list_matching_formats (obj_matching);
- free (obj_matching);
- }
- if (core_error == bfd_error_file_ambiguously_recognized)
- {
- list_matching_formats (core_matching);
- free (core_matching);
- }
-
- status = 1;
- }
-}
-
-/* Add a name to the section renaming list. */
-
-static void
-add_section_rename (const char * old_name, const char * new_name,
- flagword flags)
-{
- section_rename * rename;
-
- /* Check for conflicts first. */
- for (rename = section_rename_list; rename != NULL; rename = rename->next)
- if (strcmp (rename->old_name, old_name) == 0)
- {
- /* Silently ignore duplicate definitions. */
- if (strcmp (rename->new_name, new_name) == 0
- && rename->flags == flags)
- return;
-
- fatal (_("Multiple renames of section %s"), old_name);
- }
-
- rename = xmalloc (sizeof (* rename));
-
- rename->old_name = old_name;
- rename->new_name = new_name;
- rename->flags = flags;
- rename->next = section_rename_list;
-
- section_rename_list = rename;
-}
-
-/* Check the section rename list for a new name of the input section
- ISECTION. Return the new name if one is found.
- Also set RETURNED_FLAGS to the flags to be used for this section. */
-
-static const char *
-find_section_rename (bfd * ibfd ATTRIBUTE_UNUSED, sec_ptr isection,
- flagword * returned_flags)
-{
- const char * old_name = bfd_section_name (ibfd, isection);
- section_rename * rename;
-
- /* Default to using the flags of the input section. */
- * returned_flags = bfd_get_section_flags (ibfd, isection);
-
- for (rename = section_rename_list; rename != NULL; rename = rename->next)
- if (strcmp (rename->old_name, old_name) == 0)
- {
- if (rename->flags != (flagword) -1)
- * returned_flags = rename->flags;
-
- return rename->new_name;
- }
-
- return old_name;
-}
-
-/* Once each of the sections is copied, we may still need to do some
- finalization work for private section headers. Do that here. */
-
-static void
-setup_bfd_headers (bfd *ibfd, bfd *obfd)
-{
- const char *err;
-
- /* Allow the BFD backend to copy any private data it understands
- from the input section to the output section. */
- if (! bfd_copy_private_header_data (ibfd, obfd))
- {
- err = _("private header data");
- goto loser;
- }
-
- /* All went well. */
- return;
-
-loser:
- non_fatal (_("%s: error in %s: %s"),
- bfd_get_filename (ibfd),
- err, bfd_errmsg (bfd_get_error ()));
- status = 1;
-}
-
-/* Create a section in OBFD with the same
- name and attributes as ISECTION in IBFD. */
-
-static void
-setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
-{
- bfd *obfd = obfdarg;
- struct section_list *p;
- sec_ptr osection;
- bfd_size_type size;
- bfd_vma vma;
- bfd_vma lma;
- flagword flags;
- const char *err;
- const char * name;
- char *prefix = NULL;
-
- if (is_strip_section (ibfd, isection))
- return;
-
- p = find_section_list (bfd_section_name (ibfd, isection), FALSE);
- if (p != NULL)
- p->used = TRUE;
-
- /* Get the, possibly new, name of the output section. */
- name = find_section_rename (ibfd, isection, & flags);
-
- /* Prefix sections. */
- if ((prefix_alloc_sections_string)
- && (bfd_get_section_flags (ibfd, isection) & SEC_ALLOC))
- prefix = prefix_alloc_sections_string;
- else if (prefix_sections_string)
- prefix = prefix_sections_string;
-
- if (prefix)
- {
- char *n;
-
- n = xmalloc (strlen (prefix) + strlen (name) + 1);
- strcpy (n, prefix);
- strcat (n, name);
- name = n;
- }
-
- if (p != NULL && p->set_flags)
- flags = p->flags | (flags & (SEC_HAS_CONTENTS | SEC_RELOC));
- else if (strip_symbols == STRIP_NONDEBUG && (flags & SEC_ALLOC) != 0)
- flags &= ~(SEC_HAS_CONTENTS | SEC_LOAD);
-
- osection = bfd_make_section_anyway_with_flags (obfd, name, flags);
-
- if (osection == NULL)
- {
- err = _("making");
- goto loser;
- }
-
- if (strip_symbols == STRIP_NONDEBUG
- && obfd->xvec->flavour == bfd_target_elf_flavour
- && (flags & SEC_ALLOC) != 0
- && (p == NULL || !p->set_flags))
- elf_section_type (osection) = SHT_NOBITS;
-
- size = bfd_section_size (ibfd, isection);
- if (copy_byte >= 0)
- size = (size + interleave - 1) / interleave;
- if (! bfd_set_section_size (obfd, osection, size))
- {
- err = _("size");
- goto loser;
- }
-
- vma = bfd_section_vma (ibfd, isection);
- if (p != NULL && p->change_vma == CHANGE_MODIFY)
- vma += p->vma_val;
- else if (p != NULL && p->change_vma == CHANGE_SET)
- vma = p->vma_val;
- else
- vma += change_section_address;
-
- if (! bfd_set_section_vma (obfd, osection, vma))
- {
- err = _("vma");
- goto loser;
- }
-
- lma = isection->lma;
- if ((p != NULL) && p->change_lma != CHANGE_IGNORE)
- {
- if (p->change_lma == CHANGE_MODIFY)
- lma += p->lma_val;
- else if (p->change_lma == CHANGE_SET)
- lma = p->lma_val;
- else
- abort ();
- }
- else
- lma += change_section_address;
-
- osection->lma = lma;
-
- /* FIXME: This is probably not enough. If we change the LMA we
- may have to recompute the header for the file as well. */
- if (!bfd_set_section_alignment (obfd,
- osection,
- bfd_section_alignment (ibfd, isection)))
- {
- err = _("alignment");
- goto loser;
- }
-
- /* Copy merge entity size. */
- osection->entsize = isection->entsize;
-
- /* This used to be mangle_section; we do here to avoid using
- bfd_get_section_by_name since some formats allow multiple
- sections with the same name. */
- isection->output_section = osection;
- isection->output_offset = 0;
-
- /* Allow the BFD backend to copy any private data it understands
- from the input section to the output section. */
- if (bfd_get_flavour (ibfd) == bfd_target_elf_flavour
- && strip_symbols == STRIP_NONDEBUG)
- /* Do not copy the private data when creating an ELF format
- debug info file. We do not want the program headers. */
- ;
- else if (!bfd_copy_private_section_data (ibfd, isection, obfd, osection))
- {
- err = _("private data");
- goto loser;
- }
-
- /* All went well. */
- return;
-
-loser:
- non_fatal (_("%s: section `%s': error in %s: %s"),
- bfd_get_filename (ibfd),
- bfd_section_name (ibfd, isection),
- err, bfd_errmsg (bfd_get_error ()));
- status = 1;
-}
-
-/* Copy the data of input section ISECTION of IBFD
- to an output section with the same name in OBFD.
- If stripping then don't copy any relocation info. */
-
-static void
-copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
-{
- bfd *obfd = obfdarg;
- struct section_list *p;
- arelent **relpp;
- long relcount;
- sec_ptr osection;
- bfd_size_type size;
- long relsize;
- flagword flags;
-
- /* If we have already failed earlier on,
- do not keep on generating complaints now. */
- if (status != 0)
- return;
-
- if (is_strip_section (ibfd, isection))
- return;
-
- flags = bfd_get_section_flags (ibfd, isection);
- if ((flags & SEC_GROUP) != 0)
- return;
-
- osection = isection->output_section;
- size = bfd_get_section_size (isection);
-
- if (size == 0 || osection == 0)
- return;
-
- p = find_section_list (bfd_get_section_name (ibfd, isection), FALSE);
-
- /* Core files do not need to be relocated. */
- if (bfd_get_format (obfd) == bfd_core)
- relsize = 0;
- else
- {
- relsize = bfd_get_reloc_upper_bound (ibfd, isection);
-
- if (relsize < 0)
- {
- /* Do not complain if the target does not support relocations. */
- if (relsize == -1 && bfd_get_error () == bfd_error_invalid_operation)
- relsize = 0;
- else
- RETURN_NONFATAL (bfd_get_filename (ibfd));
- }
- }
-
- if (relsize == 0)
- bfd_set_reloc (obfd, osection, NULL, 0);
- else
- {
- relpp = xmalloc (relsize);
- relcount = bfd_canonicalize_reloc (ibfd, isection, relpp, isympp);
- if (relcount < 0)
- RETURN_NONFATAL (bfd_get_filename (ibfd));
-
- if (strip_symbols == STRIP_ALL)
- {
- /* Remove relocations which are not in
- keep_strip_specific_list. */
- arelent **temp_relpp;
- long temp_relcount = 0;
- long i;
-
- temp_relpp = xmalloc (relsize);
- for (i = 0; i < relcount; i++)
- if (is_specified_symbol (bfd_asymbol_name (*relpp[i]->sym_ptr_ptr),
- keep_specific_list))
- temp_relpp [temp_relcount++] = relpp [i];
- relcount = temp_relcount;
- free (relpp);
- relpp = temp_relpp;
- }
-
- bfd_set_reloc (obfd, osection, relcount == 0 ? NULL : relpp, relcount);
- if (relcount == 0)
- free (relpp);
- }
-
- if (bfd_get_section_flags (ibfd, isection) & SEC_HAS_CONTENTS
- && bfd_get_section_flags (obfd, osection) & SEC_HAS_CONTENTS)
- {
- void *memhunk = xmalloc (size);
-
- if (!bfd_get_section_contents (ibfd, isection, memhunk, 0, size))
- RETURN_NONFATAL (bfd_get_filename (ibfd));
-
- if (copy_byte >= 0)
- {
- /* Keep only every `copy_byte'th byte in MEMHUNK. */
- char *from = (char *) memhunk + copy_byte;
- char *to = memhunk;
- char *end = (char *) memhunk + size;
-
- for (; from < end; from += interleave)
- *to++ = *from;
-
- size = (size + interleave - 1 - copy_byte) / interleave;
- osection->lma /= interleave;
- }
-
- if (!bfd_set_section_contents (obfd, osection, memhunk, 0, size))
- RETURN_NONFATAL (bfd_get_filename (obfd));
-
- free (memhunk);
- }
- else if (p != NULL && p->set_flags && (p->flags & SEC_HAS_CONTENTS) != 0)
- {
- void *memhunk = xmalloc (size);
-
- /* We don't permit the user to turn off the SEC_HAS_CONTENTS
- flag--they can just remove the section entirely and add it
- back again. However, we do permit them to turn on the
- SEC_HAS_CONTENTS flag, and take it to mean that the section
- contents should be zeroed out. */
-
- memset (memhunk, 0, size);
- if (! bfd_set_section_contents (obfd, osection, memhunk, 0, size))
- RETURN_NONFATAL (bfd_get_filename (obfd));
- free (memhunk);
- }
-}
-
-/* Get all the sections. This is used when --gap-fill or --pad-to is
- used. */
-
-static void
-get_sections (bfd *obfd ATTRIBUTE_UNUSED, asection *osection, void *secppparg)
-{
- asection ***secppp = secppparg;
-
- **secppp = osection;
- ++(*secppp);
-}
-
-/* Sort sections by VMA. This is called via qsort, and is used when
- --gap-fill or --pad-to is used. We force non loadable or empty
- sections to the front, where they are easier to ignore. */
-
-static int
-compare_section_lma (const void *arg1, const void *arg2)
-{
- const asection *const *sec1 = arg1;
- const asection *const *sec2 = arg2;
- flagword flags1, flags2;
-
- /* Sort non loadable sections to the front. */
- flags1 = (*sec1)->flags;
- flags2 = (*sec2)->flags;
- if ((flags1 & SEC_HAS_CONTENTS) == 0
- || (flags1 & SEC_LOAD) == 0)
- {
- if ((flags2 & SEC_HAS_CONTENTS) != 0
- && (flags2 & SEC_LOAD) != 0)
- return -1;
- }
- else
- {
- if ((flags2 & SEC_HAS_CONTENTS) == 0
- || (flags2 & SEC_LOAD) == 0)
- return 1;
- }
-
- /* Sort sections by LMA. */
- if ((*sec1)->lma > (*sec2)->lma)
- return 1;
- else if ((*sec1)->lma < (*sec2)->lma)
- return -1;
-
- /* Sort sections with the same LMA by size. */
- if (bfd_get_section_size (*sec1) > bfd_get_section_size (*sec2))
- return 1;
- else if (bfd_get_section_size (*sec1) < bfd_get_section_size (*sec2))
- return -1;
-
- return 0;
-}
-
-/* Mark all the symbols which will be used in output relocations with
- the BSF_KEEP flag so that those symbols will not be stripped.
-
- Ignore relocations which will not appear in the output file. */
-
-static void
-mark_symbols_used_in_relocations (bfd *ibfd, sec_ptr isection, void *symbolsarg)
-{
- asymbol **symbols = symbolsarg;
- long relsize;
- arelent **relpp;
- long relcount, i;
-
- /* Ignore an input section with no corresponding output section. */
- if (isection->output_section == NULL)
- return;
-
- relsize = bfd_get_reloc_upper_bound (ibfd, isection);
- if (relsize < 0)
- {
- /* Do not complain if the target does not support relocations. */
- if (relsize == -1 && bfd_get_error () == bfd_error_invalid_operation)
- return;
- bfd_fatal (bfd_get_filename (ibfd));
- }
-
- if (relsize == 0)
- return;
-
- relpp = xmalloc (relsize);
- relcount = bfd_canonicalize_reloc (ibfd, isection, relpp, symbols);
- if (relcount < 0)
- bfd_fatal (bfd_get_filename (ibfd));
-
- /* Examine each symbol used in a relocation. If it's not one of the
- special bfd section symbols, then mark it with BSF_KEEP. */
- for (i = 0; i < relcount; i++)
- {
- if (*relpp[i]->sym_ptr_ptr != bfd_com_section_ptr->symbol
- && *relpp[i]->sym_ptr_ptr != bfd_abs_section_ptr->symbol
- && *relpp[i]->sym_ptr_ptr != bfd_und_section_ptr->symbol)
- (*relpp[i]->sym_ptr_ptr)->flags |= BSF_KEEP;
- }
-
- if (relpp != NULL)
- free (relpp);
-}
-
-/* Write out debugging information. */
-
-static bfd_boolean
-write_debugging_info (bfd *obfd, void *dhandle,
- long *symcountp ATTRIBUTE_UNUSED,
- asymbol ***symppp ATTRIBUTE_UNUSED)
-{
- if (bfd_get_flavour (obfd) == bfd_target_ieee_flavour)
- return write_ieee_debugging_info (obfd, dhandle);
-
- if (bfd_get_flavour (obfd) == bfd_target_coff_flavour
- || bfd_get_flavour (obfd) == bfd_target_elf_flavour)
- {
- bfd_byte *syms, *strings;
- bfd_size_type symsize, stringsize;
- asection *stabsec, *stabstrsec;
- flagword flags;
-
- if (! write_stabs_in_sections_debugging_info (obfd, dhandle, &syms,
- &symsize, &strings,
- &stringsize))
- return FALSE;
-
- flags = SEC_HAS_CONTENTS | SEC_READONLY | SEC_DEBUGGING;
- stabsec = bfd_make_section_with_flags (obfd, ".stab", flags);
- stabstrsec = bfd_make_section_with_flags (obfd, ".stabstr", flags);
- if (stabsec == NULL
- || stabstrsec == NULL
- || ! bfd_set_section_size (obfd, stabsec, symsize)
- || ! bfd_set_section_size (obfd, stabstrsec, stringsize)
- || ! bfd_set_section_alignment (obfd, stabsec, 2)
- || ! bfd_set_section_alignment (obfd, stabstrsec, 0))
- {
- non_fatal (_("%s: can't create debugging section: %s"),
- bfd_get_filename (obfd),
- bfd_errmsg (bfd_get_error ()));
- return FALSE;
- }
-
- /* We can get away with setting the section contents now because
- the next thing the caller is going to do is copy over the
- real sections. We may someday have to split the contents
- setting out of this function. */
- if (! bfd_set_section_contents (obfd, stabsec, syms, 0, symsize)
- || ! bfd_set_section_contents (obfd, stabstrsec, strings, 0,
- stringsize))
- {
- non_fatal (_("%s: can't set debugging section contents: %s"),
- bfd_get_filename (obfd),
- bfd_errmsg (bfd_get_error ()));
- return FALSE;
- }
-
- return TRUE;
- }
-
- non_fatal (_("%s: don't know how to write debugging information for %s"),
- bfd_get_filename (obfd), bfd_get_target (obfd));
- return FALSE;
-}
-
-static int
-strip_main (int argc, char *argv[])
-{
- char *input_target = NULL;
- char *output_target = NULL;
- bfd_boolean show_version = FALSE;
- bfd_boolean formats_info = FALSE;
- int c;
- int i;
- struct section_list *p;
- char *output_file = NULL;
-
- while ((c = getopt_long (argc, argv, "I:O:F:K:N:R:o:sSpdgxXHhVvw",
- strip_options, (int *) 0)) != EOF)
- {
- switch (c)
- {
- case 'I':
- input_target = optarg;
- break;
- case 'O':
- output_target = optarg;
- break;
- case 'F':
- input_target = output_target = optarg;
- break;
- case 'R':
- p = find_section_list (optarg, TRUE);
- p->remove = TRUE;
- sections_removed = TRUE;
- break;
- case 's':
- strip_symbols = STRIP_ALL;
- break;
- case 'S':
- case 'g':
- case 'd': /* Historic BSD alias for -g. Used by early NetBSD. */
- strip_symbols = STRIP_DEBUG;
- break;
- case OPTION_STRIP_UNNEEDED:
- strip_symbols = STRIP_UNNEEDED;
- break;
- case 'K':
- add_specific_symbol (optarg, &keep_specific_list);
- break;
- case 'N':
- add_specific_symbol (optarg, &strip_specific_list);
- break;
- case 'o':
- output_file = optarg;
- break;
- case 'p':
- preserve_dates = TRUE;
- break;
- case 'x':
- discard_locals = LOCALS_ALL;
- break;
- case 'X':
- discard_locals = LOCALS_START_L;
- break;
- case 'v':
- verbose = TRUE;
- break;
- case 'V':
- show_version = TRUE;
- break;
- case OPTION_FORMATS_INFO:
- formats_info = TRUE;
- break;
- case OPTION_ONLY_KEEP_DEBUG:
- strip_symbols = STRIP_NONDEBUG;
- break;
- case OPTION_KEEP_FILE_SYMBOLS:
- keep_file_symbols = 1;
- break;
- case 0:
- /* We've been given a long option. */
- break;
- case 'w':
- wildcard = TRUE;
- break;
- case 'H':
- case 'h':
- strip_usage (stdout, 0);
- default:
- strip_usage (stderr, 1);
- }
- }
-
- if (formats_info)
- {
- display_info ();
- return 0;
- }
-
- if (show_version)
- print_version ("strip");
-
- /* Default is to strip all symbols. */
- if (strip_symbols == STRIP_UNDEF
- && discard_locals == LOCALS_UNDEF
- && strip_specific_list == NULL)
- strip_symbols = STRIP_ALL;
-
- if (output_target == NULL)
- output_target = input_target;
-
- i = optind;
- if (i == argc
- || (output_file != NULL && (i + 1) < argc))
- strip_usage (stderr, 1);
-
- for (; i < argc; i++)
- {
- int hold_status = status;
- struct stat statbuf;
- char *tmpname;
-
- if (get_file_size (argv[i]) < 1)
- continue;
-
- if (preserve_dates)
- /* No need to check the return value of stat().
- It has already been checked in get_file_size(). */
- stat (argv[i], &statbuf);
-
- if (output_file != NULL)
- tmpname = output_file;
- else
- tmpname = make_tempname (argv[i]);
- status = 0;
-
- copy_file (argv[i], tmpname, input_target, output_target);
- if (status == 0)
- {
- if (preserve_dates)
- set_times (tmpname, &statbuf);
- if (output_file == NULL)
- smart_rename (tmpname, argv[i], preserve_dates);
- status = hold_status;
- }
- else
- unlink_if_ordinary (tmpname);
- if (output_file == NULL)
- free (tmpname);
- }
-
- return 0;
-}
-
-static int
-copy_main (int argc, char *argv[])
-{
- char * binary_architecture = NULL;
- char *input_filename = NULL;
- char *output_filename = NULL;
- char *input_target = NULL;
- char *output_target = NULL;
- bfd_boolean show_version = FALSE;
- bfd_boolean change_warn = TRUE;
- bfd_boolean formats_info = FALSE;
- int c;
- struct section_list *p;
- struct stat statbuf;
-
- while ((c = getopt_long (argc, argv, "b:B:i:I:j:K:N:s:O:d:F:L:G:R:SpgxXHhVvW:w",
- copy_options, (int *) 0)) != EOF)
- {
- switch (c)
- {
- case 'b':
- copy_byte = atoi (optarg);
- if (copy_byte < 0)
- fatal (_("byte number must be non-negative"));
- break;
-
- case 'B':
- binary_architecture = optarg;
- break;
-
- case 'i':
- interleave = atoi (optarg);
- if (interleave < 1)
- fatal (_("interleave must be positive"));
- break;
-
- case 'I':
- case 's': /* "source" - 'I' is preferred */
- input_target = optarg;
- break;
-
- case 'O':
- case 'd': /* "destination" - 'O' is preferred */
- output_target = optarg;
- break;
-
- case 'F':
- input_target = output_target = optarg;
- break;
-
- case 'j':
- p = find_section_list (optarg, TRUE);
- if (p->remove)
- fatal (_("%s both copied and removed"), optarg);
- p->copy = TRUE;
- sections_copied = TRUE;
- break;
-
- case 'R':
- p = find_section_list (optarg, TRUE);
- if (p->copy)
- fatal (_("%s both copied and removed"), optarg);
- p->remove = TRUE;
- sections_removed = TRUE;
- break;
-
- case 'S':
- strip_symbols = STRIP_ALL;
- break;
-
- case 'g':
- strip_symbols = STRIP_DEBUG;
- break;
-
- case OPTION_STRIP_UNNEEDED:
- strip_symbols = STRIP_UNNEEDED;
- break;
-
- case OPTION_ONLY_KEEP_DEBUG:
- strip_symbols = STRIP_NONDEBUG;
- break;
-
- case OPTION_KEEP_FILE_SYMBOLS:
- keep_file_symbols = 1;
- break;
-
- case OPTION_ADD_GNU_DEBUGLINK:
- gnu_debuglink_filename = optarg;
- break;
-
- case 'K':
- add_specific_symbol (optarg, &keep_specific_list);
- break;
-
- case 'N':
- add_specific_symbol (optarg, &strip_specific_list);
- break;
-
- case OPTION_STRIP_UNNEEDED_SYMBOL:
- add_specific_symbol (optarg, &strip_unneeded_list);
- break;
-
- case 'L':
- add_specific_symbol (optarg, &localize_specific_list);
- break;
-
- case OPTION_GLOBALIZE_SYMBOL:
- add_specific_symbol (optarg, &globalize_specific_list);
- break;
-
- case 'G':
- add_specific_symbol (optarg, &keepglobal_specific_list);
- break;
-
- case 'W':
- add_specific_symbol (optarg, &weaken_specific_list);
- break;
-
- case 'p':
- preserve_dates = TRUE;
- break;
-
- case 'w':
- wildcard = TRUE;
- break;
-
- case 'x':
- discard_locals = LOCALS_ALL;
- break;
-
- case 'X':
- discard_locals = LOCALS_START_L;
- break;
-
- case 'v':
- verbose = TRUE;
- break;
-
- case 'V':
- show_version = TRUE;
- break;
-
- case OPTION_FORMATS_INFO:
- formats_info = TRUE;
- break;
-
- case OPTION_WEAKEN:
- weaken = TRUE;
- break;
-
- case OPTION_ADD_SECTION:
- {
- const char *s;
- off_t size;
- struct section_add *pa;
- int len;
- char *name;
- FILE *f;
-
- s = strchr (optarg, '=');
-
- if (s == NULL)
- fatal (_("bad format for %s"), "--add-section");
-
- size = get_file_size (s + 1);
- if (size < 1)
- break;
-
- pa = xmalloc (sizeof (struct section_add));
-
- len = s - optarg;
- name = xmalloc (len + 1);
- strncpy (name, optarg, len);
- name[len] = '\0';
- pa->name = name;
-
- pa->filename = s + 1;
- pa->size = size;
- pa->contents = xmalloc (size);
-
- f = fopen (pa->filename, FOPEN_RB);
-
- if (f == NULL)
- fatal (_("cannot open: %s: %s"),
- pa->filename, strerror (errno));
-
- if (fread (pa->contents, 1, pa->size, f) == 0
- || ferror (f))
- fatal (_("%s: fread failed"), pa->filename);
-
- fclose (f);
-
- pa->next = add_sections;
- add_sections = pa;
- }
- break;
-
- case OPTION_CHANGE_START:
- change_start = parse_vma (optarg, "--change-start");
- break;
-
- case OPTION_CHANGE_SECTION_ADDRESS:
- case OPTION_CHANGE_SECTION_LMA:
- case OPTION_CHANGE_SECTION_VMA:
- {
- const char *s;
- int len;
- char *name;
- char *option = NULL;
- bfd_vma val;
- enum change_action what = CHANGE_IGNORE;
-
- switch (c)
- {
- case OPTION_CHANGE_SECTION_ADDRESS:
- option = "--change-section-address";
- break;
- case OPTION_CHANGE_SECTION_LMA:
- option = "--change-section-lma";
- break;
- case OPTION_CHANGE_SECTION_VMA:
- option = "--change-section-vma";
- break;
- }
-
- s = strchr (optarg, '=');
- if (s == NULL)
- {
- s = strchr (optarg, '+');
- if (s == NULL)
- {
- s = strchr (optarg, '-');
- if (s == NULL)
- fatal (_("bad format for %s"), option);
- }
- }
-
- len = s - optarg;
- name = xmalloc (len + 1);
- strncpy (name, optarg, len);
- name[len] = '\0';
-
- p = find_section_list (name, TRUE);
-
- val = parse_vma (s + 1, option);
-
- switch (*s)
- {
- case '=': what = CHANGE_SET; break;
- case '-': val = - val; /* Drop through. */
- case '+': what = CHANGE_MODIFY; break;
- }
-
- switch (c)
- {
- case OPTION_CHANGE_SECTION_ADDRESS:
- p->change_vma = what;
- p->vma_val = val;
- /* Drop through. */
-
- case OPTION_CHANGE_SECTION_LMA:
- p->change_lma = what;
- p->lma_val = val;
- break;
-
- case OPTION_CHANGE_SECTION_VMA:
- p->change_vma = what;
- p->vma_val = val;
- break;
- }
- }
- break;
-
- case OPTION_CHANGE_ADDRESSES:
- change_section_address = parse_vma (optarg, "--change-addresses");
- change_start = change_section_address;
- break;
-
- case OPTION_CHANGE_WARNINGS:
- change_warn = TRUE;
- break;
-
- case OPTION_CHANGE_LEADING_CHAR:
- change_leading_char = TRUE;
- break;
-
- case OPTION_DEBUGGING:
- convert_debugging = TRUE;
- break;
-
- case OPTION_GAP_FILL:
- {
- bfd_vma gap_fill_vma;
-
- gap_fill_vma = parse_vma (optarg, "--gap-fill");
- gap_fill = (bfd_byte) gap_fill_vma;
- if ((bfd_vma) gap_fill != gap_fill_vma)
- {
- char buff[20];
-
- sprintf_vma (buff, gap_fill_vma);
-
- non_fatal (_("Warning: truncating gap-fill from 0x%s to 0x%x"),
- buff, gap_fill);
- }
- gap_fill_set = TRUE;
- }
- break;
-
- case OPTION_NO_CHANGE_WARNINGS:
- change_warn = FALSE;
- break;
-
- case OPTION_PAD_TO:
- pad_to = parse_vma (optarg, "--pad-to");
- pad_to_set = TRUE;
- break;
-
- case OPTION_REMOVE_LEADING_CHAR:
- remove_leading_char = TRUE;
- break;
-
- case OPTION_REDEFINE_SYM:
- {
- /* Push this redefinition onto redefine_symbol_list. */
-
- int len;
- const char *s;
- const char *nextarg;
- char *source, *target;
-
- s = strchr (optarg, '=');
- if (s == NULL)
- fatal (_("bad format for %s"), "--redefine-sym");
-
- len = s - optarg;
- source = xmalloc (len + 1);
- strncpy (source, optarg, len);
- source[len] = '\0';
-
- nextarg = s + 1;
- len = strlen (nextarg);
- target = xmalloc (len + 1);
- strcpy (target, nextarg);
-
- redefine_list_append ("--redefine-sym", source, target);
-
- free (source);
- free (target);
- }
- break;
-
- case OPTION_REDEFINE_SYMS:
- add_redefine_syms_file (optarg);
- break;
-
- case OPTION_SET_SECTION_FLAGS:
- {
- const char *s;
- int len;
- char *name;
-
- s = strchr (optarg, '=');
- if (s == NULL)
- fatal (_("bad format for %s"), "--set-section-flags");
-
- len = s - optarg;
- name = xmalloc (len + 1);
- strncpy (name, optarg, len);
- name[len] = '\0';
-
- p = find_section_list (name, TRUE);
-
- p->set_flags = TRUE;
- p->flags = parse_flags (s + 1);
- }
- break;
-
- case OPTION_RENAME_SECTION:
- {
- flagword flags;
- const char *eq, *fl;
- char *old_name;
- char *new_name;
- unsigned int len;
-
- eq = strchr (optarg, '=');
- if (eq == NULL)
- fatal (_("bad format for %s"), "--rename-section");
-
- len = eq - optarg;
- if (len == 0)
- fatal (_("bad format for %s"), "--rename-section");
-
- old_name = xmalloc (len + 1);
- strncpy (old_name, optarg, len);
- old_name[len] = 0;
-
- eq++;
- fl = strchr (eq, ',');
- if (fl)
- {
- flags = parse_flags (fl + 1);
- len = fl - eq;
- }
- else
- {
- flags = -1;
- len = strlen (eq);
- }
-
- if (len == 0)
- fatal (_("bad format for %s"), "--rename-section");
-
- new_name = xmalloc (len + 1);
- strncpy (new_name, eq, len);
- new_name[len] = 0;
-
- add_section_rename (old_name, new_name, flags);
- }
- break;
-
- case OPTION_SET_START:
- set_start = parse_vma (optarg, "--set-start");
- set_start_set = TRUE;
- break;
-
- case OPTION_SREC_LEN:
- Chunk = parse_vma (optarg, "--srec-len");
- break;
-
- case OPTION_SREC_FORCES3:
- S3Forced = TRUE;
- break;
-
- case OPTION_STRIP_SYMBOLS:
- add_specific_symbols (optarg, &strip_specific_list);
- break;
-
- case OPTION_STRIP_UNNEEDED_SYMBOLS:
- add_specific_symbols (optarg, &strip_unneeded_list);
- break;
-
- case OPTION_KEEP_SYMBOLS:
- add_specific_symbols (optarg, &keep_specific_list);
- break;
-
- case OPTION_LOCALIZE_SYMBOLS:
- add_specific_symbols (optarg, &localize_specific_list);
- break;
-
- case OPTION_GLOBALIZE_SYMBOLS:
- add_specific_symbols (optarg, &globalize_specific_list);
- break;
-
- case OPTION_KEEPGLOBAL_SYMBOLS:
- add_specific_symbols (optarg, &keepglobal_specific_list);
- break;
-
- case OPTION_WEAKEN_SYMBOLS:
- add_specific_symbols (optarg, &weaken_specific_list);
- break;
-
- case OPTION_ALT_MACH_CODE:
- use_alt_mach_code = strtoul (optarg, NULL, 0);
- if (use_alt_mach_code == 0)
- fatal (_("unable to parse alternative machine code"));
- break;
-
- case OPTION_PREFIX_SYMBOLS:
- prefix_symbols_string = optarg;
- break;
-
- case OPTION_PREFIX_SECTIONS:
- prefix_sections_string = optarg;
- break;
-
- case OPTION_PREFIX_ALLOC_SECTIONS:
- prefix_alloc_sections_string = optarg;
- break;
-
- case OPTION_READONLY_TEXT:
- bfd_flags_to_set |= WP_TEXT;
- bfd_flags_to_clear &= ~WP_TEXT;
- break;
-
- case OPTION_WRITABLE_TEXT:
- bfd_flags_to_clear |= WP_TEXT;
- bfd_flags_to_set &= ~WP_TEXT;
- break;
-
- case OPTION_PURE:
- bfd_flags_to_set |= D_PAGED;
- bfd_flags_to_clear &= ~D_PAGED;
- break;
-
- case OPTION_IMPURE:
- bfd_flags_to_clear |= D_PAGED;
- bfd_flags_to_set &= ~D_PAGED;
- break;
-
- case 0:
- /* We've been given a long option. */
- break;
-
- case 'H':
- case 'h':
- copy_usage (stdout, 0);
-
- default:
- copy_usage (stderr, 1);
- }
- }
-
- if (formats_info)
- {
- display_info ();
- return 0;
- }
-
- if (show_version)
- print_version ("objcopy");
-
- if (copy_byte >= interleave)
- fatal (_("byte number must be less than interleave"));
-
- if (optind == argc || optind + 2 < argc)
- copy_usage (stderr, 1);
-
- input_filename = argv[optind];
- if (optind + 1 < argc)
- output_filename = argv[optind + 1];
-
- /* Default is to strip no symbols. */
- if (strip_symbols == STRIP_UNDEF && discard_locals == LOCALS_UNDEF)
- strip_symbols = STRIP_NONE;
-
- if (output_target == NULL)
- output_target = input_target;
-
- if (binary_architecture != NULL)
- {
- if (input_target && strcmp (input_target, "binary") == 0)
- {
- const bfd_arch_info_type * temp_arch_info;
-
- temp_arch_info = bfd_scan_arch (binary_architecture);
-
- if (temp_arch_info != NULL)
- {
- bfd_external_binary_architecture = temp_arch_info->arch;
- bfd_external_machine = temp_arch_info->mach;
- }
- else
- fatal (_("architecture %s unknown"), binary_architecture);
- }
- else
- {
- non_fatal (_("Warning: input target 'binary' required for binary architecture parameter."));
- non_fatal (_(" Argument %s ignored"), binary_architecture);
- }
- }
-
- if (preserve_dates)
- if (stat (input_filename, & statbuf) < 0)
- fatal (_("warning: could not locate '%s'. System error message: %s"),
- input_filename, strerror (errno));
-
- /* If there is no destination file, or the source and destination files
- are the same, then create a temp and rename the result into the input. */
- if (output_filename == NULL || strcmp (input_filename, output_filename) == 0)
- {
- char *tmpname = make_tempname (input_filename);
-
- copy_file (input_filename, tmpname, input_target, output_target);
- if (status == 0)
- {
- if (preserve_dates)
- set_times (tmpname, &statbuf);
- smart_rename (tmpname, input_filename, preserve_dates);
- }
- else
- unlink (tmpname);
- }
- else
- {
- copy_file (input_filename, output_filename, input_target, output_target);
-
- if (status == 0 && preserve_dates)
- set_times (output_filename, &statbuf);
- else if (status != 0)
- unlink_if_ordinary (output_filename);
- }
-
- if (change_warn)
- {
- for (p = change_sections; p != NULL; p = p->next)
- {
- if (! p->used)
- {
- if (p->change_vma != CHANGE_IGNORE)
- {
- char buff [20];
-
- sprintf_vma (buff, p->vma_val);
-
- /* xgettext:c-format */
- non_fatal (_("%s %s%c0x%s never used"),
- "--change-section-vma",
- p->name,
- p->change_vma == CHANGE_SET ? '=' : '+',
- buff);
- }
-
- if (p->change_lma != CHANGE_IGNORE)
- {
- char buff [20];
-
- sprintf_vma (buff, p->lma_val);
-
- /* xgettext:c-format */
- non_fatal (_("%s %s%c0x%s never used"),
- "--change-section-lma",
- p->name,
- p->change_lma == CHANGE_SET ? '=' : '+',
- buff);
- }
- }
- }
- }
-
- return 0;
-}
-
-int
-main (int argc, char *argv[])
-{
-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- program_name = argv[0];
- xmalloc_set_program_name (program_name);
-
- START_PROGRESS (program_name, 0);
-
- expandargv (&argc, &argv);
-
- strip_symbols = STRIP_UNDEF;
- discard_locals = LOCALS_UNDEF;
-
- bfd_init ();
- set_default_bfd_target ();
-
- if (is_strip < 0)
- {
- int i = strlen (program_name);
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- /* Drop the .exe suffix, if any. */
- if (i > 4 && FILENAME_CMP (program_name + i - 4, ".exe") == 0)
- {
- i -= 4;
- program_name[i] = '\0';
- }
-#endif
- is_strip = (i >= 5 && FILENAME_CMP (program_name + i - 5, "strip") == 0);
- }
-
- if (is_strip)
- strip_main (argc, argv);
- else
- copy_main (argc, argv);
-
- END_PROGRESS (program_name);
-
- return status;
-}
diff --git a/binutils-2.17/binutils/objdump.c b/binutils-2.17/binutils/objdump.c
deleted file mode 100644
index 6e5eab56..00000000
--- a/binutils-2.17/binutils/objdump.c
+++ /dev/null
@@ -1,3188 +0,0 @@
-/* objdump.c -- dump information about an object file.
- Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Objdump overview.
-
- Objdump displays information about one or more object files, either on
- their own, or inside libraries. It is commonly used as a disassembler,
- but it can also display information about file headers, symbol tables,
- relocations, debugging directives and more.
-
- The flow of execution is as follows:
-
- 1. Command line arguments are checked for control switches and the
- information to be displayed is selected.
-
- 2. Any remaining arguments are assumed to be object files, and they are
- processed in order by display_bfd(). If the file is an archive each
- of its elements is processed in turn.
-
- 3. The file's target architecture and binary file format are determined
- by bfd_check_format(). If they are recognised, then dump_bfd() is
- called.
-
- 4. dump_bfd() in turn calls separate functions to display the requested
- item(s) of information(s). For example disassemble_data() is called if
- a disassembly has been requested.
-
- When disassembling the code loops through blocks of instructions bounded
- by symbols, calling disassemble_bytes() on each block. The actual
- disassembling is done by the libopcodes library, via a function pointer
- supplied by the disassembler() function. */
-
-#include "bfd.h"
-#include "bfdver.h"
-#include "progress.h"
-#include "bucomm.h"
-#include "dwarf.h"
-#include "budemang.h"
-#include "getopt.h"
-#include "safe-ctype.h"
-#include "dis-asm.h"
-#include "libiberty.h"
-#include "demangle.h"
-#include "debug.h"
-#include "budbg.h"
-
-/* Internal headers for the ELF .stab-dump code - sorry. */
-#define BYTES_IN_WORD 32
-#include "aout/aout64.h"
-
-/* Exit status. */
-static int exit_status = 0;
-
-static char *default_target = NULL; /* Default at runtime. */
-
-/* The following variables are set based on arguments passed on the
- command line. */
-static int show_version = 0; /* Show the version number. */
-static int dump_section_contents; /* -s */
-static int dump_section_headers; /* -h */
-static bfd_boolean dump_file_header; /* -f */
-static int dump_symtab; /* -t */
-static int dump_dynamic_symtab; /* -T */
-static int dump_reloc_info; /* -r */
-static int dump_dynamic_reloc_info; /* -R */
-static int dump_ar_hdrs; /* -a */
-static int dump_private_headers; /* -p */
-static int prefix_addresses; /* --prefix-addresses */
-static int with_line_numbers; /* -l */
-static bfd_boolean with_source_code; /* -S */
-static int show_raw_insn; /* --show-raw-insn */
-static int dump_dwarf_section_info; /* --dwarf */
-static int dump_stab_section_info; /* --stabs */
-static int do_demangle; /* -C, --demangle */
-static bfd_boolean disassemble; /* -d */
-static bfd_boolean disassemble_all; /* -D */
-static int disassemble_zeroes; /* --disassemble-zeroes */
-static bfd_boolean formats_info; /* -i */
-static int wide_output; /* -w */
-static bfd_vma start_address = (bfd_vma) -1; /* --start-address */
-static bfd_vma stop_address = (bfd_vma) -1; /* --stop-address */
-static int dump_debugging; /* --debugging */
-static int dump_debugging_tags; /* --debugging-tags */
-static int dump_special_syms = 0; /* --special-syms */
-static bfd_vma adjust_section_vma = 0; /* --adjust-vma */
-static int file_start_context = 0; /* --file-start-context */
-
-/* Pointer to an array of section names provided by
- one or more "-j secname" command line options. */
-static char **only;
-/* The total number of slots in the only[] array. */
-static size_t only_size = 0;
-/* The number of occupied slots in the only[] array. */
-static size_t only_used = 0;
-
-/* Variables for handling include file path table. */
-static const char **include_paths;
-static int include_path_count;
-
-/* Extra info to pass to the section disassembler and address printing
- function. */
-struct objdump_disasm_info
-{
- bfd * abfd;
- asection * sec;
- bfd_boolean require_sec;
- arelent ** dynrelbuf;
- long dynrelcount;
- disassembler_ftype disassemble_fn;
- arelent * reloc;
-};
-
-/* Architecture to disassemble for, or default if NULL. */
-static char *machine = NULL;
-
-/* Target specific options to the disassembler. */
-static char *disassembler_options = NULL;
-
-/* Endianness to disassemble for, or default if BFD_ENDIAN_UNKNOWN. */
-static enum bfd_endian endian = BFD_ENDIAN_UNKNOWN;
-
-/* The symbol table. */
-static asymbol **syms;
-
-/* Number of symbols in `syms'. */
-static long symcount = 0;
-
-/* The sorted symbol table. */
-static asymbol **sorted_syms;
-
-/* Number of symbols in `sorted_syms'. */
-static long sorted_symcount = 0;
-
-/* The dynamic symbol table. */
-static asymbol **dynsyms;
-
-/* The synthetic symbol table. */
-static asymbol *synthsyms;
-static long synthcount = 0;
-
-/* Number of symbols in `dynsyms'. */
-static long dynsymcount = 0;
-
-static bfd_byte *stabs;
-static bfd_size_type stab_size;
-
-static char *strtab;
-static bfd_size_type stabstr_size;
-
-static void
-usage (FILE *stream, int status)
-{
- fprintf (stream, _("Usage: %s <option(s)> <file(s)>\n"), program_name);
- fprintf (stream, _(" Display information from object <file(s)>.\n"));
- fprintf (stream, _(" At least one of the following switches must be given:\n"));
- fprintf (stream, _("\
- -a, --archive-headers Display archive header information\n\
- -f, --file-headers Display the contents of the overall file header\n\
- -p, --private-headers Display object format specific file header contents\n\
- -h, --[section-]headers Display the contents of the section headers\n\
- -x, --all-headers Display the contents of all headers\n\
- -d, --disassemble Display assembler contents of executable sections\n\
- -D, --disassemble-all Display assembler contents of all sections\n\
- -S, --source Intermix source code with disassembly\n\
- -s, --full-contents Display the full contents of all sections requested\n\
- -g, --debugging Display debug information in object file\n\
- -e, --debugging-tags Display debug information using ctags style\n\
- -G, --stabs Display (in raw form) any STABS info in the file\n\
- -W, --dwarf Display DWARF info in the file\n\
- -t, --syms Display the contents of the symbol table(s)\n\
- -T, --dynamic-syms Display the contents of the dynamic symbol table\n\
- -r, --reloc Display the relocation entries in the file\n\
- -R, --dynamic-reloc Display the dynamic relocation entries in the file\n\
- @<file> Read options from <file>\n\
- -v, --version Display this program's version number\n\
- -i, --info List object formats and architectures supported\n\
- -H, --help Display this information\n\
-"));
- if (status != 2)
- {
- fprintf (stream, _("\n The following switches are optional:\n"));
- fprintf (stream, _("\
- -b, --target=BFDNAME Specify the target object format as BFDNAME\n\
- -m, --architecture=MACHINE Specify the target architecture as MACHINE\n\
- -j, --section=NAME Only display information for section NAME\n\
- -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n\
- -EB --endian=big Assume big endian format when disassembling\n\
- -EL --endian=little Assume little endian format when disassembling\n\
- --file-start-context Include context from start of file (with -S)\n\
- -I, --include=DIR Add DIR to search list for source files\n\
- -l, --line-numbers Include line numbers and filenames in output\n\
- -C, --demangle[=STYLE] Decode mangled/processed symbol names\n\
- The STYLE, if specified, can be `auto', `gnu',\n\
- `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n\
- or `gnat'\n\
- -w, --wide Format output for more than 80 columns\n\
- -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n\
- --start-address=ADDR Only process data whose address is >= ADDR\n\
- --stop-address=ADDR Only process data whose address is <= ADDR\n\
- --prefix-addresses Print complete address alongside disassembly\n\
- --[no-]show-raw-insn Display hex alongside symbolic disassembly\n\
- --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n\
- --special-syms Include special symbols in symbol dumps\n\
-\n"));
- list_supported_targets (program_name, stream);
- list_supported_architectures (program_name, stream);
-
- disassembler_usage (stream);
- }
- if (status == 0)
- fprintf (stream, _("Report bugs to %s.\n"), REPORT_BUGS_TO);
- exit (status);
-}
-
-/* 150 isn't special; it's just an arbitrary non-ASCII char value. */
-enum option_values
- {
- OPTION_ENDIAN=150,
- OPTION_START_ADDRESS,
- OPTION_STOP_ADDRESS,
- OPTION_ADJUST_VMA
- };
-
-static struct option long_options[]=
-{
- {"adjust-vma", required_argument, NULL, OPTION_ADJUST_VMA},
- {"all-headers", no_argument, NULL, 'x'},
- {"private-headers", no_argument, NULL, 'p'},
- {"architecture", required_argument, NULL, 'm'},
- {"archive-headers", no_argument, NULL, 'a'},
- {"debugging", no_argument, NULL, 'g'},
- {"debugging-tags", no_argument, NULL, 'e'},
- {"demangle", optional_argument, NULL, 'C'},
- {"disassemble", no_argument, NULL, 'd'},
- {"disassemble-all", no_argument, NULL, 'D'},
- {"disassembler-options", required_argument, NULL, 'M'},
- {"disassemble-zeroes", no_argument, NULL, 'z'},
- {"dynamic-reloc", no_argument, NULL, 'R'},
- {"dynamic-syms", no_argument, NULL, 'T'},
- {"endian", required_argument, NULL, OPTION_ENDIAN},
- {"file-headers", no_argument, NULL, 'f'},
- {"file-start-context", no_argument, &file_start_context, 1},
- {"full-contents", no_argument, NULL, 's'},
- {"headers", no_argument, NULL, 'h'},
- {"help", no_argument, NULL, 'H'},
- {"info", no_argument, NULL, 'i'},
- {"line-numbers", no_argument, NULL, 'l'},
- {"no-show-raw-insn", no_argument, &show_raw_insn, -1},
- {"prefix-addresses", no_argument, &prefix_addresses, 1},
- {"reloc", no_argument, NULL, 'r'},
- {"section", required_argument, NULL, 'j'},
- {"section-headers", no_argument, NULL, 'h'},
- {"show-raw-insn", no_argument, &show_raw_insn, 1},
- {"source", no_argument, NULL, 'S'},
- {"special-syms", no_argument, &dump_special_syms, 1},
- {"include", required_argument, NULL, 'I'},
- {"dwarf", no_argument, NULL, 'W'},
- {"stabs", no_argument, NULL, 'G'},
- {"start-address", required_argument, NULL, OPTION_START_ADDRESS},
- {"stop-address", required_argument, NULL, OPTION_STOP_ADDRESS},
- {"syms", no_argument, NULL, 't'},
- {"target", required_argument, NULL, 'b'},
- {"version", no_argument, NULL, 'V'},
- {"wide", no_argument, NULL, 'w'},
- {0, no_argument, 0, 0}
-};
-
-static void
-nonfatal (const char *msg)
-{
- bfd_nonfatal (msg);
- exit_status = 1;
-}
-
-static void
-dump_section_header (bfd *abfd, asection *section,
- void *ignored ATTRIBUTE_UNUSED)
-{
- char *comma = "";
- unsigned int opb = bfd_octets_per_byte (abfd);
-
- /* Ignore linker created section. See elfNN_ia64_object_p in
- bfd/elfxx-ia64.c. */
- if (section->flags & SEC_LINKER_CREATED)
- return;
-
- printf ("%3d %-13s %08lx ", section->index,
- bfd_get_section_name (abfd, section),
- (unsigned long) bfd_section_size (abfd, section) / opb);
- bfd_printf_vma (abfd, bfd_get_section_vma (abfd, section));
- printf (" ");
- bfd_printf_vma (abfd, section->lma);
- printf (" %08lx 2**%u", (unsigned long) section->filepos,
- bfd_get_section_alignment (abfd, section));
- if (! wide_output)
- printf ("\n ");
- printf (" ");
-
-#define PF(x, y) \
- if (section->flags & x) { printf ("%s%s", comma, y); comma = ", "; }
-
- PF (SEC_HAS_CONTENTS, "CONTENTS");
- PF (SEC_ALLOC, "ALLOC");
- PF (SEC_CONSTRUCTOR, "CONSTRUCTOR");
- PF (SEC_LOAD, "LOAD");
- PF (SEC_RELOC, "RELOC");
- PF (SEC_READONLY, "READONLY");
- PF (SEC_CODE, "CODE");
- PF (SEC_DATA, "DATA");
- PF (SEC_ROM, "ROM");
- PF (SEC_DEBUGGING, "DEBUGGING");
- PF (SEC_NEVER_LOAD, "NEVER_LOAD");
- PF (SEC_EXCLUDE, "EXCLUDE");
- PF (SEC_SORT_ENTRIES, "SORT_ENTRIES");
- if (bfd_get_arch (abfd) == bfd_arch_tic54x)
- {
- PF (SEC_TIC54X_BLOCK, "BLOCK");
- PF (SEC_TIC54X_CLINK, "CLINK");
- }
- PF (SEC_SMALL_DATA, "SMALL_DATA");
- if (bfd_get_flavour (abfd) == bfd_target_coff_flavour)
- PF (SEC_COFF_SHARED, "SHARED");
- PF (SEC_THREAD_LOCAL, "THREAD_LOCAL");
- PF (SEC_GROUP, "GROUP");
-
- if ((section->flags & SEC_LINK_ONCE) != 0)
- {
- const char *ls;
- struct coff_comdat_info *comdat;
-
- switch (section->flags & SEC_LINK_DUPLICATES)
- {
- default:
- abort ();
- case SEC_LINK_DUPLICATES_DISCARD:
- ls = "LINK_ONCE_DISCARD";
- break;
- case SEC_LINK_DUPLICATES_ONE_ONLY:
- ls = "LINK_ONCE_ONE_ONLY";
- break;
- case SEC_LINK_DUPLICATES_SAME_SIZE:
- ls = "LINK_ONCE_SAME_SIZE";
- break;
- case SEC_LINK_DUPLICATES_SAME_CONTENTS:
- ls = "LINK_ONCE_SAME_CONTENTS";
- break;
- }
- printf ("%s%s", comma, ls);
-
- comdat = bfd_coff_get_comdat_section (abfd, section);
- if (comdat != NULL)
- printf (" (COMDAT %s %ld)", comdat->name, comdat->symbol);
-
- comma = ", ";
- }
-
- printf ("\n");
-#undef PF
-}
-
-static void
-dump_headers (bfd *abfd)
-{
- printf (_("Sections:\n"));
-
-#ifndef BFD64
- printf (_("Idx Name Size VMA LMA File off Algn"));
-#else
- /* With BFD64, non-ELF returns -1 and wants always 64 bit addresses. */
- if (bfd_get_arch_size (abfd) == 32)
- printf (_("Idx Name Size VMA LMA File off Algn"));
- else
- printf (_("Idx Name Size VMA LMA File off Algn"));
-#endif
-
- if (wide_output)
- printf (_(" Flags"));
- if (abfd->flags & HAS_LOAD_PAGE)
- printf (_(" Pg"));
- printf ("\n");
-
- bfd_map_over_sections (abfd, dump_section_header, NULL);
-}
-
-static asymbol **
-slurp_symtab (bfd *abfd)
-{
- asymbol **sy = NULL;
- long storage;
-
- if (!(bfd_get_file_flags (abfd) & HAS_SYMS))
- {
- symcount = 0;
- return NULL;
- }
-
- storage = bfd_get_symtab_upper_bound (abfd);
- if (storage < 0)
- bfd_fatal (bfd_get_filename (abfd));
- if (storage)
- sy = xmalloc (storage);
-
- symcount = bfd_canonicalize_symtab (abfd, sy);
- if (symcount < 0)
- bfd_fatal (bfd_get_filename (abfd));
- return sy;
-}
-
-/* Read in the dynamic symbols. */
-
-static asymbol **
-slurp_dynamic_symtab (bfd *abfd)
-{
- asymbol **sy = NULL;
- long storage;
-
- storage = bfd_get_dynamic_symtab_upper_bound (abfd);
- if (storage < 0)
- {
- if (!(bfd_get_file_flags (abfd) & DYNAMIC))
- {
- non_fatal (_("%s: not a dynamic object"), bfd_get_filename (abfd));
- dynsymcount = 0;
- return NULL;
- }
-
- bfd_fatal (bfd_get_filename (abfd));
- }
- if (storage)
- sy = xmalloc (storage);
-
- dynsymcount = bfd_canonicalize_dynamic_symtab (abfd, sy);
- if (dynsymcount < 0)
- bfd_fatal (bfd_get_filename (abfd));
- return sy;
-}
-
-/* Filter out (in place) symbols that are useless for disassembly.
- COUNT is the number of elements in SYMBOLS.
- Return the number of useful symbols. */
-
-static long
-remove_useless_symbols (asymbol **symbols, long count)
-{
- asymbol **in_ptr = symbols, **out_ptr = symbols;
-
- while (--count >= 0)
- {
- asymbol *sym = *in_ptr++;
-
- if (sym->name == NULL || sym->name[0] == '\0')
- continue;
- if (sym->flags & (BSF_DEBUGGING | BSF_SECTION_SYM))
- continue;
- if (bfd_is_und_section (sym->section)
- || bfd_is_com_section (sym->section))
- continue;
-
- *out_ptr++ = sym;
- }
- return out_ptr - symbols;
-}
-
-/* Sort symbols into value order. */
-
-static int
-compare_symbols (const void *ap, const void *bp)
-{
- const asymbol *a = * (const asymbol **) ap;
- const asymbol *b = * (const asymbol **) bp;
- const char *an;
- const char *bn;
- size_t anl;
- size_t bnl;
- bfd_boolean af;
- bfd_boolean bf;
- flagword aflags;
- flagword bflags;
-
- if (bfd_asymbol_value (a) > bfd_asymbol_value (b))
- return 1;
- else if (bfd_asymbol_value (a) < bfd_asymbol_value (b))
- return -1;
-
- if (a->section > b->section)
- return 1;
- else if (a->section < b->section)
- return -1;
-
- an = bfd_asymbol_name (a);
- bn = bfd_asymbol_name (b);
- anl = strlen (an);
- bnl = strlen (bn);
-
- /* The symbols gnu_compiled and gcc2_compiled convey no real
- information, so put them after other symbols with the same value. */
- af = (strstr (an, "gnu_compiled") != NULL
- || strstr (an, "gcc2_compiled") != NULL);
- bf = (strstr (bn, "gnu_compiled") != NULL
- || strstr (bn, "gcc2_compiled") != NULL);
-
- if (af && ! bf)
- return 1;
- if (! af && bf)
- return -1;
-
- /* We use a heuristic for the file name, to try to sort it after
- more useful symbols. It may not work on non Unix systems, but it
- doesn't really matter; the only difference is precisely which
- symbol names get printed. */
-
-#define file_symbol(s, sn, snl) \
- (((s)->flags & BSF_FILE) != 0 \
- || ((sn)[(snl) - 2] == '.' \
- && ((sn)[(snl) - 1] == 'o' \
- || (sn)[(snl) - 1] == 'a')))
-
- af = file_symbol (a, an, anl);
- bf = file_symbol (b, bn, bnl);
-
- if (af && ! bf)
- return 1;
- if (! af && bf)
- return -1;
-
- /* Try to sort global symbols before local symbols before function
- symbols before debugging symbols. */
-
- aflags = a->flags;
- bflags = b->flags;
-
- if ((aflags & BSF_DEBUGGING) != (bflags & BSF_DEBUGGING))
- {
- if ((aflags & BSF_DEBUGGING) != 0)
- return 1;
- else
- return -1;
- }
- if ((aflags & BSF_FUNCTION) != (bflags & BSF_FUNCTION))
- {
- if ((aflags & BSF_FUNCTION) != 0)
- return -1;
- else
- return 1;
- }
- if ((aflags & BSF_LOCAL) != (bflags & BSF_LOCAL))
- {
- if ((aflags & BSF_LOCAL) != 0)
- return 1;
- else
- return -1;
- }
- if ((aflags & BSF_GLOBAL) != (bflags & BSF_GLOBAL))
- {
- if ((aflags & BSF_GLOBAL) != 0)
- return -1;
- else
- return 1;
- }
-
- /* Symbols that start with '.' might be section names, so sort them
- after symbols that don't start with '.'. */
- if (an[0] == '.' && bn[0] != '.')
- return 1;
- if (an[0] != '.' && bn[0] == '.')
- return -1;
-
- /* Finally, if we can't distinguish them in any other way, try to
- get consistent results by sorting the symbols by name. */
- return strcmp (an, bn);
-}
-
-/* Sort relocs into address order. */
-
-static int
-compare_relocs (const void *ap, const void *bp)
-{
- const arelent *a = * (const arelent **) ap;
- const arelent *b = * (const arelent **) bp;
-
- if (a->address > b->address)
- return 1;
- else if (a->address < b->address)
- return -1;
-
- /* So that associated relocations tied to the same address show up
- in the correct order, we don't do any further sorting. */
- if (a > b)
- return 1;
- else if (a < b)
- return -1;
- else
- return 0;
-}
-
-/* Print an address (VMA) to the output stream in INFO.
- If SKIP_ZEROES is TRUE, omit leading zeroes. */
-
-static void
-objdump_print_value (bfd_vma vma, struct disassemble_info *info,
- bfd_boolean skip_zeroes)
-{
- char buf[30];
- char *p;
- struct objdump_disasm_info *aux;
-
- aux = (struct objdump_disasm_info *) info->application_data;
- bfd_sprintf_vma (aux->abfd, buf, vma);
- if (! skip_zeroes)
- p = buf;
- else
- {
- for (p = buf; *p == '0'; ++p)
- ;
- if (*p == '\0')
- --p;
- }
- (*info->fprintf_func) (info->stream, "%s", p);
-}
-
-/* Print the name of a symbol. */
-
-static void
-objdump_print_symname (bfd *abfd, struct disassemble_info *info,
- asymbol *sym)
-{
- char *alloc;
- const char *name;
-
- alloc = NULL;
- name = bfd_asymbol_name (sym);
- if (do_demangle && name[0] != '\0')
- {
- /* Demangle the name. */
- alloc = demangle (abfd, name);
- name = alloc;
- }
-
- if (info != NULL)
- (*info->fprintf_func) (info->stream, "%s", name);
- else
- printf ("%s", name);
-
- if (alloc != NULL)
- free (alloc);
-}
-
-/* Locate a symbol given a bfd and a section (from INFO->application_data),
- and a VMA. If INFO->application_data->require_sec is TRUE, then always
- require the symbol to be in the section. Returns NULL if there is no
- suitable symbol. If PLACE is not NULL, then *PLACE is set to the index
- of the symbol in sorted_syms. */
-
-static asymbol *
-find_symbol_for_address (bfd_vma vma,
- struct disassemble_info *info,
- long *place)
-{
- /* @@ Would it speed things up to cache the last two symbols returned,
- and maybe their address ranges? For many processors, only one memory
- operand can be present at a time, so the 2-entry cache wouldn't be
- constantly churned by code doing heavy memory accesses. */
-
- /* Indices in `sorted_syms'. */
- long min = 0;
- long max = sorted_symcount;
- long thisplace;
- struct objdump_disasm_info *aux;
- bfd *abfd;
- asection *sec;
- unsigned int opb;
-
- if (sorted_symcount < 1)
- return NULL;
-
- aux = (struct objdump_disasm_info *) info->application_data;
- abfd = aux->abfd;
- sec = aux->sec;
- opb = bfd_octets_per_byte (abfd);
-
- /* Perform a binary search looking for the closest symbol to the
- required value. We are searching the range (min, max]. */
- while (min + 1 < max)
- {
- asymbol *sym;
-
- thisplace = (max + min) / 2;
- sym = sorted_syms[thisplace];
-
- if (bfd_asymbol_value (sym) > vma)
- max = thisplace;
- else if (bfd_asymbol_value (sym) < vma)
- min = thisplace;
- else
- {
- min = thisplace;
- break;
- }
- }
-
- /* The symbol we want is now in min, the low end of the range we
- were searching. If there are several symbols with the same
- value, we want the first one. */
- thisplace = min;
- while (thisplace > 0
- && (bfd_asymbol_value (sorted_syms[thisplace])
- == bfd_asymbol_value (sorted_syms[thisplace - 1])))
- --thisplace;
-
- /* If the file is relocatable, and the symbol could be from this
- section, prefer a symbol from this section over symbols from
- others, even if the other symbol's value might be closer.
-
- Note that this may be wrong for some symbol references if the
- sections have overlapping memory ranges, but in that case there's
- no way to tell what's desired without looking at the relocation
- table. */
- if (sorted_syms[thisplace]->section != sec
- && (aux->require_sec
- || ((abfd->flags & HAS_RELOC) != 0
- && vma >= bfd_get_section_vma (abfd, sec)
- && vma < (bfd_get_section_vma (abfd, sec)
- + bfd_section_size (abfd, sec) / opb))))
- {
- long i;
-
- for (i = thisplace + 1; i < sorted_symcount; i++)
- {
- if (bfd_asymbol_value (sorted_syms[i])
- != bfd_asymbol_value (sorted_syms[thisplace]))
- break;
- }
-
- --i;
-
- for (; i >= 0; i--)
- {
- if (sorted_syms[i]->section == sec
- && (i == 0
- || sorted_syms[i - 1]->section != sec
- || (bfd_asymbol_value (sorted_syms[i])
- != bfd_asymbol_value (sorted_syms[i - 1]))))
- {
- thisplace = i;
- break;
- }
- }
-
- if (sorted_syms[thisplace]->section != sec)
- {
- /* We didn't find a good symbol with a smaller value.
- Look for one with a larger value. */
- for (i = thisplace + 1; i < sorted_symcount; i++)
- {
- if (sorted_syms[i]->section == sec)
- {
- thisplace = i;
- break;
- }
- }
- }
-
- if (sorted_syms[thisplace]->section != sec
- && (aux->require_sec
- || ((abfd->flags & HAS_RELOC) != 0
- && vma >= bfd_get_section_vma (abfd, sec)
- && vma < (bfd_get_section_vma (abfd, sec)
- + bfd_section_size (abfd, sec)))))
- /* There is no suitable symbol. */
- return NULL;
- }
-
- /* Give the target a chance to reject the symbol. */
- while (! info->symbol_is_valid (sorted_syms [thisplace], info))
- {
- ++ thisplace;
- if (thisplace >= sorted_symcount
- || bfd_asymbol_value (sorted_syms [thisplace]) > vma)
- return NULL;
- }
-
- if (place != NULL)
- *place = thisplace;
-
- return sorted_syms[thisplace];
-}
-
-/* Print an address and the offset to the nearest symbol. */
-
-static void
-objdump_print_addr_with_sym (bfd *abfd, asection *sec, asymbol *sym,
- bfd_vma vma, struct disassemble_info *info,
- bfd_boolean skip_zeroes)
-{
- objdump_print_value (vma, info, skip_zeroes);
-
- if (sym == NULL)
- {
- bfd_vma secaddr;
-
- (*info->fprintf_func) (info->stream, " <%s",
- bfd_get_section_name (abfd, sec));
- secaddr = bfd_get_section_vma (abfd, sec);
- if (vma < secaddr)
- {
- (*info->fprintf_func) (info->stream, "-0x");
- objdump_print_value (secaddr - vma, info, TRUE);
- }
- else if (vma > secaddr)
- {
- (*info->fprintf_func) (info->stream, "+0x");
- objdump_print_value (vma - secaddr, info, TRUE);
- }
- (*info->fprintf_func) (info->stream, ">");
- }
- else
- {
- (*info->fprintf_func) (info->stream, " <");
- objdump_print_symname (abfd, info, sym);
- if (bfd_asymbol_value (sym) > vma)
- {
- (*info->fprintf_func) (info->stream, "-0x");
- objdump_print_value (bfd_asymbol_value (sym) - vma, info, TRUE);
- }
- else if (vma > bfd_asymbol_value (sym))
- {
- (*info->fprintf_func) (info->stream, "+0x");
- objdump_print_value (vma - bfd_asymbol_value (sym), info, TRUE);
- }
- (*info->fprintf_func) (info->stream, ">");
- }
-}
-
-/* Print an address (VMA), symbolically if possible.
- If SKIP_ZEROES is TRUE, don't output leading zeroes. */
-
-static void
-objdump_print_addr (bfd_vma vma,
- struct disassemble_info *info,
- bfd_boolean skip_zeroes)
-{
- struct objdump_disasm_info *aux;
- asymbol *sym = NULL; /* Initialize to avoid compiler warning. */
- bfd_boolean skip_find = FALSE;
-
- if (sorted_symcount < 1)
- {
- (*info->fprintf_func) (info->stream, "0x");
- objdump_print_value (vma, info, skip_zeroes);
- return;
- }
-
- aux = (struct objdump_disasm_info *) info->application_data;
-
- if (aux->reloc != NULL
- && aux->reloc->sym_ptr_ptr != NULL
- && * aux->reloc->sym_ptr_ptr != NULL)
- {
- sym = * aux->reloc->sym_ptr_ptr;
-
- /* Adjust the vma to the reloc. */
- vma += bfd_asymbol_value (sym);
-
- if (bfd_is_und_section (bfd_get_section (sym)))
- skip_find = TRUE;
- }
-
- if (!skip_find)
- sym = find_symbol_for_address (vma, info, NULL);
-
- objdump_print_addr_with_sym (aux->abfd, aux->sec, sym, vma, info,
- skip_zeroes);
-}
-
-/* Print VMA to INFO. This function is passed to the disassembler
- routine. */
-
-static void
-objdump_print_address (bfd_vma vma, struct disassemble_info *info)
-{
- objdump_print_addr (vma, info, ! prefix_addresses);
-}
-
-/* Determine if the given address has a symbol associated with it. */
-
-static int
-objdump_symbol_at_address (bfd_vma vma, struct disassemble_info * info)
-{
- asymbol * sym;
-
- sym = find_symbol_for_address (vma, info, NULL);
-
- return (sym != NULL && (bfd_asymbol_value (sym) == vma));
-}
-
-/* Hold the last function name and the last line number we displayed
- in a disassembly. */
-
-static char *prev_functionname;
-static unsigned int prev_line;
-
-/* We keep a list of all files that we have seen when doing a
- disassembly with source, so that we know how much of the file to
- display. This can be important for inlined functions. */
-
-struct print_file_list
-{
- struct print_file_list *next;
- const char *filename;
- const char *modname;
- unsigned int line;
- FILE *f;
-};
-
-static struct print_file_list *print_files;
-
-/* The number of preceding context lines to show when we start
- displaying a file for the first time. */
-
-#define SHOW_PRECEDING_CONTEXT_LINES (5)
-
-/* Tries to open MODNAME, and if successful adds a node to print_files
- linked list and returns that node. Returns NULL on failure. */
-
-static struct print_file_list *
-try_print_file_open (const char *origname, const char *modname)
-{
- struct print_file_list *p;
- FILE *f;
-
- f = fopen (modname, "r");
- if (f == NULL)
- return NULL;
-
- if (print_files != NULL && print_files->f != NULL)
- {
- fclose (print_files->f);
- print_files->f = NULL;
- }
-
- p = xmalloc (sizeof (struct print_file_list));
- p->filename = origname;
- p->modname = modname;
- p->line = 0;
- p->f = f;
- p->next = print_files;
- print_files = p;
- return p;
-}
-
-/* If the the source file, as described in the symtab, is not found
- try to locate it in one of the paths specified with -I
- If found, add location to print_files linked list. */
-
-static struct print_file_list *
-update_source_path (const char *filename)
-{
- struct print_file_list *p;
- const char *fname;
- int i;
-
- if (filename == NULL)
- return NULL;
-
- p = try_print_file_open (filename, filename);
- if (p != NULL)
- return p;
-
- if (include_path_count == 0)
- return NULL;
-
- /* Get the name of the file. */
- fname = strrchr (filename, '/');
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- {
- /* We could have a mixed forward/back slash case. */
- char *backslash = strrchr (filename, '\\');
- if (fname == NULL || (backslash != NULL && backslash > fname))
- fname = backslash;
- if (fname == NULL && filename[0] != '\0' && filename[1] == ':')
- fname = filename + 1;
- }
-#endif
- if (fname == NULL)
- fname = filename;
- else
- ++fname;
-
- /* If file exists under a new path, we need to add it to the list
- so that show_line knows about it. */
- for (i = 0; i < include_path_count; i++)
- {
- char *modname = concat (include_paths[i], "/", fname, (const char *) 0);
-
- p = try_print_file_open (filename, modname);
- if (p)
- return p;
-
- free (modname);
- }
-
- return NULL;
-}
-
-/* Skip ahead to a given line in a file, optionally printing each
- line. */
-
-static void
-skip_to_line (struct print_file_list *p, unsigned int line,
- bfd_boolean show)
-{
- while (p->line < line)
- {
- char buf[100];
-
- if (fgets (buf, sizeof buf, p->f) == NULL)
- {
- fclose (p->f);
- p->f = NULL;
- break;
- }
-
- if (show)
- printf ("%s", buf);
-
- if (strchr (buf, '\n') != NULL)
- ++p->line;
- }
-}
-
-/* Show the line number, or the source line, in a disassembly
- listing. */
-
-static void
-show_line (bfd *abfd, asection *section, bfd_vma addr_offset)
-{
- const char *filename;
- const char *functionname;
- unsigned int line;
-
- if (! with_line_numbers && ! with_source_code)
- return;
-
- if (! bfd_find_nearest_line (abfd, section, syms, addr_offset, &filename,
- &functionname, &line))
- return;
-
- if (filename != NULL && *filename == '\0')
- filename = NULL;
- if (functionname != NULL && *functionname == '\0')
- functionname = NULL;
-
- if (with_line_numbers)
- {
- if (functionname != NULL
- && (prev_functionname == NULL
- || strcmp (functionname, prev_functionname) != 0))
- printf ("%s():\n", functionname);
- if (line > 0 && line != prev_line)
- printf ("%s:%u\n", filename == NULL ? "???" : filename, line);
- }
-
- if (with_source_code
- && filename != NULL
- && line > 0)
- {
- struct print_file_list **pp, *p;
-
- for (pp = &print_files; *pp != NULL; pp = &(*pp)->next)
- if (strcmp ((*pp)->filename, filename) == 0)
- break;
- p = *pp;
-
- if (p != NULL)
- {
- if (p != print_files)
- {
- int l;
-
- /* We have reencountered a file name which we saw
- earlier. This implies that either we are dumping out
- code from an included file, or the same file was
- linked in more than once. There are two common cases
- of an included file: inline functions in a header
- file, and a bison or flex skeleton file. In the
- former case we want to just start printing (but we
- back up a few lines to give context); in the latter
- case we want to continue from where we left off. I
- can't think of a good way to distinguish the cases,
- so I used a heuristic based on the file name. */
- if (strcmp (p->filename + strlen (p->filename) - 2, ".h") != 0)
- l = p->line;
- else
- {
- l = line - SHOW_PRECEDING_CONTEXT_LINES;
- if (l < 0)
- l = 0;
- }
-
- if (p->f == NULL)
- {
- p->f = fopen (p->modname, "r");
- p->line = 0;
- }
- if (p->f != NULL)
- skip_to_line (p, l, FALSE);
-
- if (print_files->f != NULL)
- {
- fclose (print_files->f);
- print_files->f = NULL;
- }
- }
-
- if (p->f != NULL)
- {
- skip_to_line (p, line, TRUE);
- *pp = p->next;
- p->next = print_files;
- print_files = p;
- }
- }
- else
- {
- p = update_source_path (filename);
-
- if (p != NULL)
- {
- int l;
-
- if (file_start_context)
- l = 0;
- else
- l = line - SHOW_PRECEDING_CONTEXT_LINES;
- if (l < 0)
- l = 0;
- skip_to_line (p, l, FALSE);
- if (p->f != NULL)
- skip_to_line (p, line, TRUE);
- }
- }
- }
-
- if (functionname != NULL
- && (prev_functionname == NULL
- || strcmp (functionname, prev_functionname) != 0))
- {
- if (prev_functionname != NULL)
- free (prev_functionname);
- prev_functionname = xmalloc (strlen (functionname) + 1);
- strcpy (prev_functionname, functionname);
- }
-
- if (line > 0 && line != prev_line)
- prev_line = line;
-}
-
-/* Pseudo FILE object for strings. */
-typedef struct
-{
- char *buffer;
- size_t pos;
- size_t alloc;
-} SFILE;
-
-/* sprintf to a "stream". */
-
-static int ATTRIBUTE_PRINTF_2
-objdump_sprintf (SFILE *f, const char *format, ...)
-{
- size_t n;
- va_list args;
-
- while (1)
- {
- size_t space = f->alloc - f->pos;
-
- va_start (args, format);
- n = vsnprintf (f->buffer + f->pos, space, format, args);
- va_end (args);
-
- if (space > n)
- break;
-
- f->alloc = (f->alloc + n) * 2;
- f->buffer = xrealloc (f->buffer, f->alloc);
- }
- f->pos += n;
-
- return n;
-}
-
-/* Returns TRUE if the specified section should be dumped. */
-
-static bfd_boolean
-process_section_p (asection * section)
-{
- size_t i;
-
- if (only == NULL)
- return TRUE;
-
- for (i = 0; i < only_used; i++)
- if (strcmp (only [i], section->name) == 0)
- return TRUE;
-
- return FALSE;
-}
-
-
-/* The number of zeroes we want to see before we start skipping them.
- The number is arbitrarily chosen. */
-
-#define DEFAULT_SKIP_ZEROES 8
-
-/* The number of zeroes to skip at the end of a section. If the
- number of zeroes at the end is between SKIP_ZEROES_AT_END and
- SKIP_ZEROES, they will be disassembled. If there are fewer than
- SKIP_ZEROES_AT_END, they will be skipped. This is a heuristic
- attempt to avoid disassembling zeroes inserted by section
- alignment. */
-
-#define DEFAULT_SKIP_ZEROES_AT_END 3
-
-/* Disassemble some data in memory between given values. */
-
-static void
-disassemble_bytes (struct disassemble_info * info,
- disassembler_ftype disassemble_fn,
- bfd_boolean insns,
- bfd_byte * data,
- bfd_vma start_offset,
- bfd_vma stop_offset,
- bfd_vma rel_offset,
- arelent *** relppp,
- arelent ** relppend)
-{
- struct objdump_disasm_info *aux;
- asection *section;
- int octets_per_line;
- bfd_boolean done_dot;
- int skip_addr_chars;
- bfd_vma addr_offset;
- unsigned int opb = info->octets_per_byte;
- unsigned int skip_zeroes = info->skip_zeroes;
- unsigned int skip_zeroes_at_end = info->skip_zeroes_at_end;
- int octets = opb;
- SFILE sfile;
-
- aux = (struct objdump_disasm_info *) info->application_data;
- section = aux->sec;
-
- sfile.alloc = 120;
- sfile.buffer = xmalloc (sfile.alloc);
- sfile.pos = 0;
-
- if (insns)
- octets_per_line = 4;
- else
- octets_per_line = 16;
-
- /* Figure out how many characters to skip at the start of an
- address, to make the disassembly look nicer. We discard leading
- zeroes in chunks of 4, ensuring that there is always a leading
- zero remaining. */
- skip_addr_chars = 0;
- if (! prefix_addresses)
- {
- char buf[30];
- char *s;
-
- bfd_sprintf_vma
- (aux->abfd, buf,
- (section->vma
- + bfd_section_size (section->owner, section) / opb));
- s = buf;
- while (s[0] == '0' && s[1] == '0' && s[2] == '0' && s[3] == '0'
- && s[4] == '0')
- {
- skip_addr_chars += 4;
- s += 4;
- }
- }
-
- info->insn_info_valid = 0;
-
- done_dot = FALSE;
- addr_offset = start_offset;
- while (addr_offset < stop_offset)
- {
- bfd_vma z;
- bfd_boolean need_nl = FALSE;
- int previous_octets;
-
- /* Remember the length of the previous instruction. */
- previous_octets = octets;
- octets = 0;
-
- /* If we see more than SKIP_ZEROES octets of zeroes, we just
- print `...'. */
- for (z = addr_offset * opb; z < stop_offset * opb; z++)
- if (data[z] != 0)
- break;
- if (! disassemble_zeroes
- && (info->insn_info_valid == 0
- || info->branch_delay_insns == 0)
- && (z - addr_offset * opb >= skip_zeroes
- || (z == stop_offset * opb &&
- z - addr_offset * opb < skip_zeroes_at_end)))
- {
- printf ("\t...\n");
-
- /* If there are more nonzero octets to follow, we only skip
- zeroes in multiples of 4, to try to avoid running over
- the start of an instruction which happens to start with
- zero. */
- if (z != stop_offset * opb)
- z = addr_offset * opb + ((z - addr_offset * opb) &~ 3);
-
- octets = z - addr_offset * opb;
- }
- else
- {
- char buf[50];
- int bpc = 0;
- int pb = 0;
-
- done_dot = FALSE;
-
- if (with_line_numbers || with_source_code)
- show_line (aux->abfd, section, addr_offset);
-
- if (! prefix_addresses)
- {
- char *s;
-
- bfd_sprintf_vma (aux->abfd, buf, section->vma + addr_offset);
- for (s = buf + skip_addr_chars; *s == '0'; s++)
- *s = ' ';
- if (*s == '\0')
- *--s = '0';
- printf ("%s:\t", buf + skip_addr_chars);
- }
- else
- {
- aux->require_sec = TRUE;
- objdump_print_address (section->vma + addr_offset, info);
- aux->require_sec = FALSE;
- putchar (' ');
- }
-
- if (insns)
- {
- sfile.pos = 0;
- info->fprintf_func = (fprintf_ftype) objdump_sprintf;
- info->stream = &sfile;
- info->bytes_per_line = 0;
- info->bytes_per_chunk = 0;
- info->flags = 0;
-
- if (info->disassembler_needs_relocs
- && *relppp < relppend)
- {
- bfd_signed_vma distance_to_rel;
-
- distance_to_rel = (**relppp)->address
- - (rel_offset + addr_offset);
-
- /* Check to see if the current reloc is associated with
- the instruction that we are about to disassemble. */
- if (distance_to_rel == 0
- /* FIXME: This is wrong. We are trying to catch
- relocs that are addressed part way through the
- current instruction, as might happen with a packed
- VLIW instruction. Unfortunately we do not know the
- length of the current instruction since we have not
- disassembled it yet. Instead we take a guess based
- upon the length of the previous instruction. The
- proper solution is to have a new target-specific
- disassembler function which just returns the length
- of an instruction at a given address without trying
- to display its disassembly. */
- || (distance_to_rel > 0
- && distance_to_rel < (bfd_signed_vma) (previous_octets/ opb)))
- {
- info->flags = INSN_HAS_RELOC;
- aux->reloc = **relppp;
- }
- else
- aux->reloc = NULL;
- }
-
- octets = (*disassemble_fn) (section->vma + addr_offset, info);
- info->fprintf_func = (fprintf_ftype) fprintf;
- info->stream = stdout;
- if (info->bytes_per_line != 0)
- octets_per_line = info->bytes_per_line;
- if (octets < 0)
- {
- if (sfile.pos)
- printf ("%s\n", sfile.buffer);
- break;
- }
- }
- else
- {
- bfd_vma j;
-
- octets = octets_per_line;
- if (addr_offset + octets / opb > stop_offset)
- octets = (stop_offset - addr_offset) * opb;
-
- for (j = addr_offset * opb; j < addr_offset * opb + octets; ++j)
- {
- if (ISPRINT (data[j]))
- buf[j - addr_offset * opb] = data[j];
- else
- buf[j - addr_offset * opb] = '.';
- }
- buf[j - addr_offset * opb] = '\0';
- }
-
- if (prefix_addresses
- ? show_raw_insn > 0
- : show_raw_insn >= 0)
- {
- bfd_vma j;
-
- /* If ! prefix_addresses and ! wide_output, we print
- octets_per_line octets per line. */
- pb = octets;
- if (pb > octets_per_line && ! prefix_addresses && ! wide_output)
- pb = octets_per_line;
-
- if (info->bytes_per_chunk)
- bpc = info->bytes_per_chunk;
- else
- bpc = 1;
-
- for (j = addr_offset * opb; j < addr_offset * opb + pb; j += bpc)
- {
- int k;
-
- if (bpc > 1 && info->display_endian == BFD_ENDIAN_LITTLE)
- {
- for (k = bpc - 1; k >= 0; k--)
- printf ("%02x", (unsigned) data[j + k]);
- putchar (' ');
- }
- else
- {
- for (k = 0; k < bpc; k++)
- printf ("%02x", (unsigned) data[j + k]);
- putchar (' ');
- }
- }
-
- for (; pb < octets_per_line; pb += bpc)
- {
- int k;
-
- for (k = 0; k < bpc; k++)
- printf (" ");
- putchar (' ');
- }
-
- /* Separate raw data from instruction by extra space. */
- if (insns)
- putchar ('\t');
- else
- printf (" ");
- }
-
- if (! insns)
- printf ("%s", buf);
- else if (sfile.pos)
- printf ("%s", sfile.buffer);
-
- if (prefix_addresses
- ? show_raw_insn > 0
- : show_raw_insn >= 0)
- {
- while (pb < octets)
- {
- bfd_vma j;
- char *s;
-
- putchar ('\n');
- j = addr_offset * opb + pb;
-
- bfd_sprintf_vma (aux->abfd, buf, section->vma + j / opb);
- for (s = buf + skip_addr_chars; *s == '0'; s++)
- *s = ' ';
- if (*s == '\0')
- *--s = '0';
- printf ("%s:\t", buf + skip_addr_chars);
-
- pb += octets_per_line;
- if (pb > octets)
- pb = octets;
- for (; j < addr_offset * opb + pb; j += bpc)
- {
- int k;
-
- if (bpc > 1 && info->display_endian == BFD_ENDIAN_LITTLE)
- {
- for (k = bpc - 1; k >= 0; k--)
- printf ("%02x", (unsigned) data[j + k]);
- putchar (' ');
- }
- else
- {
- for (k = 0; k < bpc; k++)
- printf ("%02x", (unsigned) data[j + k]);
- putchar (' ');
- }
- }
- }
- }
-
- if (!wide_output)
- putchar ('\n');
- else
- need_nl = TRUE;
- }
-
- while ((*relppp) < relppend
- && (**relppp)->address < rel_offset + addr_offset + octets / opb)
- {
- if (dump_reloc_info || dump_dynamic_reloc_info)
- {
- arelent *q;
-
- q = **relppp;
-
- if (wide_output)
- putchar ('\t');
- else
- printf ("\t\t\t");
-
- objdump_print_value (section->vma - rel_offset + q->address,
- info, TRUE);
-
- if (q->howto == NULL)
- printf (": *unknown*\t");
- else if (q->howto->name)
- printf (": %s\t", q->howto->name);
- else
- printf (": %d\t", q->howto->type);
-
- if (q->sym_ptr_ptr == NULL || *q->sym_ptr_ptr == NULL)
- printf ("*unknown*");
- else
- {
- const char *sym_name;
-
- sym_name = bfd_asymbol_name (*q->sym_ptr_ptr);
- if (sym_name != NULL && *sym_name != '\0')
- objdump_print_symname (aux->abfd, info, *q->sym_ptr_ptr);
- else
- {
- asection *sym_sec;
-
- sym_sec = bfd_get_section (*q->sym_ptr_ptr);
- sym_name = bfd_get_section_name (aux->abfd, sym_sec);
- if (sym_name == NULL || *sym_name == '\0')
- sym_name = "*unknown*";
- printf ("%s", sym_name);
- }
- }
-
- if (q->addend)
- {
- printf ("+0x");
- objdump_print_value (q->addend, info, TRUE);
- }
-
- printf ("\n");
- need_nl = FALSE;
- }
- ++(*relppp);
- }
-
- if (need_nl)
- printf ("\n");
-
- addr_offset += octets / opb;
- }
-
- free (sfile.buffer);
-}
-
-static void
-disassemble_section (bfd *abfd, asection *section, void *info)
-{
- struct disassemble_info * pinfo = (struct disassemble_info *) info;
- struct objdump_disasm_info * paux;
- unsigned int opb = pinfo->octets_per_byte;
- bfd_byte * data = NULL;
- bfd_size_type datasize = 0;
- arelent ** rel_pp = NULL;
- arelent ** rel_ppstart = NULL;
- arelent ** rel_ppend;
- unsigned long stop_offset;
- asymbol * sym = NULL;
- long place = 0;
- long rel_count;
- bfd_vma rel_offset;
- unsigned long addr_offset;
-
- /* Sections that do not contain machine
- code are not normally disassembled. */
- if (! disassemble_all
- && only == NULL
- && ((section->flags & (SEC_CODE | SEC_HAS_CONTENTS))
- != (SEC_CODE | SEC_HAS_CONTENTS)))
- return;
-
- if (! process_section_p (section))
- return;
-
- datasize = bfd_get_section_size (section);
- if (datasize == 0)
- return;
-
- /* Decide which set of relocs to use. Load them if necessary. */
- paux = (struct objdump_disasm_info *) pinfo->application_data;
- if (paux->dynrelbuf)
- {
- rel_pp = paux->dynrelbuf;
- rel_count = paux->dynrelcount;
- /* Dynamic reloc addresses are absolute, non-dynamic are section
- relative. REL_OFFSET specifies the reloc address corresponding
- to the start of this section. */
- rel_offset = section->vma;
- }
- else
- {
- rel_count = 0;
- rel_pp = NULL;
- rel_offset = 0;
-
- if ((section->flags & SEC_RELOC) != 0
- && (dump_reloc_info || pinfo->disassembler_needs_relocs))
- {
- long relsize;
-
- relsize = bfd_get_reloc_upper_bound (abfd, section);
- if (relsize < 0)
- bfd_fatal (bfd_get_filename (abfd));
-
- if (relsize > 0)
- {
- rel_ppstart = rel_pp = xmalloc (relsize);
- rel_count = bfd_canonicalize_reloc (abfd, section, rel_pp, syms);
- if (rel_count < 0)
- bfd_fatal (bfd_get_filename (abfd));
-
- /* Sort the relocs by address. */
- qsort (rel_pp, rel_count, sizeof (arelent *), compare_relocs);
- }
- }
-
- }
- rel_ppend = rel_pp + rel_count;
-
- data = xmalloc (datasize);
-
- bfd_get_section_contents (abfd, section, data, 0, datasize);
-
- paux->sec = section;
- pinfo->buffer = data;
- pinfo->buffer_vma = section->vma;
- pinfo->buffer_length = datasize;
- pinfo->section = section;
-
- if (start_address == (bfd_vma) -1
- || start_address < pinfo->buffer_vma)
- addr_offset = 0;
- else
- addr_offset = start_address - pinfo->buffer_vma;
-
- if (stop_address == (bfd_vma) -1)
- stop_offset = datasize / opb;
- else
- {
- if (stop_address < pinfo->buffer_vma)
- stop_offset = 0;
- else
- stop_offset = stop_address - pinfo->buffer_vma;
- if (stop_offset > pinfo->buffer_length / opb)
- stop_offset = pinfo->buffer_length / opb;
- }
-
- /* Skip over the relocs belonging to addresses below the
- start address. */
- while (rel_pp < rel_ppend
- && (*rel_pp)->address < rel_offset + addr_offset)
- ++rel_pp;
-
- printf (_("Disassembly of section %s:\n"), section->name);
-
- /* Find the nearest symbol forwards from our current position. */
- paux->require_sec = TRUE;
- sym = find_symbol_for_address (section->vma + addr_offset, info, &place);
- paux->require_sec = FALSE;
-
- /* Disassemble a block of instructions up to the address associated with
- the symbol we have just found. Then print the symbol and find the
- next symbol on. Repeat until we have disassembled the entire section
- or we have reached the end of the address range we are interested in. */
- while (addr_offset < stop_offset)
- {
- bfd_vma addr;
- asymbol *nextsym;
- unsigned long nextstop_offset;
- bfd_boolean insns;
-
- addr = section->vma + addr_offset;
-
- if (sym != NULL && bfd_asymbol_value (sym) <= addr)
- {
- int x;
-
- for (x = place;
- (x < sorted_symcount
- && (bfd_asymbol_value (sorted_syms[x]) <= addr));
- ++x)
- continue;
-
- pinfo->symbols = sorted_syms + place;
- pinfo->num_symbols = x - place;
- }
- else
- {
- pinfo->symbols = NULL;
- pinfo->num_symbols = 0;
- }
-
- if (! prefix_addresses)
- {
- pinfo->fprintf_func (pinfo->stream, "\n");
- objdump_print_addr_with_sym (abfd, section, sym, addr,
- pinfo, FALSE);
- pinfo->fprintf_func (pinfo->stream, ":\n");
- }
-
- if (sym != NULL && bfd_asymbol_value (sym) > addr)
- nextsym = sym;
- else if (sym == NULL)
- nextsym = NULL;
- else
- {
-#define is_valid_next_sym(SYM) \
- ((SYM)->section == section \
- && (bfd_asymbol_value (SYM) > bfd_asymbol_value (sym)) \
- && pinfo->symbol_is_valid (SYM, pinfo))
-
- /* Search forward for the next appropriate symbol in
- SECTION. Note that all the symbols are sorted
- together into one big array, and that some sections
- may have overlapping addresses. */
- while (place < sorted_symcount
- && ! is_valid_next_sym (sorted_syms [place]))
- ++place;
-
- if (place >= sorted_symcount)
- nextsym = NULL;
- else
- nextsym = sorted_syms[place];
- }
-
- if (sym != NULL && bfd_asymbol_value (sym) > addr)
- nextstop_offset = bfd_asymbol_value (sym) - section->vma;
- else if (nextsym == NULL)
- nextstop_offset = stop_offset;
- else
- nextstop_offset = bfd_asymbol_value (nextsym) - section->vma;
-
- if (nextstop_offset > stop_offset)
- nextstop_offset = stop_offset;
-
- /* If a symbol is explicitly marked as being an object
- rather than a function, just dump the bytes without
- disassembling them. */
- if (disassemble_all
- || sym == NULL
- || bfd_asymbol_value (sym) > addr
- || ((sym->flags & BSF_OBJECT) == 0
- && (strstr (bfd_asymbol_name (sym), "gnu_compiled")
- == NULL)
- && (strstr (bfd_asymbol_name (sym), "gcc2_compiled")
- == NULL))
- || (sym->flags & BSF_FUNCTION) != 0)
- insns = TRUE;
- else
- insns = FALSE;
-
- disassemble_bytes (pinfo, paux->disassemble_fn, insns, data,
- addr_offset, nextstop_offset,
- rel_offset, &rel_pp, rel_ppend);
-
- addr_offset = nextstop_offset;
- sym = nextsym;
- }
-
- free (data);
-
- if (rel_ppstart != NULL)
- free (rel_ppstart);
-}
-
-/* Disassemble the contents of an object file. */
-
-static void
-disassemble_data (bfd *abfd)
-{
- struct disassemble_info disasm_info;
- struct objdump_disasm_info aux;
- long i;
-
- print_files = NULL;
- prev_functionname = NULL;
- prev_line = -1;
-
- /* We make a copy of syms to sort. We don't want to sort syms
- because that will screw up the relocs. */
- sorted_symcount = symcount ? symcount : dynsymcount;
- sorted_syms = xmalloc ((sorted_symcount + synthcount) * sizeof (asymbol *));
- memcpy (sorted_syms, symcount ? syms : dynsyms,
- sorted_symcount * sizeof (asymbol *));
-
- sorted_symcount = remove_useless_symbols (sorted_syms, sorted_symcount);
-
- for (i = 0; i < synthcount; ++i)
- {
- sorted_syms[sorted_symcount] = synthsyms + i;
- ++sorted_symcount;
- }
-
- /* Sort the symbols into section and symbol order. */
- qsort (sorted_syms, sorted_symcount, sizeof (asymbol *), compare_symbols);
-
- init_disassemble_info (&disasm_info, stdout, (fprintf_ftype) fprintf);
-
- disasm_info.application_data = (void *) &aux;
- aux.abfd = abfd;
- aux.require_sec = FALSE;
- aux.dynrelbuf = NULL;
- aux.dynrelcount = 0;
- aux.reloc = NULL;
-
- disasm_info.print_address_func = objdump_print_address;
- disasm_info.symbol_at_address_func = objdump_symbol_at_address;
-
- if (machine != NULL)
- {
- const bfd_arch_info_type *info = bfd_scan_arch (machine);
-
- if (info == NULL)
- fatal (_("Can't use supplied machine %s"), machine);
-
- abfd->arch_info = info;
- }
-
- if (endian != BFD_ENDIAN_UNKNOWN)
- {
- struct bfd_target *xvec;
-
- xvec = xmalloc (sizeof (struct bfd_target));
- memcpy (xvec, abfd->xvec, sizeof (struct bfd_target));
- xvec->byteorder = endian;
- abfd->xvec = xvec;
- }
-
- /* Use libopcodes to locate a suitable disassembler. */
- aux.disassemble_fn = disassembler (abfd);
- if (!aux.disassemble_fn)
- {
- non_fatal (_("Can't disassemble for architecture %s\n"),
- bfd_printable_arch_mach (bfd_get_arch (abfd), 0));
- exit_status = 1;
- return;
- }
-
- disasm_info.flavour = bfd_get_flavour (abfd);
- disasm_info.arch = bfd_get_arch (abfd);
- disasm_info.mach = bfd_get_mach (abfd);
- disasm_info.disassembler_options = disassembler_options;
- disasm_info.octets_per_byte = bfd_octets_per_byte (abfd);
- disasm_info.skip_zeroes = DEFAULT_SKIP_ZEROES;
- disasm_info.skip_zeroes_at_end = DEFAULT_SKIP_ZEROES_AT_END;
- disasm_info.disassembler_needs_relocs = FALSE;
-
- if (bfd_big_endian (abfd))
- disasm_info.display_endian = disasm_info.endian = BFD_ENDIAN_BIG;
- else if (bfd_little_endian (abfd))
- disasm_info.display_endian = disasm_info.endian = BFD_ENDIAN_LITTLE;
- else
- /* ??? Aborting here seems too drastic. We could default to big or little
- instead. */
- disasm_info.endian = BFD_ENDIAN_UNKNOWN;
-
- /* Allow the target to customize the info structure. */
- disassemble_init_for_target (& disasm_info);
-
- /* Pre-load the dynamic relocs if we are going
- to be dumping them along with the disassembly. */
- if (dump_dynamic_reloc_info)
- {
- long relsize = bfd_get_dynamic_reloc_upper_bound (abfd);
-
- if (relsize < 0)
- bfd_fatal (bfd_get_filename (abfd));
-
- if (relsize > 0)
- {
- aux.dynrelbuf = xmalloc (relsize);
- aux.dynrelcount = bfd_canonicalize_dynamic_reloc (abfd,
- aux.dynrelbuf,
- dynsyms);
- if (aux.dynrelcount < 0)
- bfd_fatal (bfd_get_filename (abfd));
-
- /* Sort the relocs by address. */
- qsort (aux.dynrelbuf, aux.dynrelcount, sizeof (arelent *),
- compare_relocs);
- }
- }
-
- bfd_map_over_sections (abfd, disassemble_section, & disasm_info);
-
- if (aux.dynrelbuf != NULL)
- free (aux.dynrelbuf);
- free (sorted_syms);
-}
-
-int
-load_debug_section (enum dwarf_section_display_enum debug, void *file)
-{
- struct dwarf_section *section = &debug_displays [debug].section;
- bfd *abfd = file;
- asection *sec;
- bfd_boolean ret;
-
- /* If it is already loaded, do nothing. */
- if (section->start != NULL)
- return 1;
-
- /* Locate the debug section. */
- sec = bfd_get_section_by_name (abfd, section->name);
- if (sec == NULL)
- return 0;
-
- section->address = bfd_get_section_vma (abfd, sec);
- section->size = bfd_get_section_size (sec);
- section->start = xmalloc (section->size);
-
- if (is_relocatable && debug_displays [debug].relocate)
- ret = bfd_simple_get_relocated_section_contents (abfd,
- sec,
- section->start,
- syms) != NULL;
- else
- ret = bfd_get_section_contents (abfd, sec, section->start, 0,
- section->size);
-
- if (!ret)
- {
- free_debug_section (debug);
- printf (_("\nCan't get contents for section '%s'.\n"),
- section->name);
- }
-
- return ret;
-}
-
-void
-free_debug_section (enum dwarf_section_display_enum debug)
-{
- struct dwarf_section *section = &debug_displays [debug].section;
-
- if (section->start == NULL)
- return;
-
- free ((char *) section->start);
- section->start = NULL;
- section->address = 0;
- section->size = 0;
-}
-
-static void
-dump_dwarf_section (bfd *abfd, asection *section,
- void *arg ATTRIBUTE_UNUSED)
-{
- const char *name = bfd_get_section_name (abfd, section);
- const char *match;
- enum dwarf_section_display_enum i;
-
- if (strncmp (name, ".gnu.linkonce.wi.", 17) == 0)
- match = ".debug_info";
- else
- match = name;
-
- for (i = 0; i < max; i++)
- if (strcmp (debug_displays[i].section.name, match) == 0)
- {
- if (!debug_displays[i].eh_frame)
- {
- struct dwarf_section *sec = &debug_displays [i].section;
-
- if (load_debug_section (i, abfd))
- {
- debug_displays[i].display (sec, abfd);
-
- if (i != info && i != abbrev)
- free_debug_section (i);
- }
- }
- break;
- }
-}
-
-static const char *mach_o_dwarf_sections [] = {
- "LC_SEGMENT.__DWARFA.__debug_abbrev", /* .debug_abbrev */
- "LC_SEGMENT.__DWARFA.__debug_aranges", /* .debug_aranges */
- "LC_SEGMENT.__DWARFA.__debug_frame", /* .debug_frame */
- "LC_SEGMENT.__DWARFA.__debug_info", /* .debug_info */
- "LC_SEGMENT.__DWARFA.__debug_line", /* .debug_line */
- "LC_SEGMENT.__DWARFA.__debug_pubnames", /* .debug_pubnames */
- ".eh_frame", /* .eh_frame */
- "LC_SEGMENT.__DWARFA.__debug_macinfo", /* .debug_macinfo */
- "LC_SEGMENT.__DWARFA.__debug_str", /* .debug_str */
- "LC_SEGMENT.__DWARFA.__debug_loc", /* .debug_loc */
- "LC_SEGMENT.__DWARFA.__debug_pubtypes", /* .debug_pubtypes */
- "LC_SEGMENT.__DWARFA.__debug_ranges", /* .debug_ranges */
- "LC_SEGMENT.__DWARFA.__debug_static_func", /* .debug_static_func */
- "LC_SEGMENT.__DWARFA.__debug_static_vars", /* .debug_static_vars */
- "LC_SEGMENT.__DWARFA.__debug_types", /* .debug_types */
- "LC_SEGMENT.__DWARFA.__debug_weaknames" /* .debug_weaknames */
-};
-
-static const char *generic_dwarf_sections [max];
-
-static void
-check_mach_o_dwarf (bfd *abfd)
-{
- static enum bfd_flavour old_flavour = bfd_target_unknown_flavour;
- enum bfd_flavour current_flavour = bfd_get_flavour (abfd);
- enum dwarf_section_display_enum i;
-
- if (generic_dwarf_sections [0] == NULL)
- for (i = 0; i < max; i++)
- generic_dwarf_sections [i] = debug_displays[i].section.name;
-
- if (old_flavour != current_flavour)
- {
- if (current_flavour == bfd_target_mach_o_flavour)
- for (i = 0; i < max; i++)
- debug_displays[i].section.name = mach_o_dwarf_sections [i];
- else if (old_flavour == bfd_target_mach_o_flavour)
- for (i = 0; i < max; i++)
- debug_displays[i].section.name = generic_dwarf_sections [i];
-
- old_flavour = current_flavour;
- }
-}
-
-/* Dump the dwarf debugging information. */
-
-static void
-dump_dwarf (bfd *abfd)
-{
- is_relocatable = ((abfd->flags & (HAS_RELOC | EXEC_P | DYNAMIC))
- == HAS_RELOC);
-
- /* FIXME: bfd_get_arch_size may return -1. We assume that 64bit
- targets will return 64. */
- eh_addr_size = bfd_get_arch_size (abfd) == 64 ? 8 : 4;
-
- if (bfd_big_endian (abfd))
- byte_get = byte_get_big_endian;
- else if (bfd_little_endian (abfd))
- byte_get = byte_get_little_endian;
- else
- abort ();
-
- check_mach_o_dwarf (abfd);
-
- bfd_map_over_sections (abfd, dump_dwarf_section, NULL);
-
- free_debug_memory ();
-}
-
-/* Read ABFD's stabs section STABSECT_NAME, and return a pointer to
- it. Return NULL on failure. */
-
-static char *
-read_section_stabs (bfd *abfd, const char *sect_name, bfd_size_type *size_ptr)
-{
- asection *stabsect;
- bfd_size_type size;
- char *contents;
-
- stabsect = bfd_get_section_by_name (abfd, sect_name);
- if (stabsect == NULL)
- {
- printf (_("No %s section present\n\n"), sect_name);
- return FALSE;
- }
-
- size = bfd_section_size (abfd, stabsect);
- contents = xmalloc (size);
-
- if (! bfd_get_section_contents (abfd, stabsect, contents, 0, size))
- {
- non_fatal (_("Reading %s section of %s failed: %s"),
- sect_name, bfd_get_filename (abfd),
- bfd_errmsg (bfd_get_error ()));
- free (contents);
- exit_status = 1;
- return NULL;
- }
-
- *size_ptr = size;
-
- return contents;
-}
-
-/* Stabs entries use a 12 byte format:
- 4 byte string table index
- 1 byte stab type
- 1 byte stab other field
- 2 byte stab desc field
- 4 byte stab value
- FIXME: This will have to change for a 64 bit object format. */
-
-#define STRDXOFF (0)
-#define TYPEOFF (4)
-#define OTHEROFF (5)
-#define DESCOFF (6)
-#define VALOFF (8)
-#define STABSIZE (12)
-
-/* Print ABFD's stabs section STABSECT_NAME (in `stabs'),
- using string table section STRSECT_NAME (in `strtab'). */
-
-static void
-print_section_stabs (bfd *abfd,
- const char *stabsect_name,
- unsigned *string_offset_ptr)
-{
- int i;
- unsigned file_string_table_offset = 0;
- unsigned next_file_string_table_offset = *string_offset_ptr;
- bfd_byte *stabp, *stabs_end;
-
- stabp = stabs;
- stabs_end = stabp + stab_size;
-
- printf (_("Contents of %s section:\n\n"), stabsect_name);
- printf ("Symnum n_type n_othr n_desc n_value n_strx String\n");
-
- /* Loop through all symbols and print them.
-
- We start the index at -1 because there is a dummy symbol on
- the front of stabs-in-{coff,elf} sections that supplies sizes. */
- for (i = -1; stabp < stabs_end; stabp += STABSIZE, i++)
- {
- const char *name;
- unsigned long strx;
- unsigned char type, other;
- unsigned short desc;
- bfd_vma value;
-
- strx = bfd_h_get_32 (abfd, stabp + STRDXOFF);
- type = bfd_h_get_8 (abfd, stabp + TYPEOFF);
- other = bfd_h_get_8 (abfd, stabp + OTHEROFF);
- desc = bfd_h_get_16 (abfd, stabp + DESCOFF);
- value = bfd_h_get_32 (abfd, stabp + VALOFF);
-
- printf ("\n%-6d ", i);
- /* Either print the stab name, or, if unnamed, print its number
- again (makes consistent formatting for tools like awk). */
- name = bfd_get_stab_name (type);
- if (name != NULL)
- printf ("%-6s", name);
- else if (type == N_UNDF)
- printf ("HdrSym");
- else
- printf ("%-6d", type);
- printf (" %-6d %-6d ", other, desc);
- bfd_printf_vma (abfd, value);
- printf (" %-6lu", strx);
-
- /* Symbols with type == 0 (N_UNDF) specify the length of the
- string table associated with this file. We use that info
- to know how to relocate the *next* file's string table indices. */
- if (type == N_UNDF)
- {
- file_string_table_offset = next_file_string_table_offset;
- next_file_string_table_offset += value;
- }
- else
- {
- /* Using the (possibly updated) string table offset, print the
- string (if any) associated with this symbol. */
- if ((strx + file_string_table_offset) < stabstr_size)
- printf (" %s", &strtab[strx + file_string_table_offset]);
- else
- printf (" *");
- }
- }
- printf ("\n\n");
- *string_offset_ptr = next_file_string_table_offset;
-}
-
-typedef struct
-{
- const char * section_name;
- const char * string_section_name;
- unsigned string_offset;
-}
-stab_section_names;
-
-static void
-find_stabs_section (bfd *abfd, asection *section, void *names)
-{
- int len;
- stab_section_names * sought = (stab_section_names *) names;
-
- /* Check for section names for which stabsect_name is a prefix, to
- handle .stab.N, etc. */
- len = strlen (sought->section_name);
-
- /* If the prefix matches, and the files section name ends with a
- nul or a digit, then we match. I.e., we want either an exact
- match or a section followed by a number. */
- if (strncmp (sought->section_name, section->name, len) == 0
- && (section->name[len] == 0
- || (section->name[len] == '.' && ISDIGIT (section->name[len + 1]))))
- {
- if (strtab == NULL)
- strtab = read_section_stabs (abfd, sought->string_section_name,
- &stabstr_size);
-
- if (strtab)
- {
- stabs = (bfd_byte *) read_section_stabs (abfd, section->name,
- &stab_size);
- if (stabs)
- print_section_stabs (abfd, section->name, &sought->string_offset);
- }
- }
-}
-
-static void
-dump_stabs_section (bfd *abfd, char *stabsect_name, char *strsect_name)
-{
- stab_section_names s;
-
- s.section_name = stabsect_name;
- s.string_section_name = strsect_name;
- s.string_offset = 0;
-
- bfd_map_over_sections (abfd, find_stabs_section, & s);
-
- free (strtab);
- strtab = NULL;
-}
-
-/* Dump the any sections containing stabs debugging information. */
-
-static void
-dump_stabs (bfd *abfd)
-{
- dump_stabs_section (abfd, ".stab", ".stabstr");
- dump_stabs_section (abfd, ".stab.excl", ".stab.exclstr");
- dump_stabs_section (abfd, ".stab.index", ".stab.indexstr");
- dump_stabs_section (abfd, "$GDB_SYMBOLS$", "$GDB_STRINGS$");
-}
-
-static void
-dump_bfd_header (bfd *abfd)
-{
- char *comma = "";
-
- printf (_("architecture: %s, "),
- bfd_printable_arch_mach (bfd_get_arch (abfd),
- bfd_get_mach (abfd)));
- printf (_("flags 0x%08x:\n"), abfd->flags);
-
-#define PF(x, y) if (abfd->flags & x) {printf("%s%s", comma, y); comma=", ";}
- PF (HAS_RELOC, "HAS_RELOC");
- PF (EXEC_P, "EXEC_P");
- PF (HAS_LINENO, "HAS_LINENO");
- PF (HAS_DEBUG, "HAS_DEBUG");
- PF (HAS_SYMS, "HAS_SYMS");
- PF (HAS_LOCALS, "HAS_LOCALS");
- PF (DYNAMIC, "DYNAMIC");
- PF (WP_TEXT, "WP_TEXT");
- PF (D_PAGED, "D_PAGED");
- PF (BFD_IS_RELAXABLE, "BFD_IS_RELAXABLE");
- PF (HAS_LOAD_PAGE, "HAS_LOAD_PAGE");
- printf (_("\nstart address 0x"));
- bfd_printf_vma (abfd, abfd->start_address);
- printf ("\n");
-}
-
-
-static void
-dump_bfd_private_header (bfd *abfd)
-{
- bfd_print_private_bfd_data (abfd, stdout);
-}
-
-
-/* Display a section in hexadecimal format with associated characters.
- Each line prefixed by the zero padded address. */
-
-static void
-dump_section (bfd *abfd, asection *section, void *dummy ATTRIBUTE_UNUSED)
-{
- bfd_byte *data = 0;
- bfd_size_type datasize;
- bfd_size_type addr_offset;
- bfd_size_type start_offset;
- bfd_size_type stop_offset;
- unsigned int opb = bfd_octets_per_byte (abfd);
- /* Bytes per line. */
- const int onaline = 16;
- char buf[64];
- int count;
- int width;
-
- if ((section->flags & SEC_HAS_CONTENTS) == 0)
- return;
-
- if (! process_section_p (section))
- return;
-
- if ((datasize = bfd_section_size (abfd, section)) == 0)
- return;
-
- printf (_("Contents of section %s:\n"), section->name);
-
- data = xmalloc (datasize);
-
- bfd_get_section_contents (abfd, section, data, 0, datasize);
-
- /* Compute the address range to display. */
- if (start_address == (bfd_vma) -1
- || start_address < section->vma)
- start_offset = 0;
- else
- start_offset = start_address - section->vma;
-
- if (stop_address == (bfd_vma) -1)
- stop_offset = datasize / opb;
- else
- {
- if (stop_address < section->vma)
- stop_offset = 0;
- else
- stop_offset = stop_address - section->vma;
-
- if (stop_offset > datasize / opb)
- stop_offset = datasize / opb;
- }
-
- width = 4;
-
- bfd_sprintf_vma (abfd, buf, start_offset + section->vma);
- if (strlen (buf) >= sizeof (buf))
- abort ();
-
- count = 0;
- while (buf[count] == '0' && buf[count+1] != '\0')
- count++;
- count = strlen (buf) - count;
- if (count > width)
- width = count;
-
- bfd_sprintf_vma (abfd, buf, stop_offset + section->vma - 1);
- if (strlen (buf) >= sizeof (buf))
- abort ();
-
- count = 0;
- while (buf[count] == '0' && buf[count+1] != '\0')
- count++;
- count = strlen (buf) - count;
- if (count > width)
- width = count;
-
- for (addr_offset = start_offset;
- addr_offset < stop_offset; addr_offset += onaline / opb)
- {
- bfd_size_type j;
-
- bfd_sprintf_vma (abfd, buf, (addr_offset + section->vma));
- count = strlen (buf);
- if ((size_t) count >= sizeof (buf))
- abort ();
-
- putchar (' ');
- while (count < width)
- {
- putchar ('0');
- count++;
- }
- fputs (buf + count - width, stdout);
- putchar (' ');
-
- for (j = addr_offset * opb;
- j < addr_offset * opb + onaline; j++)
- {
- if (j < stop_offset * opb)
- printf ("%02x", (unsigned) (data[j]));
- else
- printf (" ");
- if ((j & 3) == 3)
- printf (" ");
- }
-
- printf (" ");
- for (j = addr_offset * opb;
- j < addr_offset * opb + onaline; j++)
- {
- if (j >= stop_offset * opb)
- printf (" ");
- else
- printf ("%c", ISPRINT (data[j]) ? data[j] : '.');
- }
- putchar ('\n');
- }
- free (data);
-}
-
-/* Actually display the various requested regions. */
-
-static void
-dump_data (bfd *abfd)
-{
- bfd_map_over_sections (abfd, dump_section, NULL);
-}
-
-/* Should perhaps share code and display with nm? */
-
-static void
-dump_symbols (bfd *abfd ATTRIBUTE_UNUSED, bfd_boolean dynamic)
-{
- asymbol **current;
- long max;
- long count;
-
- if (dynamic)
- {
- current = dynsyms;
- max = dynsymcount;
- printf ("DYNAMIC SYMBOL TABLE:\n");
- }
- else
- {
- current = syms;
- max = symcount;
- printf ("SYMBOL TABLE:\n");
- }
-
- if (max == 0)
- printf (_("no symbols\n"));
-
- for (count = 0; count < max; count++)
- {
- bfd *cur_bfd;
-
- if (*current == NULL)
- printf (_("no information for symbol number %ld\n"), count);
-
- else if ((cur_bfd = bfd_asymbol_bfd (*current)) == NULL)
- printf (_("could not determine the type of symbol number %ld\n"),
- count);
-
- else if (process_section_p ((* current)->section)
- && (dump_special_syms
- || !bfd_is_target_special_symbol (cur_bfd, *current)))
- {
- const char *name = (*current)->name;
-
- if (do_demangle && name != NULL && *name != '\0')
- {
- char *alloc;
-
- /* If we want to demangle the name, we demangle it
- here, and temporarily clobber it while calling
- bfd_print_symbol. FIXME: This is a gross hack. */
- alloc = demangle (cur_bfd, name);
- (*current)->name = alloc;
- bfd_print_symbol (cur_bfd, stdout, *current,
- bfd_print_symbol_all);
- (*current)->name = name;
- free (alloc);
- }
- else
- bfd_print_symbol (cur_bfd, stdout, *current,
- bfd_print_symbol_all);
- printf ("\n");
- }
-
- current++;
- }
- printf ("\n\n");
-}
-
-static void
-dump_reloc_set (bfd *abfd, asection *sec, arelent **relpp, long relcount)
-{
- arelent **p;
- char *last_filename, *last_functionname;
- unsigned int last_line;
-
- /* Get column headers lined up reasonably. */
- {
- static int width;
-
- if (width == 0)
- {
- char buf[30];
-
- bfd_sprintf_vma (abfd, buf, (bfd_vma) -1);
- width = strlen (buf) - 7;
- }
- printf ("OFFSET %*s TYPE %*s VALUE \n", width, "", 12, "");
- }
-
- last_filename = NULL;
- last_functionname = NULL;
- last_line = 0;
-
- for (p = relpp; relcount && *p != NULL; p++, relcount--)
- {
- arelent *q = *p;
- const char *filename, *functionname;
- unsigned int line;
- const char *sym_name;
- const char *section_name;
-
- if (start_address != (bfd_vma) -1
- && q->address < start_address)
- continue;
- if (stop_address != (bfd_vma) -1
- && q->address > stop_address)
- continue;
-
- if (with_line_numbers
- && sec != NULL
- && bfd_find_nearest_line (abfd, sec, syms, q->address,
- &filename, &functionname, &line))
- {
- if (functionname != NULL
- && (last_functionname == NULL
- || strcmp (functionname, last_functionname) != 0))
- {
- printf ("%s():\n", functionname);
- if (last_functionname != NULL)
- free (last_functionname);
- last_functionname = xstrdup (functionname);
- }
-
- if (line > 0
- && (line != last_line
- || (filename != NULL
- && last_filename != NULL
- && strcmp (filename, last_filename) != 0)))
- {
- printf ("%s:%u\n", filename == NULL ? "???" : filename, line);
- last_line = line;
- if (last_filename != NULL)
- free (last_filename);
- if (filename == NULL)
- last_filename = NULL;
- else
- last_filename = xstrdup (filename);
- }
- }
-
- if (q->sym_ptr_ptr && *q->sym_ptr_ptr)
- {
- sym_name = (*(q->sym_ptr_ptr))->name;
- section_name = (*(q->sym_ptr_ptr))->section->name;
- }
- else
- {
- sym_name = NULL;
- section_name = NULL;
- }
-
- bfd_printf_vma (abfd, q->address);
- if (q->howto == NULL)
- printf (" *unknown* ");
- else if (q->howto->name)
- printf (" %-16s ", q->howto->name);
- else
- printf (" %-16d ", q->howto->type);
- if (sym_name)
- objdump_print_symname (abfd, NULL, *q->sym_ptr_ptr);
- else
- {
- if (section_name == NULL)
- section_name = "*unknown*";
- printf ("[%s]", section_name);
- }
-
- if (q->addend)
- {
- printf ("+0x");
- bfd_printf_vma (abfd, q->addend);
- }
-
- printf ("\n");
- }
-}
-
-static void
-dump_relocs_in_section (bfd *abfd,
- asection *section,
- void *dummy ATTRIBUTE_UNUSED)
-{
- arelent **relpp;
- long relcount;
- long relsize;
-
- if ( bfd_is_abs_section (section)
- || bfd_is_und_section (section)
- || bfd_is_com_section (section)
- || (! process_section_p (section))
- || ((section->flags & SEC_RELOC) == 0))
- return;
-
- relsize = bfd_get_reloc_upper_bound (abfd, section);
- if (relsize < 0)
- bfd_fatal (bfd_get_filename (abfd));
-
- printf ("RELOCATION RECORDS FOR [%s]:", section->name);
-
- if (relsize == 0)
- {
- printf (" (none)\n\n");
- return;
- }
-
- relpp = xmalloc (relsize);
- relcount = bfd_canonicalize_reloc (abfd, section, relpp, syms);
-
- if (relcount < 0)
- bfd_fatal (bfd_get_filename (abfd));
- else if (relcount == 0)
- printf (" (none)\n\n");
- else
- {
- printf ("\n");
- dump_reloc_set (abfd, section, relpp, relcount);
- printf ("\n\n");
- }
- free (relpp);
-}
-
-static void
-dump_relocs (bfd *abfd)
-{
- bfd_map_over_sections (abfd, dump_relocs_in_section, NULL);
-}
-
-static void
-dump_dynamic_relocs (bfd *abfd)
-{
- long relsize;
- arelent **relpp;
- long relcount;
-
- relsize = bfd_get_dynamic_reloc_upper_bound (abfd);
- if (relsize < 0)
- bfd_fatal (bfd_get_filename (abfd));
-
- printf ("DYNAMIC RELOCATION RECORDS");
-
- if (relsize == 0)
- printf (" (none)\n\n");
- else
- {
- relpp = xmalloc (relsize);
- relcount = bfd_canonicalize_dynamic_reloc (abfd, relpp, dynsyms);
-
- if (relcount < 0)
- bfd_fatal (bfd_get_filename (abfd));
- else if (relcount == 0)
- printf (" (none)\n\n");
- else
- {
- printf ("\n");
- dump_reloc_set (abfd, NULL, relpp, relcount);
- printf ("\n\n");
- }
- free (relpp);
- }
-}
-
-/* Creates a table of paths, to search for source files. */
-
-static void
-add_include_path (const char *path)
-{
- if (path[0] == 0)
- return;
- include_path_count++;
- include_paths = xrealloc (include_paths,
- include_path_count * sizeof (*include_paths));
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
- if (path[1] == ':' && path[2] == 0)
- path = concat (path, ".", (const char *) 0);
-#endif
- include_paths[include_path_count - 1] = path;
-}
-
-static void
-adjust_addresses (bfd *abfd ATTRIBUTE_UNUSED,
- asection *section,
- void *arg)
-{
- if ((section->flags & SEC_DEBUGGING) == 0)
- {
- bfd_boolean *has_reloc_p = (bfd_boolean *) arg;
- section->vma += adjust_section_vma;
- if (*has_reloc_p)
- section->lma += adjust_section_vma;
- }
-}
-
-/* Dump selected contents of ABFD. */
-
-static void
-dump_bfd (bfd *abfd)
-{
- /* If we are adjusting section VMA's, change them all now. Changing
- the BFD information is a hack. However, we must do it, or
- bfd_find_nearest_line will not do the right thing. */
- if (adjust_section_vma != 0)
- {
- bfd_boolean has_reloc = (abfd->flags & HAS_RELOC);
- bfd_map_over_sections (abfd, adjust_addresses, &has_reloc);
- }
-
- if (! dump_debugging_tags)
- printf (_("\n%s: file format %s\n"), bfd_get_filename (abfd),
- abfd->xvec->name);
- if (dump_ar_hdrs)
- print_arelt_descr (stdout, abfd, TRUE);
- if (dump_file_header)
- dump_bfd_header (abfd);
- if (dump_private_headers)
- dump_bfd_private_header (abfd);
- if (! dump_debugging_tags)
- putchar ('\n');
- if (dump_section_headers)
- dump_headers (abfd);
-
- if (dump_symtab
- || dump_reloc_info
- || disassemble
- || dump_debugging
- || dump_dwarf_section_info)
- syms = slurp_symtab (abfd);
- if (dump_dynamic_symtab || dump_dynamic_reloc_info
- || (disassemble && bfd_get_dynamic_symtab_upper_bound (abfd) > 0))
- dynsyms = slurp_dynamic_symtab (abfd);
- if (disassemble)
- {
- synthcount = bfd_get_synthetic_symtab (abfd, symcount, syms,
- dynsymcount, dynsyms, &synthsyms);
- if (synthcount < 0)
- synthcount = 0;
- }
-
- if (dump_symtab)
- dump_symbols (abfd, FALSE);
- if (dump_dynamic_symtab)
- dump_symbols (abfd, TRUE);
- if (dump_dwarf_section_info)
- dump_dwarf (abfd);
- if (dump_stab_section_info)
- dump_stabs (abfd);
- if (dump_reloc_info && ! disassemble)
- dump_relocs (abfd);
- if (dump_dynamic_reloc_info && ! disassemble)
- dump_dynamic_relocs (abfd);
- if (dump_section_contents)
- dump_data (abfd);
- if (disassemble)
- disassemble_data (abfd);
-
- if (dump_debugging)
- {
- void *dhandle;
-
- dhandle = read_debugging_info (abfd, syms, symcount);
- if (dhandle != NULL)
- {
- if (! print_debugging_info (stdout, dhandle, abfd, syms, demangle,
- dump_debugging_tags ? TRUE : FALSE))
- {
- non_fatal (_("%s: printing debugging information failed"),
- bfd_get_filename (abfd));
- exit_status = 1;
- }
- }
- }
-
- if (syms)
- {
- free (syms);
- syms = NULL;
- }
-
- if (dynsyms)
- {
- free (dynsyms);
- dynsyms = NULL;
- }
-
- if (synthsyms)
- {
- free (synthsyms);
- synthsyms = NULL;
- }
-
- symcount = 0;
- dynsymcount = 0;
- synthcount = 0;
-}
-
-static void
-display_bfd (bfd *abfd)
-{
- char **matching;
-
- if (bfd_check_format_matches (abfd, bfd_object, &matching))
- {
- dump_bfd (abfd);
- return;
- }
-
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- {
- nonfatal (bfd_get_filename (abfd));
- list_matching_formats (matching);
- free (matching);
- return;
- }
-
- if (bfd_get_error () != bfd_error_file_not_recognized)
- {
- nonfatal (bfd_get_filename (abfd));
- return;
- }
-
- if (bfd_check_format_matches (abfd, bfd_core, &matching))
- {
- dump_bfd (abfd);
- return;
- }
-
- nonfatal (bfd_get_filename (abfd));
-
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- {
- list_matching_formats (matching);
- free (matching);
- }
-}
-
-static void
-display_file (char *filename, char *target)
-{
- bfd *file;
- bfd *arfile = NULL;
-
- if (get_file_size (filename) < 1)
- return;
-
- file = bfd_openr (filename, target);
- if (file == NULL)
- {
- nonfatal (filename);
- return;
- }
-
- /* If the file is an archive, process all of its elements. */
- if (bfd_check_format (file, bfd_archive))
- {
- bfd *last_arfile = NULL;
-
- printf (_("In archive %s:\n"), bfd_get_filename (file));
- for (;;)
- {
- bfd_set_error (bfd_error_no_error);
-
- arfile = bfd_openr_next_archived_file (file, arfile);
- if (arfile == NULL)
- {
- if (bfd_get_error () != bfd_error_no_more_archived_files)
- nonfatal (bfd_get_filename (file));
- break;
- }
-
- display_bfd (arfile);
-
- if (last_arfile != NULL)
- bfd_close (last_arfile);
- last_arfile = arfile;
- }
-
- if (last_arfile != NULL)
- bfd_close (last_arfile);
- }
- else
- display_bfd (file);
-
- bfd_close (file);
-}
-
-int
-main (int argc, char **argv)
-{
- int c;
- char *target = default_target;
- bfd_boolean seenflag = FALSE;
-
-#if defined (HAVE_SETLOCALE)
-#if defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
- setlocale (LC_CTYPE, "");
-#endif
-
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- program_name = *argv;
- xmalloc_set_program_name (program_name);
-
- START_PROGRESS (program_name, 0);
-
- expandargv (&argc, &argv);
-
- bfd_init ();
- set_default_bfd_target ();
-
- while ((c = getopt_long (argc, argv, "pib:m:M:VvCdDlfaHhrRtTxsSI:j:wE:zgeGW",
- long_options, (int *) 0))
- != EOF)
- {
- switch (c)
- {
- case 0:
- break; /* We've been given a long option. */
- case 'm':
- machine = optarg;
- break;
- case 'M':
- if (disassembler_options)
- /* Ignore potential memory leak for now. */
- disassembler_options = concat (disassembler_options, ",",
- optarg, NULL);
- else
- disassembler_options = optarg;
- break;
- case 'j':
- if (only_used == only_size)
- {
- only_size += 8;
- only = xrealloc (only, only_size * sizeof (char *));
- }
- only [only_used++] = optarg;
- break;
- case 'l':
- with_line_numbers = TRUE;
- break;
- case 'b':
- target = optarg;
- break;
- case 'C':
- do_demangle = TRUE;
- if (optarg != NULL)
- {
- enum demangling_styles style;
-
- style = cplus_demangle_name_to_style (optarg);
- if (style == unknown_demangling)
- fatal (_("unknown demangling style `%s'"),
- optarg);
-
- cplus_demangle_set_style (style);
- }
- break;
- case 'w':
- wide_output = TRUE;
- break;
- case OPTION_ADJUST_VMA:
- adjust_section_vma = parse_vma (optarg, "--adjust-vma");
- break;
- case OPTION_START_ADDRESS:
- start_address = parse_vma (optarg, "--start-address");
- break;
- case OPTION_STOP_ADDRESS:
- stop_address = parse_vma (optarg, "--stop-address");
- break;
- case 'E':
- if (strcmp (optarg, "B") == 0)
- endian = BFD_ENDIAN_BIG;
- else if (strcmp (optarg, "L") == 0)
- endian = BFD_ENDIAN_LITTLE;
- else
- {
- non_fatal (_("unrecognized -E option"));
- usage (stderr, 1);
- }
- break;
- case OPTION_ENDIAN:
- if (strncmp (optarg, "big", strlen (optarg)) == 0)
- endian = BFD_ENDIAN_BIG;
- else if (strncmp (optarg, "little", strlen (optarg)) == 0)
- endian = BFD_ENDIAN_LITTLE;
- else
- {
- non_fatal (_("unrecognized --endian type `%s'"), optarg);
- usage (stderr, 1);
- }
- break;
-
- case 'f':
- dump_file_header = TRUE;
- seenflag = TRUE;
- break;
- case 'i':
- formats_info = TRUE;
- seenflag = TRUE;
- break;
- case 'I':
- add_include_path (optarg);
- break;
- case 'p':
- dump_private_headers = TRUE;
- seenflag = TRUE;
- break;
- case 'x':
- dump_private_headers = TRUE;
- dump_symtab = TRUE;
- dump_reloc_info = TRUE;
- dump_file_header = TRUE;
- dump_ar_hdrs = TRUE;
- dump_section_headers = TRUE;
- seenflag = TRUE;
- break;
- case 't':
- dump_symtab = TRUE;
- seenflag = TRUE;
- break;
- case 'T':
- dump_dynamic_symtab = TRUE;
- seenflag = TRUE;
- break;
- case 'd':
- disassemble = TRUE;
- seenflag = TRUE;
- break;
- case 'z':
- disassemble_zeroes = TRUE;
- break;
- case 'D':
- disassemble = TRUE;
- disassemble_all = TRUE;
- seenflag = TRUE;
- break;
- case 'S':
- disassemble = TRUE;
- with_source_code = TRUE;
- seenflag = TRUE;
- break;
- case 'g':
- dump_debugging = 1;
- seenflag = TRUE;
- break;
- case 'e':
- dump_debugging = 1;
- dump_debugging_tags = 1;
- do_demangle = TRUE;
- seenflag = TRUE;
- break;
- case 'W':
- dump_dwarf_section_info = TRUE;
- seenflag = TRUE;
- do_debug_info = 1;
- do_debug_abbrevs = 1;
- do_debug_lines = 1;
- do_debug_pubnames = 1;
- do_debug_aranges = 1;
- do_debug_ranges = 1;
- do_debug_frames = 1;
- do_debug_macinfo = 1;
- do_debug_str = 1;
- do_debug_loc = 1;
- break;
- case 'G':
- dump_stab_section_info = TRUE;
- seenflag = TRUE;
- break;
- case 's':
- dump_section_contents = TRUE;
- seenflag = TRUE;
- break;
- case 'r':
- dump_reloc_info = TRUE;
- seenflag = TRUE;
- break;
- case 'R':
- dump_dynamic_reloc_info = TRUE;
- seenflag = TRUE;
- break;
- case 'a':
- dump_ar_hdrs = TRUE;
- seenflag = TRUE;
- break;
- case 'h':
- dump_section_headers = TRUE;
- seenflag = TRUE;
- break;
- case 'H':
- usage (stdout, 0);
- seenflag = TRUE;
- case 'v':
- case 'V':
- show_version = TRUE;
- seenflag = TRUE;
- break;
-
- default:
- usage (stderr, 1);
- }
- }
-
- if (show_version)
- print_version ("objdump");
-
- if (!seenflag)
- usage (stderr, 2);
-
- if (formats_info)
- exit_status = display_info ();
- else
- {
- if (optind == argc)
- display_file ("a.out", target);
- else
- for (; optind < argc;)
- display_file (argv[optind++], target);
- }
-
- END_PROGRESS (program_name);
-
- return exit_status;
-}
diff --git a/binutils-2.17/binutils/po/Make-in b/binutils-2.17/binutils/po/Make-in
deleted file mode 100644
index be09b4cd..00000000
--- a/binutils-2.17/binutils/po/Make-in
+++ /dev/null
@@ -1,255 +0,0 @@
-# Makefile for program source directory in GNU NLS utilities package.
-# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-# Copyright 2003, 2006 Free Software Foundation, Inc.
-#
-# This file may be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-PACKAGE = @PACKAGE@
-VERSION = @VERSION@
-
-SHELL = /bin/sh
-@SET_MAKE@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datadir = $(prefix)/@DATADIRNAME@
-localedir = $(datadir)/locale
-gnulocaledir = $(prefix)/share/locale
-gettextsrcdir = $(prefix)/share/gettext/po
-subdir = po
-
-DESTDIR =
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-
-CC = @CC@
-GENCAT = @GENCAT@
-GMSGFMT = PATH=../src:$$PATH @GMSGFMT@
-MSGFMT = @MSGFMT@
-XGETTEXT = PATH=../src:$$PATH @XGETTEXT@
-MSGMERGE = PATH=../src:$$PATH msgmerge
-
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
-
-INCLUDES = -I.. -I$(top_srcdir)/intl
-
-COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
-
-SOURCES = cat-id-tbl.c
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
-stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
-
-POTFILES = \
-
-CATALOGS = @CATALOGS@
-CATOBJEXT = @CATOBJEXT@
-INSTOBJEXT = @INSTOBJEXT@
-
-.SUFFIXES:
-.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
-
-.c.o:
- $(COMPILE) $<
-
-.po.pox:
- $(MAKE) $(PACKAGE).pot
- $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
-
-.po.mo:
- $(MSGFMT) -o $@ $<
-
-.po.gmo:
- file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
- && rm -f $$file && $(GMSGFMT) -o $$file $<
-
-.po.cat:
- sed -f ../intl/po2msg.sed < $< > $*.msg \
- && rm -f $@ && $(GENCAT) $@ $*.msg
-
-
-all: all-@USE_NLS@
-
-all-yes: $(CATALOGS) @MAINT@ $(PACKAGE).pot
-all-no:
-
-$(srcdir)/$(PACKAGE).pot: $(POTFILES)
- $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
- --add-comments --keyword=_ --keyword=N_ \
- --files-from=$(srcdir)/POTFILES.in
- rm -f $(srcdir)/$(PACKAGE).pot
- mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot
-
-$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
-$(srcdir)/stamp-cat-id: $(PACKAGE).pot
- rm -f cat-id-tbl.tmp
- sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
- | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
- if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
- rm cat-id-tbl.tmp; \
- else \
- echo cat-id-tbl.c changed; \
- rm -f $(srcdir)/cat-id-tbl.c; \
- mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
- fi
- cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
-
-
-install: install-exec install-data
-install-exec:
-install-info:
-install-html:
-install-data: install-data-@USE_NLS@
-install-data-no: all
-install-data-yes: all
- if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
- else \
- $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
- fi
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- case "$$cat" in \
- *.gmo) destdir=$(gnulocaledir);; \
- *) destdir=$(localedir);; \
- esac; \
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
- if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $$dir; \
- else \
- $(top_srcdir)/mkinstalldirs $$dir; \
- fi; \
- if test -r $$cat; then \
- $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
- echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
- else \
- $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
- echo "installing $(srcdir)/$$cat as" \
- "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
- fi; \
- if test -r $$cat.m; then \
- $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
- echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
- else \
- if test -r $(srcdir)/$$cat.m ; then \
- $(INSTALL_DATA) $(srcdir)/$$cat.m \
- $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
- echo "installing $(srcdir)/$$cat as" \
- "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
- else \
- true; \
- fi; \
- fi; \
- done
- if test "$(PACKAGE)" = "gettext"; then \
- if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
- else \
- $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
- fi; \
- $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
- $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
- else \
- : ; \
- fi
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall:
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
- rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
- rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
- rm -f $(DESTDIR)$(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
- done
- rm -f $(DESTDIR)$(gettextsrcdir)/po-Makefile.in.in
-
-check: all
-
-cat-id-tbl.o: ../intl/libgettext.h
-
-html dvi pdf ps info tags TAGS ID:
-
-mostlyclean:
- rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
- rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
-
-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 = ../$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir: update-po $(DISTFILES)
- dists="$(DISTFILES)"; \
- for file in $$dists; do \
- ln $(srcdir)/$$file $(distdir) 2> /dev/null \
- || cp -p $(srcdir)/$$file $(distdir); \
- done
-
-update-po: Makefile
- $(MAKE) $(PACKAGE).pot
- PATH=`pwd`/../src:$$PATH; \
- cd $(srcdir); \
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
- mv $$lang.po $$lang.old.po; \
- echo "$$lang:"; \
- if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
- rm -f $$lang.old.po; \
- else \
- echo "msgmerge for $$cat failed!"; \
- rm -f $$lang.po; \
- mv $$lang.old.po $$lang.po; \
- fi; \
- done
-
-POTFILES: POTFILES.in
- ( if test 'x$(srcdir)' != 'x.'; then \
- posrcprefix='$(top_srcdir)/'; \
- else \
- posrcprefix="../"; \
- fi; \
- rm -f $@-t $@ \
- && (sed -e '/^#/d' -e '/^[ ]*$$/d' \
- -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
- | sed -e '$$s/\\$$//') > $@-t \
- && chmod a-w $@-t \
- && mv $@-t $@ )
-
-POTFILES.in: @MAINT@ ../Makefile
- cd .. && $(MAKE) po/POTFILES.in
-
-Makefile: Make-in ../config.status POTFILES
- cd .. \
- && CONFIG_FILES=$(subdir)/Makefile.in:$(subdir)/Make-in \
- CONFIG_HEADERS= $(SHELL) ./config.status
-
-# 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/binutils-2.17/binutils/po/POTFILES.in b/binutils-2.17/binutils/po/POTFILES.in
deleted file mode 100644
index d3f6cb3f..00000000
--- a/binutils-2.17/binutils/po/POTFILES.in
+++ /dev/null
@@ -1,61 +0,0 @@
-addr2line.c
-ar.c
-arsup.c
-arsup.h
-binemul.c
-binemul.h
-bucomm.c
-bucomm.h
-budbg.h
-budemang.c
-budemang.h
-coffdump.c
-coffgrok.c
-coffgrok.h
-cxxfilt.c
-debug.c
-debug.c
-debug.h
-dlltool.c
-dlltool.h
-dllwrap.c
-dwarf.c
-emul_aix.c
-emul_vanilla.c
-filemode.c
-ieee.c
-ieee.c
-is-ranlib.c
-is-strip.c
-maybe-ranlib.c
-maybe-strip.c
-nlmconv.c
-nlmconv.h
-nm.c
-not-ranlib.c
-not-strip.c
-objcopy.c
-objdump.c
-prdbg.c
-rdcoff.c
-rdcoff.c
-rddbg.c
-rddbg.c
-readelf.c
-rename.c
-resbin.c
-rescoff.c
-resrc.c
-resres.c
-size.c
-srconv.c
-stabs.c
-stabs.c
-strings.c
-sysdump.c
-version.c
-windres.c
-windres.h
-winduni.c
-winduni.h
-wrstabs.c
diff --git a/binutils-2.17/binutils/po/binutils.pot b/binutils-2.17/binutils/po/binutils.pot
deleted file mode 100644
index 5e5a4dc7..00000000
--- a/binutils-2.17/binutils/po/binutils.pot
+++ /dev/null
@@ -1,5271 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# 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: 2005-10-25 09:14+0930\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"
-
-#: addr2line.c:76
-#, c-format
-msgid "Usage: %s [option(s)] [addr(s)]\n"
-msgstr ""
-
-#: addr2line.c:77
-#, c-format
-msgid " Convert addresses into line number/file name pairs.\n"
-msgstr ""
-
-#: addr2line.c:78
-#, c-format
-msgid ""
-" If no addresses are specified on the command line, they will be read from "
-"stdin\n"
-msgstr ""
-
-#: addr2line.c:79
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -b --target=<bfdname> Set the binary file format\n"
-" -e --exe=<executable> Set the input file name (default is a.out)\n"
-" -i --inlines\t\t Unwind inlined functions\n"
-" -s --basenames Strip directory names\n"
-" -f --functions Show function names\n"
-" -C --demangle[=style] Demangle function names\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-
-#: addr2line.c:93 ar.c:263 coffdump.c:466 nlmconv.c:1113 objcopy.c:486
-#: objcopy.c:520 readelf.c:2622 size.c:102 srconv.c:1732 strings.c:725
-#: sysdump.c:648 windres.c:673
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr ""
-
-#: addr2line.c:253
-#, c-format
-msgid "%s: can not get addresses from archive"
-msgstr ""
-
-#: addr2line.c:325 nm.c:1523 objdump.c:3033
-#, c-format
-msgid "unknown demangling style `%s'"
-msgstr ""
-
-#: ar.c:203
-#, c-format
-msgid "no entry %s in archive\n"
-msgstr ""
-
-#: ar.c:219
-#, c-format
-msgid ""
-"Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] "
-"[count] archive-file file...\n"
-msgstr ""
-
-#: ar.c:222
-#, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr ""
-
-#: ar.c:223
-#, c-format
-msgid " commands:\n"
-msgstr ""
-
-#: ar.c:224
-#, c-format
-msgid " d - delete file(s) from the archive\n"
-msgstr ""
-
-#: ar.c:225
-#, c-format
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr ""
-
-#: ar.c:226
-#, c-format
-msgid " p - print file(s) found in the archive\n"
-msgstr ""
-
-#: ar.c:227
-#, c-format
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr ""
-
-#: ar.c:228
-#, c-format
-msgid ""
-" r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr ""
-
-#: ar.c:229
-#, c-format
-msgid " t - display contents of archive\n"
-msgstr ""
-
-#: ar.c:230
-#, c-format
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr ""
-
-#: ar.c:231
-#, c-format
-msgid " command specific modifiers:\n"
-msgstr ""
-
-#: ar.c:232
-#, c-format
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr ""
-
-#: ar.c:233
-#, c-format
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr ""
-
-#: ar.c:234
-#, c-format
-msgid " [N] - use instance [count] of name\n"
-msgstr ""
-
-#: ar.c:235
-#, c-format
-msgid " [f] - truncate inserted file names\n"
-msgstr ""
-
-#: ar.c:236
-#, c-format
-msgid " [P] - use full path names when matching\n"
-msgstr ""
-
-#: ar.c:237
-#, c-format
-msgid " [o] - preserve original dates\n"
-msgstr ""
-
-#: ar.c:238
-#, c-format
-msgid ""
-" [u] - only replace files that are newer than current archive "
-"contents\n"
-msgstr ""
-
-#: ar.c:239
-#, c-format
-msgid " generic modifiers:\n"
-msgstr ""
-
-#: ar.c:240
-#, c-format
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr ""
-
-#: ar.c:241
-#, c-format
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr ""
-
-#: ar.c:242
-#, c-format
-msgid " [S] - do not build a symbol table\n"
-msgstr ""
-
-#: ar.c:243
-#, c-format
-msgid " [v] - be verbose\n"
-msgstr ""
-
-#: ar.c:244
-#, c-format
-msgid " [V] - display the version number\n"
-msgstr ""
-
-#: ar.c:245
-#, c-format
-msgid " @<file> - read options from <file>\n"
-msgstr ""
-
-#: ar.c:252
-#, c-format
-msgid "Usage: %s [options] archive\n"
-msgstr ""
-
-#: ar.c:253
-#, c-format
-msgid " Generate an index to speed access to archives\n"
-msgstr ""
-
-#: ar.c:254
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-
-#: ar.c:485
-msgid "two different operation options specified"
-msgstr ""
-
-#: ar.c:560
-#, c-format
-msgid "illegal option -- %c"
-msgstr ""
-
-#: ar.c:606
-msgid "no operation specified"
-msgstr ""
-
-#: ar.c:609
-msgid "`u' is only meaningful with the `r' option."
-msgstr ""
-
-#: ar.c:617
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr ""
-
-#: ar.c:620
-msgid "Value for `N' must be positive."
-msgstr ""
-
-#: ar.c:670
-#, c-format
-msgid "internal error -- this option not implemented"
-msgstr ""
-
-#: ar.c:739
-#, c-format
-msgid "creating %s"
-msgstr ""
-
-#: ar.c:788 ar.c:838 ar.c:1156 objcopy.c:1683
-#, c-format
-msgid "internal stat error on %s"
-msgstr ""
-
-#: ar.c:792
-#, c-format
-msgid ""
-"\n"
-"<%s>\n"
-"\n"
-msgstr ""
-
-#: ar.c:808 ar.c:875
-#, c-format
-msgid "%s is not a valid archive"
-msgstr ""
-
-#: ar.c:843
-#, c-format
-msgid "stat returns negative size for %s"
-msgstr ""
-
-#: ar.c:1061
-#, c-format
-msgid "No member named `%s'\n"
-msgstr ""
-
-#: ar.c:1111
-#, c-format
-msgid "no entry %s in archive %s!"
-msgstr ""
-
-#: ar.c:1248
-#, c-format
-msgid "%s: no archive map to update"
-msgstr ""
-
-#: arsup.c:87
-#, c-format
-msgid "No entry %s in archive.\n"
-msgstr ""
-
-#: arsup.c:112
-#, c-format
-msgid "Can't open file %s\n"
-msgstr ""
-
-#: arsup.c:162
-#, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr ""
-
-#: arsup.c:179
-#, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr ""
-
-#: arsup.c:188
-#, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr ""
-
-#: arsup.c:227
-#, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr ""
-
-#: arsup.c:247 arsup.c:285 arsup.c:327 arsup.c:347 arsup.c:413
-#, c-format
-msgid "%s: no open output archive\n"
-msgstr ""
-
-#: arsup.c:258 arsup.c:368 arsup.c:394
-#, c-format
-msgid "%s: can't open file %s\n"
-msgstr ""
-
-#: arsup.c:312 arsup.c:390 arsup.c:471
-#, c-format
-msgid "%s: can't find module file %s\n"
-msgstr ""
-
-#: arsup.c:422
-#, c-format
-msgid "Current open archive is %s\n"
-msgstr ""
-
-#: arsup.c:446
-#, c-format
-msgid "%s: no open archive\n"
-msgstr ""
-
-#: binemul.c:37
-#, c-format
-msgid " No emulation specific options\n"
-msgstr ""
-
-#. Macros for common output.
-#: binemul.h:40
-#, c-format
-msgid " emulation options: \n"
-msgstr ""
-
-#: bucomm.c:110
-#, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr ""
-
-#: bucomm.c:121
-#, c-format
-msgid "%s: Matching formats:"
-msgstr ""
-
-#: bucomm.c:136
-#, c-format
-msgid "Supported targets:"
-msgstr ""
-
-#: bucomm.c:138
-#, c-format
-msgid "%s: supported targets:"
-msgstr ""
-
-#: bucomm.c:154
-#, c-format
-msgid "Supported architectures:"
-msgstr ""
-
-#: bucomm.c:156
-#, c-format
-msgid "%s: supported architectures:"
-msgstr ""
-
-#: bucomm.c:349
-#, c-format
-msgid "BFD header file version %s\n"
-msgstr ""
-
-#: bucomm.c:450
-#, c-format
-msgid "%s: bad number: %s"
-msgstr ""
-
-#: bucomm.c:467 strings.c:438
-#, c-format
-msgid "'%s': No such file"
-msgstr ""
-
-#: bucomm.c:469 strings.c:440
-#, c-format
-msgid "Warning: could not locate '%s'. reason: %s"
-msgstr ""
-
-#: bucomm.c:473
-#, c-format
-msgid "Warning: '%s' is not an ordinary file"
-msgstr ""
-
-#: coffdump.c:103
-#, c-format
-msgid "#lines %d "
-msgstr ""
-
-#: coffdump.c:457 sysdump.c:641
-#, c-format
-msgid "Usage: %s [option(s)] in-file\n"
-msgstr ""
-
-#: coffdump.c:458
-#, c-format
-msgid " Print a human readable interpretation of a SYSROFF object file\n"
-msgstr ""
-
-#: coffdump.c:459
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-
-#: coffdump.c:528 srconv.c:1822 sysdump.c:705
-msgid "no input file specified"
-msgstr ""
-
-#: debug.c:648
-msgid "debug_add_to_current_namespace: no current file"
-msgstr ""
-
-#: debug.c:727
-msgid "debug_start_source: no debug_set_filename call"
-msgstr ""
-
-#: debug.c:783
-msgid "debug_record_function: no debug_set_filename call"
-msgstr ""
-
-#: debug.c:835
-msgid "debug_record_parameter: no current function"
-msgstr ""
-
-#: debug.c:867
-msgid "debug_end_function: no current function"
-msgstr ""
-
-#: debug.c:873
-msgid "debug_end_function: some blocks were not closed"
-msgstr ""
-
-#: debug.c:901
-msgid "debug_start_block: no current block"
-msgstr ""
-
-#: debug.c:937
-msgid "debug_end_block: no current block"
-msgstr ""
-
-#: debug.c:944
-msgid "debug_end_block: attempt to close top level block"
-msgstr ""
-
-#: debug.c:967
-msgid "debug_record_line: no current unit"
-msgstr ""
-
-#. FIXME
-#: debug.c:1020
-msgid "debug_start_common_block: not implemented"
-msgstr ""
-
-#. FIXME
-#: debug.c:1031
-msgid "debug_end_common_block: not implemented"
-msgstr ""
-
-#. FIXME.
-#: debug.c:1115
-msgid "debug_record_label: not implemented"
-msgstr ""
-
-#: debug.c:1137
-msgid "debug_record_variable: no current file"
-msgstr ""
-
-#: debug.c:1665
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr ""
-
-#: debug.c:1842
-msgid "debug_name_type: no current file"
-msgstr ""
-
-#: debug.c:1887
-msgid "debug_tag_type: no current file"
-msgstr ""
-
-#: debug.c:1895
-msgid "debug_tag_type: extra tag attempted"
-msgstr ""
-
-#: debug.c:1932
-#, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr ""
-
-#: debug.c:1954
-msgid "debug_find_named_type: no current compilation unit"
-msgstr ""
-
-#: debug.c:2057
-#, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr ""
-
-#: debug.c:2484
-msgid "debug_write_type: illegal type encountered"
-msgstr ""
-
-#: dlltool.c:765 dlltool.c:789 dlltool.c:818
-#, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr ""
-
-#: dlltool.c:854
-#, c-format
-msgid "Can't open def file: %s"
-msgstr ""
-
-#: dlltool.c:859
-#, c-format
-msgid "Processing def file: %s"
-msgstr ""
-
-#: dlltool.c:863
-msgid "Processed def file"
-msgstr ""
-
-#: dlltool.c:887
-#, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr ""
-
-#: dlltool.c:922
-#, c-format
-msgid "%s: Path components stripped from image name, '%s'."
-msgstr ""
-
-#: dlltool.c:931
-#, c-format
-msgid "NAME: %s base: %x"
-msgstr ""
-
-#: dlltool.c:934 dlltool.c:950
-msgid "Can't have LIBRARY and NAME"
-msgstr ""
-
-#: dlltool.c:947
-#, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr ""
-
-#: dlltool.c:1183 resrc.c:269
-#, c-format
-msgid "wait: %s"
-msgstr ""
-
-#: dlltool.c:1188 dllwrap.c:413 resrc.c:274
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr ""
-
-#: dlltool.c:1194 dllwrap.c:420 resrc.c:281
-#, c-format
-msgid "%s exited with status %d"
-msgstr ""
-
-#: dlltool.c:1225
-#, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr ""
-
-#: dlltool.c:1350
-#, c-format
-msgid "Excluding symbol: %s"
-msgstr ""
-
-#: dlltool.c:1439 dlltool.c:1450 nm.c:1000 nm.c:1011
-#, c-format
-msgid "%s: no symbols"
-msgstr ""
-
-#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1476
-#, c-format
-msgid "Done reading %s"
-msgstr ""
-
-#: dlltool.c:1486
-#, c-format
-msgid "Unable to open object file: %s"
-msgstr ""
-
-#: dlltool.c:1489
-#, c-format
-msgid "Scanning object file %s"
-msgstr ""
-
-#: dlltool.c:1504
-#, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr ""
-
-#: dlltool.c:1590
-msgid "Adding exports to output file"
-msgstr ""
-
-#: dlltool.c:1638
-msgid "Added exports to output file"
-msgstr ""
-
-#: dlltool.c:1759
-#, c-format
-msgid "Generating export file: %s"
-msgstr ""
-
-#: dlltool.c:1764
-#, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr ""
-
-#: dlltool.c:1767
-#, c-format
-msgid "Opened temporary file: %s"
-msgstr ""
-
-#: dlltool.c:1989
-msgid "Generated exports file"
-msgstr ""
-
-#: dlltool.c:2195
-#, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr ""
-
-#: dlltool.c:2198
-#, c-format
-msgid "Creating stub file: %s"
-msgstr ""
-
-#: dlltool.c:2580
-#, c-format
-msgid "failed to open temporary head file: %s"
-msgstr ""
-
-#: dlltool.c:2639
-#, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr ""
-
-#: dlltool.c:2706
-#, c-format
-msgid "Can't open .lib file: %s"
-msgstr ""
-
-#: dlltool.c:2709
-#, c-format
-msgid "Creating library file: %s"
-msgstr ""
-
-#: dlltool.c:2792 dlltool.c:2798
-#, c-format
-msgid "cannot delete %s: %s"
-msgstr ""
-
-#: dlltool.c:2803
-msgid "Created lib file"
-msgstr ""
-
-#: dlltool.c:2882
-#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr ""
-
-#: dlltool.c:2888
-#, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr ""
-
-#: dlltool.c:2993
-msgid "Processing definitions"
-msgstr ""
-
-#: dlltool.c:3025
-msgid "Processed definitions"
-msgstr ""
-
-#. xgetext:c-format
-#: dlltool.c:3032 dllwrap.c:474
-#, c-format
-msgid "Usage %s <option(s)> <object-file(s)>\n"
-msgstr ""
-
-#. xgetext:c-format
-#: dlltool.c:3034
-#, c-format
-msgid ""
-" -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr ""
-
-#: dlltool.c:3035
-#, c-format
-msgid ""
-" possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, "
-"ppc, thumb\n"
-msgstr ""
-
-#: dlltool.c:3036
-#, c-format
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr ""
-
-#: dlltool.c:3037
-#, c-format
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr ""
-
-#: dlltool.c:3038
-#, c-format
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr ""
-
-#: dlltool.c:3039
-#, c-format
-msgid ""
-" -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr ""
-
-#: dlltool.c:3040
-#, c-format
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr ""
-
-#: dlltool.c:3041
-#, c-format
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr ""
-
-#: dlltool.c:3042
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr ""
-
-#: dlltool.c:3043
-#, c-format
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr ""
-
-#: dlltool.c:3044
-#, c-format
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr ""
-
-#: dlltool.c:3045
-#, c-format
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr ""
-
-#: dlltool.c:3046
-#, c-format
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr ""
-
-#: dlltool.c:3047
-#, c-format
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr ""
-
-#: dlltool.c:3048
-#, c-format
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr ""
-
-#: dlltool.c:3049
-#, c-format
-msgid ""
-" -U --add-underscore Add underscores to symbols in interface "
-"library.\n"
-msgstr ""
-
-#: dlltool.c:3050
-#, c-format
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr ""
-
-#: dlltool.c:3051
-#, c-format
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr ""
-
-#: dlltool.c:3052
-#, c-format
-msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
-msgstr ""
-
-#: dlltool.c:3053
-#, c-format
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr ""
-
-#: dlltool.c:3054
-#, c-format
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr ""
-
-#: dlltool.c:3055
-#, c-format
-msgid ""
-" -C --compat-implib Create backward compatible import library.\n"
-msgstr ""
-
-#: dlltool.c:3056
-#, c-format
-msgid ""
-" -n --no-delete Keep temp files (repeat for extra "
-"preservation).\n"
-msgstr ""
-
-#: dlltool.c:3057
-#, c-format
-msgid ""
-" -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
-msgstr ""
-
-#: dlltool.c:3058
-#, c-format
-msgid " -v --verbose Be verbose.\n"
-msgstr ""
-
-#: dlltool.c:3059
-#, c-format
-msgid " -V --version Display the program version.\n"
-msgstr ""
-
-#: dlltool.c:3060
-#, c-format
-msgid " -h --help Display this information.\n"
-msgstr ""
-
-#: dlltool.c:3061
-#, c-format
-msgid " @<file> Read options from <file>.\n"
-msgstr ""
-
-#: dlltool.c:3063
-#, c-format
-msgid ""
-" -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr ""
-
-#: dlltool.c:3064
-#, c-format
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr ""
-
-#: dlltool.c:3065
-#, c-format
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr ""
-
-#: dlltool.c:3181
-#, c-format
-msgid "Path components stripped from dllname, '%s'."
-msgstr ""
-
-#: dlltool.c:3226
-#, c-format
-msgid "Unable to open base-file: %s"
-msgstr ""
-
-#: dlltool.c:3258
-#, c-format
-msgid "Machine '%s' not supported"
-msgstr ""
-
-#: dlltool.c:3362 dllwrap.c:204
-#, c-format
-msgid "Tried file: %s"
-msgstr ""
-
-#: dlltool.c:3369 dllwrap.c:211
-#, c-format
-msgid "Using file: %s"
-msgstr ""
-
-#: dllwrap.c:294
-#, c-format
-msgid "Keeping temporary base file %s"
-msgstr ""
-
-#: dllwrap.c:296
-#, c-format
-msgid "Deleting temporary base file %s"
-msgstr ""
-
-#: dllwrap.c:310
-#, c-format
-msgid "Keeping temporary exp file %s"
-msgstr ""
-
-#: dllwrap.c:312
-#, c-format
-msgid "Deleting temporary exp file %s"
-msgstr ""
-
-#: dllwrap.c:325
-#, c-format
-msgid "Keeping temporary def file %s"
-msgstr ""
-
-#: dllwrap.c:327
-#, c-format
-msgid "Deleting temporary def file %s"
-msgstr ""
-
-#: dllwrap.c:475
-#, c-format
-msgid " Generic options:\n"
-msgstr ""
-
-#: dllwrap.c:476
-#, c-format
-msgid " @<file> Read options from <file>\n"
-msgstr ""
-
-#: dllwrap.c:477
-#, c-format
-msgid " --quiet, -q Work quietly\n"
-msgstr ""
-
-#: dllwrap.c:478
-#, c-format
-msgid " --verbose, -v Verbose\n"
-msgstr ""
-
-#: dllwrap.c:479
-#, c-format
-msgid " --version Print dllwrap version\n"
-msgstr ""
-
-#: dllwrap.c:480
-#, c-format
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr ""
-
-#: dllwrap.c:481
-#, c-format
-msgid " Options for %s:\n"
-msgstr ""
-
-#: dllwrap.c:482
-#, c-format
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr ""
-
-#: dllwrap.c:483
-#, c-format
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr ""
-
-#: dllwrap.c:484
-#, c-format
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr ""
-
-#: dllwrap.c:485
-#, c-format
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr ""
-
-#: dllwrap.c:486
-#, c-format
-msgid " --image-base <base> Specify image base address\n"
-msgstr ""
-
-#: dllwrap.c:487
-#, c-format
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr ""
-
-#: dllwrap.c:488
-#, c-format
-msgid " --dry-run Show what needs to be run\n"
-msgstr ""
-
-#: dllwrap.c:489
-#, c-format
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr ""
-
-#: dllwrap.c:490
-#, c-format
-msgid " Options passed to DLLTOOL:\n"
-msgstr ""
-
-#: dllwrap.c:491
-#, c-format
-msgid " --machine <machine>\n"
-msgstr ""
-
-#: dllwrap.c:492
-#, c-format
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr ""
-
-#: dllwrap.c:493
-#, c-format
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr ""
-
-#: dllwrap.c:494
-#, c-format
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr ""
-
-#: dllwrap.c:495
-#, c-format
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr ""
-
-#: dllwrap.c:496
-#, c-format
-msgid " --def <deffile> Name input .def file\n"
-msgstr ""
-
-#: dllwrap.c:497
-#, c-format
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr ""
-
-#: dllwrap.c:498
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr ""
-
-#: dllwrap.c:499
-#, c-format
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr ""
-
-#: dllwrap.c:500
-#, c-format
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr ""
-
-#: dllwrap.c:501
-#, c-format
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr ""
-
-#: dllwrap.c:502
-#, c-format
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr ""
-
-#: dllwrap.c:503
-#, c-format
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr ""
-
-#: dllwrap.c:504
-#, c-format
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr ""
-
-#: dllwrap.c:505
-#, c-format
-msgid " -U Add underscores to .lib\n"
-msgstr ""
-
-#: dllwrap.c:506
-#, c-format
-msgid " -k Kill @<n> from exported names\n"
-msgstr ""
-
-#: dllwrap.c:507
-#, c-format
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr ""
-
-#: dllwrap.c:508
-#, c-format
-msgid " --as <name> Use <name> for assembler\n"
-msgstr ""
-
-#: dllwrap.c:509
-#, c-format
-msgid " --nodelete Keep temp files.\n"
-msgstr ""
-
-#: dllwrap.c:510
-#, c-format
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr ""
-
-#: dllwrap.c:782
-msgid "Must provide at least one of -o or --dllname options"
-msgstr ""
-
-#: dllwrap.c:811
-msgid ""
-"no export definition file provided.\n"
-"Creating one, but that may not be what you want"
-msgstr ""
-
-#: dllwrap.c:970
-#, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr ""
-
-#: dllwrap.c:971
-#, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr ""
-
-#: dllwrap.c:972
-#, c-format
-msgid "DRIVER name : %s\n"
-msgstr ""
-
-#: dllwrap.c:973
-#, c-format
-msgid "DRIVER options : %s\n"
-msgstr ""
-
-#: dwarf.c:93 dwarf.c:137 readelf.c:322 readelf.c:515
-#, c-format
-msgid "Unhandled data length: %d\n"
-msgstr ""
-
-#: dwarf.c:237
-msgid "badly formed extended line op encountered!\n"
-msgstr ""
-
-#: dwarf.c:244
-#, c-format
-msgid " Extended opcode %d: "
-msgstr ""
-
-#: dwarf.c:249
-#, c-format
-msgid ""
-"End of Sequence\n"
-"\n"
-msgstr ""
-
-#: dwarf.c:255
-#, c-format
-msgid "set Address to 0x%lx\n"
-msgstr ""
-
-#: dwarf.c:260
-#, c-format
-msgid " define new File Table entry\n"
-msgstr ""
-
-#: dwarf.c:261 dwarf.c:1944
-#, c-format
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr ""
-
-#: dwarf.c:263
-#, c-format
-msgid " %d\t"
-msgstr ""
-
-#: dwarf.c:266 dwarf.c:268 dwarf.c:270 dwarf.c:1956 dwarf.c:1958 dwarf.c:1960
-#, c-format
-msgid "%lu\t"
-msgstr ""
-
-#: dwarf.c:271
-#, c-format
-msgid ""
-"%s\n"
-"\n"
-msgstr ""
-
-#: dwarf.c:275
-#, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr ""
-
-#: dwarf.c:288
-msgid "<no .debug_str section>"
-msgstr ""
-
-#: dwarf.c:294
-#, c-format
-msgid "DW_FORM_strp offset too big: %lx\n"
-msgstr ""
-
-#: dwarf.c:295
-msgid "<offset is too big>"
-msgstr ""
-
-#: dwarf.c:528
-#, c-format
-msgid "Unknown TAG value: %lx"
-msgstr ""
-
-#: dwarf.c:564
-#, c-format
-msgid "Unknown FORM value: %lx"
-msgstr ""
-
-#: dwarf.c:573
-#, c-format
-msgid " %lu byte block: "
-msgstr ""
-
-#: dwarf.c:907
-#, c-format
-msgid "(User defined location op)"
-msgstr ""
-
-#: dwarf.c:909
-#, c-format
-msgid "(Unknown location op)"
-msgstr ""
-
-#: dwarf.c:955
-msgid "Internal error: DWARF version is not 2 or 3.\n"
-msgstr ""
-
-#: dwarf.c:1053
-msgid "DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n"
-msgstr ""
-
-#: dwarf.c:1102
-#, c-format
-msgid " (indirect string, offset: 0x%lx): %s"
-msgstr ""
-
-#: dwarf.c:1111
-#, c-format
-msgid "Unrecognized form: %lu\n"
-msgstr ""
-
-#: dwarf.c:1196
-#, c-format
-msgid "(not inlined)"
-msgstr ""
-
-#: dwarf.c:1199
-#, c-format
-msgid "(inlined)"
-msgstr ""
-
-#: dwarf.c:1202
-#, c-format
-msgid "(declared as inline but ignored)"
-msgstr ""
-
-#: dwarf.c:1205
-#, c-format
-msgid "(declared as inline and inlined)"
-msgstr ""
-
-#: dwarf.c:1208
-#, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr ""
-
-#: dwarf.c:1354 dwarf.c:2484
-#, c-format
-msgid " [without DW_AT_frame_base]"
-msgstr ""
-
-#: dwarf.c:1357
-#, c-format
-msgid "(location list)"
-msgstr ""
-
-#: dwarf.c:1475
-#, c-format
-msgid "Unknown AT value: %lx"
-msgstr ""
-
-#: dwarf.c:1544
-#, c-format
-msgid "No comp units in %s section ?"
-msgstr ""
-
-#: dwarf.c:1553
-#, c-format
-msgid "Not enough memory for a debug info array of %u entries"
-msgstr ""
-
-#: dwarf.c:1561 dwarf.c:2573
-#, c-format
-msgid ""
-"The section %s contains:\n"
-"\n"
-msgstr ""
-
-#: dwarf.c:1569
-#, c-format
-msgid "Unable to locate %s section!\n"
-msgstr ""
-
-#: dwarf.c:1635
-#, c-format
-msgid " Compilation Unit @ offset 0x%lx:\n"
-msgstr ""
-
-#: dwarf.c:1636
-#, c-format
-msgid " Length: %ld\n"
-msgstr ""
-
-#: dwarf.c:1637
-#, c-format
-msgid " Version: %d\n"
-msgstr ""
-
-#: dwarf.c:1638
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr ""
-
-#: dwarf.c:1639
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr ""
-
-#: dwarf.c:1644
-msgid "Only version 2 and 3 DWARF debug information is currently supported.\n"
-msgstr ""
-
-#: dwarf.c:1685
-#, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr ""
-
-#: dwarf.c:1691
-#, c-format
-msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
-msgstr ""
-
-#: dwarf.c:1785
-#, c-format
-msgid "%s section needs a populated .debug_info section\n"
-msgstr ""
-
-#: dwarf.c:1792
-#, c-format
-msgid "%s section has more comp units than .debug_info section\n"
-msgstr ""
-
-#: dwarf.c:1794
-#, c-format
-msgid ""
-"assuming that the pointer size is %d, from the last comp unit in ."
-"debug_info\n"
-"\n"
-msgstr ""
-
-#: dwarf.c:1819
-#, c-format
-msgid ""
-"\n"
-"Dump of debug contents of section %s:\n"
-"\n"
-msgstr ""
-
-#: dwarf.c:1858
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr ""
-
-#: dwarf.c:1867
-msgid "Only DWARF version 2 and 3 line info is currently supported.\n"
-msgstr ""
-
-#: dwarf.c:1894
-#, c-format
-msgid " Length: %ld\n"
-msgstr ""
-
-#: dwarf.c:1895
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr ""
-
-#: dwarf.c:1896
-#, c-format
-msgid " Prologue Length: %d\n"
-msgstr ""
-
-#: dwarf.c:1897
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr ""
-
-#: dwarf.c:1898
-#, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr ""
-
-#: dwarf.c:1899
-#, c-format
-msgid " Line Base: %d\n"
-msgstr ""
-
-#: dwarf.c:1900
-#, c-format
-msgid " Line Range: %d\n"
-msgstr ""
-
-#: dwarf.c:1901
-#, c-format
-msgid " Opcode Base: %d\n"
-msgstr ""
-
-#: dwarf.c:1902
-#, c-format
-msgid " (Pointer size: %u)%s\n"
-msgstr ""
-
-#: dwarf.c:1913
-#, c-format
-msgid ""
-"\n"
-" Opcodes:\n"
-msgstr ""
-
-#: dwarf.c:1916
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr ""
-
-#: dwarf.c:1922
-#, c-format
-msgid ""
-"\n"
-" The Directory Table is empty.\n"
-msgstr ""
-
-#: dwarf.c:1925
-#, c-format
-msgid ""
-"\n"
-" The Directory Table:\n"
-msgstr ""
-
-#: dwarf.c:1929
-#, c-format
-msgid " %s\n"
-msgstr ""
-
-#: dwarf.c:1940
-#, c-format
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr ""
-
-#: dwarf.c:1943
-#, c-format
-msgid ""
-"\n"
-" The File Name Table:\n"
-msgstr ""
-
-#: dwarf.c:1951
-#, c-format
-msgid " %d\t"
-msgstr ""
-
-#: dwarf.c:1962
-#, c-format
-msgid "%s\n"
-msgstr ""
-
-#. Now display the statements.
-#: dwarf.c:1970
-#, c-format
-msgid ""
-"\n"
-" Line Number Statements:\n"
-msgstr ""
-
-#: dwarf.c:1986
-#, c-format
-msgid " Special opcode %d: advance Address by %lu to 0x%lx"
-msgstr ""
-
-#: dwarf.c:1990
-#, c-format
-msgid " and Line by %d to %d\n"
-msgstr ""
-
-#: dwarf.c:1998
-msgid "Extend line ops need a valid pointer size, guessing at 4\n"
-msgstr ""
-
-#: dwarf.c:2007
-#, c-format
-msgid " Copy\n"
-msgstr ""
-
-#: dwarf.c:2015
-#, c-format
-msgid " Advance PC by %lu to 0x%lx\n"
-msgstr ""
-
-#: dwarf.c:2023
-#, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr ""
-
-#: dwarf.c:2030
-#, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr ""
-
-#: dwarf.c:2038
-#, c-format
-msgid " Set column to %lu\n"
-msgstr ""
-
-#: dwarf.c:2045
-#, c-format
-msgid " Set is_stmt to %d\n"
-msgstr ""
-
-#: dwarf.c:2050
-#, c-format
-msgid " Set basic block\n"
-msgstr ""
-
-#: dwarf.c:2058
-#, c-format
-msgid " Advance PC by constant %lu to 0x%lx\n"
-msgstr ""
-
-#: dwarf.c:2066
-#, c-format
-msgid " Advance PC by fixed size amount %lu to 0x%lx\n"
-msgstr ""
-
-#: dwarf.c:2071
-#, c-format
-msgid " Set prologue_end to true\n"
-msgstr ""
-
-#: dwarf.c:2075
-#, c-format
-msgid " Set epilogue_begin to true\n"
-msgstr ""
-
-#: dwarf.c:2081
-#, c-format
-msgid " Set ISA to %lu\n"
-msgstr ""
-
-#: dwarf.c:2085
-#, c-format
-msgid " Unknown opcode %d with operands: "
-msgstr ""
-
-#: dwarf.c:2111 dwarf.c:2197 dwarf.c:2271 dwarf.c:2382 dwarf.c:2514
-#: dwarf.c:2739
-#, c-format
-msgid ""
-"Contents of the %s section:\n"
-"\n"
-msgstr ""
-
-#: dwarf.c:2151
-msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
-msgstr ""
-
-#: dwarf.c:2158
-#, c-format
-msgid " Length: %ld\n"
-msgstr ""
-
-#: dwarf.c:2160
-#, c-format
-msgid " Version: %d\n"
-msgstr ""
-
-#: dwarf.c:2162
-#, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr ""
-
-#: dwarf.c:2164
-#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr ""
-
-#: dwarf.c:2167
-#, c-format
-msgid ""
-"\n"
-" Offset\tName\n"
-msgstr ""
-
-#: dwarf.c:2218
-#, c-format
-msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr ""
-
-#: dwarf.c:2224
-#, c-format
-msgid " DW_MACINFO_end_file\n"
-msgstr ""
-
-#: dwarf.c:2232
-#, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr ""
-
-#: dwarf.c:2241
-#, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr ""
-
-#: dwarf.c:2253
-#, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr ""
-
-#: dwarf.c:2282
-#, c-format
-msgid " Number TAG\n"
-msgstr ""
-
-#: dwarf.c:2288
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr ""
-
-#: dwarf.c:2291
-msgid "has children"
-msgstr ""
-
-#: dwarf.c:2291
-msgid "no children"
-msgstr ""
-
-#: dwarf.c:2294
-#, c-format
-msgid " %-18s %s\n"
-msgstr ""
-
-#: dwarf.c:2327 dwarf.c:2510 dwarf.c:2684
-#, c-format
-msgid ""
-"\n"
-"The %s section is empty.\n"
-msgstr ""
-
-#. FIXME: Should we handle this case?
-#: dwarf.c:2372
-msgid "Location lists in .debug_info section aren't in ascending order!\n"
-msgstr ""
-
-#: dwarf.c:2375
-msgid "No location lists in .debug_info section!\n"
-msgstr ""
-
-#: dwarf.c:2379
-#, c-format
-msgid "Location lists in %s section start at 0x%lx\n"
-msgstr ""
-
-#: dwarf.c:2383
-#, c-format
-msgid " Offset Begin End Expression\n"
-msgstr ""
-
-#: dwarf.c:2414
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr ""
-
-#: dwarf.c:2417
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr ""
-
-#: dwarf.c:2424
-#, c-format
-msgid "Offset 0x%lx is bigger than .debug_loc section size.\n"
-msgstr ""
-
-#: dwarf.c:2433 dwarf.c:2460 dwarf.c:2470
-#, c-format
-msgid "Location list starting at offset 0x%lx is not terminated.\n"
-msgstr ""
-
-#: dwarf.c:2445 dwarf.c:2784
-#, c-format
-msgid " %8.8lx <End of list>\n"
-msgstr ""
-
-#: dwarf.c:2453
-#, c-format
-msgid " %8.8lx %8.8lx %8.8lx (base address)\n"
-msgstr ""
-
-#: dwarf.c:2487 dwarf.c:2801
-msgid " (start == end)"
-msgstr ""
-
-#: dwarf.c:2489 dwarf.c:2803
-msgid " (start > end)"
-msgstr ""
-
-#: dwarf.c:2618
-msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
-msgstr ""
-
-#: dwarf.c:2622
-#, c-format
-msgid " Length: %ld\n"
-msgstr ""
-
-#: dwarf.c:2623
-#, c-format
-msgid " Version: %d\n"
-msgstr ""
-
-#: dwarf.c:2624
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr ""
-
-#: dwarf.c:2625
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr ""
-
-#: dwarf.c:2626
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr ""
-
-#: dwarf.c:2628
-#, c-format
-msgid ""
-"\n"
-" Address Length\n"
-msgstr ""
-
-#. FIXME: Should we handle this case?
-#: dwarf.c:2729
-msgid "Range lists in .debug_info section aren't in ascending order!\n"
-msgstr ""
-
-#: dwarf.c:2732
-msgid "No range lists in .debug_info section!\n"
-msgstr ""
-
-#: dwarf.c:2736
-#, c-format
-msgid "Range lists in %s section start at 0x%lx\n"
-msgstr ""
-
-#: dwarf.c:2740
-#, c-format
-msgid " Offset Begin End\n"
-msgstr ""
-
-#: dwarf.c:2765
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in %s section.\n"
-msgstr ""
-
-#: dwarf.c:2769
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in %s section.\n"
-msgstr ""
-
-#: dwarf.c:2964
-#, c-format
-msgid "The section %s contains:\n"
-msgstr ""
-
-#: dwarf.c:3608
-#, c-format
-msgid "unsupported or unknown DW_CFA_%d\n"
-msgstr ""
-
-#: dwarf.c:3632
-#, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr ""
-
-#: dwarf.c:3674
-#, c-format
-msgid "%s: Error: "
-msgstr ""
-
-#: dwarf.c:3685
-#, c-format
-msgid "%s: Warning: "
-msgstr ""
-
-#: emul_aix.c:51
-#, c-format
-msgid " [-g] - 32 bit small archive\n"
-msgstr ""
-
-#: emul_aix.c:52
-#, c-format
-msgid " [-X32] - ignores 64 bit objects\n"
-msgstr ""
-
-#: emul_aix.c:53
-#, c-format
-msgid " [-X64] - ignores 32 bit objects\n"
-msgstr ""
-
-#: emul_aix.c:54
-#, c-format
-msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
-msgstr ""
-
-#: ieee.c:311
-msgid "unexpected end of debugging information"
-msgstr ""
-
-#: ieee.c:398
-msgid "invalid number"
-msgstr ""
-
-#: ieee.c:451
-msgid "invalid string length"
-msgstr ""
-
-#: ieee.c:506 ieee.c:547
-msgid "expression stack overflow"
-msgstr ""
-
-#: ieee.c:526
-msgid "unsupported IEEE expression operator"
-msgstr ""
-
-#: ieee.c:541
-msgid "unknown section"
-msgstr ""
-
-#: ieee.c:562
-msgid "expression stack underflow"
-msgstr ""
-
-#: ieee.c:576
-msgid "expression stack mismatch"
-msgstr ""
-
-#: ieee.c:613
-msgid "unknown builtin type"
-msgstr ""
-
-#: ieee.c:758
-msgid "BCD float type not supported"
-msgstr ""
-
-#: ieee.c:895
-msgid "unexpected number"
-msgstr ""
-
-#: ieee.c:902
-msgid "unexpected record type"
-msgstr ""
-
-#: ieee.c:935
-msgid "blocks left on stack at end"
-msgstr ""
-
-#: ieee.c:1198
-msgid "unknown BB type"
-msgstr ""
-
-#: ieee.c:1207
-msgid "stack overflow"
-msgstr ""
-
-#: ieee.c:1230
-msgid "stack underflow"
-msgstr ""
-
-#: ieee.c:1342 ieee.c:1412 ieee.c:2109
-msgid "illegal variable index"
-msgstr ""
-
-#: ieee.c:1390
-msgid "illegal type index"
-msgstr ""
-
-#: ieee.c:1400 ieee.c:1437
-msgid "unknown TY code"
-msgstr ""
-
-#: ieee.c:1419
-msgid "undefined variable in TY"
-msgstr ""
-
-#. Pascal file name. FIXME.
-#: ieee.c:1830
-msgid "Pascal file name not supported"
-msgstr ""
-
-#: ieee.c:1878
-msgid "unsupported qualifier"
-msgstr ""
-
-#: ieee.c:2147
-msgid "undefined variable in ATN"
-msgstr ""
-
-#: ieee.c:2190
-msgid "unknown ATN type"
-msgstr ""
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2312
-msgid "unsupported ATN11"
-msgstr ""
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2339
-msgid "unsupported ATN12"
-msgstr ""
-
-#: ieee.c:2399
-msgid "unexpected string in C++ misc"
-msgstr ""
-
-#: ieee.c:2412
-msgid "bad misc record"
-msgstr ""
-
-#: ieee.c:2453
-msgid "unrecognized C++ misc record"
-msgstr ""
-
-#: ieee.c:2568
-msgid "undefined C++ object"
-msgstr ""
-
-#: ieee.c:2602
-msgid "unrecognized C++ object spec"
-msgstr ""
-
-#: ieee.c:2638
-msgid "unsupported C++ object type"
-msgstr ""
-
-#: ieee.c:2648
-msgid "C++ base class not defined"
-msgstr ""
-
-#: ieee.c:2660 ieee.c:2765
-msgid "C++ object has no fields"
-msgstr ""
-
-#: ieee.c:2679
-msgid "C++ base class not found in container"
-msgstr ""
-
-#: ieee.c:2786
-msgid "C++ data member not found in container"
-msgstr ""
-
-#: ieee.c:2827 ieee.c:2977
-msgid "unknown C++ visibility"
-msgstr ""
-
-#: ieee.c:2861
-msgid "bad C++ field bit pos or size"
-msgstr ""
-
-#: ieee.c:2953
-msgid "bad type for C++ method function"
-msgstr ""
-
-#: ieee.c:2963
-msgid "no type information for C++ method function"
-msgstr ""
-
-#: ieee.c:3002
-msgid "C++ static virtual method"
-msgstr ""
-
-#: ieee.c:3097
-msgid "unrecognized C++ object overhead spec"
-msgstr ""
-
-#: ieee.c:3136
-msgid "undefined C++ vtable"
-msgstr ""
-
-#: ieee.c:3205
-msgid "C++ default values not in a function"
-msgstr ""
-
-#: ieee.c:3245
-msgid "unrecognized C++ default type"
-msgstr ""
-
-#: ieee.c:3276
-msgid "reference parameter is not a pointer"
-msgstr ""
-
-#: ieee.c:3359
-msgid "unrecognized C++ reference type"
-msgstr ""
-
-#: ieee.c:3441
-msgid "C++ reference not found"
-msgstr ""
-
-#: ieee.c:3449
-msgid "C++ reference is not pointer"
-msgstr ""
-
-#: ieee.c:3475 ieee.c:3483
-msgid "missing required ASN"
-msgstr ""
-
-#: ieee.c:3510 ieee.c:3518
-msgid "missing required ATN65"
-msgstr ""
-
-#: ieee.c:3532
-msgid "bad ATN65 record"
-msgstr ""
-
-#: ieee.c:4160
-#, c-format
-msgid "IEEE numeric overflow: 0x"
-msgstr ""
-
-#: ieee.c:4204
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr ""
-
-#: ieee.c:5203
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr ""
-
-#: ieee.c:5237
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr ""
-
-#: ieee.c:5271
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr ""
-
-#: nlmconv.c:269 srconv.c:1813
-msgid "input and output files must be different"
-msgstr ""
-
-#: nlmconv.c:316
-msgid "input file named both on command line and with INPUT"
-msgstr ""
-
-#: nlmconv.c:325
-msgid "no input file"
-msgstr ""
-
-#: nlmconv.c:355
-msgid "no name for output file"
-msgstr ""
-
-#: nlmconv.c:369
-msgid "warning: input and output formats are not compatible"
-msgstr ""
-
-#: nlmconv.c:398
-msgid "make .bss section"
-msgstr ""
-
-#: nlmconv.c:407
-msgid "make .nlmsections section"
-msgstr ""
-
-#: nlmconv.c:409
-msgid "set .nlmsections flags"
-msgstr ""
-
-#: nlmconv.c:437
-msgid "set .bss vma"
-msgstr ""
-
-#: nlmconv.c:444
-msgid "set .data size"
-msgstr ""
-
-#: nlmconv.c:624
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr ""
-
-#: nlmconv.c:644
-msgid "set start address"
-msgstr ""
-
-#: nlmconv.c:693
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr ""
-
-#: nlmconv.c:695
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr ""
-
-#: nlmconv.c:697
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr ""
-
-#: nlmconv.c:718 nlmconv.c:907
-msgid "custom section"
-msgstr ""
-
-#: nlmconv.c:739 nlmconv.c:936
-msgid "help section"
-msgstr ""
-
-#: nlmconv.c:761 nlmconv.c:954
-msgid "message section"
-msgstr ""
-
-#: nlmconv.c:777 nlmconv.c:987
-msgid "module section"
-msgstr ""
-
-#: nlmconv.c:797 nlmconv.c:1003
-msgid "rpc section"
-msgstr ""
-
-#. There is no place to record this information.
-#: nlmconv.c:833
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr ""
-
-#: nlmconv.c:854 nlmconv.c:1022
-msgid "shared section"
-msgstr ""
-
-#: nlmconv.c:862
-msgid "warning: No version number given"
-msgstr ""
-
-#: nlmconv.c:902 nlmconv.c:931 nlmconv.c:949 nlmconv.c:998 nlmconv.c:1017
-#, c-format
-msgid "%s: read: %s"
-msgstr ""
-
-#: nlmconv.c:924
-msgid "warning: FULLMAP is not supported; try ld -M"
-msgstr ""
-
-#: nlmconv.c:1100
-#, c-format
-msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
-msgstr ""
-
-#: nlmconv.c:1101
-#, c-format
-msgid " Convert an object file into a NetWare Loadable Module\n"
-msgstr ""
-
-#: nlmconv.c:1102
-#, c-format
-msgid ""
-" The options are:\n"
-" -I --input-target=<bfdname> Set the input binary file format\n"
-" -O --output-target=<bfdname> Set the output binary file format\n"
-" -T --header-file=<file> Read <file> for NLM header information\n"
-" -l --linker=<linker> Use <linker> for any linking\n"
-" -d --debug Display on stderr the linker command line\n"
-" @<file> Read options from <file>.\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-msgstr ""
-
-#: nlmconv.c:1143
-#, c-format
-msgid "support not compiled in for %s"
-msgstr ""
-
-#: nlmconv.c:1180
-msgid "make section"
-msgstr ""
-
-#: nlmconv.c:1194
-msgid "set section size"
-msgstr ""
-
-#: nlmconv.c:1200
-msgid "set section alignment"
-msgstr ""
-
-#: nlmconv.c:1204
-msgid "set section flags"
-msgstr ""
-
-#: nlmconv.c:1215
-msgid "set .nlmsections size"
-msgstr ""
-
-#: nlmconv.c:1296 nlmconv.c:1304 nlmconv.c:1313 nlmconv.c:1318
-msgid "set .nlmsection contents"
-msgstr ""
-
-#: nlmconv.c:1797
-msgid "stub section sizes"
-msgstr ""
-
-#: nlmconv.c:1844
-msgid "writing stub"
-msgstr ""
-
-#: nlmconv.c:1928
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr ""
-
-#: nlmconv.c:1992
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr ""
-
-#: nlmconv.c:2119
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr ""
-
-#: nlmconv.c:2134
-#, c-format
-msgid "Execution of %s failed"
-msgstr ""
-
-#: nm.c:224 size.c:82 strings.c:708
-#, c-format
-msgid "Usage: %s [option(s)] [file(s)]\n"
-msgstr ""
-
-#: nm.c:225
-#, c-format
-msgid " List symbols in [file(s)] (a.out by default).\n"
-msgstr ""
-
-#: nm.c:226
-#, c-format
-msgid ""
-" The options are:\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level "
-"names\n"
-" The STYLE, if specified, can be `auto' (the "
-"default),\n"
-" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', "
-"`java'\n"
-" or `gnat'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be "
-"`bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -S, --print-size Print size of defined symbols\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" --special-syms Include special symbols in the output\n"
-" --synthetic Display synthetic symbols as well\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -X 32_64 (ignored)\n"
-" @FILE Read options from FILE\n"
-" -h, --help Display this information\n"
-" -V, --version Display this program's version number\n"
-"\n"
-msgstr ""
-
-#: nm.c:263 objdump.c:236
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr ""
-
-#: nm.c:295
-#, c-format
-msgid "%s: invalid radix"
-msgstr ""
-
-#: nm.c:319
-#, c-format
-msgid "%s: invalid output format"
-msgstr ""
-
-#: nm.c:340 readelf.c:6623 readelf.c:6659
-#, c-format
-msgid "<processor specific>: %d"
-msgstr ""
-
-#: nm.c:342 readelf.c:6626 readelf.c:6671
-#, c-format
-msgid "<OS specific>: %d"
-msgstr ""
-
-#: nm.c:344 readelf.c:6628 readelf.c:6674
-#, c-format
-msgid "<unknown>: %d"
-msgstr ""
-
-#: nm.c:381
-#, c-format
-msgid ""
-"\n"
-"Archive index:\n"
-msgstr ""
-
-#: nm.c:1227
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s:\n"
-"\n"
-msgstr ""
-
-#: nm.c:1229
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr ""
-
-#: nm.c:1231 nm.c:1282
-#, c-format
-msgid ""
-"Name Value Class Type Size Line "
-"Section\n"
-"\n"
-msgstr ""
-
-#: nm.c:1234 nm.c:1285
-#, c-format
-msgid ""
-"Name Value Class Type "
-"Size Line Section\n"
-"\n"
-msgstr ""
-
-#: nm.c:1278
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-
-#: nm.c:1280
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-
-#: nm.c:1584
-msgid "Only -X 32_64 is supported"
-msgstr ""
-
-#: nm.c:1604
-msgid "Using the --size-sort and --undefined-only options together"
-msgstr ""
-
-#: nm.c:1605
-msgid "will produce no output, since undefined symbols have no size."
-msgstr ""
-
-#: nm.c:1633
-#, c-format
-msgid "data size %ld"
-msgstr ""
-
-#: objcopy.c:401 srconv.c:1721
-#, c-format
-msgid "Usage: %s [option(s)] in-file [out-file]\n"
-msgstr ""
-
-#: objcopy.c:402
-#, c-format
-msgid " Copies a binary file, possibly transforming it in the process\n"
-msgstr ""
-
-#: objcopy.c:403 objcopy.c:495
-#, c-format
-msgid " The options are:\n"
-msgstr ""
-
-#: objcopy.c:404
-#, c-format
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format "
-"<bfdname>\n"
-" -B --binary-architecture <arch> Set arch of output file, when input is "
-"binary\n"
-" -F --target <bfdname> Set both input and output format to "
-"<bfdname>\n"
-" --debugging Convert debugging information, if "
-"possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the "
-"output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to "
-"<file>\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation "
-"information\n"
-" -g --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by "
-"relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" --strip-unneeded-symbol <name>\n"
-" Do not copy symbol <name> unless needed "
-"by\n"
-" relocations\n"
-" --only-keep-debug Strip everything but the debug "
-"information\n"
-" -K --keep-symbol <name> Do not strip symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a "
-"local\n"
-" --globalize-symbol <name> Force symbol <name> to be marked as a "
-"global\n"
-" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a "
-"weak\n"
-" --weaken Force all global symbols to be marked as "
-"weak\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> "
-"bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved "
-"block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address "
-"<addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start "
-"addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by "
-"<val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by "
-"<val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by "
-"<val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to "
-"<flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to "
-"output\n"
-" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-" --change-leading-char Force output format's leading character "
-"style\n"
-" --remove-leading-char Remove leading character from global "
-"symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --redefine-syms <file> --redefine-sym for all symbol pairs \n"
-" listed in <file>\n"
-" --srec-len <number> Restrict the length of generated "
-"Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords "
-"to S3\n"
-" --strip-symbols <file> -N for all symbols listed in <file>\n"
-" --strip-unneeded-symbols <file>\n"
-" --strip-unneeded-symbol for all symbols "
-"listed\n"
-" in <file>\n"
-" --keep-symbols <file> -K for all symbols listed in <file>\n"
-" --localize-symbols <file> -L for all symbols listed in <file>\n"
-" --globalize-symbols <file> --globalize-symbol for all in <file>\n"
-" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-" --weaken-symbols <file> -W for all symbols listed in <file>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" --writable-text Mark the output text as writable\n"
-" --readonly-text Make the output text write protected\n"
-" --pure Mark the output file as demand paged\n"
-" --impure Mark the output file as impure\n"
-" --prefix-symbols <prefix> Add <prefix> to start of every symbol "
-"name\n"
-" --prefix-sections <prefix> Add <prefix> to start of every section "
-"name\n"
-" --prefix-alloc-sections <prefix>\n"
-" Add <prefix> to start of every "
-"allocatable\n"
-" section name\n"
-" -v --verbose List all object files modified\n"
-" @<file> Read options from <file>\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures "
-"supported\n"
-msgstr ""
-
-#: objcopy.c:493
-#, c-format
-msgid "Usage: %s <option(s)> in-file(s)\n"
-msgstr ""
-
-#: objcopy.c:494
-#, c-format
-msgid " Removes symbols and sections from files\n"
-msgstr ""
-
-#: objcopy.c:496
-#, c-format
-msgid ""
-" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target=<bfdname> Create an output file in format "
-"<bfdname>\n"
-" -F --target=<bfdname> Set both input and output format to "
-"<bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the "
-"output\n"
-" -R --remove-section=<name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation "
-"information\n"
-" -g -S -d --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by "
-"relocations\n"
-" --only-keep-debug Strip everything but the debug "
-"information\n"
-" -N --strip-symbol=<name> Do not copy symbol <name>\n"
-" -K --keep-symbol=<name> Do not strip symbol <name>\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures "
-"supported\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr ""
-
-#: objcopy.c:568
-#, c-format
-msgid "unrecognized section flag `%s'"
-msgstr ""
-
-#: objcopy.c:569
-#, c-format
-msgid "supported flags: %s"
-msgstr ""
-
-#: objcopy.c:646
-#, c-format
-msgid "cannot open '%s': %s"
-msgstr ""
-
-#: objcopy.c:649 objcopy.c:2722
-#, c-format
-msgid "%s: fread failed"
-msgstr ""
-
-#: objcopy.c:722
-#, c-format
-msgid "%s:%d: Ignoring rubbish found on this line"
-msgstr ""
-
-#: objcopy.c:996
-#, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr ""
-
-#: objcopy.c:1000
-#, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr ""
-
-#: objcopy.c:1028
-#, c-format
-msgid "couldn't open symbol redefinition file %s (error: %s)"
-msgstr ""
-
-#: objcopy.c:1106
-#, c-format
-msgid "%s:%d: garbage found at end of line"
-msgstr ""
-
-#: objcopy.c:1109
-#, c-format
-msgid "%s:%d: missing new symbol name"
-msgstr ""
-
-#: objcopy.c:1119
-#, c-format
-msgid "%s:%d: premature end of file"
-msgstr ""
-
-#: objcopy.c:1145
-#, c-format
-msgid "stat returns negative size for `%s'"
-msgstr ""
-
-#: objcopy.c:1157
-#, c-format
-msgid "copy from `%s' [unknown] to `%s' [unknown]\n"
-msgstr ""
-
-#: objcopy.c:1212
-msgid "Unable to change endianness of input file(s)"
-msgstr ""
-
-#: objcopy.c:1221
-#, c-format
-msgid "copy from `%s' [%s] to `%s' [%s]\n"
-msgstr ""
-
-#: objcopy.c:1258 objcopy.c:1715
-#, c-format
-msgid "Unable to recognise the format of the input file `%s'"
-msgstr ""
-
-#: objcopy.c:1261
-#, c-format
-msgid "Warning: Output file cannot represent architecture `%s'"
-msgstr ""
-
-#: objcopy.c:1305
-#, c-format
-msgid "can't create section `%s': %s"
-msgstr ""
-
-#: objcopy.c:1356
-msgid "there are no sections to be copied!"
-msgstr ""
-
-#: objcopy.c:1402
-#, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr ""
-
-#: objcopy.c:1427
-#, c-format
-msgid "Can't add padding to %s: %s"
-msgstr ""
-
-#: objcopy.c:1594
-#, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr ""
-
-#: objcopy.c:1605
-msgid "unknown alternate machine code, ignored"
-msgstr ""
-
-#: objcopy.c:1635 objcopy.c:1665
-#, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr ""
-
-#: objcopy.c:1787
-#, c-format
-msgid "error: the input file '%s' is empty"
-msgstr ""
-
-#: objcopy.c:1889
-#, c-format
-msgid "Multiple renames of section %s"
-msgstr ""
-
-#: objcopy.c:1940
-msgid "private header data"
-msgstr ""
-
-#: objcopy.c:1948
-#, c-format
-msgid "%s: error in %s: %s"
-msgstr ""
-
-#: objcopy.c:2007
-msgid "making"
-msgstr ""
-
-#: objcopy.c:2022
-msgid "size"
-msgstr ""
-
-#: objcopy.c:2036
-msgid "vma"
-msgstr ""
-
-#: objcopy.c:2061
-msgid "alignment"
-msgstr ""
-
-#: objcopy.c:2083
-msgid "private data"
-msgstr ""
-
-#: objcopy.c:2091
-#, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr ""
-
-#: objcopy.c:2363
-#, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr ""
-
-#: objcopy.c:2377
-#, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr ""
-
-#: objcopy.c:2386
-#, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr ""
-
-#: objcopy.c:2561
-msgid "byte number must be non-negative"
-msgstr ""
-
-#: objcopy.c:2571
-msgid "interleave must be positive"
-msgstr ""
-
-#: objcopy.c:2591 objcopy.c:2599
-#, c-format
-msgid "%s both copied and removed"
-msgstr ""
-
-#: objcopy.c:2696 objcopy.c:2767 objcopy.c:2867 objcopy.c:2898 objcopy.c:2922
-#: objcopy.c:2926 objcopy.c:2946
-#, c-format
-msgid "bad format for %s"
-msgstr ""
-
-#: objcopy.c:2717
-#, c-format
-msgid "cannot open: %s: %s"
-msgstr ""
-
-#: objcopy.c:2836
-#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr ""
-
-#: objcopy.c:3000
-msgid "alternate machine code index must be positive"
-msgstr ""
-
-#: objcopy.c:3058
-msgid "byte number must be less than interleave"
-msgstr ""
-
-#: objcopy.c:3088
-#, c-format
-msgid "architecture %s unknown"
-msgstr ""
-
-#: objcopy.c:3092
-msgid ""
-"Warning: input target 'binary' required for binary architecture parameter."
-msgstr ""
-
-#: objcopy.c:3093
-#, c-format
-msgid " Argument %s ignored"
-msgstr ""
-
-#: objcopy.c:3099
-#, c-format
-msgid "warning: could not locate '%s'. System error message: %s"
-msgstr ""
-
-#: objcopy.c:3141 objcopy.c:3155
-#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr ""
-
-#: objdump.c:178
-#, c-format
-msgid "Usage: %s <option(s)> <file(s)>\n"
-msgstr ""
-
-#: objdump.c:179
-#, c-format
-msgid " Display information from object <file(s)>.\n"
-msgstr ""
-
-#: objdump.c:180
-#, c-format
-msgid " At least one of the following switches must be given:\n"
-msgstr ""
-
-#: objdump.c:181
-#, c-format
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header "
-"contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable "
-"sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections "
-"requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -e, --debugging-tags Display debug information using ctags style\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -W, --dwarf Display DWARF info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the "
-"file\n"
-" @<file> Read options from <file>\n"
-" -v, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-
-#: objdump.c:206
-#, c-format
-msgid ""
-"\n"
-" The following switches are optional:\n"
-msgstr ""
-
-#: objdump.c:207
-#, c-format
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as "
-"BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when "
-"disassembling\n"
-" -EL --endian=little Assume little endian format when "
-"disassembling\n"
-" --file-start-context Include context from start of file (with -"
-"S)\n"
-" -I, --include=DIR Add DIR to search list for source files\n"
-" -l, --line-numbers Include line numbers and filenames in "
-"output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', "
-"`gnu',\n"
-" `lucid', `arm', `hp', `edg', `gnu-v3', "
-"`java'\n"
-" or `gnat'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when "
-"disassembling\n"
-" --start-address=ADDR Only process data whose address is >= ADDR\n"
-" --stop-address=ADDR Only process data whose address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside "
-"disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section "
-"addresses\n"
-" --special-syms Include special symbols in symbol dumps\n"
-"\n"
-msgstr ""
-
-#: objdump.c:389
-#, c-format
-msgid "Sections:\n"
-msgstr ""
-
-#: objdump.c:392 objdump.c:396
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr ""
-
-#: objdump.c:398
-#, c-format
-msgid ""
-"Idx Name Size VMA LMA File off "
-"Algn"
-msgstr ""
-
-#: objdump.c:402
-#, c-format
-msgid " Flags"
-msgstr ""
-
-#: objdump.c:404
-#, c-format
-msgid " Pg"
-msgstr ""
-
-#: objdump.c:447
-#, c-format
-msgid "%s: not a dynamic object"
-msgstr ""
-
-#: objdump.c:1735
-#, c-format
-msgid "Disassembly of section %s:\n"
-msgstr ""
-
-#: objdump.c:1897
-#, c-format
-msgid "Can't use supplied machine %s"
-msgstr ""
-
-#: objdump.c:1916
-#, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr ""
-
-#: objdump.c:2006
-#, c-format
-msgid ""
-"\n"
-"Can't get contents for section '%s'.\n"
-msgstr ""
-
-#: objdump.c:2143
-#, c-format
-msgid ""
-"No %s section present\n"
-"\n"
-msgstr ""
-
-#: objdump.c:2152
-#, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr ""
-
-#: objdump.c:2196
-#, c-format
-msgid ""
-"Contents of %s section:\n"
-"\n"
-msgstr ""
-
-#: objdump.c:2323
-#, c-format
-msgid "architecture: %s, "
-msgstr ""
-
-#: objdump.c:2326
-#, c-format
-msgid "flags 0x%08x:\n"
-msgstr ""
-
-#: objdump.c:2340
-#, c-format
-msgid ""
-"\n"
-"start address 0x"
-msgstr ""
-
-#: objdump.c:2380
-#, c-format
-msgid "Contents of section %s:\n"
-msgstr ""
-
-#: objdump.c:2505
-#, c-format
-msgid "no symbols\n"
-msgstr ""
-
-#: objdump.c:2512
-#, c-format
-msgid "no information for symbol number %ld\n"
-msgstr ""
-
-#: objdump.c:2515
-#, c-format
-msgid "could not determine the type of symbol number %ld\n"
-msgstr ""
-
-#: objdump.c:2788
-#, c-format
-msgid ""
-"\n"
-"%s: file format %s\n"
-msgstr ""
-
-#: objdump.c:2845
-#, c-format
-msgid "%s: printing debugging information failed"
-msgstr ""
-
-#: objdump.c:2936
-#, c-format
-msgid "In archive %s:\n"
-msgstr ""
-
-#: objdump.c:3058
-msgid "unrecognized -E option"
-msgstr ""
-
-#: objdump.c:3069
-#, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr ""
-
-#: rdcoff.c:196
-#, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr ""
-
-#: rdcoff.c:404 rdcoff.c:509 rdcoff.c:697
-#, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr ""
-
-#: rdcoff.c:420 rdcoff.c:717
-#, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr ""
-
-#: rdcoff.c:784
-#, c-format
-msgid "%ld: .bf without preceding function"
-msgstr ""
-
-#: rdcoff.c:834
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr ""
-
-#: rddbg.c:85
-#, c-format
-msgid "%s: no recognized debugging information"
-msgstr ""
-
-#: rddbg.c:394
-#, c-format
-msgid "Last stabs entries before error:\n"
-msgstr ""
-
-#: readelf.c:264
-#, c-format
-msgid "Unable to seek to 0x%lx for %s\n"
-msgstr ""
-
-#: readelf.c:279
-#, c-format
-msgid "Out of memory allocating 0x%lx bytes for %s\n"
-msgstr ""
-
-#: readelf.c:289
-#, c-format
-msgid "Unable to read in 0x%lx bytes of %s\n"
-msgstr ""
-
-#: readelf.c:623
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr ""
-
-#: readelf.c:643 readelf.c:671 readelf.c:715 readelf.c:743
-msgid "relocs"
-msgstr ""
-
-#: readelf.c:654 readelf.c:682 readelf.c:726 readelf.c:754
-msgid "out of memory parsing relocs"
-msgstr ""
-
-#: readelf.c:808
-#, c-format
-msgid ""
-" Offset Info Type Sym. Value Symbol's Name + Addend\n"
-msgstr ""
-
-#: readelf.c:810
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
-msgstr ""
-
-#: readelf.c:815
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name\n"
-msgstr ""
-
-#: readelf.c:817
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name\n"
-msgstr ""
-
-#: readelf.c:825
-#, c-format
-msgid ""
-" Offset Info Type Symbol's Value "
-"Symbol's Name + Addend\n"
-msgstr ""
-
-#: readelf.c:827
-#, c-format
-msgid ""
-" Offset Info Type Sym. Value Sym. Name + "
-"Addend\n"
-msgstr ""
-
-#: readelf.c:832
-#, c-format
-msgid ""
-" Offset Info Type Symbol's Value "
-"Symbol's Name\n"
-msgstr ""
-
-#: readelf.c:834
-#, c-format
-msgid ""
-" Offset Info Type Sym. Value Sym. Name\n"
-msgstr ""
-
-#: readelf.c:1127 readelf.c:1129 readelf.c:1238 readelf.c:1240 readelf.c:1249
-#: readelf.c:1251
-#, c-format
-msgid "unrecognized: %-7lx"
-msgstr ""
-
-#: readelf.c:1154
-#, c-format
-msgid "<unknown addend: %lx>"
-msgstr ""
-
-#: readelf.c:1210
-#, c-format
-msgid "<string table index: %3ld>"
-msgstr ""
-
-#: readelf.c:1212
-#, c-format
-msgid "<corrupt string table index: %3ld>"
-msgstr ""
-
-#: readelf.c:1522
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr ""
-
-#: readelf.c:1543
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr ""
-
-#: readelf.c:1547 readelf.c:2349
-#, c-format
-msgid "<unknown>: %lx"
-msgstr ""
-
-#: readelf.c:1560
-msgid "NONE (None)"
-msgstr ""
-
-#: readelf.c:1561
-msgid "REL (Relocatable file)"
-msgstr ""
-
-#: readelf.c:1562
-msgid "EXEC (Executable file)"
-msgstr ""
-
-#: readelf.c:1563
-msgid "DYN (Shared object file)"
-msgstr ""
-
-#: readelf.c:1564
-msgid "CORE (Core file)"
-msgstr ""
-
-#: readelf.c:1568
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr ""
-
-#: readelf.c:1570
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr ""
-
-#: readelf.c:1572 readelf.c:1681 readelf.c:2541
-#, c-format
-msgid "<unknown>: %x"
-msgstr ""
-
-#: readelf.c:1584
-msgid "None"
-msgstr ""
-
-#: readelf.c:2186
-msgid "Standalone App"
-msgstr ""
-
-#: readelf.c:2189 readelf.c:2948 readelf.c:2964
-#, c-format
-msgid "<unknown: %x>"
-msgstr ""
-
-#: readelf.c:2586
-#, c-format
-msgid "Usage: readelf <option(s)> elf-file(s)\n"
-msgstr ""
-
-#: readelf.c:2587
-#, c-format
-msgid " Display information about the contents of ELF format files\n"
-msgstr ""
-
-#: readelf.c:2588
-#, c-format
-msgid ""
-" Options are:\n"
-" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Display the ELF file header\n"
-" -l --program-headers Display the program headers\n"
-" --segments An alias for --program-headers\n"
-" -S --section-headers Display the sections' header\n"
-" --sections An alias for --section-headers\n"
-" -g --section-groups Display the section groups\n"
-" -t --section-details Display the section details\n"
-" -e --headers Equivalent to: -h -l -S\n"
-" -s --syms Display the symbol table\n"
-" --symbols An alias for --syms\n"
-" -n --notes Display the core notes (if present)\n"
-" -r --relocs Display the relocations (if present)\n"
-" -u --unwind Display the unwind info (if present)\n"
-" -d --dynamic Display the dynamic section (if present)\n"
-" -V --version-info Display the version sections (if present)\n"
-" -A --arch-specific Display architecture specific information (if "
-"any).\n"
-" -D --use-dynamic Use the dynamic section info when displaying "
-"symbols\n"
-" -x --hex-dump=<number> Dump the contents of section <number>\n"
-" -w[liaprmfFsoR] or\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,"
-"=loc,=Ranges]\n"
-" Display the contents of DWARF2 debug sections\n"
-msgstr ""
-
-#: readelf.c:2612
-#, c-format
-msgid ""
-" -i --instruction-dump=<number>\n"
-" Disassemble the contents of section <number>\n"
-msgstr ""
-
-#: readelf.c:2616
-#, c-format
-msgid ""
-" -I --histogram Display histogram of bucket list lengths\n"
-" -W --wide Allow output width to exceed 80 characters\n"
-" @<file> Read options from <file>\n"
-" -H --help Display this information\n"
-" -v --version Display the version number of readelf\n"
-msgstr ""
-
-#: readelf.c:2642 readelf.c:9180
-msgid "Out of memory allocating dump request table."
-msgstr ""
-
-#: readelf.c:2816 readelf.c:2884
-#, c-format
-msgid "Unrecognized debug option '%s'\n"
-msgstr ""
-
-#: readelf.c:2918
-#, c-format
-msgid "Invalid option '-%c'\n"
-msgstr ""
-
-#: readelf.c:2932
-msgid "Nothing to do.\n"
-msgstr ""
-
-#: readelf.c:2944 readelf.c:2960 readelf.c:6169
-msgid "none"
-msgstr ""
-
-#: readelf.c:2961
-msgid "2's complement, little endian"
-msgstr ""
-
-#: readelf.c:2962
-msgid "2's complement, big endian"
-msgstr ""
-
-#: readelf.c:2980
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr ""
-
-#: readelf.c:2988
-#, c-format
-msgid "ELF Header:\n"
-msgstr ""
-
-#: readelf.c:2989
-#, c-format
-msgid " Magic: "
-msgstr ""
-
-#: readelf.c:2993
-#, c-format
-msgid " Class: %s\n"
-msgstr ""
-
-#: readelf.c:2995
-#, c-format
-msgid " Data: %s\n"
-msgstr ""
-
-#: readelf.c:2997
-#, c-format
-msgid " Version: %d %s\n"
-msgstr ""
-
-#: readelf.c:3004
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr ""
-
-#: readelf.c:3006
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr ""
-
-#: readelf.c:3008
-#, c-format
-msgid " Type: %s\n"
-msgstr ""
-
-#: readelf.c:3010
-#, c-format
-msgid " Machine: %s\n"
-msgstr ""
-
-#: readelf.c:3012
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr ""
-
-#: readelf.c:3015
-#, c-format
-msgid " Entry point address: "
-msgstr ""
-
-#: readelf.c:3017
-#, c-format
-msgid ""
-"\n"
-" Start of program headers: "
-msgstr ""
-
-#: readelf.c:3019
-#, c-format
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr ""
-
-#: readelf.c:3021
-#, c-format
-msgid " (bytes into file)\n"
-msgstr ""
-
-#: readelf.c:3023
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr ""
-
-#: readelf.c:3026
-#, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr ""
-
-#: readelf.c:3028
-#, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr ""
-
-#: readelf.c:3030
-#, c-format
-msgid " Number of program headers: %ld\n"
-msgstr ""
-
-#: readelf.c:3032
-#, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr ""
-
-#: readelf.c:3034
-#, c-format
-msgid " Number of section headers: %ld"
-msgstr ""
-
-#: readelf.c:3039
-#, c-format
-msgid " Section header string table index: %ld"
-msgstr ""
-
-#: readelf.c:3070 readelf.c:3103
-msgid "program headers"
-msgstr ""
-
-#: readelf.c:3141 readelf.c:3440 readelf.c:3481 readelf.c:3540 readelf.c:3603
-#: readelf.c:4208 readelf.c:4232 readelf.c:5510 readelf.c:5554 readelf.c:5752
-#: readelf.c:6734 readelf.c:6748 readelf.c:8564 readelf.c:8972 readelf.c:9039
-msgid "Out of memory\n"
-msgstr ""
-
-#: readelf.c:3168
-#, c-format
-msgid ""
-"\n"
-"There are no program headers in this file.\n"
-msgstr ""
-
-#: readelf.c:3174
-#, c-format
-msgid ""
-"\n"
-"Elf file type is %s\n"
-msgstr ""
-
-#: readelf.c:3175
-#, c-format
-msgid "Entry point "
-msgstr ""
-
-#: readelf.c:3177
-#, c-format
-msgid ""
-"\n"
-"There are %d program headers, starting at offset "
-msgstr ""
-
-#: readelf.c:3189 readelf.c:3191
-#, c-format
-msgid ""
-"\n"
-"Program Headers:\n"
-msgstr ""
-
-#: readelf.c:3195
-#, c-format
-msgid ""
-" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr ""
-
-#: readelf.c:3198
-#, c-format
-msgid ""
-" Type Offset VirtAddr PhysAddr FileSiz "
-"MemSiz Flg Align\n"
-msgstr ""
-
-#: readelf.c:3202
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr ""
-
-#: readelf.c:3204
-#, c-format
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr ""
-
-#: readelf.c:3297
-msgid "more than one dynamic segment\n"
-msgstr ""
-
-#: readelf.c:3308
-msgid "no .dynamic section in the dynamic segment"
-msgstr ""
-
-#: readelf.c:3317
-msgid "the .dynamic section is not contained within the dynamic segment"
-msgstr ""
-
-#: readelf.c:3319
-msgid "the .dynamic section is not the first section in the dynamic segment."
-msgstr ""
-
-#: readelf.c:3333
-msgid "Unable to find program interpreter name\n"
-msgstr ""
-
-#: readelf.c:3340
-#, c-format
-msgid ""
-"\n"
-" [Requesting program interpreter: %s]"
-msgstr ""
-
-#: readelf.c:3352
-#, c-format
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-msgstr ""
-
-#: readelf.c:3353
-#, c-format
-msgid " Segment Sections...\n"
-msgstr ""
-
-#: readelf.c:3402
-msgid "Cannot interpret virtual addresses without program headers.\n"
-msgstr ""
-
-#: readelf.c:3418
-#, c-format
-msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
-msgstr ""
-
-#: readelf.c:3432 readelf.c:3473
-msgid "section headers"
-msgstr ""
-
-#: readelf.c:3517 readelf.c:3580
-msgid "symbols"
-msgstr ""
-
-#: readelf.c:3527 readelf.c:3590
-msgid "symtab shndx"
-msgstr ""
-
-#: readelf.c:3817 readelf.c:4192
-#, c-format
-msgid ""
-"\n"
-"There are no sections in this file.\n"
-msgstr ""
-
-#: readelf.c:3823
-#, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr ""
-
-#: readelf.c:3842 readelf.c:4309 readelf.c:4544 readelf.c:4852 readelf.c:5267
-#: readelf.c:6906
-msgid "string table"
-msgstr ""
-
-#: readelf.c:3881
-#, c-format
-msgid "Section %d has invalid sh_entsize %lx (expected %lx)\n"
-msgstr ""
-
-#: readelf.c:3901
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr ""
-
-#: readelf.c:3914
-msgid "File contains multiple dynamic string tables\n"
-msgstr ""
-
-#: readelf.c:3919
-msgid "dynamic strings"
-msgstr ""
-
-#: readelf.c:3926
-msgid "File contains multiple symtab shndx tables\n"
-msgstr ""
-
-#: readelf.c:3973
-#, c-format
-msgid ""
-"\n"
-"Section Headers:\n"
-msgstr ""
-
-#: readelf.c:3975
-#, c-format
-msgid ""
-"\n"
-"Section Header:\n"
-msgstr ""
-
-#: readelf.c:3981 readelf.c:3992 readelf.c:4003
-#, c-format
-msgid " [Nr] Name\n"
-msgstr ""
-
-#: readelf.c:3982
-#, c-format
-msgid " Type Addr Off Size ES Lk Inf Al\n"
-msgstr ""
-
-#: readelf.c:3986
-#, c-format
-msgid ""
-" [Nr] Name Type Addr Off Size ES Flg Lk "
-"Inf Al\n"
-msgstr ""
-
-#: readelf.c:3993
-#, c-format
-msgid " Type Address Off Size ES Lk Inf Al\n"
-msgstr ""
-
-#: readelf.c:3997
-#, c-format
-msgid ""
-" [Nr] Name Type Address Off Size ES "
-"Flg Lk Inf Al\n"
-msgstr ""
-
-#: readelf.c:4004
-#, c-format
-msgid " Type Address Offset Link\n"
-msgstr ""
-
-#: readelf.c:4005
-#, c-format
-msgid " Size EntSize Info Align\n"
-msgstr ""
-
-#: readelf.c:4009
-#, c-format
-msgid " [Nr] Name Type Address Offset\n"
-msgstr ""
-
-#: readelf.c:4010
-#, c-format
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr ""
-
-#: readelf.c:4015
-#, c-format
-msgid " Flags\n"
-msgstr ""
-
-#: readelf.c:4150
-#, c-format
-msgid ""
-"Key to Flags:\n"
-" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-" I (info), L (link order), G (group), x (unknown)\n"
-" O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr ""
-
-#: readelf.c:4168
-#, c-format
-msgid "[<unknown>: 0x%x]"
-msgstr ""
-
-#: readelf.c:4199
-msgid "Section headers are not available!\n"
-msgstr ""
-
-#: readelf.c:4223
-#, c-format
-msgid ""
-"\n"
-"There are no section groups in this file.\n"
-msgstr ""
-
-#: readelf.c:4259
-#, c-format
-msgid "Bad sh_link in group section `%s'\n"
-msgstr ""
-
-#: readelf.c:4278
-#, c-format
-msgid "Bad sh_info in group section `%s'\n"
-msgstr ""
-
-#: readelf.c:4317 readelf.c:7243
-msgid "section data"
-msgstr ""
-
-#: readelf.c:4329
-#, c-format
-msgid " [Index] Name\n"
-msgstr ""
-
-#: readelf.c:4343
-#, c-format
-msgid "section [%5u] in group section [%5u] > maximum section [%5u]\n"
-msgstr ""
-
-#: readelf.c:4349
-#, c-format
-msgid "invalid section [%5u] in group section [%5u]\n"
-msgstr ""
-
-#: readelf.c:4359
-#, c-format
-msgid "section [%5u] in group section [%5u] already in group section [%5u]\n"
-msgstr ""
-
-#: readelf.c:4372
-#, c-format
-msgid "section 0 in group section [%5u]\n"
-msgstr ""
-
-#: readelf.c:4468
-#, c-format
-msgid ""
-"\n"
-"'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr ""
-
-#: readelf.c:4480
-#, c-format
-msgid ""
-"\n"
-"There are no dynamic relocations in this file.\n"
-msgstr ""
-
-#: readelf.c:4504
-#, c-format
-msgid ""
-"\n"
-"Relocation section "
-msgstr ""
-
-#: readelf.c:4509 readelf.c:4928 readelf.c:4942 readelf.c:5282
-#, c-format
-msgid "'%s'"
-msgstr ""
-
-#: readelf.c:4511 readelf.c:4944 readelf.c:5284
-#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr ""
-
-#: readelf.c:4563
-#, c-format
-msgid ""
-"\n"
-"There are no relocations in this file.\n"
-msgstr ""
-
-#: readelf.c:4742 readelf.c:5124
-msgid "unwind table"
-msgstr ""
-
-#: readelf.c:4801 readelf.c:5214
-#, c-format
-msgid "Skipping unexpected relocation type %s\n"
-msgstr ""
-
-#: readelf.c:4860 readelf.c:5275 readelf.c:5326
-#, c-format
-msgid ""
-"\n"
-"There are no unwind sections in this file.\n"
-msgstr ""
-
-#: readelf.c:4923
-#, c-format
-msgid ""
-"\n"
-"Could not find unwind info section for "
-msgstr ""
-
-#: readelf.c:4935
-msgid "unwind info"
-msgstr ""
-
-#: readelf.c:4937 readelf.c:5281
-#, c-format
-msgid ""
-"\n"
-"Unwind section "
-msgstr ""
-
-#: readelf.c:5491 readelf.c:5535
-msgid "dynamic section"
-msgstr ""
-
-#: readelf.c:5612
-#, c-format
-msgid ""
-"\n"
-"There is no dynamic section in this file.\n"
-msgstr ""
-
-#: readelf.c:5650
-msgid "Unable to seek to end of file!"
-msgstr ""
-
-#: readelf.c:5663
-msgid "Unable to determine the number of symbols to load\n"
-msgstr ""
-
-#: readelf.c:5698
-msgid "Unable to seek to end of file\n"
-msgstr ""
-
-#: readelf.c:5705
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr ""
-
-#: readelf.c:5710
-msgid "dynamic string table"
-msgstr ""
-
-#: readelf.c:5745
-msgid "symbol information"
-msgstr ""
-
-#: readelf.c:5770
-#, c-format
-msgid ""
-"\n"
-"Dynamic section at offset 0x%lx contains %u entries:\n"
-msgstr ""
-
-#: readelf.c:5773
-#, c-format
-msgid " Tag Type Name/Value\n"
-msgstr ""
-
-#: readelf.c:5809
-#, c-format
-msgid "Auxiliary library"
-msgstr ""
-
-#: readelf.c:5813
-#, c-format
-msgid "Filter library"
-msgstr ""
-
-#: readelf.c:5817
-#, c-format
-msgid "Configuration file"
-msgstr ""
-
-#: readelf.c:5821
-#, c-format
-msgid "Dependency audit library"
-msgstr ""
-
-#: readelf.c:5825
-#, c-format
-msgid "Audit library"
-msgstr ""
-
-#: readelf.c:5843 readelf.c:5871 readelf.c:5899
-#, c-format
-msgid "Flags:"
-msgstr ""
-
-#: readelf.c:5846 readelf.c:5874 readelf.c:5901
-#, c-format
-msgid " None\n"
-msgstr ""
-
-#: readelf.c:6022
-#, c-format
-msgid "Shared library: [%s]"
-msgstr ""
-
-#: readelf.c:6025
-#, c-format
-msgid " program interpreter"
-msgstr ""
-
-#: readelf.c:6029
-#, c-format
-msgid "Library soname: [%s]"
-msgstr ""
-
-#: readelf.c:6033
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr ""
-
-#: readelf.c:6037
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr ""
-
-#: readelf.c:6100
-#, c-format
-msgid "Not needed object: [%s]\n"
-msgstr ""
-
-#: readelf.c:6214
-#, c-format
-msgid ""
-"\n"
-"Version definition section '%s' contains %ld entries:\n"
-msgstr ""
-
-#: readelf.c:6217
-#, c-format
-msgid " Addr: 0x"
-msgstr ""
-
-#: readelf.c:6219 readelf.c:6426
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr ""
-
-#: readelf.c:6228
-msgid "version definition section"
-msgstr ""
-
-#: readelf.c:6254
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr ""
-
-#: readelf.c:6257
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr ""
-
-#: readelf.c:6268
-#, c-format
-msgid "Name: %s\n"
-msgstr ""
-
-#: readelf.c:6270
-#, c-format
-msgid "Name index: %ld\n"
-msgstr ""
-
-#: readelf.c:6285
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr ""
-
-#: readelf.c:6288
-#, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr ""
-
-#: readelf.c:6307
-#, c-format
-msgid ""
-"\n"
-"Version needs section '%s' contains %ld entries:\n"
-msgstr ""
-
-#: readelf.c:6310
-#, c-format
-msgid " Addr: 0x"
-msgstr ""
-
-#: readelf.c:6312
-#, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr ""
-
-#: readelf.c:6321
-msgid "version need section"
-msgstr ""
-
-#: readelf.c:6343
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr ""
-
-#: readelf.c:6346
-#, c-format
-msgid " File: %s"
-msgstr ""
-
-#: readelf.c:6348
-#, c-format
-msgid " File: %lx"
-msgstr ""
-
-#: readelf.c:6350
-#, c-format
-msgid " Cnt: %d\n"
-msgstr ""
-
-#: readelf.c:6368
-#, c-format
-msgid " %#06x: Name: %s"
-msgstr ""
-
-#: readelf.c:6371
-#, c-format
-msgid " %#06x: Name index: %lx"
-msgstr ""
-
-#: readelf.c:6374
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr ""
-
-#: readelf.c:6417
-msgid "version string table"
-msgstr ""
-
-#: readelf.c:6421
-#, c-format
-msgid ""
-"\n"
-"Version symbols section '%s' contains %d entries:\n"
-msgstr ""
-
-#: readelf.c:6424
-#, c-format
-msgid " Addr: "
-msgstr ""
-
-#: readelf.c:6434
-msgid "version symbol data"
-msgstr ""
-
-#: readelf.c:6461
-msgid " 0 (*local*) "
-msgstr ""
-
-#: readelf.c:6465
-msgid " 1 (*global*) "
-msgstr ""
-
-#: readelf.c:6503 readelf.c:6969
-msgid "version need"
-msgstr ""
-
-#: readelf.c:6513
-msgid "version need aux (2)"
-msgstr ""
-
-#: readelf.c:6555 readelf.c:7034
-msgid "version def"
-msgstr ""
-
-#: readelf.c:6575 readelf.c:7049
-msgid "version def aux"
-msgstr ""
-
-#: readelf.c:6606
-#, c-format
-msgid ""
-"\n"
-"No version information found in this file.\n"
-msgstr ""
-
-#: readelf.c:6740
-msgid "Unable to read in dynamic data\n"
-msgstr ""
-
-#: readelf.c:6793
-msgid "Unable to seek to start of dynamic information"
-msgstr ""
-
-#: readelf.c:6799
-msgid "Failed to read in number of buckets\n"
-msgstr ""
-
-#: readelf.c:6805
-msgid "Failed to read in number of chains\n"
-msgstr ""
-
-#: readelf.c:6825
-#, c-format
-msgid ""
-"\n"
-"Symbol table for image:\n"
-msgstr ""
-
-#: readelf.c:6827
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:6829
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:6882
-#, c-format
-msgid ""
-"\n"
-"Symbol table '%s' contains %lu entries:\n"
-msgstr ""
-
-#: readelf.c:6886
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:6888
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:6939
-msgid "version data"
-msgstr ""
-
-#: readelf.c:6982
-msgid "version need aux (3)"
-msgstr ""
-
-#: readelf.c:7009
-msgid "bad dynamic symbol"
-msgstr ""
-
-#: readelf.c:7073
-#, c-format
-msgid ""
-"\n"
-"Dynamic symbol information is not available for displaying symbols.\n"
-msgstr ""
-
-#: readelf.c:7085
-#, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length (total of %lu buckets):\n"
-msgstr ""
-
-#: readelf.c:7087
-#, c-format
-msgid " Length Number %% of total Coverage\n"
-msgstr ""
-
-#: readelf.c:7092 readelf.c:7108 readelf.c:8031 readelf.c:8223
-msgid "Out of memory"
-msgstr ""
-
-#: readelf.c:7157
-#, c-format
-msgid ""
-"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr ""
-
-#: readelf.c:7160
-#, c-format
-msgid " Num: Name BoundTo Flags\n"
-msgstr ""
-
-#: readelf.c:7212
-#, c-format
-msgid ""
-"\n"
-"Assembly dump of section %s\n"
-msgstr ""
-
-#: readelf.c:7233
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no data to dump.\n"
-msgstr ""
-
-#: readelf.c:7238
-#, c-format
-msgid ""
-"\n"
-"Hex dump of section '%s':\n"
-msgstr ""
-
-#: readelf.c:7359
-#, c-format
-msgid "skipping invalid relocation offset 0x%lx in section %s\n"
-msgstr ""
-
-#: readelf.c:7376
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela%s\n"
-msgstr ""
-
-#: readelf.c:7402
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela.%s\n"
-msgstr ""
-
-#: readelf.c:7435
-#, c-format
-msgid "%s section data"
-msgstr ""
-
-#: readelf.c:7472
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no debugging data.\n"
-msgstr ""
-
-#: readelf.c:7498
-#, c-format
-msgid "Unrecognized debug section: %s\n"
-msgstr ""
-
-#: readelf.c:7533
-#, c-format
-msgid "Section %d was not dumped because it does not exist!\n"
-msgstr ""
-
-#: readelf.c:7791
-msgid "attributes"
-msgstr ""
-
-#: readelf.c:7809
-#, c-format
-msgid "ERROR: Bad section length (%d > %d)\n"
-msgstr ""
-
-#: readelf.c:7830
-#, c-format
-msgid "ERROR: Bad subsection length (%d > %d)\n"
-msgstr ""
-
-#: readelf.c:7880
-#, c-format
-msgid "Unknown format '%c'\n"
-msgstr ""
-
-#: readelf.c:7936 readelf.c:8304
-msgid "liblist"
-msgstr ""
-
-#: readelf.c:8025
-msgid "options"
-msgstr ""
-
-#: readelf.c:8055
-#, c-format
-msgid ""
-"\n"
-"Section '%s' contains %d entries:\n"
-msgstr ""
-
-#: readelf.c:8216
-msgid "conflict list found without a dynamic symbol table"
-msgstr ""
-
-#: readelf.c:8232 readelf.c:8246
-msgid "conflict"
-msgstr ""
-
-#: readelf.c:8256
-#, c-format
-msgid ""
-"\n"
-"Section '.conflict' contains %lu entries:\n"
-msgstr ""
-
-#: readelf.c:8258
-msgid " Num: Index Value Name"
-msgstr ""
-
-#: readelf.c:8311
-msgid "liblist string table"
-msgstr ""
-
-#: readelf.c:8321
-#, c-format
-msgid ""
-"\n"
-"Library list section '%s' contains %lu entries:\n"
-msgstr ""
-
-#: readelf.c:8374
-msgid "NT_AUXV (auxiliary vector)"
-msgstr ""
-
-#: readelf.c:8376
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr ""
-
-#: readelf.c:8378
-msgid "NT_FPREGSET (floating point registers)"
-msgstr ""
-
-#: readelf.c:8380
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr ""
-
-#: readelf.c:8382
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr ""
-
-#: readelf.c:8384
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr ""
-
-#: readelf.c:8386
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr ""
-
-#: readelf.c:8388
-msgid "NT_FPREGS (floating point registers)"
-msgstr ""
-
-#: readelf.c:8390
-msgid "NT_PSINFO (psinfo structure)"
-msgstr ""
-
-#: readelf.c:8392
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr ""
-
-#: readelf.c:8394
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr ""
-
-#: readelf.c:8396
-msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
-msgstr ""
-
-#: readelf.c:8404
-msgid "NT_VERSION (version)"
-msgstr ""
-
-#: readelf.c:8406
-msgid "NT_ARCH (architecture)"
-msgstr ""
-
-#: readelf.c:8411 readelf.c:8433
-#, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr ""
-
-#. NetBSD core "procinfo" structure.
-#: readelf.c:8423
-msgid "NetBSD procinfo structure"
-msgstr ""
-
-#: readelf.c:8450 readelf.c:8464
-msgid "PT_GETREGS (reg structure)"
-msgstr ""
-
-#: readelf.c:8452 readelf.c:8466
-msgid "PT_GETFPREGS (fpreg structure)"
-msgstr ""
-
-#: readelf.c:8472
-#, c-format
-msgid "PT_FIRSTMACH+%d"
-msgstr ""
-
-#: readelf.c:8518
-msgid "notes"
-msgstr ""
-
-#: readelf.c:8524
-#, c-format
-msgid ""
-"\n"
-"Notes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr ""
-
-#: readelf.c:8526
-#, c-format
-msgid " Owner\t\tData size\tDescription\n"
-msgstr ""
-
-#: readelf.c:8545
-#, c-format
-msgid "corrupt note found at offset %lx into core notes\n"
-msgstr ""
-
-#: readelf.c:8547
-#, c-format
-msgid " type: %lx, namesize: %08lx, descsize: %08lx\n"
-msgstr ""
-
-#: readelf.c:8645
-#, c-format
-msgid "No note segments present in the core file.\n"
-msgstr ""
-
-#: readelf.c:8726
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr ""
-
-#: readelf.c:8775 readelf.c:9119
-#, c-format
-msgid "%s: Failed to read file header\n"
-msgstr ""
-
-#: readelf.c:8788
-#, c-format
-msgid ""
-"\n"
-"File: %s\n"
-msgstr ""
-
-#: readelf.c:8936 readelf.c:8957 readelf.c:8994 readelf.c:9074
-#, c-format
-msgid "%s: failed to read archive header\n"
-msgstr ""
-
-#: readelf.c:8947
-#, c-format
-msgid "%s: failed to skip archive symbol table\n"
-msgstr ""
-
-#: readelf.c:8979
-#, c-format
-msgid "%s: failed to read string table\n"
-msgstr ""
-
-#: readelf.c:9015
-#, c-format
-msgid "%s: invalid archive string table offset %lu\n"
-msgstr ""
-
-#: readelf.c:9031
-#, c-format
-msgid "%s: bad archive file name\n"
-msgstr ""
-
-#: readelf.c:9063
-#, c-format
-msgid "%s: failed to seek to next archive header\n"
-msgstr ""
-
-#: readelf.c:9097
-#, c-format
-msgid "'%s': No such file\n"
-msgstr ""
-
-#: readelf.c:9099
-#, c-format
-msgid "Could not locate '%s'. System error message: %s\n"
-msgstr ""
-
-#: readelf.c:9106
-#, c-format
-msgid "'%s' is not an ordinary file\n"
-msgstr ""
-
-#: readelf.c:9113
-#, c-format
-msgid "Input file '%s' is not readable.\n"
-msgstr ""
-
-#: rename.c:129
-#, c-format
-msgid "%s: cannot set time: %s"
-msgstr ""
-
-#. We have to clean up here.
-#: rename.c:164 rename.c:202
-#, c-format
-msgid "unable to rename '%s' reason: %s"
-msgstr ""
-
-#: rename.c:210
-#, c-format
-msgid "unable to copy file '%s' reason: %s"
-msgstr ""
-
-#: resbin.c:132
-#, c-format
-msgid "%s: not enough binary data"
-msgstr ""
-
-#: resbin.c:148
-msgid "null terminated unicode string"
-msgstr ""
-
-#: resbin.c:175 resbin.c:181
-msgid "resource ID"
-msgstr ""
-
-#: resbin.c:221
-msgid "cursor"
-msgstr ""
-
-#: resbin.c:253 resbin.c:260
-msgid "menu header"
-msgstr ""
-
-#: resbin.c:270
-msgid "menuex header"
-msgstr ""
-
-#: resbin.c:274
-msgid "menuex offset"
-msgstr ""
-
-#: resbin.c:281
-#, c-format
-msgid "unsupported menu version %d"
-msgstr ""
-
-#: resbin.c:306 resbin.c:321 resbin.c:384
-msgid "menuitem header"
-msgstr ""
-
-#: resbin.c:414
-msgid "menuitem"
-msgstr ""
-
-#: resbin.c:453 resbin.c:481
-msgid "dialog header"
-msgstr ""
-
-#: resbin.c:471
-#, c-format
-msgid "unexpected DIALOGEX version %d"
-msgstr ""
-
-#: resbin.c:516
-msgid "dialog font point size"
-msgstr ""
-
-#: resbin.c:524
-msgid "dialogex font information"
-msgstr ""
-
-#: resbin.c:550 resbin.c:568
-msgid "dialog control"
-msgstr ""
-
-#: resbin.c:560
-msgid "dialogex control"
-msgstr ""
-
-#: resbin.c:589
-msgid "dialog control end"
-msgstr ""
-
-#: resbin.c:601
-msgid "dialog control data"
-msgstr ""
-
-#: resbin.c:642
-msgid "stringtable string length"
-msgstr ""
-
-#: resbin.c:652
-msgid "stringtable string"
-msgstr ""
-
-#: resbin.c:683
-msgid "fontdir header"
-msgstr ""
-
-#: resbin.c:696
-msgid "fontdir"
-msgstr ""
-
-#: resbin.c:712
-msgid "fontdir device name"
-msgstr ""
-
-#: resbin.c:718
-msgid "fontdir face name"
-msgstr ""
-
-#: resbin.c:759
-msgid "accelerator"
-msgstr ""
-
-#: resbin.c:819
-msgid "group cursor header"
-msgstr ""
-
-#: resbin.c:823
-#, c-format
-msgid "unexpected group cursor type %d"
-msgstr ""
-
-#: resbin.c:838
-msgid "group cursor"
-msgstr ""
-
-#: resbin.c:875
-msgid "group icon header"
-msgstr ""
-
-#: resbin.c:879
-#, c-format
-msgid "unexpected group icon type %d"
-msgstr ""
-
-#: resbin.c:894
-msgid "group icon"
-msgstr ""
-
-#: resbin.c:957 resbin.c:1174
-msgid "unexpected version string"
-msgstr ""
-
-#: resbin.c:989
-#, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr ""
-
-#: resbin.c:993
-#, c-format
-msgid "unexpected version type %d"
-msgstr ""
-
-#: resbin.c:1005
-#, c-format
-msgid "unexpected fixed version information length %d"
-msgstr ""
-
-#: resbin.c:1008
-msgid "fixed version info"
-msgstr ""
-
-#: resbin.c:1012
-#, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr ""
-
-#: resbin.c:1016
-#, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr ""
-
-#: resbin.c:1045
-msgid "version var info"
-msgstr ""
-
-#: resbin.c:1062
-#, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr ""
-
-#: resbin.c:1072
-#, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr ""
-
-#: resbin.c:1106
-#, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr ""
-
-#: resbin.c:1117
-#, c-format
-msgid "unexpected version string length %d < %d"
-msgstr ""
-
-#: resbin.c:1134
-#, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr ""
-
-#: resbin.c:1153
-msgid "version varfileinfo"
-msgstr ""
-
-#: resbin.c:1168
-#, c-format
-msgid "unexpected version value length %d"
-msgstr ""
-
-#: rescoff.c:126
-msgid "filename required for COFF input"
-msgstr ""
-
-#: rescoff.c:143
-#, c-format
-msgid "%s: no resource section"
-msgstr ""
-
-#: rescoff.c:150
-msgid "can't read resource section"
-msgstr ""
-
-#: rescoff.c:174
-#, c-format
-msgid "%s: %s: address out of bounds"
-msgstr ""
-
-#: rescoff.c:190
-msgid "directory"
-msgstr ""
-
-#: rescoff.c:218
-msgid "named directory entry"
-msgstr ""
-
-#: rescoff.c:227
-msgid "directory entry name"
-msgstr ""
-
-#: rescoff.c:247
-msgid "named subdirectory"
-msgstr ""
-
-#: rescoff.c:255
-msgid "named resource"
-msgstr ""
-
-#: rescoff.c:270
-msgid "ID directory entry"
-msgstr ""
-
-#: rescoff.c:287
-msgid "ID subdirectory"
-msgstr ""
-
-#: rescoff.c:295
-msgid "ID resource"
-msgstr ""
-
-#: rescoff.c:318
-msgid "resource type unknown"
-msgstr ""
-
-#: rescoff.c:321
-msgid "data entry"
-msgstr ""
-
-#: rescoff.c:329
-msgid "resource data"
-msgstr ""
-
-#: rescoff.c:334
-msgid "resource data size"
-msgstr ""
-
-#: rescoff.c:427
-msgid "filename required for COFF output"
-msgstr ""
-
-#: rescoff.c:719
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr ""
-
-#: resrc.c:238 resrc.c:309
-#, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr ""
-
-#: resrc.c:244
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr ""
-
-#: resrc.c:260
-#, c-format
-msgid "%s %s: %s"
-msgstr ""
-
-#: resrc.c:305
-#, c-format
-msgid "can't execute `%s': %s"
-msgstr ""
-
-#: resrc.c:314
-#, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr ""
-
-#: resrc.c:321
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr ""
-
-#: resrc.c:323
-#, c-format
-msgid "Using popen to read preprocessor output\n"
-msgstr ""
-
-#: resrc.c:362
-#, c-format
-msgid "Tried `%s'\n"
-msgstr ""
-
-#: resrc.c:373
-#, c-format
-msgid "Using `%s'\n"
-msgstr ""
-
-#: resrc.c:529
-#, c-format
-msgid "%s:%d: %s\n"
-msgstr ""
-
-#: resrc.c:537
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr ""
-
-#: resrc.c:586
-#, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr ""
-
-#: resrc.c:624 resrc.c:1134
-#, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr ""
-
-#: resrc.c:675
-#, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr ""
-
-#: resrc.c:707 resrc.c:1003
-#, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr ""
-
-#: resrc.c:831
-msgid "help ID requires DIALOGEX"
-msgstr ""
-
-#: resrc.c:833
-msgid "control data requires DIALOGEX"
-msgstr ""
-
-#: resrc.c:861
-#, c-format
-msgid "stat failed on font file `%s': %s"
-msgstr ""
-
-#: resrc.c:972
-#, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr ""
-
-#: resrc.c:1273 resrc.c:1308
-#, c-format
-msgid "stat failed on file `%s': %s"
-msgstr ""
-
-#: resrc.c:1494
-#, c-format
-msgid "can't open `%s' for output: %s"
-msgstr ""
-
-#: size.c:83
-#, c-format
-msgid " Displays the sizes of sections inside binary files\n"
-msgstr ""
-
-#: size.c:84
-#, c-format
-msgid " If no input file(s) are specified, a.out is assumed\n"
-msgstr ""
-
-#: size.c:85
-#, c-format
-msgid ""
-" The options are:\n"
-" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
-" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or "
-"hex\n"
-" -t --totals Display the total sizes (Berkeley "
-"only)\n"
-" --target=<bfdname> Set the binary file format\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-
-#: size.c:158
-#, c-format
-msgid "invalid argument to --format: %s"
-msgstr ""
-
-#: size.c:185
-#, c-format
-msgid "Invalid radix: %s\n"
-msgstr ""
-
-#: srconv.c:1722
-#, c-format
-msgid "Convert a COFF object file into a SYSROFF object file\n"
-msgstr ""
-
-#: srconv.c:1723
-#, c-format
-msgid ""
-" The options are:\n"
-" -q --quick (Obsolete - ignored)\n"
-" -n --noprescan Do not perform a scan to convert commons into defs\n"
-" -d --debug Display information about what is being done\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-
-#: srconv.c:1869
-#, c-format
-msgid "unable to open output file %s"
-msgstr ""
-
-#: stabs.c:330 stabs.c:1708
-msgid "numeric overflow"
-msgstr ""
-
-#: stabs.c:340
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr ""
-
-#: stabs.c:348
-#, c-format
-msgid "Warning: %s: %s\n"
-msgstr ""
-
-#: stabs.c:458
-#, c-format
-msgid "N_LBRAC not within function\n"
-msgstr ""
-
-#: stabs.c:497
-#, c-format
-msgid "Too many N_RBRACs\n"
-msgstr ""
-
-#: stabs.c:738
-msgid "unknown C++ encoded name"
-msgstr ""
-
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1253
-msgid "unrecognized cross reference type"
-msgstr ""
-
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1800
-msgid "missing index type"
-msgstr ""
-
-#: stabs.c:2114
-msgid "unknown virtual character for baseclass"
-msgstr ""
-
-#: stabs.c:2132
-msgid "unknown visibility character for baseclass"
-msgstr ""
-
-#: stabs.c:2318
-msgid "unnamed $vb type"
-msgstr ""
-
-#: stabs.c:2324
-msgid "unrecognized C++ abbreviation"
-msgstr ""
-
-#: stabs.c:2400
-msgid "unknown visibility character for field"
-msgstr ""
-
-#: stabs.c:2652
-msgid "const/volatile indicator missing"
-msgstr ""
-
-#: stabs.c:2888
-#, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr ""
-
-#: stabs.c:3188
-msgid "Undefined N_EXCL"
-msgstr ""
-
-#: stabs.c:3268
-#, c-format
-msgid "Type file number %d out of range\n"
-msgstr ""
-
-#: stabs.c:3273
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr ""
-
-#: stabs.c:3352
-#, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr ""
-
-#: stabs.c:3644
-#, c-format
-msgid "bad mangled name `%s'\n"
-msgstr ""
-
-#: stabs.c:3739
-#, c-format
-msgid "no argument types in mangled string\n"
-msgstr ""
-
-#: stabs.c:5093
-#, c-format
-msgid "Demangled name is not a function\n"
-msgstr ""
-
-#: stabs.c:5135
-#, c-format
-msgid "Unexpected type in v3 arglist demangling\n"
-msgstr ""
-
-#: stabs.c:5202
-#, c-format
-msgid "Unrecognized demangle component %d\n"
-msgstr ""
-
-#: stabs.c:5254
-#, c-format
-msgid "Failed to print demangled template\n"
-msgstr ""
-
-#: stabs.c:5334
-#, c-format
-msgid "Couldn't get demangled builtin type\n"
-msgstr ""
-
-#: stabs.c:5383
-#, c-format
-msgid "Unexpected demangled varargs\n"
-msgstr ""
-
-#: stabs.c:5390
-#, c-format
-msgid "Unrecognized demangled builtin type\n"
-msgstr ""
-
-#: strings.c:218
-#, c-format
-msgid "invalid number %s"
-msgstr ""
-
-#: strings.c:700
-#, c-format
-msgid "invalid integer argument %s"
-msgstr ""
-
-#: strings.c:709
-#, c-format
-msgid " Display printable strings in [file(s)] (stdin by default)\n"
-msgstr ""
-
-#: strings.c:710
-#, c-format
-msgid ""
-" The options are:\n"
-" -a - --all Scan the entire file, not just the data section\n"
-" -f --print-file-name Print the name of the file before each string\n"
-" -n --bytes=[number] Locate & print any NUL-terminated sequence of "
-"at\n"
-" -<number> least [number] characters (default 4).\n"
-" -t --radix={o,d,x} Print the location of the string in base 8, 10 "
-"or 16\n"
-" -o An alias for --radix=o\n"
-" -T --target=<BFDNAME> Specify the binary file format\n"
-" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
-" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-"
-"bit\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-
-#: sysdump.c:642
-#, c-format
-msgid "Print a human readable interpretation of a SYSROFF object file\n"
-msgstr ""
-
-#: sysdump.c:643
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-
-#: sysdump.c:710
-#, c-format
-msgid "cannot open input file %s"
-msgstr ""
-
-#: version.c:35
-#, c-format
-msgid "Copyright 2005 Free Software Foundation, Inc.\n"
-msgstr ""
-
-#: version.c:36
-#, c-format
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr ""
-
-#: windres.c:204
-#, c-format
-msgid "can't open %s `%s': %s"
-msgstr ""
-
-#: windres.c:370
-#, c-format
-msgid ": expected to be a directory\n"
-msgstr ""
-
-#: windres.c:382
-#, c-format
-msgid ": expected to be a leaf\n"
-msgstr ""
-
-#: windres.c:391
-#, c-format
-msgid "%s: warning: "
-msgstr ""
-
-#: windres.c:393
-#, c-format
-msgid ": duplicate value\n"
-msgstr ""
-
-#: windres.c:543
-#, c-format
-msgid "unknown format type `%s'"
-msgstr ""
-
-#: windres.c:544
-#, c-format
-msgid "%s: supported formats:"
-msgstr ""
-
-#. Otherwise, we give up.
-#: windres.c:627
-#, c-format
-msgid "can not determine type of file `%s'; use the -J option"
-msgstr ""
-
-#: windres.c:639
-#, c-format
-msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
-msgstr ""
-
-#: windres.c:641
-#, c-format
-msgid ""
-" The options are:\n"
-" -i --input=<file> Name input file\n"
-" -o --output=<file> Name output file\n"
-" -J --input-format=<format> Specify input format\n"
-" -O --output-format=<format> Specify output format\n"
-" -F --target=<target> Specify COFF target\n"
-" --preprocessor=<program> Program to use to preprocess rc file\n"
-" -I --include-dir=<dir> Include directory when preprocessing rc file\n"
-" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
-" -U --undefine <sym> Undefine SYM when preprocessing rc file\n"
-" -v --verbose Verbose - tells you what it's doing\n"
-" -l --language=<val> Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to "
-"read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr ""
-
-#: windres.c:657
-#, c-format
-msgid " --yydebug Turn on parser debugging\n"
-msgstr ""
-
-#: windres.c:660
-#, c-format
-msgid ""
-" -r Ignored for compatibility with rc\n"
-" @<file> Read options from <file>\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-
-#: windres.c:665
-#, c-format
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr ""
-
-#: windres.c:803
-msgid "invalid option -f\n"
-msgstr ""
-
-#: windres.c:808
-msgid "No filename following the -fo option.\n"
-msgstr ""
-
-#: windres.c:866
-#, c-format
-msgid ""
-"Option -I is deprecated for setting the input format, please use -J "
-"instead.\n"
-msgstr ""
-
-#: windres.c:984
-msgid "no resources"
-msgstr ""
-
-#: wrstabs.c:354 wrstabs.c:1915
-#, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr ""
-
-#: wrstabs.c:635
-#, c-format
-msgid "stab_int_type: bad size %u"
-msgstr ""
-
-#: wrstabs.c:1393
-#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr ""
diff --git a/binutils-2.17/binutils/po/da.gmo b/binutils-2.17/binutils/po/da.gmo
deleted file mode 100644
index 8f9b965b..00000000
--- a/binutils-2.17/binutils/po/da.gmo
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/po/da.po b/binutils-2.17/binutils/po/da.po
deleted file mode 100644
index 67dc5de3..00000000
--- a/binutils-2.17/binutils/po/da.po
+++ /dev/null
@@ -1,4800 +0,0 @@
-# Danish messages for binutils.
-# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-# Keld Simonsen <keld@dkuug.dk>, 2002-2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: binutils 2.12.91\n"
-"POT-Creation-Date: 2002-07-23 15:55-0400\n"
-"PO-Revision-Date: 2003-03-08 19:55+0100\n"
-"Last-Translator: Keld Simonsen <keld@dkuug.dk>\n"
-"Language-Team: Danish <dansk@klid.dk>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: addr2line.c:74
-#, c-format
-msgid "Usage: %s [option(s)] [addr(s)]\n"
-msgstr "Brug: %s <flag> inddatafil(er)\n"
-
-#: addr2line.c:75
-msgid " Convert addresses into line number/file name pairs.\n"
-msgstr " Konvertér adresser til linjenummer/filnavns-par.\n"
-
-#: addr2line.c:76
-msgid " If no addresses are specified on the command line, they will be read from stdin\n"
-msgstr " Hvis ingen adresser er angivet på komandolinjen, vil de blive læst fra stdind\n"
-
-#: addr2line.c:77
-msgid ""
-" The options are:\n"
-" -b --target=<bfdname> Set the binary file format\n"
-" -e --exe=<executable> Set the input file name (default is a.out)\n"
-" -s --basenames Strip directory names\n"
-" -f --functions Show function names\n"
-" -C --demangle[=style] Demangle function names\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-
-#: addr2line.c:89 ar.c:297 coffdump.c:479 nlmconv.c:1119 objcopy.c:424
-#: objcopy.c:457 readelf.c:2310 size.c:104 srconv.c:1962 strings.c:666
-#: sysdump.c:774 windres.c:733
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr ""
-"Rapportere fejl til %s\n"
-"Rapporter fejl i oversættelsen til dansk@klid.dk\n"
-
-#: addr2line.c:248
-#, c-format
-msgid "%s: can not get addresses from archive"
-msgstr "%s: kan ikke få fat på adresserne i arkivet"
-
-#: addr2line.c:320 nm.c:395 objdump.c:2782
-#, c-format
-msgid "unknown demangling style `%s'"
-msgstr "ukendt afkodningsstil \"%s\""
-
-#: ar.c:238
-#, c-format
-msgid "no entry %s in archive\n"
-msgstr "ingen post %s i arkivet\n"
-
-#: ar.c:255
-#, c-format
-msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"
-msgstr ""
-
-#: ar.c:258
-#, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr " %s -M [<mri-skript]\n"
-
-#: ar.c:259
-msgid " commands:\n"
-msgstr " kommandoer:\n"
-
-#: ar.c:260
-msgid " d - delete file(s) from the archive\n"
-msgstr " d - slet filer i arkivet\n"
-
-#: ar.c:261
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr " m[ab] - flyt filer i arkivet\n"
-
-#: ar.c:262
-msgid " p - print file(s) found in the archive\n"
-msgstr " p - udskriv filer som mødtes i arkivet\n"
-
-#: ar.c:263
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr " q[f] - hurtigtilføj filer til slutningen af arkivet\n"
-
-#: ar.c:264
-msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr " r[ab][f][u] - erstat eksisterende eller indsæt nye filer i arkivet\n"
-
-#: ar.c:265
-msgid " t - display contents of archive\n"
-msgstr " t - vis indeholdet i arkivet\n"
-
-#: ar.c:266
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr " x[o] - hent filer fra arkivet\n"
-
-#: ar.c:267
-msgid " command specific modifiers:\n"
-msgstr " ændrere specifikke for kommandoer:\n"
-
-#: ar.c:268
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr " [a] - indsæt filer efter [medlemsnavn]\n"
-
-#: ar.c:269
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr " [b] - indsætte filer for [medlemsnavn] (samme som [i])\n"
-
-#: ar.c:270
-msgid " [N] - use instance [count] of name\n"
-msgstr " [N] - brug forekomst [nummer] af navn\n"
-
-#: ar.c:271
-msgid " [f] - truncate inserted file names\n"
-msgstr " [f] - afkort indsatte filnavne\n"
-
-#: ar.c:272
-msgid " [P] - use full path names when matching\n"
-msgstr " [P] - brug fuldstændig søgestien ved sammenligninger\n"
-
-#: ar.c:273
-msgid " [o] - preserve original dates\n"
-msgstr " [o] - bevar oprindelige datoer\n"
-
-#: ar.c:274
-msgid " [u] - only replace files that are newer than current archive contents\n"
-msgstr " [u] - erstat kun filer som er nyere end i arkivet\n"
-
-#: ar.c:275
-msgid " generic modifiers:\n"
-msgstr " generelle ændrere:\n"
-
-#: ar.c:276
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr " [c] - advar ikke om biblioteket skal oprettes\n"
-
-#: ar.c:277
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr " [s] - opret et indeks over arkivet (jfr. ranlib)\n"
-
-#: ar.c:278
-msgid " [S] - do not build a symbol table\n"
-msgstr " [S] - opret intet indeks over arkivet\n"
-
-#: ar.c:279
-msgid " [v] - be verbose\n"
-msgstr " [v] - beskriv udførligt\n"
-
-#: ar.c:280
-msgid " [V] - display the version number\n"
-msgstr " [V] - vis versionsinformation\n"
-
-#: ar.c:287
-#, c-format
-msgid "Usage: %s [options] archive\n"
-msgstr ""
-
-#: ar.c:288
-msgid " Generate an index to speed access to archives\n"
-msgstr ""
-
-#: ar.c:289
-msgid ""
-" The options are:\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" Valgmulighederne er:\n"
-" -h --help Vis denne hjælpebesked\n"
-" -V --version Vis versionsinformation\n"
-
-#: ar.c:512
-msgid "two different operation options specified"
-msgstr "to forskellige kommandoflag blev angivet"
-
-#: ar.c:587
-#, c-format
-msgid "illegal option -- %c"
-msgstr "ikke tilladt flag -- %c"
-
-#: ar.c:619
-msgid "no operation specified"
-msgstr "ingen kommandoflag blev angivet"
-
-#: ar.c:622
-msgid "`u' is only meaningful with the `r' option."
-msgstr "\"u\" er kun meningsfuldt sammen med \"r\"."
-
-#: ar.c:632
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr "\"N\" er kun meningsfuldt sammen med \"x\" eller \"d\"."
-
-#: ar.c:635
-msgid "Value for `N' must be positive."
-msgstr "\"N\"'s argument skal være positivt."
-
-#: ar.c:718
-#, c-format
-msgid "internal error -- this option not implemented"
-msgstr "intern fejl -- flaget er ikke implementeret"
-
-#: ar.c:837 ar.c:888 ar.c:1333 objcopy.c:1348
-#, c-format
-msgid "internal stat error on %s"
-msgstr "internt stat-fejl for %s"
-
-#: ar.c:841
-#, c-format
-msgid ""
-"\n"
-"<member %s>\n"
-"\n"
-msgstr ""
-"\n"
-"<medlem %s>\n"
-"\n"
-
-#: ar.c:857 ar.c:925
-#, c-format
-msgid "%s is not a valid archive"
-msgstr "%s er ikke et gyldigt arkiv"
-
-#: ar.c:893
-#, c-format
-msgid "stat returns negative size for %s"
-msgstr "stat returnerer negativ størrelse på %s"
-
-#: ar.c:1020
-#, c-format
-msgid "%s is not an archive"
-msgstr "%s er ikke et arkiv"
-
-#: ar.c:1027
-#, c-format
-msgid "creating %s"
-msgstr "opretter %s"
-
-#: ar.c:1233
-#, c-format
-msgid "No member named `%s'\n"
-msgstr "Intet medlem hedder \"%s\"\n"
-
-#: ar.c:1285
-#, c-format
-msgid "no entry %s in archive %s!"
-msgstr "ingen %s i arkiv %s!"
-
-# archive map virker være vad indekset kaldes i kildekodeen
-#: ar.c:1422
-#, c-format
-msgid "%s: no archive map to update"
-msgstr "%s: intet indeks at opdatere"
-
-#: arsup.c:86
-#, c-format
-msgid "No entry %s in archive.\n"
-msgstr "Ingen %s i arkivet.\n"
-
-#: arsup.c:117
-#, c-format
-msgid "Can't open file %s\n"
-msgstr "Kan ikke åbne fil %s\n"
-
-#: arsup.c:172
-#, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr "%s: Kan ikke åbne uddataarkivet %s\n"
-
-#: arsup.c:189
-#, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr "%s: Kan ikke åbne inddataarkivet %s\n"
-
-#: arsup.c:198
-#, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr "%s: fil %s er ikke et arkiv\n"
-
-#: arsup.c:241
-#, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr "%s: intet uddataarkiv angivet endnu\n"
-
-#: arsup.c:262 arsup.c:301 arsup.c:343 arsup.c:364 arsup.c:430
-#, c-format
-msgid "%s: no open output archive\n"
-msgstr "%s: intet åbent uddataarkiv\n"
-
-#: arsup.c:273 arsup.c:385 arsup.c:411
-#, c-format
-msgid "%s: can't open file %s\n"
-msgstr "%s: kan ikke åbne fil %s\n"
-
-# module file er detsamme som member
-#: arsup.c:328 arsup.c:407 arsup.c:489
-#, c-format
-msgid "%s: can't find module file %s\n"
-msgstr "%s: kan ikke finde medlem %s\n"
-
-#: arsup.c:439
-#, c-format
-msgid "Current open archive is %s\n"
-msgstr "Det aktuelle åbne arkiv er %s\n"
-
-# BUGG: dubbelt blanksteg
-#: arsup.c:464
-#, c-format
-msgid "%s: no open archive\n"
-msgstr "%s: intet åbent arkiv\n"
-
-#: binemul.c:39
-#, c-format
-msgid " No emulation specific options\n"
-msgstr ""
-
-#. Macros for common output.
-#: binemul.h:42
-#, c-format
-msgid " emulation options: \n"
-msgstr ""
-
-#: bucomm.c:106
-#, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr "kan ikke sætte BFD's standardmål til \"%s\": %s"
-
-#: bucomm.c:118
-#, c-format
-msgid "%s: Matching formats:"
-msgstr "%s: Passende format:"
-
-#: bucomm.c:135
-msgid "Supported targets:"
-msgstr "Mål som håndteres:"
-
-#: bucomm.c:137
-#, c-format
-msgid "%s: supported targets:"
-msgstr "%s: mål som håndteres:"
-
-#: bucomm.c:153
-msgid "Supported architectures:"
-msgstr "Arkitekturer som håndteres:"
-
-#: bucomm.c:155
-#, c-format
-msgid "%s: supported architectures:"
-msgstr "%s: arkitekturer som håndteres:"
-
-#: bucomm.c:262
-#, c-format
-msgid "%s: bad number: %s"
-msgstr "%s: fejlagtigt tal: %s"
-
-#: coffdump.c:107
-#, c-format
-msgid "#lines %d "
-msgstr "#linjer %d "
-
-#: coffdump.c:471 sysdump.c:767
-#, c-format
-msgid "Usage: %s [option(s)] in-file\n"
-msgstr "Brug: %s [flag] inddatafil\n"
-
-#: coffdump.c:472
-msgid " Print a human readable interpretation of a SYSROFF object file\n"
-msgstr " Skriv en menneskeligt læsbar tolkning af en SYSROFF-objektfil\n"
-
-#: coffdump.c:473
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-
-#: coffdump.c:541 srconv.c:2052 sysdump.c:831
-msgid "no input file specified"
-msgstr "ingen inddatafil angaves"
-
-#: debug.c:653
-msgid "debug_add_to_current_namespace: no current file"
-msgstr "debug_add_to_current_namespace: ingen aktuel fil"
-
-#: debug.c:736
-msgid "debug_start_source: no debug_set_filename call"
-msgstr "debug_start_source: intet kald til debug_set_filename"
-
-#: debug.c:795
-msgid "debug_record_function: no debug_set_filename call"
-msgstr "debug_record_function: intet kald til debug_set_filename"
-
-#: debug.c:851
-msgid "debug_record_parameter: no current function"
-msgstr "debug_record_parameter: ingen aktuel funktion"
-
-#: debug.c:885
-msgid "debug_end_function: no current function"
-msgstr "debug_end_function: ingen aktuel funktion"
-
-#: debug.c:891
-msgid "debug_end_function: some blocks were not closed"
-msgstr "debug_end_function: nogen blokke afsluttedes ikke"
-
-#: debug.c:921
-msgid "debug_start_block: no current block"
-msgstr "debug_start_block: ingen aktuel blok"
-
-#: debug.c:959
-msgid "debug_end_block: no current block"
-msgstr "debug_end_block: ingen aktuel blok"
-
-#: debug.c:966
-msgid "debug_end_block: attempt to close top level block"
-msgstr "debug_end_block: forsøg gjordes på at afslutte øverste blok"
-
-#: debug.c:992
-msgid "debug_record_line: no current unit"
-msgstr "debug_record_line: ingen aktuel oversættelsesenhed"
-
-#. FIXME
-#: debug.c:1046
-msgid "debug_start_common_block: not implemented"
-msgstr "debug_start_common_block: ikke implementeret"
-
-#. FIXME
-#: debug.c:1058
-msgid "debug_end_common_block: not implemented"
-msgstr "debug_end_common_block: ikke implementeret"
-
-# BUGG: Kolon mangler antagligen
-#. FIXME.
-#: debug.c:1152
-msgid "debug_record_label: not implemented"
-msgstr "debug_record_label: ikke implementeret"
-
-#: debug.c:1178
-msgid "debug_record_variable: no current file"
-msgstr "debug_record_variable: ingen aktuel fil"
-
-#: debug.c:1194
-msgid "debug_record_variable: no current block"
-msgstr "debug_record_variable: ingen aktuel blok"
-
-#: debug.c:1763
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr "debug_make_undefined_type: slagsen kan ikke håndteres"
-
-#: debug.c:1964
-msgid "debug_name_type: no current file"
-msgstr "debug_name_type: ingen aktuel fil"
-
-#: debug.c:2012
-msgid "debug_tag_type: no current file"
-msgstr "debug_tag_type: ingen aktuel fil"
-
-#: debug.c:2020
-msgid "debug_tag_type: extra tag attempted"
-msgstr "debug_tag_type: forsøg gjordes på at sætte et ekstra mærke"
-
-#: debug.c:2059
-#, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr "Advarsel: ændrer datatypens størrelse fra %d til %d\n"
-
-#: debug.c:2083
-msgid "debug_find_named_type: no current compilation unit"
-msgstr "debug_find_named_type: ingen aktuel oversættelsesenhed"
-
-#: debug.c:2190
-#, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr "debug_get_real_type: %s har cirkulær fejlsøgningsinformation\n"
-
-#: debug.c:2650
-msgid "debug_write_type: illegal type encountered"
-msgstr "debug_write_type: mødte en ugyldig type"
-
-#: dlltool.c:735 dlltool.c:760 dlltool.c:786
-#, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr "Intern fejl: Ukendt maskintype: %d"
-
-#: dlltool.c:823
-#, c-format
-msgid "Can't open def file: %s"
-msgstr "Kan ikke åbne def-fil: %s"
-
-#: dlltool.c:828
-#, c-format
-msgid "Processing def file: %s"
-msgstr "Behandler def-fil: %s"
-
-#: dlltool.c:832
-msgid "Processed def file"
-msgstr "Def-filen er behandlet"
-
-#: dlltool.c:858
-#, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr "Syntaktisk fejl i def-fil %s:%d"
-
-#: dlltool.c:897
-#, c-format
-msgid "NAME: %s base: %x"
-msgstr "NAME: %s bas: %x"
-
-#: dlltool.c:900 dlltool.c:919
-msgid "Can't have LIBRARY and NAME"
-msgstr "Kan ikke have både LIBRARY og NAME"
-
-#: dlltool.c:916
-#, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr "LIBRARY: %s bas: %x"
-
-#: dlltool.c:1174 resrc.c:271
-#, c-format
-msgid "wait: %s"
-msgstr "wait: %s"
-
-#: dlltool.c:1179 dllwrap.c:430 resrc.c:276
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr "subprocessen fik fatalt signal %d"
-
-#: dlltool.c:1185 dllwrap.c:437 resrc.c:283
-#, c-format
-msgid "%s exited with status %d"
-msgstr "%s afsluttede med status %d"
-
-#: dlltool.c:1217
-#, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr "Suger ind info fra sektion %s i %s"
-
-#: dlltool.c:1341
-#, c-format
-msgid "Excluding symbol: %s"
-msgstr "Undtager symbol: %s"
-
-#: dlltool.c:1436 dlltool.c:1447 nm.c:959 nm.c:970 objdump.c:386 objdump.c:401
-#, c-format
-msgid "%s: no symbols"
-msgstr "%s: ingen symboler"
-
-#. FIXME: we ought to read in and block out the base relocations
-#: dlltool.c:1474
-#, c-format
-msgid "Done reading %s"
-msgstr "Færdig med at læse %s"
-
-#: dlltool.c:1485
-#, c-format
-msgid "Unable to open object file: %s"
-msgstr "Kan ikke åbne objektfil: %s"
-
-#: dlltool.c:1488
-#, c-format
-msgid "Scanning object file %s"
-msgstr "Aflæser objektfil %s"
-
-#: dlltool.c:1503
-#, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr "Kan ikke producere en mcore-elf-dll fra arkivfil: %s"
-
-#: dlltool.c:1595
-msgid "Adding exports to output file"
-msgstr "Tilføjer eksportering til uddatafilen"
-
-#: dlltool.c:1640
-msgid "Added exports to output file"
-msgstr "Tilføjede eksportering til uddatafilen"
-
-#: dlltool.c:1764
-#, c-format
-msgid "Generating export file: %s"
-msgstr "Genererer eksportfil: %s"
-
-#: dlltool.c:1769
-#, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr "Kan ikke åbne temporær assemblerfil: %s"
-
-#: dlltool.c:1772
-#, c-format
-msgid "Opened temporary file: %s"
-msgstr "Åbnede temporær fil: %s"
-
-#: dlltool.c:1996
-msgid "Generated exports file"
-msgstr "Genererede eksportfil"
-
-#: dlltool.c:2258
-#, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr "bfd_open mislykkedes at åbne stubfil: %s"
-
-#: dlltool.c:2261
-#, c-format
-msgid "Creating stub file: %s"
-msgstr "Opretter stubfil: %s"
-
-#: dlltool.c:2650
-#, c-format
-msgid "failed to open temporary head file: %s"
-msgstr "mislykkedes at åbne temporær hovedfil: %s"
-
-#: dlltool.c:2709
-#, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr "mislykkedes at åbne temporær halefil: %s"
-
-#: dlltool.c:2777
-#, c-format
-msgid "Can't open .lib file: %s"
-msgstr "Kan ikke åbne .lib-fil: %s"
-
-#: dlltool.c:2780
-#, c-format
-msgid "Creating library file: %s"
-msgstr "Opretter biblioteksfil: %s"
-
-#: dlltool.c:2839
-#, c-format
-msgid "cannot delete %s: %s"
-msgstr "kan ikke slette %s: %s"
-
-#: dlltool.c:2843
-msgid "Created lib file"
-msgstr "Oprettede biblioteksfilen"
-
-#: dlltool.c:2948
-#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr "Advarsel, ignorerer duplikeret EXPORT %s %d,%d"
-
-#: dlltool.c:2954
-#, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr "Fejl, duplikeret EXPORT med ordningstal: %s"
-
-#: dlltool.c:3081
-msgid "Processing definitions"
-msgstr "Behandler definitioner"
-
-#: dlltool.c:3119
-msgid "Processed definitions"
-msgstr "Definitionerne er behandlede"
-
-# BUGG: Kolon fattas
-#. xgetext:c-format
-#: dlltool.c:3130 dllwrap.c:495
-#, c-format
-msgid "Usage %s <option(s)> <object-file(s)>\n"
-msgstr "Brug: %s <flag> <objektfiler>\n"
-
-#. xgetext:c-format
-#: dlltool.c:3132
-#, c-format
-msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr " -m --machine <maskine> Opret som DLL for <maskine>. [forvalgt: %s]\n"
-
-#: dlltool.c:3133
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-msgstr " mulige <maskine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-
-#: dlltool.c:3134
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr " -e --output-exp <udnavn> Generer en eksportfil.\n"
-
-#: dlltool.c:3135
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr " -l --output-lib <udnavn> Generere et grænsesnitsbibliotek.\n"
-
-#: dlltool.c:3136
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr " -a --add-indirect Tilføj inddirekte dll til eksportfilen.\n"
-
-#: dlltool.c:3137
-msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr " -D --dllname <navn> Navn på inddata-dll at indsætte i grænsesnitsbiblioteket.\n"
-
-#: dlltool.c:3138
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr " -d --input-def <def-fil> Navn på .def-fil at læse ind.\n"
-
-#: dlltool.c:3139
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr " -z --output-def <def-fil> Navn på .def-fil at oprette.\n"
-
-#: dlltool.c:3140
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols Eksportér alle symboler til .def\n"
-
-# Føljende streng har den beskrivende delen indenteret to tegn
-# extra i den engelska texten til at to flag er for lange. I den
-# svenska oversættelsen er de indenterede tre tegn extra til at
-# den ena flaget blev yderligere et tegn for lang.
-#: dlltool.c:3141
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr " --no-export-all-symbols Eksportér kun listede symboler\n"
-
-# Føljende streng har den beskrivende delen indenteret to tegn
-# extra i den engelska texten til at to flag er for lange. I den
-# svenska oversættelsen er de indenterede tre tegn extra til at
-# den ena flaget blev yderligere et tegn for lang.
-#: dlltool.c:3142
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr " --exclude-symbols <liste> Eksportér ikke symboler i <liste>\n"
-
-#: dlltool.c:3143
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr ""
-
-#: dlltool.c:3144
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr " -b --base-file <basfil> Læs den lænker-genererede basefil.\n"
-
-#: dlltool.c:3145
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr " -x --no-idata4 Generér ingen idata$4-sektion.\n"
-
-#: dlltool.c:3146
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr " -c --no-idata5 Generér ingen idata$5-sektion.\n"
-
-#: dlltool.c:3147
-msgid " -U --add-underscore Add underscores to symbols in interface library.\n"
-msgstr " -U --add-underscore Sæt dit understreg på symboler i grænsesnitsbiblioteket.\n"
-
-#: dlltool.c:3148
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr " -k --kill-at Fjern @<n> fra eksporterede navne.\n"
-
-#: dlltool.c:3149
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr " -A --add-stdcall-alias Tilføj aliaser uden @<n>.\n"
-
-#: dlltool.c:3150
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr " -S --as <navn> Brug <navn> som assembler.\n"
-
-#: dlltool.c:3151
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr " -f --as-flags <flag> Send <flag> til assembleren.\n"
-
-#: dlltool.c:3152
-msgid " -C --compat-implib Create backward compatible import library.\n"
-msgstr " -C --compat-implib Opret bagudkompatibelt importbibliotek.\n"
-
-#: dlltool.c:3153
-msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
-msgstr " -n --no-delete Behold temp.-filer (repetér for øget antal).\n"
-
-#: dlltool.c:3154
-msgid " -v --verbose Be verbose.\n"
-msgstr " -v --verbose Beskriv udførligt\n"
-
-#: dlltool.c:3155
-msgid " -V --version Display the program version.\n"
-msgstr " -V --version Vis versionsinformation om programmet.\n"
-
-#: dlltool.c:3156
-msgid " -h --help Display this information.\n"
-msgstr " -h --help Vis denne information.\n"
-
-#: dlltool.c:3158
-msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr " -M --mcore-elf <udnavn> Behandl mcore-elf-objektfiler til <udnavn>.\n"
-
-#: dlltool.c:3159
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr " -L --linker <navn> Brug <navn> som lænker.\n"
-
-# Justeringen bliver fejl hér for flaget er for lang.
-#: dlltool.c:3160
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr " -F --linker-flags <flag> Send <flag> til lænkeren.\n"
-
-#: dlltool.c:3310
-#, c-format
-msgid "Unable to open base-file: %s"
-msgstr "Kan ikke åbne basefilen: %s"
-
-#: dlltool.c:3339
-#, c-format
-msgid "Machine '%s' not supported"
-msgstr "Maskine \"%s\" håndteres ikke"
-
-#: dlltool.c:3442 dllwrap.c:214
-#, c-format
-msgid "Tried file: %s"
-msgstr "Prøvede fil: %s"
-
-#: dlltool.c:3449 dllwrap.c:221
-#, c-format
-msgid "Using file: %s"
-msgstr "Bruger fil: %s"
-
-#: dllwrap.c:308
-#, c-format
-msgid "Keeping temporary base file %s"
-msgstr "Beholder temporær basefil %s"
-
-#: dllwrap.c:310
-#, c-format
-msgid "Deleting temporary base file %s"
-msgstr "Fjerner temporær basefil %s"
-
-#: dllwrap.c:324
-#, c-format
-msgid "Keeping temporary exp file %s"
-msgstr "Beholder temporær eksportfil %s"
-
-#: dllwrap.c:326
-#, c-format
-msgid "Deleting temporary exp file %s"
-msgstr "Fjerner temporær eksportfil %s"
-
-#: dllwrap.c:339
-#, c-format
-msgid "Keeping temporary def file %s"
-msgstr "Beholder temporær def-fil %s"
-
-#: dllwrap.c:341
-#, c-format
-msgid "Deleting temporary def file %s"
-msgstr "Fjerner temporær def-fil %s"
-
-#: dllwrap.c:496
-msgid " Generic options:\n"
-msgstr " Generelle flag:\n"
-
-#: dllwrap.c:497
-msgid " --quiet, -q Work quietly\n"
-msgstr " --quiet, -q Arbejd stille\n"
-
-#: dllwrap.c:498
-msgid " --verbose, -v Verbose\n"
-msgstr " --verbose, -v Udførlig\n"
-
-#: dllwrap.c:499
-msgid " --version Print dllwrap version\n"
-msgstr " --version Vis versionsinformation for dllwrap\n"
-
-#: dllwrap.c:500
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr " --implib <udnavn> Synonym for --output-lib\n"
-
-#: dllwrap.c:501
-#, c-format
-msgid " Options for %s:\n"
-msgstr " Flag for %s:\n"
-
-#: dllwrap.c:502
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr " --driver-name <enhed> Forvalgt til \"gcc\"\n"
-
-#: dllwrap.c:503
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr " --driver-flags <flag> Forbigå forvalgte flag for ld\n"
-
-#: dllwrap.c:504
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr " --dlltool-name <dllværktøj> Forvalgt til \"dlltool\"\n"
-
-#: dllwrap.c:505
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr " --entry <indgang> Giv alternativ indgangspunkt i DLL'en\n"
-
-#: dllwrap.c:506
-msgid " --image-base <base> Specify image base address\n"
-msgstr " --image-base <base> Giv billedets baseadresse\n"
-
-#: dllwrap.c:507
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr " --target <maskine> i386-cygwin32 eller i386-mingw32\n"
-
-#: dllwrap.c:508
-msgid " --dry-run Show what needs to be run\n"
-msgstr " --dry-run Gør intet andet end at vise hvad som bliver kørt\n"
-
-#: dllwrap.c:509
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr " --mno-cygwin Opret Mingw-DLL\n"
-
-#: dllwrap.c:510
-msgid " Options passed to DLLTOOL:\n"
-msgstr " Flag som sendes til DLLTOOL:\n"
-
-#: dllwrap.c:511
-msgid " --machine <machine>\n"
-msgstr " --machine <maskine>\n"
-
-#: dllwrap.c:512
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr " --output-exp <udnavn> Generér eksportfil.\n"
-
-#: dllwrap.c:513
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr " --output-lib <udnavn> Generér inddatabibliotek.\n"
-
-#: dllwrap.c:514
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr " --add-indirect Tilføj indirekte dll til eksportfilen.\n"
-
-#: dllwrap.c:515
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr " --dllname <navn> Navn på inddata-dll som skal indsættes i uddatabiblioteket.\n"
-
-#: dllwrap.c:516
-msgid " --def <deffile> Name input .def file\n"
-msgstr " --def <deffil> Navngiv .def-inddatafilen\n"
-
-#: dllwrap.c:517
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr " --output-def <deffil> Navngiv .def-uddatafilen\n"
-
-#: dllwrap.c:518
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols Eksporter alle symboler til .def\n"
-
-#: dllwrap.c:519
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr " --no-export-all-symbols Eksporter kun .drectve-symboler\n"
-
-#: dllwrap.c:520
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr " --exclude-symbols <liste> Undtag symbolerne i <liste> fra .def\n"
-
-#: dllwrap.c:521
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr " --no-default-excludes Bortse fra forvalgte undtagne symboler\n"
-
-#: dllwrap.c:522
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr " --base-file <basfil> Læs lænkergenereret basefil\n"
-
-#: dllwrap.c:523
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr " --no-idata4 Generér ingen idata$4-sektion\n"
-
-#: dllwrap.c:524
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr " --no-idata5 Generér ingen idata$5-sektion\n"
-
-#: dllwrap.c:525
-msgid " -U Add underscores to .lib\n"
-msgstr " -U Sæt understregninger i .lib\n"
-
-#: dllwrap.c:526
-msgid " -k Kill @<n> from exported names\n"
-msgstr " -k Fjern @<n> fra eksporterede navne\n"
-
-#: dllwrap.c:527
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr " --add-stdcall-alias Tilføj aliaser uden @<n>\n"
-
-#: dllwrap.c:528
-msgid " --as <name> Use <name> for assembler\n"
-msgstr " --as <navn> Brug <navn> som assembler\n"
-
-#: dllwrap.c:529
-msgid " --nodelete Keep temp files.\n"
-msgstr " --nodelete Behold temporære filer.\n"
-
-#: dllwrap.c:530
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr " Øvrige flag sendes uændrede til programeringsprogsenheden\n"
-
-#: dllwrap.c:802
-msgid "Must provide at least one of -o or --dllname options"
-msgstr "Angiv mindst et af flagene -o eller --dllname"
-
-#: dllwrap.c:830
-msgid ""
-"no export definition file provided.\n"
-"Creating one, but that may not be what you want"
-msgstr ""
-"ingen eksport-definitionsfil angaves.\n"
-"Opretter én, men det er måske ikke hvad du ønsker"
-
-# Indenteringen er øged til at oversættelsen skal få plads fremfor
-# kolonet på alle 4 strenge.
-#: dllwrap.c:992
-#, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr "DLLVÆRKTØJ navn : %s\n"
-
-# Indenteringen er øged til at oversættelsen skal få plads fremfor
-# kolonet på alle 4 strenge.
-#: dllwrap.c:993
-#, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr "DLLTOOL flag: %s\n"
-
-# Indenteringen er øged til at oversættelsen skal få plads fremfor
-# kolonet på alle 4 strenge.
-#: dllwrap.c:994
-#, c-format
-msgid "DRIVER name : %s\n"
-msgstr "ENHED navn : %s\n"
-
-# Indenteringen er øged til at oversættelsen skal få plads fremfor
-# kolonet på alle 4 strenge.
-#: dllwrap.c:995
-#, c-format
-msgid "DRIVER options : %s\n"
-msgstr "ENHED flag : %s\n"
-
-#: emul_aix.c:52
-#, c-format
-msgid " [-g] - 32 bit small archive\n"
-msgstr ""
-
-#: emul_aix.c:53
-msgid " [-X32] - ignores 64 bit objects\n"
-msgstr ""
-
-#: emul_aix.c:54
-msgid " [-X64] - ignores 32 bit objects\n"
-msgstr ""
-
-#: emul_aix.c:55
-msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
-msgstr ""
-
-#: ieee.c:317
-msgid "unexpected end of debugging information"
-msgstr "uventet slut på fejlsøgningsinformationen"
-
-#: ieee.c:412
-msgid "invalid number"
-msgstr "ugyldigt tal"
-
-#: ieee.c:471
-msgid "invalid string length"
-msgstr "ugyldig strenglængde"
-
-#: ieee.c:528 ieee.c:569
-msgid "expression stack overflow"
-msgstr "overløb i udtryksstakken"
-
-#: ieee.c:548
-msgid "unsupported IEEE expression operator"
-msgstr "IEEE-udtryksoperator som ikke understøttes"
-
-#: ieee.c:563
-msgid "unknown section"
-msgstr "ukendt sektion"
-
-#: ieee.c:584
-msgid "expression stack underflow"
-msgstr "underløb i udtryksstakken"
-
-#: ieee.c:598
-msgid "expression stack mismatch"
-msgstr "fejlbalanceret udtryksstak"
-
-#: ieee.c:637
-msgid "unknown builtin type"
-msgstr "ukendt indbygget type"
-
-#: ieee.c:782
-msgid "BCD float type not supported"
-msgstr "flydendetalstype BCD understøttes ikke"
-
-#: ieee.c:928
-msgid "unexpected number"
-msgstr "uventet tal"
-
-#: ieee.c:935
-msgid "unexpected record type"
-msgstr "uventet posttype"
-
-#: ieee.c:968
-msgid "blocks left on stack at end"
-msgstr "block stadig på stakken ved slutningen"
-
-#: ieee.c:1233
-msgid "unknown BB type"
-msgstr "ukendt BB-type"
-
-#: ieee.c:1242
-msgid "stack overflow"
-msgstr "overløb i stakken"
-
-#: ieee.c:1267
-msgid "stack underflow"
-msgstr "underløb i stakken"
-
-#: ieee.c:1381 ieee.c:1453 ieee.c:2152
-msgid "illegal variable index"
-msgstr "ikke tilladt variabelindeks"
-
-#: ieee.c:1431
-msgid "illegal type index"
-msgstr "ikke tilladt typeindeks"
-
-#: ieee.c:1441 ieee.c:1478
-msgid "unknown TY code"
-msgstr "ukendt TY-kode"
-
-#: ieee.c:1460
-msgid "undefined variable in TY"
-msgstr "udefineret variabel i TY"
-
-#. Pascal file name. FIXME.
-#: ieee.c:1871
-msgid "Pascal file name not supported"
-msgstr "Pascal-filnavn understøttes ikke"
-
-# BUGG: qualif>i<er
-#: ieee.c:1919
-msgid "unsupported qualifier"
-msgstr "bestemmelsen understøttes ikke"
-
-#: ieee.c:2190
-msgid "undefined variable in ATN"
-msgstr "udefineret variabel i ATN"
-
-#: ieee.c:2233
-msgid "unknown ATN type"
-msgstr "ukendt ATN-type"
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2355
-msgid "unsupported ATN11"
-msgstr "ATN11 understøttes ikke"
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2382
-msgid "unsupported ATN12"
-msgstr "ATN12 understøttes ikke"
-
-#: ieee.c:2442
-msgid "unexpected string in C++ misc"
-msgstr "uventet streng i C++-misc"
-
-#: ieee.c:2455
-msgid "bad misc record"
-msgstr "fejlagtig misc-post"
-
-#: ieee.c:2498
-msgid "unrecognized C++ misc record"
-msgstr "ukendt C++-misc-post"
-
-#: ieee.c:2615
-msgid "undefined C++ object"
-msgstr "udefineret C++-objekt"
-
-#: ieee.c:2649
-msgid "unrecognized C++ object spec"
-msgstr "ukendt C++-objektspecifikation"
-
-#: ieee.c:2685
-msgid "unsupported C++ object type"
-msgstr "uunderstøttet C++-objekttype"
-
-#: ieee.c:2695
-msgid "C++ base class not defined"
-msgstr "udefineret C++-baseklasse"
-
-#: ieee.c:2707 ieee.c:2812
-msgid "C++ object has no fields"
-msgstr "C++-objektet har ingen felter"
-
-# FIXME: beholdare??
-#: ieee.c:2726
-msgid "C++ base class not found in container"
-msgstr "Fandt ikke C++-baseklassen i beholderen"
-
-# FIXME: beholdare??
-#: ieee.c:2833
-msgid "C++ data member not found in container"
-msgstr "Fandt ikke C++-datamedlemmet i beholderen"
-
-#: ieee.c:2874 ieee.c:3024
-msgid "unknown C++ visibility"
-msgstr "ukendt C++-synlighed"
-
-#: ieee.c:2908
-msgid "bad C++ field bit pos or size"
-msgstr "C++-feltets bit-position eller bit-størrelse er fejlagtig"
-
-#: ieee.c:3000
-msgid "bad type for C++ method function"
-msgstr "fejlagtig type på C++-metodefunktion"
-
-#: ieee.c:3010
-msgid "no type information for C++ method function"
-msgstr "ingen typeinformation om C++-metodefunktion"
-
-#: ieee.c:3049
-msgid "C++ static virtual method"
-msgstr "statisk virtuel C++-metode"
-
-#: ieee.c:3144
-msgid "unrecognized C++ object overhead spec"
-msgstr "ukendt C++-objektoversigtsspec"
-
-#: ieee.c:3183
-msgid "undefined C++ vtable"
-msgstr "udefineret C++-v-tabel"
-
-#: ieee.c:3254
-msgid "C++ default values not in a function"
-msgstr "C++-standardværdier ikke inde i en funktion"
-
-#: ieee.c:3294
-msgid "unrecognized C++ default type"
-msgstr "ukendt C++-standardtype"
-
-#: ieee.c:3325
-msgid "reference parameter is not a pointer"
-msgstr "referenceparameteren er ikke en peger"
-
-#: ieee.c:3410
-msgid "unrecognized C++ reference type"
-msgstr "ukendt C++-referencetype"
-
-#: ieee.c:3492
-msgid "C++ reference not found"
-msgstr "fandt ikke C++-referencen"
-
-#: ieee.c:3500
-msgid "C++ reference is not pointer"
-msgstr "C++-referencen er ingen peger"
-
-#: ieee.c:3529 ieee.c:3537
-msgid "missing required ASN"
-msgstr "mangler nødvendig ASN"
-
-#: ieee.c:3567 ieee.c:3575
-msgid "missing required ATN65"
-msgstr "mangler nødvendig ATN65"
-
-#: ieee.c:3589
-msgid "bad ATN65 record"
-msgstr "fejlagtig ATN65-post"
-
-#: ieee.c:4234
-msgid "IEEE numeric overflow: 0x"
-msgstr "IEEE numerisk overløb: 0x"
-
-#: ieee.c:4280
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr "IEEE overløb i strenglængden: %u\n"
-
-#: ieee.c:5330
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr "IEEE klarer ikke heltalstyper af størrelse %u\n"
-
-#: ieee.c:5366
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr "IEEE klarer ikke flydendetalstyper af størrelse %u\n"
-
-#: ieee.c:5402
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr "IEEE klarer ikke komplekse typer af størrelse %u\n"
-
-#: nlmconv.c:281 srconv.c:2043
-msgid "input and output files must be different"
-msgstr "uddatafilen skal være en anden end inddatafilen"
-
-#: nlmconv.c:328
-msgid "input file named both on command line and with INPUT"
-msgstr "inddatafilen nævnt både på kommandolinjen og via INPUT"
-
-#: nlmconv.c:337
-msgid "no input file"
-msgstr "ingen inddatafil"
-
-#: nlmconv.c:367
-msgid "no name for output file"
-msgstr "intet navn på uddatafilen"
-
-#: nlmconv.c:380
-msgid "warning: input and output formats are not compatible"
-msgstr "advarsel: formaterne for ind- og uddata er ikke kompatible"
-
-#: nlmconv.c:409
-msgid "make .bss section"
-msgstr "opret .bss-sektion"
-
-#: nlmconv.c:418
-msgid "make .nlmsections section"
-msgstr "opret .nlmsections-sektion"
-
-#: nlmconv.c:420
-msgid "set .nlmsections flags"
-msgstr "sæt .nlmsections-flag"
-
-#: nlmconv.c:448
-msgid "set .bss vma"
-msgstr "sæt vma for .bss"
-
-#: nlmconv.c:455
-msgid "set .data size"
-msgstr "sæt .data-størrelse"
-
-#: nlmconv.c:635
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr "advarsel: symbol %s importeredes, men findes ikke i importlisten"
-
-#: nlmconv.c:655
-msgid "set start address"
-msgstr "sæt startadresse"
-
-#: nlmconv.c:704
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr "advarsel: START-procedure %s er ikke defineret"
-
-#: nlmconv.c:706
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr "advarsel: EXIT-procedure %s er ikke defineret"
-
-#: nlmconv.c:708
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr "advarsel: CHECK-procedure %s er ikke defineret"
-
-#: nlmconv.c:729 nlmconv.c:918
-msgid "custom section"
-msgstr "tilrettelig sektion"
-
-#: nlmconv.c:750 nlmconv.c:947
-msgid "help section"
-msgstr "hjælpesektion"
-
-#: nlmconv.c:772 nlmconv.c:965
-msgid "message section"
-msgstr "meddelelsesektion"
-
-#: nlmconv.c:788 nlmconv.c:998
-msgid "module section"
-msgstr "modulsektion"
-
-#: nlmconv.c:808 nlmconv.c:1014
-msgid "rpc section"
-msgstr "rpc-section"
-
-#. There is no place to record this information.
-#: nlmconv.c:844
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr "%s: advarsel: delte biblioteker kan ikke have uinitieret data"
-
-#: nlmconv.c:865 nlmconv.c:1033
-msgid "shared section"
-msgstr "delt sektion"
-
-#: nlmconv.c:873
-msgid "warning: No version number given"
-msgstr "advarsel: Intet versionsnummer givet"
-
-#: nlmconv.c:913 nlmconv.c:942 nlmconv.c:960 nlmconv.c:1009 nlmconv.c:1028
-#, c-format
-msgid "%s: read: %s"
-msgstr "%s: læsefejl: %s"
-
-#: nlmconv.c:935
-msgid "warning: MAP and FULLMAP are not supported; try ld -M"
-msgstr "advarsel: MAP og FULLMAP understøttes ikke; forsøg med ld -M"
-
-#: nlmconv.c:1107
-#, c-format
-msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
-msgstr "Brug: %s [flag] [inddatafil [uddatafil]]\n"
-
-#: nlmconv.c:1108
-msgid " Convert an object file into a NetWare Loadable Module\n"
-msgstr " Konvertér en objektfil til et indlæsningsbart NetWare-modul\n"
-
-#: nlmconv.c:1109
-msgid ""
-" The options are:\n"
-" -I --input-target=<bfdname> Set the input binary file format\n"
-" -O --output-target=<bfdname> Set the output binary file format\n"
-" -T --header-file=<file> Read <file> for NLM header information\n"
-" -l --linker=<linker> Use <linker> for any linking\n"
-" -d --debug Display on stderr the linker command line\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-msgstr ""
-
-#: nlmconv.c:1151
-#, c-format
-msgid "support not compiled in for %s"
-msgstr "ikke oversat med understøttelse for %s"
-
-#: nlmconv.c:1191
-msgid "make section"
-msgstr "opret sektion"
-
-#: nlmconv.c:1205
-msgid "set section size"
-msgstr "sæt sektionsstørrelse"
-
-#: nlmconv.c:1211
-msgid "set section alignment"
-msgstr ""
-
-#: nlmconv.c:1215
-msgid "set section flags"
-msgstr "sæt sektionsflag"
-
-#: nlmconv.c:1226
-msgid "set .nlmsections size"
-msgstr "sæt .nlmsektions størrelse"
-
-#: nlmconv.c:1314 nlmconv.c:1322 nlmconv.c:1331 nlmconv.c:1336
-msgid "set .nlmsection contents"
-msgstr "sæt .nlmsektions indhold"
-
-#: nlmconv.c:1837
-msgid "stub section sizes"
-msgstr "sektionsstørrelser for stub"
-
-#: nlmconv.c:1886
-msgid "writing stub"
-msgstr "skriver stub"
-
-#: nlmconv.c:1975
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr "uløst PC-relativ relokering mod %s"
-
-#: nlmconv.c:2039
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr "overløb ved justeringen af relokering mod %s"
-
-#: nlmconv.c:2156
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr "%s: udførsel af %s mislykkedes: "
-
-#: nlmconv.c:2171
-#, c-format
-msgid "Execution of %s failed"
-msgstr "Eksekvering af %s mislykkedes"
-
-#: nm.c:246 size.c:85 strings.c:650
-#, c-format
-msgid "Usage: %s [option(s)] [file(s)]\n"
-msgstr "Brug: %s [flag] [inddatafiler]\n"
-
-#: nm.c:247
-msgid " List symbols in [file(s)] (a.out by default).\n"
-msgstr " List symboler i FILerne (eller a.out).\n"
-
-#: nm.c:248
-#, fuzzy
-msgid ""
-" The options are:\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', 'lucid', 'arm', 'hp', 'edg' or 'gnu-new-abi'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -S, --print-size Print size of defined symbols\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -X 32_64 (ignored)\n"
-" -h, --help Display this information\n"
-" -V, --version Display this program's version number\n"
-"\n"
-msgstr ""
-"\n"
-" -a, --debug-syms Vis kun fejlsøgningssymboler\n"
-" -A, --print-file-name Skriv navnet på inddatafilen for hvert symbol\n"
-" -B Samme som --format=bsd\n"
-" -C, --demangle[=STIL] Afkod lavniveausymbolnavn til brugerniveaunavn\n"
-" STIL kan være \"auto\" (det forvalgte), \"gnu\",\n"
-" \"lucid\", \"arm\", \"hp\", \"edg\" eller \"gnu-new-abi\"\n"
-" --no-demangle Afkod ikke lavniveausymbolnavn\n"
-" -D, --dynamic Vis dynamiske symboler i stedet for normale symboler\n"
-" --defined-only Vis kun definerede symboler\n"
-" -e (ignoreres)\n"
-" -f, --format=FORMAT Brug FORMAT som uddataformat. FORMAT kan være\n"
-" \"bsd\", \"sysv\" eller \"posix\". Forvalet er \"bsd\"\n"
-" -g, --extern-only Vis kun externe symboler\n"
-" -h, --help Vis denne hjælpen\n"
-" -l, --line-numbers Brug fejlsøgningsinformationen til at slå op\n"
-" filnavn og linjenummer for hvert symbol\n"
-" -n, --numeric-sort Sortere symboler numerisk efter adress\n"
-" -o Samma som -A\n"
-" -p, --no-sort Sortere ikke symbolerne\n"
-" -P, --portability Samme som --format=posix\n"
-" -r, --reverse-sort Sortere åt andre hållet\n"
-" -s, --print-armap Ta med indeks for symboler i arkivmedlemmer\n"
-" --size-sort Sortere symboler efter størrelse\n"
-" -t, --radix=BAS Skriv tal i talbasen BAS\n"
-" --target=BFD-NAVN Specificere målobjektets format som BFD-NAVN\n"
-" -u, --undefined-only Vis kun udefinerede symboler\n"
-" -V, --version Vis programmets versionsinformation\n"
-" -X 32_64 (ignoreres)\n"
-"\n"
-
-#: nm.c:281 objdump.c:217
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr ""
-"Rapportér fejl til %s.\n"
-"Rapportér fejl i oversættelsen til dansk@klid.dk.\n"
-
-#: nm.c:314
-#, c-format
-msgid "%s: invalid radix"
-msgstr "%s: ugyldig talbase"
-
-#: nm.c:339
-#, c-format
-msgid "%s: invalid output format"
-msgstr "%s: ugyldigt uddataformat"
-
-#: nm.c:456
-msgid "Only -X 32_64 is supported"
-msgstr "Kun -X 32_64 understøttes"
-
-#: nm.c:498
-#, c-format
-msgid "data size %ld"
-msgstr "datastørrelse %ld"
-
-#: nm.c:523 readelf.c:5306 readelf.c:5342
-#, c-format
-msgid "<processor specific>: %d"
-msgstr "<processor-specifik>: %d"
-
-#: nm.c:525 readelf.c:5308 readelf.c:5354
-#, c-format
-msgid "<OS specific>: %d"
-msgstr "<OS-specifik>: %d"
-
-#: nm.c:527 readelf.c:5310 readelf.c:5357
-#, c-format
-msgid "<unknown>: %d"
-msgstr "<ukendt>: %d"
-
-#: nm.c:1339
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Udefinerede symboler fra %s:\n"
-"\n"
-
-#: nm.c:1341
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Symboler fra %s:\n"
-"\n"
-
-#: nm.c:1343 nm.c:1401
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"Navn Værdi Klasse Type Størr. Linje Sektion\n"
-"\n"
-
-#: nm.c:1346 nm.c:1404
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"Navn Værdi Klasse Type Størr. Linje Sektion\n"
-"\n"
-
-#: nm.c:1397
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Udefinerede symboler fra %s[%s]:\n"
-"\n"
-
-#: nm.c:1399
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Symboler fra %s[%s]:\n"
-"\n"
-
-#: nm.c:1614
-msgid ""
-"\n"
-"Archive index:\n"
-msgstr ""
-"\n"
-"Arkivindeks:\n"
-
-#: objcopy.c:363 srconv.c:1952
-#, c-format
-msgid "Usage: %s [option(s)] in-file [out-file]\n"
-msgstr "Brug: %s [flag] inddatafil [uddatafil]\n"
-
-#: objcopy.c:364
-msgid " Copies a binary file, possibly transforming it in the process\n"
-msgstr ""
-
-#: objcopy.c:365 objcopy.c:435
-msgid " The options are:\n"
-msgstr " Flagene er:\n"
-
-#: objcopy.c:366
-#, fuzzy
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -B --binary-architecture <arch> Set arch of output file, when input is binary\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" --debugging Convert debugging information, if possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation information\n"
-" -g --strip-debug Remove all debugging symbols\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" -K --keep-symbol <name> Only copy symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-" --weaken Force all global symbols to be marked as weak\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address <addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to <flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to output\n"
-" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-" --change-leading-char Force output format's leading character style\n"
-" --remove-leading-char Remove leading character from global symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --srec-len <number> Restrict the length of generated Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-" --strip-symbols <file> -N for all symbols listed in <file>\n"
-" --keep-symbols <file> -K for all symbols listed in <file>\n"
-" --localize-symbols <file> -L for all symbols listed in <file>\n"
-" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-" --weaken-symbols <file> -W for all symbols listed in <file>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-msgstr ""
-" -I --input-target <bfd-navn> Antag inddatafilens format er <bfd-navn>\n"
-" -O --output-target <bfd-navn> Opret uddatafilen i formatet <bfd-navn>\n"
-" -B --binary-architecture <ark> Vælg arkitektur for udfil når inddata er binær\n"
-" -F --target <bfd-navn> Sætt både in- og udformatet til <bfd-navn>\n"
-" --debugging Konvertere fejlsøgningsinfo, om muligt\n"
-" -p --preserve-dates Kopiér ændrings/adgangtider til uddatan\n"
-" -j --only-section <navn> Kopiér kun sektion <navn> til uddatan\n"
-" -R --remove-section <navn> Fjern sektion <navn> fra uddatan\n"
-" -S --strip-all Fjern all symbol- og relokeringsinfo\n"
-" -g --strip-debug Fjern alle fejlsøgningssymboler\n"
-" --strip-unneeded Fjern symboler onødiga for relokering\n"
-" -N --strip-symbol <navn> Kopiér ikke symbol <navn>\n"
-" -K --keep-symbol <navn> Kopiér kun symbol <navn>\n"
-" -L --localize-symbol <navn> Markere symbol <navn> som lokal\n"
-" -G --keep-global-symbol <navn> Gør alle symboler lokale, forutom <navn>\n"
-" -W --weaken-symbol <navn> Markere symbol <navn> som vek\n"
-" --weaken Markere alle globale symboler som veka\n"
-" -x --discard-all Fjern alle ikke-globale symboler\n"
-" -X --discard-locals Fjern alle oversættergenererede symboler\n"
-" -i --interleave <antal> Kopiér kun en af hvert <antal> byte\n"
-" -b --byte <nr> Vælg ud <nr>'e byten i hvert intervall\n"
-" --gap-fill <tal> Fyll luckor mellem sektionerne med <tal>\n"
-" --pad-to <adr> Fyll ud efter sidste sektionen frem til <adr>\n"
-" --set-start <adr> Sætt startadressen til <adr>\n"
-" {--change-start|--adjust-start} <økn>\n"
-" Tilføj <økn> til startadressen\n"
-" {--change-addresses|--adjust-vma} <økn>\n"
-" Tilføj <økn> til LMA, VMA og startedr.\n"
-" {--change-section-address|--adjust-section-vma} <navn>{=|+|-}<tal>\n"
-" Ændra LMA og VMA på sektion <navn> med <tal>\n"
-" --change-section-lma <navn>{=|+|-}<tal>\n"
-" Ændra LMA på sektion <navn> med <tal>\n"
-" --change-section-vma <navn>{=|+|-}<tal>\n"
-" Ændra VMA på sektion <navn> med <tal>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Advar (inte/[no-]) om en sektion ikke findes\n"
-" --set-section-flags <navn>=<flag>\n"
-" Sætt sektion <navn>s attribut til <flag>\n"
-" --add-section <navn>=<fil> Tilføj sektion <navn> i <fil> til uddatan\n"
-" --rename-section <gam>=<ny>[,<flag>] Skift navn på sektion <gam> til <ny>\n"
-" --change-leading-char Ændra til udformatets type af inledningstegn\n"
-" --remove-leading-char Fjern inledningstegn fra globale symboler\n"
-" --redefine-sym <gam>=<ny> Definere om ssymbolet med navn <gam> til <ny>\n"
-" --srec-len <nr> Begrænsa længden på genererede S-poster\n"
-" --srec-forceS3 Begrænsa typen af genererede S-poster til S3\n"
-" --strip-symbols <fil> -N for alle symboler som listes i <fil>\n"
-" --keep-symbols <fil> -K for alle symboler som listes i <fil>\n"
-" --localize-symbols <fil> -L for alle symboler som listes i <fil>\n"
-" --keep-global-symbols <fil> -G for alle symboler som listes i <fil>\n"
-" --weaken-symbols <fil> -W for alle symboler som listes i <fil>\n"
-" --alt-machine-code <indeks> Brug alternativ maskinkode for uddata\n"
-" -v --verbose Lista alle forændrede objektfiler\n"
-" -V --version Vis programmets versionsinformation\n"
-" -h --help Vis denne hjælp\n"
-
-#: objcopy.c:433
-#, c-format
-msgid "Usage: %s <option(s)> in-file(s)\n"
-msgstr "Brug: %s <flag> inddatafiler\n"
-
-#: objcopy.c:434
-msgid " Removes symbols and sections from files\n"
-msgstr " Fjern symboler og afsnit fra filer\n"
-
-#: objcopy.c:436
-#, fuzzy
-msgid ""
-" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target=<bfdname> Create an output file in format <bfdname>\n"
-" -F --target=<bfdname> Set both input and output format to <bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -R --remove-section=<name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation information\n"
-" -g -S -d --strip-debug Remove all debugging symbols\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol=<name> Do not copy symbol <name>\n"
-" -K --keep-symbol=<name> Only copy symbol <name>\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr ""
-" -I --input-target <bfd-navn> Antag inddatafilens format er <bfd-navn>\n"
-" -O --output-target <bfd-navn> Opret uddatafilen i formatet <bfd-navn>\n"
-" -F --target <bfd-navn> Sæt både in- og udformatet til <bfd-navn>\n"
-" -p --preserve-dates Kopiér ændrings/adgangtider til uddata\n"
-" -R --remove-section <navn> Fjern sektion <navn> fra uddata\n"
-" -s --strip-all Fjern alle symbol- og relokeringsinfo\n"
-" -g -S --strip-debug Fjern alle fejlsøgningssymboler\n"
-" --strip-unneeded Fjern symboler unødige for relokeringen\n"
-" -N --strip-symbol <navn> Kopiér ikke symbol <navn>\n"
-" -K --keep-symbol <navn> Kopiér kun symbol <navn>\n"
-" -x --discard-all Fjern alle ikke-globale symboler\n"
-" -X --discard-locals Fjern alle oversættergenererede symboler\n"
-" -v --verbose Lista alle forændrede objektfiler\n"
-" -V --version Vis programmets versionsinformation\n"
-" -h --help Vis denne hjælp\n"
-" -o <fil> gem den udrensede uddata i <fil>\n"
-
-#: objcopy.c:506
-#, c-format
-msgid "unrecognized section flag `%s'"
-msgstr "ukendt sektionsflag \"%s\""
-
-#: objcopy.c:507
-#, c-format
-msgid "supported flags: %s"
-msgstr "flag som håndteres: %s"
-
-#: objcopy.c:584 objcopy.c:2243
-#, c-format
-msgid "cannot stat: %s: %s"
-msgstr "kan ikke tage status: %s: %s"
-
-#: objcopy.c:591 objcopy.c:2261
-#, c-format
-msgid "cannot open: %s: %s"
-msgstr "kan ikke åbne: %s: %s"
-
-#: objcopy.c:594 objcopy.c:2265
-#, c-format
-msgid "%s: fread failed"
-msgstr "%s: fread mislykkedes"
-
-#: objcopy.c:667
-#, c-format
-msgid "Ignoring rubbish found on line %d of %s"
-msgstr "Ignorerer snavs fundet på linje %d i %s"
-
-#: objcopy.c:888
-#, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr "%s: Flere omdefineringer af symbol \"%s\""
-
-#: objcopy.c:893
-#, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr "%s: Symbol \"%s\" er mål for mere end en omdefinering"
-
-#: objcopy.c:945
-msgid "Unable to change endianness of input file(s)"
-msgstr "Kan ikke ændre endian-type på inddatafilerne"
-
-#: objcopy.c:953
-#, c-format
-msgid "copy from %s(%s) to %s(%s)\n"
-msgstr "kopierer fra %s(%s) til %s(%s)\n"
-
-#: objcopy.c:977
-#, c-format
-msgid "Warning: Output file cannot represent architecture %s"
-msgstr "Advarsel: Uddatafilen kan ikke repræsentere arkitektur %s"
-
-#: objcopy.c:1004
-#, c-format
-msgid "can't create section `%s': %s"
-msgstr "kan ikke oprette sektion \"%s\": %s"
-
-#: objcopy.c:1090
-#, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr "Kan ikke fylde hullet efter %s: %s"
-
-#: objcopy.c:1115
-#, c-format
-msgid "Can't add padding to %s: %s"
-msgstr "Kan ikke fylde ud efter %s: %s"
-
-#: objcopy.c:1254
-#, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr "%s: fejl ved kopiering af privat BFD-data: %s"
-
-#: objcopy.c:1267
-msgid "unknown alternate machine code, ignored"
-msgstr "ukendt alternativ maskinkode, ignoreret"
-
-#: objcopy.c:1300 objcopy.c:1330
-#, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr "kan ikke oprette katalog %s for arkivkopiering (fejl: %s)"
-
-#: objcopy.c:1497
-#, c-format
-msgid "Multiple renames of section %s"
-msgstr "Flere navneskift på sektion %s"
-
-#: objcopy.c:1581
-msgid "making"
-msgstr "fremstilling"
-
-#: objcopy.c:1590
-msgid "size"
-msgstr "størrelse"
-
-#: objcopy.c:1604
-msgid "vma"
-msgstr "vma"
-
-#: objcopy.c:1630
-msgid "alignment"
-msgstr "justering"
-
-#: objcopy.c:1638
-msgid "flags"
-msgstr "flag"
-
-#: objcopy.c:1655
-msgid "private data"
-msgstr "privat data"
-
-#: objcopy.c:1663
-#, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr "%s: sektion \"%s\": fejl på %s: %s"
-
-#: objcopy.c:1946
-#, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr "%s: kan ikke oprette fejlsøgningssektion: %s"
-
-#: objcopy.c:1961
-#, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr "%s: kan ikke sætte indeholdet i fejlsøgningssektionen: %s"
-
-#: objcopy.c:1970
-#, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr "%s: véd ikke hvordan man skriver fejlsøgningsinformation for %s"
-
-#: objcopy.c:2078
-#, c-format
-msgid "%s: cannot stat: %s"
-msgstr "%s: kan ikke tage status: %s"
-
-#: objcopy.c:2129
-msgid "byte number must be non-negative"
-msgstr "byte-nr må ikke være negativt"
-
-#: objcopy.c:2139
-msgid "interleave must be positive"
-msgstr "intervalstørrelsen skal være positiv"
-
-#: objcopy.c:2159 objcopy.c:2167
-#, c-format
-msgid "%s both copied and removed"
-msgstr "%s både kopieret og fjernet"
-
-#: objcopy.c:2240 objcopy.c:2310 objcopy.c:2410 objcopy.c:2437 objcopy.c:2461
-#: objcopy.c:2465 objcopy.c:2485
-#, c-format
-msgid "bad format for %s"
-msgstr "fejlagtigt format på %s"
-
-#: objcopy.c:2379
-#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "Advarsel: afkorter udfyldningsværdien fra 0x%s til 0x%x"
-
-#: objcopy.c:2531
-msgid "alternate machine code index must be positive"
-msgstr "indeks for alternativ maskinkode skal være positivt"
-
-#: objcopy.c:2550
-msgid "byte number must be less than interleave"
-msgstr "byte-nr skal være mindre end antal byte i intervallet"
-
-#: objcopy.c:2577
-#, c-format
-msgid "architecture %s unknown"
-msgstr "arkitektur %s er ukendt"
-
-#: objcopy.c:2581
-msgid "Warning: input target 'binary' required for binary architecture parameter."
-msgstr "Advarsel: inddata skal have formatet 'binary' for binærarkitektursparametre."
-
-#: objcopy.c:2582
-#, c-format
-msgid " Argument %s ignored"
-msgstr " Argument %s ignoreres"
-
-#: objcopy.c:2588
-#, c-format
-msgid "Cannot stat: %s: %s"
-msgstr "Kan ikke tage status: %s: %s"
-
-#: objcopy.c:2628 objcopy.c:2642
-#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr "%s %s%c0x%s bruges aldrig"
-
-#: objdump.c:165
-#, c-format
-msgid "Usage: %s <option(s)> <file(s)>\n"
-msgstr "Brug: %s <flag> <inddatafiler>\n"
-
-#: objdump.c:166
-msgid " Display information from object <file(s)>.\n"
-msgstr " Vis information fra <objektfiler>.\n"
-
-#: objdump.c:167
-msgid " At least one of the following switches must be given:\n"
-msgstr " Mindst et af følgende flag skal angives:\n"
-
-#: objdump.c:168
-#, fuzzy
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" -v, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-" -a, --archive-headers Vis information fra arkivhoveden\n"
-" -f, --file-headers Vis indeholdet i det overgripende filhovedet\n"
-" -p, --private-headers Vis indeholdet i objektformatspecifikke filhoveden\n"
-" -h, --[section-]headers Vis indeholdet i sektionshoveden\n"
-" -x, --all-headers Vis indeholdet i alle hoveden\n"
-" -d, --disassemble Vis disassemblering af exekverbara sektioner\n"
-" -D, --disassemble-all Vis disassemblering af alle sektioner\n"
-" -S, --source Varva kildekode med disassemblering\n"
-" -s, --full-contents Vis hele indeholdet i alle udvalgte sektioner\n"
-" -g, --debugging Vis fejlsøgningsinformation fra objektfilen\n"
-" -G, --stabs Vis (ubehandlet) eventuell STABS-info fra filen\n"
-" -t, --syms Vis indeholdet i symboltabellen(erna)\n"
-" -T, --dynamic-syms Vis indeholdet i tabellen med dynamiske symboler\n"
-" -r, --reloc Vis relokeringsposterne i filen\n"
-" -R, --dynamic-reloc Vis de dynamiske relokeringsposterne i filen\n"
-" -V, --version Vis programmets versionsinformation\n"
-" -i, --info Lista de objektformat og arkitekturer som håndteres\n"
-" -H, --help Vis denne hjælp\n"
-
-#: objdump.c:190
-msgid ""
-"\n"
-" The following switches are optional:\n"
-msgstr ""
-"\n"
-" Følgende flag er frivillige:\n"
-
-#: objdump.c:191
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', 'gnu',\n"
-" 'lucid', 'arm', 'hp', 'edg', or 'gnu-new-abi'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whoes address is >= ADDR\n"
-" --stop-address=ADDR Only process data whoes address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-"\n"
-msgstr ""
-" -b, --target=BFDNAVN Specificér at målobjektets format er BFDNAVN\n"
-" -m, --architecture=MASKINE Specificér at målarkitekturen er MASKINE\n"
-" -j, --section=NAVN Vis kun information om sektion NAVN\n"
-" -M, --disassembler-options=FLG Videresend FLG til disassembleren\n"
-" -EB --endian=big Antag big endian-format ved disassemblering\n"
-" -EL --endian=little Antag little endian-format ved disassemblering\n"
-" --file-start-context Medtag omgivelsen i begyndelsen af filen (med -S)\n"
-" -l, --line-numbers Medtag linjenumre og filnavne i uddata\n"
-" -C, --demangle[=STIL] Afkod kodede symbolnavne\n"
-" STIL, hvis givet, kan være: \"auto\", \"gnu\",\n"
-" \"lucid\", \"arm\", \"hp\", \"edg\", \"gnu-new-abi\"\n"
-" -w, --wide Tilpas uddata til mere end 80 kolonner\n"
-" -z, --disassemble-zeroes Hop ikke over blokke af nuller ved\n"
-" disassemblering\n"
-" --start-address=ADR Behandl kun data på adresser >= ADR\n"
-" --stop-address=ADR Behandl kun data på adresser <= ADR\n"
-" --prefix-addresses Vis fuldstændige adresser sammen med disassemblering.\n"
-" --[no-]show-raw-insn Vis hex.-kode sammen med disassemblering\n"
-" --adjust-vma=OFFSET Tilføj OFFSET til alle viste sektionsadresser\n"
-"\n"
-
-#: objdump.c:358
-msgid "Sections:\n"
-msgstr "Sektioner:\n"
-
-#: objdump.c:361 objdump.c:365
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idx Navn Størrelse VMA LMA Filoffs Just"
-
-#: objdump.c:367
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idx Navn Størrelse VMA LMA Filoffs Just"
-
-#: objdump.c:371
-msgid " Flags"
-msgstr " Flag"
-
-#: objdump.c:419
-#, c-format
-msgid "%s: not a dynamic object"
-msgstr "%s: ikke et dynamisk objekt"
-
-#: objdump.c:433
-#, c-format
-msgid "%s: No dynamic symbols"
-msgstr "%s: Ingen dynamiske symboler"
-
-#: objdump.c:1114
-msgid "Out of virtual memory"
-msgstr "Slut på virtuel hukommelse"
-
-#: objdump.c:1543
-#, c-format
-msgid "Can't use supplied machine %s"
-msgstr "Kan ikke bruge den opgivne maskine %s"
-
-#: objdump.c:1561
-#, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr "Kan ikke disassemblere for arkitektur %s\n"
-
-#: objdump.c:1643
-#, c-format
-msgid "Disassembly of section %s:\n"
-msgstr "Disassemblering af sektion %s:\n"
-
-#: objdump.c:1818
-#, c-format
-msgid ""
-"No %s section present\n"
-"\n"
-msgstr ""
-"Der findes ingen %s-sektion\n"
-"\n"
-
-#: objdump.c:1825
-#, c-format
-msgid "%s has no %s section"
-msgstr "%s har ingen %s-sektion"
-
-#: objdump.c:1839
-#, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr "Læsning af %s-sektionen i %s mislykkedes: %s"
-
-#: objdump.c:1851
-#, c-format
-msgid "Reading %s section of %s failed: %s\n"
-msgstr "Læsning af %s-sektionen i %s mislykkedes: %s\n"
-
-#: objdump.c:1894
-#, c-format
-msgid ""
-"Contents of %s section:\n"
-"\n"
-msgstr ""
-"Indhold i %s-sektionen:\n"
-"\n"
-
-#: objdump.c:1994
-#, c-format
-msgid "architecture: %s, "
-msgstr "arkitektur: %s, "
-
-#: objdump.c:1997
-#, c-format
-msgid "flags 0x%08x:\n"
-msgstr "flag 0x%08x:\n"
-
-#: objdump.c:2010
-msgid ""
-"\n"
-"start address 0x"
-msgstr ""
-"\n"
-"startadresse 0x"
-
-#: objdump.c:2042
-#, c-format
-msgid ""
-"\n"
-"%s: file format %s\n"
-msgstr ""
-"\n"
-"%s: filformat %s\n"
-
-#: objdump.c:2084
-#, c-format
-msgid "%s: printing debugging information failed"
-msgstr "%s: udskrift af fejlsøgningsinformationen mislykkedes"
-
-#: objdump.c:2161
-#, c-format
-msgid "In archive %s:\n"
-msgstr "I arkiv %s:\n"
-
-#: objdump.c:2213
-#, c-format
-msgid "Contents of section %s:\n"
-msgstr "Indhold i %s-sektionen:\n"
-
-#: objdump.c:2718
-#, c-format
-msgid "BFD header file version %s\n"
-msgstr "BFD-hovedfil version %s\n"
-
-#: objdump.c:2807
-msgid "unrecognized -E option"
-msgstr "ukendt -E-flag"
-
-#: objdump.c:2818
-#, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr "ukendt --endian-type \"%s\""
-
-#: rdcoff.c:204
-#, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr "parse_coff_type: Fejlagtig typekode 0x%x"
-
-#: rdcoff.c:422 rdcoff.c:530 rdcoff.c:729
-#, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr "bfd_coff_get_syment mislykkedes: %s"
-
-#: rdcoff.c:438 rdcoff.c:749
-#, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr "bfd_coff_get_auxent mislykkedes: %s"
-
-#: rdcoff.c:816
-#, c-format
-msgid "%ld: .bf without preceding function"
-msgstr "%ld: .bf mangler indledende funktion"
-
-#: rdcoff.c:866
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr "%ld: uventet .ef\n"
-
-#: rddbg.c:87
-#, c-format
-msgid "%s: no recognized debugging information"
-msgstr "%s: ingen kendt fejlsøgningsinformation"
-
-#: rddbg.c:410
-msgid "Last stabs entries before error:\n"
-msgstr "De sidste stabs-poster inden fejlen:\n"
-
-#: readelf.c:328
-#, c-format
-msgid "%s: Error: "
-msgstr "%s: Fejl: "
-
-#: readelf.c:339
-#, c-format
-msgid "%s: Warning: "
-msgstr "%s: Advarsel: "
-
-#: readelf.c:361
-#, c-format
-msgid "Unable to seek to %x for %s\n"
-msgstr "Kan ikke søge til %x for %s\n"
-
-#: readelf.c:372
-#, c-format
-msgid "Out of memory allocating %d bytes for %s\n"
-msgstr "Slut på hukommelse ved allokering af %d byte for %s\n"
-
-#: readelf.c:380
-#, c-format
-msgid "Unable to read in %d bytes of %s\n"
-msgstr "Kan ikke indlæse %d byte af %s\n"
-
-#: readelf.c:433 readelf.c:591
-#, c-format
-msgid "Unhandled data length: %d\n"
-msgstr "Størrelse på data som ikke kan behandles: %d\n"
-
-#: readelf.c:675
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr "Ved ikke hvordan man relokaliserer på denne maskinarkitektur\n"
-
-#: readelf.c:697 readelf.c:726 readelf.c:772 readelf.c:799
-msgid "relocs"
-msgstr "relokeringer"
-
-#: readelf.c:708 readelf.c:737 readelf.c:782 readelf.c:809
-msgid "out of memory parsing relocs"
-msgstr "slut på hukommelse ved tolkning af relokeringer"
-
-#: readelf.c:861
-msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
-msgstr " Offset Info Type Symbolværdi Symbolnavn + Tillæg\n"
-
-#: readelf.c:863
-msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
-msgstr " Offset Info Type Symbolværdi Symbolnavn + Tillæg\n"
-
-#: readelf.c:868
-msgid " Offset Info Type Sym. Value Symbol's Name\n"
-msgstr " Offset Info Type Symbolværdi Symbolnavn\n"
-
-#: readelf.c:870
-msgid " Offset Info Type Sym.Value Sym. Name\n"
-msgstr " Offset Info Type Symbolværdi Symbolnavn\n"
-
-#: readelf.c:878
-msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
-msgstr " Offset Info Type Symbolværdi Symbolnavn + Tillæg\n"
-
-#: readelf.c:880
-msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
-msgstr " Offset Info Type Symbolværdi Symbolnavn+ Tillæg\n"
-
-#: readelf.c:885
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr " Offset Info Type Symbolværdi Symbolnavn\n"
-
-#: readelf.c:887
-msgid " Offset Info Type Sym. Value Sym. Name\n"
-msgstr " Offset Info Type Symbolværdi Symbolnavn\n"
-
-#: readelf.c:1134 readelf.c:1136 readelf.c:1184 readelf.c:1186 readelf.c:1195
-#: readelf.c:1197
-#, c-format
-msgid "unrecognized: %-7lx"
-msgstr "ukendt: %-7lx"
-
-#: readelf.c:1158
-#, c-format
-msgid "<string table index %3ld>"
-msgstr "<strengtabelsindeks %3ld>"
-
-#: readelf.c:1423
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr "processorspecifik: %lx"
-
-#: readelf.c:1442
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr "Operativsystemsspecifik: %lx"
-
-#: readelf.c:1445 readelf.c:2086
-#, c-format
-msgid "<unknown>: %lx"
-msgstr "<ukendt>: %lx"
-
-#: readelf.c:1459
-msgid "NONE (None)"
-msgstr "NONE (ingen)"
-
-#: readelf.c:1460
-msgid "REL (Relocatable file)"
-msgstr "REL (relokérbar fil)"
-
-#: readelf.c:1461
-msgid "EXEC (Executable file)"
-msgstr "EXEC (eksekverbar fil)"
-
-#: readelf.c:1462
-msgid "DYN (Shared object file)"
-msgstr "DYN (delt objektfil)"
-
-#: readelf.c:1463
-msgid "CORE (Core file)"
-msgstr "CORE (hukommelsesfil)"
-
-#: readelf.c:1467
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr "processorspecifik: (%x)"
-
-#: readelf.c:1469
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr "OS-specifikt: (%x)"
-
-#: readelf.c:1471 readelf.c:1573 readelf.c:2238
-#, c-format
-msgid "<unknown>: %x"
-msgstr "<ukendt>: %x"
-
-#: readelf.c:1484
-msgid "None"
-msgstr "Ingen"
-
-#: readelf.c:2278
-msgid "Usage: readelf <option(s)> elf-file(s)\n"
-msgstr "Brug: readelf <flag> elf-filer\n"
-
-#: readelf.c:2279
-msgid " Display information about the contents of ELF format files\n"
-msgstr ""
-
-#: readelf.c:2280
-msgid ""
-" Options are:\n"
-" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Display the ELF file header\n"
-" -l --program-headers Display the program headers\n"
-" --segments An alias for --program-headers\n"
-" -S --section-headers Display the sections' header\n"
-" --sections An alias for --section-headers\n"
-" -e --headers Equivalent to: -h -l -S\n"
-" -s --syms Display the symbol table\n"
-" --symbols An alias for --syms\n"
-" -n --notes Display the core notes (if present)\n"
-" -r --relocs Display the relocations (if present)\n"
-" -u --unwind Display the unwind info (if present)\n"
-" -d --dynamic Display the dynamic segment (if present)\n"
-" -V --version-info Display the version sections (if present)\n"
-" -A --arch-specific Display architecture specific information (if any).\n"
-" -D --use-dynamic Use the dynamic section info when displaying symbols\n"
-" -x --hex-dump=<number> Dump the contents of section <number>\n"
-" -w --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]\n"
-" Display the contents of DWARF2 debug sections\n"
-msgstr ""
-
-#: readelf.c:2301
-msgid ""
-" -i --instruction-dump=<number>\n"
-" Disassemble the contents of section <number>\n"
-msgstr ""
-" -i --instruction-dump=<nr>\n"
-" Disassemblér indeholdet i sektion <nr>\n"
-
-#: readelf.c:2305
-msgid ""
-" -I --histogram Display histogram of bucket list lengths\n"
-" -W --wide Allow output width to exceed 80 characters\n"
-" -H --help Display this information\n"
-" -v --version Display the version number of readelf\n"
-msgstr ""
-
-#: readelf.c:2327
-msgid "Out of memory allocating dump request table."
-msgstr "Slut på hukommelse ved allokering af tabel for ønskede udskrifter."
-
-#: readelf.c:2491
-#, c-format
-msgid "Unrecognized debug option '%s'\n"
-msgstr "Ukendt fejlsøgningsargument \"%s\"\n"
-
-#: readelf.c:2519
-#, c-format
-msgid "Invalid option '-%c'\n"
-msgstr "Ugyldigt flag \"-%c\"\n"
-
-#: readelf.c:2532
-msgid "Nothing to do.\n"
-msgstr "Intet at gøre.\n"
-
-#: readelf.c:2545 readelf.c:2562 readelf.c:4867
-msgid "none"
-msgstr "ingen"
-
-#: readelf.c:2549 readelf.c:2566 readelf.c:2594
-#, c-format
-msgid "<unknown: %x>"
-msgstr "<ukendt: %x>"
-
-#: readelf.c:2563
-msgid "2's complement, little endian"
-msgstr "2-komplement, little endian"
-
-#: readelf.c:2564
-msgid "2's complement, big endian"
-msgstr "2-komplement, big endian"
-
-#: readelf.c:2591
-msgid "Standalone App"
-msgstr "Selvstændig app."
-
-#: readelf.c:2609
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr "Ikke en ELF-fil - den har forkerte magiske byte i begyndelsen\n"
-
-#: readelf.c:2617
-msgid "ELF Header:\n"
-msgstr "ELF-hoved:\n"
-
-#: readelf.c:2618
-msgid " Magic: "
-msgstr " Magi: "
-
-#: readelf.c:2622
-#, c-format
-msgid " Class: %s\n"
-msgstr " Klasse: %s\n"
-
-#: readelf.c:2624
-#, c-format
-msgid " Data: %s\n"
-msgstr " Data: %s\n"
-
-#: readelf.c:2626
-#, c-format
-msgid " Version: %d %s\n"
-msgstr " Version: %d %s\n"
-
-#: readelf.c:2633
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr " OS/ABI: %s\n"
-
-#: readelf.c:2635
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr " ABI-version: %d\n"
-
-#: readelf.c:2637
-#, c-format
-msgid " Type: %s\n"
-msgstr " Type: %s\n"
-
-#: readelf.c:2639
-#, c-format
-msgid " Machine: %s\n"
-msgstr " Maskine: %s\n"
-
-#: readelf.c:2641
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr " Version: 0x%lx\n"
-
-#: readelf.c:2644
-msgid " Entry point address: "
-msgstr " Indgangsodresse: "
-
-#: readelf.c:2646
-msgid ""
-"\n"
-" Start of program headers: "
-msgstr ""
-"\n"
-" Start for programhoveder: "
-
-#: readelf.c:2648
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr ""
-" (byte inde i filen)\n"
-" Start for sektionshoveder: "
-
-#: readelf.c:2650
-msgid " (bytes into file)\n"
-msgstr " (byte inde i filen)\n"
-
-#: readelf.c:2652
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr " Flag: 0x%lx%s\n"
-
-#: readelf.c:2655
-#, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr " Dette hoveds størrelse: %ld (byte)\n"
-
-#: readelf.c:2657
-#, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr " Programhovedernes størrelse: %ld (byte)\n"
-
-#: readelf.c:2659
-#, c-format
-msgid " Number of program headers: %ld\n"
-msgstr " Antal programhoveder: %ld\n"
-
-#: readelf.c:2661
-#, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr " Sektionshovedernes størrelse: %ld (byte)\n"
-
-#: readelf.c:2663
-#, c-format
-msgid " Number of section headers: %ld"
-msgstr " Antal sektionshoveder: %ld"
-
-#: readelf.c:2668
-#, c-format
-msgid " Section header string table index: %ld"
-msgstr " Sektionshovedets strengtabelsindeks: %ld"
-
-#: readelf.c:2702 readelf.c:2738
-msgid "program headers"
-msgstr "programhoveder"
-
-#: readelf.c:2772
-msgid ""
-"\n"
-"There are no program headers in this file.\n"
-msgstr ""
-"\n"
-"Der findes ingen programhoveder i denne fil.\n"
-
-#: readelf.c:2778
-#, c-format
-msgid ""
-"\n"
-"Elf file type is %s\n"
-msgstr ""
-"\n"
-"Elf-filtype er %s\n"
-
-#: readelf.c:2779
-msgid "Entry point "
-msgstr "Indgangspunkt "
-
-#: readelf.c:2781
-#, c-format
-msgid ""
-"\n"
-"There are %d program headers, starting at offset "
-msgstr ""
-"\n"
-"Der findes %d programhoveder, med begyndelse på offset "
-
-#: readelf.c:2792 readelf.c:3019 readelf.c:3065 readelf.c:3128 readelf.c:3195
-#: readelf.c:4229 readelf.c:4272 readelf.c:4461 readelf.c:5414 readelf.c:5428
-#: readelf.c:9659 readelf.c:9699
-msgid "Out of memory\n"
-msgstr "Slut på hukommelse\n"
-
-# BUGG: plural-s
-#: readelf.c:2810 readelf.c:2812
-msgid ""
-"\n"
-"Program Headers:\n"
-msgstr ""
-"\n"
-"Programhoveder:\n"
-
-#: readelf.c:2816
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Type Offset VirtAdr FysAdr FilSt HukommelseSt Flg Just\n"
-
-#: readelf.c:2819
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Type Offset VirtAdr FysAdr FilStrl HukommelseSt Flg Just\n"
-
-#: readelf.c:2823
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr " Type Offset VirtAdr FysAdr\n"
-
-#: readelf.c:2825
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr " FilStrl HukommelseStrl Flag Just\n"
-
-#: readelf.c:2925
-msgid "more than one dynamic segment\n"
-msgstr "mere end et dynamisk segment\n"
-
-#: readelf.c:2933
-msgid "Unable to find program interpreter name\n"
-msgstr "Kan ikke finde navnet på programtolken\n"
-
-#: readelf.c:2940
-#, c-format
-msgid ""
-"\n"
-" [Requesting program interpreter: %s]"
-msgstr ""
-"\n"
-" [Anmoder programtolkere: %s]"
-
-#: readelf.c:2958
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-msgstr ""
-"\n"
-" Sektion til segment-afbildning:\n"
-
-#: readelf.c:2959
-msgid " Segment Sections...\n"
-msgstr " Segmentsektioner...\n"
-
-#: readelf.c:3010 readelf.c:3056
-msgid "section headers"
-msgstr "sektionshoveder"
-
-#: readelf.c:3104 readelf.c:3171
-msgid "symbols"
-msgstr "symboler"
-
-#: readelf.c:3115 readelf.c:3182
-msgid "symtab shndx"
-msgstr "symtab shndx"
-
-#: readelf.c:3284
-msgid ""
-"\n"
-"There are no sections in this file.\n"
-msgstr ""
-"\n"
-"Der findes ingen sektioner i denne fil.\n"
-
-#: readelf.c:3290
-#, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr "Der findes %d sektionshoveder, med begyndelse på offset 0x%lx:\n"
-
-#: readelf.c:3307 readelf.c:3621 readelf.c:3968 readelf.c:5565
-msgid "string table"
-msgstr "strengtabel"
-
-#: readelf.c:3328
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr "Filen indeholder flere tabeller med dynamiske symboler\n"
-
-#: readelf.c:3340
-msgid "File contains multiple dynamic string tables\n"
-msgstr "Filen indeholder flere dynamiske strengtabeller\n"
-
-#: readelf.c:3346
-msgid "dynamic strings"
-msgstr "dynamiske strenge"
-
-#: readelf.c:3352
-msgid "File contains multiple symtab shndx tables\n"
-msgstr "Filen indeholder flere symtab-shndx-tabeller\n"
-
-# BUGG: plural-s
-#: readelf.c:3390
-msgid ""
-"\n"
-"Section Headers:\n"
-msgstr ""
-"\n"
-"Sektionshoveder:\n"
-
-# BUGG: plural-s
-#: readelf.c:3392
-msgid ""
-"\n"
-"Section Header:\n"
-msgstr ""
-"\n"
-"Sektionshoved:\n"
-
-#: readelf.c:3396
-msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] Navn Type Adr Off Strl PS Flg Lk Inf Ju\n"
-
-#: readelf.c:3399
-msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] Navn Type Adresse Off Strl PS Flg Lk Inf Ju\n"
-
-#: readelf.c:3402
-msgid " [Nr] Name Type Address Offset\n"
-msgstr " [Nr] Navn Type Adresse Offset\n"
-
-#: readelf.c:3403
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr " Størrelse Poststørrelse Flag Lænk Info Just\n"
-
-#: readelf.c:3498
-msgid ""
-"Key to Flags:\n"
-" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-" I (info), L (link order), G (group), x (unknown)\n"
-" O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr ""
-"Nøgle til flagene:\n"
-" W (skriv), A (allokér), X (eksekvér), M (flet), S (strenge)\n"
-" I (info), L (lænkerorden), G (gruppe), x (ukendt)\n"
-" O (ekstra OS-behandling kræves) o (OS-specifik), p (processor-specifik)\n"
-
-#: readelf.c:3559
-#, c-format
-msgid ""
-"\n"
-"Relocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr ""
-"\n"
-"Relokeringssektionen på offset 0x%lx indeholder %ld byte:\n"
-
-#: readelf.c:3566
-msgid ""
-"\n"
-"There are no dynamic relocations in this file.\n"
-msgstr ""
-"\n"
-"Der findes ingen dynamiske relokeringer i denne fil.\n"
-
-#: readelf.c:3593
-msgid ""
-"\n"
-"Relocation section "
-msgstr ""
-"\n"
-"Relokeringssektion "
-
-#: readelf.c:3598 readelf.c:4031 readelf.c:4045
-#, c-format
-msgid "'%s'"
-msgstr ""
-
-#: readelf.c:3600 readelf.c:4047
-#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr " på offset 0x%lx indeholder %lu poster:\n"
-
-#: readelf.c:3638
-msgid ""
-"\n"
-"There are no relocations in this file.\n"
-msgstr ""
-"\n"
-"Der findes ingen relokeringer i denne fil.\n"
-
-#: readelf.c:3834
-msgid "unwind table"
-msgstr "tilbagerulningstabel"
-
-#: readelf.c:3885 readelf.c:3897 readelf.c:7890 readelf.c:7901
-#, c-format
-msgid "Skipping unexpected symbol type %u\n"
-msgstr "Hopper over uventet symboltype %u\n"
-
-#: readelf.c:3905
-#, c-format
-msgid "Skipping unexpected relocation type %s\n"
-msgstr "Hopper over uventet relokeringstype %s\n"
-
-#: readelf.c:3950 readelf.c:3975
-msgid ""
-"\n"
-"There are no unwind sections in this file.\n"
-msgstr ""
-"\n"
-"Der findes ingen tilbagerulningssektioner i denne fil.\n"
-
-# BUG: Fortsættelsen er ikke markeret for oversættelse i koden og indeholder '-citattegn.
-#: readelf.c:4026
-msgid ""
-"\n"
-"Could not find unwind info section for "
-msgstr ""
-"\n"
-"Kunne ikke finde tilbagerulningssektion til "
-
-#: readelf.c:4038
-msgid "unwind info"
-msgstr "tilbagerulningsinfo"
-
-#: readelf.c:4040
-msgid ""
-"\n"
-"Unwind section "
-msgstr ""
-"\n"
-"Tilbagerulningssektion "
-
-#: readelf.c:4213 readelf.c:4256
-msgid "dynamic segment"
-msgstr "dynamisk segment"
-
-#: readelf.c:4334
-msgid ""
-"\n"
-"There is no dynamic segment in this file.\n"
-msgstr ""
-"\n"
-"Der findes intet dynamisk segment i denne fil.\n"
-
-#: readelf.c:4368
-msgid "Unable to seek to end of file!"
-msgstr "Kan ikke søge til slutningen af filen!"
-
-#: readelf.c:4379
-msgid "Unable to determine the number of symbols to load\n"
-msgstr "Kan ikke bestemme hvor mange symboler som skal læses ind\n"
-
-#: readelf.c:4409
-msgid "Unable to seek to end of file\n"
-msgstr "Kan ikke søge til slutningen af filen\n"
-
-#: readelf.c:4415
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr "Kan ikke bestemme længden på den dynamiske strengtabel\n"
-
-#: readelf.c:4420
-msgid "dynamic string table"
-msgstr "dynamisk strengtabel"
-
-#: readelf.c:4454
-msgid "symbol information"
-msgstr "symbolinformation"
-
-#: readelf.c:4478
-#, c-format
-msgid ""
-"\n"
-"Dynamic segment at offset 0x%x contains %ld entries:\n"
-msgstr ""
-"\n"
-"Dynamisk segment på offset 0x%x indeholder %ld poster:\n"
-
-#: readelf.c:4481
-msgid " Tag Type Name/Value\n"
-msgstr " Mærke Type Navn/Værdi\n"
-
-#: readelf.c:4517
-msgid "Auxiliary library"
-msgstr "Eksternt bibliotek"
-
-#: readelf.c:4521
-msgid "Filter library"
-msgstr "Filterbibliotek"
-
-#: readelf.c:4525
-msgid "Configuration file"
-msgstr "Konfigurationsfil"
-
-#: readelf.c:4529
-msgid "Dependency audit library"
-msgstr "Afhængighedskontrolsbibliotek"
-
-#: readelf.c:4533
-msgid "Audit library"
-msgstr "Kontrolbibliotek"
-
-#: readelf.c:4551 readelf.c:4577 readelf.c:4603
-msgid "Flags:"
-msgstr "Flag:"
-
-#: readelf.c:4553 readelf.c:4579 readelf.c:4605
-msgid " None\n"
-msgstr " Ingen\n"
-
-#: readelf.c:4724
-#, c-format
-msgid "Shared library: [%s]"
-msgstr "Delt bibliotek: [%s]"
-
-#: readelf.c:4727
-msgid " program interpreter"
-msgstr " Programfortolker"
-
-#: readelf.c:4731
-#, c-format
-msgid "Library soname: [%s]"
-msgstr "Bibliotekets so-navn: [%s]"
-
-#: readelf.c:4735
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr "Bibliotekets rpath: [%s]"
-
-#: readelf.c:4739
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr "Bibliotekets runpath: [%s]"
-
-#: readelf.c:4802
-#, c-format
-msgid "Not needed object: [%s]\n"
-msgstr "Unødvendigt objekt: [%s]\n"
-
-#: readelf.c:4913
-#, c-format
-msgid ""
-"\n"
-"Version definition section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Versiondefinitionssektion \"%s\" indeholder %ld poster:\n"
-
-#: readelf.c:4916
-msgid " Addr: 0x"
-msgstr " Adr: 0x"
-
-#: readelf.c:4918 readelf.c:5113
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr " Offset: %#08lx Lænk: %lx (%s)\n"
-
-#: readelf.c:4925
-msgid "version definition section"
-msgstr "versiondefinitionssektion"
-
-#: readelf.c:4951
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr " %#06x: Rev: %d Flag: %s"
-
-#: readelf.c:4954
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr " Indeks: %d Ant: %d "
-
-#: readelf.c:4965
-#, c-format
-msgid "Name: %s\n"
-msgstr "Navn: %s\n"
-
-#: readelf.c:4967
-#, c-format
-msgid "Name index: %ld\n"
-msgstr "Navneindeks: %ld\n"
-
-#: readelf.c:4982
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr " %#06x: Forælder %d: %s\n"
-
-#: readelf.c:4985
-#, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr " %#06x: Forælder %d, navneindeks: %ld\n"
-
-#: readelf.c:5004
-#, c-format
-msgid ""
-"\n"
-"Version needs section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Versionbehovssektion \"%s\" indeholder %ld poster:\n"
-
-#: readelf.c:5007
-msgid " Addr: 0x"
-msgstr " Adr: 0x"
-
-#: readelf.c:5009
-#, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr " Offset: %#08lx Lænke til sektion: %ld (%s)\n"
-
-#: readelf.c:5015
-msgid "version need section"
-msgstr "versionsbehovssektion"
-
-#: readelf.c:5037
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr " %#06x: Version: %d"
-
-#: readelf.c:5040
-#, c-format
-msgid " File: %s"
-msgstr " Fil: %s"
-
-#: readelf.c:5042
-#, c-format
-msgid " File: %lx"
-msgstr " Fil: %lx"
-
-#: readelf.c:5044
-#, c-format
-msgid " Cnt: %d\n"
-msgstr " Ant: %d\n"
-
-#: readelf.c:5062
-#, c-format
-msgid " %#06x: Name: %s"
-msgstr " %#06x: Navn: %s"
-
-#: readelf.c:5065
-#, c-format
-msgid " %#06x: Name index: %lx"
-msgstr " %#06x: Navneindeks: %lx"
-
-#: readelf.c:5068
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr " Flag: %s Version: %d\n"
-
-#: readelf.c:5104
-msgid "version string table"
-msgstr "versionsstrengtabel"
-
-#: readelf.c:5108
-#, c-format
-msgid ""
-"\n"
-"Version symbols section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"Versionsymbolssektion \"%s\" indeholder %d poster:\n"
-
-#: readelf.c:5111
-msgid " Addr: "
-msgstr " Adr: "
-
-#: readelf.c:5121
-msgid "version symbol data"
-msgstr "versionsymbolsdata"
-
-#: readelf.c:5148
-msgid " 0 (*local*) "
-msgstr " 0 (*lokal*) "
-
-#: readelf.c:5152
-msgid " 1 (*global*) "
-msgstr " 1 (*global*) "
-
-#: readelf.c:5187 readelf.c:5622
-msgid "version need"
-msgstr "versionsbehov"
-
-#: readelf.c:5197
-msgid "version need aux (2)"
-msgstr "ydre versionsbehov (2)"
-
-#: readelf.c:5238 readelf.c:5684
-msgid "version def"
-msgstr "versionsdef."
-
-#: readelf.c:5257 readelf.c:5699
-msgid "version def aux"
-msgstr "ydre versionsdef."
-
-#: readelf.c:5288
-msgid ""
-"\n"
-"No version information found in this file.\n"
-msgstr ""
-"\n"
-"Der fandtes ingen versionsinformation i denne fil.\n"
-
-#: readelf.c:5420
-msgid "Unable to read in dynamic data\n"
-msgstr "Kan ikke indlæse de dynamiske data\n"
-
-#: readelf.c:5462
-msgid "Unable to seek to start of dynamic information"
-msgstr "Kan ikke søge til begyndelsen af den dynamiske information"
-
-#: readelf.c:5468
-msgid "Failed to read in number of buckets\n"
-msgstr "Mislykkedes at indlæse antal spande\n"
-
-#: readelf.c:5474
-msgid "Failed to read in number of chains\n"
-msgstr "Mislykkedes at indlæse antal kæder\n"
-
-#: readelf.c:5494
-msgid ""
-"\n"
-"Symbol table for image:\n"
-msgstr ""
-"\n"
-"Symboltabel for filbilleder:\n"
-
-#: readelf.c:5496
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nr Spd: Værdi Strl Type Bind Synl Idx Navn\n"
-
-#: readelf.c:5498
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nr Spd: Værdi Strl Type Bind Synl Idx Navn\n"
-
-#: readelf.c:5543
-#, c-format
-msgid ""
-"\n"
-"Symbol table '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"Symboltabel \"%s\" indeholder %lu poster:\n"
-
-#: readelf.c:5547
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nr: Værdi Strl Type Bind Synl Idx Navn\n"
-
-#: readelf.c:5549
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nr: Værdi Strl Type Bind Synl Idx Navn\n"
-
-#: readelf.c:5595
-msgid "version data"
-msgstr "versionsdata"
-
-#: readelf.c:5635
-msgid "version need aux (3)"
-msgstr "ydre versionsbehov (3)"
-
-#: readelf.c:5660
-msgid "bad dynamic symbol"
-msgstr "fejlagtigt dynamisk symbol"
-
-#: readelf.c:5722
-msgid ""
-"\n"
-"Dynamic symbol information is not available for displaying symbols.\n"
-msgstr ""
-"\n"
-"Informationen om dynamiske symboler er ikke tilgænglig til at vise symboler.\n"
-
-#: readelf.c:5734
-#, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length (total of %d buckets):\n"
-msgstr ""
-"\n"
-"Histogram over spandenes listelængde (totalt %d spande):\n"
-
-#: readelf.c:5736
-#, c-format
-msgid " Length Number %% of total Coverage\n"
-msgstr " Længde Nummer %% af alle Dækning\n"
-
-#: readelf.c:5741 readelf.c:5760 readelf.c:9146 readelf.c:9338
-msgid "Out of memory"
-msgstr "Slut på hukommelse"
-
-#: readelf.c:5809
-#, c-format
-msgid ""
-"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr ""
-"\n"
-"Dynamisk info-segment på offset 0x%lx indeholder %d poster:\n"
-
-#: readelf.c:5812
-msgid " Num: Name BoundTo Flags\n"
-msgstr " Nr: Navn Bind til Flag\n"
-
-#: readelf.c:5864
-#, c-format
-msgid ""
-"\n"
-"Assembly dump of section %s\n"
-msgstr ""
-"\n"
-"Disassembleringsudskrift af sektion %s\n"
-
-#: readelf.c:5887
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no data to dump.\n"
-msgstr ""
-"\n"
-"Sektion \"%s\" har ingen data at skrive ud.\n"
-
-#: readelf.c:5892
-#, c-format
-msgid ""
-"\n"
-"Hex dump of section '%s':\n"
-msgstr ""
-"\n"
-"Hex.udskrift af sektion \"%s\":\n"
-
-#: readelf.c:5897
-msgid "section data"
-msgstr "sektionsdata"
-
-#: readelf.c:6046
-msgid "badly formed extended line op encountered!\n"
-msgstr "fejlagtigt udformet udvidet linje-op mødtes!\n"
-
-#: readelf.c:6053
-#, c-format
-msgid " Extended opcode %d: "
-msgstr " Udvidet op-kode %d: "
-
-#: readelf.c:6058
-msgid ""
-"End of Sequence\n"
-"\n"
-msgstr ""
-"Slut på sekvensen\n"
-"\n"
-
-#: readelf.c:6064
-#, c-format
-msgid "set Address to 0x%lx\n"
-msgstr "sæt Adresse til 0x%lx\n"
-
-#: readelf.c:6069
-msgid " define new File Table entry\n"
-msgstr " definer ny filtabelspost\n"
-
-#: readelf.c:6070 readelf.c:6199
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr " Post\tKatalog\tTid\tStrl.\tNavn\n"
-
-#: readelf.c:6072
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: readelf.c:6075 readelf.c:6077 readelf.c:6079 readelf.c:6211 readelf.c:6213
-#: readelf.c:6215
-#, c-format
-msgid "%lu\t"
-msgstr "%lu\t"
-
-#: readelf.c:6080
-#, c-format
-msgid ""
-"%s\n"
-"\n"
-msgstr ""
-"%s\n"
-"\n"
-
-#: readelf.c:6084
-#, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr "UKENDT: længde %d\n"
-
-#: readelf.c:6110
-#, c-format
-msgid ""
-"\n"
-"Dump of debug contents of section %s:\n"
-"\n"
-msgstr ""
-"\n"
-"Udskrift af fejlsøgningsindhold i sektion %s:\n"
-"\n"
-
-#: readelf.c:6122
-msgid "64-bit DWARF line info is not supported yet.\n"
-msgstr "64-bit DWARF-linjeinformation understøttes ikke endnu.\n"
-
-#: readelf.c:6129
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr "Linjeinformationen virker være i stykker - sektionen er for lille\n"
-
-#: readelf.c:6137
-msgid "Only DWARF version 2 line info is currently supported.\n"
-msgstr "Kun DWARF version 2's linjeinfo understøttes i øjeblikket.\n"
-
-#: readelf.c:6152
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Længde: %ld\n"
-
-#: readelf.c:6153
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr " DWARF version: %d\n"
-
-#: readelf.c:6154
-#, c-format
-msgid " Prologue Length: %d\n"
-msgstr " Prologlængde: %d\n"
-
-#: readelf.c:6155
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr " Min.-instruktionslængde: %d\n"
-
-# BUG: Ska det ikke være `' på engelsk?
-#: readelf.c:6156
-#, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr " initialværdi på \"is_stmt\": %d\n"
-
-#: readelf.c:6157
-#, c-format
-msgid " Line Base: %d\n"
-msgstr " linjebase: %d\n"
-
-#: readelf.c:6158
-#, c-format
-msgid " Line Range: %d\n"
-msgstr " linjeområde: %d\n"
-
-#: readelf.c:6159
-#, c-format
-msgid " Opcode Base: %d\n"
-msgstr " op-kodebase: %d\n"
-
-#: readelf.c:6168
-msgid ""
-"\n"
-" Opcodes:\n"
-msgstr ""
-"\n"
-" Op-koder:\n"
-
-#: readelf.c:6171
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr " Op-kode %d har %d argumenter\n"
-
-#: readelf.c:6177
-msgid ""
-"\n"
-" The Directory Table is empty.\n"
-msgstr ""
-"\n"
-" Katalogtabellen er tom.\n"
-
-#: readelf.c:6180
-msgid ""
-"\n"
-" The Directory Table:\n"
-msgstr ""
-"\n"
-" Katalogtabellen:\n"
-
-#: readelf.c:6184
-#, c-format
-msgid " %s\n"
-msgstr " %s\n"
-
-#: readelf.c:6195
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr ""
-"\n"
-" Filnavnstabellen er tom.\n"
-
-#: readelf.c:6198
-msgid ""
-"\n"
-" The File Name Table:\n"
-msgstr ""
-"\n"
-" Filnavnstabellen:\n"
-
-#: readelf.c:6206
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: readelf.c:6217
-#, c-format
-msgid "%s\n"
-msgstr "%s\n"
-
-#. Now display the statements.
-#: readelf.c:6225
-msgid ""
-"\n"
-" Line Number Statements:\n"
-msgstr ""
-"\n"
-" Linjenummersætninger:\n"
-
-#: readelf.c:6241
-#, c-format
-msgid " Special opcode %d: advance Address by %d to 0x%lx"
-msgstr " Særlig op-kode %d: øg adressen med %d til 0x%lx"
-
-#: readelf.c:6245
-#, c-format
-msgid " and Line by %d to %d\n"
-msgstr " og linjenumret med %d til %d\n"
-
-#: readelf.c:6256
-msgid " Copy\n"
-msgstr " Kopiér\n"
-
-#: readelf.c:6263
-#, c-format
-msgid " Advance PC by %d to %lx\n"
-msgstr " Øg PC med %d til %lx\n"
-
-#: readelf.c:6271
-#, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr " Øg linjenumret med %d til %d\n"
-
-#: readelf.c:6278
-#, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr " Sæt filnavnet til post %d i filnavnstabellen\n"
-
-#: readelf.c:6286
-#, c-format
-msgid " Set column to %d\n"
-msgstr " Sæt kolonnen til %d\n"
-
-#: readelf.c:6293
-#, c-format
-msgid " Set is_stmt to %d\n"
-msgstr " Sæt is_stmt til %d\n"
-
-#: readelf.c:6298
-msgid " Set basic block\n"
-msgstr " Sæt baseblokken\n"
-
-#: readelf.c:6306
-#, c-format
-msgid " Advance PC by constant %d to 0x%lx\n"
-msgstr " Øg PC med konstant %d til 0x%lx\n"
-
-#: readelf.c:6314
-#, c-format
-msgid " Advance PC by fixed size amount %d to 0x%lx\n"
-msgstr " Øg PC med fastlængdeantal %d til 0x%lx\n"
-
-#: readelf.c:6319
-msgid " Set prologue_end to true\n"
-msgstr " Sæt prologue_end til sand\n"
-
-#: readelf.c:6323
-msgid " Set epilogue_begin to true\n"
-msgstr " Sæt epilogue_begin til sand\n"
-
-#: readelf.c:6329
-#, c-format
-msgid " Set ISA to %d\n"
-msgstr " Sæt ISA til %d\n"
-
-#: readelf.c:6333
-#, c-format
-msgid " Unknown opcode %d with operands: "
-msgstr " Ukendt op-kode %d med operand: "
-
-#: readelf.c:6365 readelf.c:6827 readelf.c:6899
-#, c-format
-msgid ""
-"Contents of the %s section:\n"
-"\n"
-msgstr ""
-"%s-sektionens indhold:\n"
-"\n"
-
-#: readelf.c:6384
-msgid "64-bit DWARF pubnames are not supported yet.\n"
-msgstr "64-bit DWARF-offentlige navne understøttes ikke endnu.\n"
-
-#: readelf.c:6394
-msgid "Only DWARF 2 pubnames are currently supported\n"
-msgstr "Kun DWARF 2 pub.-navn understøttes i øjeblikket\n"
-
-#: readelf.c:6401
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Længde: %ld\n"
-
-#: readelf.c:6403
-#, c-format
-msgid " Version: %d\n"
-msgstr " Version: %d\n"
-
-#: readelf.c:6405
-#, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr " Offset i .debug_info-sektionen: %ld\n"
-
-#: readelf.c:6407
-#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr " Strl. på omr. i .debug_info-sekt.: %ld\n"
-
-#: readelf.c:6410
-msgid ""
-"\n"
-" Offset\tName\n"
-msgstr ""
-"\n"
-" Offset\tNavn\n"
-
-#: readelf.c:6501
-#, c-format
-msgid "Unknown TAG value: %lx"
-msgstr "Ukendt TAG-værdi: %lx"
-
-#: readelf.c:6612
-#, c-format
-msgid "Unknown AT value: %lx"
-msgstr "Ukendt AT-værdi: %lx"
-
-#: readelf.c:6649
-#, c-format
-msgid "Unknown FORM value: %lx"
-msgstr "Ukendt FORM-værdi: %lx"
-
-#: readelf.c:6848
-#, c-format
-msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr " DW_MACINFO_start_file - linje: %d filnr: %d\n"
-
-#: readelf.c:6853
-msgid " DW_MACINFO_end_file\n"
-msgstr " DW_MACINFO_end_file\n"
-
-#: readelf.c:6861
-#, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_define - linje : %d makro : %s\n"
-
-#: readelf.c:6869
-#, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_undef - linje : %d makro : %s\n"
-
-#: readelf.c:6880
-#, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr " DW_MACINFO_vendor_ext - konstant : %d streng : %s\n"
-
-#: readelf.c:6908
-msgid " Number TAG\n"
-msgstr " Nummer TAG\n"
-
-#: readelf.c:6914
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr " %ld %s [%s]\n"
-
-#: readelf.c:6917
-msgid "has children"
-msgstr "har børn"
-
-#: readelf.c:6917
-msgid "no children"
-msgstr "ingen børn"
-
-#: readelf.c:6921
-#, c-format
-msgid " %-18s %s\n"
-msgstr " %-18s %s\n"
-
-#: readelf.c:6942
-#, c-format
-msgid " %lu byte block: "
-msgstr " %lu byte-blok: "
-
-#: readelf.c:7265
-msgid "(User defined location op)"
-msgstr "(Brugerdefineret plads-op)"
-
-#: readelf.c:7267
-msgid "(Unknown location op)"
-msgstr "(Ukendt plads-op)"
-
-#: readelf.c:7305
-msgid "debug_loc section data"
-msgstr "debug_loc sektionsdata"
-
-#: readelf.c:7336
-msgid ""
-"\n"
-"The .debug_loc section is empty.\n"
-msgstr ""
-"\n"
-".debug_loc-sektionen er tom.\n"
-
-#: readelf.c:7339
-msgid ""
-"Contents of the .debug_loc section:\n"
-"\n"
-msgstr ""
-"Indhold i .debug_loc-sektionen:\n"
-"\n"
-
-#: readelf.c:7340
-msgid ""
-"\n"
-" Offset Begin End Expression\n"
-msgstr ""
-
-#: readelf.c:7412
-msgid "debug_str section data"
-msgstr "debug_str sektionsdata"
-
-#: readelf.c:7431
-msgid "<no .debug_str section>"
-msgstr "<ingen .debug_str-sektion>"
-
-#: readelf.c:7434
-msgid "<offset is too big>"
-msgstr "<offsettet er for stor>"
-
-#: readelf.c:7454
-msgid ""
-"\n"
-"The .debug_str section is empty.\n"
-msgstr ""
-"\n"
-".debug_str-sektionen er tom.\n"
-
-#: readelf.c:7458
-msgid ""
-"Contents of the .debug_str section:\n"
-"\n"
-msgstr ""
-"Indhold i .debug_str-sektionen:\n"
-"\n"
-
-#: readelf.c:7629
-#, c-format
-msgid " (indirect string, offset: 0x%lx): "
-msgstr " (indirekte streng, offset: 0x%lx): "
-
-#: readelf.c:7638
-#, c-format
-msgid "Unrecognized form: %d\n"
-msgstr "Ukendt formular: %d\n"
-
-#: readelf.c:7651
-msgid "(not inlined)"
-msgstr "(ikke inlined)"
-
-#: readelf.c:7652
-msgid "(inlined)"
-msgstr "(inlined)"
-
-#: readelf.c:7653
-msgid "(declared as inline but ignored)"
-msgstr "(deklareret som inline, men ignoreret)"
-
-#: readelf.c:7654
-msgid "(declared as inline and inlined)"
-msgstr "(deklareret som inline og inlined)"
-
-#: readelf.c:7655
-#, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr " (ukendt inlineattributværdi: %lx)"
-
-#: readelf.c:7826 readelf.c:8029
-#, c-format
-msgid ""
-"The section %s contains:\n"
-"\n"
-msgstr ""
-"Sektion %s indeholder:\n"
-"\n"
-
-#: readelf.c:7850
-msgid "64-bit DWARF debug info is not supported yet.\n"
-msgstr "64-bit DWARF-fejlsøgningsinfo understøttes ikke endnu.\n"
-
-#: readelf.c:7919
-#, c-format
-msgid " Compilation Unit @ %lx:\n"
-msgstr " Oversættelsesenhed @ %lx:\n"
-
-#: readelf.c:7920
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Længde: %ld\n"
-
-#: readelf.c:7921
-#, c-format
-msgid " Version: %d\n"
-msgstr " Version: %d\n"
-
-#: readelf.c:7922
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr " Fork.-offset: %ld\n"
-
-#: readelf.c:7923
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " Pegerstørrelse: %d\n"
-
-#: readelf.c:7927
-msgid "Only version 2 DWARF debug information is currently supported.\n"
-msgstr "Kun version 2 af DWARF fejlsøgningsinformation understøttes i øjeblikket.\n"
-
-#: readelf.c:7948
-msgid "Unable to locate .debug_abbrev section!\n"
-msgstr "Kan ikke finde nogen .debug_abbrev-sektion!\n"
-
-#: readelf.c:7954
-msgid "debug_abbrev section data"
-msgstr "debug_abbrev sektionsdata"
-
-#: readelf.c:7991
-#, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr "Kan ikke finde post %lu i forkortelsestabellen\n"
-
-#: readelf.c:7996
-#, c-format
-msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
-msgstr " <%d><%lx>: Fork.-nummer: %lu (%s)\n"
-
-#: readelf.c:8050
-msgid "64-bit DWARF aranges are not supported yet.\n"
-msgstr "64-bit DWARF-a-intervaller understøttes ikke endnu.\n"
-
-#: readelf.c:8056
-msgid "Only DWARF 2 aranges are currently supported.\n"
-msgstr "Kun DWARF2's a-intervaller understøttes i øjeblikket.\n"
-
-#: readelf.c:8060
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Længde: %ld\n"
-
-#: readelf.c:8061
-#, c-format
-msgid " Version: %d\n"
-msgstr " Version: %d\n"
-
-#: readelf.c:8062
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr " Offset i .debug_info: %lx\n"
-
-#: readelf.c:8063
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " Pegerstørrelse: %d\n"
-
-#: readelf.c:8064
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr " Segmentstørrelse: %d\n"
-
-#: readelf.c:8066
-msgid ""
-"\n"
-" Address Length\n"
-msgstr ""
-"\n"
-" Adresselængde\n"
-
-#: readelf.c:8248
-#, c-format
-msgid "The section %s contains:\n"
-msgstr "Sektion %s indeholder:\n"
-
-#: readelf.c:8271
-msgid "64-bit DWARF format frames are not supported yet.\n"
-msgstr "64-bit DWARF-formatskabeloner understøttes ikke endnu.\n"
-
-#: readelf.c:8820
-#, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr "Visning af fejlsøgningsindeholdet i sektion %s understøttes ikke endnu.\n"
-
-#: readelf.c:8886
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no debugging data.\n"
-msgstr ""
-"\n"
-"Sektion \"%s\" indeholder ingen fejlsøgningsdata.\n"
-
-#: readelf.c:8891 readelf.c:8953
-msgid "debug section data"
-msgstr "fejlsøgningssektionsdata"
-
-#: readelf.c:8907
-#, c-format
-msgid "Unrecognized debug section: %s\n"
-msgstr "Ukendt fejlsøgningssektion: %s\n"
-
-#: readelf.c:8981
-msgid "Some sections were not dumped because they do not exist!\n"
-msgstr "Nogen sektioner blev ikke skrevet ud da de ikke eksisterer!\n"
-
-#: readelf.c:9054 readelf.c:9418
-msgid "liblist"
-msgstr "biblioteksliste"
-
-#: readelf.c:9139
-msgid "options"
-msgstr "flag"
-
-#: readelf.c:9170
-#, c-format
-msgid ""
-"\n"
-"Section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"Sektion \"%s\" indeholder %d poster:\n"
-
-# BUGG: Fejl i originalet?
-#: readelf.c:9331
-#, fuzzy
-msgid "conflict list found without a dynamic symbol table"
-msgstr "konfliktliste uden tabel"
-
-#: readelf.c:9349 readelf.c:9365
-msgid "conflict"
-msgstr "konflikt"
-
-#: readelf.c:9375
-#, c-format
-msgid ""
-"\n"
-"Section '.conflict' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Sektion \".conflict\" indeholder %ld poster:\n"
-
-#: readelf.c:9377
-msgid " Num: Index Value Name"
-msgstr " Num: Indeks Værdi Navn"
-
-#: readelf.c:9426
-#, fuzzy
-msgid "liblist string table"
-msgstr "strengtabel"
-
-#: readelf.c:9435
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Library list section '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"Versionbehovssektion \"%s\" indeholder %ld poster:\n"
-
-#: readelf.c:9484
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr "NT_PRSTATUS (prstatus-struktur)"
-
-#: readelf.c:9485
-msgid "NT_FPREGSET (floating point registers)"
-msgstr "NT_FPREGSET (flydendetalsregister)"
-
-#: readelf.c:9486
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr "NT_PRPSINFO (prpsinfo-struktur)"
-
-#: readelf.c:9487
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr "NT_TASKSTRUCT (task-struktur)"
-
-#: readelf.c:9488
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr "NT_PRXFPREG (user_xfpregs-struktur)"
-
-#: readelf.c:9489
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr "NT_PSTATUS (pstatus-struktur)"
-
-#: readelf.c:9490
-msgid "NT_FPREGS (floating point registers)"
-msgstr "NT_FPREGS (flydendetalsregister)"
-
-#: readelf.c:9491
-msgid "NT_PSINFO (psinfo structure)"
-msgstr "NT_PSINFO (psinfo-struktur)"
-
-#: readelf.c:9492
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr "NT_LWPSTATUS (lwpstatus_t-struktur)"
-
-#: readelf.c:9493
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr "NT_LWPSINFO (lwpsinfo_t-struktur)"
-
-# BUG: Stavfejl i originalet (str>uc<ture)
-#: readelf.c:9494
-#, fuzzy
-msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
-msgstr "NT_WIN32PSTATUS (win32_pstatus-struktur)"
-
-#: readelf.c:9496 readelf.c:9520
-#, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr "Ukendt kommentartype: (0x%08x)"
-
-#. NetBSD core "procinfo" structure.
-#: readelf.c:9510
-msgid "NetBSD procinfo structure"
-msgstr "NetBSD procesinfo-struktur"
-
-# FIXME
-#: readelf.c:9537 readelf.c:9551
-msgid "PT_GETREGS (reg structure)"
-msgstr "PT_GETREGS (reg-struktur)"
-
-# FIXME
-#: readelf.c:9539 readelf.c:9553
-msgid "PT_GETFPREGS (fpreg structure)"
-msgstr "PT_GETFPREGS (fpreg-struktur)"
-
-# FIXME
-#: readelf.c:9559
-#, c-format
-msgid "PT_FIRSTMACH+%d"
-msgstr "PT_FIRSTMACH+%d"
-
-#: readelf.c:9613
-msgid "notes"
-msgstr "kommentarer"
-
-#: readelf.c:9619
-#, c-format
-msgid ""
-"\n"
-"Notes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr ""
-"\n"
-"Kommentarer på offset 0x%08lx af længde 0x%08lx:\n"
-
-#: readelf.c:9621
-msgid " Owner\t\tData size\tDescription\n"
-msgstr " Ejer\t\tData-størrelse\tBeskrivelse\n"
-
-#: readelf.c:9640
-#, c-format
-msgid "corrupt note found at offset %x into core notes\n"
-msgstr ""
-
-#: readelf.c:9642
-#, c-format
-msgid " type: %x, namesize: %08lx, descsize: %08lx\n"
-msgstr ""
-
-#: readelf.c:9744
-msgid "No note segments present in the core file.\n"
-msgstr "Der findes ingen kommentarer i hukommelsesfilen.\n"
-
-#: readelf.c:9822
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr ""
-"Denne binære af readelf er bygget uden understøttelse for en 64-bit\n"
-"datatype og kan derfor ikke læse 64-bit ELF-filer.\n"
-
-#: readelf.c:9868
-#, c-format
-msgid "Cannot stat input file %s.\n"
-msgstr "Kan ikke tage status for inddatafil %s.\n"
-
-#: readelf.c:9875
-#, c-format
-msgid "Input file %s not found.\n"
-msgstr "Inddatafil %s findes ikke.\n"
-
-#: readelf.c:9881
-#, c-format
-msgid "%s: Failed to read file header\n"
-msgstr "%s: Mislykkedes at læse filhoved\n"
-
-#: readelf.c:9895
-#, c-format
-msgid ""
-"\n"
-"File: %s\n"
-msgstr ""
-"\n"
-"Fil: %s\n"
-
-#: rename.c:131
-#, c-format
-msgid "%s: cannot set time: %s"
-msgstr "%s: kan ikke sætte tiden: %s"
-
-#. We have to clean up here.
-#: rename.c:170 rename.c:203
-#, c-format
-msgid "%s: rename: %s"
-msgstr "%s: kan ikke omdøbe: %s"
-
-#: rename.c:211
-#, c-format
-msgid "%s: simple_copy: %s"
-msgstr "%s: kopieringsfejl: %s"
-
-#: resbin.c:134
-#, c-format
-msgid "%s: not enough binary data"
-msgstr "%s: ikke nok rådata"
-
-#: resbin.c:153
-msgid "null terminated unicode string"
-msgstr "nultermineret UCS-streng"
-
-#: resbin.c:183 resbin.c:189
-msgid "resource ID"
-msgstr "resurse-ID"
-
-#: resbin.c:233
-msgid "cursor"
-msgstr "markør"
-
-#: resbin.c:267 resbin.c:274
-msgid "menu header"
-msgstr "menuhoved"
-
-#: resbin.c:284
-msgid "menuex header"
-msgstr "menu-ext.-hoved"
-
-#: resbin.c:288
-msgid "menuex offset"
-msgstr "menu-ext.-offset"
-
-#: resbin.c:295
-#, c-format
-msgid "unsupported menu version %d"
-msgstr "u-understøttet menuversion %d"
-
-#: resbin.c:323 resbin.c:338 resbin.c:404
-msgid "menuitem header"
-msgstr "menuobjektshoved"
-
-#: resbin.c:434
-msgid "menuitem"
-msgstr "menuobjekt"
-
-#: resbin.c:475 resbin.c:503
-msgid "dialog header"
-msgstr "dialoghoved"
-
-#: resbin.c:493
-#, fuzzy, c-format
-msgid "unexpected DIALOGEX version %d"
-msgstr "uventet versionstype %d"
-
-#: resbin.c:538
-msgid "dialog font point size"
-msgstr "dialogskrifttypesstørrelse"
-
-#: resbin.c:546
-msgid "dialogex font information"
-msgstr "dialog-ext.-skrifttypesinformation"
-
-#: resbin.c:572 resbin.c:590
-msgid "dialog control"
-msgstr "dialogkontrol"
-
-#: resbin.c:582
-msgid "dialogex control"
-msgstr "dialog-ext.kontrol"
-
-#: resbin.c:611
-msgid "dialog control end"
-msgstr "dialogkontrolsslut"
-
-#: resbin.c:623
-msgid "dialog control data"
-msgstr "dialogkontrolsdata"
-
-#: resbin.c:666
-msgid "stringtable string length"
-msgstr "strengtabelsstrenglængde"
-
-#: resbin.c:676
-msgid "stringtable string"
-msgstr "strengtabelsstreng"
-
-#: resbin.c:709
-msgid "fontdir header"
-msgstr "skrifttypeskatalogshoved"
-
-#: resbin.c:722
-msgid "fontdir"
-msgstr "skrifttypeskatalog"
-
-#: resbin.c:738
-msgid "fontdir device name"
-msgstr "skrifttypeskatalogsenhedsnavn"
-
-#: resbin.c:744
-msgid "fontdir face name"
-msgstr "skrifttypekatalogsskrifttypenavn"
-
-#: resbin.c:787
-msgid "accelerator"
-msgstr "accelerator"
-
-#: resbin.c:851
-msgid "group cursor header"
-msgstr "gruppemarkørhoved"
-
-#: resbin.c:855
-#, c-format
-msgid "unexpected group cursor type %d"
-msgstr "uventet gruppemarkørtype %d"
-
-#: resbin.c:870
-msgid "group cursor"
-msgstr "gruppemarkør"
-
-#: resbin.c:909
-msgid "group icon header"
-msgstr "gruppeikonhoved"
-
-#: resbin.c:913
-#, c-format
-msgid "unexpected group icon type %d"
-msgstr "uventet gruppeikontype %d"
-
-#: resbin.c:928
-msgid "group icon"
-msgstr "gruppeikon"
-
-#: resbin.c:999 resbin.c:1218
-msgid "unexpected version string"
-msgstr "uventet versionsstreng"
-
-#: resbin.c:1033
-#, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr "versionslængde %d passer ikke med resurselængde %lu"
-
-#: resbin.c:1037
-#, c-format
-msgid "unexpected version type %d"
-msgstr "uventet versionstype %d"
-
-#: resbin.c:1049
-#, c-format
-msgid "unexpected fixed version information length %d"
-msgstr "uventet længde %d på fast versionsinformation"
-
-#: resbin.c:1052
-msgid "fixed version info"
-msgstr "fast versionsinfo"
-
-#: resbin.c:1056
-#, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr "uventet fast versions-signatur %lu"
-
-#: resbin.c:1060
-#, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr "uventet version %lu af fast versionsinformation"
-
-#: resbin.c:1089
-msgid "version var info"
-msgstr "variabel versionsinfo"
-
-#: resbin.c:1106
-#, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr "uventet længde %d på værdi for strengfilsinfo"
-
-#: resbin.c:1116
-#, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr "uventet længde %d på værdi for versionsstrengtabel"
-
-#: resbin.c:1150
-#, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr "uventet længde %d != %d + %d på versionsstreng"
-
-#: resbin.c:1161
-#, c-format
-msgid "unexpected version string length %d < %d"
-msgstr "uventet længde %d < %d på versionsstreng"
-
-#: resbin.c:1178
-#, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr "uventet længde %d på værdi for var.filinfo"
-
-#: resbin.c:1197
-msgid "version varfileinfo"
-msgstr "versionsvar.filinfo"
-
-#: resbin.c:1212
-#, c-format
-msgid "unexpected version value length %d"
-msgstr "uventet længde %d på værdi for version"
-
-#: rescoff.c:128
-msgid "filename required for COFF input"
-msgstr "filnavn kræves for COFF-inddata"
-
-#: rescoff.c:145
-#, c-format
-msgid "%s: no resource section"
-msgstr "%s: ingen resursesektion"
-
-#: rescoff.c:152
-msgid "can't read resource section"
-msgstr "kan ikke læse resursesektionen"
-
-#: rescoff.c:178
-#, c-format
-msgid "%s: %s: address out of bounds"
-msgstr "%s: %s: adresse uden for område"
-
-#: rescoff.c:197
-msgid "directory"
-msgstr "katalog"
-
-#: rescoff.c:225
-msgid "named directory entry"
-msgstr "navngivet katalogpost"
-
-#: rescoff.c:234
-msgid "directory entry name"
-msgstr "katalogpostnavn"
-
-#: rescoff.c:254
-msgid "named subdirectory"
-msgstr "navngivet underkatalog"
-
-#: rescoff.c:262
-msgid "named resource"
-msgstr "navngiven resurse"
-
-#: rescoff.c:277
-msgid "ID directory entry"
-msgstr "ID-katalogpost"
-
-#: rescoff.c:294
-msgid "ID subdirectory"
-msgstr "ID-underkatalog"
-
-#: rescoff.c:302
-msgid "ID resource"
-msgstr "ID-resurse"
-
-#: rescoff.c:328
-msgid "resource type unknown"
-msgstr "ukendt resursetype"
-
-#: rescoff.c:331
-msgid "data entry"
-msgstr "datapost"
-
-#: rescoff.c:339
-msgid "resource data"
-msgstr "resursedata"
-
-#: rescoff.c:344
-msgid "resource data size"
-msgstr "størrelse på resursedata"
-
-#: rescoff.c:439
-msgid "filename required for COFF output"
-msgstr "filnavn kræves for COFF-uddata"
-
-#: rescoff.c:738
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr "kan ikke finde BFD_RELOC_RVA-relokeringstype"
-
-#: resrc.c:240 resrc.c:312
-#, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr "kan ikke åbne temporær fil \"%s\": %s"
-
-#: resrc.c:246
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr "kan ikke omdirigere standard-ud: \"%s\": %s"
-
-#: resrc.c:262
-#, c-format
-msgid "%s %s: %s"
-msgstr "%s %s: %s"
-
-#: resrc.c:308
-#, c-format
-msgid "can't execute `%s': %s"
-msgstr "kan ikke eksekvere \"%s\": %s"
-
-#: resrc.c:317
-#, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr "Udnytter temporær fil \"%s\" til at læse præprocessoruddata\n"
-
-#: resrc.c:324
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr "kan ikke kalde popen \"%s\": %s"
-
-#: resrc.c:326
-msgid "Using popen to read preprocessor output\n"
-msgstr "Bruger popen til at læse uddata fra præprocessoren\n"
-
-#: resrc.c:369
-#, c-format
-msgid "Tried `%s'\n"
-msgstr "Prøvede \"%s\"\n"
-
-#: resrc.c:380
-#, c-format
-msgid "Using `%s'\n"
-msgstr "Bruger \"%s\"\n"
-
-#: resrc.c:542
-#, c-format
-msgid "%s:%d: %s\n"
-msgstr "%s:%d: %s\n"
-
-#: resrc.c:551
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr "%s: uventet filslut"
-
-#: resrc.c:608
-#, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr "%s: læsning af %lu byte gav %lu"
-
-#: resrc.c:650 resrc.c:904 resrc.c:1177 resrc.c:1331
-#, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr "stat mislykkedes på billedfil \"%s\": %s"
-
-#: resrc.c:703
-#, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr "markørfil \"%s\" indeholder ikke markørdata"
-
-#: resrc.c:735 resrc.c:1048
-#, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr "%s: fseek til %lu mislykkedes: %s"
-
-#: resrc.c:872
-msgid "help ID requires DIALOGEX"
-msgstr "hjælpe-ID kræver DIALOGEX"
-
-#: resrc.c:874
-msgid "control data requires DIALOGEX"
-msgstr "kontroldata kræver DIALOGEX"
-
-#: resrc.c:1017
-#, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr "ikon-fil \"%s\" indeholder ikke ikondata"
-
-#: resrc.c:1536
-#, c-format
-msgid "can't open `%s' for output: %s"
-msgstr "kan ikke åbne \"%s\" for udskrivning: %s"
-
-#: size.c:86
-msgid " Displays the sizes of sections inside binary files\n"
-msgstr ""
-
-#: size.c:87
-#, fuzzy
-msgid " If no input file(s) are specified, a.out is assumed\n"
-msgstr "ingen inddatafil angaves"
-
-#: size.c:88
-#, c-format
-msgid ""
-" The options are:\n"
-" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
-" -o|-d|-h --radix={8|10|16} Display numbers in octal, decimal or hex\n"
-" -t --totals Display the total sizes (Berkeley only)\n"
-" --target=<bfdname> Set the binary file format\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-
-#: size.c:160
-#, c-format
-msgid "invalid argument to --format: %s"
-msgstr "ugyldigt argument til --format: %s"
-
-#: size.c:187
-#, c-format
-msgid "Invalid radix: %s\n"
-msgstr "Ugyldig talbase: %s\n"
-
-#: srconv.c:1953
-#, fuzzy
-msgid "Convert a COFF object file into a SYSROFF object file\n"
-msgstr "%s: Konverterer en COFF-objektfil til en SYSROFF-objektfil\n"
-
-#: srconv.c:1954
-msgid ""
-" The options are:\n"
-" -q --quick (Obsolete - ignoerd)\n"
-" -n --noprescan Do not perform a scan to convert commons into defs\n"
-" -d --debug Display information about what is being done\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-
-#: srconv.c:2099
-#, c-format
-msgid "unable to open output file %s"
-msgstr "kan ikke åbne uddatafil %s"
-
-#: stabs.c:343 stabs.c:1759
-msgid "numeric overflow"
-msgstr "numerisk overløb"
-
-# FIXME
-#: stabs.c:354
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr "Fejlagtig stab: %s\n"
-
-#: stabs.c:364
-#, c-format
-msgid "Warning: %s: %s\n"
-msgstr "Advarsel: %s: %s\n"
-
-#: stabs.c:485
-msgid "N_LBRAC not within function\n"
-msgstr "N_LBRAC ikke inde i funktion\n"
-
-#: stabs.c:524
-msgid "Too many N_RBRACs\n"
-msgstr "For mange N_RBRAC's\n"
-
-#: stabs.c:769
-msgid "unknown C++ encoded name"
-msgstr "ukendt C++-kodet navn"
-
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1296
-msgid "unrecognized cross reference type"
-msgstr "ukendt krydsreferencetype"
-
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1851
-msgid "missing index type"
-msgstr "manglende indekstype"
-
-#: stabs.c:2178
-msgid "unknown virtual character for baseclass"
-msgstr "ukendt virtuelt tegn for baseklasse"
-
-# FIXME
-#: stabs.c:2196
-msgid "unknown visibility character for baseclass"
-msgstr "ukendt synlighedskarakter for baseklasse"
-
-#: stabs.c:2388
-msgid "unnamed $vb type"
-msgstr "$vb-type uden navn"
-
-#: stabs.c:2394
-msgid "unrecognized C++ abbreviation"
-msgstr "ukendt C++-forkortelse"
-
-# FIXME
-#: stabs.c:2474
-msgid "unknown visibility character for field"
-msgstr "ukendt synlighedskarakter for felt"
-
-#: stabs.c:2730
-msgid "const/volatile indicator missing"
-msgstr "const/volatile-indikator mangler"
-
-#: stabs.c:2970
-#, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr "Ingen kodning af \"%s\"\n"
-
-#: stabs.c:3283
-msgid "Undefined N_EXCL"
-msgstr "Udefineret N_EXCL"
-
-#: stabs.c:3371
-#, c-format
-msgid "Type file number %d out of range\n"
-msgstr "Typens filnummer %d uden for sit interval\n"
-
-#: stabs.c:3376
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr "Typens indeksnummer %d uden for sit interval\n"
-
-#: stabs.c:3463
-#, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr "Ukendt XCOFF-type %d\n"
-
-#: stabs.c:3762
-#, c-format
-msgid "bad mangled name `%s'\n"
-msgstr "fejlagtigt kodet navn \"%s\"\n"
-
-#: stabs.c:3858
-msgid "no argument types in mangled string\n"
-msgstr "ingen argumenttype i kodet streng\n"
-
-#: strings.c:200
-#, c-format
-msgid "invalid number %s"
-msgstr "ugyldigt tal %s"
-
-#: strings.c:640
-#, c-format
-msgid "invalid integer argument %s"
-msgstr "ugyldigt heltalsargument %s"
-
-#: strings.c:651
-msgid " Display printable strings in [file(s)] (stdin by default)\n"
-msgstr ""
-
-#: strings.c:652
-msgid ""
-" The options are:\n"
-" -a - --all Scan the entire file, not just the data section\n"
-" -f --print-file-name Print the name of the file before each string\n"
-" -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n"
-" -<number> least [number] characters (default 4).\n"
-" -t --radix={o,x,d} Print the location of the string in base 8, 10 or 16\n"
-" -o An alias for --radix=o\n"
-" -T --target=<BFDNAME> Specify the binary file format\n"
-" -e --encoding={s,b,l,B,L} Select character size and endianness:\n"
-" s = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-
-#: sysdump.c:768
-#, fuzzy
-msgid "Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "%s: Skriv en menneskeligt læsbar tolkning af en SYSROFF-objektfil\n"
-
-#: sysdump.c:769
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-
-#: sysdump.c:836
-#, c-format
-msgid "cannot open input file %s"
-msgstr "kan ikke åbne inddatafil %s"
-
-#: version.c:35
-msgid "Copyright 2002 Free Software Foundation, Inc.\n"
-msgstr "Copyright 2002 Free Software Foundation, Inc.\n"
-
-#: version.c:36
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr ""
-"Dette program er frit programmel; du kan distribuere det videre under betingelserne\n"
-"i GNU General Public License. Dette program har ingen som helst garantier.\n"
-
-#: windres.c:239
-#, c-format
-msgid "can't open %s `%s': %s"
-msgstr "kan ikke åbne %s \"%s\": %s"
-
-#: windres.c:418
-msgid ": expected to be a directory\n"
-msgstr ": forventedes at være et katalog\n"
-
-#: windres.c:430
-msgid ": expected to be a leaf\n"
-msgstr ": forventedes at være et blad\n"
-
-#: windres.c:439
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: advarsel: "
-
-#: windres.c:441
-msgid ": duplicate value\n"
-msgstr ": dublet af værdi\n"
-
-#: windres.c:602
-#, c-format
-msgid "unknown format type `%s'"
-msgstr "ukendt formattype \"%s\""
-
-#: windres.c:603
-#, c-format
-msgid "%s: supported formats:"
-msgstr "%s: formater som håndteres:"
-
-#. Otherwise, we give up.
-#: windres.c:688
-#, c-format
-msgid "can not determine type of file `%s'; use the -I option"
-msgstr "kan ikke bestemme \"%s\"'s filtype; brug flag -I"
-
-#: windres.c:702
-#, fuzzy, c-format
-msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
-msgstr "Brug: %s [flag] [in-fil] [ud-fil]\n"
-
-#: windres.c:704
-#, fuzzy
-msgid ""
-" The options are:\n"
-" -i --input=<file> Name input file\n"
-" -o --output=<file> Name output file\n"
-" -I --input-format=<format> Specify input format\n"
-" -O --output-format=<format> Specify output format\n"
-" -F --target=<target> Specify COFF target\n"
-" --preprocessor=<program> Program to use to preprocess rc file\n"
-" --include-dir=<dir> Include directory when preprocessing rc file\n"
-" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
-" -v --verbose Verbose - tells you what it's doing\n"
-" --language=<val> Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr ""
-"Flag:\n"
-" -i FIL, --input FIL Navngiv inddatafilen\n"
-" -o FIL, --output FIL Navngiv uddatafilen\n"
-" -I FORMAT, --input-format FORMAT\n"
-" Specificér inddataformatet\n"
-" -O FORMAT, --output-format FORMAT\n"
-" Specificér uddataformatet\n"
-" -F MÅL, --target MÅL Specificér COFF-målet\n"
-" --preprocessor PROGRAM Program at bruge som præprocessor på rc-filen\n"
-" --include-dir KATALOG Inkludér katalog når rc-filen præprocesses\n"
-" -DSYM[=VÆRDI], --define SYM[=VÆRDI]\n"
-" Definér SYM når rc-filen præprocesses\n"
-" -v Udførlig - beretter vad den gør\n"
-" --language SPROG Sæt sproget når rc-filen læses\n"
-" --use-temp-file Brug en tem.fil i stedet for popen ved læsning\n"
-" af uddata fra præprocessoren\n"
-" --no-use-temp-file Brug popen (standard)\n"
-
-#: windres.c:719
-msgid " --yydebug Turn on parser debugging\n"
-msgstr " --yydebug Aktivér tolkens fejlsøgning\n"
-
-#: windres.c:722
-msgid ""
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" -h --help Vis denne hjælpetekst\n"
-" -V --version Vis versionsinformation\n"
-
-#: windres.c:725
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr ""
-"FORMAT er én af rc, res eller coff, og afledes fra filnavnsendelsen\n"
-"hvis det ikke specificeres. Et enkelt filnavn er en inddatafil. Ingen\n"
-"inddatafil betyder standard-ind, med format rc. Ingen uddatafil betyder\n"
-"standard-ud, med format rc.\n"
-
-#: windres.c:988
-msgid "no resources"
-msgstr "ingen resurser"
-
-#: wrstabs.c:366 wrstabs.c:2026
-#, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr "string_hash_lookup mislykkedes: %s"
-
-#: wrstabs.c:666
-#, c-format
-msgid "stab_int_type: bad size %u"
-msgstr "stab_int_type: fejlagtig størrelse %u"
-
-#: wrstabs.c:1466
-#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr "%s: advarsel: ukendt størrelsen på felt \"%s\" i strukturen"
diff --git a/binutils-2.17/binutils/po/es.gmo b/binutils-2.17/binutils/po/es.gmo
deleted file mode 100644
index f5f43fab..00000000
--- a/binutils-2.17/binutils/po/es.gmo
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/po/es.po b/binutils-2.17/binutils/po/es.po
deleted file mode 100644
index d706ba41..00000000
--- a/binutils-2.17/binutils/po/es.po
+++ /dev/null
@@ -1,6048 +0,0 @@
-# Mensajes en español para binutils 2.16.93.
-# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-# Cristian Othón Martínez Vera <cfuga@itam.mx>, 2002, 2003, 2004, 2005, 2006.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: binutils 2.16.93\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-25 09:14+0930\n"
-"PO-Revision-Date: 2006-05-27 11:17-0500\n"
-"Last-Translator: Cristian Othón Martínez Vera <cfuga@itam.mx>\n"
-"Language-Team: Spanish <es@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: addr2line.c:76
-#, c-format
-msgid "Usage: %s [option(s)] [addr(s)]\n"
-msgstr "Modo de empleo: %s [opcion(es)] [direccion(es)]\n"
-
-#: addr2line.c:77
-#, c-format
-msgid " Convert addresses into line number/file name pairs.\n"
-msgstr " Convierte direcciones en pares de nombre número/fila.\n"
-
-#: addr2line.c:78
-#, c-format
-msgid " If no addresses are specified on the command line, they will be read from stdin\n"
-msgstr " Si no se especifican direcciones en la línea de órdenes, se leerán de la entrada estándar\n"
-
-#: addr2line.c:79
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -b --target=<bfdname> Set the binary file format\n"
-" -e --exe=<executable> Set the input file name (default is a.out)\n"
-" -i --inlines\t\t Unwind inlined functions\n"
-" -s --basenames Strip directory names\n"
-" -f --functions Show function names\n"
-" -C --demangle[=style] Demangle function names\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Las opciones son:\n"
-" @<fichero> Lee opciones del <fichero>\n"
-" -b --target=<nombrebfd> Establece el formato del fichero binario\n"
-" -e --exe=<ejecutable> Establece el nombre del fichero de entrada\n"
-" (por defecto es a.out)\n"
-" -i --inlines\t\t Desenreda las funciones inline\n"
-" -s --basenames Elimina los nombres de directorio\n"
-" -f --functions Muestra los nombres de función\n"
-" -C --demangle[=estilo] Desenreda los nombres de función\n"
-" -h --help Muestra esta información\n"
-" -v --version Muestra la versión del programa\n"
-"\n"
-
-#: addr2line.c:93 ar.c:263 coffdump.c:466 nlmconv.c:1113 objcopy.c:486
-#: objcopy.c:520 readelf.c:2622 size.c:102 srconv.c:1732 strings.c:725
-#: sysdump.c:648 windres.c:673
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr "Reportar bichos a %s\n"
-
-#: addr2line.c:253
-#, c-format
-msgid "%s: can not get addresses from archive"
-msgstr "%s: no se pueden obtener las direcciones del archivo"
-
-#: addr2line.c:325 nm.c:1523 objdump.c:3033
-#, c-format
-msgid "unknown demangling style `%s'"
-msgstr "estilo de desenredo `%s' desconocido"
-
-#: ar.c:203
-#, c-format
-msgid "no entry %s in archive\n"
-msgstr "no existe la entrada %s en el archivo\n"
-
-#: ar.c:219
-#, c-format
-msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"
-msgstr "Modo de empleo: %s [opciones emulación] [-]{dmpqrstx}[abcfilNoPsSuvV] [nombre-miembro] [cuenta] fichero-archivo fichero...\n"
-
-#: ar.c:222
-#, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr " %s -M [<guión-mri>]\n"
-
-#: ar.c:223
-#, c-format
-msgid " commands:\n"
-msgstr " órdenes:\n"
-
-#: ar.c:224
-#, c-format
-msgid " d - delete file(s) from the archive\n"
-msgstr " d - borra fichero(s) del archivo\n"
-
-#: ar.c:225
-#, c-format
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr " m[ab] - mueve fichero(s) en el archivo\n"
-
-#: ar.c:226
-#, c-format
-msgid " p - print file(s) found in the archive\n"
-msgstr " p - muestra fichero(s) encontrados en el archivo\n"
-
-#: ar.c:227
-#, c-format
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr " q[f] - agrega rápidamente fichero(s) al archivo\n"
-
-#: ar.c:228
-#, c-format
-msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr " r[ab][f][u] - reemplaza fichero(s) existente(s) o inserta fichero(s) nuevo(s) en el archivo\n"
-
-#: ar.c:229
-#, c-format
-msgid " t - display contents of archive\n"
-msgstr " t - muestra los contenidos del archivo\n"
-
-#: ar.c:230
-#, c-format
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr " x[o] - extrae fichero(s) del archivo\n"
-
-#: ar.c:231
-#, c-format
-msgid " command specific modifiers:\n"
-msgstr " modificadores específicos de la orden:\n"
-
-#: ar.c:232
-#, c-format
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr " [a] - coloca fichero(s) despúes de [nombre-miembro]\n"
-
-#: ar.c:233
-#, c-format
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr " [b] - coloca fichero(s) antes de [nombre-miembro] (igual que [i])\n"
-
-#: ar.c:234
-#, c-format
-msgid " [N] - use instance [count] of name\n"
-msgstr " [N] - usa la instancia [cuenta] del nombre\n"
-
-#: ar.c:235
-#, c-format
-msgid " [f] - truncate inserted file names\n"
-msgstr " [f] - trunca los nombres de fichero insertados\n"
-
-#: ar.c:236
-#, c-format
-msgid " [P] - use full path names when matching\n"
-msgstr " [P] - utiliza nombres completos de ruta cuando se buscan coincidencias\n"
-
-#: ar.c:237
-#, c-format
-msgid " [o] - preserve original dates\n"
-msgstr " [o] - conserva las fechas originales\n"
-
-#: ar.c:238
-#, c-format
-msgid " [u] - only replace files that are newer than current archive contents\n"
-msgstr " [u] - sólo reemplaza ficheros que sean más nuevos que el contenido actual del archivo\n"
-
-#: ar.c:239
-#, c-format
-msgid " generic modifiers:\n"
-msgstr " modificadores genéricos:\n"
-
-#: ar.c:240
-#, c-format
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr " [c] - no avisa si se tiene que crear la biblioteca\n"
-
-#: ar.c:241
-#, c-format
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr " [s] - crea un índice del archivo (cf. ranlib)\n"
-
-#: ar.c:242
-#, c-format
-msgid " [S] - do not build a symbol table\n"
-msgstr " [S] - no construye una tabla de símbolos\n"
-
-#: ar.c:243
-#, c-format
-msgid " [v] - be verbose\n"
-msgstr " [v] - detallado\n"
-
-#: ar.c:244
-#, c-format
-msgid " [V] - display the version number\n"
-msgstr " [V] - muestra el número de versión\n"
-
-#: ar.c:245
-#, c-format
-msgid " @<file> - read options from <file>\n"
-msgstr " @<fichero> - lee opciones del <fichero>\n"
-
-#: ar.c:252
-#, c-format
-msgid "Usage: %s [options] archive\n"
-msgstr "Modo de empleo: %s [opciones] archivo\n"
-
-#: ar.c:253
-#, c-format
-msgid " Generate an index to speed access to archives\n"
-msgstr " Generar un índice para acelerar el acceso a los archivos\n"
-
-#: ar.c:254
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" Las opciones son:\n"
-" @<fichero> Lee opciones del <fichero>\n"
-" -h --help Muestra este mensaje de ayuda\n"
-" -V --version Muestra la información de versión\n"
-
-#: ar.c:485
-msgid "two different operation options specified"
-msgstr "se especificaron dos opciones de operación diferentes"
-
-#: ar.c:560
-#, c-format
-msgid "illegal option -- %c"
-msgstr "opción ilegal -- %c"
-
-#: ar.c:606
-msgid "no operation specified"
-msgstr "no se especificó una operación"
-
-#: ar.c:609
-msgid "`u' is only meaningful with the `r' option."
-msgstr "`u' sólo tiene significado con la opción `r'."
-
-#: ar.c:617
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr "`N' sólo tiene significado con las opciones `x' y `d'."
-
-#: ar.c:620
-msgid "Value for `N' must be positive."
-msgstr "El valor para `N' debe ser positivo."
-
-#: ar.c:670
-#, c-format
-msgid "internal error -- this option not implemented"
-msgstr "error interno -- esta opción no está implementada"
-
-#: ar.c:739
-#, c-format
-msgid "creating %s"
-msgstr "creando %s"
-
-#: ar.c:788 ar.c:838 ar.c:1156 objcopy.c:1683
-#, c-format
-msgid "internal stat error on %s"
-msgstr "error interno de stat en %s"
-
-#: ar.c:792
-#, c-format
-msgid ""
-"\n"
-"<%s>\n"
-"\n"
-msgstr ""
-"\n"
-"<%s>\n"
-"\n"
-
-#: ar.c:808 ar.c:875
-#, c-format
-msgid "%s is not a valid archive"
-msgstr "%s no es un archivo válido"
-
-#: ar.c:843
-#, c-format
-msgid "stat returns negative size for %s"
-msgstr "stat devuelve un valor negativo para %s"
-
-#: ar.c:1061
-#, c-format
-msgid "No member named `%s'\n"
-msgstr "No hay un miembro llamado `%s'\n"
-
-#: ar.c:1111
-#, c-format
-msgid "no entry %s in archive %s!"
-msgstr "¡no hay una entrada %s en el archivo %s!"
-
-#: ar.c:1248
-#, c-format
-msgid "%s: no archive map to update"
-msgstr "%s: no hay un mapa de archivo para actualizar"
-
-#: arsup.c:87
-#, c-format
-msgid "No entry %s in archive.\n"
-msgstr "No hay una entrada %s en el archivo.\n"
-
-#: arsup.c:112
-#, c-format
-msgid "Can't open file %s\n"
-msgstr "No se puede abrir el fichero %s\n"
-
-#: arsup.c:162
-#, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr "%s: No se puede abrir el fichero de salida %s\n"
-
-#: arsup.c:179
-#, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr "%s: No se puede abrir el fichero de entrada %s\n"
-
-#: arsup.c:188
-#, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr "%s: el fichero %s no es un archivo\n"
-
-#: arsup.c:227
-#, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr "%s: no se ha especificado aún un archivo de salida\n"
-
-#: arsup.c:247 arsup.c:285 arsup.c:327 arsup.c:347 arsup.c:413
-#, c-format
-msgid "%s: no open output archive\n"
-msgstr "%s: no hay un archivo de salida abierto\n"
-
-#: arsup.c:258 arsup.c:368 arsup.c:394
-#, c-format
-msgid "%s: can't open file %s\n"
-msgstr "%s: no se puede abrir el fichero %s\n"
-
-#: arsup.c:312 arsup.c:390 arsup.c:471
-#, c-format
-msgid "%s: can't find module file %s\n"
-msgstr "%s: no se puede encontrar el fichero de módulo %s\n"
-
-#: arsup.c:422
-#, c-format
-msgid "Current open archive is %s\n"
-msgstr "El archivo actualmente abierto es %s\n"
-
-#: arsup.c:446
-#, c-format
-msgid "%s: no open archive\n"
-msgstr "%s: no hay un archivo abierto\n"
-
-#: binemul.c:37
-#, c-format
-msgid " No emulation specific options\n"
-msgstr " No hay opciones específicas de la emulación\n"
-
-#. Macros for common output.
-#: binemul.h:40
-#, c-format
-msgid " emulation options: \n"
-msgstr " opciones de emulación:\n"
-
-#: bucomm.c:110
-#, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr "no se puede establecer el objetivo BFD por defecto a `%s': %s"
-
-#: bucomm.c:121
-#, c-format
-msgid "%s: Matching formats:"
-msgstr "%s: Formatos coincidentes:"
-
-#: bucomm.c:136
-#, c-format
-msgid "Supported targets:"
-msgstr "Objetivos con soporte:"
-
-#: bucomm.c:138
-#, c-format
-msgid "%s: supported targets:"
-msgstr "%s: objetivos con soporte:"
-
-#: bucomm.c:154
-#, c-format
-msgid "Supported architectures:"
-msgstr "Arquitecturas con soporte:"
-
-#: bucomm.c:156
-#, c-format
-msgid "%s: supported architectures:"
-msgstr "%s: arquitecturas con soporte:"
-
-#: bucomm.c:349
-#, c-format
-msgid "BFD header file version %s\n"
-msgstr "encabezado del fichero BFD versión %s\n"
-
-#: bucomm.c:450
-#, c-format
-msgid "%s: bad number: %s"
-msgstr "%s: número erróneo: %s"
-
-#: bucomm.c:467 strings.c:438
-#, c-format
-msgid "'%s': No such file"
-msgstr "'%s': No hay tal fichero"
-
-#: bucomm.c:469 strings.c:440
-#, c-format
-msgid "Warning: could not locate '%s'. reason: %s"
-msgstr "Aviso: no se puede encontrar '%s'. razón: %s"
-
-#: bucomm.c:473
-#, c-format
-msgid "Warning: '%s' is not an ordinary file"
-msgstr "Aviso: '%s' no es un fichero ordinario"
-
-#: coffdump.c:103
-#, c-format
-msgid "#lines %d "
-msgstr "#líneas %d "
-
-#: coffdump.c:457 sysdump.c:641
-#, c-format
-msgid "Usage: %s [option(s)] in-file\n"
-msgstr "Modo de empleo: %s [opcion(es)] fichero-entrada\n"
-
-#: coffdump.c:458
-#, c-format
-msgid " Print a human readable interpretation of a SYSROFF object file\n"
-msgstr " Muestra una interpretación legible por humanos de un fichero objeto SYSROFF\n"
-
-#: coffdump.c:459
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Las opciones son:\n"
-" @<fichero> Lee opciones del <fichero>\n"
-" -h --help Muestra esta información\n"
-" -v --version Muestra la versión del programa\n"
-"\n"
-
-#: coffdump.c:528 srconv.c:1822 sysdump.c:705
-msgid "no input file specified"
-msgstr "no se especificó un fichero de entrada"
-
-#: debug.c:648
-msgid "debug_add_to_current_namespace: no current file"
-msgstr "debug_add_to_current_namespace: no hay un fichero actual"
-
-#: debug.c:727
-msgid "debug_start_source: no debug_set_filename call"
-msgstr "debug_start_source: no hay una llamada debug_set_filename"
-
-#: debug.c:783
-msgid "debug_record_function: no debug_set_filename call"
-msgstr "debug_record_function: no hay una llamada debug_set_filename"
-
-#: debug.c:835
-msgid "debug_record_parameter: no current function"
-msgstr "debug_record_parameter: no hay una función actual"
-
-#: debug.c:867
-msgid "debug_end_function: no current function"
-msgstr "debug_end_function: no hay una función actual"
-
-#: debug.c:873
-msgid "debug_end_function: some blocks were not closed"
-msgstr "debug_end_function: algunos bloques no fueron cerrados"
-
-#: debug.c:901
-msgid "debug_start_block: no current block"
-msgstr "debug_start_block: no hay un bloque actual"
-
-#: debug.c:937
-msgid "debug_end_block: no current block"
-msgstr "debug_end_block: no hay un bloque actual"
-
-#: debug.c:944
-msgid "debug_end_block: attempt to close top level block"
-msgstr "debug_end_block: intento de cerrar el bloque del nivel principal"
-
-#: debug.c:967
-msgid "debug_record_line: no current unit"
-msgstr "debug_record_line: no hay una unidad actual"
-
-#. FIXME
-#: debug.c:1020
-msgid "debug_start_common_block: not implemented"
-msgstr "debug_start_common_block: no está implementado"
-
-#. FIXME
-#: debug.c:1031
-msgid "debug_end_common_block: not implemented"
-msgstr "debug_end_common_block: no está implementado"
-
-#. FIXME.
-#: debug.c:1115
-msgid "debug_record_label: not implemented"
-msgstr "debug_record_label: no está implementado"
-
-#: debug.c:1137
-msgid "debug_record_variable: no current file"
-msgstr "debug_record_variable: no hay un fichero actual"
-
-#: debug.c:1665
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr "debug_make_undefined_type: género sin soporte"
-
-#: debug.c:1842
-msgid "debug_name_type: no current file"
-msgstr "debug_name_type: no hay fichero actual"
-
-#: debug.c:1887
-msgid "debug_tag_type: no current file"
-msgstr "debug_tag_type: no hay fichero actual"
-
-#: debug.c:1895
-msgid "debug_tag_type: extra tag attempted"
-msgstr "debug_tag_type: se intentó una marca extra"
-
-#: debug.c:1932
-#, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr "Aviso: cambiando el tamaño del tipo de %d a %d\n"
-
-#: debug.c:1954
-msgid "debug_find_named_type: no current compilation unit"
-msgstr "debug_find_named_type: no hay una unidad de compilación actual"
-
-#: debug.c:2057
-#, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr "debug_get_real_type: información de depuración circular para %s\n"
-
-#: debug.c:2484
-msgid "debug_write_type: illegal type encountered"
-msgstr "debug_write_type: se encontró un tipo ilegal"
-
-#: dlltool.c:765 dlltool.c:789 dlltool.c:818
-#, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr "Error interno: Tipo de máquina desconocido: %d"
-
-#: dlltool.c:854
-#, c-format
-msgid "Can't open def file: %s"
-msgstr "No se puede abrir el fichero def: %s"
-
-#: dlltool.c:859
-#, c-format
-msgid "Processing def file: %s"
-msgstr "Procesando el fichero def: %s"
-
-#: dlltool.c:863
-msgid "Processed def file"
-msgstr "Fichero def procesado"
-
-#: dlltool.c:887
-#, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr "Error sintáctico en el fichero def %s:%d"
-
-#: dlltool.c:922
-#, c-format
-msgid "%s: Path components stripped from image name, '%s'."
-msgstr "%s: Se eliminaron los componentes de la ruta del nombre de la imagen, '%s'."
-
-#: dlltool.c:931
-#, c-format
-msgid "NAME: %s base: %x"
-msgstr "NOMBRE: %s base: %x"
-
-#: dlltool.c:934 dlltool.c:950
-msgid "Can't have LIBRARY and NAME"
-msgstr "No se puede tener BIBLIOTECA y NOMBRE"
-
-#: dlltool.c:947
-#, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr "BIBLIOTECA: %s base %x"
-
-#: dlltool.c:1183 resrc.c:269
-#, c-format
-msgid "wait: %s"
-msgstr "espera: %s"
-
-#: dlltool.c:1188 dllwrap.c:413 resrc.c:274
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr "el subproceso recibió la señal fatal %d"
-
-#: dlltool.c:1194 dllwrap.c:420 resrc.c:281
-#, c-format
-msgid "%s exited with status %d"
-msgstr "%s terminó con estado %d"
-
-#: dlltool.c:1225
-#, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr "Succionando la información de la sección %s en %s"
-
-#: dlltool.c:1350
-#, c-format
-msgid "Excluding symbol: %s"
-msgstr "Excluyendo el símbolo: %s"
-
-#: dlltool.c:1439 dlltool.c:1450 nm.c:1000 nm.c:1011
-#, c-format
-msgid "%s: no symbols"
-msgstr "%s: no hay símbolos"
-
-#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1476
-#, c-format
-msgid "Done reading %s"
-msgstr "%s leído"
-
-#: dlltool.c:1486
-#, c-format
-msgid "Unable to open object file: %s"
-msgstr "No se puede abrir el fichero objeto: %s"
-
-#: dlltool.c:1489
-#, c-format
-msgid "Scanning object file %s"
-msgstr "Revisando el fichero objeto %s"
-
-#: dlltool.c:1504
-#, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr "No se puede producir una dll mcore-elf del fichero archivo: %s"
-
-#: dlltool.c:1590
-msgid "Adding exports to output file"
-msgstr "Agregando exportaciones al fichero de salida"
-
-#: dlltool.c:1638
-msgid "Added exports to output file"
-msgstr "Exportaciones agregadas al fichero de salida"
-
-#: dlltool.c:1759
-#, c-format
-msgid "Generating export file: %s"
-msgstr "Generando el fichero de exportación: %s"
-
-#: dlltool.c:1764
-#, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr "No se puede abrir el fichero temporal de ensamblador: %s"
-
-#: dlltool.c:1767
-#, c-format
-msgid "Opened temporary file: %s"
-msgstr "Se abrió el fichero temporal: %s"
-
-#: dlltool.c:1989
-msgid "Generated exports file"
-msgstr "Fichero de exportación generado"
-
-#: dlltool.c:2195
-#, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr "falló bfd_open al abrirl el fichero de cabos: %s"
-
-#: dlltool.c:2198
-#, c-format
-msgid "Creating stub file: %s"
-msgstr "Creando el ficheor de cabos: %s"
-
-#: dlltool.c:2580
-#, c-format
-msgid "failed to open temporary head file: %s"
-msgstr "falló la apertura del inicio del fichero temporal: %s"
-
-#: dlltool.c:2639
-#, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr "falló la apertura del final del fichero temporal: %s"
-
-#: dlltool.c:2706
-#, c-format
-msgid "Can't open .lib file: %s"
-msgstr "No se puede abrir el fichero .lib: %s"
-
-#: dlltool.c:2709
-#, c-format
-msgid "Creating library file: %s"
-msgstr "Creando el fichero de biblioteca: %s"
-
-#: dlltool.c:2792 dlltool.c:2798
-#, c-format
-msgid "cannot delete %s: %s"
-msgstr "no se puede borrar %s: %s"
-
-#: dlltool.c:2803
-msgid "Created lib file"
-msgstr "Fichero de biblioteca creado"
-
-#: dlltool.c:2882
-#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr "Aviso, ignorando las EXPORTaciones duplicadas %s %d,%d"
-
-#: dlltool.c:2888
-#, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr "Error, EXPORTaciones duplicadas con ordinales: %s"
-
-#: dlltool.c:2993
-msgid "Processing definitions"
-msgstr "Procesando definiciones"
-
-#: dlltool.c:3025
-msgid "Processed definitions"
-msgstr "Definiciones procesadas"
-
-#. xgetext:c-format
-#: dlltool.c:3032 dllwrap.c:474
-#, c-format
-msgid "Usage %s <option(s)> <object-file(s)>\n"
-msgstr "Modo de empleo %s <opcion(es)> <fichero(s)-objeto>\n"
-
-#. xgetext:c-format
-#: dlltool.c:3034
-#, c-format
-msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr " -m --machine <máquina> Crear una DLL para la <máquina>. [por defecto: %s]\n"
-
-#: dlltool.c:3035
-#, c-format
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-msgstr " <máquina> posible: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-
-#: dlltool.c:3036
-#, c-format
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr " -e --output-exp <nomsal> Generar un fichero de exportación.\n"
-
-#: dlltool.c:3037
-#, c-format
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr " -l --output-lib <nomsal> Generar un fichero de interfaz.\n"
-
-#: dlltool.c:3038
-#, c-format
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr " -a --add-indirect Agregar indirecciones dll al fichero de exportación.\n"
-
-#: dlltool.c:3039
-#, c-format
-msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr " -D --dllname <nombre> Nombre de la dll de entrada a colocar en la biblioteca de interfaz.\n"
-
-#: dlltool.c:3040
-#, c-format
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr " -d --input-def <fichdef> Nombre del fichero .def para leer.\n"
-
-#: dlltool.c:3041
-#, c-format
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr " -z --output-def <fichdef> Nombre del fichero .def para crear.\n"
-
-#: dlltool.c:3042
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols Exportar todos los símbolos a un .def\n"
-
-#: dlltool.c:3043
-#, c-format
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr " --no-export-all-symbols Sólo exportar los símbolos enlistados\n"
-
-#: dlltool.c:3044
-#, c-format
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr " --exclude-symbols <list> No exportar la <list>a\n"
-
-#: dlltool.c:3045
-#, c-format
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr " --no-default-excludes Limpiar los símbolos excluídos por defecto\n"
-
-#: dlltool.c:3046
-#, c-format
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr " -b --base-file <fichbase> Leer el fichero base generado por el enlazador.\n"
-
-#: dlltool.c:3047
-#, c-format
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr " -x --no-idata4 No generar la sección idata$4.\n"
-
-#: dlltool.c:3048
-#, c-format
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr " -c --no-idata5 No generar la sección idata$5.\n"
-
-#: dlltool.c:3049
-#, c-format
-msgid " -U --add-underscore Add underscores to symbols in interface library.\n"
-msgstr " -U --add-underscore Agregar subrayado a los símbolos en la biblioteca de interfaz.\n"
-
-#: dlltool.c:3050
-#, c-format
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr " -k --kill-at Eliminar @<n> de los nombres exportados.\n"
-
-#: dlltool.c:3051
-#, c-format
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr " -A --add-stdcall-alias Agregar aliases sin @<n>.\n"
-
-#: dlltool.c:3052
-#, c-format
-msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
-msgstr " -p --ext-prefix-alias <prefijo> Agregar aliases con <prefijo>.\n"
-
-#: dlltool.c:3053
-#, c-format
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr " -S --as <nombre> Usar <nombre> para ensamblador.\n"
-
-#: dlltool.c:3054
-#, c-format
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr " -f --as-flags <opciones> Pasar <opciones> al ensamblador.\n"
-
-#: dlltool.c:3055
-#, c-format
-msgid " -C --compat-implib Create backward compatible import library.\n"
-msgstr " -C --compat-implib Crear biblioteca de importación compatible hacia atrás.\n"
-
-#: dlltool.c:3056
-#, c-format
-msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
-msgstr " -n --no-delete Conservar los ficheros temporales (repetir para conservación extra).\n"
-
-#: dlltool.c:3057
-#, c-format
-msgid " -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
-msgstr " -t --temp-prefix <prefijo> Usar el <prefijo> para construir nombres de ficheros temporales.\n"
-
-#: dlltool.c:3058
-#, c-format
-msgid " -v --verbose Be verbose.\n"
-msgstr " -v --verbose Detallado.\n"
-
-#: dlltool.c:3059
-#, c-format
-msgid " -V --version Display the program version.\n"
-msgstr " -V --version Muestra la versión del programa.\n"
-
-#: dlltool.c:3060
-#, c-format
-msgid " -h --help Display this information.\n"
-msgstr " -h --help Muestra esta información.\n"
-
-#: dlltool.c:3061
-#, c-format
-msgid " @<file> Read options from <file>.\n"
-msgstr " @<fichero> Lee opciones del <fichero>.\n"
-
-#: dlltool.c:3063
-#, c-format
-msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr " -M --mcore-elf <nomsal> Procesa los ficheros objeto mcore-elf hacia <nomsal>.\n"
-
-#: dlltool.c:3064
-#, c-format
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr " -L --linker <nombre> Usa <nombre> como el enlazador.\n"
-
-#: dlltool.c:3065
-#, c-format
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr " -F --linker-flags <opts> Pasa <opts> al enlazador.\n"
-
-#: dlltool.c:3181
-#, c-format
-msgid "Path components stripped from dllname, '%s'."
-msgstr "Se eliminaron los componentes de la ruta del nombre de dll, '%s'."
-
-#: dlltool.c:3226
-#, c-format
-msgid "Unable to open base-file: %s"
-msgstr "No se puede abrir el fichero-base: %s"
-
-#: dlltool.c:3258
-#, c-format
-msgid "Machine '%s' not supported"
-msgstr "La máquina '%s' no tiene soporte"
-
-#: dlltool.c:3362 dllwrap.c:204
-#, c-format
-msgid "Tried file: %s"
-msgstr "Fichero intentado: %s"
-
-#: dlltool.c:3369 dllwrap.c:211
-#, c-format
-msgid "Using file: %s"
-msgstr "Usando el fichero: %s"
-
-#: dllwrap.c:294
-#, c-format
-msgid "Keeping temporary base file %s"
-msgstr "Conservando el fichero base temporal %s"
-
-#: dllwrap.c:296
-#, c-format
-msgid "Deleting temporary base file %s"
-msgstr "Borrando el fichero base temporal %s"
-
-#: dllwrap.c:310
-#, c-format
-msgid "Keeping temporary exp file %s"
-msgstr "Conservando el fichero exp temporal %s"
-
-#: dllwrap.c:312
-#, c-format
-msgid "Deleting temporary exp file %s"
-msgstr "Borrando el fichero exp temporal %s"
-
-#: dllwrap.c:325
-#, c-format
-msgid "Keeping temporary def file %s"
-msgstr "Conservando el fichero def temporal %s"
-
-#: dllwrap.c:327
-#, c-format
-msgid "Deleting temporary def file %s"
-msgstr "Borrando el fichero def temporal %s"
-
-#: dllwrap.c:475
-#, c-format
-msgid " Generic options:\n"
-msgstr " Opciones genéricas:\n"
-
-#: dllwrap.c:476
-#, c-format
-msgid " @<file> Read options from <file>\n"
-msgstr " @<fichero> Lee opciones del <fichero>\n"
-
-#: dllwrap.c:477
-#, c-format
-msgid " --quiet, -q Work quietly\n"
-msgstr " --quiet, -q Trabajar silenciosamente\n"
-
-#: dllwrap.c:478
-#, c-format
-msgid " --verbose, -v Verbose\n"
-msgstr " --verbose, -v Con detalle\n"
-
-#: dllwrap.c:479
-#, c-format
-msgid " --version Print dllwrap version\n"
-msgstr " --version Muestra la versión de dllwrap\n"
-
-#: dllwrap.c:480
-#, c-format
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr " --impllib <nombresal> Sinónimo para --output-lib\n"
-
-#: dllwrap.c:481
-#, c-format
-msgid " Options for %s:\n"
-msgstr " Opciones para %s:\n"
-
-#: dllwrap.c:482
-#, c-format
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr " --driver-name <cntrl> Por defecto es \"gcc\"\n"
-
-#: dllwrap.c:483
-#, c-format
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr " --driver-flags <opts> Cambia las opciones por defecto de ld\n"
-
-#: dllwrap.c:484
-#, c-format
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr " --dlltool-name <dlltool> Por defecto es \"dlltool\"\n"
-
-#: dllwrap.c:485
-#, c-format
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr " --entry <entrada> Especifica un punto de entrada alternativo para la DLL\n"
-
-#: dllwrap.c:486
-#, c-format
-msgid " --image-base <base> Specify image base address\n"
-msgstr " --image-base <base> Especifica la dirección de la imagen base\n"
-
-#: dllwrap.c:487
-#, c-format
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr " --target <máquina> i386-cygwin32 ó i386-mingw32\n"
-
-#: dllwrap.c:488
-#, c-format
-msgid " --dry-run Show what needs to be run\n"
-msgstr " --dry-run Muestra lo que se necesita ejecutar\n"
-
-#: dllwrap.c:489
-#, c-format
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr " --mno-cygwin Crea una DLL Mingw\n"
-
-#: dllwrap.c:490
-#, c-format
-msgid " Options passed to DLLTOOL:\n"
-msgstr " Opciones pasadas a DLLTOOL:\n"
-
-#: dllwrap.c:491
-#, c-format
-msgid " --machine <machine>\n"
-msgstr " --machine <máquina>\n"
-
-#: dllwrap.c:492
-#, c-format
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr " --output-exp <nomsal> Genera un fichero de exportación.\n"
-
-# ¿No será acaso una biblioteca de salida? cfuga
-#: dllwrap.c:493
-#, c-format
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr " --output-lib <nomsal> Genera una biblioteca de entrada.\n"
-
-#: dllwrap.c:494
-#, c-format
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr " --add-indirect Agrega indirecciones de dll al fichero de exportación.\n"
-
-#: dllwrap.c:495
-#, c-format
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr " --dllname <nombre> Nombre del fichero dll de entrada a colocar en la biblioteca de salida.\n"
-
-#: dllwrap.c:496
-#, c-format
-msgid " --def <deffile> Name input .def file\n"
-msgstr " --def <ficherodef> Nombre del fichero .def de entrada\n"
-
-#: dllwrap.c:497
-#, c-format
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr " --output-def <fichdef> Nombre del fichero .def de salida\n"
-
-#: dllwrap.c:498
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols Exporta todos los símbolos a un .def\n"
-
-#: dllwrap.c:499
-#, c-format
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr " --no-export-all-symbols Sólo exporta los símbolos .drectve\n"
-
-#: dllwrap.c:500
-#, c-format
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr " --exclude-symbols <list> Excluye la <list>a del .def\n"
-
-#: dllwrap.c:501
-#, c-format
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr " --no-default-excludes Elimina los símbolos excluídos por defecto\n"
-
-#: dllwrap.c:502
-#, c-format
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr " --base-file <fichbase> Lee el fichero base generado por el enlazador\n"
-
-#: dllwrap.c:503
-#, c-format
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr " --no-idata4 No genera la sección idata$4\n"
-
-#: dllwrap.c:504
-#, c-format
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr " --no-idata5 No genera la sección idata$5\n"
-
-#: dllwrap.c:505
-#, c-format
-msgid " -U Add underscores to .lib\n"
-msgstr " -U Agrega subrayados a .lib\n"
-
-#: dllwrap.c:506
-#, c-format
-msgid " -k Kill @<n> from exported names\n"
-msgstr " -k Elimina @<n> de los nombres exportados\n"
-
-#: dllwrap.c:507
-#, c-format
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr " --add-stdcall-alias Agrega aliases sin @<n>\n"
-
-#: dllwrap.c:508
-#, c-format
-msgid " --as <name> Use <name> for assembler\n"
-msgstr " --as <nombre> Usa <nombre> como ensamblador\n"
-
-#: dllwrap.c:509
-#, c-format
-msgid " --nodelete Keep temp files.\n"
-msgstr " --nodelete Conserva los ficheros temporales.\n"
-
-#: dllwrap.c:510
-#, c-format
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr " El resto se pasa sin modificación al controlador del lenguaje\n"
-
-#: dllwrap.c:782
-msgid "Must provide at least one of -o or --dllname options"
-msgstr "Se debe proveer por lo menos una de las opciones -o ó --dllname"
-
-#: dllwrap.c:811
-msgid ""
-"no export definition file provided.\n"
-"Creating one, but that may not be what you want"
-msgstr ""
-"no se provee un fichero de definición de exportación.\n"
-"Creando uno, pero tal vez eso no es lo que quiere"
-
-#: dllwrap.c:970
-#, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr "nombre DLLTOOL : %s\n"
-
-#: dllwrap.c:971
-#, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr "opciones DLLTOOL: %s\n"
-
-#: dllwrap.c:972
-#, c-format
-msgid "DRIVER name : %s\n"
-msgstr "nombre DRIVER : %s\n"
-
-#: dllwrap.c:973
-#, c-format
-msgid "DRIVER options : %s\n"
-msgstr "opciones DRIVER : %s\n"
-
-#: dwarf.c:93 dwarf.c:137 readelf.c:322 readelf.c:515
-#, c-format
-msgid "Unhandled data length: %d\n"
-msgstr "Longitud de datos sin manejar: %d\n"
-
-#: dwarf.c:237
-msgid "badly formed extended line op encountered!\n"
-msgstr "¡se encontró un operador extendido de línea mal formado!\n"
-
-#: dwarf.c:244
-#, c-format
-msgid " Extended opcode %d: "
-msgstr " Código de operación extendido %d: "
-
-#: dwarf.c:249
-#, c-format
-msgid ""
-"End of Sequence\n"
-"\n"
-msgstr ""
-"Fin de la Secuencia\n"
-"\n"
-
-#: dwarf.c:255
-#, c-format
-msgid "set Address to 0x%lx\n"
-msgstr "establecer la Dirección a 0x%lx\n"
-
-#: dwarf.c:260
-#, c-format
-msgid " define new File Table entry\n"
-msgstr " definir la nueva entrada en la Tabla de Ficheros\n"
-
-#: dwarf.c:261 dwarf.c:1944
-#, c-format
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr " Entr\tDir\tHora\tTam\tNombre\n"
-
-#: dwarf.c:263
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: dwarf.c:266 dwarf.c:268 dwarf.c:270 dwarf.c:1956 dwarf.c:1958 dwarf.c:1960
-#, c-format
-msgid "%lu\t"
-msgstr "%lu\t"
-
-#: dwarf.c:271
-#, c-format
-msgid ""
-"%s\n"
-"\n"
-msgstr ""
-"%s\n"
-"\n"
-
-#: dwarf.c:275
-#, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr "UNKNOWN: longitud %d\n"
-
-#: dwarf.c:288
-msgid "<no .debug_str section>"
-msgstr "<no hay sección .debug_str>"
-
-#: dwarf.c:294
-#, c-format
-msgid "DW_FORM_strp offset too big: %lx\n"
-msgstr "desplazamiento DW_FORM_strp demasiado grande: %lx\n"
-
-#: dwarf.c:295
-msgid "<offset is too big>"
-msgstr "<desplazamiento demasiado grande>"
-
-#: dwarf.c:528
-#, c-format
-msgid "Unknown TAG value: %lx"
-msgstr "Valor TAG desconocido: %lx"
-
-#: dwarf.c:564
-#, c-format
-msgid "Unknown FORM value: %lx"
-msgstr "Valor FORM desconocido: %lx"
-
-#: dwarf.c:573
-#, c-format
-msgid " %lu byte block: "
-msgstr " bloque de bytes %lu: "
-
-#: dwarf.c:907
-#, c-format
-msgid "(User defined location op)"
-msgstr "(Operador de ubicación definido por el usuario)"
-
-#: dwarf.c:909
-#, c-format
-msgid "(Unknown location op)"
-msgstr "(Operador de ubicación desconocido)"
-
-#: dwarf.c:955
-msgid "Internal error: DWARF version is not 2 or 3.\n"
-msgstr "Error interno: la versión DWARF no es 2 ó 3.\n"
-
-#: dwarf.c:1053
-msgid "DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n"
-msgstr "DW_FORM_data8 no tiene soporte cuando sizeof (unsigned long) != 8\n"
-
-#: dwarf.c:1102
-#, c-format
-msgid " (indirect string, offset: 0x%lx): %s"
-msgstr " (cadena indirecta, desplazamiento 0x%lx): %s"
-
-#: dwarf.c:1111
-#, c-format
-msgid "Unrecognized form: %lu\n"
-msgstr "Form no reconocido: %lu\n"
-
-#: dwarf.c:1196
-#, c-format
-msgid "(not inlined)"
-msgstr "(no es inlined)"
-
-#: dwarf.c:1199
-#, c-format
-msgid "(inlined)"
-msgstr "(inlined)"
-
-#: dwarf.c:1202
-#, c-format
-msgid "(declared as inline but ignored)"
-msgstr "(declarado como inline pero ignorado)"
-
-#: dwarf.c:1205
-#, c-format
-msgid "(declared as inline and inlined)"
-msgstr "(declarado como inline y es inline)"
-
-#: dwarf.c:1208
-#, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr " (Valor desconocido de atributo inline: %lx)"
-
-#: dwarf.c:1354 dwarf.c:2484
-#, c-format
-msgid " [without DW_AT_frame_base]"
-msgstr " [sin DW_AT_frame_base]"
-
-#: dwarf.c:1357
-#, c-format
-msgid "(location list)"
-msgstr "(lista de ubicación)"
-
-#: dwarf.c:1475
-#, c-format
-msgid "Unknown AT value: %lx"
-msgstr "Valor AT desconocido: %lx"
-
-#: dwarf.c:1544
-#, c-format
-msgid "No comp units in %s section ?"
-msgstr "¿ No hay unidades de compilación en la sección %s ?"
-
-#: dwarf.c:1553
-#, c-format
-msgid "Not enough memory for a debug info array of %u entries"
-msgstr "No hay suficiente memoria para una matriz de información de depuración de %u entradas"
-
-#: dwarf.c:1561 dwarf.c:2573
-#, c-format
-msgid ""
-"The section %s contains:\n"
-"\n"
-msgstr ""
-"La sección %s contiene:\n"
-"\n"
-
-#: dwarf.c:1569
-#, c-format
-msgid "Unable to locate %s section!\n"
-msgstr "¡No se puede localizar la sección %s!\n"
-
-#: dwarf.c:1635
-#, c-format
-msgid " Compilation Unit @ offset 0x%lx:\n"
-msgstr " Unidad de Compilación @ desplazamiento 0x%lx:\n"
-
-#: dwarf.c:1636
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Longitud: %ld\n"
-
-#: dwarf.c:1637
-#, c-format
-msgid " Version: %d\n"
-msgstr " Versión: %d\n"
-
-#: dwarf.c:1638
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr " Desplaz Abrev: %ld\n"
-
-#: dwarf.c:1639
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " Tamaño de Puntero: %d\n"
-
-#: dwarf.c:1644
-msgid "Only version 2 and 3 DWARF debug information is currently supported.\n"
-msgstr "Sólo la información de depuración DWARF versión 2 y 3 tiene soporte actualmente.\n"
-
-#: dwarf.c:1685
-#, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr "No se puede localizar la entrada %lu en la tabla de abreviaciones\n"
-
-#: dwarf.c:1691
-#, c-format
-msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
-msgstr " <%d><%lx>: Número de Abrev: %lu (%s)\n"
-
-#: dwarf.c:1785
-#, c-format
-msgid "%s section needs a populated .debug_info section\n"
-msgstr "la sección %s necesita una sección .debug_info llena\n"
-
-#: dwarf.c:1792
-#, c-format
-msgid "%s section has more comp units than .debug_info section\n"
-msgstr "la sección %s tiene más unidades de compilación que la sección .debug_info\n"
-
-#: dwarf.c:1794
-#, c-format
-msgid ""
-"assuming that the pointer size is %d, from the last comp unit in .debug_info\n"
-"\n"
-msgstr "asumiendo que el tamaño del puntero es %d, de la última unidad de compilación en .debug_info\n"
-
-#: dwarf.c:1819
-#, c-format
-msgid ""
-"\n"
-"Dump of debug contents of section %s:\n"
-"\n"
-msgstr ""
-"\n"
-"Volcado del contenido de depuración de la sección %s:\n"
-"\n"
-
-#: dwarf.c:1858
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr "La información de línea parece estar corrupta - esta sección es demasiado pequeña\n"
-
-#: dwarf.c:1867
-msgid "Only DWARF version 2 and 3 line info is currently supported.\n"
-msgstr "Solamente la información de línea de DWARF versión 2 y 3 tiene soporte actualmente.\n"
-
-#: dwarf.c:1894
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Longitud: %ld\n"
-
-#: dwarf.c:1895
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr " Versión DWARF: %d\n"
-
-#: dwarf.c:1896
-#, c-format
-msgid " Prologue Length: %d\n"
-msgstr " Longitud del Prólogo: %d\n"
-
-#: dwarf.c:1897
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr " Longitud Mínima Instrucción: %d\n"
-
-#: dwarf.c:1898
-#, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr " Valor inicial de 'is_stmt': %d\n"
-
-#: dwarf.c:1899
-#, c-format
-msgid " Line Base: %d\n"
-msgstr " Base Línea: %d\n"
-
-#: dwarf.c:1900
-#, c-format
-msgid " Line Range: %d\n"
-msgstr " Rango Lìnea: %d\n"
-
-#: dwarf.c:1901
-#, c-format
-msgid " Opcode Base: %d\n"
-msgstr " Base de Código de Operación: %d\n"
-
-#: dwarf.c:1902
-#, c-format
-msgid " (Pointer size: %u)%s\n"
-msgstr " (Tamaño del puntero: %u)%s\n"
-
-#: dwarf.c:1913
-#, c-format
-msgid ""
-"\n"
-" Opcodes:\n"
-msgstr ""
-"\n"
-" Códigos de operación:\n"
-
-#: dwarf.c:1916
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr " El código de operación %d tiene %d argumentos\n"
-
-#: dwarf.c:1922
-#, c-format
-msgid ""
-"\n"
-" The Directory Table is empty.\n"
-msgstr ""
-"\n"
-" La Tabla de Directorios está vacía.\n"
-
-#: dwarf.c:1925
-#, c-format
-msgid ""
-"\n"
-" The Directory Table:\n"
-msgstr ""
-"\n"
-" La Tabla de Directorios:\n"
-
-#: dwarf.c:1929
-#, c-format
-msgid " %s\n"
-msgstr " %s\n"
-
-#: dwarf.c:1940
-#, c-format
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr ""
-"\n"
-" La Tabla de Nombres de Fichero está vacía.\n"
-
-#: dwarf.c:1943
-#, c-format
-msgid ""
-"\n"
-" The File Name Table:\n"
-msgstr ""
-"\n"
-" La Tabla de Nombres de Fichero:\n"
-
-#: dwarf.c:1951
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: dwarf.c:1962
-#, c-format
-msgid "%s\n"
-msgstr "%s\n"
-
-#. Now display the statements.
-#: dwarf.c:1970
-#, c-format
-msgid ""
-"\n"
-" Line Number Statements:\n"
-msgstr ""
-"\n"
-" Declaraciones de Número de Línea:\n"
-
-#: dwarf.c:1986
-#, c-format
-msgid " Special opcode %d: advance Address by %lu to 0x%lx"
-msgstr " código de Operación especial %d: Dirección de avance por %lu a 0x%lx"
-
-#: dwarf.c:1990
-#, c-format
-msgid " and Line by %d to %d\n"
-msgstr " y Línea por %d a %d\n"
-
-#: dwarf.c:1998
-msgid "Extend line ops need a valid pointer size, guessing at 4\n"
-msgstr "Los operadores de linea extendida necesitan un tamaño de puntero válido, adivinando en 4\n"
-
-#: dwarf.c:2007
-#, c-format
-msgid " Copy\n"
-msgstr " Copiar\n"
-
-#: dwarf.c:2015
-#, c-format
-msgid " Advance PC by %lu to 0x%lx\n"
-msgstr " Avanzar el PC por %lu para %lx\n"
-
-#: dwarf.c:2023
-#, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr " Línea de Avance por %d para %d\n"
-
-#: dwarf.c:2030
-#, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr " Establecer el Nombre de Fichero para la entrada %d en la Tabla de Nombres de Fichero\n"
-
-#: dwarf.c:2038
-#, c-format
-msgid " Set column to %lu\n"
-msgstr " Establecer la columna a %lu\n"
-
-#: dwarf.c:2045
-#, c-format
-msgid " Set is_stmt to %d\n"
-msgstr " Establecer is_stmt a %d\n"
-
-#: dwarf.c:2050
-#, c-format
-msgid " Set basic block\n"
-msgstr " Establecer el bloque básico\n"
-
-#: dwarf.c:2058
-#, c-format
-msgid " Advance PC by constant %lu to 0x%lx\n"
-msgstr " Avanzar el PC por la constante %lu a 0x%lx\n"
-
-#: dwarf.c:2066
-#, c-format
-msgid " Advance PC by fixed size amount %lu to 0x%lx\n"
-msgstr " Avanzar el PC por la cantidad de tamaño fijo %lu a 0x%lx\n"
-
-#: dwarf.c:2071
-#, c-format
-msgid " Set prologue_end to true\n"
-msgstr " Establecer prologue_end a true\n"
-
-#: dwarf.c:2075
-#, c-format
-msgid " Set epilogue_begin to true\n"
-msgstr " Establecer epilogue_begin a true\n"
-
-#: dwarf.c:2081
-#, c-format
-msgid " Set ISA to %lu\n"
-msgstr " Establecer ISA a %lu\n"
-
-#: dwarf.c:2085
-#, c-format
-msgid " Unknown opcode %d with operands: "
-msgstr " Código de operación desconocido %d con los operandos: "
-
-#: dwarf.c:2111 dwarf.c:2197 dwarf.c:2271 dwarf.c:2382 dwarf.c:2514
-#: dwarf.c:2739
-#, c-format
-msgid ""
-"Contents of the %s section:\n"
-"\n"
-msgstr ""
-"Contenido de la sección %s:\n"
-"\n"
-
-#: dwarf.c:2151
-msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
-msgstr "Actualmente sólo tienen soporte los nombres públicos DWARF 2 y 3\n"
-
-#: dwarf.c:2158
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Longitud: %ld\n"
-
-#: dwarf.c:2160
-#, c-format
-msgid " Version: %d\n"
-msgstr " Versión: %d\n"
-
-#: dwarf.c:2162
-#, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr " Desplazamiento en sección .debug_info: %ld\n"
-
-#: dwarf.c:2164
-#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr " Tamaño de área en sección .debug_info: %ld\n"
-
-#: dwarf.c:2167
-#, c-format
-msgid ""
-"\n"
-" Offset\tName\n"
-msgstr ""
-"\n"
-" Desplazamiento\tNombre\n"
-
-#: dwarf.c:2218
-#, c-format
-msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr " DW_MACINFO_start_file - numlinea: %d numfichero: %d\n"
-
-#: dwarf.c:2224
-#, c-format
-msgid " DW_MACINFO_end_file\n"
-msgstr " DW_MACINFO_end_file\n"
-
-#: dwarf.c:2232
-#, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_define - numlinea : %d macro : %s\n"
-
-#: dwarf.c:2241
-#, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_undef - numlinea : %d macro : %s\n"
-
-#: dwarf.c:2253
-#, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr " DW_MACINFO_vendor_ext - constante : %d cadena : %s\n"
-
-#: dwarf.c:2282
-#, c-format
-msgid " Number TAG\n"
-msgstr " Número TAG\n"
-
-#: dwarf.c:2288
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr " %ld %s [%s]\n"
-
-#: dwarf.c:2291
-msgid "has children"
-msgstr "tiene hijos"
-
-#: dwarf.c:2291
-msgid "no children"
-msgstr "sin hijos"
-
-#: dwarf.c:2294
-#, c-format
-msgid " %-18s %s\n"
-msgstr " %-18s %s\n"
-
-#: dwarf.c:2327 dwarf.c:2510 dwarf.c:2684
-#, c-format
-msgid ""
-"\n"
-"The %s section is empty.\n"
-msgstr ""
-"\n"
-"La sección %s está vacía.\n"
-
-#. FIXME: Should we handle this case?
-#: dwarf.c:2372
-msgid "Location lists in .debug_info section aren't in ascending order!\n"
-msgstr "¡Las listas de ubicación en la sección .debug_info no están en orden ascendente!\n"
-
-#: dwarf.c:2375
-msgid "No location lists in .debug_info section!\n"
-msgstr "¡No hay listas de ubicación en la sección .debug_info!\n"
-
-#: dwarf.c:2379
-#, c-format
-msgid "Location lists in %s section start at 0x%lx\n"
-msgstr "Las listas de ubicación en la sección %s empiezan en 0x%lx\n"
-
-#: dwarf.c:2383
-#, c-format
-msgid " Offset Begin End Expression\n"
-msgstr " Desplaz Inicio Fin Expresión\n"
-
-#: dwarf.c:2414
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "Hay un agujero [0x%lx - 0x%lx] en la sección .debug_loc.\n"
-
-#: dwarf.c:2417
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "Hay un traslape [0x%lx - 0x%lx] en la sección .debug_loc.\n"
-
-#: dwarf.c:2424
-#, c-format
-msgid "Offset 0x%lx is bigger than .debug_loc section size.\n"
-msgstr "El desplazamiento 0x%lx es más grande que el tamaño de la sección .debug_loc.\n"
-
-#: dwarf.c:2433 dwarf.c:2460 dwarf.c:2470
-#, c-format
-msgid "Location list starting at offset 0x%lx is not terminated.\n"
-msgstr "La lista de reubicación que comienza en el desplazamiento 0x%lx no está terminada.\n"
-
-#: dwarf.c:2445 dwarf.c:2784
-#, c-format
-msgid " %8.8lx <End of list>\n"
-msgstr " %8.8lx <Fin de la lista>\n"
-
-#: dwarf.c:2453
-#, c-format
-msgid " %8.8lx %8.8lx %8.8lx (base address)\n"
-msgstr " %8.8lx %8.8lx %8.8lx (dirección base)\n"
-
-#: dwarf.c:2487 dwarf.c:2801
-msgid " (start == end)"
-msgstr " (inicio == final)"
-
-#: dwarf.c:2489 dwarf.c:2803
-msgid " (start > end)"
-msgstr " (inicio > final)"
-
-#: dwarf.c:2618
-msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
-msgstr "Sólo los rangos-a de DWARF 2 y 3 tienen soporte actualmente.\n"
-
-#: dwarf.c:2622
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Longitud: %ld\n"
-
-#: dwarf.c:2623
-#, c-format
-msgid " Version: %d\n"
-msgstr " Versión: %d\n"
-
-#: dwarf.c:2624
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr " Desplaz. en .debug_info: %lx\n"
-
-#: dwarf.c:2625
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " Tamaño del Puntero: %d\n"
-
-#: dwarf.c:2626
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr " Tamaño del Segmento: %d\n"
-
-#: dwarf.c:2628
-#, c-format
-msgid ""
-"\n"
-" Address Length\n"
-msgstr ""
-"\n"
-" Longitud de la Dirección\n"
-
-#. FIXME: Should we handle this case?
-#: dwarf.c:2729
-msgid "Range lists in .debug_info section aren't in ascending order!\n"
-msgstr "¡Las listas de rango en la sección .debug_info no están en orden ascendente!\n"
-
-#: dwarf.c:2732
-msgid "No range lists in .debug_info section!\n"
-msgstr "¡No hay listas de rango en la sección .debug_info!\n"
-
-#: dwarf.c:2736
-#, c-format
-msgid "Range lists in %s section start at 0x%lx\n"
-msgstr "Las listas de rango en la sección %s inician en 0x%lx\n"
-
-#: dwarf.c:2740
-#, c-format
-msgid " Offset Begin End\n"
-msgstr " Desplaz Inicio Fin\n"
-
-#: dwarf.c:2765
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in %s section.\n"
-msgstr "Hay un agujero [0x%lx - 0x%lx] en la sección %s.\n"
-
-#: dwarf.c:2769
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in %s section.\n"
-msgstr "Hay un traslape [0x%lx - 0x%lx] en la sección %s.\n"
-
-#: dwarf.c:2964
-#, c-format
-msgid "The section %s contains:\n"
-msgstr "La sección %s contiene:\n"
-
-#: dwarf.c:3608
-#, c-format
-msgid "unsupported or unknown DW_CFA_%d\n"
-msgstr "DW_CFA_%d desconocido o sin soporte\n"
-
-#: dwarf.c:3632
-#, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr "Aún no tiene soporte el mostrar el contenido de depuración de la sección %s.\n"
-
-#: dwarf.c:3674
-#, c-format
-msgid "%s: Error: "
-msgstr "%s: Error: "
-
-#: dwarf.c:3685
-#, c-format
-msgid "%s: Warning: "
-msgstr "%s: Aviso: "
-
-#: emul_aix.c:51
-#, c-format
-msgid " [-g] - 32 bit small archive\n"
-msgstr " [-g] - archivo small de 32 bit\n"
-
-#: emul_aix.c:52
-#, c-format
-msgid " [-X32] - ignores 64 bit objects\n"
-msgstr " [-X32] - ignora los objetos de 64 bit\n"
-
-#: emul_aix.c:53
-#, c-format
-msgid " [-X64] - ignores 32 bit objects\n"
-msgstr " [-X64] - ignora los objetos de 32 bit\n"
-
-#: emul_aix.c:54
-#, c-format
-msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
-msgstr " [-X32_64] -acepta objetos de 32 y 64 bit\n"
-
-#: ieee.c:311
-msgid "unexpected end of debugging information"
-msgstr "fin inesperado de la información de depuración"
-
-#: ieee.c:398
-msgid "invalid number"
-msgstr "número inválido"
-
-#: ieee.c:451
-msgid "invalid string length"
-msgstr "longitud de cadena inválida"
-
-#: ieee.c:506 ieee.c:547
-msgid "expression stack overflow"
-msgstr "desbordamiento de la pila de expresión"
-
-#: ieee.c:526
-msgid "unsupported IEEE expression operator"
-msgstr "operador de expresión IEEE sin soporte"
-
-#: ieee.c:541
-msgid "unknown section"
-msgstr "sección desconocida"
-
-#: ieee.c:562
-msgid "expression stack underflow"
-msgstr "desbordamiento por debajo de la pila de expresión"
-
-#: ieee.c:576
-msgid "expression stack mismatch"
-msgstr "no hay coincidencia en la pila de expresión"
-
-#: ieee.c:613
-msgid "unknown builtin type"
-msgstr "tipo interno desconocido"
-
-#: ieee.c:758
-msgid "BCD float type not supported"
-msgstr "tipo de coma flotante BCD sin soporte"
-
-#: ieee.c:895
-msgid "unexpected number"
-msgstr "número inesperado"
-
-#: ieee.c:902
-msgid "unexpected record type"
-msgstr "tipo de grabación inesperado"
-
-#: ieee.c:935
-msgid "blocks left on stack at end"
-msgstr "se dejaron bloques en la pila al final"
-
-#: ieee.c:1198
-msgid "unknown BB type"
-msgstr "typo BB desconocido"
-
-#: ieee.c:1207
-msgid "stack overflow"
-msgstr "desbordamiento de la pila"
-
-#: ieee.c:1230
-msgid "stack underflow"
-msgstr "desbordamiento de la pila por debajo"
-
-#: ieee.c:1342 ieee.c:1412 ieee.c:2109
-msgid "illegal variable index"
-msgstr "índice de variable ilegal"
-
-#: ieee.c:1390
-msgid "illegal type index"
-msgstr "índice de tipo ilegal"
-
-#: ieee.c:1400 ieee.c:1437
-msgid "unknown TY code"
-msgstr "código TY desconocido"
-
-#: ieee.c:1419
-msgid "undefined variable in TY"
-msgstr "variable indefinida en TY"
-
-#. Pascal file name. FIXME.
-#: ieee.c:1830
-msgid "Pascal file name not supported"
-msgstr "El nombre de fichero Pascal no tiene soporte"
-
-#: ieee.c:1878
-msgid "unsupported qualifier"
-msgstr "calificador sin soporte"
-
-#: ieee.c:2147
-msgid "undefined variable in ATN"
-msgstr "variable indefinida en ATN"
-
-#: ieee.c:2190
-msgid "unknown ATN type"
-msgstr "tipo ATN desconocido"
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2312
-msgid "unsupported ATN11"
-msgstr "ATN11 sin soporte"
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2339
-msgid "unsupported ATN12"
-msgstr "ATN12 sin soporte"
-
-#: ieee.c:2399
-msgid "unexpected string in C++ misc"
-msgstr "cadena inesperada en misc de C++"
-
-#: ieee.c:2412
-msgid "bad misc record"
-msgstr "grabación misc errónea"
-
-#: ieee.c:2453
-msgid "unrecognized C++ misc record"
-msgstr "grabación misc de C++ no reconocida"
-
-#: ieee.c:2568
-msgid "undefined C++ object"
-msgstr "objeto C++ no definido"
-
-#: ieee.c:2602
-msgid "unrecognized C++ object spec"
-msgstr "especificación de objeto C++ no reconocida"
-
-#: ieee.c:2638
-msgid "unsupported C++ object type"
-msgstr "tipo de objeto C++ sin soporte"
-
-#: ieee.c:2648
-msgid "C++ base class not defined"
-msgstr "no está definida la clase base de C++"
-
-#: ieee.c:2660 ieee.c:2765
-msgid "C++ object has no fields"
-msgstr "el objeto C++ no tiene campos"
-
-#: ieee.c:2679
-msgid "C++ base class not found in container"
-msgstr "no se encuentra la clase base C++ en el contenedor"
-
-#: ieee.c:2786
-msgid "C++ data member not found in container"
-msgstr "no se encuentra los datos miembros C++ en el contenedor"
-
-#: ieee.c:2827 ieee.c:2977
-msgid "unknown C++ visibility"
-msgstr "visibilidad C++ desconocida"
-
-#: ieee.c:2861
-msgid "bad C++ field bit pos or size"
-msgstr "posición o tamaño erróneo del campo de bit C++"
-
-#: ieee.c:2953
-msgid "bad type for C++ method function"
-msgstr "tipo erróneo para la función del método C++"
-
-#: ieee.c:2963
-msgid "no type information for C++ method function"
-msgstr "no hay información de tipo para la función del método C++"
-
-#: ieee.c:3002
-msgid "C++ static virtual method"
-msgstr "método virtual static de C++"
-
-#: ieee.c:3097
-msgid "unrecognized C++ object overhead spec"
-msgstr "especificación de adelanto de objeto C++ no reconocida"
-
-#: ieee.c:3136
-msgid "undefined C++ vtable"
-msgstr "vtable C++ no definida"
-
-#: ieee.c:3205
-msgid "C++ default values not in a function"
-msgstr "valores C++ por defecto no están en una función"
-
-#: ieee.c:3245
-msgid "unrecognized C++ default type"
-msgstr "tipo por defecto de C++ no reconocido"
-
-#: ieee.c:3276
-msgid "reference parameter is not a pointer"
-msgstr "el parámetro de referencia no es un puntero"
-
-#: ieee.c:3359
-msgid "unrecognized C++ reference type"
-msgstr "tipo de referencia de C++ no reconocido"
-
-#: ieee.c:3441
-msgid "C++ reference not found"
-msgstr "no se encontró la referencia C++"
-
-#: ieee.c:3449
-msgid "C++ reference is not pointer"
-msgstr "la referencia C++ no es un puntero"
-
-#: ieee.c:3475 ieee.c:3483
-msgid "missing required ASN"
-msgstr "falta el ASN requerido"
-
-#: ieee.c:3510 ieee.c:3518
-msgid "missing required ATN65"
-msgstr "falta el ATN65 requerido"
-
-#: ieee.c:3532
-msgid "bad ATN65 record"
-msgstr "registro ATN65 erróneo"
-
-#: ieee.c:4160
-#, c-format
-msgid "IEEE numeric overflow: 0x"
-msgstr "desbordamiento numérico IEEE: 0x"
-
-#: ieee.c:4204
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr "desbordamiento de longitud de cadena IEEE: %u\n"
-
-#: ieee.c:5203
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr "tamaño de tipo entero IEEE %u sin soporte\n"
-
-#: ieee.c:5237
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr "tamaño de tipo coma flotante IEEE %u sin soporte\n"
-
-#: ieee.c:5271
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr "tamaño de tipo complejo IEEE %u sin soporte\n"
-
-#: nlmconv.c:269 srconv.c:1813
-msgid "input and output files must be different"
-msgstr "los ficheros de entrada y salida deben ser diferentes"
-
-#: nlmconv.c:316
-msgid "input file named both on command line and with INPUT"
-msgstr "fichero de entrada nombrado en la línea de comandos y con INPUT"
-
-#: nlmconv.c:325
-msgid "no input file"
-msgstr "no hay fichero de entrada"
-
-#: nlmconv.c:355
-msgid "no name for output file"
-msgstr "no hay nombre para el fichero de salida"
-
-#: nlmconv.c:369
-msgid "warning: input and output formats are not compatible"
-msgstr "aviso: los formatos de entrada y salida no son compatibles"
-
-#: nlmconv.c:398
-msgid "make .bss section"
-msgstr "hacer sección .bss"
-
-#: nlmconv.c:407
-msgid "make .nlmsections section"
-msgstr "hacer sección .nlmsections"
-
-#: nlmconv.c:409
-msgid "set .nlmsections flags"
-msgstr "establecer opciones .nlmsections"
-
-#: nlmconv.c:437
-msgid "set .bss vma"
-msgstr "establecer vma .bss"
-
-#: nlmconv.c:444
-msgid "set .data size"
-msgstr "establecer tamaño de .data"
-
-#: nlmconv.c:624
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr "aviso: se importó el símbolo %s pero no está en la lista de importación"
-
-#: nlmconv.c:644
-msgid "set start address"
-msgstr "establecer la dirección de inicio"
-
-#: nlmconv.c:693
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr "aviso: el procedimiento START %s no está definido"
-
-#: nlmconv.c:695
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr "aviso: el procedimiento EXIT %s no está definido"
-
-#: nlmconv.c:697
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr "aviso: el procedimiento CHECK %s no está definido"
-
-#: nlmconv.c:718 nlmconv.c:907
-msgid "custom section"
-msgstr "sección a la medida"
-
-#: nlmconv.c:739 nlmconv.c:936
-msgid "help section"
-msgstr "sección de ayuda"
-
-#: nlmconv.c:761 nlmconv.c:954
-msgid "message section"
-msgstr "sección de mensajes"
-
-#: nlmconv.c:777 nlmconv.c:987
-msgid "module section"
-msgstr "sección de módulos"
-
-#: nlmconv.c:797 nlmconv.c:1003
-msgid "rpc section"
-msgstr "sección de rpc"
-
-#. There is no place to record this information.
-#: nlmconv.c:833
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr "%s: aviso: las bibliotecas compartidas no pueden tener datos sin iniciar"
-
-#: nlmconv.c:854 nlmconv.c:1022
-msgid "shared section"
-msgstr "sección compartida"
-
-#: nlmconv.c:862
-msgid "warning: No version number given"
-msgstr "aviso: No se dió un número de versión"
-
-#: nlmconv.c:902 nlmconv.c:931 nlmconv.c:949 nlmconv.c:998 nlmconv.c:1017
-#, c-format
-msgid "%s: read: %s"
-msgstr "%s: leído: %s"
-
-#: nlmconv.c:924
-msgid "warning: FULLMAP is not supported; try ld -M"
-msgstr "aviso: FULLMAP no tiene soporte; pruebe ld -M"
-
-#: nlmconv.c:1100
-#, c-format
-msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
-msgstr "Modo de empleo: %s [opcion(es)] [fichero-entrada [fichero-salida]]\n"
-
-#: nlmconv.c:1101
-#, c-format
-msgid " Convert an object file into a NetWare Loadable Module\n"
-msgstr "Convertir un fichero objeto en un Módulo Cargable de NetWare (NLM)\n"
-
-#: nlmconv.c:1102
-#, c-format
-msgid ""
-" The options are:\n"
-" -I --input-target=<bfdname> Set the input binary file format\n"
-" -O --output-target=<bfdname> Set the output binary file format\n"
-" -T --header-file=<file> Read <file> for NLM header information\n"
-" -l --linker=<linker> Use <linker> for any linking\n"
-" -d --debug Display on stderr the linker command line\n"
-" @<file> Read options from <file>.\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-msgstr ""
-" Las opciones son:\n"
-" -I --input-target=<nombrebfd> Establece el formato del fichero binario de entrada\n"
-" -O --output-target=<nombrebfd> Establece el formato del fichero binario de salida\n"
-" -T --header-file=<fichero> Lee el <fichero> para la información del encabezado NLM\n"
-" -l --linker=<enlazador> Usa el <enlazador> para cualquier enlazado\n"
-" -d --debug Muestra en salida estándar la línea de comando del enlazador\n"
-" @<fichero> Lee opciones del <fichero>.\n"
-" -h --help Muestra esta información\n"
-" -v --version Muestra la versión del programa\n"
-
-#: nlmconv.c:1143
-#, c-format
-msgid "support not compiled in for %s"
-msgstr "soporte no compilado para %s"
-
-#: nlmconv.c:1180
-msgid "make section"
-msgstr "sección make"
-
-#: nlmconv.c:1194
-msgid "set section size"
-msgstr "establecer el tamaño de la sección"
-
-#: nlmconv.c:1200
-msgid "set section alignment"
-msgstr "establecer la alineación de la sección"
-
-#: nlmconv.c:1204
-msgid "set section flags"
-msgstr "establecer las opciones de la sección"
-
-#: nlmconv.c:1215
-msgid "set .nlmsections size"
-msgstr "establecer el tamaño de .nlmsections"
-
-#: nlmconv.c:1296 nlmconv.c:1304 nlmconv.c:1313 nlmconv.c:1318
-msgid "set .nlmsection contents"
-msgstr "establecer el contenido de .nlmsection"
-
-#: nlmconv.c:1797
-msgid "stub section sizes"
-msgstr "tamaños de la sección de cabos"
-
-#: nlmconv.c:1844
-msgid "writing stub"
-msgstr "escribiendo cabo"
-
-#: nlmconv.c:1928
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr "reubicación relativa PC contra %s sin resolver"
-
-#: nlmconv.c:1992
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr "desbordamiento al ajustar la reubicación contra %s"
-
-#: nlmconv.c:2119
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr "%s: falló la ejecución de %s: "
-
-#: nlmconv.c:2134
-#, c-format
-msgid "Execution of %s failed"
-msgstr "Falló la ejecución de %s"
-
-#: nm.c:224 size.c:82 strings.c:708
-#, c-format
-msgid "Usage: %s [option(s)] [file(s)]\n"
-msgstr "Modo de empleo: %s [opcion(es)] [fichero(s)]\n"
-
-#: nm.c:225
-#, c-format
-msgid " List symbols in [file(s)] (a.out by default).\n"
-msgstr "Lista de símbolos en [fichero(s)] (a.out por defecto).\n"
-
-#: nm.c:226
-#, c-format
-msgid ""
-" The options are:\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -S, --print-size Print size of defined symbols\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" --special-syms Include special symbols in the output\n"
-" --synthetic Display synthetic symbols as well\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -X 32_64 (ignored)\n"
-" @FILE Read options from FILE\n"
-" -h, --help Display this information\n"
-" -V, --version Display this program's version number\n"
-"\n"
-msgstr ""
-"Las opciones son:\n"
-" -a, --debug-syms Muestra símbolos sólo para el depurador\n"
-" -A, --print-file-name Muestra el nombre del fichero de entrada antes de\n"
-" cada símbolo\n"
-" -B Igual que --format=bsd\n"
-" -C, --demangle[=ESTILO] Decodifica los nombres de símbolo de bajo nivel en\n"
-" nombres de nivel de usuario\n"
-" El ESTILO, si se especifica, puede ser `auto'\n"
-" (por defecto), `gnu', `lucid', `arm', `hp', `edg',\n"
-" `gnu-v3', `java' o `gnat'\n"
-" --no-demangle No decodifica los nombres de símbolo de bajo nivel\n"
-" -D, --dynamic Muestra los símbolos dinámicos en lugar de los\n"
-" símbolos normales\n"
-" --defined-only Muestra solamente los símbolos definidos\n"
-" -e (ignorado)\n"
-" -f, --format=FORMATO Usa el formato de salida FORMATO. FORMATO puede ser\n"
-" `bsd', `sysv' o `posix'. Por defecto es `bsd'\n"
-" -g, --extern-only Muestra solamente los símbolos externos\n"
-" -l, --line-numbers Utiliza la información de depuración para encontrar\n"
-" un nombre de fichero y un número de línea para cada\n"
-" símbolo\n"
-" -n, --numeric-sort Ordena los símbolos numéricamente por dirección\n"
-" -o Igual que -A\n"
-" -p, --no-sort No ordena los símbolos\n"
-" -P, --portability Igual que --format=posix\n"
-" -r, --reverse-sort Cambia el sentido de la ordenación\n"
-" -S, --print-size Muestra el tamaño de los símbolos definidos\n"
-" -s, --print-armap Incluye el índice de los símbolos de miembros\n"
-" del archivo\n"
-" --size-sort Ordena los símbolos por tamaño\n"
-" --special-syms Incluye los símbolos especiales en la salida\n"
-" --synthetic Muestra también símbolos sintéticos\n"
-" -t, --radix=RADICAL Utiliza el RADICAL para mostrar los valores de\n"
-" los símbolos\n"
-" --target=NOMBREBFD Especifica el formato de objeto objetivo como\n"
-" NOMBREBFD\n"
-" -u, --undefined-only Muestra sólo los símbolos indefinidos\n"
-" -X 32_64 (ignorado)\n"
-" @FICHERO Lee opciones del FICHERO\n"
-" -h, --help Muestra esta información\n"
-" -V, --version Muestra el número de versión de este programa\n"
-"\n"
-
-#: nm.c:263 objdump.c:236
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr "Reportar bichos a %s.\n"
-
-#: nm.c:295
-#, c-format
-msgid "%s: invalid radix"
-msgstr "%s: radical inválido"
-
-#: nm.c:319
-#, c-format
-msgid "%s: invalid output format"
-msgstr "%s: formato de salida inválido"
-
-#: nm.c:340 readelf.c:6623 readelf.c:6659
-#, c-format
-msgid "<processor specific>: %d"
-msgstr "<específico del procesador> %d:"
-
-#: nm.c:342 readelf.c:6626 readelf.c:6671
-#, c-format
-msgid "<OS specific>: %d"
-msgstr "<específico del SO>: %d"
-
-#: nm.c:344 readelf.c:6628 readelf.c:6674
-#, c-format
-msgid "<unknown>: %d"
-msgstr "<desconocido>: %d"
-
-#: nm.c:381
-#, c-format
-msgid ""
-"\n"
-"Archive index:\n"
-msgstr ""
-"\n"
-"Índice del archivo:\n"
-
-#: nm.c:1227
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Símbolos indefinidos de %s:\n"
-"\n"
-
-#: nm.c:1229
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Símbolos de %s:\n"
-"\n"
-
-#: nm.c:1231 nm.c:1282
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"Nombre Valor Clase Tipo Tamaño Línea Sección\n"
-"\n"
-
-#: nm.c:1234 nm.c:1285
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"Nombre Valor Clase Tipo Tamaño Línea Sección\n"
-"\n"
-
-#: nm.c:1278
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Símbolos indefinidos de %s[%s]:\n"
-"\n"
-
-#: nm.c:1280
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Símbolos de %s[%s]:\n"
-"\n"
-
-#: nm.c:1584
-msgid "Only -X 32_64 is supported"
-msgstr "Solamente -X 32_64 tiene soporte"
-
-#: nm.c:1604
-msgid "Using the --size-sort and --undefined-only options together"
-msgstr "Al usar juntas las opciones --size-sort y --undefined-only"
-
-#: nm.c:1605
-msgid "will produce no output, since undefined symbols have no size."
-msgstr "no se producirá salida, porque los símbolos indefinidos no tienen tamaño."
-
-#: nm.c:1633
-#, c-format
-msgid "data size %ld"
-msgstr "tamaño de datos %ld"
-
-#: objcopy.c:401 srconv.c:1721
-#, c-format
-msgid "Usage: %s [option(s)] in-file [out-file]\n"
-msgstr "Modo de empleo: %s [opcion(es)] fichero-entrada [fichero-salida]\n"
-
-#: objcopy.c:402
-#, c-format
-msgid " Copies a binary file, possibly transforming it in the process\n"
-msgstr " Copia un fichero binario, posiblemente transformándolo en el proceso\n"
-
-#: objcopy.c:403 objcopy.c:495
-#, c-format
-msgid " The options are:\n"
-msgstr " Las opciones son:\n"
-
-#: objcopy.c:404
-#, c-format
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -B --binary-architecture <arch> Set arch of output file, when input is binary\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" --debugging Convert debugging information, if possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation information\n"
-" -g --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" --strip-unneeded-symbol <name>\n"
-" Do not copy symbol <name> unless needed by\n"
-" relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -K --keep-symbol <name> Do not strip symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-" --globalize-symbol <name> Force symbol <name> to be marked as a global\n"
-" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-" --weaken Force all global symbols to be marked as weak\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address <addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to <flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to output\n"
-" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-" --change-leading-char Force output format's leading character style\n"
-" --remove-leading-char Remove leading character from global symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --redefine-syms <file> --redefine-sym for all symbol pairs \n"
-" listed in <file>\n"
-" --srec-len <number> Restrict the length of generated Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-" --strip-symbols <file> -N for all symbols listed in <file>\n"
-" --strip-unneeded-symbols <file>\n"
-" --strip-unneeded-symbol for all symbols listed\n"
-" in <file>\n"
-" --keep-symbols <file> -K for all symbols listed in <file>\n"
-" --localize-symbols <file> -L for all symbols listed in <file>\n"
-" --globalize-symbols <file> --globalize-symbol for all in <file>\n"
-" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-" --weaken-symbols <file> -W for all symbols listed in <file>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" --writable-text Mark the output text as writable\n"
-" --readonly-text Make the output text write protected\n"
-" --pure Mark the output file as demand paged\n"
-" --impure Mark the output file as impure\n"
-" --prefix-symbols <prefix> Add <prefix> to start of every symbol name\n"
-" --prefix-sections <prefix> Add <prefix> to start of every section name\n"
-" --prefix-alloc-sections <prefix>\n"
-" Add <prefix> to start of every allocatable\n"
-" section name\n"
-" -v --verbose List all object files modified\n"
-" @<file> Read options from <file>\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-msgstr ""
-" -I --input-target <nombrebfd> Asume que el fichero de entrada está en\n"
-" el formato <nombrebfd>\n"
-" -O --output-target <nombrebfd> Crea un fichero de salida en el formato\n"
-" <nombrebfd>\n"
-" -B --binary-architecture <arch> Establece la arquitectura del fichero de\n"
-" salida, cuando la entrada es binaria\n"
-" -F --target <nombrebfd> Establece tanto el formato de salida como\n"
-" el de entrada a <nombrebfd>\n"
-" --debugging Convierte la información de depuración, si\n"
-" es posible\n"
-" -p --preserve-dates Copia las marcas de tiempo de modificación y\n"
-" acceso a la salida\n"
-" -j --only-section <nombre> Sólo copiar la sección <nombre> en la salida\n"
-" --add-gnu-debuglink=<fich> Agrega la sección de enlazado .gnu_debuglink\n"
-" al <fich>ero\n"
-" -R --remove-section <nombre> Borra la sección <nombre> de la salida\n"
-" -S --strip-all Borra todos los símbolos y la información de\n"
-" reubicación\n"
-" -g --strip-debug Borra todos los símbolos y secciones de\n"
-" depuración\n"
-" --strip-unneeded Borra todos los símbolos innecesarios para\n"
-" las reubicaciones\n"
-" -N --strip-symbol <nombre> No copia el símbolo <nombre>\n"
-" --strip-unneeded-symbol <nombre>\n"
-" No copia el símbolo <nombre> a menos que sea\n"
-" necesario para las reubicaciones\n"
-" --only-keep-debug Borra todo excepto la información de\n"
-" depuración\n"
-" -K --keep-symbol <nombre> Sólo copia el símbolo <nombre>\n"
-" -L --localize-symbol <nom> Fuerza que el símbolo <nom> se marque como\n"
-" local\n"
-" --globalize-symbol <nom> Fuerza que el símbolo <nom> se marque como\n"
-" global\n"
-" -G --keep-global-symbol <nom> Vuelve locales todos los símbolos excepto\n"
-" <nom>\n"
-" -W --weaken-symbol <nom> Fuerza que el símbolo <nom> se marque como\n"
-" débil\n"
-" --weaken Fuerza que todos los símbolos se marquen como\n"
-" débiles\n"
-" -w --wildcard Permite comodines en la comparación de\n"
-" símbolos\n"
-" -x --discard-all Borra todos los símbolos que no son globales\n"
-" -X --discard-locals Borra cualquier símbolo generado por el\n"
-" compilador\n"
-" -i --interleave <num> Sólo copia uno de cada <num> bytes\n"
-" -b --byte <num> Selecciona el byte <num> en cada bloque\n"
-" espaciado\n"
-" --gap-fill <val> Rellena los huecos entre secciones con <val>\n"
-" --pad-to <dirección> Rellena la última sección hasta la dirección <dirección>\n"
-" --set-start <dirección> Establece la dirección de inicio en\n"
-" <dirección>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Agrega <incr> a la dirección de inicio\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Agrega <incr> a las direcciones LMA, VMA y\n"
-" la de inicio\n"
-" {--change-section-address|--adjust-section-vma} <nombre>{=|+|-}<val>\n"
-" Cambia el LMA y el VMA de la sección\n"
-" <nombre> por <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Cambia LMA de la sección <nombre> por <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Cambia VMA de la sección <nombre> por <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Avisar si no existe una sección nombrada\n"
-" --set-section-flags <nombre>=<opciones>\n"
-" Establece las propiedades de la sección\n"
-" <nombre> a <opciones>\n"
-" --add-section <nombre>=<fichero>\n"
-" Agrega la sección <nombre> que se encuentra\n"
-" en el <fichero> a la salida\n"
-" --rename-section <ant>=<nvo>[,<opts>] Renombra la sección <ant> a <nvo>\n"
-" --change-leading-char Fuerza el carácter de estilo inicial en\n"
-" el formato de salida\n"
-" --remove-leading-char Borra el carácter inicial de los símbolos\n"
-" globales\n"
-" --redefine-sym <ant>=<nvo> Redefine el nombre de símbolo <ant> a <nvo>\n"
-" --redefine-syms <fichero> --redefine-sym para todos los pares de\n"
-" símbolos enlistados en el <fichero>\n"
-" --srec-len <número> Restringe la longitud de los Srecords\n"
-" generados\n"
-" --srec-forceS3 Restringe el tipo de los Srecords generados\n"
-" a S3\n"
-" --strip-symbols <fichero> -N para todos los símbolos enlistados en el\n"
-" <fichero>\n"
-" --strip-unneeded-symbols <fichero>\n"
-" --strip-unneeded-symbol para todos los\n"
-" símbolos enlistados en el <fichero>\n"
-" --keep-symbols <fichero> -K para todos los símbolos enlistados en el\n"
-" <fichero>\n"
-" --localize-symbols <fichero> -L para todos los símbolos enlistados en el\n"
-" <fichero>\n"
-" --globalize-symbols <fichero> --globalize-symbol para todos los símbolos\n"
-" en el <fichero>\n"
-" --keep-global-symbols <fichero>\n"
-" -G para todos los símbolos enlistados en el\n"
-" <fichero>\n"
-" --weaken-symbols <fichero> -W para todos los símbolos enlistados en el\n"
-" <fichero>\n"
-" --alt-machine-code <índice> Utiliza código máquina alternativo para la\n"
-" salida\n"
-" --writable-text Marca el texto de salida como modificable\n"
-" --readonly-text Marca el texto de salida como protegido\n"
-" contra escritura\n"
-" --pure Marca el fichero de salida como paginado en\n"
-" demanda\n"
-" --impure Marca el fichero de salida como impuro\n"
-" --prefix-symbols <prefijo> Agrega <prefijo> al inicio de cada nombre de\n"
-" símbolo\n"
-" --prefix-sections <prefijo> Agrega <prefijo> al inicio de cada nombre de\n"
-" sección\n"
-" --prefix-alloc-sections <prefijo>\n"
-" Agrega <prefijo> al inicio de cada nombre de\n"
-" sección alojable\n"
-" -v --verbose Enlista todos los ficheros objeto modificados\n"
-" @<fichero> Lee opciones del <fichero>\n"
-" -V --version Muestra el número de versión de este programa\n"
-" -h --help Muestra esta salida\n"
-" --info Enlista los formatos objeto y arquitecturas\n"
-" que se soportan\n"
-
-#: objcopy.c:493
-#, c-format
-msgid "Usage: %s <option(s)> in-file(s)\n"
-msgstr "Modo de empleo: %s <opcion(es)> fichero(s)-entrada\n"
-
-#: objcopy.c:494
-#, c-format
-msgid " Removes symbols and sections from files\n"
-msgstr " Remueve símbolos y secciones de los ficheros\n"
-
-#: objcopy.c:496
-#, c-format
-msgid ""
-" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target=<bfdname> Create an output file in format <bfdname>\n"
-" -F --target=<bfdname> Set both input and output format to <bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -R --remove-section=<name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation information\n"
-" -g -S -d --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -N --strip-symbol=<name> Do not copy symbol <name>\n"
-" -K --keep-symbol=<name> Do not strip symbol <name>\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr ""
-" -I --input-target=<nombrebfd> Asume que el fichero de entrada está en\n"
-" el formato <nombrebfd>\n"
-" -O --output-target=<nombrebfd> Crea un fichero de salida en el formato\n"
-" <nombrebfd>\n"
-" -F --target <nombrebfd> Establece tanto el formato de salida como\n"
-" el de entrada a <nombrebfd>\n"
-" -p --preserve-dates Copia las marcas de tiempo de modificación\n"
-" y acceso a la salida\n"
-" -R --remove-section=<nombre> Borra la sección <nombre> de la salida\n"
-" -s --strip-all Borra todos los símbolos y la información\n"
-" de reubicación\n"
-" -g -S -d --strip-debug Borra todos los símbolos y secciones de\n"
-" depuración\n"
-" --strip-unneeded Borra todos los símbolos innecesarios para\n"
-" las reubicaciones\n"
-" --only-keep-debug Borra todo excepto la información de\n"
-" depuración\n"
-" -N --strip-symbol=<nombre> No copia el símbolo <nombre>\n"
-" -K --keep-symbol=<nombre> Sólo copia el símbolo <nombre>\n"
-" -w --wildcard Permite comodines en la comparación de\n"
-" símbolos\n"
-" -x --discard-all Borra todos los símbolos que no son globales\n"
-" -X --discard-locals Borra cualquier símbolo generado por\n"
-" el compilador\n"
-" -v --verbose Enlista todos los ficheros objeto modificados\n"
-" -V --version Muestra el número de versión de este programa\n"
-" -h --help Muestra esta salida\n"
-" --info Muestra los formatos objeto y arquitecturas\n"
-" soportados\n"
-" -o <fichero> Coloca la salida limpia en el <fichero>\n"
-
-#: objcopy.c:568
-#, c-format
-msgid "unrecognized section flag `%s'"
-msgstr "opción de sección `%s' desconocida"
-
-#: objcopy.c:569
-#, c-format
-msgid "supported flags: %s"
-msgstr "opciones con soporte: %s"
-
-#: objcopy.c:646
-#, c-format
-msgid "cannot open '%s': %s"
-msgstr "no se puede abrir '%s': %s"
-
-#: objcopy.c:649 objcopy.c:2722
-#, c-format
-msgid "%s: fread failed"
-msgstr "%s: fread falló"
-
-#: objcopy.c:722
-#, c-format
-msgid "%s:%d: Ignoring rubbish found on this line"
-msgstr "%s:%d: Se ignora la basura encontrada en esta línea"
-
-#: objcopy.c:996
-#, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr "%s: Redefiniciones múltiples del símbolo \"%s\""
-
-#: objcopy.c:1000
-#, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr "%s: El símbolo \"%s\" es objetivo de más de una redefinición"
-
-#: objcopy.c:1028
-#, c-format
-msgid "couldn't open symbol redefinition file %s (error: %s)"
-msgstr "no se puede abrir el fichero de redefinición de símbolos %s (error: %s)"
-
-#: objcopy.c:1106
-#, c-format
-msgid "%s:%d: garbage found at end of line"
-msgstr "%s:%d: se encontró basura al final de la línea"
-
-#: objcopy.c:1109
-#, c-format
-msgid "%s:%d: missing new symbol name"
-msgstr "%s:%d: falta el nombre del símbolo nuevo"
-
-#: objcopy.c:1119
-#, c-format
-msgid "%s:%d: premature end of file"
-msgstr "%s:%d: fin de fichero prematuro"
-
-#: objcopy.c:1145
-#, c-format
-msgid "stat returns negative size for `%s'"
-msgstr "stat devuelve un valor negativo para `%s'"
-
-#: objcopy.c:1157
-#, c-format
-msgid "copy from `%s' [unknown] to `%s' [unknown]\n"
-msgstr "copia de `%s' [desconocido] a `%s' [desconocido]\n"
-
-#: objcopy.c:1212
-msgid "Unable to change endianness of input file(s)"
-msgstr "No se puede cambiar la endianez del (los) fichero(s) de entrada"
-
-#: objcopy.c:1221
-#, c-format
-msgid "copy from `%s' [%s] to `%s' [%s]\n"
-msgstr "copia de `%s' [%s] a `%s' [%s]\n"
-
-#: objcopy.c:1258 objcopy.c:1715
-#, c-format
-msgid "Unable to recognise the format of the input file `%s'"
-msgstr "No se puede reconocer el formato del fichero de entrada `%s'"
-
-#: objcopy.c:1261
-#, c-format
-msgid "Warning: Output file cannot represent architecture `%s'"
-msgstr "Aviso: El fichero de salida no puede representar a la arquitectura `%s'"
-
-#: objcopy.c:1305
-#, c-format
-msgid "can't create section `%s': %s"
-msgstr "no se puede crear la sección `%s' %s"
-
-#: objcopy.c:1356
-msgid "there are no sections to be copied!"
-msgstr "¡no hay secciones para copiar!"
-
-#: objcopy.c:1402
-#, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr "No se puede llenar el espacio después de %s: %s"
-
-#: objcopy.c:1427
-#, c-format
-msgid "Can't add padding to %s: %s"
-msgstr "No se puede agregar relleno a %s: %s"
-
-#: objcopy.c:1594
-#, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr "%s: error al copiar los datos privados BFD: %s"
-
-#: objcopy.c:1605
-msgid "unknown alternate machine code, ignored"
-msgstr "código máquina alternativo desconocido, ignorado"
-
-#: objcopy.c:1635 objcopy.c:1665
-#, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr "no se puede crear el directorio %s para copiar el archivo (error: %s)"
-
-#: objcopy.c:1787
-#, c-format
-msgid "error: the input file '%s' is empty"
-msgstr "error: el fichero de entrada '%s' está vacío"
-
-#: objcopy.c:1889
-#, c-format
-msgid "Multiple renames of section %s"
-msgstr "Renombrado múltiple de la sección %s"
-
-#: objcopy.c:1940
-msgid "private header data"
-msgstr "datos de encabezado privado"
-
-#: objcopy.c:1948
-#, c-format
-msgid "%s: error in %s: %s"
-msgstr "%s: error en %s: %s"
-
-#: objcopy.c:2007
-msgid "making"
-msgstr "haciendo"
-
-#: objcopy.c:2022
-msgid "size"
-msgstr "tamaño"
-
-#: objcopy.c:2036
-msgid "vma"
-msgstr "vma"
-
-#: objcopy.c:2061
-msgid "alignment"
-msgstr "alineación"
-
-#: objcopy.c:2083
-msgid "private data"
-msgstr "datos privados"
-
-#: objcopy.c:2091
-#, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr "%s: sección `%s': error en %s: %s"
-
-#: objcopy.c:2363
-#, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr "%s: no se puede crear la sección de depuración: %s"
-
-#: objcopy.c:2377
-#, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr "%s: no se puede establecer el contenido de la sección de depuración: %s"
-
-#: objcopy.c:2386
-#, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr "%s: se ignora cómo escribir la información de depuración para %s"
-
-#: objcopy.c:2561
-msgid "byte number must be non-negative"
-msgstr "el número de bytes no debe ser negativo"
-
-#: objcopy.c:2571
-msgid "interleave must be positive"
-msgstr "el espacio debe ser positivo"
-
-#: objcopy.c:2591 objcopy.c:2599
-#, c-format
-msgid "%s both copied and removed"
-msgstr "%s copiado y borrado"
-
-#: objcopy.c:2696 objcopy.c:2767 objcopy.c:2867 objcopy.c:2898 objcopy.c:2922
-#: objcopy.c:2926 objcopy.c:2946
-#, c-format
-msgid "bad format for %s"
-msgstr "formato erróneo para %s"
-
-#: objcopy.c:2717
-#, c-format
-msgid "cannot open: %s: %s"
-msgstr "no se puede abrir: %s: %s"
-
-#: objcopy.c:2836
-#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "Aviso: truncando el relleno de espacio de 0x%s a 0x%x"
-
-#: objcopy.c:3000
-msgid "alternate machine code index must be positive"
-msgstr "el índice de código máquina alternativo debe ser positivo"
-
-#: objcopy.c:3058
-msgid "byte number must be less than interleave"
-msgstr "el número de bytes debe ser menor al espacio"
-
-#: objcopy.c:3088
-#, c-format
-msgid "architecture %s unknown"
-msgstr "arquitectura %s desconocida"
-
-#: objcopy.c:3092
-msgid "Warning: input target 'binary' required for binary architecture parameter."
-msgstr "Aviso: se requiere el objetivo de entrada 'binary' para el parámeto binario de arquitectura."
-
-#: objcopy.c:3093
-#, c-format
-msgid " Argument %s ignored"
-msgstr " Se ignora el argumento %s"
-
-#: objcopy.c:3099
-#, c-format
-msgid "warning: could not locate '%s'. System error message: %s"
-msgstr "aviso: no se puede encontrar '%s'. Mensaje de error del sistema: %s"
-
-#: objcopy.c:3141 objcopy.c:3155
-#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr "%s nunca se usa %s%c0x%s"
-
-#: objdump.c:178
-#, c-format
-msgid "Usage: %s <option(s)> <file(s)>\n"
-msgstr "Modo de empleo: %s <opcion(es)> <fichero(s)>\n"
-
-#: objdump.c:179
-#, c-format
-msgid " Display information from object <file(s)>.\n"
-msgstr "Muestra la información de <fichero(s)> objeto.\n"
-
-#: objdump.c:180
-#, c-format
-msgid " At least one of the following switches must be given:\n"
-msgstr "Por lo menos se requiere una de los siguientes opciones:\n"
-
-#: objdump.c:181
-#, c-format
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -e, --debugging-tags Display debug information using ctags style\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -W, --dwarf Display DWARF info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" @<file> Read options from <file>\n"
-" -v, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-" -a, --archive-headers Muestra información de los encabezados del archivo\n"
-" -f, --file-headers Muestra el contenido de todos los encabezados del\n"
-" fichero\n"
-" -p, --private-headers Muestra el contenido de los encabezados del fichero\n"
-" específicos del formato objeto\n"
-" -h, --[section-]headers Muestra el contenido de los encabezados de sección\n"
-" -x, --all-headers Muestra el contenido de todos los encabezados\n"
-" -d, --disassemble Muestra el contenido de ensamblador de las secciones\n"
-" ejecutables\n"
-" -D, --disassemble-all Muestra el contenido de ensamblador de todas las\n"
-" secciones\n"
-" -S, --source Intermezclar código fuente con el desensamblado\n"
-" -s, --full-contents Muestra el contenido completo de todas las secciones\n"
-" requeridas\n"
-" -g, --debugging Muestra la información de depuración en el fichero\n"
-" objeto\n"
-" -e, --debugging-tags Muestra la información de depuración en estilo ctags\n"
-" -G, --stabs Muestra (sin formato) cualquier información de STABS\n"
-" en el fichero\n"
-" -W, --dwarf Muestra la información DWARF en el fichero\n"
-" -t, --syms Muestra el contenido de la(s) tabla(s) de símbolos\n"
-" -T, --dynamic-syms Muestra el contenido de la tabla de símbolos\n"
-" dinámicos\n"
-" -r, --reloc Muestra las entradas de reubicación en el fichero\n"
-" -R, --dynamic-reloc Muestra las entradas de reubicación dinámica en el\n"
-" fichero\n"
-" @<fichero> Lee opciones del <fichero>\n"
-" -v, --version Muestra el número de versión de este programa\n"
-" -i, --info Enlista los formatos objeto y las arquitecturas\n"
-" con soporte\n"
-" -H, --help Muestra esta información\n"
-
-#: objdump.c:206
-#, c-format
-msgid ""
-"\n"
-" The following switches are optional:\n"
-msgstr ""
-"\n"
-" Los siguientes interruptores son opcionales:\n"
-
-#: objdump.c:207
-#, c-format
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -I, --include=DIR Add DIR to search list for source files\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', `gnu',\n"
-" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whose address is >= ADDR\n"
-" --stop-address=ADDR Only process data whose address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-" --special-syms Include special symbols in symbol dumps\n"
-"\n"
-msgstr ""
-" -b, --target=NOMBREBFD Especifica el formato objeto objetivo\n"
-" como NOMBREBFD\n"
-" -m, --architecture=MÁQUINA Especifica la arquitectura objetivo\n"
-" como MÁQUINA\n"
-" -j, --section=NOMBRE Sólo muestra la información de\n"
-" la sección NOMBRE\n"
-" -M, --disassembler-options=OPT Pasa el texto OPT al desensamblador\n"
-" -EB --endian=big Asume el formato big endian al desensamblar\n"
-" -EL --endian=little Asume el formato little endian al desensamblar\n"
-" --file-start-context Incluye el contexto del inicio del fichero\n"
-" (con -S)\n"
-" -I, --include=DIR Agrega el DIRectorio a la lista de búsqueda de\n"
-" ficheros fuente\n"
-" -l, --line-numbers Incluye los números de línea y los nombres de fichero\n"
-" en la salida\n"
-" -C, --demangle[=ESTILO] Decodifica los nombres de símbolo obtenidos/procesados\n"
-" El ESTILO, si se especifica, puede ser `auto', 'gnu',\n"
-" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" o `gnat'\n"
-" -w, --wide Da formato a la salida para más de 80 columnas\n"
-" -z, --disassemble-zeroes No salta los bloques de ceros al desensamblar\n"
-" --start-address=DIR Sólo procesa los datos cuya dirección es\n"
-" >= DIR\n"
-" --stop-address=DIR Sólo procesa los datos cuya dirección es\n"
-" <= DIR\n"
-" --prefix-addresses Muestra las direcciones completas a lo largo\n"
-" del desensamblado\n"
-" --[no-]show-raw-insn Muestra en hexadecimal a lo largo\n"
-" del desensamblado simbólico\n"
-" --adjust-vma=DESPL Agrega el DESPLazamiento a todas las direcciones\n"
-" mostradas de sección\n"
-" --special-syms Incluye símbolos especiales en los volcados de\n"
-" símbolos\n"
-
-#: objdump.c:389
-#, c-format
-msgid "Sections:\n"
-msgstr "Secciones:\n"
-
-#: objdump.c:392 objdump.c:396
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Ind Nombre Tamaño VMA LMA Desp fich Alin"
-
-#: objdump.c:398
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Ind Nombre Tamaño VMA LMA Desp fich Alin"
-
-#: objdump.c:402
-#, c-format
-msgid " Flags"
-msgstr " Opciones"
-
-#: objdump.c:404
-#, c-format
-msgid " Pg"
-msgstr " Pg"
-
-#: objdump.c:447
-#, c-format
-msgid "%s: not a dynamic object"
-msgstr "%s: no es un objeto dinámico"
-
-#: objdump.c:1735
-#, c-format
-msgid "Disassembly of section %s:\n"
-msgstr "Desensamblado de la sección %s:\n"
-
-#: objdump.c:1897
-#, c-format
-msgid "Can't use supplied machine %s"
-msgstr "No se puede utilizar la máquina %s proporcionada"
-
-#: objdump.c:1916
-#, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr "No se puede desensamblar para la arquitectura %s\n"
-
-#: objdump.c:2006
-#, c-format
-msgid ""
-"\n"
-"Can't get contents for section '%s'.\n"
-msgstr ""
-"\n"
-"No se puede obtener el ontenido de la sección '%s'.\n"
-
-#: objdump.c:2143
-#, c-format
-msgid ""
-"No %s section present\n"
-"\n"
-msgstr ""
-"No está presente la sección %s\n"
-"\n"
-
-#: objdump.c:2152
-#, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr "Falló al leer la sección %s de %s: %s"
-
-#: objdump.c:2196
-#, c-format
-msgid ""
-"Contents of %s section:\n"
-"\n"
-msgstr ""
-"Contenido de la sección %s:\n"
-"\n"
-
-#: objdump.c:2323
-#, c-format
-msgid "architecture: %s, "
-msgstr "arquitectura: %s, "
-
-#: objdump.c:2326
-#, c-format
-msgid "flags 0x%08x:\n"
-msgstr "opciones 0x%08x:\n"
-
-#: objdump.c:2340
-#, c-format
-msgid ""
-"\n"
-"start address 0x"
-msgstr ""
-"\n"
-"dirección de inicio 0x"
-
-#: objdump.c:2380
-#, c-format
-msgid "Contents of section %s:\n"
-msgstr "Contenido de la sección %s:\n"
-
-#: objdump.c:2505
-#, c-format
-msgid "no symbols\n"
-msgstr "no hay símbolos\n"
-
-#: objdump.c:2512
-#, c-format
-msgid "no information for symbol number %ld\n"
-msgstr "no hay información para el símbolo número %ld\n"
-
-#: objdump.c:2515
-#, c-format
-msgid "could not determine the type of symbol number %ld\n"
-msgstr "no se puede determinar el tipo del símbolo número %ld\n"
-
-#: objdump.c:2788
-#, c-format
-msgid ""
-"\n"
-"%s: file format %s\n"
-msgstr ""
-"\n"
-"%s: formato del fichero %s\n"
-
-#: objdump.c:2845
-#, c-format
-msgid "%s: printing debugging information failed"
-msgstr "%s: falló al mostrar la información de depuración"
-
-#: objdump.c:2936
-#, c-format
-msgid "In archive %s:\n"
-msgstr "En el fichero %s:\n"
-
-#: objdump.c:3058
-msgid "unrecognized -E option"
-msgstr "opción -E no reconocida"
-
-#: objdump.c:3069
-#, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr "tipo --endian `%s' no reconocido"
-
-#: rdcoff.c:196
-#, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr "parse_coff_type: Código de tipo 0x%x erróneo"
-
-#: rdcoff.c:404 rdcoff.c:509 rdcoff.c:697
-#, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr "bfd_coff_get_syment falló: %s"
-
-#: rdcoff.c:420 rdcoff.c:717
-#, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr "bfd_coff_get_auxent falló: %s"
-
-#: rdcoff.c:784
-#, c-format
-msgid "%ld: .bf without preceding function"
-msgstr "%ld: .bf sin una función precedente"
-
-#: rdcoff.c:834
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr "%ld: .ef inesperado\n"
-
-#: rddbg.c:85
-#, c-format
-msgid "%s: no recognized debugging information"
-msgstr "%s: no se reconoce la información de depuración"
-
-#: rddbg.c:394
-#, c-format
-msgid "Last stabs entries before error:\n"
-msgstr "Últimas entradas stabs antes del error:\n"
-
-#: readelf.c:264
-#, c-format
-msgid "Unable to seek to 0x%lx for %s\n"
-msgstr "No se puede buscar a 0x%lx para %s\n"
-
-#: readelf.c:279
-#, c-format
-msgid "Out of memory allocating 0x%lx bytes for %s\n"
-msgstr "Memoria agotada al asignar 0x%lx bytes para %s\n"
-
-#: readelf.c:289
-#, c-format
-msgid "Unable to read in 0x%lx bytes of %s\n"
-msgstr "No se pueden leer 0x%lx bytes de %s\n"
-
-#: readelf.c:623
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr "No se conocen las reubicaciones en esta arquitectura de máquina\n"
-
-#: readelf.c:643 readelf.c:671 readelf.c:715 readelf.c:743
-msgid "relocs"
-msgstr "reubicaciones"
-
-#: readelf.c:654 readelf.c:682 readelf.c:726 readelf.c:754
-msgid "out of memory parsing relocs"
-msgstr "memoria agotada al decodificar reubicaciones"
-
-#: readelf.c:808
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
-msgstr " Desplaz Info Tipo Val. Símbolo Nombre Símbolo + Adend\n"
-
-#: readelf.c:810
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
-msgstr " Desplaz Info Tipo Val.Símbolo Nom.Símbolo + Adend\n"
-
-#: readelf.c:815
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name\n"
-msgstr " Desplaz Info Tipo Val. Símbolo Nombre Símbolo\n"
-
-#: readelf.c:817
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name\n"
-msgstr " Desplaz Info Tipo Val.Símbolo Nom. Símbolo\n"
-
-#: readelf.c:825
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
-msgstr " Desplaz Info Tipo Valor Símbolo Nombre Símbolo + Adend\n"
-
-#: readelf.c:827
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
-msgstr " Desplaz Info Tipo Val. Símbolo Nom. Símbolo + Adend\n"
-
-#: readelf.c:832
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr " Desplaz Info Tipo Valor Símbolo Nombre Símbolo\n"
-
-#: readelf.c:834
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name\n"
-msgstr " Desplaz Info Tipo Val. Símbolo Nom. Símbolo\n"
-
-#: readelf.c:1127 readelf.c:1129 readelf.c:1238 readelf.c:1240 readelf.c:1249
-#: readelf.c:1251
-#, c-format
-msgid "unrecognized: %-7lx"
-msgstr "no reconocido: %-7lx"
-
-#: readelf.c:1154
-#, c-format
-msgid "<unknown addend: %lx>"
-msgstr "<agregado desconocido: %lx>"
-
-#: readelf.c:1210
-#, c-format
-msgid "<string table index: %3ld>"
-msgstr "<índice de la tabla de cadenas: %3ld>"
-
-#: readelf.c:1212
-#, c-format
-msgid "<corrupt string table index: %3ld>"
-msgstr "<índice de la tabla de cadenas corrupto: %3ld>"
-
-#: readelf.c:1522
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr "Específico del Procesador: %lx"
-
-#: readelf.c:1543
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr "específico del Sistema Operativo: %lx"
-
-#: readelf.c:1547 readelf.c:2349
-#, c-format
-msgid "<unknown>: %lx"
-msgstr "<desconocido>: %lx"
-
-#: readelf.c:1560
-msgid "NONE (None)"
-msgstr "NONE (Ninguno)"
-
-#: readelf.c:1561
-msgid "REL (Relocatable file)"
-msgstr "REL (Fichero reubicable)"
-
-#: readelf.c:1562
-msgid "EXEC (Executable file)"
-msgstr "EXEC (Fichero ejecutable)"
-
-#: readelf.c:1563
-msgid "DYN (Shared object file)"
-msgstr "DYN (Fichero objeto compartido)"
-
-#: readelf.c:1564
-msgid "CORE (Core file)"
-msgstr "CORE (Fichero núcleo)"
-
-#: readelf.c:1568
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr "Específico del Procesado: (%x)"
-
-#: readelf.c:1570
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr "Específico del SO: (%x)"
-
-#: readelf.c:1572 readelf.c:1681 readelf.c:2541
-#, c-format
-msgid "<unknown>: %x"
-msgstr "<desconocido>: %x"
-
-#: readelf.c:1584
-msgid "None"
-msgstr "Ninguno"
-
-#: readelf.c:2186
-msgid "Standalone App"
-msgstr "Aplicación por Sí Sola"
-
-#: readelf.c:2189 readelf.c:2948 readelf.c:2964
-#, c-format
-msgid "<unknown: %x>"
-msgstr "<desconocido: %x>"
-
-#: readelf.c:2586
-#, c-format
-msgid "Usage: readelf <option(s)> elf-file(s)\n"
-msgstr "Modo de empleo: readelf <opcion(es)> fichero(s)-elf\n"
-
-#: readelf.c:2587
-#, c-format
-msgid " Display information about the contents of ELF format files\n"
-msgstr " Muestra información sobre el contenido de los ficheros de formato ELF\n"
-
-#: readelf.c:2588
-#, c-format
-msgid ""
-" Options are:\n"
-" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Display the ELF file header\n"
-" -l --program-headers Display the program headers\n"
-" --segments An alias for --program-headers\n"
-" -S --section-headers Display the sections' header\n"
-" --sections An alias for --section-headers\n"
-" -g --section-groups Display the section groups\n"
-" -t --section-details Display the section details\n"
-" -e --headers Equivalent to: -h -l -S\n"
-" -s --syms Display the symbol table\n"
-" --symbols An alias for --syms\n"
-" -n --notes Display the core notes (if present)\n"
-" -r --relocs Display the relocations (if present)\n"
-" -u --unwind Display the unwind info (if present)\n"
-" -d --dynamic Display the dynamic section (if present)\n"
-" -V --version-info Display the version sections (if present)\n"
-" -A --arch-specific Display architecture specific information (if any).\n"
-" -D --use-dynamic Use the dynamic section info when displaying symbols\n"
-" -x --hex-dump=<number> Dump the contents of section <number>\n"
-" -w[liaprmfFsoR] or\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n"
-" Display the contents of DWARF2 debug sections\n"
-msgstr ""
-" Las opciones son:\n"
-" -a --all Equivalente a: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Muestra el encabezado del fichero ELF\n"
-" -l --program-headers Muestra los encabezados del programa\n"
-" --segments Un alias para --program-headers\n"
-" -S --section-headers Muestra el encabezado de las secciones\n"
-" --sections Un alias para --section-headers\n"
-" -g --section-groups Muestra los grupos de sección\n"
-" -t --section-details Muestra los detalles de sección\n"
-" -e --headers Equivalente a: -h -l -S\n"
-" -s --syms Muestra la tabla de símbolos\n"
-" --symbols Un alias para --syms\n"
-" -n --notes Muestra las notas de núcleo (si están presentes)\n"
-" -r --relocs Muestra las reubicaciones (si están presentes)\n"
-" -u --unwind Muestra la información de desenredo (si está presente)\n"
-" -d --dynamic Muestra el segmento dinámico (si está presente)\n"
-" -V --version-info Muestra las secciones de versión (si están presentes)\n"
-" -A --arch-specific Muestra la información específica de la arquitectura\n"
-" (si hay alguna).\n"
-" -D --use-dynamic Usa la información de la sección dinámica cuando\n"
-" muestra símbolos\n"
-" -x --hex-dump=<número> Vuelca el contenido de la sección <número>\n"
-" -w[liaprmfFsoR] ó\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n"
-" Muestra el contenido de las secciones de depuración\n"
-" DWARF2\n"
-
-#: readelf.c:2612
-#, c-format
-msgid ""
-" -i --instruction-dump=<number>\n"
-" Disassemble the contents of section <number>\n"
-msgstr ""
-" -i --instruction-dump=<número>\n"
-" Desensambla el contenido de la sección <número>\n"
-
-#: readelf.c:2616
-#, c-format
-msgid ""
-" -I --histogram Display histogram of bucket list lengths\n"
-" -W --wide Allow output width to exceed 80 characters\n"
-" @<file> Read options from <file>\n"
-" -H --help Display this information\n"
-" -v --version Display the version number of readelf\n"
-msgstr ""
-" -I --histogram Muestra un histograma de longitudes de la lista de\n"
-" cubetas\n"
-" -W --wide Permite que el ancho de la salida exceda 80 caracteres\n"
-" @<fichero> Lee opciones del <fichero>\n"
-" -H --help Muestra esta información\n"
-" -v --version Muestra el número de versión de readelf\n"
-
-#: readelf.c:2642 readelf.c:9180
-msgid "Out of memory allocating dump request table."
-msgstr "Memoria agotada al asignar la tabla de petición de volcado."
-
-#: readelf.c:2816 readelf.c:2884
-#, c-format
-msgid "Unrecognized debug option '%s'\n"
-msgstr "Opción de depuración '%s' no reconocida\n"
-
-#: readelf.c:2918
-#, c-format
-msgid "Invalid option '-%c'\n"
-msgstr "Opción '-%c' inválida\n"
-
-#: readelf.c:2932
-msgid "Nothing to do.\n"
-msgstr "Nada por hacer.\n"
-
-#: readelf.c:2944 readelf.c:2960 readelf.c:6169
-msgid "none"
-msgstr "ninguno"
-
-#: readelf.c:2961
-msgid "2's complement, little endian"
-msgstr "complemento a 2, little endian"
-
-#: readelf.c:2962
-msgid "2's complement, big endian"
-msgstr "complemento a 2, big endian"
-
-#: readelf.c:2980
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr "No es un fichero ELF - tiene los bytes mágicos erróneos en el inicio\n"
-
-#: readelf.c:2988
-#, c-format
-msgid "ELF Header:\n"
-msgstr "Encabezado ELF:\n"
-
-#: readelf.c:2989
-#, c-format
-msgid " Magic: "
-msgstr " Mágico: "
-
-#: readelf.c:2993
-#, c-format
-msgid " Class: %s\n"
-msgstr " Clase: %s\n"
-
-#: readelf.c:2995
-#, c-format
-msgid " Data: %s\n"
-msgstr " Datos: %s\n"
-
-#: readelf.c:2997
-#, c-format
-msgid " Version: %d %s\n"
-msgstr " Versión: %d %s\n"
-
-#: readelf.c:3004
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr " OS/ABI: %s\n"
-
-#: readelf.c:3006
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr " Versión ABI: %d\n"
-
-#: readelf.c:3008
-#, c-format
-msgid " Type: %s\n"
-msgstr " Tipo: %s\n"
-
-#: readelf.c:3010
-#, c-format
-msgid " Machine: %s\n"
-msgstr " Máquina: %s\n"
-
-#: readelf.c:3012
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr " Versión: 0x%lx\n"
-
-#: readelf.c:3015
-#, c-format
-msgid " Entry point address: "
-msgstr " Dirección del punto de entrada: "
-
-#: readelf.c:3017
-#, c-format
-msgid ""
-"\n"
-" Start of program headers: "
-msgstr ""
-"\n"
-" Inicio de encabezados de programa: "
-
-#: readelf.c:3019
-#, c-format
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr ""
-" (bytes en el fichero)\n"
-" Inicio de encabezados de sección: "
-
-#: readelf.c:3021
-#, c-format
-msgid " (bytes into file)\n"
-msgstr " (bytes en el fichero)\n"
-
-#: readelf.c:3023
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr " Opciones: 0x%lx%s\n"
-
-#: readelf.c:3026
-#, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr " Tamaño de este encabezado: %ld (bytes)\n"
-
-#: readelf.c:3028
-#, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr " Tamaño de encabezados de programa: %ld (bytes)\n"
-
-#: readelf.c:3030
-#, c-format
-msgid " Number of program headers: %ld\n"
-msgstr " Número de encabezados de programa: %ld\n"
-
-#: readelf.c:3032
-#, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr " Tamaño de encabezados de sección: %ld (bytes)\n"
-
-#: readelf.c:3034
-#, c-format
-msgid " Number of section headers: %ld"
-msgstr " Número de encabezados de sección: %ld"
-
-#: readelf.c:3039
-#, c-format
-msgid " Section header string table index: %ld"
-msgstr " Índice de tabla de cadenas de sección de encabezado: %ld"
-
-#: readelf.c:3070 readelf.c:3103
-msgid "program headers"
-msgstr "encabezados de programa"
-
-#: readelf.c:3141 readelf.c:3440 readelf.c:3481 readelf.c:3540 readelf.c:3603
-#: readelf.c:4208 readelf.c:4232 readelf.c:5510 readelf.c:5554 readelf.c:5752
-#: readelf.c:6734 readelf.c:6748 readelf.c:8564 readelf.c:8972 readelf.c:9039
-msgid "Out of memory\n"
-msgstr "Memoria agotada\n"
-
-#: readelf.c:3168
-#, c-format
-msgid ""
-"\n"
-"There are no program headers in this file.\n"
-msgstr ""
-"\n"
-"No hay encabezados de programa en este fichero.\n"
-
-#: readelf.c:3174
-#, c-format
-msgid ""
-"\n"
-"Elf file type is %s\n"
-msgstr ""
-"\n"
-"El tipo del fichero elf es %s\n"
-
-#: readelf.c:3175
-#, c-format
-msgid "Entry point "
-msgstr "Punto de entrada "
-
-#: readelf.c:3177
-#, c-format
-msgid ""
-"\n"
-"There are %d program headers, starting at offset "
-msgstr ""
-"\n"
-"Hay %d encabezados de programa, empezando en el desplazamiento "
-
-#: readelf.c:3189 readelf.c:3191
-#, c-format
-msgid ""
-"\n"
-"Program Headers:\n"
-msgstr ""
-"\n"
-"Encabezados de Programa:\n"
-
-#: readelf.c:3195
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Tipo Desplaz DirVirt DirFísica TamFich TamMem Opt Alin\n"
-
-#: readelf.c:3198
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Tipo Desplaz DirVirt DirFísica TamFich TamMem Opt Alin\n"
-
-#: readelf.c:3202
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr " Tipo Desplazamiento DirVirtual DirFísica\n"
-
-#: readelf.c:3204
-#, c-format
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr " TamFichero TamMemoria Opts Alineación\n"
-
-#: readelf.c:3297
-msgid "more than one dynamic segment\n"
-msgstr "más de un segmento dinámico\n"
-
-#: readelf.c:3308
-msgid "no .dynamic section in the dynamic segment"
-msgstr "no hay una sección .dynamic en el segmento dinámico"
-
-#: readelf.c:3317
-msgid "the .dynamic section is not contained within the dynamic segment"
-msgstr "la sección .dynamic no está contenida en el segmento dinámico"
-
-#: readelf.c:3319
-msgid "the .dynamic section is not the first section in the dynamic segment."
-msgstr "la sección .dynamic no es la primera sección en el segmento dinámico."
-
-#: readelf.c:3333
-msgid "Unable to find program interpreter name\n"
-msgstr "No se puede encontrar el nombre del programa intérprete\n"
-
-#: readelf.c:3340
-#, c-format
-msgid ""
-"\n"
-" [Requesting program interpreter: %s]"
-msgstr ""
-"\n"
-" [Solicitando el programa intérprete: %s]"
-
-#: readelf.c:3352
-#, c-format
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-msgstr ""
-"\n"
-" mapeo de Sección a Segmento:\n"
-
-#: readelf.c:3353
-#, c-format
-msgid " Segment Sections...\n"
-msgstr " Segmento Secciones...\n"
-
-#: readelf.c:3402
-msgid "Cannot interpret virtual addresses without program headers.\n"
-msgstr "No se pueden interpretar direcciones virtuales sin encabezados de programa.\n"
-
-#: readelf.c:3418
-#, c-format
-msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
-msgstr "La dirección virtual 0x%lx no está ubicada en ningún segmento PT_LOAD.\n"
-
-#: readelf.c:3432 readelf.c:3473
-msgid "section headers"
-msgstr "encabezados de sección"
-
-#: readelf.c:3517 readelf.c:3580
-msgid "symbols"
-msgstr "símbolos"
-
-# ¿Cómo se traduce esto? cfuga
-#: readelf.c:3527 readelf.c:3590
-msgid "symtab shndx"
-msgstr "symtab shndx"
-
-#: readelf.c:3817 readelf.c:4192
-#, c-format
-msgid ""
-"\n"
-"There are no sections in this file.\n"
-msgstr ""
-"\n"
-"No hay secciones en este fichero.\n"
-
-#: readelf.c:3823
-#, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr "Hay %d encabezados de sección, comenzando en el desplazamiento: 0x%lx:\n"
-
-#: readelf.c:3842 readelf.c:4309 readelf.c:4544 readelf.c:4852 readelf.c:5267
-#: readelf.c:6906
-msgid "string table"
-msgstr "tabla de cadenas"
-
-#: readelf.c:3881
-#, c-format
-msgid "Section %d has invalid sh_entsize %lx (expected %lx)\n"
-msgstr "La sección %d tiene un sh_entsize %lx inválido (se esperaba %lx)\n"
-
-#: readelf.c:3901
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr "El fichero contiene múltiples tablas dinámicas de símbolos\n"
-
-#: readelf.c:3914
-msgid "File contains multiple dynamic string tables\n"
-msgstr "El fichero contiene múltiples tablas dinámicas de cadenas\n"
-
-#: readelf.c:3919
-msgid "dynamic strings"
-msgstr "cadenas dinámicas"
-
-#: readelf.c:3926
-msgid "File contains multiple symtab shndx tables\n"
-msgstr "El fichero contiene múltiples tablas symtab shndx\n"
-
-#: readelf.c:3973
-#, c-format
-msgid ""
-"\n"
-"Section Headers:\n"
-msgstr ""
-"\n"
-"Encabezados de Sección:\n"
-
-#: readelf.c:3975
-#, c-format
-msgid ""
-"\n"
-"Section Header:\n"
-msgstr ""
-"\n"
-"Encabezados de Sección:\n"
-
-#: readelf.c:3981 readelf.c:3992 readelf.c:4003
-#, c-format
-msgid " [Nr] Name\n"
-msgstr " [Nr] Nombre\n"
-
-#: readelf.c:3982
-#, c-format
-msgid " Type Addr Off Size ES Lk Inf Al\n"
-msgstr " Tipo Direc Desp Tam ES En Inf Al\n"
-
-#: readelf.c:3986
-#, c-format
-msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] Nombre Tipo Direc Desp Tam ES Opt En Inf Al\n"
-
-#: readelf.c:3993
-#, c-format
-msgid " Type Address Off Size ES Lk Inf Al\n"
-msgstr " Tipo Direc Desp Tam ES En Inf Al\n"
-
-#: readelf.c:3997
-#, c-format
-msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] Nombre Tipo Direc Desp Tam ES Opt En Inf Al\n"
-
-#: readelf.c:4004
-#, c-format
-msgid " Type Address Offset Link\n"
-msgstr " Tipo Dirección Despl Enl\n"
-
-#: readelf.c:4005
-#, c-format
-msgid " Size EntSize Info Align\n"
-msgstr " Tamaño TamEnt Info Alin\n"
-
-#: readelf.c:4009
-#, c-format
-msgid " [Nr] Name Type Address Offset\n"
-msgstr " [Nr] Nombre Tipo Dirección Despl\n"
-
-#: readelf.c:4010
-#, c-format
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr " Tamaño TamEnt Opts Enl Info Alin\n"
-
-#: readelf.c:4015
-#, c-format
-msgid " Flags\n"
-msgstr " Opciones\n"
-
-#: readelf.c:4150
-#, c-format
-msgid ""
-"Key to Flags:\n"
-" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-" I (info), L (link order), G (group), x (unknown)\n"
-" O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr ""
-"Clave para Opciones:\n"
-" W (escribir), A (asignar), X (ejecutar), M (mezclar), S (cadenas)\n"
-" I (info), L (orden enlazado), G (grupo), x (desconocido)\n"
-" O (se requiere procesamiento extra del SO) o (específico del SO)\n"
-" p (específico del procesador)\n"
-
-#: readelf.c:4168
-#, c-format
-msgid "[<unknown>: 0x%x]"
-msgstr "[<desconocido>: 0x%x]"
-
-#: readelf.c:4199
-msgid "Section headers are not available!\n"
-msgstr "¡Los encabezados de sección no están disponibles!\n"
-
-#: readelf.c:4223
-#, c-format
-msgid ""
-"\n"
-"There are no section groups in this file.\n"
-msgstr ""
-"\n"
-"No hay grupos de sección en este fichero.\n"
-
-#: readelf.c:4259
-#, c-format
-msgid "Bad sh_link in group section `%s'\n"
-msgstr "sh_link erróneo en la sección de grupo `%s'\n"
-
-#: readelf.c:4278
-#, c-format
-msgid "Bad sh_info in group section `%s'\n"
-msgstr "sh_info erróneo en la sección de grupo `%s'\n"
-
-#: readelf.c:4317 readelf.c:7243
-msgid "section data"
-msgstr "datos de sección"
-
-#: readelf.c:4329
-#, c-format
-msgid " [Index] Name\n"
-msgstr " [Índice] Nombre\n"
-
-#: readelf.c:4343
-#, c-format
-msgid "section [%5u] in group section [%5u] > maximum section [%5u]\n"
-msgstr "la sección [%5u] en la sección de grupo [%5u] > máximo de sección [%5u]\n"
-
-#: readelf.c:4349
-#, c-format
-msgid "invalid section [%5u] in group section [%5u]\n"
-msgstr "sección inválida [%5u] en la sección de grupo [%5u]\n"
-
-#: readelf.c:4359
-#, c-format
-msgid "section [%5u] in group section [%5u] already in group section [%5u]\n"
-msgstr "la sección [%5u] en la sección de grupo [%5u] ya está en la sección de grupo [%5u]\n"
-
-#: readelf.c:4372
-#, c-format
-msgid "section 0 in group section [%5u]\n"
-msgstr "sección 0 en la sección de grupo [%5u]\n"
-
-#: readelf.c:4468
-#, c-format
-msgid ""
-"\n"
-"'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr ""
-"\n"
-"'%s' la sección de reubicación en el desplazamiento 0x%lx contiene %ld bytes:\n"
-
-#: readelf.c:4480
-#, c-format
-msgid ""
-"\n"
-"There are no dynamic relocations in this file.\n"
-msgstr ""
-"\n"
-"No hay reubicaciones dinámicas en este fichero.\n"
-
-#: readelf.c:4504
-#, c-format
-msgid ""
-"\n"
-"Relocation section "
-msgstr ""
-"\n"
-"La sección de reubicación "
-
-#: readelf.c:4509 readelf.c:4928 readelf.c:4942 readelf.c:5282
-#, c-format
-msgid "'%s'"
-msgstr "'%s'"
-
-#: readelf.c:4511 readelf.c:4944 readelf.c:5284
-#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr " en el desplazamiento 0x%lx contiene %lu entradas:\n"
-
-#: readelf.c:4563
-#, c-format
-msgid ""
-"\n"
-"There are no relocations in this file.\n"
-msgstr ""
-"\n"
-"No hay reubicaciones en este fichero.\n"
-
-#: readelf.c:4742 readelf.c:5124
-msgid "unwind table"
-msgstr "tabla desenredada"
-
-#: readelf.c:4801 readelf.c:5214
-#, c-format
-msgid "Skipping unexpected relocation type %s\n"
-msgstr "Saltando el tipo de reubicación %s inesperado\n"
-
-#: readelf.c:4860 readelf.c:5275 readelf.c:5326
-#, c-format
-msgid ""
-"\n"
-"There are no unwind sections in this file.\n"
-msgstr ""
-"\n"
-"No hay secciones de desenredo en este fichero.\n"
-
-#: readelf.c:4923
-#, c-format
-msgid ""
-"\n"
-"Could not find unwind info section for "
-msgstr ""
-"\n"
-"No se puede encontrar la sección de información de desenredo para "
-
-#: readelf.c:4935
-msgid "unwind info"
-msgstr "información de desenredo"
-
-#: readelf.c:4937 readelf.c:5281
-#, c-format
-msgid ""
-"\n"
-"Unwind section "
-msgstr ""
-"\n"
-"Sección de desenredo "
-
-#: readelf.c:5491 readelf.c:5535
-msgid "dynamic section"
-msgstr "sección dinámica"
-
-#: readelf.c:5612
-#, c-format
-msgid ""
-"\n"
-"There is no dynamic section in this file.\n"
-msgstr ""
-"\n"
-"No hay sección dinámica en este fichero.\n"
-
-#: readelf.c:5650
-msgid "Unable to seek to end of file!"
-msgstr "¡No se puede alcanzar el final del fichero!"
-
-#: readelf.c:5663
-msgid "Unable to determine the number of symbols to load\n"
-msgstr "No se puede determinar el número de símbolos a cargar\n"
-
-#: readelf.c:5698
-msgid "Unable to seek to end of file\n"
-msgstr "No se puede alcanzar el final del fichero\n"
-
-#: readelf.c:5705
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr "No se puede determinar la longitud de la tabla dinámica de cadenas\n"
-
-#: readelf.c:5710
-msgid "dynamic string table"
-msgstr "tabla de cadena dinámicas"
-
-#: readelf.c:5745
-msgid "symbol information"
-msgstr "información del símbolo"
-
-#: readelf.c:5770
-#, c-format
-msgid ""
-"\n"
-"Dynamic section at offset 0x%lx contains %u entries:\n"
-msgstr ""
-"\n"
-"La sección dinámica en el desplazamiento 0x%lx contiene %u entradas:\n"
-
-#: readelf.c:5773
-#, c-format
-msgid " Tag Type Name/Value\n"
-msgstr " Marca Tipo Nombre/Valor\n"
-
-#: readelf.c:5809
-#, c-format
-msgid "Auxiliary library"
-msgstr "Biblioteca auxiliar"
-
-#: readelf.c:5813
-#, c-format
-msgid "Filter library"
-msgstr "Biblioteca de filtro"
-
-#: readelf.c:5817
-#, c-format
-msgid "Configuration file"
-msgstr "Fichero de configuración"
-
-#: readelf.c:5821
-#, c-format
-msgid "Dependency audit library"
-msgstr "Biblioteca de auditoría de dependencias"
-
-#: readelf.c:5825
-#, c-format
-msgid "Audit library"
-msgstr "Biblioteca de auditoría"
-
-#: readelf.c:5843 readelf.c:5871 readelf.c:5899
-#, c-format
-msgid "Flags:"
-msgstr "Opciones:"
-
-#: readelf.c:5846 readelf.c:5874 readelf.c:5901
-#, c-format
-msgid " None\n"
-msgstr " Ninguna\n"
-
-#: readelf.c:6022
-#, c-format
-msgid "Shared library: [%s]"
-msgstr "Biblioteca compartida: [%s]"
-
-#: readelf.c:6025
-#, c-format
-msgid " program interpreter"
-msgstr " programa intérprete"
-
-#: readelf.c:6029
-#, c-format
-msgid "Library soname: [%s]"
-msgstr "Nombre-so de la biblioteca: [%s]"
-
-#: readelf.c:6033
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr "Rpath de la biblioteca: [%s]"
-
-#: readelf.c:6037
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr "Ruta de ejecución de la biblioteca: [%s]"
-
-#: readelf.c:6100
-#, c-format
-msgid "Not needed object: [%s]\n"
-msgstr "Objeto innecesario: [%s]\n"
-
-#: readelf.c:6214
-#, c-format
-msgid ""
-"\n"
-"Version definition section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"La sección de definición de la versión '%s' contiene %ld entradas:\n"
-
-#: readelf.c:6217
-#, c-format
-msgid " Addr: 0x"
-msgstr " Dir: 0x"
-
-#: readelf.c:6219 readelf.c:6426
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr " Despl: %#08lx Enl: %lx (%s)\n"
-
-#: readelf.c:6228
-msgid "version definition section"
-msgstr "sección de definición de versión"
-
-#: readelf.c:6254
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr " %#06x: Rev: %d Opts: %s"
-
-#: readelf.c:6257
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr " Ind: %d Cnt: %d "
-
-#: readelf.c:6268
-#, c-format
-msgid "Name: %s\n"
-msgstr "Nombre: %s\n"
-
-#: readelf.c:6270
-#, c-format
-msgid "Name index: %ld\n"
-msgstr "Índice de nombres: %ld\n"
-
-#: readelf.c:6285
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr " %#06x: Padre %d: %s\n"
-
-#: readelf.c:6288
-#, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr " %#06x: Padre %d, índice de nombres: %ld\n"
-
-#: readelf.c:6307
-#, c-format
-msgid ""
-"\n"
-"Version needs section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"La sección de requerimientos de versión '%s' contiene %ld entradas:\n"
-
-#: readelf.c:6310
-#, c-format
-msgid " Addr: 0x"
-msgstr " Dir: 0x"
-
-#: readelf.c:6312
-#, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr " Despl: %#08lx Enlace a sección: %ld (%s)\n"
-
-#: readelf.c:6321
-msgid "version need section"
-msgstr "sección de versiones necesarias"
-
-#: readelf.c:6343
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr " %#06x: Versión: %d"
-
-#: readelf.c:6346
-#, c-format
-msgid " File: %s"
-msgstr " Fichero: %s"
-
-#: readelf.c:6348
-#, c-format
-msgid " File: %lx"
-msgstr " Fichero: %lx"
-
-#: readelf.c:6350
-#, c-format
-msgid " Cnt: %d\n"
-msgstr " Cnt: %d\n"
-
-#: readelf.c:6368
-#, c-format
-msgid " %#06x: Name: %s"
-msgstr " %#06x: Nombre: %s"
-
-#: readelf.c:6371
-#, c-format
-msgid " %#06x: Name index: %lx"
-msgstr " %#06x: Índice de nombres: %lx"
-
-#: readelf.c:6374
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr " Opts: %s Versión: %d\n"
-
-#: readelf.c:6417
-msgid "version string table"
-msgstr "versión de tabla de cadenas"
-
-#: readelf.c:6421
-#, c-format
-msgid ""
-"\n"
-"Version symbols section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"La sección de símbolos de versión '%s' contiene %d entradas:\n"
-
-#: readelf.c:6424
-#, c-format
-msgid " Addr: "
-msgstr " Dir: "
-
-#: readelf.c:6434
-msgid "version symbol data"
-msgstr "datos de símbolos de versión"
-
-#: readelf.c:6461
-msgid " 0 (*local*) "
-msgstr " 0 (*local*) "
-
-#: readelf.c:6465
-msgid " 1 (*global*) "
-msgstr " 1 (*global*) "
-
-#: readelf.c:6503 readelf.c:6969
-msgid "version need"
-msgstr "la versión necesita"
-
-#: readelf.c:6513
-msgid "version need aux (2)"
-msgstr "la versión necesita aux (2)"
-
-#: readelf.c:6555 readelf.c:7034
-msgid "version def"
-msgstr "versión definida"
-
-#: readelf.c:6575 readelf.c:7049
-msgid "version def aux"
-msgstr "versión definida auxiliar"
-
-#: readelf.c:6606
-#, c-format
-msgid ""
-"\n"
-"No version information found in this file.\n"
-msgstr ""
-"\n"
-"No se encontró información de versión en este fichero.\n"
-
-#: readelf.c:6740
-msgid "Unable to read in dynamic data\n"
-msgstr "No se pueden leer los datos dinámicos\n"
-
-#: readelf.c:6793
-msgid "Unable to seek to start of dynamic information"
-msgstr "No se puede encontrar el inicio de la información dinámica"
-
-#: readelf.c:6799
-msgid "Failed to read in number of buckets\n"
-msgstr "Falló la lectura en el número de cubos\n"
-
-#: readelf.c:6805
-msgid "Failed to read in number of chains\n"
-msgstr "Falló la lectura en el número de cadenas\n"
-
-#: readelf.c:6825
-#, c-format
-msgid ""
-"\n"
-"Symbol table for image:\n"
-msgstr ""
-"\n"
-"Tabla de símbolos por imagen:\n"
-
-#: readelf.c:6827
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Num Cub: Valor Tamaño Tipo Uni Vis Nombre Ind\n"
-
-#: readelf.c:6829
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Num Cub: Valor Tamaño Typo Uni Vis Nombre Ind\n"
-
-#: readelf.c:6882
-#, c-format
-msgid ""
-"\n"
-"Symbol table '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"La tabla de símbolos '%s' contiene %lu entradas:\n"
-
-#: readelf.c:6886
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Num: Valor Tam Tipo Unión Vis Nombre Ind\n"
-
-#: readelf.c:6888
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Num: Valor Tam Tipo Unión Vis Nombre Ind\n"
-
-#: readelf.c:6939
-msgid "version data"
-msgstr "datos de versión"
-
-#: readelf.c:6982
-msgid "version need aux (3)"
-msgstr "la versión necesita aux (3)"
-
-#: readelf.c:7009
-msgid "bad dynamic symbol"
-msgstr "símbolo dinámico erróneo"
-
-#: readelf.c:7073
-#, c-format
-msgid ""
-"\n"
-"Dynamic symbol information is not available for displaying symbols.\n"
-msgstr ""
-"\n"
-"La información de símbolos dinámicos no está disponible para mostrar los símbolos.\n"
-
-#: readelf.c:7085
-#, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length (total of %lu buckets):\n"
-msgstr ""
-"\n"
-"Histograma para la longitud de lista de cubos (total de %lu cubos):\n"
-
-#: readelf.c:7087
-#, c-format
-msgid " Length Number %% of total Coverage\n"
-msgstr " Long Número %% del total Cobertura\n"
-
-#: readelf.c:7092 readelf.c:7108 readelf.c:8031 readelf.c:8223
-msgid "Out of memory"
-msgstr "Memoria agotada"
-
-#: readelf.c:7157
-#, c-format
-msgid ""
-"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr ""
-"\n"
-"El segmento de información dinámica en el desplazamiento 0x%lx contiene %d entradas:\n"
-
-#: readelf.c:7160
-#, c-format
-msgid " Num: Name BoundTo Flags\n"
-msgstr " Num: Nombre EnlaceA Opts\n"
-
-#: readelf.c:7212
-#, c-format
-msgid ""
-"\n"
-"Assembly dump of section %s\n"
-msgstr ""
-"\n"
-"Volcado ensamblador de la sección %s\n"
-
-#: readelf.c:7233
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no data to dump.\n"
-msgstr ""
-"\n"
-"La sección '%s' no tiene datos para volcar.\n"
-
-#: readelf.c:7238
-#, c-format
-msgid ""
-"\n"
-"Hex dump of section '%s':\n"
-msgstr ""
-"\n"
-"Volcado hexadecimal de la sección '%s':\n"
-
-#: readelf.c:7359
-#, c-format
-msgid "skipping invalid relocation offset 0x%lx in section %s\n"
-msgstr "saltando el desplazamiento de reubicación inválido 0x%lx en la sección%s\n"
-
-#: readelf.c:7376
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela%s\n"
-msgstr "saltando el tipo de símbolo %s inesperado en la reubicación en la sección .rela.%s\n"
-
-#: readelf.c:7402
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela.%s\n"
-msgstr "saltando el tipo de símbolo %s inesperado en la reubicación en la sección .rela.%s\n"
-
-#: readelf.c:7435
-#, c-format
-msgid "%s section data"
-msgstr "datos de sección %s"
-
-#: readelf.c:7472
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no debugging data.\n"
-msgstr ""
-"\n"
-"La sección '%s' no tiene datos de depuración.\n"
-
-#: readelf.c:7498
-#, c-format
-msgid "Unrecognized debug section: %s\n"
-msgstr "Sección de depuración no reconocida: %s\n"
-
-#: readelf.c:7533
-#, c-format
-msgid "Section %d was not dumped because it does not exist!\n"
-msgstr "¡La sección %d no se volcó porque no existe!\n"
-
-#: readelf.c:7791
-msgid "attributes"
-msgstr "atributos"
-
-#: readelf.c:7809
-#, c-format
-msgid "ERROR: Bad section length (%d > %d)\n"
-msgstr "ERROR: Longitud de sección errónea (%d > %d)\n"
-
-#: readelf.c:7830
-#, c-format
-msgid "ERROR: Bad subsection length (%d > %d)\n"
-msgstr "ERROR: Longitud de subsección errónea (%d > %d)\n"
-
-#: readelf.c:7880
-#, c-format
-msgid "Unknown format '%c'\n"
-msgstr "Formato '%c' desconocido\n"
-
-#: readelf.c:7936 readelf.c:8304
-msgid "liblist"
-msgstr "lista de bibliotecas"
-
-#: readelf.c:8025
-msgid "options"
-msgstr "opciones"
-
-#: readelf.c:8055
-#, c-format
-msgid ""
-"\n"
-"Section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"La sección '%s' contiene %d entradas:\n"
-
-#: readelf.c:8216
-msgid "conflict list found without a dynamic symbol table"
-msgstr "se encontró una lista de conflictos sin una tabla de símbolos dinámicos"
-
-#: readelf.c:8232 readelf.c:8246
-msgid "conflict"
-msgstr "tiene conflictos con"
-
-#: readelf.c:8256
-#, c-format
-msgid ""
-"\n"
-"Section '.conflict' contains %lu entries:\n"
-msgstr ""
-"\n"
-"La sección '.conflict' contiene %lu entradas:\n"
-
-#: readelf.c:8258
-msgid " Num: Index Value Name"
-msgstr " Num: Índice Valor Nombre"
-
-#: readelf.c:8311
-msgid "liblist string table"
-msgstr "tabla de cadenas liblist"
-
-#: readelf.c:8321
-#, c-format
-msgid ""
-"\n"
-"Library list section '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"La sección de lista de bibliotecas '%s' contiene %lu entradas:\n"
-
-#: readelf.c:8374
-msgid "NT_AUXV (auxiliary vector)"
-msgstr "NT_AUXV (vector auxiliar)"
-
-#: readelf.c:8376
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr "NT_PRSTATUS (estructura prstatus)"
-
-#: readelf.c:8378
-msgid "NT_FPREGSET (floating point registers)"
-msgstr "NT_FPREGSET (registros de coma flotante)"
-
-#: readelf.c:8380
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr "NT_PRPSINFO (estructura prpsinfo)"
-
-#: readelf.c:8382
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr "NT_TASKSTRUCT (estructura task)"
-
-#: readelf.c:8384
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr "NT_PRXFPREG (estructura user_xfpregs)"
-
-#: readelf.c:8386
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr "NT_PSTATUS (estructura pstatus)"
-
-#: readelf.c:8388
-msgid "NT_FPREGS (floating point registers)"
-msgstr "NT_FPREGS (registros de coma flotante)"
-
-#: readelf.c:8390
-msgid "NT_PSINFO (psinfo structure)"
-msgstr "NT_PSINFO (estructura psinfo)"
-
-#: readelf.c:8392
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr "NT_LWPSTATUS (estructura lwpstatus_t)"
-
-#: readelf.c:8394
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr "NT_LWPSINFO (estructura lwpsinfo_t)"
-
-#: readelf.c:8396
-msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
-msgstr "NT_WIN32PSTATUS (estructura win32_pstatus)"
-
-#: readelf.c:8404
-msgid "NT_VERSION (version)"
-msgstr "NT_VERSION (versión)"
-
-#: readelf.c:8406
-msgid "NT_ARCH (architecture)"
-msgstr "NT_ARCH (arquitectura)"
-
-#: readelf.c:8411 readelf.c:8433
-#, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr "Tipo de nota desconocido: (0x%08x)"
-
-#. NetBSD core "procinfo" structure.
-#: readelf.c:8423
-msgid "NetBSD procinfo structure"
-msgstr "estructura procinfo de NetBSD"
-
-#: readelf.c:8450 readelf.c:8464
-msgid "PT_GETREGS (reg structure)"
-msgstr "PT_GETREGS (estructura reg)"
-
-#: readelf.c:8452 readelf.c:8466
-msgid "PT_GETFPREGS (fpreg structure)"
-msgstr "PT_GETFPREGS (estructura fpreg)"
-
-#: readelf.c:8472
-#, c-format
-msgid "PT_FIRSTMACH+%d"
-msgstr "PT_FIRSTMACH+%d"
-
-#: readelf.c:8518
-msgid "notes"
-msgstr "notas"
-
-#: readelf.c:8524
-#, c-format
-msgid ""
-"\n"
-"Notes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr ""
-"\n"
-"Notas en el desplazamiento 0x%08lx con longitud 0x%08lx:\n"
-
-#: readelf.c:8526
-#, c-format
-msgid " Owner\t\tData size\tDescription\n"
-msgstr " Prop\t\tTamaño datos\tDescripción\n"
-
-#: readelf.c:8545
-#, c-format
-msgid "corrupt note found at offset %lx into core notes\n"
-msgstr "se encontró una nota corrupta en el desplazamiento %lx en las notas de núcleo\n"
-
-#: readelf.c:8547
-#, c-format
-msgid " type: %lx, namesize: %08lx, descsize: %08lx\n"
-msgstr " tipo: %lx, tamañonombre: %08lx, tamañodesc: %08lx\n"
-
-#: readelf.c:8645
-#, c-format
-msgid "No note segments present in the core file.\n"
-msgstr "No hay segmentos de notas presentes el el fichero core.\n"
-
-#: readelf.c:8726
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr ""
-"Esta instancia de readelf ha sido construida sin soporte para un\n"
-"tipo de datos de 64 bit y por eso no puede leer ficheros ELF de 64 bit.\n"
-
-#: readelf.c:8775 readelf.c:9119
-#, c-format
-msgid "%s: Failed to read file header\n"
-msgstr "%s: Falló al leer el encabezado del fichero\n"
-
-#: readelf.c:8788
-#, c-format
-msgid ""
-"\n"
-"File: %s\n"
-msgstr ""
-"\n"
-"Fichero: %s\n"
-
-#: readelf.c:8936 readelf.c:8957 readelf.c:8994 readelf.c:9074
-#, c-format
-msgid "%s: failed to read archive header\n"
-msgstr "%s: falló al leer el encabezado del archivo\n"
-
-#: readelf.c:8947
-#, c-format
-msgid "%s: failed to skip archive symbol table\n"
-msgstr "%s: falló al saltar la tabla de símbolos del archivo\n"
-
-#: readelf.c:8979
-#, c-format
-msgid "%s: failed to read string table\n"
-msgstr "%s: falló al leer la tabla de cadenas\n"
-
-#: readelf.c:9015
-#, c-format
-msgid "%s: invalid archive string table offset %lu\n"
-msgstr "%s: desplazamiento de tabla de cadenas de archivo %lu inválido\n"
-
-#: readelf.c:9031
-#, c-format
-msgid "%s: bad archive file name\n"
-msgstr "%s: nombre de fichero de archivo erróneo\n"
-
-#: readelf.c:9063
-#, c-format
-msgid "%s: failed to seek to next archive header\n"
-msgstr "%s: falló al buscar el siguiente encabezado de archivo\n"
-
-#: readelf.c:9097
-#, c-format
-msgid "'%s': No such file\n"
-msgstr "'%s': No hay tal fichero\n"
-
-#: readelf.c:9099
-#, c-format
-msgid "Could not locate '%s'. System error message: %s\n"
-msgstr "No se puede encontrar '%s'. Mensaje de error del sistema: %s\n"
-
-#: readelf.c:9106
-#, c-format
-msgid "'%s' is not an ordinary file\n"
-msgstr "'%s' no es un fichero ordinario\n"
-
-#: readelf.c:9113
-#, c-format
-msgid "Input file '%s' is not readable.\n"
-msgstr "El fichero de entrada '%s' no es legible.\n"
-
-#: rename.c:129
-#, c-format
-msgid "%s: cannot set time: %s"
-msgstr "%s: no se puede establecer la hora: %s"
-
-#. We have to clean up here.
-#: rename.c:164 rename.c:202
-#, c-format
-msgid "unable to rename '%s' reason: %s"
-msgstr "no se puede renombrar '%s' razón: %s"
-
-#: rename.c:210
-#, c-format
-msgid "unable to copy file '%s' reason: %s"
-msgstr "no se puede copiar el fichero '%s' razón: %s"
-
-#: resbin.c:132
-#, c-format
-msgid "%s: not enough binary data"
-msgstr "%s: no hay suficientes datos binarios"
-
-#: resbin.c:148
-msgid "null terminated unicode string"
-msgstr "cadena unicode terminada en null"
-
-#: resbin.c:175 resbin.c:181
-msgid "resource ID"
-msgstr "ID de recurso"
-
-#: resbin.c:221
-msgid "cursor"
-msgstr "cursor"
-
-#: resbin.c:253 resbin.c:260
-msgid "menu header"
-msgstr "encabezado de menú"
-
-#: resbin.c:270
-msgid "menuex header"
-msgstr "encabezado de menuex"
-
-#: resbin.c:274
-msgid "menuex offset"
-msgstr "desplazamiento de menuex"
-
-#: resbin.c:281
-#, c-format
-msgid "unsupported menu version %d"
-msgstr "versión de menú %d sin soporte"
-
-#: resbin.c:306 resbin.c:321 resbin.c:384
-msgid "menuitem header"
-msgstr "encabezado de elemento de menú"
-
-#: resbin.c:414
-msgid "menuitem"
-msgstr "elemento de menú"
-
-#: resbin.c:453 resbin.c:481
-msgid "dialog header"
-msgstr "encabezado de diálogo"
-
-#: resbin.c:471
-#, c-format
-msgid "unexpected DIALOGEX version %d"
-msgstr "versión DIALOGEX %d inesperada"
-
-#: resbin.c:516
-msgid "dialog font point size"
-msgstr "tamaño de punto de la tipografía del diálogo"
-
-#: resbin.c:524
-msgid "dialogex font information"
-msgstr "información de tipografía del dialogex"
-
-#: resbin.c:550 resbin.c:568
-msgid "dialog control"
-msgstr "control del diálogo"
-
-#: resbin.c:560
-msgid "dialogex control"
-msgstr "control del dialogex"
-
-#: resbin.c:589
-msgid "dialog control end"
-msgstr "fin del control del diálogo"
-
-#: resbin.c:601
-msgid "dialog control data"
-msgstr "datos de control del diálogo"
-
-#: resbin.c:642
-msgid "stringtable string length"
-msgstr "longitud de la cadena stringtable"
-
-#: resbin.c:652
-msgid "stringtable string"
-msgstr "cadena stringtable"
-
-#: resbin.c:683
-msgid "fontdir header"
-msgstr "encabezado fontdir"
-
-#: resbin.c:696
-msgid "fontdir"
-msgstr "fontdir"
-
-#: resbin.c:712
-msgid "fontdir device name"
-msgstr "nombre de dispositivo fontdir"
-
-#: resbin.c:718
-msgid "fontdir face name"
-msgstr "nombre de rostro fontdir"
-
-#: resbin.c:759
-msgid "accelerator"
-msgstr "acelerador"
-
-#: resbin.c:819
-msgid "group cursor header"
-msgstr "encabezado de grupo de cursores"
-
-#: resbin.c:823
-#, c-format
-msgid "unexpected group cursor type %d"
-msgstr "tipo de grupo de cursores %d inesperado"
-
-#: resbin.c:838
-msgid "group cursor"
-msgstr "grupo de cursores"
-
-#: resbin.c:875
-msgid "group icon header"
-msgstr "encabezado de grupo de iconos"
-
-#: resbin.c:879
-#, c-format
-msgid "unexpected group icon type %d"
-msgstr "tipo de grupo de iconos %d inesperado"
-
-#: resbin.c:894
-msgid "group icon"
-msgstr "grupo de iconos"
-
-#: resbin.c:957 resbin.c:1174
-msgid "unexpected version string"
-msgstr "cadena de versión inesperada"
-
-#: resbin.c:989
-#, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr "la longitud de la versión %d no coincide con la longitud del recurso %lu"
-
-#: resbin.c:993
-#, c-format
-msgid "unexpected version type %d"
-msgstr "tipo de versión %d inesperada"
-
-#: resbin.c:1005
-#, c-format
-msgid "unexpected fixed version information length %d"
-msgstr "longitud de la información de versión fija %d inesperada"
-
-#: resbin.c:1008
-msgid "fixed version info"
-msgstr "información de versión fija"
-
-#: resbin.c:1012
-#, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr "firma de versión fija %lu inesperada"
-
-#: resbin.c:1016
-#, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr "información de versión de versión fija %lu inesperada"
-
-#: resbin.c:1045
-msgid "version var info"
-msgstr "información de versión variable"
-
-#: resbin.c:1062
-#, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr "longitud del valor stringfileinfo %d inesperada"
-
-#: resbin.c:1072
-#, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr "valor de longitud de versión stringtable %d inesperada"
-
-#: resbin.c:1106
-#, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr "longitud de cadena de versión %d != %d + %d inesperada"
-
-#: resbin.c:1117
-#, c-format
-msgid "unexpected version string length %d < %d"
-msgstr "longitud de cadena de versión %d < %d inesperada"
-
-#: resbin.c:1134
-#, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr "longitud de valor varfileinfo %d inesperada"
-
-#: resbin.c:1153
-msgid "version varfileinfo"
-msgstr "versión varfileinfo"
-
-#: resbin.c:1168
-#, c-format
-msgid "unexpected version value length %d"
-msgstr "longitud de valor de versión %d inesperada"
-
-#: rescoff.c:126
-msgid "filename required for COFF input"
-msgstr "se requiere un nombre de fichero para la entrada COFF"
-
-#: rescoff.c:143
-#, c-format
-msgid "%s: no resource section"
-msgstr "%s: no hay sección de recursos"
-
-#: rescoff.c:150
-msgid "can't read resource section"
-msgstr "no se puede leer la sección de recursos"
-
-#: rescoff.c:174
-#, c-format
-msgid "%s: %s: address out of bounds"
-msgstr "%s: %s: dirección fuera de los límites"
-
-#: rescoff.c:190
-msgid "directory"
-msgstr "directorio"
-
-#: rescoff.c:218
-msgid "named directory entry"
-msgstr "entrada nombrada de directorio"
-
-#: rescoff.c:227
-msgid "directory entry name"
-msgstr "nombre de entrada de directorio"
-
-#: rescoff.c:247
-msgid "named subdirectory"
-msgstr "subdirectorio nombrado"
-
-#: rescoff.c:255
-msgid "named resource"
-msgstr "recurso nombrado"
-
-#: rescoff.c:270
-msgid "ID directory entry"
-msgstr "entrada de ID de directorio"
-
-#: rescoff.c:287
-msgid "ID subdirectory"
-msgstr "ID de subdirectorio"
-
-#: rescoff.c:295
-msgid "ID resource"
-msgstr "ID de recurso"
-
-#: rescoff.c:318
-msgid "resource type unknown"
-msgstr "tipo de recurso desconocido"
-
-#: rescoff.c:321
-msgid "data entry"
-msgstr "entrada de datos"
-
-#: rescoff.c:329
-msgid "resource data"
-msgstr "datos de recursos"
-
-#: rescoff.c:334
-msgid "resource data size"
-msgstr "tamaño de datos de recursos"
-
-#: rescoff.c:427
-msgid "filename required for COFF output"
-msgstr "se requiere un nombre de fichero para la salida COFF"
-
-#: rescoff.c:719
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr "no se puede obtener el tipo de reubicación BFD_RELOC_RVA"
-
-#: resrc.c:238 resrc.c:309
-#, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr "no se puede abrir el fichero temporal `%s': %s"
-
-#: resrc.c:244
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr "no se puede redirigir la salida estándar: `%s': %s"
-
-#: resrc.c:260
-#, c-format
-msgid "%s %s: %s"
-msgstr "%s %s: %s"
-
-#: resrc.c:305
-#, c-format
-msgid "can't execute `%s': %s"
-msgstr "no se puede ejecutar `%s': %s"
-
-#: resrc.c:314
-#, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr "Utilizando el fichero temporal `%s' para leer la salida del preprocesador\n"
-
-#: resrc.c:321
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr "no se puede hacer popen de `%s': %s"
-
-#: resrc.c:323
-#, c-format
-msgid "Using popen to read preprocessor output\n"
-msgstr "Utilizando popen para leer la salida del preprocesador\n"
-
-#: resrc.c:362
-#, c-format
-msgid "Tried `%s'\n"
-msgstr "Se intentó `%s'\n"
-
-#: resrc.c:373
-#, c-format
-msgid "Using `%s'\n"
-msgstr "Utilizando `%s'\n"
-
-#: resrc.c:529
-#, c-format
-msgid "%s:%d: %s\n"
-msgstr "%s:%d: %s\n"
-
-#: resrc.c:537
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr "%s: fin de fichero inesperado"
-
-#: resrc.c:586
-#, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr "%s: la lectura de %lu devolvió %lu"
-
-#: resrc.c:624 resrc.c:1134
-#, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr "stat falló en el fichero de mapa de bits `%s': %s"
-
-#: resrc.c:675
-#, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr "el fichero de cursor `%s' no contiene datos de cursor"
-
-#: resrc.c:707 resrc.c:1003
-#, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr "%s: falló fseek para %lu: %s"
-
-#: resrc.c:831
-msgid "help ID requires DIALOGEX"
-msgstr "el ID de ayuda requiere DIALOGEX"
-
-#: resrc.c:833
-msgid "control data requires DIALOGEX"
-msgstr "los datos de control requieren DIALOGEX"
-
-#: resrc.c:861
-#, c-format
-msgid "stat failed on font file `%s': %s"
-msgstr "stat falló en el fichero de tipografía `%s': %s"
-
-#: resrc.c:972
-#, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr "el fichero de icono `%s' no contiene datos de icono"
-
-#: resrc.c:1273 resrc.c:1308
-#, c-format
-msgid "stat failed on file `%s': %s"
-msgstr "stat falló en el fichero `%s': %s"
-
-#: resrc.c:1494
-#, c-format
-msgid "can't open `%s' for output: %s"
-msgstr "no se puede abrir `%s' para salida: %s"
-
-#: size.c:83
-#, c-format
-msgid " Displays the sizes of sections inside binary files\n"
-msgstr " Muestra los tamaños de las secciones dentro de los ficheros binarios\n"
-
-#: size.c:84
-#, c-format
-msgid " If no input file(s) are specified, a.out is assumed\n"
-msgstr "Si no se especifica(n) fichero(s) de salida, se asume a.out\n"
-
-#: size.c:85
-#, c-format
-msgid ""
-" The options are:\n"
-" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
-" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n"
-" -t --totals Display the total sizes (Berkeley only)\n"
-" --target=<bfdname> Set the binary file format\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Las opciones son:\n"
-" -A|-B --format={sysv|berkeley} Selecciona el estilo de salida output\n"
-" (por defecto es %s)\n"
-" -o|-d|-x --radix={8|10|16} Muestra los números en octal, decimal o\n"
-" hexadecimal\n"
-" -t --totals Muestra los tamaños totales\n"
-" (sólo Berkeley)\n"
-" --target=<nombrebfd> Establece el formato del fichero binario\n"
-" @<fichero> Lee opciones del <fichero>\n"
-" -h --help Muestra esta información\n"
-" -v --version Muestra la versión del programa\n"
-"\n"
-
-#: size.c:158
-#, c-format
-msgid "invalid argument to --format: %s"
-msgstr "argumento inválido para --format: %s"
-
-#: size.c:185
-#, c-format
-msgid "Invalid radix: %s\n"
-msgstr "Radical inválido: %s\n"
-
-#: srconv.c:1722
-#, c-format
-msgid "Convert a COFF object file into a SYSROFF object file\n"
-msgstr "Convierte un fichero objeto COFF a un fichero objeto SYSROFF\n"
-
-#: srconv.c:1723
-#, c-format
-msgid ""
-" The options are:\n"
-" -q --quick (Obsolete - ignored)\n"
-" -n --noprescan Do not perform a scan to convert commons into defs\n"
-" -d --debug Display information about what is being done\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Las opciones son:\n"
-" -q --quick (Obsoleto - ignorado)\n"
-" -n --noprescan No realizar una revisión para convertir comunes en definiciones\n"
-" -d --debug Muestra información acerca de lo que se está haciendo\n"
-" @<fichero> Lee opciones del <fichero>\n"
-" -h --help Muestra esta información\n"
-" -v --version Muestra el número de versión del programa\n"
-
-#: srconv.c:1869
-#, c-format
-msgid "unable to open output file %s"
-msgstr "no se puede abrir el fichero de salida %s"
-
-#: stabs.c:330 stabs.c:1708
-msgid "numeric overflow"
-msgstr "desbordamiento numérico"
-
-#: stabs.c:340
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr "Stab erróneo: %s\n"
-
-#: stabs.c:348
-#, c-format
-msgid "Warning: %s: %s\n"
-msgstr "Aviso: %s: %s\n"
-
-#: stabs.c:458
-#, c-format
-msgid "N_LBRAC not within function\n"
-msgstr "N_LBRAC no está dentro de una función\n"
-
-#: stabs.c:497
-#, c-format
-msgid "Too many N_RBRACs\n"
-msgstr "Demasiados N_RBRACs\n"
-
-#: stabs.c:738
-msgid "unknown C++ encoded name"
-msgstr "nombre C++ codificado desconocido"
-
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1253
-msgid "unrecognized cross reference type"
-msgstr "tipo de referencia cruzada no reconocido"
-
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1800
-msgid "missing index type"
-msgstr "tipo de índice desconocido"
-
-#: stabs.c:2114
-msgid "unknown virtual character for baseclass"
-msgstr "carácter virtual desconocido para la clase base"
-
-#: stabs.c:2132
-msgid "unknown visibility character for baseclass"
-msgstr "carácter de visibilidad desconocido para la clase base"
-
-#: stabs.c:2318
-msgid "unnamed $vb type"
-msgstr "tipo $vb sin nombre"
-
-#: stabs.c:2324
-msgid "unrecognized C++ abbreviation"
-msgstr "abreviación C++ no reconocida"
-
-#: stabs.c:2400
-msgid "unknown visibility character for field"
-msgstr "carácter de visibilidad desconocido para el campo"
-
-#: stabs.c:2652
-msgid "const/volatile indicator missing"
-msgstr "falta el indicador const/volatile"
-
-#: stabs.c:2888
-#, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr "No hay desenredo para \"%s\"\n"
-
-#: stabs.c:3188
-msgid "Undefined N_EXCL"
-msgstr "N_EXCL indefinido"
-
-#: stabs.c:3268
-#, c-format
-msgid "Type file number %d out of range\n"
-msgstr "Número de tipo de fichero %d fuera de rango\n"
-
-#: stabs.c:3273
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr "Número de tipo de índice %d fuera de rango\n"
-
-#: stabs.c:3352
-#, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr "Tipo XCOFF %d no reconocido\n"
-
-#: stabs.c:3644
-#, c-format
-msgid "bad mangled name `%s'\n"
-msgstr "nombre desenredado erróneamente `%s'\n"
-
-#: stabs.c:3739
-#, c-format
-msgid "no argument types in mangled string\n"
-msgstr "no hay tipos de argumento en la cadena desenredada\n"
-
-#: stabs.c:5093
-#, c-format
-msgid "Demangled name is not a function\n"
-msgstr "El nombres desenredado no es una función\n"
-
-#: stabs.c:5135
-#, c-format
-msgid "Unexpected type in v3 arglist demangling\n"
-msgstr "Tipo inesperado en la lista de argumentos de desenredo v3\n"
-
-#: stabs.c:5202
-#, c-format
-msgid "Unrecognized demangle component %d\n"
-msgstr "Componente de desenredo %d no reconocido\n"
-
-#: stabs.c:5254
-#, c-format
-msgid "Failed to print demangled template\n"
-msgstr "Falló al mostrar la plantilla desenredada\n"
-
-#: stabs.c:5334
-#, c-format
-msgid "Couldn't get demangled builtin type\n"
-msgstr "No se puede obtener el tipo interno desenredado\n"
-
-#: stabs.c:5383
-#, c-format
-msgid "Unexpected demangled varargs\n"
-msgstr "varargs desenredados inesperados\n"
-
-#: stabs.c:5390
-#, c-format
-msgid "Unrecognized demangled builtin type\n"
-msgstr "Tipo interno desenredado no reconocido\n"
-
-#: strings.c:218
-#, c-format
-msgid "invalid number %s"
-msgstr "número %s inválido"
-
-#: strings.c:700
-#, c-format
-msgid "invalid integer argument %s"
-msgstr "argumento entero %s inválido"
-
-#: strings.c:709
-#, c-format
-msgid " Display printable strings in [file(s)] (stdin by default)\n"
-msgstr " Muestra las cadenas imprimibles en [fichero(s)] (por defecto entrada estándar)\n"
-
-#: strings.c:710
-#, c-format
-msgid ""
-" The options are:\n"
-" -a - --all Scan the entire file, not just the data section\n"
-" -f --print-file-name Print the name of the file before each string\n"
-" -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n"
-" -<number> least [number] characters (default 4).\n"
-" -t --radix={o,d,x} Print the location of the string in base 8, 10 or 16\n"
-" -o An alias for --radix=o\n"
-" -T --target=<BFDNAME> Specify the binary file format\n"
-" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
-" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Las opciones son:\n"
-" -a - --all Revisa el fichero completo, no sólo la sección de\n"
-" datos\n"
-" -f --print-file-name Muestra el nombre de fichero antes de cada cadena\n"
-" -n --bytes=[número] Localiza e imprime cualquier secuencia terminada en\n"
-" -<número> NUL de por lo menos [número] caracteres (4 por defecto).\n"
-" -t --radix={o,x,d} Muestra la ubicación de la cadena en base 8, 10 ó 16\n"
-" -o Un alias para --radix=o\n"
-" -T --target=<NOMBREBFD> Especifica el formato de fichero binario\n"
-" -e --encoding={s,S,b,l,B,L} Selecciona el tamaño del carácter y la \"endianez\":\n"
-" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" @<fichero> Lee opciones del fichero\n"
-" -h --help Muestra esta información\n"
-" -v --version Muestra el número de versión del programa\n"
-
-#: sysdump.c:642
-#, c-format
-msgid "Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "Muestra una interpretación legible por humanos de un fichero objeto SYSROFF\n"
-
-#: sysdump.c:643
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Las opciones son:\n"
-" -h --help Muestra esta información\n"
-" -v --version Muestra el número de versión del programa\n"
-
-#: sysdump.c:710
-#, c-format
-msgid "cannot open input file %s"
-msgstr "no se puede abrir el fichero de entrada %s"
-
-#: version.c:35
-#, c-format
-msgid "Copyright 2005 Free Software Foundation, Inc.\n"
-msgstr "Copyright 2005 Free Software Foundation, Inc.\n"
-
-#: version.c:36
-#, c-format
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr ""
-"Este programa es software libre; se puede redistribuir bajo los términos de\n"
-"la Licencia Pública General de GNU. Este programa no tiene ninguna garantía.\n"
-
-#: windres.c:204
-#, c-format
-msgid "can't open %s `%s': %s"
-msgstr "no se puede abrir %s `%s': %s"
-
-#: windres.c:370
-#, c-format
-msgid ": expected to be a directory\n"
-msgstr ": se esperaba que fuera un directorio\n"
-
-#: windres.c:382
-#, c-format
-msgid ": expected to be a leaf\n"
-msgstr ": se esperaba que fuera una hoja\n"
-
-#: windres.c:391
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: aviso: "
-
-#: windres.c:393
-#, c-format
-msgid ": duplicate value\n"
-msgstr ": valor duplicado\n"
-
-#: windres.c:543
-#, c-format
-msgid "unknown format type `%s'"
-msgstr "tipo de formato `%s' desconocido"
-
-#: windres.c:544
-#, c-format
-msgid "%s: supported formats:"
-msgstr "%s: formatos con soporte:"
-
-#. Otherwise, we give up.
-#: windres.c:627
-#, c-format
-msgid "can not determine type of file `%s'; use the -J option"
-msgstr "no se puede determinar el tipo del fichero `%s'; use la opción -J"
-
-#: windres.c:639
-#, c-format
-msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
-msgstr "Modo de empleo: %s [opcion(es)] [fichero-entrada] [fichero-salida]\n"
-
-#: windres.c:641
-#, c-format
-msgid ""
-" The options are:\n"
-" -i --input=<file> Name input file\n"
-" -o --output=<file> Name output file\n"
-" -J --input-format=<format> Specify input format\n"
-" -O --output-format=<format> Specify output format\n"
-" -F --target=<target> Specify COFF target\n"
-" --preprocessor=<program> Program to use to preprocess rc file\n"
-" -I --include-dir=<dir> Include directory when preprocessing rc file\n"
-" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
-" -U --undefine <sym> Undefine SYM when preprocessing rc file\n"
-" -v --verbose Verbose - tells you what it's doing\n"
-" -l --language=<val> Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr ""
-"Las opciones son:\n"
-" -i --input=<fichero> Nombra el fichero de entrada\n"
-" -o --output=<fichero> Nombra el fichero de salida\n"
-" -I --input-format=<formato> Especifica el formato de entrada\n"
-" -O --output-format=<formato> Especifica el formato de salida\n"
-" -F --target=<objetivo> Especifica el objetivo COFF\n"
-" --preprocessor=<programa> Programa a utilizar para preprocesar el fichero rc\n"
-" -I --include-dir=<dir> Incluye el directorio al preprocesar el fichero rc\n"
-" -D --define <sim>[=val] Define un SIMbolo al preprocesar el fichero rc\n"
-" -U --undefine <sim> No define el SIMbolo al preprocesar el fichero rc\n"
-" -v --verbose Detallado - dice lo que está haciendo\n"
-" -l --language=<val> Establece el lenguaje al leer el fichero rc\n"
-" --use-temp-file Usa un fichero temporal en lugar de popen para\n"
-" leer la salida del preprocesador\n"
-" --no-use-temp-file Usa popen (por defecto)\n"
-
-#: windres.c:657
-#, c-format
-msgid " --yydebug Turn on parser debugging\n"
-msgstr " --yydebug Activa el decodificador de depuración\n"
-
-#: windres.c:660
-#, c-format
-msgid ""
-" -r Ignored for compatibility with rc\n"
-" @<file> Read options from <file>\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" Las opciones son:\n"
-" -r Se ignora por compatibilidad con rc\n"
-" @<fichero> Lee opciones del <fichero>\n"
-" -h --help Muestra este mensaje de ayuda\n"
-" -V --version Muestra la información de versión\n"
-
-#: windres.c:665
-#, c-format
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr ""
-"El FORMATO es uno de rc, res, o coff, y se deduce de la extensión del nombre\n"
-"de fichero si no se especifica. Un solo nombre de fichero es un fichero de\n"
-"entrada. Sin fichero de entrada es la entrada estándar, por defecto rc.\n"
-"Sin fichero de salida es la salida estándar, por defecto rc.\n"
-
-#: windres.c:803
-msgid "invalid option -f\n"
-msgstr "opción -f inválida\n"
-
-#: windres.c:808
-msgid "No filename following the -fo option.\n"
-msgstr "No hay un nombre de fichero a continuación de la opción -fo.\n"
-
-#: windres.c:866
-#, c-format
-msgid "Option -I is deprecated for setting the input format, please use -J instead.\n"
-msgstr "La opción -I es obsoleta para establecer el formato de salida, por favor use -J en su lugar.\n"
-
-#: windres.c:984
-msgid "no resources"
-msgstr "no hay recursos"
-
-#: wrstabs.c:354 wrstabs.c:1915
-#, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr "string_hash_lookup falló: %s"
-
-#: wrstabs.c:635
-#, c-format
-msgid "stab_int_type: bad size %u"
-msgstr "stab_int_type: tipo %u erróneo"
-
-#: wrstabs.c:1393
-#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr "%s: aviso: tamaño desconocido para el campo `%s' en la estructura"
-
-#~ msgid "flags"
-#~ msgstr "opciones"
-
-#~ msgid "debug_str section data"
-#~ msgstr "sección de datos debug_str"
-
-#~ msgid "debug_loc section data"
-#~ msgstr "sección de datos debug_loc"
-
-#~ msgid "debug_range section data"
-#~ msgstr "sección de datos debug_range"
-
-#~ msgid "%s: skipping unexpected symbol type %s in relocation in section .rela%s\n"
-#~ msgstr "%s: saltando el tipo de símbolo %s inesperado en la reubicación en la sección .rela%s\n"
-
-#~ msgid "debug_abbrev section data"
-#~ msgstr "sección de datos debug_abbrev"
-
-#~ msgid "extracting information from .debug_info section"
-#~ msgstr "extrayendo la información de la sección .debug_info"
-
-#~ msgid ""
-#~ "\n"
-#~ "The .debug_loc section is empty.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "La sección .debug_loc está vacía.\n"
-
-#~ msgid ""
-#~ "Contents of the .debug_loc section:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Contenido de la sección .debug_loc:\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Contents of the .debug_str section:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Contenido de la sección .debug_str:\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "The .debug_ranges section is empty.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "La sección .debug_ranges está vacía.\n"
-
-#~ msgid ""
-#~ "Contents of the .debug_ranges section:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Contenido de la sección .debug_ranges:\n"
-#~ "\n"
-
-#~ msgid "There is a hole [0x%lx - 0x%lx] in .debug_ranges section.\n"
-#~ msgstr "Hay un agujero [0x%lx - 0x%lx] en la sección .debug_ranges.\n"
-
-#~ msgid "There is an overlap [0x%lx - 0x%lx] in .debug_ranges section.\n"
-#~ msgstr "Hay un traslape [0x%lx - 0x%lx] en la sección .debug_ranges.\n"
-
-#~ msgid "debug section data"
-#~ msgstr "sección de datos de depuración"
-
-#~ msgid ""
-#~ "\n"
-#~ "<member %s>\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "<miembro %s>\n"
-#~ "\n"
-
-#~ msgid "cannot stat: %s: %s"
-#~ msgstr "no se puede obtener la información de stat: %s: %s"
-
-#~ msgid "%s: cannot stat: %s"
-#~ msgstr "%s: no se puede obtener la información de stat: %s"
-
-#~ msgid "Cannot stat: %s: %s"
-#~ msgstr "No se puede obtener la información de stat: %s: %s"
-
-#~ msgid "Out of virtual memory"
-#~ msgstr "Memoria agotada"
-
-#~ msgid "%s has no %s section"
-#~ msgstr "%s no tiene una sección %s"
-
-#~ msgid "Reading %s section of %s failed: %s\n"
-#~ msgstr "Falló al leer la sección %s de %s: %s\n"
-
-#~ msgid "Skipping unexpected symbol type %u\n"
-#~ msgstr "Saltando el tipo de símbolo %u inesperado\n"
-
-#~ msgid "dynamic segment"
-#~ msgstr "segmento dinámico"
-
-#~ msgid "Cannot stat input file %s.\n"
-#~ msgstr "No se puede obtener la información stat del fichero de entrada %s.\n"
-
-#~ msgid "%s: rename: %s"
-#~ msgstr "%s: rename: %s"
-
-#~ msgid "%s: simple_copy: %s"
-#~ msgstr "%s: simple_copy: %s"
-
-#~ msgid "debug_record_variable: no current block"
-#~ msgstr "debug_record_variable: no hay un bloque actual"
-
-#~ msgid "%s: No dynamic symbols"
-#~ msgstr "%s: No hay símbolos dinámicos"
-
-#~ msgid "64-bit DWARF line info is not supported yet.\n"
-#~ msgstr "La información de línea de DWARF 64-bit aún no tiene soporte.\n"
-
-#~ msgid "64-bit DWARF pubnames are not supported yet.\n"
-#~ msgstr "Los nombres públicos DWARF de 64-bit no tienen soporte aún.\n"
-
-#~ msgid "64-bit DWARF debug info is not supported yet.\n"
-#~ msgstr "La información de depuración DWARF 64-bit aún no tiene soporte.\n"
-
-#~ msgid "64-bit DWARF aranges are not supported yet.\n"
-#~ msgstr "Los rangos-a de DWARF 64-bit aún no tienen soporte.\n"
-
-#~ msgid "64-bit DWARF format frames are not supported yet.\n"
-#~ msgstr "Los marcos de formato de DWARF 64-bit aú no tienen soporte.\n"
-
-#~ msgid ""
-#~ " -h --help Print this help message\n"
-#~ " -V --version Print version information\n"
-#~ msgstr ""
-#~ " -h --help Muestra este mensaje de ayuda\n"
-#~ " -V --version Muestra la información de versión\n"
-
-#~ msgid ""
-#~ "Usage: %s [-CfsHV] [-b bfdname] [--target=bfdname]\n"
-#~ " [-e executable] [--exe=executable] [--demangle[=style]]\n"
-#~ " [--basenames] [--functions] [addr addr ...]\n"
-#~ msgstr ""
-#~ "Modo de empleo: %s [-CfsHV] [-b nombrebfd] [--target=nombrebfd]\n"
-#~ " [-e ejecutable] [--exe=ejecutable] [--demangle[=estilo]]\n"
-#~ " [--basenames] [--functions] [dirección dirección ...]\n"
-
-#~ msgid ""
-#~ "Usage: %s [-dhV] [-I bfdname] [-O bfdname] [-T header-file] [-l linker]\n"
-#~ " [--input-target=bfdname] [--output-target=bfdname]\n"
-#~ " [--header-file=file] [--linker=linker] [--debug]\n"
-#~ " [--help] [--version]\n"
-#~ " [in-file [out-file]]\n"
-#~ msgstr ""
-#~ "Modo de empleo: %s [-dhV] [-I nombrebfd] [-O nombrebfd] [-T fichero-encabezado] [-l enlazador]\n"
-#~ " [--input-target=nombrebfd] [--output-target=nombrebfd]\n"
-#~ " [--header-file=fichero] [--linker=enlazador] [--debug]\n"
-#~ " [--help] [--version]\n"
-#~ " [fichero-entrada [fichero-salida]]\n"
-
-#~ msgid "Usage: %s [OPTION]... [FILE]...\n"
-#~ msgstr "Modo de empleo: %s [OPCIÓN]... [FICHERO]...\n"
-
-#~ msgid "Usage: %s OPTION... FILE...\n"
-#~ msgstr "Modo de empleo: %s OPCIÓN... FICHERO...\n"
-
-#~ msgid " Options are:\n"
-#~ msgstr " Las opciones son:\n"
-
-#~ msgid " -a or --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-#~ msgstr " -a ó --all Equivalente a: -h -l -S -s -r -d -V -A -I\n"
-
-#~ msgid " -h or --file-header Display the ELF file header\n"
-#~ msgstr " -h ó --file-header Muestra el encabezado del fichero ELF\n"
-
-#~ msgid " -l or --program-headers or --segments\n"
-#~ msgstr " -l ó --program-headers ó --segments\n"
-
-#~ msgid " Display the program headers\n"
-#~ msgstr " Muestra los encabezados del programa\n"
-
-#~ msgid " -S or --section-headers or --sections\n"
-#~ msgstr " -S ó --section-headers ó --sections\n"
-
-#~ msgid " Display the sections' header\n"
-#~ msgstr " Muestra el encabezado de las secciones\n"
-
-#~ msgid " -e or --headers Equivalent to: -h -l -S\n"
-#~ msgstr " -e ó --headers Equivalente a: -h -l -S\n"
-
-#~ msgid " -s or --syms or --symbols Display the symbol table\n"
-#~ msgstr " -s ó --syms ó --symbols Muestra la tabla de símbolos\n"
-
-#~ msgid " -n or --notes Display the core notes (if present)\n"
-#~ msgstr " -n ó --notes Muestra las notas de núcleo (si están presentes)\n"
-
-#~ msgid " -r or --relocs Display the relocations (if present)\n"
-#~ msgstr " -r ó --relocs Muestra las reubicaciones (si están presentes)\n"
-
-#~ msgid " -u or --unwind Display the unwind info (if present)\n"
-#~ msgstr " -u ó --unwind Muestra la información de desenredo (si está presente)\n"
-
-#~ msgid " -d or --dynamic Display the dynamic segment (if present)\n"
-#~ msgstr " -d ó --dynamic Muestra el segmento dinámico (si está presente)\n"
-
-#~ msgid " -V or --version-info Display the version sections (if present)\n"
-#~ msgstr " -V ó --version-info Muestra las secciones de versión (si están presentes)\n"
-
-#~ msgid " -A or --arch-specific Display architecture specific information (if any).\n"
-#~ msgstr " -A ó --arch-specific Muestra la información específica de la arquitectura (si hay alguna).\n"
-
-#~ msgid " -D or --use-dynamic Use the dynamic section info when displaying symbols\n"
-#~ msgstr " -D ó --use-dynamic Usa la información de la sección dinámica al mostrar los símbolos\n"
-
-#~ msgid " -x <number> or --hex-dump=<number>\n"
-#~ msgstr " -x <número> ó --hex-dump=<número>\n"
-
-#~ msgid " Dump the contents of section <number>\n"
-#~ msgstr " Vuelca el contenido de la sección <número>\n"
-
-#~ msgid " -w[liaprmfs] or --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]\n"
-#~ msgstr " -w[liaprmfs] ó --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]\n"
-
-#~ msgid " Display the contents of DWARF2 debug sections\n"
-#~ msgstr " Muestra el contenido de las secciones de depuración DWARF2\n"
-
-#~ msgid " -i <number> or --instruction-dump=<number>\n"
-#~ msgstr " -i <número> ó --instruction-dump=<número>\n"
-
-#~ msgid " -I or --histogram Display histogram of bucket list lengths\n"
-#~ msgstr " -I ó --histogram Muestra el histograma de las longitudes de la lista de cubos\n"
-
-#~ msgid " -v or --version Display the version number of readelf\n"
-#~ msgstr " -v ó --version Muestra el número de versión de readelf\n"
-
-#~ msgid " -W or --wide Don't split lines or truncate symbols to fit into 80 columns\n"
-#~ msgstr " -W ó --wide No divide las líneas o trunca los símbolos para ajustarlos a 80 columnas\n"
-
-#~ msgid " -H or --help Display this information\n"
-#~ msgstr " -H ó --help Muestra esta información\n"
-
-#~ msgid "unexpected dialog signature %d"
-#~ msgstr "firma de diálogo %d inesperada"
-
-#~ msgid ""
-#~ "Usage: %s [-A | --format=sysv | -B | --format=berkeley]\n"
-#~ " [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n"
-#~ " [-V | --version] [--target=bfdname] [--help] [file...]\n"
-#~ msgstr ""
-#~ "Modo de empleo: %s [-A | --format=sysv | -B | --format=berkeley]\n"
-#~ " [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n"
-#~ " [-V | --version] [--target=nombrebfd] [--help] [fichero...]\n"
-
-#~ msgid "default is --format=berkeley\n"
-#~ msgstr "por defecto es --format=berkeley\n"
-
-#~ msgid "default is --format=sysv\n"
-#~ msgstr "por defecto es --format=sysv\n"
-
-#~ msgid "Usage: %s [-dhVq] in-file [out-file]\n"
-#~ msgstr "Modo de empleo: %s [-dhVq] fichero-entrada [fichero-salida]\n"
-
-#~ msgid ""
-#~ "Usage: %s [-afov] [-n min-len] [-min-len] [-t {o,x,d}] [-e {s,b,l,B,L}]\n"
-#~ " [-] [--all] [--print-file-name] [--bytes=min-len] [--radix={o,x,d}]\n"
-#~ " [--target=bfdname] [--encoding {s,b,l,B,L}] [--help] [--version] file...\n"
-#~ msgstr ""
-#~ "Modo de empleo: %s [-afov] [-n long-min] [-long-min] [-t {o,x,d}] [-e {s,b,l,B,L}]\n"
-#~ " [-] [--all] [--print-file-name] [--bytes=long-min] [--radix={o,x,d}]\n"
-#~ " [--target=nombrebfd] [--encoding {s,b,l,B,L}] [--help] [--version] fichero...\n"
-
-#~ msgid "Usage: %s [-hV] in-file\n"
-#~ msgstr "Modo de empleo: %s [-hV] fichero-entrada\n"
-
-#~ msgid "GNU %s version %s\n"
-#~ msgstr "GNU %s versión %s\n"
-
-#~ msgid "no export definition file provided"
-#~ msgstr "no se provee un fichero de definición de exportación"
-
-#~ msgid " The switches are:\n"
-#~ msgstr " Los interruptores son:\n"
-
-#~ msgid "Unable to seek to start of %s at %x\n"
-#~ msgstr "No se puede buscar para el inicio de %s en %x\n"
-
-#~ msgid "Unable to read data at %x for %s\n"
-#~ msgstr "No se pueden leer datos en %x para %s\n"
-
-#~ msgid "ELF32"
-#~ msgstr "ELF32"
-
-#~ msgid "ELF64"
-#~ msgstr "ELF64"
-
-#~ msgid "UNIX - System V"
-#~ msgstr "UNIX - System V"
-
-#~ msgid "UNIX - HP-UX"
-#~ msgstr "UNIX - HP-UX"
-
-#~ msgid "UNIX - NetBSD"
-#~ msgstr "UNIX - NetBSD"
-
-#~ msgid "UNIX - Linux"
-#~ msgstr "UNIX - Linux"
-
-#~ msgid "GNU/Hurd"
-#~ msgstr "GNU/Hurd"
-
-#~ msgid "UNIX - Solaris"
-#~ msgstr "UNIX - Solaris"
-
-#~ msgid "UNIX - AIX"
-#~ msgstr "UNIX - AIX"
-
-#~ msgid "UNIX - IRIX"
-#~ msgstr "UNIX - IRIX"
-
-#~ msgid "UNIX - FreeBSD"
-#~ msgstr "UNIX - FreeBSD"
-
-#~ msgid "UNIX - TRU64"
-#~ msgstr "UNIX - TRU64"
-
-#~ msgid "Novell - Modesto"
-#~ msgstr "Novell - Modesto"
-
-#~ msgid "UNIX - OpenBSD"
-#~ msgstr "UNIX - OpenBSD"
-
-#~ msgid "ARM"
-#~ msgstr "ARM"
-
-#~ msgid "Key to Flags:\n"
-#~ msgstr "Clave para las Opciones:\n"
-
-#~ msgid " W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-#~ msgstr " W (escribir), A (asignar), X (ejecutar), M (mezclar), S (cadenas)\n"
-
-#~ msgid " I (info), L (link order), G (group), x (unknown)\n"
-#~ msgstr " I (información), L (orden de enlazado), G (grupo), x (desconocido)\n"
-
-#~ msgid " O (extra OS processing required) o (OS specific), p (processor specific)\n"
-#~ msgstr " O (se requiere procesamiento extra de SO) o (específico SO), p (específico procesador)\n"
-
-#~ msgid "Unable to handle FORM: %d"
-#~ msgstr "No se puede manejar FORM: %d"
-
-#~ msgid "64 bit data type and so it cannot read 64 bit ELF files.\n"
-#~ msgstr "tipo de datos de 64 bit así que no puede leer fichero ELF de 64 bit.\n"
diff --git a/binutils-2.17/binutils/po/fi.gmo b/binutils-2.17/binutils/po/fi.gmo
deleted file mode 100644
index 55d819ee..00000000
--- a/binutils-2.17/binutils/po/fi.gmo
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/po/fi.po b/binutils-2.17/binutils/po/fi.po
deleted file mode 100644
index 9db2f24b..00000000
--- a/binutils-2.17/binutils/po/fi.po
+++ /dev/null
@@ -1,5770 +0,0 @@
-# Finnish messages for binutils.
-# Copyright (C) 2005 Free Software Foundation, Inc.
-# This file is distributed under the same license as the binutils package.
-# Jorma Karvonen <karvjorm@users.sourceforge.net>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: binutils 2.15.96\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-03 21:03+1030\n"
-"PO-Revision-Date: 2005-11-19 14:57+0200\n"
-"Last-Translator: Jorma Karvonen <karvjorm@users.sourceforge.net>\n"
-"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Finnish\n"
-"X-Poedit-Country: FINLAND\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-# Käytetty option(s)-suomennoksessa monikkomuotoa. Samoin sanat addr(s) suomennettu monikon partitiivilla.
-#: addr2line.c:73
-#, c-format
-msgid "Usage: %s [option(s)] [addr(s)]\n"
-msgstr "Käyttö: %s [valitsimet] [osoitteita]\n"
-
-#: addr2line.c:74
-#, c-format
-msgid " Convert addresses into line number/file name pairs.\n"
-msgstr " Muuntaa osoitteet rivinumero-tiedostonimipareiksi.\n"
-
-#: addr2line.c:75
-#, c-format
-msgid " If no addresses are specified on the command line, they will be read from stdin\n"
-msgstr " Jos komentorivillä ei ole määritelty osoitteita, ne luetaan vakiosyötteestä\n"
-
-#: addr2line.c:76
-#, c-format
-msgid ""
-" The options are:\n"
-" -b --target=<bfdname> Set the binary file format\n"
-" -e --exe=<executable> Set the input file name (default is a.out)\n"
-" -s --basenames Strip directory names\n"
-" -f --functions Show function names\n"
-" -C --demangle[=style] Demangle function names\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Valitsimet ovat:\n"
-" -b --target=<bfd-nimi> Asettaa binaaritiedoston muodon\n"
-" -e --exe=<suoritustiedosto> Asettaa syötetiedoston nimen (oletus on a.out)\n"
-" -s --basenames Poistaa hakemistonimet\n"
-" -f --functions Näyttää funktionimet\n"
-" -C --demangle[=tyyli] Eheyttää funktionimet\n"
-" -h --help Näyttää nämä tiedot\n"
-" -v --version Näyttää ohjelman version\n"
-"\n"
-
-#: addr2line.c:88 ar.c:263 coffdump.c:467 nlmconv.c:1110 objcopy.c:478
-#: objcopy.c:512 readelf.c:2631 size.c:99 srconv.c:1731 strings.c:667
-#: sysdump.c:655 windres.c:672
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr ""
-"Ilmoita ohjelmistovioista englanniksi osoitteeseen %s\n"
-"Suomennoksen virheistä voi ilmoittaa (suomeksi) osoitteeseen <mailto:translation-team-fi@lists.sourceforge.net>\n"
-
-#: addr2line.c:241
-#, c-format
-msgid "%s: can not get addresses from archive"
-msgstr "%s: osoitteita ei saa arkistosta"
-
-#: addr2line.c:311 nm.c:1519 objdump.c:2848
-#, c-format
-msgid "unknown demangling style `%s'"
-msgstr "tuntematon eheytystyyli \"%s\""
-
-#: ar.c:205
-#, c-format
-msgid "no entry %s in archive\n"
-msgstr "arkistossa ei ole alkiota %s\n"
-
-#: ar.c:221
-#, c-format
-msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"
-msgstr "Käyttö: %s [emulointivalitsimet] [-]{dmpqrstx}[abcfilNoPsSuvV] [jäsennimi] [lukumäärä] arkistotiedosto tiedosto...\n"
-
-#: ar.c:224
-#, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr " %s -M [<mri-skripti]\n"
-
-#: ar.c:225
-#, c-format
-msgid " commands:\n"
-msgstr " komennot:\n"
-
-#: ar.c:226
-#, c-format
-msgid " d - delete file(s) from the archive\n"
-msgstr " d - poistaa tiedosto(t) arkistosta\n"
-
-#: ar.c:227
-#, c-format
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr " m[ab] - siirtää tiedosto(t) arkistoon\n"
-
-#: ar.c:228
-#, c-format
-msgid " p - print file(s) found in the archive\n"
-msgstr " p - tulostaa arkistosta löytyvät tiedosto(t)\n"
-
-#: ar.c:229
-#, c-format
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr " q[f] - liittää tiedosto(t) nopeasti arkiston loppuun\n"
-
-#: ar.c:230
-#, c-format
-msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr " r[ab][f][u] - korvaa olemassa oleva(t) tai lisää uudet tiedosto(t) arkistoon\n"
-
-#: ar.c:231
-#, c-format
-msgid " t - display contents of archive\n"
-msgstr " t - näyttää arkiston sisällön\n"
-
-#: ar.c:232
-#, c-format
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr " x[o] - purkaa tiedosto(t) arkistosta\n"
-
-# modifiers on tässä sama kuin options
-#: ar.c:233
-#, c-format
-msgid " command specific modifiers:\n"
-msgstr " komentokohtaiset valitsimet:\n"
-
-#: ar.c:234
-#, c-format
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr " [a] - sijoittaa tiedosto(t) kohteen [jäsennimi] jälkeen\n"
-
-#: ar.c:235
-#, c-format
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr " [b] - laittaa tiedosto(t) kohteen [jäsennimi] edelle (sama kuin [i])\n"
-
-# Otaksun, että kyse on jostain taulukkomuotoisesta oliosta, jossa on lukumäärän osoittama määrä alkioita. Ohjelmointikielissä se merkataan yleensä olio[5] tai nimi[5]. Valitsimella valitaan ilmeisesti tämän muotoinen ilmentymä.
-#: ar.c:236
-#, c-format
-msgid " [N] - use instance [count] of name\n"
-msgstr " [N] - käyttää nimen[lukumäärä]-ilmentymää\n"
-
-#: ar.c:237
-#, c-format
-msgid " [f] - truncate inserted file names\n"
-msgstr " [f] - katkaisee lisätyt tiedostonimet\n"
-
-#: ar.c:238
-#, c-format
-msgid " [P] - use full path names when matching\n"
-msgstr " [P] - käyttää täyttä polkunimeä, kun se täsmää\n"
-
-#: ar.c:239
-#, c-format
-msgid " [o] - preserve original dates\n"
-msgstr " [o] - säilyttää alkuperäiset päiväykset\n"
-
-#: ar.c:240
-#, c-format
-msgid " [u] - only replace files that are newer than current archive contents\n"
-msgstr " [u] - korvaa vain tiedostot, jotka ovat arkiston nykysisältöä uudempia\n"
-
-# modifiers on tässä sama kuin options
-#: ar.c:241
-#, c-format
-msgid " generic modifiers:\n"
-msgstr " yleiset valitsimet:\n"
-
-#: ar.c:242
-#, c-format
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr " [c] - ei varoita, jos kirjasto pitää luoda\n"
-
-#: ar.c:243
-#, c-format
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr " [s] - luo arkiston sisältöhakemiston (vrt. ranlib)\n"
-
-#: ar.c:244
-#, c-format
-msgid " [S] - do not build a symbol table\n"
-msgstr " [S] - ei koosta symbolitaulua\n"
-
-#: ar.c:245
-#, c-format
-msgid " [v] - be verbose\n"
-msgstr " [v] - monisanaisesti\n"
-
-#: ar.c:246
-#, c-format
-msgid " [V] - display the version number\n"
-msgstr " [V] - näyttää versionumeron\n"
-
-#: ar.c:253
-#, c-format
-msgid "Usage: %s [options] archive\n"
-msgstr "Käyttö: %s [valitsimet] arkisto\n"
-
-#: ar.c:254
-#, c-format
-msgid " Generate an index to speed access to archives\n"
-msgstr " Luo sisältöhakemiston nopeuttamaan arkistohakua\n"
-
-#: ar.c:255
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" Valitsimet ovat:\n"
-" -h --help Tulostaa tämän ohjeen\n"
-" -V --version Tulostaa versiotiedot\n"
-
-#: ar.c:483
-msgid "two different operation options specified"
-msgstr "kaksi erilaista toimintavalitsinta annettu"
-
-#: ar.c:558
-#, c-format
-msgid "illegal option -- %c"
-msgstr "virheellinen valitsin -- %c"
-
-#: ar.c:604
-msgid "no operation specified"
-msgstr "mitään toimintaa ei ole annettu"
-
-#: ar.c:607
-msgid "`u' is only meaningful with the `r' option."
-msgstr "\"u\" on merkityksellinen vain \"r\"-valitsimen kanssa."
-
-#: ar.c:615
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr "\"N\" on merkityksellinen vain \"x\"- ja \"d\"-valitsimien kanssa."
-
-#: ar.c:618
-msgid "Value for `N' must be positive."
-msgstr "Arvon \"N\" on oltava positiivinen."
-
-#: ar.c:668
-#, c-format
-msgid "internal error -- this option not implemented"
-msgstr "sisäinen virhe -- tätä valitsinta ei ole toteutettu"
-
-#: ar.c:737
-#, c-format
-msgid "creating %s"
-msgstr "luodaan %s"
-
-# stat on *nix-ympäristön vakiokomentoja (katso: man stat)
-#: ar.c:786 ar.c:836 ar.c:1154 objcopy.c:1603
-#, c-format
-msgid "internal stat error on %s"
-msgstr "sisäinen stat-kutsuvirhe kohteessa %s"
-
-#: ar.c:790
-#, c-format
-msgid ""
-"\n"
-"<%s>\n"
-"\n"
-msgstr ""
-"\n"
-"<%s>\n"
-"\n"
-
-#: ar.c:806 ar.c:873
-#, c-format
-msgid "%s is not a valid archive"
-msgstr "%s ei ole kelvollinen arkisto"
-
-# stat on *nix-ympäristön vakiokomentoja (katso: man stat)
-#: ar.c:841
-#, c-format
-msgid "stat returns negative size for %s"
-msgstr "stat-kutsu palauttaa negatiivisen koon kohteelle %s"
-
-#: ar.c:1059
-#, c-format
-msgid "No member named `%s'\n"
-msgstr "Millään jäsenellä ei ole nimeä \"%s\"\n"
-
-#: ar.c:1109
-#, c-format
-msgid "no entry %s in archive %s!"
-msgstr "ei alkiota %s arkistossa %s!"
-
-# Ruotsinkielisessä käännöksessä todetaan, että archive map on lähdekoodissa sama kuin indeksi, tarkoittanee tässä sisältöhakemistoa?
-#: ar.c:1246
-#, c-format
-msgid "%s: no archive map to update"
-msgstr "%s: ei sisältöhakemistoa päivitettävänä"
-
-#: arsup.c:83
-#, c-format
-msgid "No entry %s in archive.\n"
-msgstr "Ei alkiota %s arkistossa.\n"
-
-#: arsup.c:109
-#, c-format
-msgid "Can't open file %s\n"
-msgstr "Tiedostoa %s ei voi avata\n"
-
-#: arsup.c:162
-#, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr "%s: Ei voi avata tulostearkistoa %s\n"
-
-#: arsup.c:179
-#, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr "%s: Ei voi avata syötearkistoa %s\n"
-
-#: arsup.c:188
-#, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr "%s: tiedosto %s ei ole arkisto\n"
-
-#: arsup.c:227
-#, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr "%s: tulostearkistoa ei ole vielä annettu\n"
-
-#: arsup.c:247 arsup.c:285 arsup.c:327 arsup.c:347 arsup.c:413
-#, c-format
-msgid "%s: no open output archive\n"
-msgstr "%s: ei avointa tulostearkistoa\n"
-
-#: arsup.c:258 arsup.c:368 arsup.c:394
-#, c-format
-msgid "%s: can't open file %s\n"
-msgstr "%s: ei voi avata tiedostoa %s\n"
-
-# Ruotsinkielisessä käännöksessä todetaan, että module file on sama kuin jäsen
-#: arsup.c:312 arsup.c:390 arsup.c:471
-#, c-format
-msgid "%s: can't find module file %s\n"
-msgstr "%s: ei voi löytää jäsentä %s\n"
-
-#: arsup.c:422
-#, c-format
-msgid "Current open archive is %s\n"
-msgstr "Nykyinen avoin arkisto on %s\n"
-
-#: arsup.c:446
-#, c-format
-msgid "%s: no open archive\n"
-msgstr "%s: ei avointa arkistoa\n"
-
-#: binemul.c:37
-#, c-format
-msgid " No emulation specific options\n"
-msgstr " Ei emulointikohtaisia valitsimia\n"
-
-#. Macros for common output.
-#: binemul.h:42
-#, c-format
-msgid " emulation options: \n"
-msgstr " emulointivalitsimet: \n"
-
-#: bucomm.c:109
-#, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr "ei voi asettaa BFD-oletuskohteeksi \"%s\": %s"
-
-#: bucomm.c:120
-#, c-format
-msgid "%s: Matching formats:"
-msgstr "%s: Täsmäävät muodot:"
-
-#: bucomm.c:135
-#, c-format
-msgid "Supported targets:"
-msgstr "Tuetut kohteet:"
-
-#: bucomm.c:137
-#, c-format
-msgid "%s: supported targets:"
-msgstr "%s: tuetut kohteet:"
-
-#: bucomm.c:153
-#, c-format
-msgid "Supported architectures:"
-msgstr "Tuetut arkkitehtuurit:"
-
-#: bucomm.c:155
-#, c-format
-msgid "%s: supported architectures:"
-msgstr "%s: tuetut arkkitehtuurit:"
-
-#: bucomm.c:348
-#, c-format
-msgid "BFD header file version %s\n"
-msgstr "BFD-otsaketiedoston versio %s\n"
-
-#: bucomm.c:449
-#, c-format
-msgid "%s: bad number: %s"
-msgstr "%s: virheellinen numero: %s"
-
-# stat-kutsu epäonnistui, ensimmäinen parametri on tiedostonimi
-#: bucomm.c:466 strings.c:386
-#, c-format
-msgid "'%s': No such file"
-msgstr "Tiedostoa \"%s\" ei löydy"
-
-# stat-kutsu epäonnistui, ensimmäinen parametri on tiedostonimi
-#: bucomm.c:468 strings.c:388
-#, c-format
-msgid "Warning: could not locate '%s'. reason: %s"
-msgstr "Varoitus: tiedostoa \"%s\" ei löytynyt. syy: %s"
-
-#: bucomm.c:472
-#, c-format
-msgid "Warning: '%s' is not an ordinary file"
-msgstr "Varoitus: \"%s\" ei ole tavallinen tiedosto"
-
-#: coffdump.c:105
-#, c-format
-msgid "#lines %d "
-msgstr "#rivit %d "
-
-#: coffdump.c:459 sysdump.c:648
-#, c-format
-msgid "Usage: %s [option(s)] in-file\n"
-msgstr "Käyttö: %s [valitsimet] syötetiedosto\n"
-
-# Microsoft Portable Executable and CommonObject
-# FileFormat Specification, Revision 6.0-dokumentin mukaan
-# "object file" on tiedosto, joka annetaan syötteenä
-# linkkerille. Linkkeri tuottaa "image file":n, jota
-# vuorostaan käytetään syötteenä ohjelmalataajalle. Termi
-# "object file" ei välttämättä sisällä mitään yhteyttä
-# olioperustaiseen ohjelmointiin.
-#: coffdump.c:460
-#, c-format
-msgid " Print a human readable interpretation of a SYSROFF object file\n"
-msgstr " Tulosta luettavamerkkinen SYSROFF-objektitiedoston tulkinta\n"
-
-#: coffdump.c:461
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Valitsimet ovat:\n"
-" -h --help Näyttää nämä tiedot\n"
-" -v --version Näyttää ohjelman version\n"
-"\n"
-
-#: coffdump.c:527 srconv.c:1819 sysdump.c:710
-msgid "no input file specified"
-msgstr "syötetiedostoa ei ole annettu"
-
-#: debug.c:648
-msgid "debug_add_to_current_namespace: no current file"
-msgstr "debug_add_to_current_namespace: ei nykyistä tiedostoa"
-
-#: debug.c:727
-msgid "debug_start_source: no debug_set_filename call"
-msgstr "debug_start_source: ei debug_set_filename-kutsua"
-
-#: debug.c:783
-msgid "debug_record_function: no debug_set_filename call"
-msgstr "debug_record_function: ei debug_set_filename-kutsua"
-
-#: debug.c:835
-msgid "debug_record_parameter: no current function"
-msgstr "debug_record_parameter: ei nykyistä funktiota"
-
-#: debug.c:867
-msgid "debug_end_function: no current function"
-msgstr "debug_end_function: ei nykyistä funktiota"
-
-#: debug.c:873
-msgid "debug_end_function: some blocks were not closed"
-msgstr "debug_end_function: joitakin lohkoja ei ollut suljettu"
-
-#: debug.c:901
-msgid "debug_start_block: no current block"
-msgstr "debug_start_block: ei nykyistä lohkoa"
-
-#: debug.c:937
-msgid "debug_end_block: no current block"
-msgstr "debug_end_block: ei nykyistä lohkoa"
-
-#: debug.c:944
-msgid "debug_end_block: attempt to close top level block"
-msgstr "debug_end_block: yritettiin sulkea ylimmän tason lohko"
-
-#: debug.c:967
-msgid "debug_record_line: no current unit"
-msgstr "debug_record_line: ei nykyistä yksikköä"
-
-#. FIXME
-#: debug.c:1020
-msgid "debug_start_common_block: not implemented"
-msgstr "debug_start_common_block: ei toteutettu"
-
-#. FIXME
-#: debug.c:1031
-msgid "debug_end_common_block: not implemented"
-msgstr "debug_end_common_block: ei toteutettu"
-
-#. FIXME.
-#: debug.c:1115
-msgid "debug_record_label: not implemented"
-msgstr "debug_record_label: ei toteutettu"
-
-#: debug.c:1137
-msgid "debug_record_variable: no current file"
-msgstr "debug_record_variable: ei nykyistä tiedostoa"
-
-# Ratkaisin tämän kohdan samalla tavalla kuin ruotsinkielisessä käännöksessä: kind tulee DEBUG_KIND_UNION-tyyppisestä tyyppinimestä. Ennen tätä ilmoitusta lähdekoodissa tutkitaan, onko debuggaustyyppi struct, union, class, union class vai enum ja jos mikään ei täsmää, palautetaan debug_type_null.
-#: debug.c:1665
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr "debug_make_undefined_type: lajittelua ei tueta"
-
-#: debug.c:1842
-msgid "debug_name_type: no current file"
-msgstr "debug_name_type: ei nykyistä tiedostoa"
-
-#: debug.c:1887
-msgid "debug_tag_type: no current file"
-msgstr "debug_tag_type: ei nykyistä tiedostoa"
-
-#: debug.c:1895
-msgid "debug_tag_type: extra tag attempted"
-msgstr "debug_tag_type: yritetty asettaa ylimääräinen tunniste"
-
-#: debug.c:1932
-#, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr "Varoitus: tyyppikoko %d muutetaan kokoon %d\n"
-
-#: debug.c:1954
-msgid "debug_find_named_type: no current compilation unit"
-msgstr "debug_find_named_type: ei nykyistä käännösyksikköä"
-
-# Ihan outo käsite
-#: debug.c:2057
-#, fuzzy, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr "debug_get_real_type: kehä-debug-tietoa kohteella %s\n"
-
-#: debug.c:2484
-msgid "debug_write_type: illegal type encountered"
-msgstr "debug_write_type: kohdattu virheellinen tyyppi"
-
-#: dlltool.c:773 dlltool.c:797 dlltool.c:826
-#, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr "Sisäinen virhe: Tuntematon konetyyppi: %d"
-
-#: dlltool.c:862
-#, c-format
-msgid "Can't open def file: %s"
-msgstr "Ei voi avata def-tiedostoa: %s"
-
-#: dlltool.c:867
-#, c-format
-msgid "Processing def file: %s"
-msgstr "Käsitellään def-tiedostoa: %s"
-
-#: dlltool.c:871
-msgid "Processed def file"
-msgstr "Käsiteltiin def-tiedostoa"
-
-#: dlltool.c:895
-#, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr "Syntaksivirhe def-tiedostossa %s:%d"
-
-# Microsoft Portable Executable and Common Object
-#  File Format Specification, Revision 6.0-dokumentin mukaan
-# "image file" on suoritettava tiedosto joko .EXE- tai
-# .DLL-muodossa. Sitä voidaan pitää "memory imgage":na.
-# Termiä "image file" on tavallisesti käytetty termin
-# "executable file" sijasta, koska jälkimmäisen joskus
-# oletetaan tarkoittavan vain .EXE-tiedostoa.
-#: dlltool.c:930
-#, c-format
-msgid "%s: Path components stripped from image name, '%s'."
-msgstr "%s: Polkukomponentit riisuttu tiedostovedosnimestä, \"%s\"."
-
-# A DEF file contains any number of the following commands:
-# NAME <name> [ , <base> ]
-# The result is going to be <name>.EXE
-#: dlltool.c:939
-#, c-format
-msgid "NAME: %s base: %x"
-msgstr "NAME-komento: %s kantaluku: %x"
-
-#: dlltool.c:942 dlltool.c:958
-msgid "Can't have LIBRARY and NAME"
-msgstr "Määriteltynä ei voi olla sekä LIBRARY- että NAME-komento"
-
-# A DEF file contains any number of the following commands:
-# LIBRARY <name> [ , <base> ]
-# The result is going to be <name>.DLL
-#: dlltool.c:955
-#, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr "LIBRARY-komento: %s kantaluku: %x"
-
-# Lähdekoodissa tämä oli status error -tuloste
-#: dlltool.c:1191 resrc.c:269
-#, c-format
-msgid "wait: %s"
-msgstr "wait-tilavirhe: %s"
-
-#: dlltool.c:1196 dllwrap.c:418 resrc.c:274
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr "aliprosessi sai tuhoisan signaalin %d"
-
-# Ensimmäinen parametri on ohjelma, josta poistutaan (esim. "ld").
-#: dlltool.c:1202 dllwrap.c:425 resrc.c:281
-#, c-format
-msgid "%s exited with status %d"
-msgstr "%s-ohjelmasta poistuttiin tilassa %d"
-
-# Microsoft Portable Executable and Common Object
-#  File Format Specification, Revision 6.0-dokumentin mukaan
-# "section" on PE/COFF-tiedoston sisällä koodin ja datan
-# perusyksikkö. Objektitiedostossa, esimerkiksi, kaikki
-# koodi voidaan yhdistää yhdeksi lohkoksi, tai (riippuen
-# kääntäjän toiminnasta) jokainen funktio voi varata oman
-# lohkon. "Section" on hämärästi samanlainen kuin "section"
-# Intel® 8086-arkkitehtuurissa.
-#: dlltool.c:1233
-#, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr "Imetään tietoja lohkosta %s kohteessa %s"
-
-#: dlltool.c:1358
-#, c-format
-msgid "Excluding symbol: %s"
-msgstr "Poissulkeva symboli: %s"
-
-#: dlltool.c:1447 dlltool.c:1458 nm.c:998 nm.c:1009
-#, c-format
-msgid "%s: no symbols"
-msgstr "%s: ei symboleja"
-
-#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1484
-#, c-format
-msgid "Done reading %s"
-msgstr "Luettu %s"
-
-#: dlltool.c:1494
-#, c-format
-msgid "Unable to open object file: %s"
-msgstr "Objektitiedostoa %s ei voi avata"
-
-#: dlltool.c:1497
-#, c-format
-msgid "Scanning object file %s"
-msgstr "Selataan objektitiedostoa %s"
-
-#: dlltool.c:1512
-#, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr "Ei voi tuottaa mcore-elf-dll:ää arkistotiedostosta: %s"
-
-#: dlltool.c:1598
-msgid "Adding exports to output file"
-msgstr "Viennit lisätään tulostetiedostoon"
-
-#: dlltool.c:1646
-msgid "Added exports to output file"
-msgstr "Viennit lisätty tulostetiedostoon"
-
-#: dlltool.c:1767
-#, c-format
-msgid "Generating export file: %s"
-msgstr "Luodaan vientitiedosto: %s"
-
-#: dlltool.c:1772
-#, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr "Ei voi avata tilapäistä assembler-tiedostoa: %s"
-
-#: dlltool.c:1775
-#, c-format
-msgid "Opened temporary file: %s"
-msgstr "Avattu tilapäinen tiedosto: %s"
-
-# exports file == export file ??
-#: dlltool.c:1997
-msgid "Generated exports file"
-msgstr "Luotu vientitiedosto"
-
-# stub on PE-tiedostoon sisällytetty ohjelma, joka esimerkiksi MS-DOS-ikkunassa ilmoittaa "This program cannot be run in DOS mode"
-#: dlltool.c:2203
-#, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr "bfd_open ei onnistunut avaamaan stub-tiedostoa: %s"
-
-#: dlltool.c:2206
-#, c-format
-msgid "Creating stub file: %s"
-msgstr "Luodaan stub-tiedosto: %s"
-
-#: dlltool.c:2588
-#, c-format
-msgid "failed to open temporary head file: %s"
-msgstr "ei onnistuttu avaamaan tilapäistä head-tiedostoa: %s"
-
-#: dlltool.c:2647
-#, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr "ei onnistuttu avamaan tilapäistä tail-tiedostoa: %s"
-
-#: dlltool.c:2714
-#, c-format
-msgid "Can't open .lib file: %s"
-msgstr "Ei voi avata .lib-tiedostoa: %s"
-
-#: dlltool.c:2717
-#, c-format
-msgid "Creating library file: %s"
-msgstr "Luodaan kirjastotiedosto: %s"
-
-#: dlltool.c:2800 dlltool.c:2806
-#, c-format
-msgid "cannot delete %s: %s"
-msgstr "ei voi poistaa kohdetta %s: %s"
-
-#: dlltool.c:2811
-msgid "Created lib file"
-msgstr "Luotu lib-tiedosto"
-
-#: dlltool.c:2904
-#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr "Varoitus, ei välitetä EXPORT-kaksoiskappaleesta %s %d,%d"
-
-# Viimeisen sanan pitäisi ilmeisesti olla ordinals
-#: dlltool.c:2910
-#, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr "Virhe, EXPORT-kaksoiskappale järjestysluvuilla: %s"
-
-#: dlltool.c:3026
-msgid "Processing definitions"
-msgstr "Käsitellään määrittelyjä"
-
-#: dlltool.c:3058
-msgid "Processed definitions"
-msgstr "Käsiteltiin määrittelyjä"
-
-#. xgetext:c-format
-#: dlltool.c:3065 dllwrap.c:479
-#, c-format
-msgid "Usage %s <option(s)> <object-file(s)>\n"
-msgstr "Käyttö %s <valitsimet> <objektitiedosto(t)>\n"
-
-#. xgetext:c-format
-#: dlltool.c:3067
-#, c-format
-msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr " -m --machine <kone> Luodaan DLL:nä kohteelle <kone>. [oletus: %s]\n"
-
-#: dlltool.c:3068
-#, c-format
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-msgstr " mahdolliset <koneet>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-
-#: dlltool.c:3069
-#, c-format
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr " -e --output-exp <tulostenimi> Luo vientitiedoston.\n"
-
-#: dlltool.c:3070
-#, c-format
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr " -l --output-lib <tulostenimi> Luo rajapintakirjaston.\n"
-
-# Lisäsin lainausmerkit käsitteen selventämiseksi
-#: dlltool.c:3071
-#, c-format
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr " -a --add-indirect Lisää \"dll indirects\" vientitiedostoon.\n"
-
-#: dlltool.c:3072
-#, c-format
-msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr " -D --dllname <nimi> Rajapintakirjastoon sijoitettavan syöte-dll:n nimi.\n"
-
-#: dlltool.c:3073
-#, c-format
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr " -d --input-def <def-tiedosto> Luettavan .def-syötetiedoston nimi.\n"
-
-#: dlltool.c:3074
-#, c-format
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr " -z --output-def <def-tiedosto> Luotavan .def-tiedoston nimi.\n"
-
-#: dlltool.c:3075
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols Vie kaikki symbolit .def-tiedostoon\n"
-
-#: dlltool.c:3076
-#, c-format
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr " --no-export-all-symbols Vie vain luetellut symbolit\n"
-
-# Tässä "list" suomennettiin sanalla "lista", koska ohjetekstin jälkiosan tekstin alku ei osu samalle kohdalle eri riveillä, jos alkuosa on liian pitkä.
-#: dlltool.c:3077
-#, c-format
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr " --exclude-symbols <lista> Ei vie <listan> symboleja\n"
-
-#: dlltool.c:3078
-#, c-format
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr " --no-default-excludes Nollaa oletuspoissulkevat symbolit\n"
-
-#: dlltool.c:3079
-#, c-format
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr " -b --base-file <kantatiedosto> Lukee linkkerin luoman kantatiedoston.\n"
-
-#: dlltool.c:3080
-#, c-format
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr " -x --no-idata4 Ei luo idata$4-lohkoa.\n"
-
-#: dlltool.c:3081
-#, c-format
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr " -c --no-idata5 Ei luo idata$5-lohkoa.\n"
-
-#: dlltool.c:3082
-#, c-format
-msgid " -U --add-underscore Add underscores to symbols in interface library.\n"
-msgstr " -U --add-underscore Lisää alaviivat rajapintakirjaston symboleihin.\n"
-
-#: dlltool.c:3083
-#, c-format
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr " -k --kill-at Tuhoaa @<numeron> viedyistä nimistä.\n"
-
-#: dlltool.c:3084
-#, c-format
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr " -A --add-stdcall-alias Lisää aliaksia ilman @<numeroa>.\n"
-
-#: dlltool.c:3085
-#, c-format
-msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
-msgstr " -p --ext-prefix-alias <etuliite> Lisää aliaksiin <etuliite>.\n"
-
-#: dlltool.c:3086
-#, c-format
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr " -S --as <nimi> Käyttää <nimeä> assemblerina.\n"
-
-#: dlltool.c:3087
-#, c-format
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr " -f --as-flags <liput> Välittää <liput> assemblerille.\n"
-
-#: dlltool.c:3088
-#, c-format
-msgid " -C --compat-implib Create backward compatible import library.\n"
-msgstr " -C --compat-implib Luo taaksepäin yhteensopivan tuontikirjaston.\n"
-
-# Laskuria dontdeltemps kasvatetaan joka kerta kun -n esiintyy komentorivillä.
-#: dlltool.c:3089
-#, c-format
-msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
-msgstr " -n --no-delete Pitää tilapäistiedostot (toisto lisäsäilytykseksi).\n"
-
-#: dlltool.c:3090
-#, c-format
-msgid " -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
-msgstr " -t --temp-prefix <etuliite> Liittää <etuliitteen> tilapäistiedostojen nimen eteen.\n"
-
-#: dlltool.c:3091
-#, c-format
-msgid " -v --verbose Be verbose.\n"
-msgstr " -v --verbose Monisanaisesti.\n"
-
-#: dlltool.c:3092
-#, c-format
-msgid " -V --version Display the program version.\n"
-msgstr " -V --version Näyttää ohjelman version.\n"
-
-#: dlltool.c:3093
-#, c-format
-msgid " -h --help Display this information.\n"
-msgstr " -h --help Näyttää nämä tiedot.\n"
-
-#: dlltool.c:3095
-#, c-format
-msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr " -M --mcore-elf <tulostenimi> Käsittelee mcore-elf-objektitiedostot kohteeseen <tulostenimi>.\n"
-
-#: dlltool.c:3096
-#, c-format
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr " -L --linker <nimi> Käyttää parametriä <nimi> linkkerinä.\n"
-
-#: dlltool.c:3097
-#, c-format
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr " -F --linker-flags <liput> Välittää <liput> linkkerille.\n"
-
-#: dlltool.c:3211
-#, c-format
-msgid "Path components stripped from dllname, '%s'."
-msgstr "Polkukomponentit riisuttu dll-nimestä, \"%s\"."
-
-#: dlltool.c:3256
-#, c-format
-msgid "Unable to open base-file: %s"
-msgstr "Ei voi avata kantatiedostoa: %s"
-
-#: dlltool.c:3288
-#, c-format
-msgid "Machine '%s' not supported"
-msgstr "Konetta \"%s\" ei tueta"
-
-#: dlltool.c:3392 dllwrap.c:209
-#, c-format
-msgid "Tried file: %s"
-msgstr "Yritettiin tiedostoa: %s"
-
-#: dlltool.c:3399 dllwrap.c:216
-#, c-format
-msgid "Using file: %s"
-msgstr "Käytetään tiedostoa: %s"
-
-#: dllwrap.c:299
-#, c-format
-msgid "Keeping temporary base file %s"
-msgstr "Tilapäinen kantatiedosto %s pidetään"
-
-#: dllwrap.c:301
-#, c-format
-msgid "Deleting temporary base file %s"
-msgstr "Tilapäinen kantatiedosto %s poistetaan"
-
-#: dllwrap.c:315
-#, c-format
-msgid "Keeping temporary exp file %s"
-msgstr "Tilapäinen exp-tiedosto %s pidetään"
-
-#: dllwrap.c:317
-#, c-format
-msgid "Deleting temporary exp file %s"
-msgstr "Tilapäinen exp-tiedosto %s poistetaan"
-
-#: dllwrap.c:330
-#, c-format
-msgid "Keeping temporary def file %s"
-msgstr "Tilapäinen def-tiedosto %s pidetään"
-
-#: dllwrap.c:332
-#, c-format
-msgid "Deleting temporary def file %s"
-msgstr "Tilapäinen def-tiedosto %s poistetaan"
-
-#: dllwrap.c:480
-#, c-format
-msgid " Generic options:\n"
-msgstr " Yleiset valitsimet:\n"
-
-#: dllwrap.c:481
-#, c-format
-msgid " --quiet, -q Work quietly\n"
-msgstr " --quiet, -q Työskentelee hiljaa\n"
-
-#: dllwrap.c:482
-#, c-format
-msgid " --verbose, -v Verbose\n"
-msgstr " --verbose, -v Monisanaisesti\n"
-
-#: dllwrap.c:483
-#, c-format
-msgid " --version Print dllwrap version\n"
-msgstr " --version Tulostaa dllwrap-version\n"
-
-#: dllwrap.c:484
-#, c-format
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr " --implib <tulostenimi> Synonyymi valitsimelle --output-lib\n"
-
-#: dllwrap.c:485
-#, c-format
-msgid " Options for %s:\n"
-msgstr " Valitsimet kohteelle %s:\n"
-
-#: dllwrap.c:486
-#, c-format
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr " --driver-name <driveri> Oletukset kohteelle \"gcc\"\n"
-
-#: dllwrap.c:487
-#, c-format
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr " --driver-flags <liput> Syrjäyttää ld-oletusliput\n"
-
-#: dllwrap.c:488
-#, c-format
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr " --dlltool-name <dlltool> Oletukset kohteelle \"dlltool\"\n"
-
-#: dllwrap.c:489
-#, c-format
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr " --entry <tulokohta> Määrittelee vaihtoehtoisen DLL-tulokohdan\n"
-
-#: dllwrap.c:490
-#, c-format
-msgid " --image-base <base> Specify image base address\n"
-msgstr " --image-base <base> Määrittelee tiedostovedoksen kantaosoitteen\n"
-
-#: dllwrap.c:491
-#, c-format
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr " --target <kone> i386-cygwin32 tai i386-mingw32\n"
-
-# Samalla tavalla kuin ruotsinnoksessa
-#: dllwrap.c:492
-#, c-format
-msgid " --dry-run Show what needs to be run\n"
-msgstr " --dry-run Näyttää mitä pitää ajaa, ei toteuta\n"
-
-#: dllwrap.c:493
-#, c-format
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr " --mno-cygwin Luo Mingw DLL:n\n"
-
-#: dllwrap.c:494
-#, c-format
-msgid " Options passed to DLLTOOL:\n"
-msgstr " DLLTOOL:lle välitetyt valitsimet:\n"
-
-#: dllwrap.c:495
-#, c-format
-msgid " --machine <machine>\n"
-msgstr " --machine <kone>\n"
-
-#: dllwrap.c:496
-#, c-format
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr " --output-exp <tulostenimi> Luo vientitiedoston.\n"
-
-#: dllwrap.c:497
-#, c-format
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr " --output-lib <tulostenimi> Luo syötekirjaston.\n"
-
-# Lisäsin lainausmerkit selventämään käsitettä
-#: dllwrap.c:498
-#, c-format
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr " --add-indirect Lisää \"dll indirects\" vientitiedostoon.\n"
-
-#: dllwrap.c:499
-#, c-format
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr " --dllname <nimi> Tulostekirjastoon laitettavan syöte-dll:n nimi.\n"
-
-#: dllwrap.c:500
-#, c-format
-msgid " --def <deffile> Name input .def file\n"
-msgstr " --def <def-tiedosto> Asettaa .def-syötetiedoston nimen\n"
-
-#: dllwrap.c:501
-#, c-format
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr " --output-def <def-tiedosto> Asettaa .def-tulostetiedoston nimen\n"
-
-#: dllwrap.c:502
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols Vie kaikki symbolit kohteeseen .def\n"
-
-#: dllwrap.c:503
-#, c-format
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr " --no-export-all-symbols Vie vain .drectve-symbolit\n"
-
-#: dllwrap.c:504
-#, c-format
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr " --exclude-symbols <lista> Sulkee pois symbolit <listasta> .def\n"
-
-#: dllwrap.c:505
-#, c-format
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr " --no-default-excludes Poistaa oletuspoissulkevat symbolit\n"
-
-#: dllwrap.c:506
-#, c-format
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr " --base-file <kantatiedosto> Lukee linkkerin luoman kantatiedoston\n"
-
-#: dllwrap.c:507
-#, c-format
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr " --no-idata4 Ei luo idata$4-lohkoa\n"
-
-#: dllwrap.c:508
-#, c-format
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr " --no-idata5 Ei luo idata$5-lohkoa\n"
-
-#: dllwrap.c:509
-#, c-format
-msgid " -U Add underscores to .lib\n"
-msgstr " -U Lisää alaviivat kohteeseen .lib\n"
-
-#: dllwrap.c:510
-#, c-format
-msgid " -k Kill @<n> from exported names\n"
-msgstr " -k Tuhoaa @<numeron> viedyistä nimistä\n"
-
-#: dllwrap.c:511
-#, c-format
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr " --add-stdcall-alias Lisää aliakset ilman @<numeroa>\n"
-
-#: dllwrap.c:512
-#, c-format
-msgid " --as <name> Use <name> for assembler\n"
-msgstr " --as <nimi> Käyttää ohjelmaa <nimi> assemblerina\n"
-
-#: dllwrap.c:513
-#, c-format
-msgid " --nodelete Keep temp files.\n"
-msgstr " --nodelete Pitää tilapäiset tiedostot.\n"
-
-# language driver tarkoittaa esimerkiksi gcc-kääntäjää
-#: dllwrap.c:514
-#, c-format
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr " Loput on välitetty sellaisenaan ohjelmointikieliyksikölle\n"
-
-#: dllwrap.c:784
-msgid "Must provide at least one of -o or --dllname options"
-msgstr "Valitsimista on annettava joko -o tai --dllname"
-
-#: dllwrap.c:813
-msgid ""
-"no export definition file provided.\n"
-"Creating one, but that may not be what you want"
-msgstr ""
-"vientimäärittelytiedostoa ei ole (erikseen) annettu.\n"
-"Sen tilalle luotava ei ehkä ole sellainen kuin haluat"
-
-# Välilyöntejä lisätty ennen kaksoispistettä, jotta kaksoispiste olisi rivien 973 ja 975 kanssa samalla kohtaa
-#: dllwrap.c:972
-#, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr "DLLTOOL-nimi : %s\n"
-
-#: dllwrap.c:973
-#, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr "DLLTOOL-valitsimet : %s\n"
-
-# DRIVER on esimerkiksi gcc eli compilation unit eli käännösyksikkö. Välilyöntejä lisätty ennen kaksoispistettä, jotta kaksoispiste olisi rivien 973 ja 975 kanssa samalla kohtaa
-#: dllwrap.c:974
-#, c-format
-msgid "DRIVER name : %s\n"
-msgstr "YKSIKKÖ-nimi : %s\n"
-
-# DRIVER on esimerkiksi gcc eli compilation unit eli käännösyksikkö
-#: dllwrap.c:975
-#, c-format
-msgid "DRIVER options : %s\n"
-msgstr "YKSIKKÖ-valitsimet : %s\n"
-
-#: emul_aix.c:51
-#, c-format
-msgid " [-g] - 32 bit small archive\n"
-msgstr " [-g] - 32-bittinen pieni arkisto\n"
-
-#: emul_aix.c:52
-#, c-format
-msgid " [-X32] - ignores 64 bit objects\n"
-msgstr " [-X32] - ei välitetä 64-bittisistä objekteista\n"
-
-#: emul_aix.c:53
-#, c-format
-msgid " [-X64] - ignores 32 bit objects\n"
-msgstr " [-X64] - ei välitetä 32-bittisistä objekteista\n"
-
-#: emul_aix.c:54
-#, c-format
-msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
-msgstr " [-X32_64] - hyväksyy 32- ja 64-bittiset objektit\n"
-
-# Lähdekoodin kommentti ennen tulostusta: Report an unexpected EOF in the IEEE debugging information.
-#: ieee.c:311
-msgid "unexpected end of debugging information"
-msgstr "odottamaton IEEE-debuggaus-tietojen loppu"
-
-#: ieee.c:398
-msgid "invalid number"
-msgstr "virheellinen numero"
-
-#: ieee.c:451
-msgid "invalid string length"
-msgstr "virheellinen merkkijonopituus"
-
-#: ieee.c:506 ieee.c:547
-msgid "expression stack overflow"
-msgstr "lausekepinon ylivuoto"
-
-#: ieee.c:526
-msgid "unsupported IEEE expression operator"
-msgstr "ei-tuettu IEEE-lausekeoperaattori"
-
-#: ieee.c:541
-msgid "unknown section"
-msgstr "tuntematon lohko"
-
-#: ieee.c:562
-msgid "expression stack underflow"
-msgstr "lausekepinon ehtyminen"
-
-#: ieee.c:576
-msgid "expression stack mismatch"
-msgstr "lausekepinon täsmäämättömyys"
-
-#: ieee.c:613
-msgid "unknown builtin type"
-msgstr "tuntematon rakenteeseen sisältyvä tyyppi"
-
-#: ieee.c:758
-msgid "BCD float type not supported"
-msgstr "ei-tuettu BCD-liukulukutyyppi"
-
-#: ieee.c:895
-msgid "unexpected number"
-msgstr "odottamaton numero"
-
-#: ieee.c:902
-msgid "unexpected record type"
-msgstr "odottamaton tietuetyyppi"
-
-#: ieee.c:935
-msgid "blocks left on stack at end"
-msgstr "lohkoja jäi pinoon lopussa"
-
-# Handle an IEEE BB record.
-#: ieee.c:1198
-msgid "unknown BB type"
-msgstr "tuntematon IEEE-BB-tietuetyyppi"
-
-#: ieee.c:1207
-msgid "stack overflow"
-msgstr "pinon ylivuoto"
-
-#: ieee.c:1230
-msgid "stack underflow"
-msgstr "pinon ehtyminen"
-
-#: ieee.c:1342 ieee.c:1412 ieee.c:2109
-msgid "illegal variable index"
-msgstr "virheellinen muuttujaindeksi"
-
-#: ieee.c:1390
-msgid "illegal type index"
-msgstr "virheellinen tyyppi-indeksi"
-
-#: ieee.c:1400 ieee.c:1437
-msgid "unknown TY code"
-msgstr "tuntematon TY-koodi"
-
-#: ieee.c:1419
-msgid "undefined variable in TY"
-msgstr "määrittelemätön muuttuja kohteessa TY"
-
-#. Pascal file name. FIXME.
-#: ieee.c:1830
-msgid "Pascal file name not supported"
-msgstr "Pascal-tiedostonimeä ei tueta"
-
-#: ieee.c:1878
-msgid "unsupported qualifier"
-msgstr "ei-tuettu tarkenne"
-
-#: ieee.c:2147
-msgid "undefined variable in ATN"
-msgstr "määrittelemätön muuttuja kohteessa ATN"
-
-#: ieee.c:2190
-msgid "unknown ATN type"
-msgstr "tuntematon ATN-tyyppi"
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2312
-msgid "unsupported ATN11"
-msgstr "ei-tuettu ATN11"
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2339
-msgid "unsupported ATN12"
-msgstr "ei-tuettu ATN12"
-
-# Kahdessa seuraavassa on kyse samasta tietueesta.
-#: ieee.c:2399
-msgid "unexpected string in C++ misc"
-msgstr "odottamaton merkkijono C++-misc-tietueessa"
-
-#: ieee.c:2412
-msgid "bad misc record"
-msgstr "virheellinen misc-tietue"
-
-#: ieee.c:2453
-msgid "unrecognized C++ misc record"
-msgstr "tunnistamaton C++-misc-tietue"
-
-#: ieee.c:2568
-msgid "undefined C++ object"
-msgstr "määrittelemätön C++-objekti"
-
-#: ieee.c:2602
-msgid "unrecognized C++ object spec"
-msgstr "tunnistamaton C++-objektimäärittely"
-
-#: ieee.c:2638
-msgid "unsupported C++ object type"
-msgstr "ei-tuettu C++-objektityyppi"
-
-#: ieee.c:2648
-msgid "C++ base class not defined"
-msgstr "C++-kantaluokkaa ei ole määritelty"
-
-#: ieee.c:2660 ieee.c:2765
-msgid "C++ object has no fields"
-msgstr "C++-objektissa ei ole kenttiä"
-
-#: ieee.c:2679
-msgid "C++ base class not found in container"
-msgstr "C++-kantaluokkaa ei löytynyt containerista"
-
-#: ieee.c:2786
-msgid "C++ data member not found in container"
-msgstr "C++-data-jäsentä ei löytynyt containerista"
-
-#: ieee.c:2827 ieee.c:2977
-msgid "unknown C++ visibility"
-msgstr "tuntematon C++-näkyvyys"
-
-#: ieee.c:2861
-msgid "bad C++ field bit pos or size"
-msgstr "virheellinen C++-kenttäbittisijainti tai koko"
-
-#: ieee.c:2953
-msgid "bad type for C++ method function"
-msgstr "virheellinen C++-metodifunktion tyyppi"
-
-#: ieee.c:2963
-msgid "no type information for C++ method function"
-msgstr "ei tyyppitietoa C++-metodifunktiossa"
-
-#: ieee.c:3002
-msgid "C++ static virtual method"
-msgstr "C++ staattinen virtuaalimetodi"
-
-#: ieee.c:3097
-msgid "unrecognized C++ object overhead spec"
-msgstr "tunnistamaton C++-objektin overhead-määritys"
-
-#: ieee.c:3136
-msgid "undefined C++ vtable"
-msgstr "määrittelemätön C++-vtable"
-
-#: ieee.c:3205
-msgid "C++ default values not in a function"
-msgstr "funktiossa ei ole C++-oletusarvoja"
-
-#: ieee.c:3245
-msgid "unrecognized C++ default type"
-msgstr "tunnistamaton C++-oletustyyppi"
-
-#: ieee.c:3276
-msgid "reference parameter is not a pointer"
-msgstr "viiteparametri ei ole osoitin"
-
-#: ieee.c:3359
-msgid "unrecognized C++ reference type"
-msgstr "tunnistamaton C++-viitetyyppi"
-
-#: ieee.c:3441
-msgid "C++ reference not found"
-msgstr "C++-viite ei löytynyt"
-
-#: ieee.c:3449
-msgid "C++ reference is not pointer"
-msgstr "C++-viite ei ole osoitin"
-
-#: ieee.c:3475 ieee.c:3483
-msgid "missing required ASN"
-msgstr "vaadittu ASN puuttuu"
-
-#: ieee.c:3510 ieee.c:3518
-msgid "missing required ATN65"
-msgstr "vaadittu ATN65 puuttuu"
-
-#: ieee.c:3532
-msgid "bad ATN65 record"
-msgstr "virheellinen ATN65-tietue"
-
-#: ieee.c:4160
-#, c-format
-msgid "IEEE numeric overflow: 0x"
-msgstr "IEEE numeerinen ylivuoto: 0x"
-
-#: ieee.c:4204
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr "IEEE merkkijonopituuden ylivuoto: %u\n"
-
-#: ieee.c:5203
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr "ei-tuettu IEEE kokonaislukutyyppikoko %u\n"
-
-#: ieee.c:5237
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr "ei-tuettu IEEE float-tyyppikoko %u\n"
-
-#: ieee.c:5271
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr "ei-tuettu IEEE complex-tyyppikoko %u\n"
-
-#: nlmconv.c:267 srconv.c:1810
-msgid "input and output files must be different"
-msgstr "syöte- ja tulostetiedosto ei saa olla sama tiedosto"
-
-#: nlmconv.c:314
-msgid "input file named both on command line and with INPUT"
-msgstr "syötetiedosto nimetty sekä komentorivillä että INPUT-tiedostoissa"
-
-#: nlmconv.c:323
-msgid "no input file"
-msgstr "ei syötetiedostoa"
-
-#: nlmconv.c:353
-msgid "no name for output file"
-msgstr "ei tulostetiedoston nimeä"
-
-#: nlmconv.c:367
-msgid "warning: input and output formats are not compatible"
-msgstr "varoitus: syöte- ja tulostemuodot eivät ole yhteensopivia"
-
-#: nlmconv.c:396
-msgid "make .bss section"
-msgstr "tekee .bss-lohkon"
-
-#: nlmconv.c:405
-msgid "make .nlmsections section"
-msgstr "tekee .nlmsections-lohkon"
-
-#: nlmconv.c:407
-msgid "set .nlmsections flags"
-msgstr "asettaa .nlmsections-liput"
-
-# vma on Virtual Memory Address
-#: nlmconv.c:435
-msgid "set .bss vma"
-msgstr "asettaa .bss vma"
-
-#: nlmconv.c:442
-msgid "set .data size"
-msgstr "asettaa .data-koon"
-
-#: nlmconv.c:622
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr "varoitus: symboli %s tuotu mutta ei ole tuontiluettelossa"
-
-#: nlmconv.c:642
-msgid "set start address"
-msgstr "asettaa alkuosoitteen"
-
-#: nlmconv.c:691
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr "varoitus: START-proseduuria %s ei ole määritelty"
-
-#: nlmconv.c:693
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr "varoitus: EXIT-proseduuria %s ei ole määritelty"
-
-#: nlmconv.c:695
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr "varoitus: CHECK-proseduuria %s ei ole määritelty"
-
-#: nlmconv.c:716 nlmconv.c:905
-msgid "custom section"
-msgstr "räätälöity lohko"
-
-#: nlmconv.c:737 nlmconv.c:934
-msgid "help section"
-msgstr "ohje-lohko"
-
-#: nlmconv.c:759 nlmconv.c:952
-msgid "message section"
-msgstr "sanoma-lohko"
-
-#: nlmconv.c:775 nlmconv.c:985
-msgid "module section"
-msgstr "moduli-lohko"
-
-#: nlmconv.c:795 nlmconv.c:1001
-msgid "rpc section"
-msgstr "rpc-lohko"
-
-#. There is no place to record this information.
-#: nlmconv.c:831
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr "%s: varoitus: jaetuissa kirjastoissa ei voi olla alustamatonta dataa"
-
-#: nlmconv.c:852 nlmconv.c:1020
-msgid "shared section"
-msgstr "jaettu lohko"
-
-#: nlmconv.c:860
-msgid "warning: No version number given"
-msgstr "varoitus: Mitään versionumeroa ei ole annettu"
-
-# Tämän suomensin kuten ruotsalaisessa käännöksessä
-#: nlmconv.c:900 nlmconv.c:929 nlmconv.c:947 nlmconv.c:996 nlmconv.c:1015
-#, c-format
-msgid "%s: read: %s"
-msgstr "%s: lukuvirhe: %s"
-
-#: nlmconv.c:922
-msgid "warning: FULLMAP is not supported; try ld -M"
-msgstr "varoitus: FULLMAP ei ole tuettu; yritä ld -M"
-
-#: nlmconv.c:1098
-#, c-format
-msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
-msgstr "Käyttö: %s [valitsimet] [syötetiedosto [tulostetiedosto]]\n"
-
-#: nlmconv.c:1099
-#, c-format
-msgid " Convert an object file into a NetWare Loadable Module\n"
-msgstr " Muuntaa objektitiedoston NetWare Loadable Module-muotoon\n"
-
-#: nlmconv.c:1100
-#, c-format
-msgid ""
-" The options are:\n"
-" -I --input-target=<bfdname> Set the input binary file format\n"
-" -O --output-target=<bfdname> Set the output binary file format\n"
-" -T --header-file=<file> Read <file> for NLM header information\n"
-" -l --linker=<linker> Use <linker> for any linking\n"
-" -d --debug Display on stderr the linker command line\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-msgstr ""
-" Valitsimet ovat:\n"
-" -I --input-target=<bfd-nimi> Asettaa binaarin syötetiedoston muodon\n"
-" -O --output-target=<bfd-nimi> Asettaa binaarin tulostetiedoston muodon\n"
-" -T --header-file=<tiedosto> Lukee tiedoston <tiedosto> NLM-otsaketiedoille\n"
-" -l --linker=<linkkeri> Käyttää parametriä <linkkeri> linkittämiseen\n"
-" -d --debug Näyttää vakiovirhetulosteessa linkkerin komentorivin\n"
-" -h --help Näyttää nämä tiedot\n"
-" -v --version Näyttää ohjelman version\n"
-
-#: nlmconv.c:1140
-#, c-format
-msgid "support not compiled in for %s"
-msgstr "tukea ei ole käännetty kohteeseen %s"
-
-#: nlmconv.c:1177
-msgid "make section"
-msgstr "tekee lohkon"
-
-#: nlmconv.c:1191
-msgid "set section size"
-msgstr "asettaa lohkokoon"
-
-#: nlmconv.c:1197
-msgid "set section alignment"
-msgstr "asettaa lohkotasauksen"
-
-#: nlmconv.c:1201
-msgid "set section flags"
-msgstr "asettaa lohkoliput"
-
-#: nlmconv.c:1212
-msgid "set .nlmsections size"
-msgstr "asettaa .nlmsections-koon"
-
-#: nlmconv.c:1293 nlmconv.c:1301 nlmconv.c:1310 nlmconv.c:1315
-msgid "set .nlmsection contents"
-msgstr "asettaa .nlmsection-sisällöt"
-
-#: nlmconv.c:1794
-msgid "stub section sizes"
-msgstr "stub-lohkon koot"
-
-#: nlmconv.c:1841
-msgid "writing stub"
-msgstr "kirjoitetaan stub"
-
-# Selvensin tekstiä ylimääräisillä lainausmerkeillä
-#: nlmconv.c:1925
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr "ratkaisematon \"PC relative reloc\" symbolille %s"
-
-#: nlmconv.c:1989
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr "ylivuoto säädettäessä uudelleensijoitusta symbolille %s"
-
-#: nlmconv.c:2116
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr "%s: kohteen %s suoritus epäonnistui: "
-
-#: nlmconv.c:2131
-#, c-format
-msgid "Execution of %s failed"
-msgstr "Kohteen %s suoritus epäonnistui"
-
-#: nm.c:224 size.c:80 strings.c:651
-#, c-format
-msgid "Usage: %s [option(s)] [file(s)]\n"
-msgstr "Käyttö: %s [valitsimet] [tiedosto(t)]\n"
-
-#: nm.c:225
-#, c-format
-msgid " List symbols in [file(s)] (a.out by default).\n"
-msgstr " Luettelee symbolit kohteessa [tiedosto(t)] (oletus: a.out).\n"
-
-#: nm.c:226
-#, c-format
-msgid ""
-" The options are:\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -S, --print-size Print size of defined symbols\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" --special-syms Include special symbols in the output\n"
-" --synthetic Display synthetic symbols as well\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -X 32_64 (ignored)\n"
-" -h, --help Display this information\n"
-" -V, --version Display this program's version number\n"
-"\n"
-msgstr ""
-" Valitsimet ovat:\n"
-" -a, --debug-syms Näyttää vain debuggaussymbolit\n"
-" -A, --print-file-name Tulostaa syötetiedoston nimen ennen jokaista symbolia\n"
-" -B Sama kuin --format=bsd\n"
-" -C, --demangle[=TYYLI] Eheyttää alemman tason symbolinimet käyttäjätason nimiksi\n"
-" TYYLI, jos annettu, voi olla \"auto\" (oletus),\n"
-" \"gnu\", \"lucid\", \"arm\", \"hp\", \"edg\", \"gnu-v3\", \"java\"\n"
-" tai \"gnat\"\n"
-" --no-demangle Ei eheytä alemman tason symbolinimiä\n"
-" -D, --dynamic Näyttää dynaamiset symbolit normaalien symbolien sijasta\n"
-" --defined-only Näyttää vain määritellyt symbolit\n"
-" -e (ei välitetä)\n"
-" -f, --format=MUOTO Käyttää tulostemuotoa MUOTO. MUOTO voi olla \"bsd\",\n"
-" \"sysv\" tai \"posix\". Oletus on \"bsd\"\n"
-" -g, --extern-only Näyttää vain ulkoiset symbolit\n"
-" -l, --line-numbers Käyttää debuggaustietoja tiedostonimen löytämiseen ja\n"
-" rivinumeroa jokaiselle symbolille\n"
-" -n, --numeric-sort Lajittelee symbolit numeerisesti osoitteen mukaan\n"
-" -o Sama kuin -A\n"
-" -p, --no-sort Ei lajittele symboleja\n"
-" -P, --portability Sama kuin --format=posix\n"
-" -r, --reverse-sort Kääntää lajittelun käänteiseksi\n"
-" -S, --print-size Tulostaa määriteltyjen symbolien koon\n"
-" -s, --print-armap Sisällyttää indeksin arkistojäsensymboleille\n"
-" --size-sort Lajittelee symbolit koon mukaan\n"
-" --special-syms Sisällyttää erityissymbolit tulosteeseen\n"
-" --synthetic Näyttää myös synteettiset symbolit\n"
-" -t, --radix=KANTALUKU Käyttää KANTALUKUa symboliarvojen tulosteeseen\n"
-" --target=BFD-NIMI Määrittelee kohdeobjektin muodoksi BFD-NIMI\n"
-" -u, --undefined-only Näyttää vain määrittelemättömät symbolit\n"
-" -X 32_64 (ei välitetä)\n"
-" -h, --help Näyttää nämä tiedot\n"
-" -V, --version Näyttää ohjelman versionumeron\n"
-"\n"
-
-#: nm.c:262 objdump.c:232
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr "Raportoi ohjelmointivirheistä englanniksi %s:lle.\n"
-
-#: nm.c:294
-#, c-format
-msgid "%s: invalid radix"
-msgstr "%s: virheellinen kantaluku"
-
-#: nm.c:318
-#, c-format
-msgid "%s: invalid output format"
-msgstr "%s: virheellinen tulostemuoto"
-
-#: nm.c:339 readelf.c:6342 readelf.c:6378
-#, c-format
-msgid "<processor specific>: %d"
-msgstr "<suoritinkohtainen>: %d"
-
-#: nm.c:341 readelf.c:6345 readelf.c:6390
-#, c-format
-msgid "<OS specific>: %d"
-msgstr "<Käyttöjärjestelmäkohtainen>: %d"
-
-#: nm.c:343 readelf.c:6347 readelf.c:6393
-#, c-format
-msgid "<unknown>: %d"
-msgstr "<tuntematon>: %d"
-
-#: nm.c:380
-#, c-format
-msgid ""
-"\n"
-"Archive index:\n"
-msgstr ""
-"\n"
-"Arkistoindeksi:\n"
-
-#: nm.c:1225
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Määrittelemättömiä symboleja kohteesta %s:\n"
-"\n"
-
-#: nm.c:1227
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Symboleja kohteesta %s:\n"
-"\n"
-
-#: nm.c:1229 nm.c:1280
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"Nimi Arvo Luokka Tyyppi Koko Rivi Lohko\n"
-"\n"
-
-#: nm.c:1232 nm.c:1283
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"Nimi Arvo Luokka Tyyppi Koko Rivi Lohko\n"
-"\n"
-
-#: nm.c:1276
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Määrittelemättömiä symboleja kohteesta %s[%s]:\n"
-"\n"
-
-#: nm.c:1278
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Symbolit kohteesta %s[%s]:\n"
-"\n"
-
-#: nm.c:1580
-msgid "Only -X 32_64 is supported"
-msgstr "Vain -X 32_64 on tuettuna"
-
-# Lisäsin ylimääräisiä lainausmerkkejä väliviivojen ja valitsimien erottamiseksi
-#: nm.c:1600
-msgid "Using the --size-sort and --undefined-only options together"
-msgstr "Käytetään \"--size-sort\"- ja \"--undefined-only\"-valitsimia yhdessä"
-
-#: nm.c:1601
-msgid "will produce no output, since undefined symbols have no size."
-msgstr "ei tuota mitään tulostetta, koska määrittelemättömissä symboleissa ei ole kokoa."
-
-#: nm.c:1629
-#, c-format
-msgid "data size %ld"
-msgstr "data-koko %ld"
-
-#: objcopy.c:396 srconv.c:1721
-#, c-format
-msgid "Usage: %s [option(s)] in-file [out-file]\n"
-msgstr "Käyttö: %s [valitsimet] syötetiedosto [tulostetiedosto]\n"
-
-#: objcopy.c:397
-#, c-format
-msgid " Copies a binary file, possibly transforming it in the process\n"
-msgstr " Kopioi binaaritiedoston, mahdollisesti muuntaen sitä käsittelyssä\n"
-
-#: objcopy.c:398 objcopy.c:487
-#, c-format
-msgid " The options are:\n"
-msgstr " Valitsimet ovat:\n"
-
-# demand paged ?? (demand = kysyntä, page = kuuluttaa, kutsua) Only bring a page from the backing store into memory when the page is needed (demanded). Pure demand paging is where no pages are initially brought into memory - a process begins execution by demand paging the first instructions.
-# "--pure" ja "--impure"-valitsimet? Kun muistia varataan sivuina, osa viimeisestä sivusta voi jäädä käyttämättä. Jos tämä käyttämätön osa täytetään nollilla, se on pure. Jos käyttämättömässä osassa on roskaa, se on impure. Tarkoitetaanko sitä tässä?
-#: objcopy.c:399
-#, c-format
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -B --binary-architecture <arch> Set arch of output file, when input is binary\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" --debugging Convert debugging information, if possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation information\n"
-" -g --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" --strip-unneeded-symbol <name>\n"
-" Do not copy symbol <name> unless needed by\n"
-" relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -K --keep-symbol <name> Only copy symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-" --weaken Force all global symbols to be marked as weak\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address <addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to <flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to output\n"
-" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-" --change-leading-char Force output format's leading character style\n"
-" --remove-leading-char Remove leading character from global symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --redefine-syms <file> --redefine-sym for all symbol pairs \n"
-" listed in <file>\n"
-" --srec-len <number> Restrict the length of generated Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-" --strip-symbols <file> -N for all symbols listed in <file>\n"
-" --strip-unneeded-symbols <file>\n"
-" --strip-unneeded-symbol for all symbols listed\n"
-" in <file>\n"
-" --keep-symbols <file> -K for all symbols listed in <file>\n"
-" --localize-symbols <file> -L for all symbols listed in <file>\n"
-" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-" --weaken-symbols <file> -W for all symbols listed in <file>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" --writable-text Mark the output text as writable\n"
-" --readonly-text Make the output text write protected\n"
-" --pure Mark the output file as demand paged\n"
-" --impure Mark the output file as impure\n"
-" --prefix-symbols <prefix> Add <prefix> to start of every symbol name\n"
-" --prefix-sections <prefix> Add <prefix> to start of every section name\n"
-" --prefix-alloc-sections <prefix>\n"
-" Add <prefix> to start of every allocatable\n"
-" section name\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-msgstr ""
-" -I --input-target <bfd-nimi> Otaksuu, että syötetiedosto on muodossa <bfd-nimi>\n"
-" -O --output-target <bfd-nimi> Luo tulostetiedoston muodossa <bfd-nimi>\n"
-" -B --binary-architecture <arkk> Asettaa tulostetiedoston arkkitehtuurin, kun syöte on binaarinen\n"
-" -F --target <bfd-nimi> Asettaa sekä syöte- että tulostemuodoksi <bfd-nimi>\n"
-" --debugging Muuntaa debuggaustiedot, jos mahdollista\n"
-" -p --preserve-dates Kopioi muutos- ja(/tai) käyttöaikaleiman tulosteeseen\n"
-" -j --only-section <nimi> Kopioi vain lohkon <nimi> tulosteeseen\n"
-" --add-gnu-debuglink=<tiedosto> Lisää <tiedostoon> viittaavan .gnu-debuglink-lohkon\n"
-" -R --remove-section <nimi> Poistaa lohkon <nimi> tulosteesta\n"
-" -S --strip-all Poistaa kaikki symboli- ja uudelleensijoitustiedot\n"
-" -g --strip-debug Poistaa kaikki debuggaussymbolit & -lohkot\n"
-" --strip-unneeded Poistaa kaikki symbolit, joita ei tarvita uudelleensijoitukseen\n"
-" -N --strip-symbol <nimi> Ei kopioi symbolia <nimi>\n"
-" --strip-unneeded-symbol <nimi> Ei kopioi symbolia <nimi>, ellei sitä tarvita\n"
-" uudelleensijoituksessa\n"
-" --only-keep-debug Riisuu kaikki paitsi debuggaustiedot\n"
-" -K --keep-symbol <nimi> Kopioi vain symbolin <nimi>\n"
-" -L --localize-symbol <nimi> Pakottaa symbolin <nimi> merkityksi paikalliseksi\n"
-" -G --keep-global-symbol <nimi> Tekee kaikista symboleista paikallisia paitsi symbolista <nimi>\n"
-" -W --weaken-symbol <nimi> Pakottaa symbolin <nimi> merkittäväksi heikoksi\n"
-" --weaken Pakottaa kaikki yleissymbolit merkittäväksi heikoiksi\n"
-" -w --wildcard Sallii jokerimerkit symbolivertailussa\n"
-" -x --discard-all Poistaa kaikki ei-yleiset symbolit\n"
-" -X --discard-locals Poistaa kaikki kääntäjän generoimat symbolit\n"
-" -i --interleave <numero> Kopioi vain yhden kaikista <numero> tavuista\n"
-" -b --byte <numero> Valitsee tavun <numero> kustakin lomitetusta lohkosta\n"
-" --gap-fill <arvo> Täyttää välit lohkojen välillä arvolla <arvo>\n"
-" --pad-to <osoite> Täyttää viimeisen lohkon aina osoitteeseen <osoite> asti\n"
-" --set-start <osoite> Asettaa alkuosoitteeksi <osoite>\n"
-" {--change-start|--adjust-start} <kasvatusarvo>\n"
-" Lisää <kasvatusarvon> alkuosoitteeseen\n"
-" {--change-addresses|--adjust-vma} <kasvatusarvo>\n"
-" Lisää <kasvatusarvon> latausmuistiosoitteisiin, virtuaalisiin\n"
-" muistiosoitteisiin ja alkuosoitteisiin\n"
-" {--change-section-address|--adjust-section-vma} <nimi>{=|+|-}<arvo>\n"
-" Vaihtaa <nimi>-lohkon latausmuistiosoite- ja\n"
-" virtuaalimuistiosoitearvoksi <arvo>\n"
-" --change-section-lma <nimi>{=|+|-}<arvo>\n"
-" Vaihtaa <nimi>-lohkon latausmuistiosoitearvoksi <arvo>\n"
-" --change-section-vma <nimi>{=|+|-}<arvo>\n"
-" Vaihtaa <nimi>-lohkon virtuaalimuistiosoitearvoksi <arvo>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Varoittaa, jos nimettyä lohkoa ei ole olemassa\n"
-" --set-section-flags <nimi>=<liput>\n"
-" Asettaa lohkon <nimi> ominaisuudet kohteen <liput> mukaiseksi\n"
-" --add-section <nimi>=<tiedosto> Lisää tulosteeseen lohkon <nimi>, joka löydettiin kohteesta <tiedosto>\n"
-" --rename-section <vanha>=<uusi>[,<liput>] Uudelleennimeää lohkon <vanha> lohkoksi <uusi>\n"
-" --change-leading-char Pakottaa tulostemuodon alkukirjaintyyliseksi\n"
-" --remove-leading-char Poistaa edeltävät merkit yleissymboleista\n"
-" --redefine-sym <vanha>=<uusi> Määrittelee symbolinimen uudelleen symbolista <vanha> symboliksi <uusi>\n"
-" --redefine-syms <tiedosto> --redefine-sym kaikille symbolipareille, jotka on \n"
-" lueteltu kohteessa <tiedosto>\n"
-" --srec-len <number> Rajoittaa luodun Srecords-rakenteen pituuden\n"
-" --srec-forceS3 Rajoittaa luodun Srecords-rakenteen tyypiksi S3\n"
-" --strip-symbols <tiedosto> -N kaikille kohteessa <tiedosto> luetelluille symboleille\n"
-" --strip-unneeded-symbols <tiedosto>\n"
-" --strip-unneeded-symbol kaikille symboleille, jotka on lueteltu\n"
-" kohteessa <tiedosto>\n"
-" --keep-symbols <tiedosto> -K kaikille kohteessa <tiedosto> luetelluille symboleille\n"
-" --localize-symbols <tiedosto> -L kaikille kohteessa <tiedosto> luetelluille symboleille\n"
-" --keep-global-symbols <tiedosto> -G kaikille kohteessa <tiedosto> luetelluille symboleille\n"
-" --weaken-symbols <tiedosto> -W kaikille kohteessa <tiedosto> luetelluille symboleille\n"
-" --alt-machine-code <indeksi> Käyttää vaihtoehtoista konekoodia tulosteeseen\n"
-" --writable-text Merkkaa tulostetekstin kirjoitettavaksi\n"
-" --readonly-text Tekee tulostetiedostosta kirjoitussuojatun\n"
-" --pure Merkkaa tulostetiedoston tarvittaessa kutsuttavaksi\n"
-" --impure Merkkaa tulostetiedoston epäpuhtaaksi\n"
-" --prefix-symbols <etuliite> Lisää <etuliitteen> jokaisen symbolinimen alkuun\n"
-" --prefix-sections <etuliite> Lisää <etuliitteen> jokaisen lohkonimen alkuun\n"
-" --prefix-alloc-sections <etuliite>\n"
-" Lisää <etuliitteen> jokaisen varattavan lohkonimen\n"
-" alkuun\n"
-" -v --verbose Luettelee kaikki muokatut objektitiedostot\n"
-" -V --version Näyttää ohjelman versionumeron\n"
-" -h --help Näyttää tämän tulosteen\n"
-" --info Luettelee tuetut objektimuodot & arkkitehtuurit\n"
-
-#: objcopy.c:485
-#, c-format
-msgid "Usage: %s <option(s)> in-file(s)\n"
-msgstr "Käyttö: %s <valitsimet> syötetiedosto(t)\n"
-
-#: objcopy.c:486
-#, c-format
-msgid " Removes symbols and sections from files\n"
-msgstr " Poistaa symbolit ja lohkot tiedostoista\n"
-
-#: objcopy.c:488
-#, c-format
-msgid ""
-" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target=<bfdname> Create an output file in format <bfdname>\n"
-" -F --target=<bfdname> Set both input and output format to <bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -R --remove-section=<name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation information\n"
-" -g -S -d --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -N --strip-symbol=<name> Do not copy symbol <name>\n"
-" -K --keep-symbol=<name> Only copy symbol <name>\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr ""
-" -I --input-target=<bfd-nimi> Otaksuu, että syötetiedosto on <bfd-nimi>-muodossa\n"
-" -O --output-target=<bfd-nimi> Luo tulostetiedoston <bfd-nimi>-muodossa\n"
-" -F --target=<bfd-nimi> Asettaa sekä syöte- että tulostetiedostomuodoksi <bfd-nimi>\n"
-" -p --preserve-dates Kopioi muutettu/pääsyaikaleimat tulosteeseen\n"
-" -R --remove-section=<nimi> Poistaa <nimi>-lohkon tulosteesta\n"
-" -s --strip-all Poistaa kaikki symbolit ja uudelleensijoitustiedot\n"
-" -g -S -d --strip-debug Poistaa kaikki debuggaussymbolit & -lohkot\n"
-" --strip-unneeded Poistaa kaikki symbolit, joita ei tarvita uudelleensijoituksessa\n"
-" --only-keep-debug Riisuu kaikki paitsi debuggaustiedot\n"
-" -N --strip-symbol=<nimi> Ei kopioi symbolia <nimi>\n"
-" -K --keep-symbol=<nimi> Kopioi vain symbolin <nimi>\n"
-" -w --wildcard Sallii jokerimerkit symbolien vertailussa\n"
-" -x --discard-all Poistaa kaikki ei-yleiset symbolit\n"
-" -X --discard-locals Poistaa kaikki kääntäjän luomat symbolit\n"
-" -v --verbose Luettelee kaikki muutetut objektitiedostot\n"
-" -V --version Näyttää tämän ohjelman versionumeron\n"
-" -h --help Näyttää tämän tulosteen\n"
-" --info Luettelee tuetut objektimuodot & arkkitehtuurit\n"
-" -o <tiedosto> Sijoittaa riisutun tulosteen kohteeseen <tiedosto>\n"
-
-#: objcopy.c:560
-#, c-format
-msgid "unrecognized section flag `%s'"
-msgstr "tunnistamaton lohkolippu \"%s\""
-
-#: objcopy.c:561
-#, c-format
-msgid "supported flags: %s"
-msgstr "tuetut liput: %s"
-
-#: objcopy.c:638
-#, c-format
-msgid "cannot open '%s': %s"
-msgstr "ei voi avata kohdetta \"%s\": %s"
-
-#: objcopy.c:641 objcopy.c:2629
-#, c-format
-msgid "%s: fread failed"
-msgstr "%s: fread-kutsu epäonnistui"
-
-#: objcopy.c:714
-#, c-format
-msgid "%s:%d: Ignoring rubbish found on this line"
-msgstr "%s:%d: Ei välitetä tältä riviltä löydetystä roskasta"
-
-#: objcopy.c:976
-#, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr "%s: Useita symbolin \"%s\" uudelleenmäärittelyjä"
-
-#: objcopy.c:980
-#, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr "%s: Symboli \"%s\" on kohteena useammalle kuin yhdelle uudelleenmäärittelylle"
-
-#: objcopy.c:1008
-#, c-format
-msgid "couldn't open symbol redefinition file %s (error: %s)"
-msgstr "ei voitu avata symbolien uudelleenmäärittelytiedostoa %s (virhe: %s)"
-
-#: objcopy.c:1086
-#, c-format
-msgid "%s:%d: garbage found at end of line"
-msgstr "%s:%d: rivin lopusta löytyi roskaa"
-
-#: objcopy.c:1089
-#, c-format
-msgid "%s:%d: missing new symbol name"
-msgstr "%s:%d: uusi symbolinimi puuttuu"
-
-#: objcopy.c:1099
-#, c-format
-msgid "%s:%d: premature end of file"
-msgstr "%s:%d: ennenaikainen tiedoston loppu"
-
-#: objcopy.c:1124
-msgid "Unable to change endianness of input file(s)"
-msgstr "Ei voi muuttaa syötetiedosto(je)n tavujärjestystyyppiä"
-
-#: objcopy.c:1133
-#, c-format
-msgid "copy from %s(%s) to %s(%s)\n"
-msgstr "kopioitiin kohteesta %s(%s) kohteeseen %s(%s)\n"
-
-#: objcopy.c:1170
-#, c-format
-msgid "Unable to recognise the format of the input file %s"
-msgstr "Syötetiedoston %s muotoa ei voi tunnistaa"
-
-#: objcopy.c:1174
-#, c-format
-msgid "Warning: Output file cannot represent architecture %s"
-msgstr "Varoitus: Tulostetiedosto ei voi edustaa arkkitehtuuria %s"
-
-#: objcopy.c:1211
-#, c-format
-msgid "can't create section `%s': %s"
-msgstr "ei voi luoda lohkoa \"%s\": %s"
-
-#: objcopy.c:1277
-msgid "there are no sections to be copied!"
-msgstr "ei lohkoja kopioitavaksi!"
-
-#: objcopy.c:1323
-#, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr "Ei voi täyttää väliä lohkon %s jälkeen: %s"
-
-#: objcopy.c:1348
-#, c-format
-msgid "Can't add padding to %s: %s"
-msgstr "Ei voi lisätä täytettä kohteeseen %s: %s"
-
-#: objcopy.c:1514
-#, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr "%s: virhe kopioitaessa yksityistä BFD-dataa: %s"
-
-#: objcopy.c:1525
-msgid "unknown alternate machine code, ignored"
-msgstr "tuntematon vaihtoehtoinen konekoodi, siitä ei välitetä"
-
-#: objcopy.c:1555 objcopy.c:1585
-#, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr "ei voi kutsua mkdir %s -komentoa arkiston kopiointiin (virhe: %s)"
-
-#: objcopy.c:1790
-#, c-format
-msgid "Multiple renames of section %s"
-msgstr "Useita lohkon %s uudelleennimeämisiä"
-
-#: objcopy.c:1841
-msgid "private header data"
-msgstr "yksityinen otsakedata"
-
-#: objcopy.c:1849
-#, c-format
-msgid "%s: error in %s: %s"
-msgstr "%s: virhe kohteessa %s: %s"
-
-#: objcopy.c:1903
-msgid "making"
-msgstr "tehdään"
-
-#: objcopy.c:1912
-msgid "size"
-msgstr "koko"
-
-# Virtual Memory Address eli virtuaalimuistiosoite
-#: objcopy.c:1926
-msgid "vma"
-msgstr "vma"
-
-#: objcopy.c:1951
-msgid "alignment"
-msgstr "tasaus"
-
-#: objcopy.c:1966
-msgid "flags"
-msgstr "liput"
-
-#: objcopy.c:1988
-msgid "private data"
-msgstr "yksityinen data"
-
-#: objcopy.c:1996
-#, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr "%s: lohko \"%s\": virhe kohdassa %s: %s"
-
-#: objcopy.c:2274
-#, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr "%s: ei voi luoda debuggauslohkoa: %s"
-
-#: objcopy.c:2288
-#, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr "%s: ei voi asettaa debuggauslohkon sisältöä: %s"
-
-#: objcopy.c:2297
-#, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr "%s: ei tiedetä kuinka kirjoittaa debuggaustietoja kohteelle %s"
-
-#: objcopy.c:2472
-msgid "byte number must be non-negative"
-msgstr "tavunumeron on oltava ei-negatiivinen"
-
-#: objcopy.c:2482
-msgid "interleave must be positive"
-msgstr "lomituksen täytyy olla positiivinen"
-
-#: objcopy.c:2502 objcopy.c:2510
-#, c-format
-msgid "%s both copied and removed"
-msgstr "%s sekä kopioitu että poistettu"
-
-#: objcopy.c:2603 objcopy.c:2674 objcopy.c:2774 objcopy.c:2805 objcopy.c:2829
-#: objcopy.c:2833 objcopy.c:2853
-#, c-format
-msgid "bad format for %s"
-msgstr "virheellinen muoto kohteelle %s"
-
-#: objcopy.c:2624
-#, c-format
-msgid "cannot open: %s: %s"
-msgstr "ei voi avata: %s: %s"
-
-#: objcopy.c:2743
-#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "Varoitus: katkaistaan välitäyte 0x%s tavumuodoksi 0x%x"
-
-#: objcopy.c:2903
-msgid "alternate machine code index must be positive"
-msgstr "vaihtoehtoisen konekoodi-indeksin on oltava positiivinen"
-
-#: objcopy.c:2961
-msgid "byte number must be less than interleave"
-msgstr "tavunumeron on oltava lomitusta pienempi"
-
-#: objcopy.c:2991
-#, c-format
-msgid "architecture %s unknown"
-msgstr "arkkitehtuuri %s tuntematon"
-
-#: objcopy.c:2995
-msgid "Warning: input target 'binary' required for binary architecture parameter."
-msgstr "Varoitus: syötekohde \"binary\" vaatii binaariarkkitehtuuriparametrin."
-
-#: objcopy.c:2996
-#, c-format
-msgid " Argument %s ignored"
-msgstr " Argumentista %s ei välitetä"
-
-#: objcopy.c:3002
-#, c-format
-msgid "warning: could not locate '%s'. System error message: %s"
-msgstr "varoitus: kohdetta \"%s\" ei voitu sijoittaa. Järjestelmävirhesanoma: %s"
-
-# Ensimmäinen %s sisältää tekstin "--change-section-vma", toinen %s sisältää jonkin nimen, %c sisältää joko '=' tai '+' -merkin, viimeinen %s sisältää jonkun korkeintaan 20-merkkisen puskurin sisällön.
-#: objcopy.c:3042 objcopy.c:3056
-#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr "%s %s%c0x%s ei käytetty koskaan"
-
-#: objdump.c:176
-#, c-format
-msgid "Usage: %s <option(s)> <file(s)>\n"
-msgstr "Käyttö: %s <valitsimet> <tiedosto(t)>\n"
-
-#: objdump.c:177
-#, c-format
-msgid " Display information from object <file(s)>.\n"
-msgstr " Näyttää tietoja objekti<tiedosto(i)sta>.\n"
-
-# Ohjenäytöllä puhutaan riviä ylempänä valitsimista. Siksi alla käytetään samaa termiä suomennoksessa.
-#: objdump.c:178
-#, c-format
-msgid " At least one of the following switches must be given:\n"
-msgstr " Seuraavista valitsimista on valittava vähintään yksi:\n"
-
-#: objdump.c:179
-#, c-format
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -e, --debugging-tags Display debug information using ctags style\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" -v, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-" -a, --archive-headers Näyttää arkisto-otsaketiedot\n"
-" -f, --file-headers Näyttää ylimmän tiedosto-otsakkeen sisällön\n"
-" -p, --private-headers Näyttää objektimuotokohtaisen tiedosto-otsakkeen sisällön\n"
-" -h, --[section-]headers Näyttää lohko-otsakkeiden sisällön\n"
-" -x, --all-headers Näyttää kaikkien otsakkeiden sisällön\n"
-" -d, --disassemble Näyttää suoritettavien lohkojen assembler-sisällön\n"
-" -D, --disassemble-all Näyttää kaikkien lohkojen assembler-sisällön\n"
-" -S, --source Sekoittaa lähdekoodin disassembly:n kanssa\n"
-" -s, --full-contents Näyttää kaikkien vaadittujen lohkojen koko sisällön\n"
-" -g, --debugging Näyttää debug-tiedot objektitiedostossa\n"
-" -e, --debugging-tags Näyttää debug-tiedot käyttäen ctags-tyyliä\n"
-" -G, --stabs Näyttää (raakamuodossa) kaikki tiedoston STABS-tiedot\n"
-" -t, --syms Näyttää symbolitaulu(je)n sisällön\n"
-" -T, --dynamic-syms Näyttää dynaamisen symbolitaulun sisällön\n"
-" -r, --reloc Näyttää tiedoston uudelleensijoitusalkiot\n"
-" -R, --dynamic-reloc Näyttää tiedoston dynaamiset uudelleensijoitusalkiot\n"
-" -v, --version Näyttää tämän ohjelman versionumeron\n"
-" -i, --info Luettelee tuetut objektimuodot ja arkkitehtuurit\n"
-" -H, --help Näyttää nämä tiedot\n"
-
-# Ohjenäytöllä puhutaan ylempänä valitsimista. Siksi alla käytetään samaa termiä suomennoksessa.
-#: objdump.c:202
-#, c-format
-msgid ""
-"\n"
-" The following switches are optional:\n"
-msgstr ""
-"\n"
-" Seuraavat valitsimet ovat valinnaisia:\n"
-
-#: objdump.c:203
-#, c-format
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -I, --include=DIR Add DIR to search list for source files\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', `gnu',\n"
-" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whose address is >= ADDR\n"
-" --stop-address=ADDR Only process data whose address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-" --special-syms Include special symbols in symbol dumps\n"
-"\n"
-msgstr ""
-" -b, --target=BFD-NIMI Määrittelee kohdeobjektimuodoksi BFD-NIMEN\n"
-" -m, --architecture=KONE Määrittelee kohdearkkitehtuuriksi KONEEN\n"
-" -j, --section=NIMI Näyttää tiedot vain lohkosta NIMI\n"
-" -M, --disassembler-options=OPT Välittää tekstin OPT disassemblerille\n"
-" -EB --endian=big Otaksuu, että big-endian-tavujärjestystä käytetään disassembloinnissa\n"
-" -EL --endian=little Otaksuu, että little-endian-tavujärjestystä käytetään disassembloinnissa\n"
-" --file-start-context Sisällyttää asiayhteyden tiedoston alusta (yhdessä -S:n kanssa)\n"
-" -I, --include=HAKEMISTO Lisää HAKEMISTOn lähdetiedostojen etsintäluetteloon\n"
-" -l, --line-numbers Sisällyttää rivinumerot ja tiedostonimet tulosteeseen\n"
-" -C, --demangle[=TYYLI] Eheyttää runnellut/käsitellyt symbolinimet\n"
-" TYYLI, jos annettu, voi olla \"auto\", \"gnu\",\n"
-" \"lucid\", \"arm\", \"hp\", \"edg\", \"gnu-v3\", \"java\"\n"
-" tai \"gnat\"\n"
-" -w, --wide Muotoilee tulosteen yli 80 sarakkeen levyiseksi\n"
-" -z, --disassemble-zeroes Ei hyppää nollalohkojen yli disassembloinnissa\n"
-" --start-address=OSOITE Käsittelee vain dataa, jonka osoite on >= OSOITE\n"
-" --stop-address=OSOITE Käsittelee vain dataa, jonka osoite on <= OSOITE\n"
-" --prefix-addresses Tulostaa disassemblyn mukana täydellisen osoitteen\n"
-" --[no-]show-raw-insn Näyttää heksadesimaaliluvut symbolisen disassemblyn mukana\n"
-" --adjust-vma=SIIRROS Lisää arvon SIIRROS kaikkiin näytettyihin lohko-osoitteisiin\n"
-" --special-syms Sisällyttää erikoissymbolit symbolivedoksiin\n"
-"\n"
-
-#: objdump.c:378
-#, c-format
-msgid "Sections:\n"
-msgstr "Lohkot:\n"
-
-# Rivin saa näkyviin esimerkiksi komennolla "objdump -x main.o"
-#: objdump.c:381 objdump.c:385
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Ind Nimi Koko VirMuisOs LatMuisOs TiedSiir Tasaus"
-
-# Idx on ilmeisesti index. VMA on ilmeisesti Virtual Memory Address. LMA on ilmeisesti Load Memory Address: This is the address at which a section will be loaded.
-#: objdump.c:387
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Ind Nimi Koko VirtMuistiOsoite LatausMuistOsoite TiedSiir Tasaus"
-
-#: objdump.c:391
-#, c-format
-msgid " Flags"
-msgstr " Liput"
-
-#: objdump.c:393
-#, c-format
-msgid " Pg"
-msgstr " Sv"
-
-#: objdump.c:436
-#, c-format
-msgid "%s: not a dynamic object"
-msgstr "%s: ei ole dynaaminen objekti"
-
-#: objdump.c:1722
-#, c-format
-msgid "Disassembly of section %s:\n"
-msgstr "Lohkon %s disassembly:\n"
-
-#: objdump.c:1884
-#, c-format
-msgid "Can't use supplied machine %s"
-msgstr "Ei voi käyttää annettua konetta %s"
-
-#: objdump.c:1903
-#, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr "Ei voi disassembloida arkkitehtuuria %s\n"
-
-#: objdump.c:1973
-#, c-format
-msgid ""
-"No %s section present\n"
-"\n"
-msgstr ""
-"Ei ole %s-lohkoa\n"
-"\n"
-
-#: objdump.c:1982
-#, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr "Lohkon %s lukeminen kohteesta %s epäonnistui: %s"
-
-#: objdump.c:2026
-#, c-format
-msgid ""
-"Contents of %s section:\n"
-"\n"
-msgstr ""
-"Lohkon %s sisältö:\n"
-"\n"
-
-#: objdump.c:2153
-#, c-format
-msgid "architecture: %s, "
-msgstr "arkkitehtuuri: %s, "
-
-#: objdump.c:2156
-#, c-format
-msgid "flags 0x%08x:\n"
-msgstr "liput 0x%08x:\n"
-
-#: objdump.c:2170
-#, c-format
-msgid ""
-"\n"
-"start address 0x"
-msgstr ""
-"\n"
-"aloitusosoite 0x"
-
-#: objdump.c:2210
-#, c-format
-msgid "Contents of section %s:\n"
-msgstr "Lohkon %s sisältö:\n"
-
-#: objdump.c:2335
-#, c-format
-msgid "no symbols\n"
-msgstr "ei symboleja\n"
-
-#: objdump.c:2342
-#, c-format
-msgid "no information for symbol number %ld\n"
-msgstr "ei tietoja symbolinumerolla %ld\n"
-
-#: objdump.c:2345
-#, c-format
-msgid "could not determine the type of symbol number %ld\n"
-msgstr "ei voitu määritellä symbolinumeron %ld tyyppiä\n"
-
-#: objdump.c:2611
-#, c-format
-msgid ""
-"\n"
-"%s: file format %s\n"
-msgstr ""
-"\n"
-"%s: tiedostomuoto %s\n"
-
-#: objdump.c:2662
-#, c-format
-msgid "%s: printing debugging information failed"
-msgstr "%s: debuggaustietojen tulostaminen epäonnistui"
-
-#: objdump.c:2753
-#, c-format
-msgid "In archive %s:\n"
-msgstr "Arkistossa %s:\n"
-
-# Lisäsin lainausmerkit väliviivan ja valitsinmerkin erottamiseksi
-#: objdump.c:2873
-msgid "unrecognized -E option"
-msgstr "tunnistamaton \"-E\"-valitsin"
-
-# Middle-Endian ? --endian-tavujärjestystyyppi lyhennetty tavujärjestystyypiksi, joka kertoo jo kaiken.
-#: objdump.c:2884
-#, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr "tunnistamaton tavujärjestystyyppi \"%s\""
-
-#: rdcoff.c:196
-#, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr "parse_coff_type: Virheellinen tyyppikoodi 0x%x"
-
-#: rdcoff.c:404 rdcoff.c:509 rdcoff.c:697
-#, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr "bfd_coff_get_syment epäonnistui: %s"
-
-#: rdcoff.c:420 rdcoff.c:717
-#, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr "bfd_coff_get_auxent epäonnistui: %s"
-
-#: rdcoff.c:784
-#, c-format
-msgid "%ld: .bf without preceding function"
-msgstr "%ld: .bf ilman edeltävää funktiota"
-
-#: rdcoff.c:834
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr "%ld: odottamaton .ef\n"
-
-#: rddbg.c:85
-#, c-format
-msgid "%s: no recognized debugging information"
-msgstr "%s: ei tunnistettavia debuggaustietoja"
-
-#: rddbg.c:394
-#, c-format
-msgid "Last stabs entries before error:\n"
-msgstr "Viimeiset stabs-alkiot ennen virhettä:\n"
-
-#: readelf.c:272
-#, c-format
-msgid "%s: Error: "
-msgstr "%s: Virhe: "
-
-#: readelf.c:283
-#, c-format
-msgid "%s: Warning: "
-msgstr "%s: Varoitus: "
-
-#: readelf.c:298
-#, c-format
-msgid "Unable to seek to 0x%x for %s\n"
-msgstr "Ei voi hakea siirrosta 0x%x kohteesta %s\n"
-
-#: readelf.c:310
-#, c-format
-msgid "Out of memory allocating 0x%x bytes for %s\n"
-msgstr "Muisti loppui varattaessa 0x%x tavua kohteelle %s\n"
-
-#: readelf.c:318
-#, c-format
-msgid "Unable to read in 0x%x bytes of %s\n"
-msgstr "Ei voi lukea 0x%x tavua kohteesta %s\n"
-
-#: readelf.c:364 readelf.c:412 readelf.c:615 readelf.c:647
-#, c-format
-msgid "Unhandled data length: %d\n"
-msgstr "Käsittelemätön data-pituus: %d\n"
-
-#: readelf.c:752
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr "Tämän konearkkitehtuurin uudelleensijoituksia ei tunneta\n"
-
-# Viimeinen %s-parametri virheilmoitukseen: Unable to seek to 0x%x for %s\n
-# Määritelty ainakin <linux/elf.h> -tiedostossa.
-#: readelf.c:772 readelf.c:799 readelf.c:842 readelf.c:869
-msgid "relocs"
-msgstr "relocs"
-
-#: readelf.c:782 readelf.c:809 readelf.c:852 readelf.c:879
-msgid "out of memory parsing relocs"
-msgstr "muisti loppui jäsenneltäessä relocs-alkioita"
-
-#: readelf.c:933
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
-msgstr " Siirros Tiedot Tyyppi Sym. arvo Symbolin nimi + Lisättävä\n"
-
-#: readelf.c:935
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
-msgstr " Siirros Tiedot Tyyppi Sym.arvo Sym. nimi + Lisättävä\n"
-
-#: readelf.c:940
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name\n"
-msgstr " Siirros Tiedot Tyyppi Sym. arvo Symbolin nimi\n"
-
-#: readelf.c:942
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name\n"
-msgstr " Siirros Tiedot Tyyppi Sym.arvo Sym. nimi\n"
-
-#: readelf.c:950
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
-msgstr " Siirros Tiedot Tyyppi Symbolin arvo Symbolin nimi + Lisättävä\n"
-
-#: readelf.c:952
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
-msgstr " Siirros Tiedot Tyyppi Sym. arvo Sym. nimi + Lisättävä\n"
-
-#: readelf.c:957
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr " Siirros Tiedot Tyyppi Symbolin arvo Symbolin nimi\n"
-
-#: readelf.c:959
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name\n"
-msgstr " Siirros Tiedot Tyyppi Sym. arvo Symbolinimi\n"
-
-#: readelf.c:1239 readelf.c:1241 readelf.c:1324 readelf.c:1326 readelf.c:1335
-#: readelf.c:1337
-#, c-format
-msgid "unrecognized: %-7lx"
-msgstr "tunnistamaton: %-7lx"
-
-#: readelf.c:1295
-#, c-format
-msgid "<string table index: %3ld>"
-msgstr "<merkkijonotaulun indeksi: %3ld>"
-
-#: readelf.c:1297
-#, c-format
-msgid "<corrupt string table index: %3ld>"
-msgstr "<rikkoutunut merkkijonotauluindeksi: %3ld>"
-
-#: readelf.c:1569
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr "Suoritinkohtainen: %lx"
-
-#: readelf.c:1588
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr "Käyttöjärjestelmäkohtainen: %lx"
-
-#: readelf.c:1592 readelf.c:2370
-#, c-format
-msgid "<unknown>: %lx"
-msgstr "<tuntematon>: %lx"
-
-#: readelf.c:1605
-msgid "NONE (None)"
-msgstr "NONE (Ei mitään)"
-
-#: readelf.c:1606
-msgid "REL (Relocatable file)"
-msgstr "REL (Uudelleensijoitettava tiedosto)"
-
-#: readelf.c:1607
-msgid "EXEC (Executable file)"
-msgstr "EXEC (Suoritettava tiedosto)"
-
-#: readelf.c:1608
-msgid "DYN (Shared object file)"
-msgstr "DYN (Jaettu objektitiedosto)"
-
-#: readelf.c:1609
-msgid "CORE (Core file)"
-msgstr "CORE (Muistivedos)"
-
-#: readelf.c:1613
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr "Suoritinkohtainen: (%x)"
-
-#: readelf.c:1615
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr "Käyttöjärjestelmäkohtainen: (%x)"
-
-#: readelf.c:1617 readelf.c:1724 readelf.c:2554
-#, c-format
-msgid "<unknown>: %x"
-msgstr "<tuntematon>: %x"
-
-#: readelf.c:1629
-msgid "None"
-msgstr "Ei mitään"
-
-#: readelf.c:2229
-msgid "Standalone App"
-msgstr "Erillinen sovellus"
-
-#: readelf.c:2232 readelf.c:2952 readelf.c:2968
-#, c-format
-msgid "<unknown: %x>"
-msgstr "<tuntematon: %x>"
-
-#: readelf.c:2597
-#, c-format
-msgid "Usage: readelf <option(s)> elf-file(s)\n"
-msgstr "Käyttö: readelf <valitsimet> elf-tiedosto(t)\n"
-
-#: readelf.c:2598
-#, c-format
-msgid " Display information about the contents of ELF format files\n"
-msgstr " Näyttää tietoja ELF-muotoisten tiedostojen sisällöstä.\n"
-
-# Alla "core notes" on hiukan hankala suomentaa. Notes viittaan note-lohkoihin, joita valmistaja käyttää lisätietojen sisällyttämiseksi tiedostoon. Lisätiedot olisi ehkä merkitykseltään paras suomennos. Tiedostossa saattaa esiintyä yksi tai useampi maaginen .note-lohko, jota käytetään lisätietojen tallentamiseen. Ohjelmoijille .note-lohko voi olla tuttu, mutta he eivät välttämättä osaa yhdistää sanaa "lisätiedot" lohkoon .note.
-#: readelf.c:2599
-#, c-format
-msgid ""
-" Options are:\n"
-" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Display the ELF file header\n"
-" -l --program-headers Display the program headers\n"
-" --segments An alias for --program-headers\n"
-" -S --section-headers Display the sections' header\n"
-" --sections An alias for --section-headers\n"
-" -g --section-groups Display the section groups\n"
-" -e --headers Equivalent to: -h -l -S\n"
-" -s --syms Display the symbol table\n"
-" --symbols An alias for --syms\n"
-" -n --notes Display the core notes (if present)\n"
-" -r --relocs Display the relocations (if present)\n"
-" -u --unwind Display the unwind info (if present)\n"
-" -d --dynamic Display the dynamic section (if present)\n"
-" -V --version-info Display the version sections (if present)\n"
-" -A --arch-specific Display architecture specific information (if any).\n"
-" -D --use-dynamic Use the dynamic section info when displaying symbols\n"
-" -x --hex-dump=<number> Dump the contents of section <number>\n"
-" -w[liaprmfFsoR] or\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n"
-" Display the contents of DWARF2 debug sections\n"
-msgstr ""
-" Valitsimet ovat:\n"
-" -a --all Sama kuin: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Näyttää ELF-tiedosto-otsakkeen\n"
-" -l --program-headers Näyttää ohjelmaotsakkeet\n"
-" --segments Alias valitsimelle --program-headers\n"
-" -S --section-headers Näyttää lohkon otsakkeen\n"
-" --sections Alias valitsimelle --section-headers\n"
-" -g --section-groups Näyttää lohkoryhmät\n"
-" -e --headers Sama kuin: -h -l -S\n"
-" -s --syms Näyttää symbolitaulun\n"
-" --symbols Alias valitsimelle --syms\n"
-" -n --notes Näyttää ydin notes (jos on olemassa)\n"
-" -r --relocs Näyttää uudelleensijoitukset (jos on olemassa)\n"
-" -u --unwind Näyttää unwind-tiedot (jos on olemassa)\n"
-" -d --dynamic Näyttää dynaamisen lohkon (jos on olemassa)\n"
-" -V --version-info Näyttää versiolohkot (jos on olemassa)\n"
-" -A --arch-specific Näyttää arkkitehtuurikohtaiset tiedot (jos niitä on).\n"
-" -D --use-dynamic Käyttää dynaamisia lohkotietoja, kun näytetään symboleja\n"
-" -x --hex-dump=<numero> Vedostaa lohkon <numero> sisällön\n"
-" -w[liaprmfFsoR] tai\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n"
-" Näyttää DWARF2-debug-lohkojen sisällön\n"
-
-#: readelf.c:2622
-#, c-format
-msgid ""
-" -i --instruction-dump=<number>\n"
-" Disassemble the contents of section <number>\n"
-msgstr ""
-" -i --instruction-dump=<numero>\n"
-" Disassembloi lohkon <numero> sisällöt\n"
-
-#: readelf.c:2626
-#, c-format
-msgid ""
-" -I --histogram Display histogram of bucket list lengths\n"
-" -W --wide Allow output width to exceed 80 characters\n"
-" -H --help Display this information\n"
-" -v --version Display the version number of readelf\n"
-msgstr ""
-" -I --histogram Näyttää bucket-luettelopituuksien histogrammin\n"
-" -W --wide Sallii yli 80 merkin levyisen tulosteen\n"
-" -H --help Näyttää nämä tiedot\n"
-" -v --version Näyttää readelf-ohjelman versionumeron\n"
-
-#: readelf.c:2651 readelf.c:12118
-msgid "Out of memory allocating dump request table."
-msgstr "Muisti loppui varattaessa tiedostovedospyyntötaulua."
-
-#: readelf.c:2820 readelf.c:2888
-#, c-format
-msgid "Unrecognized debug option '%s'\n"
-msgstr "Tunnistamaton debug-valitsin \"%s\"\n"
-
-#: readelf.c:2922
-#, c-format
-msgid "Invalid option '-%c'\n"
-msgstr "Virheellinen valitsin \"-%c\"\n"
-
-#: readelf.c:2936
-msgid "Nothing to do.\n"
-msgstr "Ei mitään tehtävää.\n"
-
-#: readelf.c:2948 readelf.c:2964 readelf.c:5906
-msgid "none"
-msgstr "ei mitään"
-
-# Selvennetty ylimääräisillä lainausmerkeillä
-#: readelf.c:2965
-msgid "2's complement, little endian"
-msgstr "kahden komplementti, \"little endian\"-tavujärjestys"
-
-# Selvennetty ylimääräisillä lainausmerkeillä
-#: readelf.c:2966
-msgid "2's complement, big endian"
-msgstr "kahden komplementti, \"big endian\"-tavujärjestys"
-
-# Valinnaisessa COFF-otsakkeessa on magic-kenttä, joka kertoo tiedoston tyypin.
-#: readelf.c:2984
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr "Ei ELF-tiedosto - siinä on väärät maagiset tavut alussa\n"
-
-#: readelf.c:2992
-#, c-format
-msgid "ELF Header:\n"
-msgstr "ELF-otsake:\n"
-
-# Valinnaisessa COFF-otsakkeessa on magic-kenttä, joka kertoo tiedoston tyypin. Joillakin COFF-lohkoilla voi olla magic-nimi, joka kertoo lohkon erikoistarkoituksesta.
-#: readelf.c:2993
-#, c-format
-msgid " Magic: "
-msgstr " Maaginen numero: "
-
-# Levennetty tarkoituksella
-#: readelf.c:2997
-#, c-format
-msgid " Class: %s\n"
-msgstr " Luokka: %s\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:2999
-#, c-format
-msgid " Data: %s\n"
-msgstr " Data: %s\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:3001
-#, c-format
-msgid " Version: %d %s\n"
-msgstr " Versio: %d %s\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:3008
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr " Käyttöjärjestelmä/ABI: %s\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:3010
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr " ABI-versio: %d\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:3012
-#, c-format
-msgid " Type: %s\n"
-msgstr " Tyyppi: %s\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:3014
-#, c-format
-msgid " Machine: %s\n"
-msgstr " Kone: %s\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:3016
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr " Versio: 0x%lx\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:3019
-#, c-format
-msgid " Entry point address: "
-msgstr " Tulokohtaosoite: "
-
-# Levennetty tarkoituksella
-#: readelf.c:3021
-#, c-format
-msgid ""
-"\n"
-" Start of program headers: "
-msgstr ""
-"\n"
-" Ohjelmaotsakkeiden alku: "
-
-# Levennetty tarkoituksella
-#: readelf.c:3023
-#, c-format
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr ""
-" (tavua tiedostoon)\n"
-" Lohko-otsakkeiden alku: "
-
-#: readelf.c:3025
-#, c-format
-msgid " (bytes into file)\n"
-msgstr " (tavua tiedostoon)\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:3027
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr " Liput: 0x%lx%s\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:3030
-#, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr " Tämän otsakkeen koko: %ld (tavua)\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:3032
-#, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr " Ohjelmaotsakkeiden koko: %ld (tavua)\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:3034
-#, c-format
-msgid " Number of program headers: %ld\n"
-msgstr " Ohjelmaotsakkeiden lukumäärä: %ld\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:3036
-#, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr " Lohko-otsakkeiden koko: %ld (tavua)\n"
-
-# Levennetty tarkoituksella
-#: readelf.c:3038
-#, c-format
-msgid " Number of section headers: %ld"
-msgstr " Lohko-otsakkeiden lukumäärä: %ld"
-
-# Yläpuolella olevat on levennetty tarkoituksella tämän levyisiksi
-#: readelf.c:3043
-#, c-format
-msgid " Section header string table index: %ld"
-msgstr " Lohko-otsakemerkkijonotaulun indeksi: %ld"
-
-#: readelf.c:3074 readelf.c:3107
-msgid "program headers"
-msgstr "ohjelmaotsakkeet"
-
-#: readelf.c:3145 readelf.c:3446 readelf.c:3487 readelf.c:3546 readelf.c:3609
-#: readelf.c:3993 readelf.c:4017 readelf.c:5247 readelf.c:5291 readelf.c:5489
-#: readelf.c:6450 readelf.c:6464 readelf.c:11493 readelf.c:11912
-#: readelf.c:11979
-msgid "Out of memory\n"
-msgstr "Muisti loppui\n"
-
-#: readelf.c:3172
-#, c-format
-msgid ""
-"\n"
-"There are no program headers in this file.\n"
-msgstr ""
-"\n"
-"Tässä tiedostossa ei ole ohjelmaotsakkeita.\n"
-
-#: readelf.c:3178
-#, c-format
-msgid ""
-"\n"
-"Elf file type is %s\n"
-msgstr ""
-"\n"
-"Elf-tiedostotyyppi on %s\n"
-
-#: readelf.c:3179
-#, c-format
-msgid "Entry point "
-msgstr "Tulokohta "
-
-#: readelf.c:3181
-#, c-format
-msgid ""
-"\n"
-"There are %d program headers, starting at offset "
-msgstr ""
-"\n"
-"Ohjelmaotsakkeita on %d kpl, alkaen siirroksesta "
-
-#: readelf.c:3193 readelf.c:3195
-#, c-format
-msgid ""
-"\n"
-"Program Headers:\n"
-msgstr ""
-"\n"
-"Ohjelmaotsakkeet:\n"
-
-#: readelf.c:3199
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Tyyppi Siirros VirtOsoite FyysOsoite TiedKok MuisKok Lip Tasaus\n"
-
-#: readelf.c:3202
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Tyyppi Siirros VirtuaaliOsoite FyysinenOsoite TiedKoko MuisKoko Lip Tasaus\n"
-
-#: readelf.c:3206
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr " Tyyppi Siirros VirtuaaliOsoite FyysinenOsoite\n"
-
-#: readelf.c:3208
-#, c-format
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr " TiedostoKoko MuistiKoko Liput Tasaus\n"
-
-#: readelf.c:3301
-msgid "more than one dynamic segment\n"
-msgstr "useampi kuin yksi dynaaminen segmentti\n"
-
-#: readelf.c:3312
-msgid "no .dynamic section in the dynamic segment"
-msgstr "ei .dynamic-lohkoa dynaamisessa segmentissä"
-
-#: readelf.c:3321
-msgid "the .dynamic section is not contained within the dynamic segment"
-msgstr ".dynamic-lohko ei ole dynaamisen segmentin sisällä"
-
-#: readelf.c:3323
-msgid "the .dynamic section is not the first section in the dynamic segment."
-msgstr ".dynamic-lohko ei ole dynaamisen segmentin ensimmäinen lohko."
-
-#: readelf.c:3337
-msgid "Unable to find program interpreter name\n"
-msgstr "Ohjelmatulkin nimeä ei löydy\n"
-
-#: readelf.c:3344
-#, c-format
-msgid ""
-"\n"
-" [Requesting program interpreter: %s]"
-msgstr ""
-"\n"
-" [Pyydetään ohjelmatulkkia: %s]"
-
-# Kartassa kohteet sijoitetaan kartalle toistensa suhteen eri paikkoihin.
-#: readelf.c:3356
-#, c-format
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-msgstr ""
-"\n"
-" Lohkosta Segmenttiin sijoittelu:\n"
-
-#: readelf.c:3357
-#, c-format
-msgid " Segment Sections...\n"
-msgstr " Segmenttilohkot...\n"
-
-#: readelf.c:3408
-msgid "Cannot interpret virtual addresses without program headers.\n"
-msgstr "Virtuaalisia osoitteita ei voi tulkata ilman ohjelmaotsakkeita.\n"
-
-#: readelf.c:3424
-#, c-format
-msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
-msgstr "Virtuaaliosoite 0x%lx ei sijaitse missään PT_LOAD-segmentissä.\n"
-
-#: readelf.c:3438 readelf.c:3479
-msgid "section headers"
-msgstr "lohko-otsakkeet"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-#: readelf.c:3523 readelf.c:3586
-msgid "symbols"
-msgstr "symbolit"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-#: readelf.c:3533 readelf.c:3596
-msgid "symtab shndx"
-msgstr "\"symtab shndx\"-taululle"
-
-#: readelf.c:3697 readelf.c:3977
-#, c-format
-msgid ""
-"\n"
-"There are no sections in this file.\n"
-msgstr ""
-"\n"
-"Tässä tiedostossa ei ole lohkoja.\n"
-
-#: readelf.c:3703
-#, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr "Lohko-otsakkeita on %d kpl, alkaen siirroksesta 0x%lx:\n"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-#: readelf.c:3720 readelf.c:4079 readelf.c:4290 readelf.c:4591 readelf.c:5011
-#: readelf.c:6618
-msgid "string table"
-msgstr "merkkijonotaulu"
-
-#: readelf.c:3765
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr "Tiedosto sisältää useita dynaamisia symbolitauluja\n"
-
-#: readelf.c:3777
-msgid "File contains multiple dynamic string tables\n"
-msgstr "Tiedosto sisältää useita dynaamisia merkkijonotauluja\n"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-#: readelf.c:3782
-msgid "dynamic strings"
-msgstr "dynaamiset merkkijonot"
-
-# Lisäsin lainausmerkit selventämään lausetta.
-#: readelf.c:3789
-msgid "File contains multiple symtab shndx tables\n"
-msgstr "Tiedosto sisältää useita \"symtab shndx\"-tauluja\n"
-
-# monikkomuoto seuraavasta msgid:stä
-#: readelf.c:3828
-#, c-format
-msgid ""
-"\n"
-"Section Headers:\n"
-msgstr ""
-"\n"
-"Lohko-otsakkeet:\n"
-
-# yksikkömuoto edellisestä msgid:stä
-#: readelf.c:3830
-#, c-format
-msgid ""
-"\n"
-"Section Header:\n"
-msgstr ""
-"\n"
-"Lohko-otsake:\n"
-
-# ES on kokonaiskoko, Flg on liput, Lk on Linkki, Inf on Tiedot
-#: readelf.c:3834
-#, c-format
-msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] Nimi Tyyppi Osoite Siirr. Koko Yht Lip Lk Tdt Tasaus\n"
-
-# ES on kokonaiskoko, Flg on liput, Lk on Linkki, Inf on Tiedot
-#: readelf.c:3837
-#, c-format
-msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] Nimi Tyyppi Osoite Siirr. Koko Yht Lip Lk Tdt Tasaus\n"
-
-#: readelf.c:3840
-#, c-format
-msgid " [Nr] Name Type Address Offset\n"
-msgstr " [Nr] Nimi Tyyppi Osoite Siirros\n"
-
-# EntSize voi tarkoittaa Entire Size tai Entity Size
-#: readelf.c:3841
-#, c-format
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr " Koko KokonaisKoko Liput Link Tiedot Tasaus\n"
-
-#: readelf.c:3936
-#, c-format
-msgid ""
-"Key to Flags:\n"
-" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-" I (info), L (link order), G (group), x (unknown)\n"
-" O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr ""
-"Lippuavaimet:\n"
-" W (kirjoita), A (varaa), X (suorita), M (lomita), S (merkkijonot)\n"
-" I (tiedot), L (linkitysjärjestys), G (ryhmä), x (tuntematon)\n"
-" O (vaatii käyttöjärjestelmäkohtaista lisäkäsittelyä) o (Käyttöjärjestelmäkohtainen),\n"
-" p (suoritinkohtainen)\n"
-
-#: readelf.c:3954
-#, c-format
-msgid "[<unknown>: 0x%x]"
-msgstr "[<tuntematon>: 0x%x]"
-
-#: readelf.c:3984
-msgid "Section headers are not available!\n"
-msgstr "Lohko-otsakkeita ei ole saatavilla!\n"
-
-#: readelf.c:4008
-#, c-format
-msgid ""
-"\n"
-"There are no section groups in this file.\n"
-msgstr ""
-"\n"
-"Tässä tiedostossa ei ole lohkoryhmiä.\n"
-
-# The sh_link field of this section contains the index of the associated SHT_SYMTAB
-#: readelf.c:4042
-#, c-format
-msgid "Bad sh_link in group section `%s'\n"
-msgstr "Virheellinen sh_link-kenttä ryhmälohkossa \"%s\"\n"
-
-# The sh_info field holds the section header index, which is displayed in decimal.
-#: readelf.c:4061
-#, c-format
-msgid "Bad sh_info in group section `%s'\n"
-msgstr "Virheellinen sh_info-kenttä ryhmälohkossa \"%s\"\n"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-#: readelf.c:4085 readelf.c:6947
-msgid "section data"
-msgstr "lohkodata"
-
-#: readelf.c:4097
-#, c-format
-msgid " [Index] Name\n"
-msgstr " [Indeksi] Nimi\n"
-
-#: readelf.c:4114
-#, c-format
-msgid "section [%5u] already in group section [%5u]\n"
-msgstr "lohko [%5u] on jo ryhmälohkossa [%5u]\n"
-
-#: readelf.c:4127
-#, c-format
-msgid "section 0 in group section [%5u]\n"
-msgstr "lohko 0 ryhmälohkossa [%5u]\n"
-
-#: readelf.c:4224
-#, c-format
-msgid ""
-"\n"
-"'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr ""
-"\n"
-"\"%s\" uudelleensijoituslohko siirroksessa 0x%lx sisältää %ld tavua:\n"
-
-#: readelf.c:4236
-#, c-format
-msgid ""
-"\n"
-"There are no dynamic relocations in this file.\n"
-msgstr ""
-"\n"
-"Tässä tiedostossa ei ole dynaamisia uudelleensijoituksia.\n"
-
-# Kolme seuraava kuuluu yhteen. Siksi ensimmäinen genetiivimuodossa.
-#: readelf.c:4260
-#, c-format
-msgid ""
-"\n"
-"Relocation section "
-msgstr ""
-"\n"
-"Uudelleensijoituslohkon "
-
-# Kuuluu yhteen edellisen ja seuraavan kanssa.
-#: readelf.c:4265 readelf.c:4666 readelf.c:4680 readelf.c:5025
-#, c-format
-msgid "'%s'"
-msgstr "\"%s\""
-
-# Kuuluu yhteen kahden edellisen kanssa.
-#: readelf.c:4267 readelf.c:4682 readelf.c:5027
-#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr " siirroksessa 0x%lx on %lu alkiota:\n"
-
-#: readelf.c:4308
-#, c-format
-msgid ""
-"\n"
-"There are no relocations in this file.\n"
-msgstr ""
-"\n"
-"Tässä tiedostossa ei ole uudelleensijoituksia.\n"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-#: readelf.c:4482 readelf.c:4862
-msgid "unwind table"
-msgstr "unwind-taulu"
-
-#: readelf.c:4540 readelf.c:4959
-#, c-format
-msgid "Skipping unexpected relocation type %s\n"
-msgstr "Ohittaa odottamattoman uudelleensijoitustyypin %s\n"
-
-# Unwind tarkoittaa ilmeisesti jonkun aikaisemman tilanteen palautusta esimerkiksi virhetilanteessa.
-#: readelf.c:4598 readelf.c:5018 readelf.c:5069
-#, c-format
-msgid ""
-"\n"
-"There are no unwind sections in this file.\n"
-msgstr ""
-"\n"
-"Tässä tiedostossa ei ole unwind-lohkoja.\n"
-
-# Unwind tarkoittaa ilmeisesti jonkun aikaisemman tilanteen palautusta esimerkiksi virhetilanteessa.
-#: readelf.c:4661
-#, c-format
-msgid ""
-"\n"
-"Could not find unwind info section for "
-msgstr ""
-"\n"
-"Ei voitu löytää unwind-tietolohkoja kohteelle "
-
-# Unwind tarkoittaa ilmeisesti jonkun aikaisemman tilanteen palautusta esimerkiksi virhetilanteessa.
-#: readelf.c:4673
-msgid "unwind info"
-msgstr "unwind-tiedot"
-
-# Unwind on maaginen lohkonimi ja siksi sitä ei voi kääntää.
-#: readelf.c:4675 readelf.c:5024
-#, c-format
-msgid ""
-"\n"
-"Unwind section "
-msgstr ""
-"\n"
-"Unwind-lohko "
-
-#: readelf.c:5228 readelf.c:5272
-msgid "dynamic section"
-msgstr "dynaaminen lohko"
-
-#: readelf.c:5349
-#, c-format
-msgid ""
-"\n"
-"There is no dynamic section in this file.\n"
-msgstr ""
-"\n"
-"Tässä tiedostossa ei ole dynaamista lohkoa.\n"
-
-#: readelf.c:5387
-msgid "Unable to seek to end of file!"
-msgstr "Hakua ei voi suorittaa tiedoston loppuun!"
-
-#: readelf.c:5400
-msgid "Unable to determine the number of symbols to load\n"
-msgstr "Ei voi määritellä ladattavien symbolien lukumäärää\n"
-
-#: readelf.c:5435
-msgid "Unable to seek to end of file\n"
-msgstr "Hakua ei voi suorittaa tiedoston loppuun\n"
-
-#: readelf.c:5442
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr "Dynaamisen merkkijonotaulun pituutta ei voi määritellä\n"
-
-#: readelf.c:5447
-msgid "dynamic string table"
-msgstr "dynaaminen merkkijonotaulu"
-
-#: readelf.c:5482
-msgid "symbol information"
-msgstr "symbolitiedot"
-
-#: readelf.c:5507
-#, c-format
-msgid ""
-"\n"
-"Dynamic section at offset 0x%lx contains %u entries:\n"
-msgstr ""
-"\n"
-"Dynaaminen lohko siirroksessa 0x%lx sisältää %u alkiota:\n"
-
-#: readelf.c:5510
-#, c-format
-msgid " Tag Type Name/Value\n"
-msgstr " Tunniste Tyyppi Nimi/Arvo\n"
-
-#: readelf.c:5546
-#, c-format
-msgid "Auxiliary library"
-msgstr "Apukirjasto"
-
-#: readelf.c:5550
-#, c-format
-msgid "Filter library"
-msgstr "Suodatinkirjasto"
-
-#: readelf.c:5554
-#, c-format
-msgid "Configuration file"
-msgstr "Alustustiedosto"
-
-#: readelf.c:5558
-#, c-format
-msgid "Dependency audit library"
-msgstr "Riippuvuustarkastuskirjasto"
-
-#: readelf.c:5562
-#, c-format
-msgid "Audit library"
-msgstr "Tarkastuskirjasto"
-
-#: readelf.c:5580 readelf.c:5608 readelf.c:5636
-#, c-format
-msgid "Flags:"
-msgstr "Liput:"
-
-#: readelf.c:5583 readelf.c:5611 readelf.c:5638
-#, c-format
-msgid " None\n"
-msgstr "Ei mitään\n"
-
-#: readelf.c:5759
-#, c-format
-msgid "Shared library: [%s]"
-msgstr "Jaettu kirjasto: [%s]"
-
-#: readelf.c:5762
-#, c-format
-msgid " program interpreter"
-msgstr " ohjelmatulkki"
-
-# soname tarkoittanee *nix-ympäristössä dynaamisen kirjaston libxml.so.6.0.1 -tyyppistä nimeä
-#: readelf.c:5766
-#, c-format
-msgid "Library soname: [%s]"
-msgstr "Kirjaston so-nimi: [%s]"
-
-# rpath tarkoittanee samaa kuin run-path
-#: readelf.c:5770
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr "Kirjaston rpath: [%s]"
-
-#: readelf.c:5774
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr "Kirjaston run-polku: [%s]"
-
-#: readelf.c:5837
-#, c-format
-msgid "Not needed object: [%s]\n"
-msgstr "Tarpeeton objekti: [%s]\n"
-
-#: readelf.c:5951
-#, c-format
-msgid ""
-"\n"
-"Version definition section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Versiomäärittelylohko \"%s\" sisältää %ld alkiota:\n"
-
-#: readelf.c:5954
-#, c-format
-msgid " Addr: 0x"
-msgstr " Osoite: 0x"
-
-#: readelf.c:5956 readelf.c:6148
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr " Siirros: %#08lx Linkki: %lx (%s)\n"
-
-#: readelf.c:5961
-msgid "version definition section"
-msgstr "versiomäärittelylohko"
-
-# Rev on ilmeisesti revision.
-#: readelf.c:5987
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr " %#06x: Rev: %d Liput: %s"
-
-#: readelf.c:5990
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr " Indeksi: %d Lkm: %d "
-
-#: readelf.c:6001
-#, c-format
-msgid "Name: %s\n"
-msgstr "Nimi: %s\n"
-
-#: readelf.c:6003
-#, c-format
-msgid "Name index: %ld\n"
-msgstr "Nimi-indeksi: %ld\n"
-
-#: readelf.c:6018
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr " %#06x: Lähde %d: %s\n"
-
-#: readelf.c:6021
-#, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr " %#06x: Lähde %d, nimi-indeksi: %ld\n"
-
-#: readelf.c:6040
-#, c-format
-msgid ""
-"\n"
-"Version needs section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Versiotarpeet-lohko \"%s\" sisältää %ld alkiota:\n"
-
-#: readelf.c:6043
-#, c-format
-msgid " Addr: 0x"
-msgstr " Osoite: 0x"
-
-#: readelf.c:6045
-#, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr " Siirros: %#08lx Linkki lohkoon: %ld (%s)\n"
-
-# kolme msgid ylempänä on Version needs section. Ilmeisesti tässä pitäisi olla sama
-#: readelf.c:6050
-msgid "version need section"
-msgstr "versiotarve-lohko"
-
-#: readelf.c:6072
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr " %#06x: Versio: %d"
-
-#: readelf.c:6075
-#, c-format
-msgid " File: %s"
-msgstr " Tiedosto: %s"
-
-#: readelf.c:6077
-#, c-format
-msgid " File: %lx"
-msgstr " Tiedosto: %lx"
-
-#: readelf.c:6079
-#, c-format
-msgid " Cnt: %d\n"
-msgstr " Lkm: %d\n"
-
-#: readelf.c:6097
-#, c-format
-msgid " %#06x: Name: %s"
-msgstr " %#06x: Nimi: %s"
-
-#: readelf.c:6100
-#, c-format
-msgid " %#06x: Name index: %lx"
-msgstr " %#06x: Nimi-indeksi: %lx"
-
-#: readelf.c:6103
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr " Liput: %s Versio: %d\n"
-
-#: readelf.c:6139
-msgid "version string table"
-msgstr "versiomerkkijonotaulu"
-
-#: readelf.c:6143
-#, c-format
-msgid ""
-"\n"
-"Version symbols section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"Versiosymbolilohko \"%s\" sisältää %d alkiota:\n"
-
-#: readelf.c:6146
-#, c-format
-msgid " Addr: "
-msgstr " Osoite: "
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-#: readelf.c:6156
-msgid "version symbol data"
-msgstr "versiosymbolidata"
-
-# Pituus maksimissaan 9 merkkiä, "*yleinen*" on tasan 9-merkkiä. Suomennos on hiukan slanginen
-#: readelf.c:6183
-msgid " 0 (*local*) "
-msgstr " 0 (*lokaali*) "
-
-# Pituus maksimissaan 9 merkkiä, (*globaali*) on liian pitkä
-#: readelf.c:6187
-msgid " 1 (*global*) "
-msgstr " 1 (*yleinen*) "
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-# Viittaa Elf_External_Verneed-rakenteeseen
-#: readelf.c:6223 readelf.c:6677
-msgid "version need"
-msgstr "versiotarve"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n.
-# Viittaa Elf_External_Vernaux -rakenteeseen.
-#: readelf.c:6233
-msgid "version need aux (2)"
-msgstr "ulkoinen versiotarve (2)"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n.
-# Viittaa Elf_External_Verdef-rakenteeseen.
-#: readelf.c:6275 readelf.c:6740
-msgid "version def"
-msgstr "versiomäärittely"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n.
-# Viittaa Elf_External_Verdaux-rakenteeseen.
-#: readelf.c:6294 readelf.c:6755
-msgid "version def aux"
-msgstr "ulkoinen versiomäärittely"
-
-#: readelf.c:6325
-#, c-format
-msgid ""
-"\n"
-"No version information found in this file.\n"
-msgstr ""
-"\n"
-"Tästä tiedostosta ei löytynyt versiotietoja.\n"
-
-#: readelf.c:6456
-msgid "Unable to read in dynamic data\n"
-msgstr "Ei voi lukea dynaamista dataa\n"
-
-#: readelf.c:6509
-msgid "Unable to seek to start of dynamic information"
-msgstr "Ei voi hakea dynaamisten tietojen alkua"
-
-#: readelf.c:6515
-msgid "Failed to read in number of buckets\n"
-msgstr "Buckets-lukumäärän lukeminen epäonnistui\n"
-
-#: readelf.c:6521
-msgid "Failed to read in number of chains\n"
-msgstr "Ketjujen lukumäärän lukeminen epäonnistui\n"
-
-#: readelf.c:6541
-#, c-format
-msgid ""
-"\n"
-"Symbol table for image:\n"
-msgstr ""
-"\n"
-"Symbolitaulu tiedostovedokselle:\n"
-
-#: readelf.c:6543
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Buc-lkm: Arvo Koko Tyyppi Sidnta Näkyvyys Ind Nimi\n"
-
-# Num tarkoittaa ilmeisesti number-sanaa. Bind tarkoittaa ehkä samaa kuin jossain muussa taulukossa BoundTo ?
-#: readelf.c:6545
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Buc-lkm: Arvo Koko Tyyppi Sidnta Näkyvyys Ind Nimi\n"
-
-#: readelf.c:6597
-#, c-format
-msgid ""
-"\n"
-"Symbol table '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"Symbolitaulu \"%s\" sisältää %lu alkiota:\n"
-
-#: readelf.c:6601
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Num: Arvo Koko Tyyppi Sidnta Näkyvyys Ind Nimi\n"
-
-#: readelf.c:6603
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Num: Arvo Koko Tyyppi Sidnta Näkyvyys Ind Nimi\n"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-#: readelf.c:6649
-msgid "version data"
-msgstr "versiodata"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-# Viittaa Elf_External_Vernaux-rakenteeseen
-#: readelf.c:6690
-msgid "version need aux (3)"
-msgstr "ulkoinen versiotarve (3)"
-
-#: readelf.c:6715
-msgid "bad dynamic symbol"
-msgstr "virheellinen dynaaminen symboli"
-
-#: readelf.c:6778
-#, c-format
-msgid ""
-"\n"
-"Dynamic symbol information is not available for displaying symbols.\n"
-msgstr ""
-"\n"
-"Dynaamisia symbolitietoja ei ole näytettävälle symbolille.\n"
-
-#: readelf.c:6790
-#, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length (total of %lu buckets):\n"
-msgstr ""
-"\n"
-"Bucket-luettelopituuden histogrammi (yhteensä %lu bucketista):\n"
-
-#: readelf.c:6792
-#, c-format
-msgid " Length Number %% of total Coverage\n"
-msgstr " Pituus Numero %% kaikesta Yhteensä\n"
-
-#: readelf.c:6797 readelf.c:6813 readelf.c:10967 readelf.c:11159
-msgid "Out of memory"
-msgstr "Muisti loppui"
-
-#: readelf.c:6862
-#, c-format
-msgid ""
-"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr ""
-"\n"
-"Dynaaminen info-segmentti siirroksessa 0x%lx sisältää %d alkiota:\n"
-
-#: readelf.c:6865
-#, c-format
-msgid " Num: Name BoundTo Flags\n"
-msgstr " Num: Nimi Sidotaan Liput\n"
-
-#: readelf.c:6917
-#, c-format
-msgid ""
-"\n"
-"Assembly dump of section %s\n"
-msgstr ""
-"\n"
-"Lohkon %s assembly-vedos\n"
-
-#: readelf.c:6938
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no data to dump.\n"
-msgstr ""
-"\n"
-"Lohkossa \"%s\" ei ole vedostettavaa dataa.\n"
-
-#: readelf.c:6943
-#, c-format
-msgid ""
-"\n"
-"Hex dump of section '%s':\n"
-msgstr ""
-"\n"
-"Lohkon \"%s\" heksadesimaalilukuvedos:\n"
-
-#: readelf.c:7090
-msgid "badly formed extended line op encountered!\n"
-msgstr "virheellisesti muotoiltu laajennusrivin käskykoodi tavattu!\n"
-
-#: readelf.c:7097
-#, c-format
-msgid " Extended opcode %d: "
-msgstr " Laajennettu käskykoodi %d: "
-
-#: readelf.c:7102
-#, c-format
-msgid ""
-"End of Sequence\n"
-"\n"
-msgstr ""
-"Sekvenssin loppu\n"
-"\n"
-
-#: readelf.c:7108
-#, c-format
-msgid "set Address to 0x%lx\n"
-msgstr "aseta osoitteeksi 0x%lx\n"
-
-#: readelf.c:7113
-#, c-format
-msgid " define new File Table entry\n"
-msgstr " määrittele uusi tiedostotaulualkio\n"
-
-#: readelf.c:7114 readelf.c:9032
-#, c-format
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr " Alkio\tHakemisto\tAika\tKoko\tNimi\n"
-
-#: readelf.c:7116
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: readelf.c:7119 readelf.c:7121 readelf.c:7123 readelf.c:9044 readelf.c:9046
-#: readelf.c:9048
-#, c-format
-msgid "%lu\t"
-msgstr "%lu\t"
-
-#: readelf.c:7124
-#, c-format
-msgid ""
-"%s\n"
-"\n"
-msgstr ""
-"%s\n"
-"\n"
-
-#: readelf.c:7128
-#, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr "TUNTEMATON: pituus %d\n"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-#: readelf.c:7155
-msgid "debug_str section data"
-msgstr "debug_str-lohkodata"
-
-#: readelf.c:7173
-msgid "<no .debug_str section>"
-msgstr "<ei .debug_str-lohkoa>"
-
-#: readelf.c:7176
-msgid "<offset is too big>"
-msgstr "<siirros on liian suuri>"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-#: readelf.c:7201
-msgid "debug_loc section data"
-msgstr "debug_loc-lohkodata"
-
-#: readelf.c:7235
-msgid "debug_range section data"
-msgstr "debug_range-lohkodata"
-
-#: readelf.c:7307
-#, c-format
-msgid "%s: skipping unexpected symbol type %s in relocation in section .rela%s\n"
-msgstr "%s: hypättiin odottamattoman symbolityypin %s yli lohkoa .rela%s uudelleensijoiteltaessa\n"
-
-#: readelf.c:7321
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela.%s\n"
-msgstr "hypättiin odottamattoman symbolityypin %s yli lohkoa .rela.%s uudelleensijoiteltaessa\n"
-
-#: readelf.c:7565
-#, c-format
-msgid "Unknown TAG value: %lx"
-msgstr "Tuntematon tunnistearvo: %lx"
-
-#: readelf.c:7601
-#, c-format
-msgid "Unknown FORM value: %lx"
-msgstr "Tuntematon FORM-arvo: %lx"
-
-#: readelf.c:7610
-#, c-format
-msgid " %lu byte block: "
-msgstr " %lu:n tavun lohko: "
-
-#: readelf.c:7944
-#, c-format
-msgid "(User defined location op)"
-msgstr "(Käyttäjän määrittelemä sijoituskäskykoodi)"
-
-#: readelf.c:7946
-#, c-format
-msgid "(Unknown location op)"
-msgstr "(Tuntematon sijoituskäskykoodi)"
-
-#: readelf.c:8015
-msgid "Internal error: DWARF version is not 2 or 3.\n"
-msgstr "Sisäinen virhe: DWARF-versio ei ole 2 eikä 3.\n"
-
-#: readelf.c:8113
-msgid "DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n"
-msgstr "DW_FORM_data8 ei ole tuettu, kun sizeof (unsigned long) != 8\n"
-
-#: readelf.c:8162
-#, c-format
-msgid " (indirect string, offset: 0x%lx): %s"
-msgstr " (epäsuora merkkijono, siirros: 0x%lx): %s"
-
-#: readelf.c:8171
-#, c-format
-msgid "Unrecognized form: %d\n"
-msgstr "Tunnistamaton muoto: %d\n"
-
-#: readelf.c:8256
-#, c-format
-msgid "(not inlined)"
-msgstr "(ei inline-funktiona)"
-
-#: readelf.c:8259
-#, c-format
-msgid "(inlined)"
-msgstr "(inline-funktiona)"
-
-#: readelf.c:8262
-#, c-format
-msgid "(declared as inline but ignored)"
-msgstr "(määritelty inline-funktiona, mutta määrittelystä ei ole välitetty)"
-
-#: readelf.c:8265
-#, c-format
-msgid "(declared as inline and inlined)"
-msgstr "(määritelty inline-funktiona ja toteutettu sellaisena)"
-
-#: readelf.c:8268
-#, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr " (Tuntematon inline-funktion attribuuttiarvo: %lx)"
-
-#: readelf.c:8413 readelf.c:9537
-#, c-format
-msgid " [without DW_AT_frame_base]"
-msgstr " [DW_AT_frame_base puuttuu]"
-
-#: readelf.c:8416
-#, c-format
-msgid "(location list)"
-msgstr "(sijoitusluettelo)"
-
-#: readelf.c:8534
-#, c-format
-msgid "Unknown AT value: %lx"
-msgstr "Tuntematon AT-arvo: %lx"
-
-# comp units tarkoittanee compilation unit eli käännösyksikköä?
-#: readelf.c:8602
-msgid "No comp units in .debug_info section ?"
-msgstr "Ei käännösyksikköjä .debug_info-lohkossa ?"
-
-#: readelf.c:8611
-#, c-format
-msgid "Not enough memory for a debug info array of %u entries"
-msgstr "Muistia ei ole tarpeeksi %u:n alkion debugtietotaulukolle"
-
-#: readelf.c:8619 readelf.c:9630
-#, c-format
-msgid ""
-"The section %s contains:\n"
-"\n"
-msgstr ""
-"Lohko %s sisältää:\n"
-"\n"
-
-#: readelf.c:8693
-#, c-format
-msgid " Compilation Unit @ %lx:\n"
-msgstr " Käännösyksikkö @ %lx:\n"
-
-# Välilyöntilisäys
-#: readelf.c:8694
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Pituus: %ld\n"
-
-# Välilyöntilisäys
-#: readelf.c:8695
-#, c-format
-msgid " Version: %d\n"
-msgstr " Versio: %d\n"
-
-# Välilyöntilisäys
-#: readelf.c:8696
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr " Lyhennesiirros: %ld\n"
-
-# Välilyöntilisäys
-#: readelf.c:8697
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " Osoitinkoko: %d\n"
-
-#: readelf.c:8702
-msgid "Only version 2 and 3 DWARF debug information is currently supported.\n"
-msgstr "Vain version 2 ja 3 DWARF-debug-tietoja tuetaan nykyään.\n"
-
-#: readelf.c:8717
-msgid "Unable to locate .debug_abbrev section!\n"
-msgstr "Ei voi paikantaa .debug_abbrev-lohkoa!\n"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-#: readelf.c:8722
-msgid "debug_abbrev section data"
-msgstr "debug_abbrev-lohkodata"
-
-#: readelf.c:8759
-#, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr "Lyhennetaulusta ei voi paikantaa alkiota %lu\n"
-
-#: readelf.c:8765
-#, c-format
-msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
-msgstr " <%d><%lx>: Lyhennenumero: %lu (%s)\n"
-
-# %s-parametri on lohkon nimi. Valinnaisesti palautetaan offset debug_info-lohkoon, jos sellainen on
-#: readelf.c:8838
-#, c-format
-msgid "%s section needs a populated .debug_info section\n"
-msgstr "%s-lohkossa ei ole .debug_info-lohkoa\n"
-
-# %s-parametri on lohkon nimi. Lähdekoodissa tämä ja rivin 8847 teksti muodostavat yhteenliitetyn kahdelle riville jaetun sanoman.
-#: readelf.c:8845
-#, c-format
-msgid "%s section has more comp units than .debug_info section\n"
-msgstr "%s-lohkossa on useampia käännösyksikköjä kuin .debug_info-lohkossa.\n"
-
-# Lähdekoodissa tämä ja rivin 8845 teksti muodostavat yhteenliitetyn kahdelle riville jaetun sanoman.
-#: readelf.c:8847
-#, c-format
-msgid ""
-"assuming that the pointer size is %d, from the last comp unit in .debug_info\n"
-"\n"
-msgstr ""
-"Oletetaan, että osoitinkoko on sama kuin edellisessä .debug_info-lohkon käännösyksikössä eli %d.\n"
-"\n"
-
-#: readelf.c:8891
-msgid "extracting information from .debug_info section"
-msgstr "puretaan tietoja .debug_info-lohkosta"
-
-#: readelf.c:8909
-#, c-format
-msgid ""
-"\n"
-"Dump of debug contents of section %s:\n"
-"\n"
-msgstr ""
-"\n"
-"Lohkon %s debug-sisällön vedos:\n"
-"\n"
-
-#: readelf.c:8948
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr "Rivitiedot näyttävät olevan rikkoutuneita - lohko on liian pieni\n"
-
-#: readelf.c:8957
-msgid "Only DWARF version 2 and 3 line info is currently supported.\n"
-msgstr "Vain DWARF-versioiden 2 ja 3 rivitiedot on nykyisin tuettu.\n"
-
-# DWARF2_Internal_LineInfo-lohkon pituus. Välilyönti lisätty tarkoituksella.
-#: readelf.c:8984
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Pituus: %ld\n"
-
-# Välilyönti lisätty tarkoituksella.
-#: readelf.c:8985
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr " DWARF-versio: %d\n"
-
-# Välilyönti lisätty tarkoituksella.
-#: readelf.c:8986
-#, c-format
-msgid " Prologue Length: %d\n"
-msgstr " Esitoimipituus: %d\n"
-
-# Välilyönti lisätty tarkoituksella.
-#: readelf.c:8987
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr " Minimikäskypituus: %d\n"
-
-#: readelf.c:8988
-#, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr " Kohteen \"is_stmt\" alkuarvo: %d\n"
-
-# Välilyönti lisätty tarkoituksella.
-#: readelf.c:8989
-#, c-format
-msgid " Line Base: %d\n"
-msgstr " Rivin kantaluku: %d\n"
-
-# Välilyönti lisätty tarkoituksella.
-#: readelf.c:8990
-#, c-format
-msgid " Line Range: %d\n"
-msgstr " Rivinumeroalue: %d\n"
-
-# Välilyönti lisätty tarkoituksella.
-#: readelf.c:8991
-#, c-format
-msgid " Opcode Base: %d\n"
-msgstr " Käskykoodin kantaluku: %d\n"
-
-# Välilyönti lisätty tarkoituksella.
-#: readelf.c:8992
-#, c-format
-msgid " (Pointer size: %u)\n"
-msgstr " (Osoitinkoko: %u)\n"
-
-#: readelf.c:9001
-#, c-format
-msgid ""
-"\n"
-" Opcodes:\n"
-msgstr ""
-"\n"
-" Käskykoodit:\n"
-
-#: readelf.c:9004
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr " Käskykoodilla %d on %d argumenttia\n"
-
-#: readelf.c:9010
-#, c-format
-msgid ""
-"\n"
-" The Directory Table is empty.\n"
-msgstr ""
-"\n"
-" Hakemistotaulu on tyhjä.\n"
-
-#: readelf.c:9013
-#, c-format
-msgid ""
-"\n"
-" The Directory Table:\n"
-msgstr ""
-"\n"
-" Hakemistotaulu:\n"
-
-#: readelf.c:9017
-#, c-format
-msgid " %s\n"
-msgstr " %s\n"
-
-#: readelf.c:9028
-#, c-format
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr ""
-"\n"
-" Tiedostonimitaulu on tyhjä.\n"
-
-#: readelf.c:9031
-#, c-format
-msgid ""
-"\n"
-" The File Name Table:\n"
-msgstr ""
-"\n"
-" Tiedostonimitaulu:\n"
-
-#: readelf.c:9039
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: readelf.c:9050
-#, c-format
-msgid "%s\n"
-msgstr "%s\n"
-
-#. Now display the statements.
-#: readelf.c:9058
-#, c-format
-msgid ""
-"\n"
-" Line Number Statements:\n"
-msgstr ""
-"\n"
-" Rivi Numero Lause:\n"
-
-#: readelf.c:9073
-#, c-format
-msgid " Special opcode %d: advance Address by %d to 0x%lx"
-msgstr " Erikoiskäskykoodi %d: etene %d tavua osoitteeseen 0x%lx"
-
-#: readelf.c:9077
-#, c-format
-msgid " and Line by %d to %d\n"
-msgstr " ja %d riviä riville %d\n"
-
-#: readelf.c:9088
-#, c-format
-msgid " Copy\n"
-msgstr " Kopioi\n"
-
-#: readelf.c:9095
-#, c-format
-msgid " Advance PC by %d to %lx\n"
-msgstr " Kasvata PC:tä arvolla %d arvoon %lx\n"
-
-#: readelf.c:9103
-#, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr " Kasvata riviä arvolla %d arvoon %d\n"
-
-#: readelf.c:9110
-#, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr " Aseta tiedostonimi tiedostonimitaulun alkioon %d\n"
-
-#: readelf.c:9118
-#, c-format
-msgid " Set column to %d\n"
-msgstr " Aseta sarakkeeksi %d\n"
-
-#: readelf.c:9125
-#, c-format
-msgid " Set is_stmt to %d\n"
-msgstr " Aseta is_stmt-arvoksi %d\n"
-
-#: readelf.c:9130
-#, c-format
-msgid " Set basic block\n"
-msgstr " Aseta peruslohko\n"
-
-#: readelf.c:9138
-#, c-format
-msgid " Advance PC by constant %d to 0x%lx\n"
-msgstr " Kasvata PC:tä vakiolla %d arvoon 0x%lx\n"
-
-#: readelf.c:9146
-#, c-format
-msgid " Advance PC by fixed size amount %d to 0x%lx\n"
-msgstr " Kasvata PC:tä kiinteäkokoisella summalla %d arvoon 0x%lx\n"
-
-#: readelf.c:9151
-#, c-format
-msgid " Set prologue_end to true\n"
-msgstr " Aseta prologue_end-arvoksi true\n"
-
-#: readelf.c:9155
-#, c-format
-msgid " Set epilogue_begin to true\n"
-msgstr " Aseta epilogue_begin-arvoksi true\n"
-
-#: readelf.c:9161
-#, c-format
-msgid " Set ISA to %d\n"
-msgstr " Aseta ISA-arvoksi %d\n"
-
-#: readelf.c:9165
-#, c-format
-msgid " Unknown opcode %d with operands: "
-msgstr " Tuntematon käskykoodi %d, jonka operandit ovat: "
-
-#: readelf.c:9193 readelf.c:9279 readelf.c:9354
-#, c-format
-msgid ""
-"Contents of the %s section:\n"
-"\n"
-msgstr ""
-"Lohkon %s sisältö:\n"
-"\n"
-
-# tarkoittaako pubnames julkisia nimiä?
-#: readelf.c:9233
-msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
-msgstr "Vain DWARF 2:n ja 3:n pub-nimet ovat nykyisin tuettuja\n"
-
-#: readelf.c:9240
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Pituus: %ld\n"
-
-#: readelf.c:9242
-#, c-format
-msgid " Version: %d\n"
-msgstr " Versio: %d\n"
-
-#: readelf.c:9244
-#, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr " Siirros lohkoon .debug_info: %ld\n"
-
-#: readelf.c:9246
-#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr " Alueen koko .debug_info-lohkossa: %ld\n"
-
-#: readelf.c:9249
-#, c-format
-msgid ""
-"\n"
-" Offset\tName\n"
-msgstr ""
-"\n"
-" Siirros\tNimi\n"
-
-#: readelf.c:9300
-#, c-format
-msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr " DW_MACINFO_start_file - rivinro:%d tied.nro:%d\n"
-
-#: readelf.c:9306
-#, c-format
-msgid " DW_MACINFO_end_file\n"
-msgstr " DW_MACINFO_end_file\n"
-
-# lineno tarkoittaa ilmeisesti rivinumeroa
-#: readelf.c:9314
-#, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_define - rivinro: %d makro : %s\n"
-
-# lineno tarkoittaa ilmeisesti rivinumeroa
-#: readelf.c:9323
-#, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_undef - rivinro: %d makro : %s\n"
-
-#: readelf.c:9335
-#, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr " DW_MACINFO_vendor_ext - vakio : %d merkkijono : %s\n"
-
-# Seuraava on taulukon otsikko. Itse taulukko on leveydeltään: " %ld %s [%s]". Viimeinen [%s] sisältää tekstin "has children" tai "no children".
-#: readelf.c:9363
-#, c-format
-msgid " Number TAG\n"
-msgstr " Numero Tunniste\n"
-
-# Tämä pitäisi oikeastaan jättää pois käännettävistä teksteistä !!
-#: readelf.c:9369
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr " %ld %s [%s]\n"
-
-#: readelf.c:9372
-msgid "has children"
-msgstr "on jälkeläisiä"
-
-#: readelf.c:9372
-msgid "no children"
-msgstr "ei jälkeläisiä"
-
-# Seuraava pitäisi oikeastaan jättää pois käännettävistä teksteistä.
-#: readelf.c:9375
-#, c-format
-msgid " %-18s %s\n"
-msgstr " %-18s %s\n"
-
-#: readelf.c:9410
-#, c-format
-msgid ""
-"\n"
-"The .debug_loc section is empty.\n"
-msgstr ""
-"\n"
-"Lohko .debug_loc on tyhjä.\n"
-
-#. FIXME: Should we handle this case?
-#: readelf.c:9455
-msgid "Location lists in .debug_info section aren't in ascending order!\n"
-msgstr "Sijaintiluettelot .debug_info-lohkossa eivät ole nousevassa järjestyksessä!\n"
-
-#: readelf.c:9458
-msgid "No location lists in .debug_info section!\n"
-msgstr "Ei sijaintiluetteloja .debug_info-lohkossa!\n"
-
-#: readelf.c:9461
-#, c-format
-msgid "Location lists in .debug_loc section start at 0x%lx\n"
-msgstr "Sijaintiluettelot .debug_loc-lohkossa alkavat osoitteesta 0x%lx\n"
-
-#: readelf.c:9464
-#, c-format
-msgid ""
-"Contents of the .debug_loc section:\n"
-"\n"
-msgstr ""
-"Lohkon .debug_loc sisältö:\n"
-"\n"
-
-#: readelf.c:9465
-#, c-format
-msgid " Offset Begin End Expression\n"
-msgstr " Siirros Alku Loppu Lauseke\n"
-
-#: readelf.c:9495
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "Lohkossa .debug_loc on aukko [0x%lx - 0x%lx].\n"
-
-#: readelf.c:9498
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "Lohkossa debug_loc on päällekkäisyys [0x%lx - 0x%lx].\n"
-
-#: readelf.c:9512 readelf.c:9837
-#, c-format
-msgid " %8.8lx <End of list>\n"
-msgstr " %8.8lx <Luettelon loppu>\n"
-
-#: readelf.c:9540 readelf.c:9854
-msgid " (start == end)"
-msgstr " (alku == loppu)"
-
-#: readelf.c:9542 readelf.c:9856
-msgid " (start > end)"
-msgstr " (alku > loppu)"
-
-#: readelf.c:9566
-#, c-format
-msgid ""
-"\n"
-"The .debug_str section is empty.\n"
-msgstr ""
-"\n"
-"Lohko .debug_str on tyhjä.\n"
-
-#: readelf.c:9570
-#, c-format
-msgid ""
-"Contents of the .debug_str section:\n"
-"\n"
-msgstr ""
-"Lohkon .debug_str sisältö:\n"
-"\n"
-
-#: readelf.c:9675
-msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
-msgstr "Vain DWARF 2- ja 3-aranges on nykyisin tuettu.\n"
-
-#: readelf.c:9679
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Pituus: %ld\n"
-
-#: readelf.c:9680
-#, c-format
-msgid " Version: %d\n"
-msgstr " Versio: %d\n"
-
-#: readelf.c:9681
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr " Siirros lohkoon .debug_info: %lx\n"
-
-#: readelf.c:9682
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " Osoitinkoko: %d\n"
-
-#: readelf.c:9683
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr " Segmenttikoko: %d\n"
-
-#: readelf.c:9685
-#, c-format
-msgid ""
-"\n"
-" Address Length\n"
-msgstr ""
-"\n"
-" Osoite Pituus\n"
-
-#: readelf.c:9741
-#, c-format
-msgid ""
-"\n"
-"The .debug_ranges section is empty.\n"
-msgstr ""
-"\n"
-"Lohko .debug_ranges on tyhjä.\n"
-
-#. FIXME: Should we handle this case?
-#: readelf.c:9786
-msgid "Range lists in .debug_info section aren't in ascending order!\n"
-msgstr "Lukualueluettelot .debug_info-lohkossa eivät ole nousevassa järjestyksessä!\n"
-
-#: readelf.c:9789
-msgid "No range lists in .debug_info section!\n"
-msgstr "Ei lukualueluetteloja .debug_info-lohkossa!\n"
-
-#: readelf.c:9792
-#, c-format
-msgid "Range lists in .debug_ranges section start at 0x%lx\n"
-msgstr "Lukualueluettelot .debug_ranges-lohkossa alkavat osoitteesta 0x%lx\n"
-
-#: readelf.c:9795
-#, c-format
-msgid ""
-"Contents of the .debug_ranges section:\n"
-"\n"
-msgstr ""
-"Lohkon .debug_ranges sisältö:\n"
-"\n"
-
-#: readelf.c:9796
-#, c-format
-msgid " Offset Begin End\n"
-msgstr " Siirros Alku Loppu\n"
-
-#: readelf.c:9820
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_ranges section.\n"
-msgstr "Lohkossa .debug_ranges on aukko [0x%lx - 0x%lx].\n"
-
-#: readelf.c:9823
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_ranges section.\n"
-msgstr "Lohkossa .debug_ranges on päällekkäisyys [0x%lx - 0x%lx].\n"
-
-#: readelf.c:10017
-#, c-format
-msgid "The section %s contains:\n"
-msgstr "Lohko %s sisältää:\n"
-
-#: readelf.c:10663
-#, c-format
-msgid "unsupported or unknown DW_CFA_%d\n"
-msgstr "ei-tuettu tai tuntematon DW_CFA_%d\n"
-
-#: readelf.c:10688
-#, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr "Lohkon %s debug-sisällön näyttäminen ei ole vielä tuettu.\n"
-
-#: readelf.c:10732
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no debugging data.\n"
-msgstr ""
-"\n"
-"Lohkossa \"%s\" ei ole debuggausdataa.\n"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-#: readelf.c:10746
-msgid "debug section data"
-msgstr "debug-lohkodata"
-
-#: readelf.c:10765
-#, c-format
-msgid "Unrecognized debug section: %s\n"
-msgstr "Tunnistamaton debug-lohko: %s\n"
-
-#: readelf.c:10800
-#, c-format
-msgid "Section %d was not dumped because it does not exist!\n"
-msgstr "Lohkoa %d ei voitu vedostaa, koska sitä ei ole olemassa!\n"
-
-# liblist-merkkijonotaulu ?
-#: readelf.c:10872 readelf.c:11236
-msgid "liblist"
-msgstr "liblist"
-
-#: readelf.c:10961
-msgid "options"
-msgstr "valitsimet"
-
-#: readelf.c:10991
-#, c-format
-msgid ""
-"\n"
-"Section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"Lohko \"%s\" sisältää %d alkiota:\n"
-
-# Virheilmoitus ennen maagisen .conflict-lohkon luontia (.conflict-lohkoa ei luoda).
-#: readelf.c:11152
-msgid "conflict list found without a dynamic symbol table"
-msgstr "ristiriitaluettelo löydetty ilman dynaamista symbolitaulua"
-
-# conflict-lohko ?
-#: readelf.c:11168 readelf.c:11182
-msgid "conflict"
-msgstr "ristiriita"
-
-#: readelf.c:11192
-#, c-format
-msgid ""
-"\n"
-"Section '.conflict' contains %lu entries:\n"
-msgstr ""
-"\n"
-"Lohko \".conflict\" sisältää %lu alkiota:\n"
-
-# Num on ehkä numero?
-#: readelf.c:11194
-msgid " Num: Index Value Name"
-msgstr " Num: Indeksi Arvo Nimi"
-
-#: readelf.c:11243
-msgid "liblist string table"
-msgstr "liblist-merkkijonotaulu"
-
-#: readelf.c:11252
-#, c-format
-msgid ""
-"\n"
-"Library list section '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"Kirjastoluettelolohko \"%s\" sisältää %lu alkiota:\n"
-
-#: readelf.c:11303
-msgid "NT_AUXV (auxiliary vector)"
-msgstr "NT_AUXV (apuvektori)"
-
-#: readelf.c:11305
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr "NT_PRSTATUS (prstatus-rakenne)"
-
-#: readelf.c:11307
-msgid "NT_FPREGSET (floating point registers)"
-msgstr "NT_FPREGSET (liukulukurekistereitä)"
-
-#: readelf.c:11309
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr "NT_PRPSINFO (prpsinfo-rakenne)"
-
-# task on suomeksi tehtävä, mutta tässä tarkoitetaan
-# ilmeisesti task (struct)-rakennetta
-#: readelf.c:11311
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr "NT_TASKSTRUCT (task-rakenne)"
-
-#: readelf.c:11313
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr "NT_PRXFPREG (user_xfpregs-rakenne)"
-
-#: readelf.c:11315
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr "NT_PSTATUS (pstatus-rakenne)"
-
-#: readelf.c:11317
-msgid "NT_FPREGS (floating point registers)"
-msgstr "NT_FPREGS (liukulukurekistereitä)"
-
-#: readelf.c:11319
-msgid "NT_PSINFO (psinfo structure)"
-msgstr "NT_PSINFO (psinfo-rakenne)"
-
-#: readelf.c:11321
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr "NT_LWPSTATUS (lwpstatus_t-rakenne)"
-
-#: readelf.c:11323
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr "NT_LWPSINFO (lwpsinfo_t-rakenne)"
-
-#: readelf.c:11325
-msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
-msgstr "NT_WIN32PSTATUS (win32_pstatus-rakenne)"
-
-#: readelf.c:11333
-msgid "NT_VERSION (version)"
-msgstr "NT_VERSION (versio)"
-
-#: readelf.c:11335
-msgid "NT_ARCH (architecture)"
-msgstr "NT_ARCH (arkkitehtuuri)"
-
-#: readelf.c:11340 readelf.c:11362
-#, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr "Tuntematon note-segmenttityyppi: (0x%08x)"
-
-#. NetBSD core "procinfo" structure.
-#: readelf.c:11352
-msgid "NetBSD procinfo structure"
-msgstr "NetBSD procinfo-rakenne"
-
-#: readelf.c:11379 readelf.c:11393
-msgid "PT_GETREGS (reg structure)"
-msgstr "PT_GETREGS (reg-rakenne)"
-
-# fpreg viittaa ilmeisesti floating point registers eli liukulukurekistereihin
-#: readelf.c:11381 readelf.c:11395
-msgid "PT_GETFPREGS (fpreg structure)"
-msgstr "PT_GETFPREGS (fpreg-rakenne)"
-
-#: readelf.c:11401
-#, c-format
-msgid "PT_FIRSTMACH+%d"
-msgstr "PT_FIRSTMACH+%d"
-
-# Viimeinen %s-parametri virheilmoituksessa: Unable to seek to 0x%x for %s\n
-#: readelf.c:11447
-msgid "notes"
-msgstr "notes"
-
-#: readelf.c:11453
-#, c-format
-msgid ""
-"\n"
-"Notes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr ""
-"\n"
-"Notes-segmenttejä siirroksessa 0x%08lx pituudella 0x%08lx:\n"
-
-# Toinen sarkain pois ensimmäisestä väliköstä, koska Omistajat on pitempi kuin Owner
-#: readelf.c:11455
-#, c-format
-msgid " Owner\t\tData size\tDescription\n"
-msgstr " Omistajat\tData-koko\tKuvaus\n"
-
-#: readelf.c:11474
-#, c-format
-msgid "corrupt note found at offset %x into core notes\n"
-msgstr "rikkoutunut note-segmentti löytyi siirroksesta %x kohteeseen ydin notes\n"
-
-# Tarkoittaako descsize samaa kuin description size?
-#: readelf.c:11476
-#, c-format
-msgid " type: %x, namesize: %08lx, descsize: %08lx\n"
-msgstr " tyyppi:%x,nimikoko:%08lx,kuvauskoko: %08lx\n"
-
-#: readelf.c:11574
-#, c-format
-msgid "No note segments present in the core file.\n"
-msgstr "Ydintiedostossa ei ole note-segmenttejä\n"
-
-#: readelf.c:11653
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr ""
-"Tähän readelf-binaariin ei ole käännetty tukea 64-bittiselle\n"
-"datatyypille, joten 64-bittisiä ELF-tiedostoja ei voida lukea.\n"
-
-#: readelf.c:11700 readelf.c:12059
-#, c-format
-msgid "%s: Failed to read file header\n"
-msgstr "%s: Tiedosto-otsakkeen lukeminen epäonnistui\n"
-
-#: readelf.c:11713
-#, c-format
-msgid ""
-"\n"
-"File: %s\n"
-msgstr ""
-"\n"
-"Tiedosto: %s\n"
-
-#: readelf.c:11876 readelf.c:11897 readelf.c:11934 readelf.c:12014
-#, c-format
-msgid "%s: failed to read archive header\n"
-msgstr "%s: ei voi lukea arkisto-otsaketta\n"
-
-#: readelf.c:11887
-#, c-format
-msgid "%s: failed to skip archive symbol table\n"
-msgstr "%s: ei voi hypätä arkistosymbolitaulun yli\n"
-
-#: readelf.c:11919
-#, c-format
-msgid "%s: failed to read string table\n"
-msgstr "%s: ei voi lukea merkkijonotaulua\n"
-
-#: readelf.c:11955
-#, c-format
-msgid "%s: invalid archive string table offset %lu\n"
-msgstr "%s: virheellinen arkistomerkkijonotaulun siirros %lu\n"
-
-#: readelf.c:11971
-#, c-format
-msgid "%s: bad archive file name\n"
-msgstr "%s: virheellinen arkistotiedostonimi\n"
-
-#: readelf.c:12003
-#, c-format
-msgid "%s: failed to seek to next archive header\n"
-msgstr "%s: seuraavan arkisto-otsakkeen haku epäonnistui\n"
-
-#: readelf.c:12037
-#, c-format
-msgid "'%s': No such file\n"
-msgstr "\"%s\": Tiedostoa ei löydy\n"
-
-# stat-kutsu tiedostonimellä %s epäonnistui, seurauksena tämä sanoma
-#: readelf.c:12039
-#, c-format
-msgid "Could not locate '%s'. System error message: %s\n"
-msgstr "Tiedostoa \"%s\" ei löytynyt. Järjestelmävirhesanoma: %s\n"
-
-#: readelf.c:12046
-#, c-format
-msgid "'%s' is not an ordinary file\n"
-msgstr "\"%s\" ei ole tavallinen tiedosto\n"
-
-#: readelf.c:12053
-#, c-format
-msgid "Input file '%s' is not readable.\n"
-msgstr "Syötetiedosto \"%s\" ei ole luettava.\n"
-
-#: rename.c:127
-#, c-format
-msgid "%s: cannot set time: %s"
-msgstr "%s: ei voi asettaa aikaa: %s"
-
-# Lisäsin ylimääräisen pilkun selventämään suomennosta
-#. We have to clean up here.
-#: rename.c:162 rename.c:200
-#, c-format
-msgid "unable to rename '%s' reason: %s"
-msgstr "tiedoston \"%s\" nimeä ei onnistuttu muuttamaan, syy: %s"
-
-# Selvensin hiukan suomennosta lisäämällä ylimääräisen pilkun
-#: rename.c:208
-#, c-format
-msgid "unable to copy file '%s' reason: %s"
-msgstr "tiedostoa \"%s\" ei voitu kopioida, syy: %s "
-
-#: resbin.c:132
-#, c-format
-msgid "%s: not enough binary data"
-msgstr "%s: binaaridataa ei ole tarpeeksi"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:148
-msgid "null terminated unicode string"
-msgstr "null-päätteinen unicode-merkkijono"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:175 resbin.c:181
-msgid "resource ID"
-msgstr "resurssi-ID"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:221
-msgid "cursor"
-msgstr "kohdistin"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:253 resbin.c:260
-msgid "menu header"
-msgstr "valikko-otsake"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:270
-msgid "menuex header"
-msgstr "menuex-valikko-otsake"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:274
-msgid "menuex offset"
-msgstr "menuex-valikkosiirros"
-
-# parametri fatal-tulostukseen
-#: resbin.c:281
-#, c-format
-msgid "unsupported menu version %d"
-msgstr "ei-tuettu valikkoversio %d"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:306 resbin.c:321 resbin.c:384
-msgid "menuitem header"
-msgstr "menuitem-valikkoalkio-otsake"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:414
-msgid "menuitem"
-msgstr "menuitem-valikkoalkio"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:453 resbin.c:481
-msgid "dialog header"
-msgstr "valintaikkunaotsake"
-
-# parametri fatal-tulostukseen
-#: resbin.c:471
-#, c-format
-msgid "unexpected DIALOGEX version %d"
-msgstr "odottamaton DIALOGEX-versio %d"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:516
-msgid "dialog font point size"
-msgstr "valintaikkunan kirjainlajin pistekoko"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:524
-msgid "dialogex font information"
-msgstr "dialogex-valintaikkunan kirjainlajitietoja"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:550 resbin.c:568
-msgid "dialog control"
-msgstr "valintaikkunaohjain"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:560
-msgid "dialogex control"
-msgstr "dialogex-valintaikkunaohjain"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:589
-msgid "dialog control end"
-msgstr "valintaikkunaohjainloppu"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:601
-msgid "dialog control data"
-msgstr "valintaikkunaohjaindataa"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:642
-msgid "stringtable string length"
-msgstr "stringtable-merkkijonopituus"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:652
-msgid "stringtable string"
-msgstr "stringtable-merkkijono"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:683
-msgid "fontdir header"
-msgstr "fontdir-otsake"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:696
-msgid "fontdir"
-msgstr "fontdir"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:712
-msgid "fontdir device name"
-msgstr "fontdir-laitenimi"
-
-# alkuosa tulostukseen "%s: not enough binary data". Lainausmerkit lisätty.
-#: resbin.c:718
-msgid "fontdir face name"
-msgstr "\"fontdir face\"-nimi"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:759
-msgid "accelerator"
-msgstr "accelerator-rakenne"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:819
-msgid "group cursor header"
-msgstr "ryhmäkohdistinotsake"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:823
-#, c-format
-msgid "unexpected group cursor type %d"
-msgstr "odottamaton ryhmäkohdistintyyppi %d"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:838
-msgid "group cursor"
-msgstr "ryhmäkohdistin"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:875
-msgid "group icon header"
-msgstr "ryhmäkuvakeotsake"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:879
-#, c-format
-msgid "unexpected group icon type %d"
-msgstr "odottamaton ryhmäkuvaketyyppi %d"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:894
-msgid "group icon"
-msgstr "ryhmäkuvake"
-
-# parametri fatal-tulostukseen
-#: resbin.c:957 resbin.c:1174
-msgid "unexpected version string"
-msgstr "odottamaton versiomerkkijono"
-
-# parametri fatal-tulostukseen
-#: resbin.c:989
-#, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr "versiopituus %d ei täsmää resurssipituuden %lu kanssa"
-
-# parametri fatal-tulostukseen
-#: resbin.c:993
-#, c-format
-msgid "unexpected version type %d"
-msgstr "odottamaton versiotyyppi %d"
-
-# parametri fatal-tulostukseen
-#: resbin.c:1005
-#, c-format
-msgid "unexpected fixed version information length %d"
-msgstr "odottamaton kiinteä versiotietopituus %d"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:1008
-msgid "fixed version info"
-msgstr "kiinteä versiotieto"
-
-# parametri fatal-tulostukseen
-#: resbin.c:1012
-#, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr "odottamaton kiinteä versioallekirjoitus %lu"
-
-# parametri fatal-tulostukseen
-# versiotietoversio on hiukan tautofoninen?
-#: resbin.c:1016
-#, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr "odottamaton kiinteä versiotietoversio %lu"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:1045
-msgid "version var info"
-msgstr "version var-tiedot"
-
-# parametri fatal-tulostukseen
-#: resbin.c:1062
-#, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr "odottamaton stringfileinfo-arvopituus %d"
-
-# parametri fatal-tulostukseen
-#: resbin.c:1072
-#, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr "odottamaton versio-stringtable-arvopituus %d"
-
-# parametri fatal-tulostukseen
-#: resbin.c:1106
-#, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr "odottamaton versiomerkkijonopituus %d != %d + %d"
-
-# parametri fatal-tulostukseen
-#: resbin.c:1117
-#, c-format
-msgid "unexpected version string length %d < %d"
-msgstr "odottamaton versiomerkkijonopituus %d < %d"
-
-# parametri fatal-tulostukseen
-#: resbin.c:1134
-#, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr "odottamaton varfileinfo-arvopituus %d"
-
-# alkuosa tulostukseen "%s: not enough binary data"
-#: resbin.c:1153
-msgid "version varfileinfo"
-msgstr "versio varfileinfo"
-
-# parametri fatal-tulostukseen
-#: resbin.c:1168
-#, c-format
-msgid "unexpected version value length %d"
-msgstr "odottamaton versioarvopituus %d"
-
-#: rescoff.c:126
-msgid "filename required for COFF input"
-msgstr "COFF-syötteeseen vaaditaan tiedostonimi"
-
-# %s -parametri sisältää COFF-syötetiedoston nimen, resource section-nimi COFF-tiedostossa on aina .rsrc
-#: rescoff.c:143
-#, c-format
-msgid "%s: no resource section"
-msgstr "%s: ei resurssilohkoa"
-
-#: rescoff.c:150
-msgid "can't read resource section"
-msgstr "ei voi lukea resurssilohkoa"
-
-# ensimmäinen parametri tiedostonimi, toinen parametri virhesanoma
-#: rescoff.c:174
-#, c-format
-msgid "%s: %s: address out of bounds"
-msgstr "%s: %s: osoite ei ole lukualueen sisällä"
-
-# toinen parametri viestissä "%s: %s: osoite ei ole lukualueen sisällä"
-#: rescoff.c:190
-msgid "directory"
-msgstr "hakemisto"
-
-# toinen parametri viestissä "%s: %s: osoite ei ole lukualueen sisällä"
-#: rescoff.c:218
-msgid "named directory entry"
-msgstr "nimetty hakemistoalkio"
-
-# toinen parametri viestissä "%s: %s: osoite ei ole lukualueen sisällä"
-#: rescoff.c:227
-msgid "directory entry name"
-msgstr "hakemistoalkion nimi"
-
-# toinen parametri viestissä "%s: %s: osoite ei ole lukualueen sisällä"
-#: rescoff.c:247
-msgid "named subdirectory"
-msgstr "nimetty alihakemisto"
-
-# toinen parametri viestissä "%s: %s: osoite ei ole lukualueen sisällä"
-#: rescoff.c:255
-msgid "named resource"
-msgstr "nimetty resurssi"
-
-# toinen parametri viestissä "%s: %s: osoite ei ole lukualueen sisällä"
-#: rescoff.c:270
-msgid "ID directory entry"
-msgstr "ID-hakemiston alkio"
-
-# toinen parametri viestissä "%s: %s: osoite ei ole lukualueen sisällä"
-#: rescoff.c:287
-msgid "ID subdirectory"
-msgstr "ID-alihakemisto"
-
-# toinen parametri viestissä "%s: %s: osoite ei ole lukualueen sisällä"
-#: rescoff.c:295
-msgid "ID resource"
-msgstr "ID-resurssi"
-
-# fatal-tulosteen parametri
-#: rescoff.c:318
-msgid "resource type unknown"
-msgstr "resurssityyppi tuntematon"
-
-# toinen parametri viestissä "%s: %s: osoite ei ole lukualueen sisällä"
-#: rescoff.c:321
-msgid "data entry"
-msgstr "data-alkio"
-
-# toinen parametri viestissä "%s: %s: osoite ei ole lukualueen sisällä"
-#: rescoff.c:329
-msgid "resource data"
-msgstr "resurssidataa"
-
-# toinen parametri viestissä "%s: %s: osoite ei ole lukualueen sisällä"
-#: rescoff.c:334
-msgid "resource data size"
-msgstr "resurssidatakoko"
-
-# fatal-tulosteen parametri
-#: rescoff.c:427
-msgid "filename required for COFF output"
-msgstr "COFF-tulosteeseen vaaditaan tiedostonimi"
-
-# bfd_fatal-tulosteen parametri
-#: rescoff.c:719
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr "ei voi saada BFD_RELOC_RVA-uudelleensijoitustyyppiä"
-
-#: resrc.c:238 resrc.c:309
-#, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr "tilapäistä tiedostoa \"%s\" ei voi avata: %s"
-
-#: resrc.c:244
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr "vakiotulostetta: \"%s\" ei voi uudelleenohjata: %s"
-
-#: resrc.c:260
-#, c-format
-msgid "%s %s: %s"
-msgstr "%s %s: %s"
-
-#: resrc.c:305
-#, c-format
-msgid "can't execute `%s': %s"
-msgstr "kohdetta \"%s\": %s ei voi suorittaa"
-
-#: resrc.c:314
-#, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr "Käytetään tilapäistä tiedostoa \"%s\" lukemaan esikääntäjätuloste\n"
-
-#: resrc.c:321
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr "ei voi kutsua popen:ia \"%s\": %s"
-
-#: resrc.c:323
-#, c-format
-msgid "Using popen to read preprocessor output\n"
-msgstr "Käytetään popen:ia lukemaan esikääntäjätuloste\n"
-
-#: resrc.c:362
-#, c-format
-msgid "Tried `%s'\n"
-msgstr "Yritettiin \"%s\"\n"
-
-#: resrc.c:373
-#, c-format
-msgid "Using `%s'\n"
-msgstr "Käytetään \"%s\"\n"
-
-# Ensimmäinen parametri errmsg_fmt, toinen parametrit errmsg_arg, kolmas parametri virhenumero muutettuna merkkijonoselitykseksi
-#: resrc.c:529
-#, c-format
-msgid "%s:%d: %s\n"
-msgstr "%s:%d: %s\n"
-
-#: resrc.c:537
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr "%s: odottamaton tiedostonloppumerkki"
-
-# fread-kutsu palautti vähemmän kuin odotettiin
-#: resrc.c:586
-#, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr "%s: lukeminen palautti %lu merkistä (vain) %lu"
-
-# stat on *nix-ympäristön vakiokomentoja (katso: man stat)
-#: resrc.c:624 resrc.c:1134
-#, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr "stat-kutsu ei onnistunut bittikarttatiedostossa \"%s\": %s"
-
-#: resrc.c:675
-#, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr "kohdistintiedosto \"%s\" ei sisällä kohdistindataa"
-
-# Ensimmäinen parametri %s sisältää tiedostonimen, parametri %lu sisältää offsetin ja viimeinen %s sisältää stderror(errno)-tyyppisen virheilmoituksen.
-#: resrc.c:707 resrc.c:1003
-#, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr "%s: fseek-kutsu kohtaan %lu epäonnistui: %s"
-
-#: resrc.c:831
-msgid "help ID requires DIALOGEX"
-msgstr "Ohje-ID vaatii DIALOGEX:n"
-
-#: resrc.c:833
-msgid "control data requires DIALOGEX"
-msgstr "ohjaindata vaatii DIALOGEX:n"
-
-# stat on *nix-ympäristön vakiokomentoja (katso: man stat)
-#: resrc.c:861
-#, c-format
-msgid "stat failed on font file `%s': %s"
-msgstr "stat-kutsu ei onnistunut kirjasintiedostossa \"%s\": %s"
-
-#: resrc.c:972
-#, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr "kuvaketiedosto \"%s\" ei sisällä kuvakedataa"
-
-# stat on *nix-ympäristön vakiokomentoja (katso: man stat)
-#: resrc.c:1273 resrc.c:1308
-#, c-format
-msgid "stat failed on file `%s': %s"
-msgstr "stat-kutsu ei onnistunut tiedostossa \"%s\": %s"
-
-#: resrc.c:1494
-#, c-format
-msgid "can't open `%s' for output: %s"
-msgstr "ei voi avata kohdetta \"%s\" tulosteeseen: %s"
-
-#: size.c:81
-#, c-format
-msgid " Displays the sizes of sections inside binary files\n"
-msgstr " Näyttää binaaritiedostojen sisäisten lohkojen koot\n"
-
-#: size.c:82
-#, c-format
-msgid " If no input file(s) are specified, a.out is assumed\n"
-msgstr " Jos syötetiedosto(j)a ei ole annettu, a.out on oletussyötetiedostona\n"
-
-#: size.c:83
-#, c-format
-msgid ""
-" The options are:\n"
-" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
-" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n"
-" -t --totals Display the total sizes (Berkeley only)\n"
-" --target=<bfdname> Set the binary file format\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Valitsimet ovat:\n"
-" -A|-B --format={sysv|berkeley} Valitsee tulostetyylin (oletus on %s)\n"
-" -o|-d|-x --radix={8|10|16} Näyttää numerot oktaali-, desimaali- tai heksadesimaalilukuna\n"
-" -t --totals Näyttää kokonaiskoot (vain Berkeley)\n"
-" --target=<bfd-nimi> Asettaa binaaritiedoston muodon\n"
-" -h --help Näyttää nämä tiedot\n"
-" -v --version Näyttää ohjelman version\n"
-"\n"
-
-#: size.c:153
-#, c-format
-msgid "invalid argument to --format: %s"
-msgstr "virheellinen argumentti valitsimelle --format: %s"
-
-#: size.c:180
-#, c-format
-msgid "Invalid radix: %s\n"
-msgstr "Virheellinen kantaluku: %s\n"
-
-#: srconv.c:1722
-#, c-format
-msgid "Convert a COFF object file into a SYSROFF object file\n"
-msgstr "Muuntaa COFF-objektitiedoston SYSROFF-objektitiedostoksi\n"
-
-# COMMON on lohko,joka sisältää yleisiä symboleja, joille ei ole vielä varattu muistia.
-#: srconv.c:1723
-#, c-format
-msgid ""
-" The options are:\n"
-" -q --quick (Obsolete - ignored)\n"
-" -n --noprescan Do not perform a scan to convert commons into defs\n"
-" -d --debug Display information about what is being done\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Valinnat ovat:\n"
-" -q --quick (Vanhentunut - ei välitetä)\n"
-" -n --noprescan Ei suorita selausta common-lohkojen muuntamiseksi defs-lohkoiksi\n"
-" -d --debug Näyttää tietoja siitä mitä ollaan tekemässä\n"
-" -h --help Näyttää nämä tiedot\n"
-" -v --version Tulostaa ohjelman versionumeron\n"
-
-#: srconv.c:1866
-#, c-format
-msgid "unable to open output file %s"
-msgstr "ei voi avata tulostetiedostoa %s"
-
-#: stabs.c:330 stabs.c:1708
-msgid "numeric overflow"
-msgstr "numeerinen ylivuoto"
-
-#: stabs.c:340
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr "Virheellinen stab: %s\n"
-
-#: stabs.c:348
-#, c-format
-msgid "Warning: %s: %s\n"
-msgstr "Varoitus: %s: %s\n"
-
-#: stabs.c:458
-#, c-format
-msgid "N_LBRAC not within function\n"
-msgstr "N_LBRAC-symboli ei ole funktiossa\n"
-
-#: stabs.c:497
-#, c-format
-msgid "Too many N_RBRACs\n"
-msgstr "Liian monta N_RBRAC-symbolia\n"
-
-#: stabs.c:738
-msgid "unknown C++ encoded name"
-msgstr "tuntematon C++-koodattu nimi"
-
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1253
-msgid "unrecognized cross reference type"
-msgstr "tunnistamaton ristiviitetyyppi"
-
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1800
-msgid "missing index type"
-msgstr "indeksityyppi puuttuu"
-
-#: stabs.c:2114
-msgid "unknown virtual character for baseclass"
-msgstr "tuntematon virtuaalimerkki kantaluokalle"
-
-#: stabs.c:2132
-msgid "unknown visibility character for baseclass"
-msgstr "tuntematon näkyvyysmerkki kantaluokalle"
-
-#: stabs.c:2318
-msgid "unnamed $vb type"
-msgstr "nimeämätön $vb-tyyppi"
-
-#: stabs.c:2324
-msgid "unrecognized C++ abbreviation"
-msgstr "tunnistamaton C++-lyhenne"
-
-#: stabs.c:2400
-msgid "unknown visibility character for field"
-msgstr "tuntematon näkyvyysmerkki kentälle"
-
-#: stabs.c:2652
-msgid "const/volatile indicator missing"
-msgstr "const/volatile-indikaattori puuttuu"
-
-#: stabs.c:2888
-#, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr "Kohdetta \"%s\" ei eheytetä\n"
-
-# N_EXCL tarkoittaa include-tiedostoa, jonka linkkeri on poistanut tarpeettomana (duplikaattina), koska se on jo määritelty kerran jossain toisessa käännösyksikössä. Se on nyt siis exclude-tiedosto, ei include-tiedosto ;-)
-#: stabs.c:3188
-msgid "Undefined N_EXCL"
-msgstr "Määrittelemätön linkkerin poistama include-tiedosto"
-
-#: stabs.c:3268
-#, c-format
-msgid "Type file number %d out of range\n"
-msgstr "Tyyppitiedoston numero %d numeroalueen ulkopuolella\n"
-
-#: stabs.c:3273
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr "Tyyppi-indeksinumero %d numeroalueen ulkopuolella\n"
-
-#: stabs.c:3352
-#, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr "Tunnistamaton XCOFF-tyyppi %d\n"
-
-#: stabs.c:3644
-#, c-format
-msgid "bad mangled name `%s'\n"
-msgstr "virheellinen runneltu nimi \"%s\"\n"
-
-#: stabs.c:3739
-#, c-format
-msgid "no argument types in mangled string\n"
-msgstr "runnellussa merkkijonossa ei ole argumenttityyppiä\n"
-
-#: stabs.c:5093
-#, c-format
-msgid "Demangled name is not a function\n"
-msgstr "Eheytetty nimi ei ole funktio\n"
-
-# v3 arglist viittaa stabs.c -funktioon
-# stab_demangle_v3_arglist(...). Funktion nimessä
-# v3 tarkoittaa ilmeisesti, että funktion struct
-# demangle_component *arglist -argumentti järjestetään
-# v-muotoiseksi puuksi (three -> tree). Yhden argumentin
-# tyyppi on ei-odotettu, jolloin tulostetaan tämä tuloste.
-#: stabs.c:5135
-#, c-format
-msgid "Unexpected type in v3 arglist demangling\n"
-msgstr "Tuntematon tyyppi eheytettäessä puumuotoista argumenttiluetteloa\n"
-
-#: stabs.c:5202
-#, c-format
-msgid "Unrecognized demangle component %d\n"
-msgstr "Tunnistamaton eheytyskomponentti %d\n"
-
-#: stabs.c:5254
-#, c-format
-msgid "Failed to print demangled template\n"
-msgstr "Ei onnistuttu tulostaa runneltua mallinetta\n"
-
-#: stabs.c:5334
-#, c-format
-msgid "Couldn't get demangled builtin type\n"
-msgstr "Ei saatu eheytettyä rakenteeseen sisältyvää tyyppiä\n"
-
-# Lähdekoodissa tutkitaan bfd_boolean -tyyppistä *pvarargs-
-# parametriä ja jos se on NULL, niin tulostetaan alla oleva
-# ilmoitus. Muussa tapauksessa palautetaan parametrin kautta
-# TRUE. Boolean arvo kertoo, ottaako eheytetty metodi
-# vaihtelevan määrän parametrejä vai ei.
-#: stabs.c:5383
-#, c-format
-msgid "Unexpected demangled varargs\n"
-msgstr "Odottamaton eheytetty totuusarvo\n"
-
-#: stabs.c:5390
-#, c-format
-msgid "Unrecognized demangled builtin type\n"
-msgstr "Tunnistamaton eheytetty rakenteeseen sisältyvä tyyppi\n"
-
-#: strings.c:206
-#, c-format
-msgid "invalid number %s"
-msgstr "virheellinen numero %s"
-
-#: strings.c:643
-#, c-format
-msgid "invalid integer argument %s"
-msgstr "virheellinen kokonaislukuargumentti %s"
-
-#: strings.c:652
-#, c-format
-msgid " Display printable strings in [file(s)] (stdin by default)\n"
-msgstr " Näyttää tulostettavat merkkijonot kohteesta [tiedosto(t)] (oletuksena vakiosyöte)\n"
-
-# Tämä mahdollistaa vain Big-Endian ja Little-Endian-tavujärjestyksen määrittelyn. Middle-Endian on tuntematon.
-#: strings.c:653
-#, c-format
-msgid ""
-" The options are:\n"
-" -a - --all Scan the entire file, not just the data section\n"
-" -f --print-file-name Print the name of the file before each string\n"
-" -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n"
-" -<number> least [number] characters (default 4).\n"
-" -t --radix={o,d,x} Print the location of the string in base 8, 10 or 16\n"
-" -o An alias for --radix=o\n"
-" -T --target=<BFDNAME> Specify the binary file format\n"
-" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
-" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Valitsimet ovat:\n"
-" -a - --all Selaa koko tiedoston, ei vain datalohkoa\n"
-" -f --print-file-name Tulostaa tiedostonimen ennen jokaista merkkijonoa\n"
-" -n --bytes=[numero] Paikantaa & tulostaa jokaisen NUL-päätteisen vähintään\n"
-" -<numero> [numero] merkin sekvenssin (oletuksena 4).\n"
-" -t --radix={o,d,x} Tulostaa merkkijonon paikan kantaluvulla 8, 10 tai 16\n"
-" -o Alias kohteelle --radix=o\n"
-" -T --target=<BFD-NIMI> Määrittelee binaaritiedostomuodon\n"
-" -e --encoding={s,S,b,l,B,L} Valitsee merkin koon ja tavujärjestystyypin:\n"
-" s = 7-bittiä, S = 8-bittiä, {b,l} = 16-bittiä, {B,L} = 32-bitttiä\n"
-" -h --help Näyttää nämä tiedot\n"
-" -v --version Tulostaa ohjelman versionumeron\n"
-
-#: sysdump.c:649
-#, c-format
-msgid "Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "Tulostaa luettavan tulkinnan SYSROFF-objektitiedostosta\n"
-
-#: sysdump.c:650
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Valitsimet ovat:\n"
-" -h --help Näyttää nämä tiedot\n"
-" -v --version Tulostaa ohjelman versionumeron\n"
-
-#: sysdump.c:715
-#, c-format
-msgid "cannot open input file %s"
-msgstr "syötetiedostoa %s ei voi avata"
-
-#: version.c:35
-#, c-format
-msgid "Copyright 2005 Free Software Foundation, Inc.\n"
-msgstr "Copyright 2005 Free Software Foundation, Inc.\n"
-
-#: version.c:36
-#, c-format
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr ""
-"Tämä ohjelma on vapaa ohjelmisto; voit jakaa sitä edelleen GNU General Public License\n"
-"-ehtojen mukaisesti. Tällä ohjelmalla ei ehdottomasti ole mitään takuuta.\n"
-
-#: windres.c:204
-#, c-format
-msgid "can't open %s `%s': %s"
-msgstr "ei voi avata kohdetta %s \"%s\": %s"
-
-#: windres.c:370
-#, c-format
-msgid ": expected to be a directory\n"
-msgstr ": otaksuttiin olevan hakemisto\n"
-
-#: windres.c:382
-#, c-format
-msgid ": expected to be a leaf\n"
-msgstr ": otaksuttiin olevan lehti\n"
-
-#: windres.c:391
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: varoitus: "
-
-#: windres.c:393
-#, c-format
-msgid ": duplicate value\n"
-msgstr ": duplikaattiarvo\n"
-
-#: windres.c:543
-#, c-format
-msgid "unknown format type `%s'"
-msgstr "tuntematon muototyyppi \"%s\""
-
-#: windres.c:544
-#, c-format
-msgid "%s: supported formats:"
-msgstr "%s: tuetut muodot:"
-
-# Laitoin ylimääräiset lainausmerkit, jotta väliviiva erottuu selvemmin valitsinmerkistä.
-#. Otherwise, we give up.
-#: windres.c:627
-#, c-format
-msgid "can not determine type of file `%s'; use the -J option"
-msgstr "tiedoston \"%s\" tyyppiä ei voitu määritellä; käytä \"-J\"-valitsinta"
-
-#: windres.c:639
-#, c-format
-msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
-msgstr "Käyttö: %s [valitsimet] [syötetiedosto] [tulostetiedosto]\n"
-
-#: windres.c:641
-#, c-format
-msgid ""
-" The options are:\n"
-" -i --input=<file> Name input file\n"
-" -o --output=<file> Name output file\n"
-" -J --input-format=<format> Specify input format\n"
-" -O --output-format=<format> Specify output format\n"
-" -F --target=<target> Specify COFF target\n"
-" --preprocessor=<program> Program to use to preprocess rc file\n"
-" -I --include-dir=<dir> Include directory when preprocessing rc file\n"
-" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
-" -U --undefine <sym> Undefine SYM when preprocessing rc file\n"
-" -v --verbose Verbose - tells you what it's doing\n"
-" -l --language=<val> Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr ""
-" Valitsimet ovat:\n"
-" -i --input=<tiedosto> Asettaa syötetiedoston nimen\n"
-" -o --output=<tiedosto> Asettaa tulostetiedoston nimen\n"
-" -J --input-format=<muoto> Määrittelee syötemuodon\n"
-" -O --output-format=<muoto> Määrittelee tulostemuodon\n"
-" -F --target=<kohde> Määrittelee COFF-kohteen\n"
-" --preprocessor=<ohjelma> Ohjelma, jota käytetään rc-tiedoston esikäsittelyyn\n"
-" -I --include-dir=<hakemisto> Include-hakemisto rc-tiedoston esikäsittelyssä\n"
-" -D --define <sym>[=<arvo>] Määrittelee symbolin SYM, kun rc-tiedostoa esikäsitellään\n"
-" -U --undefine <sym> Poistaa SYM-määrittelyn, kun rc-tiedostoa esikäsitellään\n"
-" -v --verbose Laveasti - kertoo mitä se on tekemässä\n"
-" -l --language=<val> Asettaa kielen, kun rc-tiedostoa luetaan\n"
-" --use-temp-file Käyttää tilapäistä tiedostoa, ei popen:ia lukemaan\n"
-" esikääntäjätulostetta\n"
-" --no-use-temp-file Käyttää popen:ia (oletus)\n"
-
-#: windres.c:657
-#, c-format
-msgid " --yydebug Turn on parser debugging\n"
-msgstr " --yydebug Kääntää jäsennindebuggauksen päälle\n"
-
-#: windres.c:660
-#, c-format
-msgid ""
-" -r Ignored for compatibility with rc\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" -r Ei välitä rc-yhteensopivuudesta\n"
-" -h --help Tulostaa tämän ohjeen\n"
-" -V --version Tulostaa versiotiedot\n"
-
-#: windres.c:664
-#, c-format
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr ""
-"MUOTO on yksi muodoista rc, res tai coff ja päätellään tiedostonimi-\n"
-"tarkentimesta, jos muotoa ei ole annettu. Yksi tiedostonimi on\n"
-"syötetiedosto, ei syötetiedostoa on vakiosyöte, oletusmuoto on rc.\n"
-"Ei tulostetiedostoa on vakiotuloste, oletusmuoto rc.\n"
-
-#: windres.c:800
-msgid "invalid option -f\n"
-msgstr "virheellinen valitsin -f\n"
-
-#: windres.c:805
-msgid "No filename following the -fo option.\n"
-msgstr "Mikään tiedostonimi ei seuraa valitsinta -fo.\n"
-
-#: windres.c:863
-#, c-format
-msgid "Option -I is deprecated for setting the input format, please use -J instead.\n"
-msgstr "Valitsin -I on vanhentunut syötemuodon asetukseen, käytä sen sijaan valitsinta -J.\n"
-
-#: windres.c:981
-msgid "no resources"
-msgstr "ei resursseja"
-
-#: wrstabs.c:354 wrstabs.c:1915
-#, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr "string_hash_lookup epäonnistui: %s"
-
-#: wrstabs.c:635
-#, c-format
-msgid "stab_int_type: bad size %u"
-msgstr "stab_int_type: virheellinen koko %u"
-
-#: wrstabs.c:1393
-#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr "%s: varoitus: kentän \"%s\" koko tuntematon struct-rakenteessa"
diff --git a/binutils-2.17/binutils/po/fr.gmo b/binutils-2.17/binutils/po/fr.gmo
deleted file mode 100644
index 214c0998..00000000
--- a/binutils-2.17/binutils/po/fr.gmo
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/po/fr.po b/binutils-2.17/binutils/po/fr.po
deleted file mode 100644
index c86fd895..00000000
--- a/binutils-2.17/binutils/po/fr.po
+++ /dev/null
@@ -1,5945 +0,0 @@
-# Messages français pour GNU concernant binutils.
-# Copyright © 2004 Free Software Foundation, Inc.
-# Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: GNU binutils 2.16.93\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-25 09:14+0930\n"
-"PO-Revision-Date: 2006-05-20 08:00-0500\n"
-"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
-"Language-Team: French <traduc@traduc.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
-"Content-Transfer-Encoding: 8-bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-#: addr2line.c:76
-#, c-format
-msgid "Usage: %s [option(s)] [addr(s)]\n"
-msgstr "Usage: %s [options] [adresses]\n"
-
-#: addr2line.c:77
-#, c-format
-msgid " Convert addresses into line number/file name pairs.\n"
-msgstr "Convertir les adresses en paires numéro de ligne/fichier.\n"
-
-#: addr2line.c:78
-#, c-format
-msgid " If no addresses are specified on the command line, they will be read from stdin\n"
-msgstr "Si aucune adresse n'est spécifiée sur la ligne de commande, elles seront lues de stdin\n"
-
-#: addr2line.c:79
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -b --target=<bfdname> Set the binary file format\n"
-" -e --exe=<executable> Set the input file name (default is a.out)\n"
-" -i --inlines\t\t Unwind inlined functions\n"
-" -s --basenames Strip directory names\n"
-" -f --functions Show function names\n"
-" -C --demangle[=style] Demangle function names\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-"Les options sont:\n"
-" -b --target=<nombfd> sélectionner le format du fichier binaire\n"
-" -e --exe=<executable> sélectionner le nom du fichier d'entrée (par défaut est a.out)\n"
-" -i --inlines dérouler les fonctions enlignes\n"
-" -s --basenames élaguer les noms de répertoires\n"
-" -f --functions afficher les noms de fonctions\n"
-" -C --demangle[=style] décoder les noms de fonction\n"
-" -h --help afficher l'aide-mémoire\n"
-" -V --version afficher le nom et la version du logiciel\n"
-"\n"
-
-#: addr2line.c:93 ar.c:263 coffdump.c:466 nlmconv.c:1113 objcopy.c:486
-#: objcopy.c:520 readelf.c:2622 size.c:102 srconv.c:1732 strings.c:725
-#: sysdump.c:648 windres.c:673
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr "Rapporter toutes anomalies à %s\n"
-
-#: addr2line.c:253
-#, c-format
-msgid "%s: can not get addresses from archive"
-msgstr "%s: ne peut obtenir l'adresse à partir de l'archive"
-
-#: addr2line.c:325 nm.c:1523 objdump.c:3033
-#, c-format
-msgid "unknown demangling style `%s'"
-msgstr "style de d'encodage par mutilation inconnu « %s »"
-
-#: ar.c:203
-#, c-format
-msgid "no entry %s in archive\n"
-msgstr "pas d'entrée %s dans l'archive\n"
-
-#: ar.c:219
-#, c-format
-msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"
-msgstr "Usage: %s [options d'émulation] [-]{dmpqrstx}[abcfilNoPsSuvV] [nom-du-membre] [compteur] fichier-archive fichier...\n"
-
-#: ar.c:222
-#, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr " %s -M [<script-mri]\n"
-
-#: ar.c:223
-#, c-format
-msgid " commands:\n"
-msgstr " commandes:\n"
-
-#: ar.c:224
-#, c-format
-msgid " d - delete file(s) from the archive\n"
-msgstr " d - détruire le(s) fichier(s) de l'archive\n"
-
-#: ar.c:225
-#, c-format
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr " m[ab] - déplacer le(s) fichier(s) dans l'archive\n"
-
-#: ar.c:226
-#, c-format
-msgid " p - print file(s) found in the archive\n"
-msgstr " p - afficher le nom des fichiers trouvés dans l'archive\n"
-
-#: ar.c:227
-#, c-format
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr " q[f] - ajout rapide des fichiers à l'archive\n"
-
-#: ar.c:228
-#, c-format
-msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr " r[ab][f][u] - remplacer les fichiers exitants ou inserer les nouveaux dans l'archive\n"
-
-#: ar.c:229
-#, c-format
-msgid " t - display contents of archive\n"
-msgstr " t - afficher le contenu de l'archive\n"
-
-#: ar.c:230
-#, c-format
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr " x[o] - extraire les fichiers de l'archive\n"
-
-#: ar.c:231
-#, c-format
-msgid " command specific modifiers:\n"
-msgstr " modificateurs spécifiques de commandes:\n"
-
-#: ar.c:232
-#, c-format
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr " [a] - placer le(s) fichier(s) après le [nom-de-membre]\n"
-
-#: ar.c:233
-#, c-format
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr " [b] - placer le(s) fichier(s) avant le [nom-de-membre] (identique à [i])\n"
-
-#: ar.c:234
-#, c-format
-msgid " [N] - use instance [count] of name\n"
-msgstr " [N] - utiliser le [compteur] du nom\n"
-
-#: ar.c:235
-#, c-format
-msgid " [f] - truncate inserted file names\n"
-msgstr " [f] - tronquer les noms des fichiers insérés\n"
-
-#: ar.c:236
-#, c-format
-msgid " [P] - use full path names when matching\n"
-msgstr " [P] - utliser des chemins complets lors d'un appariement\n"
-
-#: ar.c:237
-#, c-format
-msgid " [o] - preserve original dates\n"
-msgstr " [o] - préserver les dates d'origine\n"
-
-#: ar.c:238
-#, c-format
-msgid " [u] - only replace files that are newer than current archive contents\n"
-msgstr " [u] - remplacer seulement les fichiers de l'archive par les plus récents\n"
-
-#: ar.c:239
-#, c-format
-msgid " generic modifiers:\n"
-msgstr " modificateurs génériques:\n"
-
-#: ar.c:240
-#, c-format
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr " [c] - ne pas avertir si la librarie doit être créée\n"
-
-#: ar.c:241
-#, c-format
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr " [s] - créer un index d'archive (voir ranlib)\n"
-
-#: ar.c:242
-#, c-format
-msgid " [S] - do not build a symbol table\n"
-msgstr " [S] - ne pas construire une table de symboles\n"
-
-#: ar.c:243
-#, c-format
-msgid " [v] - be verbose\n"
-msgstr " [v] - utiliser le mode verbeux\n"
-
-#: ar.c:244
-#, c-format
-msgid " [V] - display the version number\n"
-msgstr " [V] - afficher le numéro de version\n"
-
-#: ar.c:245
-#, c-format
-msgid " @<file> - read options from <file>\n"
-msgstr " @<fichier_def> lire les options à partir du <fichier>\n"
-
-#: ar.c:252
-#, c-format
-msgid "Usage: %s [options] archive\n"
-msgstr "Usage: %s [options] archive\n"
-
-#: ar.c:253
-#, c-format
-msgid " Generate an index to speed access to archives\n"
-msgstr " Générer un index pour accélérer les accès aux archives\n"
-
-#: ar.c:254
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-"Les options sont:\n"
-" @<fichier> lire les options à partir du <fichier>\n"
-" -h --help afficher l'aide-mémoire\n"
-" -V --version afficher le nom et la version du logiciel\n"
-
-#: ar.c:485
-msgid "two different operation options specified"
-msgstr "deux operations différentes spécifiées"
-
-#: ar.c:560
-#, c-format
-msgid "illegal option -- %c"
-msgstr "option illégale -- %c"
-
-#: ar.c:606
-msgid "no operation specified"
-msgstr "aucune opération spécifiée"
-
-#: ar.c:609
-msgid "`u' is only meaningful with the `r' option."
-msgstr "« u » n'a de sens qu'avec l'option « r »."
-
-#: ar.c:617
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr "« N » n'a de sens qu'avec les options « x » et « d »."
-
-#: ar.c:620
-msgid "Value for `N' must be positive."
-msgstr "La valeur de « N » doit être positive."
-
-#: ar.c:670
-#, c-format
-msgid "internal error -- this option not implemented"
-msgstr "erreur interne -- cette option n'est pas implantée"
-
-#: ar.c:739
-#, c-format
-msgid "creating %s"
-msgstr "création de %s"
-
-#: ar.c:788 ar.c:838 ar.c:1156 objcopy.c:1683
-#, c-format
-msgid "internal stat error on %s"
-msgstr "erreur interne d'évaluation de %s par stat()"
-
-#: ar.c:792
-#, c-format
-msgid ""
-"\n"
-"<%s>\n"
-"\n"
-msgstr ""
-"\n"
-"<%s>\n"
-"\n"
-
-#: ar.c:808 ar.c:875
-#, c-format
-msgid "%s is not a valid archive"
-msgstr "%s n'est pas une archive valide"
-
-#: ar.c:843
-#, c-format
-msgid "stat returns negative size for %s"
-msgstr "stat() a retourné une taille négative for %s"
-
-#: ar.c:1061
-#, c-format
-msgid "No member named `%s'\n"
-msgstr "Aucun membre ayant le nom « %s »\n"
-
-#: ar.c:1111
-#, c-format
-msgid "no entry %s in archive %s!"
-msgstr "aucune entrée %s dans l'archive %s!"
-
-#: ar.c:1248
-#, c-format
-msgid "%s: no archive map to update"
-msgstr "%s: aucune table d'archive à mettre à jour"
-
-#: arsup.c:87
-#, c-format
-msgid "No entry %s in archive.\n"
-msgstr "Aucune entrée %s dans l'archive.\n"
-
-#: arsup.c:112
-#, c-format
-msgid "Can't open file %s\n"
-msgstr "Ne peut ouvrir le fichier %s\n"
-
-#: arsup.c:162
-#, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr "%s: ne peut ouvrir l'archive de sortie %s\n"
-
-#: arsup.c:179
-#, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr "%s: ne peut ouvrir l'archive en entrée %s\n"
-
-#: arsup.c:188
-#, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr "%s: le fichier %s n'est pas une archive\n"
-
-#: arsup.c:227
-#, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr "%s: aucun fichier d'archive de sortie n'a encore été spécifié\n"
-
-#: arsup.c:247 arsup.c:285 arsup.c:327 arsup.c:347 arsup.c:413
-#, c-format
-msgid "%s: no open output archive\n"
-msgstr "%s: aucun fichier d'archive de sortie ouvert\n"
-
-#: arsup.c:258 arsup.c:368 arsup.c:394
-#, c-format
-msgid "%s: can't open file %s\n"
-msgstr "%s: ne peut ouvrir le fichier %s\n"
-
-#: arsup.c:312 arsup.c:390 arsup.c:471
-#, c-format
-msgid "%s: can't find module file %s\n"
-msgstr "%s: ne peut trouver le fichier module %s\n"
-
-#: arsup.c:422
-#, c-format
-msgid "Current open archive is %s\n"
-msgstr "L'archive actuellement ouverte est %s\n"
-
-#: arsup.c:446
-#, c-format
-msgid "%s: no open archive\n"
-msgstr "%s: aucune archive ouverte\n"
-
-#: binemul.c:37
-#, c-format
-msgid " No emulation specific options\n"
-msgstr " Pas d'options d'émulation spécifiques\n"
-
-#. Macros for common output.
-#: binemul.h:40
-#, c-format
-msgid " emulation options: \n"
-msgstr " Options d'émulation: \n"
-
-#: bucomm.c:110
-#, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr "ne peut initialiser les paramètres par défaut BDF cible vers « %s »: %s"
-
-#: bucomm.c:121
-#, c-format
-msgid "%s: Matching formats:"
-msgstr "%s: formats concordant:"
-
-#: bucomm.c:136
-#, c-format
-msgid "Supported targets:"
-msgstr "Cibles supportés:"
-
-#: bucomm.c:138
-#, c-format
-msgid "%s: supported targets:"
-msgstr "%s: cibles supportés:"
-
-#: bucomm.c:154
-#, c-format
-msgid "Supported architectures:"
-msgstr "Architectures supportées:"
-
-#: bucomm.c:156
-#, c-format
-msgid "%s: supported architectures:"
-msgstr "%s: architectures supportées:"
-
-#: bucomm.c:349
-#, c-format
-msgid "BFD header file version %s\n"
-msgstr "Version de l'en-tête du fichier BFD %s\n"
-
-#: bucomm.c:450
-#, c-format
-msgid "%s: bad number: %s"
-msgstr "%s: mauvais numéro: %s"
-
-#: bucomm.c:467 strings.c:438
-#, c-format
-msgid "'%s': No such file"
-msgstr "'%s': pas de fichier comme tel"
-
-#: bucomm.c:469 strings.c:440
-#, c-format
-msgid "Warning: could not locate '%s'. reason: %s"
-msgstr "AVERTISSEMENT: ne peut localiser '%s'. Raison: %s"
-
-#: bucomm.c:473
-#, c-format
-msgid "Warning: '%s' is not an ordinary file"
-msgstr "AVERTISSEMENT: '%s' n'est pas un fichier ordinaire"
-
-#: coffdump.c:103
-#, c-format
-msgid "#lines %d "
-msgstr "# de lignes %d "
-
-#: coffdump.c:457 sysdump.c:641
-#, c-format
-msgid "Usage: %s [option(s)] in-file\n"
-msgstr "Usage: %s [options] fichier\n"
-
-#: coffdump.c:458
-#, c-format
-msgid " Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "Aficher dans un format humainement lisible une interprétation du fichier objet SYSROFF\n"
-
-#: coffdump.c:459
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-"Les options sont:\n"
-" @<fichier> lire les options à partir du <fichier>\n"
-" -h --help afficher l'aide-mémoire\n"
-" -V --version afficher le nom et la version du logiciel\n"
-"\n"
-
-#: coffdump.c:528 srconv.c:1822 sysdump.c:705
-msgid "no input file specified"
-msgstr "Aucune fichier spécifié à l'entrée"
-
-#: debug.c:648
-msgid "debug_add_to_current_namespace: no current file"
-msgstr "debug_add_to_current_namespace: aucun fichier courant"
-
-#: debug.c:727
-msgid "debug_start_source: no debug_set_filename call"
-msgstr "debug_start_source: aucun appel no debug_set_filename"
-
-#: debug.c:783
-msgid "debug_record_function: no debug_set_filename call"
-msgstr "debug_record_function: aucun appel debug_set_filename"
-
-#: debug.c:835
-msgid "debug_record_parameter: no current function"
-msgstr "debug_record_parameter: aucune fonction courante"
-
-#: debug.c:867
-msgid "debug_end_function: no current function"
-msgstr "debug_end_function: aucune fonction courante"
-
-#: debug.c:873
-msgid "debug_end_function: some blocks were not closed"
-msgstr "debug_end_function: quelques blocs n'ont pas été fermés"
-
-#: debug.c:901
-msgid "debug_start_block: no current block"
-msgstr "debug_start_block: aucun bloc couratn"
-
-#: debug.c:937
-msgid "debug_end_block: no current block"
-msgstr "debug_end_block: aucun bloc courant"
-
-#: debug.c:944
-msgid "debug_end_block: attempt to close top level block"
-msgstr "debug_end_block: tentative de fermeture du bloc du niveau supérieur"
-
-#: debug.c:967
-msgid "debug_record_line: no current unit"
-msgstr "debug_record_line: aucune unité courante"
-
-#. FIXME
-#: debug.c:1020
-msgid "debug_start_common_block: not implemented"
-msgstr "debug_start_common_block: pas implanté"
-
-#. FIXME
-#: debug.c:1031
-msgid "debug_end_common_block: not implemented"
-msgstr "debug_end_common_block: pas implanté"
-
-#. FIXME.
-#: debug.c:1115
-msgid "debug_record_label: not implemented"
-msgstr "debug_record_label: pas implanté"
-
-#: debug.c:1137
-msgid "debug_record_variable: no current file"
-msgstr "debug_record_variable: aucun fichier courant"
-
-#: debug.c:1665
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr "debug_make_undefined_type: type non supportée"
-
-#: debug.c:1842
-msgid "debug_name_type: no current file"
-msgstr "debug_name_type: aucun fichier courant"
-
-#: debug.c:1887
-msgid "debug_tag_type: no current file"
-msgstr "debug_tag_type: aucune fichier courant"
-
-#: debug.c:1895
-msgid "debug_tag_type: extra tag attempted"
-msgstr "debug_tag_type: tentative d'étiquetage additionnelle"
-
-#: debug.c:1932
-#, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr "AVERTISSEMENT: changement de taille du type de %d à %d\n"
-
-#: debug.c:1954
-msgid "debug_find_named_type: no current compilation unit"
-msgstr "debug_find_named_type: aucune unité de compilation courante"
-
-#: debug.c:2057
-#, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr "debug_get_real_type: information circulaire de débogage pour %s\n"
-
-#: debug.c:2484
-msgid "debug_write_type: illegal type encountered"
-msgstr "debug_write_type: type illégal rencontré"
-
-#: dlltool.c:765 dlltool.c:789 dlltool.c:818
-#, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr "erreur interne: type de machine inconnue: %d"
-
-#: dlltool.c:854
-#, c-format
-msgid "Can't open def file: %s"
-msgstr "Ne peut ouvrir le fichier de définition: %s"
-
-#: dlltool.c:859
-#, c-format
-msgid "Processing def file: %s"
-msgstr "Traitement du fichier de définition: %s"
-
-#: dlltool.c:863
-msgid "Processed def file"
-msgstr "Traitement complété du fichier de définition"
-
-#: dlltool.c:887
-#, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr "Erreur de syntaxe dans le fichier de définition %s:%d"
-
-#: dlltool.c:922
-#, c-format
-msgid "%s: Path components stripped from image name, '%s'."
-msgstr "%s: composants du chemin ont été éliminé du nom de l'imiage '%s'."
-
-#: dlltool.c:931
-#, c-format
-msgid "NAME: %s base: %x"
-msgstr "NOM: %s base: %x"
-
-#: dlltool.c:934 dlltool.c:950
-msgid "Can't have LIBRARY and NAME"
-msgstr "Ne peut trouver la LIBRAIRIE et le NOM"
-
-#: dlltool.c:947
-#, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr "LIBRAIRIE: %s base %x"
-
-#: dlltool.c:1183 resrc.c:269
-#, c-format
-msgid "wait: %s"
-msgstr "en attente: %s"
-
-#: dlltool.c:1188 dllwrap.c:413 resrc.c:274
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr "sous-processus a reçu le signal fatal %d"
-
-#: dlltool.c:1194 dllwrap.c:420 resrc.c:281
-#, c-format
-msgid "%s exited with status %d"
-msgstr "%s a terminé avec le statut %d"
-
-#: dlltool.c:1225
-#, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr "Aspirer les informations de la section %s dans %s"
-
-#: dlltool.c:1350
-#, c-format
-msgid "Excluding symbol: %s"
-msgstr "Exclusion de symbole: %s"
-
-#: dlltool.c:1439 dlltool.c:1450 nm.c:1000 nm.c:1011
-#, c-format
-msgid "%s: no symbols"
-msgstr "%s: aucun symbole"
-
-#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1476
-#, c-format
-msgid "Done reading %s"
-msgstr "Lecture complétée %s"
-
-#: dlltool.c:1486
-#, c-format
-msgid "Unable to open object file: %s"
-msgstr "Incapable d'ouvrir le fichier objet: %s"
-
-#: dlltool.c:1489
-#, c-format
-msgid "Scanning object file %s"
-msgstr "Scrutation du fichier objet %s"
-
-#: dlltool.c:1504
-#, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr "Ne peutproduire mcore-elf dll à partir du fichier d'archive: %s"
-
-#: dlltool.c:1590
-msgid "Adding exports to output file"
-msgstr "Ajout des exports au fichier de sortie"
-
-#: dlltool.c:1638
-msgid "Added exports to output file"
-msgstr "Exports ajoutés au fichier de sortie"
-
-#: dlltool.c:1759
-#, c-format
-msgid "Generating export file: %s"
-msgstr "Génération du fichier d'exports: %s"
-
-#: dlltool.c:1764
-#, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr "Incapable d'ouvrir le fichier assembleur temporaire: %s"
-
-#: dlltool.c:1767
-#, c-format
-msgid "Opened temporary file: %s"
-msgstr "Fichier temporaire ouvert: %s"
-
-#: dlltool.c:1989
-msgid "Generated exports file"
-msgstr "Fichier d'exports généré"
-
-#: dlltool.c:2195
-#, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr "échec de bfd_open lors de l'ouverture du fichier stub: %s"
-
-#: dlltool.c:2198
-#, c-format
-msgid "Creating stub file: %s"
-msgstr "Création du fichier stub: %s"
-
-#: dlltool.c:2580
-#, c-format
-msgid "failed to open temporary head file: %s"
-msgstr "échec d'ouverture du fichier de tête temporaire: %s"
-
-#: dlltool.c:2639
-#, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr "échec d'ouverture du fichier de queue temporaire: %s"
-
-#: dlltool.c:2706
-#, c-format
-msgid "Can't open .lib file: %s"
-msgstr "Ne peut ouvrir le fichier .lib: %s"
-
-#: dlltool.c:2709
-#, c-format
-msgid "Creating library file: %s"
-msgstr "Création du fichier de librairie: %s"
-
-#: dlltool.c:2792 dlltool.c:2798
-#, c-format
-msgid "cannot delete %s: %s"
-msgstr "ne peut détruire %s: %s"
-
-#: dlltool.c:2803
-msgid "Created lib file"
-msgstr "Fichier de libraire créé"
-
-#: dlltool.c:2882
-#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr "AVERTISSEMENT: EXPORT en duplication ignoré %s %d,%d"
-
-#: dlltool.c:2888
-#, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr "ERREUR, EXPORT en duplication avec ordinals: %s"
-
-#: dlltool.c:2993
-msgid "Processing definitions"
-msgstr "Traitement des définitions"
-
-#: dlltool.c:3025
-msgid "Processed definitions"
-msgstr "Définitions traitées"
-
-#. xgetext:c-format
-#: dlltool.c:3032 dllwrap.c:474
-#, c-format
-msgid "Usage %s <option(s)> <object-file(s)>\n"
-msgstr "Usage %s <options> <fichiers-objet>\n"
-
-#. xgetext:c-format
-#: dlltool.c:3034
-#, c-format
-msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr " -m --machine <machine> créer comme DLL pour la <machine>. [défaut: %s]\n"
-
-#: dlltool.c:3035
-#, c-format
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-msgstr " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-
-#: dlltool.c:3036
-#, c-format
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr " -e --output-exp <nom_de_sortie> générer un fichier d'export.\n"
-
-#: dlltool.c:3037
-#, c-format
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr " -l --output-lib <nom_de_sortie> générer une librairie d'interface.\n"
-
-#: dlltool.c:3038
-#, c-format
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr " -a --add-indirect ajouter les dll indirectes au fichier d'exports.\n"
-
-#: dlltool.c:3039
-#, c-format
-msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr " -D --dllname <nom> nom du dll à placer dans la libraire d'interface.\n"
-
-#: dlltool.c:3040
-#, c-format
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr " -d --input-def <fichier_def> nom du fichier .def à lire\n"
-
-#: dlltool.c:3041
-#, c-format
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr " -z --output-def <fichier_def> nom du fichier .def à créer.\n"
-
-#: dlltool.c:3042
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols exporter tous les symboles vers le fichier .def\n"
-
-#: dlltool.c:3043
-#, c-format
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr " --no-export-all-symbols exporter seulement la liste des symboles\n"
-
-#: dlltool.c:3044
-#, c-format
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr " --exclude-symbols <liste> ne pas exporter la <liste>\n"
-
-#: dlltool.c:3045
-#, c-format
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr " --no-default-excludes ne pas tenir compte des symboles d'exclusion par défaut\n"
-
-#: dlltool.c:3046
-#, c-format
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr " -b --base-file <fichier_base> lire le fichier de base généré par l'éditeur de liens\n"
-
-#: dlltool.c:3047
-#, c-format
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr " -x --no-idata4 ne pas générer la section idata$4\n"
-
-#: dlltool.c:3048
-#, c-format
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr " -c --no-idata5 ne pas générer la section idata$5\n"
-
-#: dlltool.c:3049
-#, c-format
-msgid " -U --add-underscore Add underscores to symbols in interface library.\n"
-msgstr " -U --add-underscore ajouter des soulignés aux symboles dans la librairie d'interface\n"
-
-#: dlltool.c:3050
-#, c-format
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr " -k --kill-at stopper @<n> à partir des noms exportés\n"
-
-#: dlltool.c:3051
-#, c-format
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr " -A --add-stdcall-alias ajouter des aliases sans @<n>\n"
-
-#: dlltool.c:3052
-#, c-format
-msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
-msgstr " -p --axd-prefix-alias <préfixe> ajouter des aliases avec <préfixe>.\n"
-
-#: dlltool.c:3053
-#, c-format
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr " -S --as <nom> utiliser le <nom> pour l'assembleur\n"
-
-#: dlltool.c:3054
-#, c-format
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr " -f --as-flags <fanions> relayer les <fanions> à l'assembleur\n"
-
-#: dlltool.c:3055
-#, c-format
-msgid " -C --compat-implib Create backward compatible import library.\n"
-msgstr " -C --compat-implib créer une compatibilité arrière à la librairie d'importation\n"
-
-#: dlltool.c:3056
-#, c-format
-msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
-msgstr " -n --no-delete conserver les fichier temporaires\n"
-
-#: dlltool.c:3057
-#, c-format
-msgid " -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
-msgstr " -t --temp-prefix <préfixe> utiliser le <préfixe> pour construire les noms de fichiers temporaires.\n"
-
-#: dlltool.c:3058
-#, c-format
-msgid " -v --verbose Be verbose.\n"
-msgstr " -v --verbose passer en mode bavard\n"
-
-#: dlltool.c:3059
-#, c-format
-msgid " -V --version Display the program version.\n"
-msgstr " -V --version afficher le nom et la version du logiciel\n"
-
-#: dlltool.c:3060
-#, c-format
-msgid " -h --help Display this information.\n"
-msgstr " -h --help afficher l'aide-mémoire\n"
-
-#: dlltool.c:3061
-#, c-format
-msgid " @<file> Read options from <file>.\n"
-msgstr " @<fichier> lire les options à partir du <fichier>\n"
-
-#: dlltool.c:3063
-#, c-format
-msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr " -M --mcore-elf <nom_sortie> traiter le fichier objet mcore-elf selon le <nom_de_sortie>\n"
-
-#: dlltool.c:3064
-#, c-format
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr " -L --linker <nom> utiliser <nom> comme éditeur de liens\n"
-
-#: dlltool.c:3065
-#, c-format
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr " -F --linker-flags <fanions> relayer les <fanions> à l'éditeur de liens\n"
-
-#: dlltool.c:3181
-#, c-format
-msgid "Path components stripped from dllname, '%s'."
-msgstr "Composants du chemin ont été éliminés du nom dll '%s'."
-
-#: dlltool.c:3226
-#, c-format
-msgid "Unable to open base-file: %s"
-msgstr "Incapable d'ouvrir le fichier de base: %s"
-
-#: dlltool.c:3258
-#, c-format
-msgid "Machine '%s' not supported"
-msgstr "Machine « %s » n'est pas supportée"
-
-#: dlltool.c:3362 dllwrap.c:204
-#, c-format
-msgid "Tried file: %s"
-msgstr "Essai avec le fichier: %s"
-
-#: dlltool.c:3369 dllwrap.c:211
-#, c-format
-msgid "Using file: %s"
-msgstr "Utilisation du fichier: %s"
-
-#: dllwrap.c:294
-#, c-format
-msgid "Keeping temporary base file %s"
-msgstr "Conservation temportaire du fichier de base %s"
-
-#: dllwrap.c:296
-#, c-format
-msgid "Deleting temporary base file %s"
-msgstr "Destruction du fichier de base temporaire %s"
-
-#: dllwrap.c:310
-#, c-format
-msgid "Keeping temporary exp file %s"
-msgstr "Conservation du fichier temporaire exp %s"
-
-#: dllwrap.c:312
-#, c-format
-msgid "Deleting temporary exp file %s"
-msgstr "Destruction du fichier exp temporaire %s"
-
-#: dllwrap.c:325
-#, c-format
-msgid "Keeping temporary def file %s"
-msgstr "Conservation du fichier temporaire def %s"
-
-#: dllwrap.c:327
-#, c-format
-msgid "Deleting temporary def file %s"
-msgstr "Destruction du fichier temporaire def %s"
-
-#: dllwrap.c:475
-#, c-format
-msgid " Generic options:\n"
-msgstr " Option génériques:\n"
-
-#: dllwrap.c:476
-#, c-format
-msgid " @<file> Read options from <file>\n"
-msgstr " @<fichier> lire les options à partir du <fichier>\n"
-
-#: dllwrap.c:477
-#, c-format
-msgid " --quiet, -q Work quietly\n"
-msgstr " --quiet, -q travailler silencieusement\n"
-
-#: dllwrap.c:478
-#, c-format
-msgid " --verbose, -v Verbose\n"
-msgstr " --verbose, -v travailler en mode bavard\n"
-
-#: dllwrap.c:479
-#, c-format
-msgid " --version Print dllwrap version\n"
-msgstr " --version afficher la version du dllwrap\n"
-
-#: dllwrap.c:480
-#, c-format
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr " --implib <outname> identique à --output-lib\n"
-
-#: dllwrap.c:481
-#, c-format
-msgid " Options for %s:\n"
-msgstr " Options pour %s:\n"
-
-#: dllwrap.c:482
-#, c-format
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr " --driver-name <pilote> par défaut « gcc »\n"
-
-#: dllwrap.c:483
-#, c-format
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr " --driver-flags <fanion> écrasesr les fanions par défaut de ld\n"
-
-#: dllwrap.c:484
-#, c-format
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr " --dlltool-name <outil-dll> par défaut « dlltool »\n"
-
-#: dllwrap.c:485
-#, c-format
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr " --entry <entrée> spécifier une entrée alternative au point d'entrée du DLL\n"
-
-#: dllwrap.c:486
-#, c-format
-msgid " --image-base <base> Specify image base address\n"
-msgstr " --image-base <base> spécifier une adresse de l'image de base\n"
-
-#: dllwrap.c:487
-#, c-format
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr " --target <machine> i386-cygwin32 ou i386-mingw32\n"
-
-#: dllwrap.c:488
-#, c-format
-msgid " --dry-run Show what needs to be run\n"
-msgstr " --dry-run afficher ce qui est nécessaire pour l'exécution\n"
-
-#: dllwrap.c:489
-#, c-format
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr " --mno-cygwin créer une DLL de type Mingw\n"
-
-#: dllwrap.c:490
-#, c-format
-msgid " Options passed to DLLTOOL:\n"
-msgstr " Options relayées à DLLTOOL:\n"
-
-#: dllwrap.c:491
-#, c-format
-msgid " --machine <machine>\n"
-msgstr " --machine <machine>\n"
-
-#: dllwrap.c:492
-#, c-format
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr " --output-exp <nom-de-sortie> générer un fichier d'exports.\n"
-
-#: dllwrap.c:493
-#, c-format
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr " --output-lib <nom-de-sortie> générer une librairie d'entrée.\n"
-
-#: dllwrap.c:494
-#, c-format
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr " --add-indirect ajouter les dll indirectes au fichier d'exports.\n"
-
-#: dllwrap.c:495
-#, c-format
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr " --dllname <nom> nom du dll d'entrée à ajouter dans le fichier lib de sortie.\n"
-
-#: dllwrap.c:496
-#, c-format
-msgid " --def <deffile> Name input .def file\n"
-msgstr " --def <fichier_def> nom du fichier d'entrée .def\n"
-
-#: dllwrap.c:497
-#, c-format
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr " --output-def <fichier_def> nom du fichier de sortie .def\n"
-
-#: dllwrap.c:498
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols exporter tous les symboles au fichier .def\n"
-
-#: dllwrap.c:499
-#, c-format
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr " --no-export-all-symbols exporter seulement les symboles .drectve\n"
-
-#: dllwrap.c:500
-#, c-format
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr " --exclude-symbols <liste> exclure la <liste> de .def\n"
-
-#: dllwrap.c:501
-#, c-format
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr " --no-default-excludes ignorer les symboles par défaut d'exclusion\n"
-
-#: dllwrap.c:502
-#, c-format
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr " --base-file <fichier_base> lire le fichier de base généré par l'éditeur de liens\n"
-
-#: dllwrap.c:503
-#, c-format
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr " --no-idata4 ne pas générer la section idata$4\n"
-
-#: dllwrap.c:504
-#, c-format
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr " --no-idata5 ne pas générer la section idata$5\n"
-
-#: dllwrap.c:505
-#, c-format
-msgid " -U Add underscores to .lib\n"
-msgstr " -U ajouter des soulignés au fichier .lib\n"
-
-#: dllwrap.c:506
-#, c-format
-msgid " -k Kill @<n> from exported names\n"
-msgstr " -k stopper @<n> à partir des noms exportés\n"
-
-#: dllwrap.c:507
-#, c-format
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr " --add-stdcall-alias ajouter les aliases sans @<n>\n"
-
-#: dllwrap.c:508
-#, c-format
-msgid " --as <name> Use <name> for assembler\n"
-msgstr " --as <nom> utiliser <nom> comme assembleur\n"
-
-#: dllwrap.c:509
-#, c-format
-msgid " --nodelete Keep temp files.\n"
-msgstr " --nodelete conserver les fichiers temporaires.\n"
-
-#: dllwrap.c:510
-#, c-format
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr " le reste est passé sans modification au pilote du langage\n"
-
-#: dllwrap.c:782
-msgid "Must provide at least one of -o or --dllname options"
-msgstr "Obligation de fournir au moins une des options -o or --dllname"
-
-#: dllwrap.c:811
-msgid ""
-"no export definition file provided.\n"
-"Creating one, but that may not be what you want"
-msgstr ""
-"aucun fichier d'exportation de définitions fourni.\n"
-"Création du fichier, mais il ne correspondra pas nécessairement à ce que vous désirez."
-
-#: dllwrap.c:970
-#, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr "OUTILDLL nom : %s\n"
-
-#: dllwrap.c:971
-#, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr "OUTILDLL options : %s\n"
-
-#: dllwrap.c:972
-#, c-format
-msgid "DRIVER name : %s\n"
-msgstr "PILOTE name : %s\n"
-
-#: dllwrap.c:973
-#, c-format
-msgid "DRIVER options : %s\n"
-msgstr "PILOTE options : %s\n"
-
-#: dwarf.c:93 dwarf.c:137 readelf.c:322 readelf.c:515
-#, c-format
-msgid "Unhandled data length: %d\n"
-msgstr "Taille de données non traitées: %d\n"
-
-#: dwarf.c:237
-msgid "badly formed extended line op encountered!\n"
-msgstr "ligne rencontrée de l'extension de l'opérateur est mal composée!\n"
-
-#: dwarf.c:244
-#, c-format
-msgid " Extended opcode %d: "
-msgstr " Code op étendu %d: "
-
-#: dwarf.c:249
-#, c-format
-msgid ""
-"End of Sequence\n"
-"\n"
-msgstr ""
-"Fin de séquence\n"
-"\n"
-
-#: dwarf.c:255
-#, c-format
-msgid "set Address to 0x%lx\n"
-msgstr "initialisé l'adresse à 0x%lx\n"
-
-#: dwarf.c:260
-#, c-format
-msgid " define new File Table entry\n"
-msgstr " définir une entrée pour un nouveau fichier de table\n"
-
-#: dwarf.c:261 dwarf.c:1944
-#, c-format
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr " Entrée\tRép.\tDate\tTaille\tNom\n"
-
-#: dwarf.c:263
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: dwarf.c:266 dwarf.c:268 dwarf.c:270 dwarf.c:1956 dwarf.c:1958 dwarf.c:1960
-#, c-format
-msgid "%lu\t"
-msgstr "%lu\t"
-
-#: dwarf.c:271
-#, c-format
-msgid ""
-"%s\n"
-"\n"
-msgstr ""
-"%s\n"
-"\n"
-
-#: dwarf.c:275
-#, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr "UNKNOWN: longueur %d\n"
-
-#: dwarf.c:288
-msgid "<no .debug_str section>"
-msgstr "<aucune section .debug_str>"
-
-#: dwarf.c:294
-#, c-format
-msgid "DW_FORM_strp offset too big: %lx\n"
-msgstr "décalage DW_FORM_strp est trop grand: %lx\n"
-
-#: dwarf.c:295
-msgid "<offset is too big>"
-msgstr "<décalage trop grand>"
-
-#: dwarf.c:528
-#, c-format
-msgid "Unknown TAG value: %lx"
-msgstr "Valeur d'étiquette (« TAG ») inconnue: %lx"
-
-#: dwarf.c:564
-#, c-format
-msgid "Unknown FORM value: %lx"
-msgstr "Valeur FORM inconnue: %lx"
-
-#: dwarf.c:573
-#, c-format
-msgid " %lu byte block: "
-msgstr " %lu bloc d'octets: "
-
-#: dwarf.c:907
-#, c-format
-msgid "(User defined location op)"
-msgstr "(Op de localisation défini par l'usager)"
-
-#: dwarf.c:909
-#, c-format
-msgid "(Unknown location op)"
-msgstr "(Op de localisation inconnu)"
-
-#: dwarf.c:955
-msgid "Internal error: DWARF version is not 2 or 3.\n"
-msgstr "Erreur interne: DWARF version n'est ni 2 ou 3.\n"
-
-#: dwarf.c:1053
-msgid "DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n"
-msgstr "DW_FORM_data8 n'est pas supporté lorsque sizeof (unsigned long) != 8\n"
-
-#: dwarf.c:1102
-#, c-format
-msgid " (indirect string, offset: 0x%lx): %s"
-msgstr " (chaîne indirecte, décalage: 0x%lx): %s"
-
-#: dwarf.c:1111
-#, c-format
-msgid "Unrecognized form: %lu\n"
-msgstr "Forme non reconnue: %lu\n"
-
-#: dwarf.c:1196
-#, c-format
-msgid "(not inlined)"
-msgstr "(pas en ligne)"
-
-#: dwarf.c:1199
-#, c-format
-msgid "(inlined)"
-msgstr "(en ligne)"
-
-#: dwarf.c:1202
-#, c-format
-msgid "(declared as inline but ignored)"
-msgstr "(déclaré comme en ligne mais ignoré)"
-
-#: dwarf.c:1205
-#, c-format
-msgid "(declared as inline and inlined)"
-msgstr "(déclaré comme en-ligne et en-ligné"
-
-#: dwarf.c:1208
-#, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr " (valeur d'attribut en ligne inconnu: %lx)"
-
-#: dwarf.c:1354 dwarf.c:2484
-#, c-format
-msgid " [without DW_AT_frame_base]"
-msgstr " [sans DW_AT_frame_base]"
-
-#: dwarf.c:1357
-#, c-format
-msgid "(location list)"
-msgstr "(liste de localisation)"
-
-#: dwarf.c:1475
-#, c-format
-msgid "Unknown AT value: %lx"
-msgstr "Valeur AT inconnue: %lx"
-
-#: dwarf.c:1544
-#, c-format
-msgid "No comp units in %s section ?"
-msgstr "Pas d'unités de comptabilisation dans la section %s ?"
-
-#: dwarf.c:1553
-#, c-format
-msgid "Not enough memory for a debug info array of %u entries"
-msgstr "Pas asses de mémoire pour les infos dans un tableau de mise au point de %u entrées"
-
-#: dwarf.c:1561 dwarf.c:2573
-#, c-format
-msgid ""
-"The section %s contains:\n"
-"\n"
-msgstr ""
-"La section %s contient:\n"
-"\n"
-
-#: dwarf.c:1569
-#, c-format
-msgid "Unable to locate %s section!\n"
-msgstr "Incapable de localiser la section %s!\n"
-
-#: dwarf.c:1635
-#, c-format
-msgid " Compilation Unit @ offset 0x%lx:\n"
-msgstr " Unité de compilation @ décalée de 0x%lx:\n"
-
-#: dwarf.c:1636
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Longueur: %ld\n"
-
-#: dwarf.c:1637
-#, c-format
-msgid " Version: %d\n"
-msgstr " Version: %d\n"
-
-#: dwarf.c:1638
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr " Décalage agrégé: %ld\n"
-
-#: dwarf.c:1639
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " Taille des pointeurs: %d\n"
-
-#: dwarf.c:1644
-msgid "Only version 2 and 3 DWARF debug information is currently supported.\n"
-msgstr "Seuls les informations de débug de la version DWARF 2 et 3 sont couramment supportés.\n"
-
-#: dwarf.c:1685
-#, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr "Incapable de localiser l'entrée %lu dans la table d'abréviation\n"
-
-#: dwarf.c:1691
-#, c-format
-msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
-msgstr " <%d><%lx>: Numéro d'abréviation: %lu (%s)\n"
-
-#: dwarf.c:1785
-#, c-format
-msgid "%s section needs a populated .debug_info section\n"
-msgstr "%s la section a besoin d'une section .debug_info_section\n"
-
-#: dwarf.c:1792
-#, c-format
-msgid "%s section has more comp units than .debug_info section\n"
-msgstr "%s la section a plus d'unités de comptabilisation que la section .debug_info_section\n"
-
-#: dwarf.c:1794
-#, c-format
-msgid ""
-"assuming that the pointer size is %d, from the last comp unit in .debug_info\n"
-"\n"
-msgstr ""
-"on assume que la taille du pointeur est %d à partir de la dernière unité de comptabilisation dans .debug_info\n"
-"\n"
-
-#: dwarf.c:1819
-#, c-format
-msgid ""
-"\n"
-"Dump of debug contents of section %s:\n"
-"\n"
-msgstr ""
-"\n"
-"Vidange du contenu de débug de la section %s:\n"
-"\n"
-
-#: dwarf.c:1858
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr "La ligne d'information semble corrompue - la section est trop petite\n"
-
-#: dwarf.c:1867
-msgid "Only DWARF version 2 and 3 line info is currently supported.\n"
-msgstr "Seule la ligne d'info DWARF de version 2 et 3 est couramment supportée.\n"
-
-#: dwarf.c:1894
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Longueur: %ld\n"
-
-#: dwarf.c:1895
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr " Version DWARF: %d\n"
-
-#: dwarf.c:1896
-#, c-format
-msgid " Prologue Length: %d\n"
-msgstr " Longueur du prologue: %d\n"
-
-#: dwarf.c:1897
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr " Longueur minimale des instructions: %d\n"
-
-#: dwarf.c:1898
-#, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr " Valeur initiale de « is_stmt »: %d\n"
-
-#: dwarf.c:1899
-#, c-format
-msgid " Line Base: %d\n"
-msgstr " Ligne de base: %d\n"
-
-#: dwarf.c:1900
-#, c-format
-msgid " Line Range: %d\n"
-msgstr " Ligne d'étendue: %d\n"
-
-#: dwarf.c:1901
-#, c-format
-msgid " Opcode Base: %d\n"
-msgstr " Code op Base: %d\n"
-
-#: dwarf.c:1902
-#, c-format
-msgid " (Pointer size: %u)%s\n"
-msgstr " (Taille des pointeurs: %u)%s\n"
-
-#: dwarf.c:1913
-#, c-format
-msgid ""
-"\n"
-" Opcodes:\n"
-msgstr ""
-"\n"
-" Codes op:\n"
-
-#: dwarf.c:1916
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr " Code op %d a %d arguments\n"
-
-#: dwarf.c:1922
-#, c-format
-msgid ""
-"\n"
-" The Directory Table is empty.\n"
-msgstr ""
-"\n"
-" La table des répertoires est vide.\n"
-
-#: dwarf.c:1925
-#, c-format
-msgid ""
-"\n"
-" The Directory Table:\n"
-msgstr ""
-"\n"
-" La table des répertoire:\n"
-
-#: dwarf.c:1929
-#, c-format
-msgid " %s\n"
-msgstr " %s\n"
-
-#: dwarf.c:1940
-#, c-format
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr ""
-"\n"
-" La talbe des noms de fichiers est vide.\n"
-
-#: dwarf.c:1943
-#, c-format
-msgid ""
-"\n"
-" The File Name Table:\n"
-msgstr ""
-"\n"
-" La table des noms de fichiers:\n"
-
-#: dwarf.c:1951
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: dwarf.c:1962
-#, c-format
-msgid "%s\n"
-msgstr "%s\n"
-
-#. Now display the statements.
-#: dwarf.c:1970
-#, c-format
-msgid ""
-"\n"
-" Line Number Statements:\n"
-msgstr ""
-"\n"
-" Numéro de ligne des déclarations:\n"
-
-#: dwarf.c:1986
-#, c-format
-msgid " Special opcode %d: advance Address by %lu to 0x%lx"
-msgstr " Op code spécial %d: devance l'adresse par %lu à 0x%lx"
-
-#: dwarf.c:1990
-#, c-format
-msgid " and Line by %d to %d\n"
-msgstr " et Ligne par %d à %d\n"
-
-#: dwarf.c:1998
-msgid "Extend line ops need a valid pointer size, guessing at 4\n"
-msgstr "opérateur de ligne étendue a besoin d'une taille valide pour le pointeur, on essaye à 4\n"
-
-#: dwarf.c:2007
-#, c-format
-msgid " Copy\n"
-msgstr " Copie\n"
-
-#: dwarf.c:2015
-#, c-format
-msgid " Advance PC by %lu to 0x%lx\n"
-msgstr " Avancer le compteur PC de %lu à 0x%lx\n"
-
-#: dwarf.c:2023
-#, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr " Avancer la ligne de %d à %d\n"
-
-#: dwarf.c:2030
-#, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr " Initialisé le nom du fichier à l'entrée %d dans la table des noms de fichiers\n"
-
-#: dwarf.c:2038
-#, c-format
-msgid " Set column to %lu\n"
-msgstr " Initialiser la colonne à %lu\n"
-
-#: dwarf.c:2045
-#, c-format
-msgid " Set is_stmt to %d\n"
-msgstr " Initialisé is_stmt avec %d\n"
-
-#: dwarf.c:2050
-#, c-format
-msgid " Set basic block\n"
-msgstr " Initialisé le bloc de base\n"
-
-#: dwarf.c:2058
-#, c-format
-msgid " Advance PC by constant %lu to 0x%lx\n"
-msgstr " Avancer le compteur PC par une constante de %lu à 0x%lx\n"
-
-#: dwarf.c:2066
-#, c-format
-msgid " Advance PC by fixed size amount %lu to 0x%lx\n"
-msgstr " Avancer le compteur PC par une taille fixe de %lu à 0x%lx\n"
-
-#: dwarf.c:2071
-#, c-format
-msgid " Set prologue_end to true\n"
-msgstr " Initialiser prologue_end à VRAI\n"
-
-#: dwarf.c:2075
-#, c-format
-msgid " Set epilogue_begin to true\n"
-msgstr " Initialiser epilogue_begin à VRAI\n"
-
-#: dwarf.c:2081
-#, c-format
-msgid " Set ISA to %lu\n"
-msgstr " Initialiser ISA à %lu\n"
-
-#: dwarf.c:2085
-#, c-format
-msgid " Unknown opcode %d with operands: "
-msgstr " opcode inconnu %d avec les opérandes:"
-
-#: dwarf.c:2111 dwarf.c:2197 dwarf.c:2271 dwarf.c:2382 dwarf.c:2514
-#: dwarf.c:2739
-#, c-format
-msgid ""
-"Contents of the %s section:\n"
-"\n"
-msgstr ""
-"Contenue de la section %s:\n"
-"\n"
-
-#: dwarf.c:2151
-msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
-msgstr "Seuls les noms publics DWARF 2 et 3 sont couramment supportés\n"
-
-#: dwarf.c:2158
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Longueur: %ld\n"
-
-#: dwarf.c:2160
-#, c-format
-msgid " Version: %d\n"
-msgstr " Version: %d\n"
-
-#: dwarf.c:2162
-#, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr " Décalage dans la section .debug_info:%ld\n"
-
-#: dwarf.c:2164
-#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr " Taille de la zone dans la section .debug_info: %ld\n"
-
-#: dwarf.c:2167
-#, c-format
-msgid ""
-"\n"
-" Offset\tName\n"
-msgstr ""
-"\n"
-" Décalage\tNom\n"
-
-#: dwarf.c:2218
-#, c-format
-msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr " DW_MACINFO_start_file - no de ligne: %d no de fichier: %d\n"
-
-#: dwarf.c:2224
-#, c-format
-msgid " DW_MACINFO_end_file\n"
-msgstr " DW_MACINFO_end_file\n"
-
-#: dwarf.c:2232
-#, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_define - no de ligne : %d macro : %s\n"
-
-#: dwarf.c:2241
-#, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_undef - no de ligne : %d macro : %s\n"
-
-#: dwarf.c:2253
-#, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr " DW_MACINFO_vendor_ext - constante : %d chaîne : %s\n"
-
-#: dwarf.c:2282
-#, c-format
-msgid " Number TAG\n"
-msgstr " Numéro d'étiquette\n"
-
-#: dwarf.c:2288
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr " %ld %s [%s]\n"
-
-#: dwarf.c:2291
-msgid "has children"
-msgstr "a des rejetons"
-
-#: dwarf.c:2291
-msgid "no children"
-msgstr "aucun rejeton"
-
-#: dwarf.c:2294
-#, c-format
-msgid " %-18s %s\n"
-msgstr " %-18s %s\n"
-
-#: dwarf.c:2327 dwarf.c:2510 dwarf.c:2684
-#, c-format
-msgid ""
-"\n"
-"The %s section is empty.\n"
-msgstr ""
-"\n"
-"La section %s est vide.\n"
-
-#. FIXME: Should we handle this case?
-#: dwarf.c:2372
-msgid "Location lists in .debug_info section aren't in ascending order!\n"
-msgstr "Liste de localisation dans la ssection .debug_info ne sont pas en ordre ascendant!\n"
-
-#: dwarf.c:2375
-msgid "No location lists in .debug_info section!\n"
-msgstr "Pas de liste de localisation dans la section .debug_info!\n"
-
-#: dwarf.c:2379
-#, c-format
-msgid "Location lists in %s section start at 0x%lx\n"
-msgstr "Listes de localisation dans la section %s qui débute à 0x%lx\n"
-
-#: dwarf.c:2383
-#, c-format
-msgid " Offset Begin End Expression\n"
-msgstr " Décalage Début Fin Expression\n"
-
-#: dwarf.c:2414
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "Il y a un trou [0x%lx - 0x%lx] dans la section .debug_loc.\n"
-
-#: dwarf.c:2417
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "Il y a un chevauchement [0x%lx - 0x%lx] dans la section .debug_loc.\n"
-
-#: dwarf.c:2424
-#, c-format
-msgid "Offset 0x%lx is bigger than .debug_loc section size.\n"
-msgstr "Le décalage 0x%lx est plus grand que la taille de la section .debug_loc.\n"
-
-#: dwarf.c:2433 dwarf.c:2460 dwarf.c:2470
-#, c-format
-msgid "Location list starting at offset 0x%lx is not terminated.\n"
-msgstr "La liste de localisation débutan à l'adresse 0x%lx n'est pas terminée.\n"
-
-#: dwarf.c:2445 dwarf.c:2784
-#, c-format
-msgid " %8.8lx <End of list>\n"
-msgstr " %8.8lx <Fin de liste>\n"
-
-#: dwarf.c:2453
-#, c-format
-msgid " %8.8lx %8.8lx %8.8lx (base address)\n"
-msgstr " %8.8lx %8.8lx %8.8lx (adresse de base)\n"
-
-#: dwarf.c:2487 dwarf.c:2801
-msgid " (start == end)"
-msgstr " (début == fin)"
-
-#: dwarf.c:2489 dwarf.c:2803
-msgid " (start > end)"
-msgstr " (début > fin)"
-
-#: dwarf.c:2618
-msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
-msgstr "Seuls les aranges DWARF de version 2 et 3 sont couramment supportés.\n"
-
-#: dwarf.c:2622
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Longueur %ld\n"
-
-#: dwarf.c:2623
-#, c-format
-msgid " Version: %d\n"
-msgstr " Version: %d\n"
-
-#: dwarf.c:2624
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr " Décalage dans .debug_info: %lx\n"
-
-#: dwarf.c:2625
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " Taille des pointeurs: %d\n"
-
-#: dwarf.c:2626
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr " Taille des segments: %d\n"
-
-#: dwarf.c:2628
-#, c-format
-msgid ""
-"\n"
-" Address Length\n"
-msgstr ""
-"\n"
-" Longueur d'adresse\n"
-
-#. FIXME: Should we handle this case?
-#: dwarf.c:2729
-msgid "Range lists in .debug_info section aren't in ascending order!\n"
-msgstr "Liste des étendues dans la section .debug_info n'est pas en ordre ascendant!\n"
-
-#: dwarf.c:2732
-msgid "No range lists in .debug_info section!\n"
-msgstr "Aucune liste d'étendues dans la section .debug_info!\n"
-
-#: dwarf.c:2736
-#, c-format
-msgid "Range lists in %s section start at 0x%lx\n"
-msgstr "Listes d'étendues dans la section %s débutent à 0x%lx\n"
-
-#: dwarf.c:2740
-#, c-format
-msgid " Offset Begin End\n"
-msgstr " Décalage Début Fin\n"
-
-#: dwarf.c:2765
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in %s section.\n"
-msgstr "Il y a un trou [0x%lx - 0x%lx] dans la section %s.\n"
-
-#: dwarf.c:2769
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in %s section.\n"
-msgstr "Il y a un chevauchement [0x%lx - 0x%lx] dans la section %s.\n"
-
-#: dwarf.c:2964
-#, c-format
-msgid "The section %s contains:\n"
-msgstr "La section %s contient:\n"
-
-#: dwarf.c:3608
-#, c-format
-msgid "unsupported or unknown DW_CFA_%d\n"
-msgstr "DW_CFA_%d non supporté ou inconnu\n"
-
-#: dwarf.c:3632
-#, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr "L'affichage du contenu de la section de débug %s n'est pas encore supporté.\n"
-
-#: dwarf.c:3674
-#, c-format
-msgid "%s: Error: "
-msgstr "%s: ERREUR: "
-
-#: dwarf.c:3685
-#, c-format
-msgid "%s: Warning: "
-msgstr "%s: AVERTISSEMENT: "
-
-#: emul_aix.c:51
-#, c-format
-msgid " [-g] - 32 bit small archive\n"
-msgstr " [-g] - petite archive de 32 bits\n"
-
-#: emul_aix.c:52
-#, c-format
-msgid " [-X32] - ignores 64 bit objects\n"
-msgstr " [-X32] - ignore les objets de 64 bits\n"
-
-#: emul_aix.c:53
-#, c-format
-msgid " [-X64] - ignores 32 bit objects\n"
-msgstr " [-X64] - ignore les objets de 32 bits\n"
-
-#: emul_aix.c:54
-#, c-format
-msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
-msgstr " [-X32_64] - accepter les objets de 32 et 64 bits\n"
-
-#: ieee.c:311
-msgid "unexpected end of debugging information"
-msgstr "fin inattendue des informations de débug"
-
-#: ieee.c:398
-msgid "invalid number"
-msgstr "numéro invalide"
-
-#: ieee.c:451
-msgid "invalid string length"
-msgstr "longueur de chaîne invalide"
-
-#: ieee.c:506 ieee.c:547
-msgid "expression stack overflow"
-msgstr "débordement de pile de l'expression"
-
-#: ieee.c:526
-msgid "unsupported IEEE expression operator"
-msgstr "opérateur d'espression IEEE non supporté"
-
-#: ieee.c:541
-msgid "unknown section"
-msgstr "section inconnue"
-
-#: ieee.c:562
-msgid "expression stack underflow"
-msgstr "sous dépilage de l'expression"
-
-#: ieee.c:576
-msgid "expression stack mismatch"
-msgstr "non concordance de l'expression dans la pile"
-
-#: ieee.c:613
-msgid "unknown builtin type"
-msgstr "type de construit interne inconnu"
-
-#: ieee.c:758
-msgid "BCD float type not supported"
-msgstr "type de numérotaion flottante BCD inconnue"
-
-#: ieee.c:895
-msgid "unexpected number"
-msgstr "numéro inattendu"
-
-#: ieee.c:902
-msgid "unexpected record type"
-msgstr "type d'enregistrement inattendu"
-
-#: ieee.c:935
-msgid "blocks left on stack at end"
-msgstr "des blocs sont demeurés sur la pile à la fin"
-
-#: ieee.c:1198
-msgid "unknown BB type"
-msgstr "type BB inconnu"
-
-#: ieee.c:1207
-msgid "stack overflow"
-msgstr "débordement de la pile"
-
-#: ieee.c:1230
-msgid "stack underflow"
-msgstr "sous dépilage de la pile"
-
-#: ieee.c:1342 ieee.c:1412 ieee.c:2109
-msgid "illegal variable index"
-msgstr "variable d'index illégale"
-
-#: ieee.c:1390
-msgid "illegal type index"
-msgstr "type d'index illégal"
-
-#: ieee.c:1400 ieee.c:1437
-msgid "unknown TY code"
-msgstr "code TY inconnu"
-
-#: ieee.c:1419
-msgid "undefined variable in TY"
-msgstr "variable non définie dans TY"
-
-#. Pascal file name. FIXME.
-#: ieee.c:1830
-msgid "Pascal file name not supported"
-msgstr "Nom de fichier Pascal non supporté"
-
-#: ieee.c:1878
-msgid "unsupported qualifier"
-msgstr "qualificateur non supporté"
-
-#: ieee.c:2147
-msgid "undefined variable in ATN"
-msgstr "variable non définie dans ATN"
-
-#: ieee.c:2190
-msgid "unknown ATN type"
-msgstr "type ATN inconnu"
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2312
-msgid "unsupported ATN11"
-msgstr "ATN11 non supporté"
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2339
-msgid "unsupported ATN12"
-msgstr "ATN2 non supporté"
-
-#: ieee.c:2399
-msgid "unexpected string in C++ misc"
-msgstr "chaîne inattendue dans misc en C++"
-
-#: ieee.c:2412
-msgid "bad misc record"
-msgstr "mauvais enregistrement misc"
-
-#: ieee.c:2453
-msgid "unrecognized C++ misc record"
-msgstr "enregistrement misc non reconnu en C++"
-
-#: ieee.c:2568
-msgid "undefined C++ object"
-msgstr "objet indéfini en C++"
-
-#: ieee.c:2602
-msgid "unrecognized C++ object spec"
-msgstr "spécification d'objet non reconnu en C++"
-
-#: ieee.c:2638
-msgid "unsupported C++ object type"
-msgstr "type d'objet non supporté en C++"
-
-#: ieee.c:2648
-msgid "C++ base class not defined"
-msgstr "classe de base non définie en C++"
-
-#: ieee.c:2660 ieee.c:2765
-msgid "C++ object has no fields"
-msgstr "objet n'ayant pas de champ en C++"
-
-#: ieee.c:2679
-msgid "C++ base class not found in container"
-msgstr "classe de base non repéré dans le conteneur en C++"
-
-#: ieee.c:2786
-msgid "C++ data member not found in container"
-msgstr "membre des données non repéré dans le conteneur en C++"
-
-#: ieee.c:2827 ieee.c:2977
-msgid "unknown C++ visibility"
-msgstr "visibilité C++ inconnue"
-
-#: ieee.c:2861
-msgid "bad C++ field bit pos or size"
-msgstr "mauvais champ de bit pos ou de taille en C++"
-
-#: ieee.c:2953
-msgid "bad type for C++ method function"
-msgstr "mauvais type pour le méthode d'une fonction en C++"
-
-#: ieee.c:2963
-msgid "no type information for C++ method function"
-msgstr "aucune information sur le type pour la méthode de la fonction en C++"
-
-#: ieee.c:3002
-msgid "C++ static virtual method"
-msgstr "méthode statique virtuelle en C++"
-
-#: ieee.c:3097
-msgid "unrecognized C++ object overhead spec"
-msgstr "spécification de l'en-tête de l'objet en C++ n'est pas reconnue"
-
-#: ieee.c:3136
-msgid "undefined C++ vtable"
-msgstr "vtable non définie en C++"
-
-#: ieee.c:3205
-msgid "C++ default values not in a function"
-msgstr "valeurs par défaut ne sont pas dans une fonction en C++"
-
-#: ieee.c:3245
-msgid "unrecognized C++ default type"
-msgstr "type par défaut en C++ n'est pas reconnu"
-
-#: ieee.c:3276
-msgid "reference parameter is not a pointer"
-msgstr "paramètre de la référence n'est pas un pointeur"
-
-#: ieee.c:3359
-msgid "unrecognized C++ reference type"
-msgstr "référence du type en C++ n'est pas reconnue"
-
-#: ieee.c:3441
-msgid "C++ reference not found"
-msgstr "la référence n'a pas été retrouvée en C++"
-
-#: ieee.c:3449
-msgid "C++ reference is not pointer"
-msgstr "la référence n'est pas un pointeur en C++"
-
-#: ieee.c:3475 ieee.c:3483
-msgid "missing required ASN"
-msgstr "ASN requis est absent"
-
-#: ieee.c:3510 ieee.c:3518
-msgid "missing required ATN65"
-msgstr "ATN65 requis est absent"
-
-#: ieee.c:3532
-msgid "bad ATN65 record"
-msgstr "mauvais enregistrement ATN65"
-
-#: ieee.c:4160
-#, c-format
-msgid "IEEE numeric overflow: 0x"
-msgstr "débordement numériquie IEEE: Ox"
-
-#: ieee.c:4204
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr "débordement de la longueur de la chaîne IEEE: %u\n"
-
-#: ieee.c:5203
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr "taille de type d'entier IEEE non supporté %u\n"
-
-#: ieee.c:5237
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr "taille de type de nombre IEEE en notation flottante non supporté %u\n"
-
-#: ieee.c:5271
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr "taille de nombre complexe IEEE non supportée %u\n"
-
-#: nlmconv.c:269 srconv.c:1813
-msgid "input and output files must be different"
-msgstr "fichiers d'entrée et de sortie doivent être différents"
-
-#: nlmconv.c:316
-msgid "input file named both on command line and with INPUT"
-msgstr "fichier d'entrée nommé à la fois sur la ligne de commande et dans la champ INPUT"
-
-#: nlmconv.c:325
-msgid "no input file"
-msgstr "aucun fichier d'entrée"
-
-#: nlmconv.c:355
-msgid "no name for output file"
-msgstr "aucun nom pour le fichier de sortie"
-
-#: nlmconv.c:369
-msgid "warning: input and output formats are not compatible"
-msgstr "AVERTISSEMENT: les formats d'entrée et de sortie sont incompatibles"
-
-#: nlmconv.c:398
-msgid "make .bss section"
-msgstr "générer la section .bss"
-
-#: nlmconv.c:407
-msgid "make .nlmsections section"
-msgstr "générer la section .nlmsections"
-
-#: nlmconv.c:409
-msgid "set .nlmsections flags"
-msgstr "initialiser les fanions .nlmsections"
-
-#: nlmconv.c:437
-msgid "set .bss vma"
-msgstr "initialiser le vma de la section .bss"
-
-#: nlmconv.c:444
-msgid "set .data size"
-msgstr "initialiser la taille de la section .data"
-
-#: nlmconv.c:624
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr "AVERTISSEMENT: symbole %s importé mais n'est pas dans la liste d'importation"
-
-#: nlmconv.c:644
-msgid "set start address"
-msgstr "initialiser l'adresse de départ"
-
-#: nlmconv.c:693
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr "AVERTISSEMENT: procédure START %s n'est pas définie"
-
-#: nlmconv.c:695
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr "AVERTISSEMENT: procédure EXIT %s n'est pas définie"
-
-#: nlmconv.c:697
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr "AVERTISSEMENT: procédure CHECK %s n'est pas définie"
-
-#: nlmconv.c:718 nlmconv.c:907
-msgid "custom section"
-msgstr "section « custom »"
-
-#: nlmconv.c:739 nlmconv.c:936
-msgid "help section"
-msgstr "section d'aide"
-
-#: nlmconv.c:761 nlmconv.c:954
-msgid "message section"
-msgstr "section message"
-
-#: nlmconv.c:777 nlmconv.c:987
-msgid "module section"
-msgstr "section module"
-
-#: nlmconv.c:797 nlmconv.c:1003
-msgid "rpc section"
-msgstr "section rpc"
-
-#. There is no place to record this information.
-#: nlmconv.c:833
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr "%s: AVERTISSEMENT: les librairies partagées ne peuvent avoir des données non initialisées"
-
-#: nlmconv.c:854 nlmconv.c:1022
-msgid "shared section"
-msgstr "section partagée"
-
-#: nlmconv.c:862
-msgid "warning: No version number given"
-msgstr "AVERTISSEMENT: aucun numéro de version fourni"
-
-#: nlmconv.c:902 nlmconv.c:931 nlmconv.c:949 nlmconv.c:998 nlmconv.c:1017
-#, c-format
-msgid "%s: read: %s"
-msgstr "%s: lu: %s"
-
-#: nlmconv.c:924
-msgid "warning: FULLMAP is not supported; try ld -M"
-msgstr "AVERTISSEMENT: FULLMAP n'est pas supporté; essayer ld -M"
-
-#: nlmconv.c:1100
-#, c-format
-msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
-msgstr "Usage: %s [options] fichier_entrée [fichier_sortie]\n"
-
-#: nlmconv.c:1101
-#, c-format
-msgid " Convert an object file into a NetWare Loadable Module\n"
-msgstr "Convertir un fichier objet en un module NetWare Loadable\n"
-
-#: nlmconv.c:1102
-#, c-format
-msgid ""
-" The options are:\n"
-" -I --input-target=<bfdname> Set the input binary file format\n"
-" -O --output-target=<bfdname> Set the output binary file format\n"
-" -T --header-file=<file> Read <file> for NLM header information\n"
-" -l --linker=<linker> Use <linker> for any linking\n"
-" -d --debug Display on stderr the linker command line\n"
-" @<file> Read options from <file>.\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-msgstr ""
-"Les options sont:\n"
-" -I --input-target=<nombfd> sélectionner le format binaire du fichier d'entrée\n"
-" -O --output-target=<nombfd> sélectionner le format binaire du fichier de sortie\n"
-" -T --header-file=<fichier> lire les informations NLM du <fichier>\n"
-" -l --linker=<lien> utiliser l'éditeur de <liens> pour toutes éditions\n"
-" -d --debug afficher la ligne de commande sur stderr\n"
-" @<fichier> lire les options à partir du <fichier>\n"
-" -h --help afficher l'aide-mémoire\n"
-" -V --version afficher le nom et la version du logiciel\n"
-
-#: nlmconv.c:1143
-#, c-format
-msgid "support not compiled in for %s"
-msgstr "soutien non compilé pour %s"
-
-#: nlmconv.c:1180
-msgid "make section"
-msgstr "section make"
-
-#: nlmconv.c:1194
-msgid "set section size"
-msgstr "initialisation de la taille de la section"
-
-#: nlmconv.c:1200
-msgid "set section alignment"
-msgstr "initialisation de l'alignement de la section"
-
-#: nlmconv.c:1204
-msgid "set section flags"
-msgstr "initialisation des fanions de la section"
-
-#: nlmconv.c:1215
-msgid "set .nlmsections size"
-msgstr "initialisation de la taille de .nlmsections"
-
-#: nlmconv.c:1296 nlmconv.c:1304 nlmconv.c:1313 nlmconv.c:1318
-msgid "set .nlmsection contents"
-msgstr "initialisation du contenu de .nlmsection"
-
-#: nlmconv.c:1797
-msgid "stub section sizes"
-msgstr "taille de la section stub"
-
-#: nlmconv.c:1844
-msgid "writing stub"
-msgstr "écriture du stub"
-
-#: nlmconv.c:1928
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr "relocalisation relative sur PC non résolue de %s"
-
-#: nlmconv.c:1992
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr "débordement lors de la relocalisation de %s"
-
-#: nlmconv.c:2119
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr "%s: échec d'exécution de %s :"
-
-#: nlmconv.c:2134
-#, c-format
-msgid "Execution of %s failed"
-msgstr "Échec d'exécution de %s"
-
-#: nm.c:224 size.c:82 strings.c:708
-#, c-format
-msgid "Usage: %s [option(s)] [file(s)]\n"
-msgstr "Usage: %s [options] fichiers\n"
-
-#: nm.c:225
-#, c-format
-msgid " List symbols in [file(s)] (a.out by default).\n"
-msgstr "Afficher les symboles des [fichiers] (a.out par défaut).\n"
-
-#: nm.c:226
-#, c-format
-msgid ""
-" The options are:\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -S, --print-size Print size of defined symbols\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" --special-syms Include special symbols in the output\n"
-" --synthetic Display synthetic symbols as well\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -X 32_64 (ignored)\n"
-" @FILE Read options from FILE\n"
-" -h, --help Display this information\n"
-" -V, --version Display this program's version number\n"
-"\n"
-msgstr ""
-"Les options sont:\n"
-" -a, --debug-syms afficher seulement les symboles de débug\n"
-" -A, --print-file-name afficher le nom du fichier d'entrée avant chaque symbole\n"
-" -B identique à --format=bsd\n"
-" -C, --demangle[=STYLE] décoder les noms des symboles de bas niveau en noms de ceux\n"
-" du niveau usager. Le STYLE, si spécifié, peut être « auto »\n"
-" (par défaut), « gnu », « lucid », « arm », « hp », « edg » ou « gnu-new-abi »,\n"
-" --no-demangle ne pas encoder par mutilation les noms des symboles de bas niveau\n"
-" -D, --dynamic afficher les symboles dynamiques au lieu des symboles normaux\n"
-" --defined-only afficher seulement les symboles définis\n"
-" -e (ignoré)\n"
-" -f, --format=FORMAT utiliser le FORMAT de sortie qui peut être « bsd » (par défaut),\n"
-" « sysv » ou « posix ».\n"
-" -g, --extern-only afficher seulement les symboles externes\n"
-" -l, --line-numbers utiliser les informations de débug pour repérer le nom de fichier\n"
-" et un numéro de ligne pour chaque symbole\n"
-" -n, --numeric-sort trier les symboles numériquement par adresse\n"
-" -o identique à -A\n"
-" -p, --no-sort ne pas trier les symboles\n"
-" -P, --portability identique à --format=posix\n"
-" -r, --reverse-sort trier en ordre inverse\n"
-" -S, --print-size afficher la taille des symboles définis\n"
-" -s, --print-armap inclure un index pour les symboles à partir des membres de l'archive\n"
-" --size-sort trier les symboles par leur taille\n"
-" --special-syms inclure les symboles spéciaux sur la sortie\n"
-" --synthetic afficher les symboles synthétiques\n"
-" -t, --radix=BASE utiliser la BASE numérique pour afficher la valeur des symboles\n"
-" --target=NOM_BFD spécifier la cible du format de l'objet par le NOM_BFD\n"
-" -u, --undefined-only afficher seulement les symboles indéfinis\n"
-" -V, --version afficher le nom et la version du logiciel\n"
-" -X 32_64 (ignoré)\n"
-" @<fichier> lire les options à partir du <fichier>\n"
-" -h --help afficher l'aide-mémoire\n"
-" -V --version afficher le nom et la version du logiciel\n"
-"\n"
-
-#: nm.c:263 objdump.c:236
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr "Rapporter toutes anomalies à %s\n"
-
-#: nm.c:295
-#, c-format
-msgid "%s: invalid radix"
-msgstr "%s: base numérique invalide"
-
-#: nm.c:319
-#, c-format
-msgid "%s: invalid output format"
-msgstr "%s: format de sortie invalide"
-
-#: nm.c:340 readelf.c:6623 readelf.c:6659
-#, c-format
-msgid "<processor specific>: %d"
-msgstr "<spécificités du processor>: %d"
-
-#: nm.c:342 readelf.c:6626 readelf.c:6671
-#, c-format
-msgid "<OS specific>: %d"
-msgstr "<spécificités du système d'exploitation>: %d"
-
-#: nm.c:344 readelf.c:6628 readelf.c:6674
-#, c-format
-msgid "<unknown>: %d"
-msgstr "<inconnu>: %d"
-
-#: nm.c:381
-#, c-format
-msgid ""
-"\n"
-"Archive index:\n"
-msgstr ""
-"\n"
-"Indexe de l'archive:\n"
-
-#: nm.c:1227
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Symboles indéfinis dans %s:\n"
-"\n"
-
-#: nm.c:1229
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Symboles de %s:\n"
-"\n"
-
-#: nm.c:1231 nm.c:1282
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"Nom Valeur Classe Type Taille Ligne Section\n"
-"\n"
-
-#: nm.c:1234 nm.c:1285
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"Nom Valeur Classe Type Taille Ligne Section\n"
-"\n"
-
-#: nm.c:1278
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Symboles indéfinis dans %s[%s]:\n"
-"\n"
-
-#: nm.c:1280
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Symboles de %s[%s]:\n"
-"\n"
-
-#: nm.c:1584
-msgid "Only -X 32_64 is supported"
-msgstr "Seul -X 32_64 est supporté"
-
-#: nm.c:1604
-msgid "Using the --size-sort and --undefined-only options together"
-msgstr "Utiliser ensemble les options --size-sort et --undefined-only"
-
-#: nm.c:1605
-msgid "will produce no output, since undefined symbols have no size."
-msgstr "ne produira aucune sortie étant donnée que les symboles n'ont aucune taille."
-
-#: nm.c:1633
-#, c-format
-msgid "data size %ld"
-msgstr "taille des donnée %ld"
-
-#: objcopy.c:401 srconv.c:1721
-#, c-format
-msgid "Usage: %s [option(s)] in-file [out-file]\n"
-msgstr "Usage: %s [options] fichier_d_entrée [fichier_de_sortie]\n"
-
-#: objcopy.c:402
-#, c-format
-msgid " Copies a binary file, possibly transforming it in the process\n"
-msgstr "Copier un fichier binaire, possiblement le transformer durant le traitement\n"
-
-#: objcopy.c:403 objcopy.c:495
-#, c-format
-msgid " The options are:\n"
-msgstr " Les options sont:\n"
-
-#: objcopy.c:404
-#, c-format
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -B --binary-architecture <arch> Set arch of output file, when input is binary\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" --debugging Convert debugging information, if possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation information\n"
-" -g --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" --strip-unneeded-symbol <name>\n"
-" Do not copy symbol <name> unless needed by\n"
-" relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -K --keep-symbol <name> Do not strip symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-" --globalize-symbol <name> Force symbol <name> to be marked as a global\n"
-" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-" --weaken Force all global symbols to be marked as weak\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address <addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to <flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to output\n"
-" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-" --change-leading-char Force output format's leading character style\n"
-" --remove-leading-char Remove leading character from global symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --redefine-syms <file> --redefine-sym for all symbol pairs \n"
-" listed in <file>\n"
-" --srec-len <number> Restrict the length of generated Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-" --strip-symbols <file> -N for all symbols listed in <file>\n"
-" --strip-unneeded-symbols <file>\n"
-" --strip-unneeded-symbol for all symbols listed\n"
-" in <file>\n"
-" --keep-symbols <file> -K for all symbols listed in <file>\n"
-" --localize-symbols <file> -L for all symbols listed in <file>\n"
-" --globalize-symbols <file> --globalize-symbol for all in <file>\n"
-" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-" --weaken-symbols <file> -W for all symbols listed in <file>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" --writable-text Mark the output text as writable\n"
-" --readonly-text Make the output text write protected\n"
-" --pure Mark the output file as demand paged\n"
-" --impure Mark the output file as impure\n"
-" --prefix-symbols <prefix> Add <prefix> to start of every symbol name\n"
-" --prefix-sections <prefix> Add <prefix> to start of every section name\n"
-" --prefix-alloc-sections <prefix>\n"
-" Add <prefix> to start of every allocatable\n"
-" section name\n"
-" -v --verbose List all object files modified\n"
-" @<file> Read options from <file>\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-msgstr ""
-" -I --input-target <nombfd> assumer que le fichier d'entrée est de format <nombfd>\n"
-" -O --output-target <nombfd> créer un fichier de sortie de format <nombfd>\n"
-" -B --binary-architecture <arch> sélectionner l'architecture du fichier de sortie lorsque binaire\n"
-" -F --target <nombfd> initialiser les formats d'entrée et de sortie à <nombfd>\n"
-" --debugging convertir les informations de débug, si possible\n"
-" -p --preserve-dates conserver les dates d'accès et de modification de fichiers\n"
-" -j --only-section <nom> copier seulement la section <nom> dans le fichier de sortie\n"
-" --add-gnu-debuglink=<fichier> ajouter la section .gnu_debuglink d'édition de liens au <fichier>\n"
-" -R --remove-section <nom> retirer la section <nom> du fichier de sortie\n"
-" -S --strip-all retirer tous les symboles et les informations de relocalisation\n"
-" -g --strip-debug retirer tous les symboles de débug\n"
-" --strip-unneeded retirer tous les symboles qui ne sont pas nécessaires pour la relocalisation\n"
-" -N --strip-symbol <nom> ne pas copier le symbole <nom>\n"
-" --strip-unneeded-symbol <name>\n"
-" ne pas copier le symbole <nom> à moins qu'il soit\n"
-" nécessaire à la relocalisation\n"
-" --only-keep-debug élaguer tout sauf les informations de mise au point\n"
-" -K --keep-symbol <nom> copier seulement le symbole <nom>\n"
-" -L --localize-symbol <nom> marquer le symbole <nom> comme symbole local\n"
-" -G --keep-global-symbol <nom> localiser tous les symboles sauf celui ayant pour <nom>\n"
-" -W --weaken-symbol <nom> marquer le symbole <nom> comme symbole faible\n"
-" --weaken marquer tous les symboles globaux comme symboles faibles\n"
-" -x --discard-all retirer tous les symboles qui ne sont pas globaux\n"
-" -X --discard-locals retirer tous les symboles générés par le compilateur\n"
-" -i --interleave <nombre> copier seulement 1 octet à chaque <nombre> d'octets\n"
-" -b --byte <numéro> sélectionner l'octet <numéro> dans chaque bloc intercalé\n"
-" --gap-fill <valeur> remplir les trous entre les sections avec la <valeur>\n"
-" --pad-to <adresse> remplir la dernière section jusqu'à l'<adresse>\n"
-" --set-start <adresse> utiliser l'<adresse> de départ\n"
-" {--change-start|--adjust-start} <incrément>\n"
-" ajouter l'<incrément> à l'adresse de départ\n"
-" {--change-addresses|--adjust-vma} <incrément>\n"
-" ajouter l'<incrément> aux adresses LMA, VMA et de départ\n"
-" {--change-section-address|--adjust-section-vma} <nom>{=|+|-}<valeur>\n"
-" modifier LMA et VMA de la section <nom> par la <valeur>\n"
-" --change-section-lma <nom>{=|+|-}<valeur>\n"
-" modifier LMA de la section <nom> par la <valeur>\n"
-" --change-section-vma <nom>{=|+|-}<valeur>\n"
-" modifier VMA de la section <nom> par la <valeur>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" avertir si le nom de la section n'existe pas\n"
-" --set-section-flags <nom>=<fanions>\n"
-" initialiser les propriétés de la section <nom> avec les <fanions>\n"
-" --add-section <nom>=<fichier> ajouter la section <nom> repérée dans le <fichier> vers la sortie\n"
-" --rename-section <anc>=<nou>[,<fanions>] renommer l'<ancienne> section à la <nouvelle>\n"
-" --change-leading-char forcer le format de sortie du style des caractères de préfixe\n"
-" --remove-leading-char retirer les caractères de préfixe des symboles globaux\n"
-" --redefine-sym <ancien>=<nouveau>\n"
-" redéfinir le nom du symbole <ancien> à <nouveau>\n"
-" --srec-len <nombre> restreindre la longueur des Srecords générés\n"
-" --srec-forceS3 restreindre le type de Srecords générés à S3\n"
-" --strip-symbols <fichier> -N pour tous les symboles listés dans le <fichier>\n"
-" --keep-symbols <fichier> -K pour tous les symboles listés dans le <fichier>\n"
-" --localize-symbols <fichier> -L pour tous les symboles listés dans le <fichier>\n"
-" --keep-global-symbols <fichier>\n"
-" -G pour tous les symboles listés dans le <fichier>\n"
-" --weaken-symbols <fichier> -W pour tous les symboles listés dans le <fichier>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" -v --verbose afficher la liste de tous les objets modifiés\n"
-" @<fichier> lire les options à partir du <fichier>\n"
-" -V --version afficher le nom et la version du logiciel\n"
-" -h --help afficher l'aide-mémoire\n"
-
-#: objcopy.c:493
-#, c-format
-msgid "Usage: %s <option(s)> in-file(s)\n"
-msgstr "Usage: %s <options> fichiers\n"
-
-#: objcopy.c:494
-#, c-format
-msgid " Removes symbols and sections from files\n"
-msgstr "Enlever les symboles et les sections des fichiers\n"
-
-#: objcopy.c:496
-#, c-format
-msgid ""
-" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target=<bfdname> Create an output file in format <bfdname>\n"
-" -F --target=<bfdname> Set both input and output format to <bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -R --remove-section=<name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation information\n"
-" -g -S -d --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -N --strip-symbol=<name> Do not copy symbol <name>\n"
-" -K --keep-symbol=<name> Do not strip symbol <name>\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr ""
-" -I --input-target <nombfd> assumer que le format du fichier d'entrée est <nombdf>\n"
-" -O --output-target <nombfd> créer un fichier de sortie ayant le format <nombfd>\n"
-" -F --target <nombfd> utiliser à l'entrée et à la sortie le format <nombfd>\n"
-" -p --preserve-dates préserver les dates d'accès et de modification lors de la copie\n"
-" -R --remove-section=<nom> retirer la section <nom> du fichier de sortie\n"
-" -s --strip-all retirer tous les symboles et les informations de relocalisation\n"
-" -g -S -d --strip-debug retirer tous les symboles de débug\n"
-" --strip-unneeded retirer tous les symboles qui ne sont pas nécessaire à la relocalisation\n"
-" --only-keep-debug retirer tous les symboles sauf les informations de mise au point\n"
-" -N --strip-symbol <nom> ne pas copier le symbole <nom>\n"
-" -K --keep-symbol <nom> copier seulement le symbole <nom>\n"
-" -w --wildcard permettre tous les symboles dans la comparaison\n"
-" -x --discard-all retirer tous les symboles qui ne sont pas globaux\n"
-" -X --discard-locals retirer tous les symboles qui sont générés par le compilateur\n"
-" -v --verbose afficher tous les fichiers objets modifiés\n"
-" -V --version afficher le nom et la version du logiciel\n"
-" -h --help afficher l'aide-mémoire\n"
-" --info lister le format des objets et les architectures supportés\n"
-" -o <fichier> placer la sortie élaguée dans le <fichier>\n"
-
-#: objcopy.c:568
-#, c-format
-msgid "unrecognized section flag `%s'"
-msgstr "fanion de section non reconnnu « %s »"
-
-#: objcopy.c:569
-#, c-format
-msgid "supported flags: %s"
-msgstr "fanions supportés: %s"
-
-#: objcopy.c:646
-#, c-format
-msgid "cannot open '%s': %s"
-msgstr "ne peut ouvrir: « %s »: %s"
-
-#: objcopy.c:649 objcopy.c:2722
-#, c-format
-msgid "%s: fread failed"
-msgstr "%s: fread en échec"
-
-#: objcopy.c:722
-#, c-format
-msgid "%s:%d: Ignoring rubbish found on this line"
-msgstr "%s:%d: rebus ignoré trouvé sur la ligne"
-
-#: objcopy.c:996
-#, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr "%s: re-définition multiples du symbole « %s »"
-
-#: objcopy.c:1000
-#, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr "%s: symbole « %s » cible plus d'une re-définition"
-
-#: objcopy.c:1028
-#, c-format
-msgid "couldn't open symbol redefinition file %s (error: %s)"
-msgstr "ne peut ouvrir le fichier de redéfinition de symboles %s (erreur: %s)"
-
-#: objcopy.c:1106
-#, c-format
-msgid "%s:%d: garbage found at end of line"
-msgstr "%s:%d: rebus à la fin de la ligne"
-
-#: objcopy.c:1109
-#, c-format
-msgid "%s:%d: missing new symbol name"
-msgstr "%s:%d: nom du nouveau symbole manquant"
-
-#: objcopy.c:1119
-#, c-format
-msgid "%s:%d: premature end of file"
-msgstr "%s:%d: fin de fichier prématuré"
-
-#: objcopy.c:1145
-#, c-format
-msgid "stat returns negative size for `%s'"
-msgstr "stat() a retourné une taille négative for « %s »"
-
-#: objcopy.c:1157
-#, c-format
-msgid "copy from `%s' [unknown] to `%s' [unknown]\n"
-msgstr "copier à partir de « %s » [inconnu] vers « %s » [inconnu]\n"
-
-#: objcopy.c:1212
-msgid "Unable to change endianness of input file(s)"
-msgstr "Incapable de changer de systèmes d'encodage (poids fort- faible) des fichiers d'entrée"
-
-#: objcopy.c:1221
-#, c-format
-msgid "copy from `%s' [%s] to `%s' [%s]\n"
-msgstr "copier de « %s » [%s] vers « %s » [%s]\n"
-
-#: objcopy.c:1258 objcopy.c:1715
-#, c-format
-msgid "Unable to recognise the format of the input file `%s'"
-msgstr "Incapable de reconnaître le format du fichier d'entrée « %s »"
-
-#: objcopy.c:1261
-#, c-format
-msgid "Warning: Output file cannot represent architecture `%s'"
-msgstr "AVERTISSEMENT: fichier de sortie ne peut représenter l'architecture « %s »"
-
-#: objcopy.c:1305
-#, c-format
-msgid "can't create section `%s': %s"
-msgstr "Ne peut créer la section « %s »: %s"
-
-#: objcopy.c:1356
-msgid "there are no sections to be copied!"
-msgstr "Il n'y a pas de section à copier!"
-
-#: objcopy.c:1402
-#, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr "Ne peut remplir le vide après %s: %s"
-
-#: objcopy.c:1427
-#, c-format
-msgid "Can't add padding to %s: %s"
-msgstr "Ne peut ajouter de remplissage pour %s: %s"
-
-#: objcopy.c:1594
-#, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr "%s: erreur de copie des données privées BFD: %s"
-
-#: objcopy.c:1605
-msgid "unknown alternate machine code, ignored"
-msgstr "code machine alternatif inconnu, ignoré"
-
-#: objcopy.c:1635 objcopy.c:1665
-#, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr "ne peut créer le répertoire mkdir %s pour copie d'archivage (erreur: %s)"
-
-#: objcopy.c:1787
-#, c-format
-msgid "error: the input file '%s' is empty"
-msgstr "ERREUR: le fichier d'entrée « %s » est vide"
-
-#: objcopy.c:1889
-#, c-format
-msgid "Multiple renames of section %s"
-msgstr "Changement multiples de noms de la section %s"
-
-#: objcopy.c:1940
-msgid "private header data"
-msgstr "données d'en-tête privée"
-
-#: objcopy.c:1948
-#, c-format
-msgid "%s: error in %s: %s"
-msgstr "%s: ERREUR dans %s: %s"
-
-#: objcopy.c:2007
-msgid "making"
-msgstr "génération"
-
-#: objcopy.c:2022
-msgid "size"
-msgstr "taille"
-
-#: objcopy.c:2036
-msgid "vma"
-msgstr "vma"
-
-#: objcopy.c:2061
-msgid "alignment"
-msgstr "alignement"
-
-#: objcopy.c:2083
-msgid "private data"
-msgstr "données privées"
-
-#: objcopy.c:2091
-#, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr "%s: section « %s »: ERREUR dans %s: %s"
-
-#: objcopy.c:2363
-#, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr "%s: ne peut créer la section de débug: %s"
-
-#: objcopy.c:2377
-#, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr "%s: ne peut initialiser le contenu de la section de débug: %s"
-
-#: objcopy.c:2386
-#, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr "%s: ne sait comment écrire les informations de débug de %s"
-
-#: objcopy.c:2561
-msgid "byte number must be non-negative"
-msgstr "le nombre d'octet ne peut être négatif"
-
-#: objcopy.c:2571
-msgid "interleave must be positive"
-msgstr "l'intercalage doit être positif"
-
-#: objcopy.c:2591 objcopy.c:2599
-#, c-format
-msgid "%s both copied and removed"
-msgstr "%s les deux doivent être copiés et enlevés"
-
-#: objcopy.c:2696 objcopy.c:2767 objcopy.c:2867 objcopy.c:2898 objcopy.c:2922
-#: objcopy.c:2926 objcopy.c:2946
-#, c-format
-msgid "bad format for %s"
-msgstr "mauvais format pour %s"
-
-#: objcopy.c:2717
-#, c-format
-msgid "cannot open: %s: %s"
-msgstr "ne peut ouvrir: %s: %s"
-
-#: objcopy.c:2836
-#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "AVERTISSEMENT: réduction du remplissage de 0x%s à 0x%x"
-
-#: objcopy.c:3000
-msgid "alternate machine code index must be positive"
-msgstr "le code alternatif d'index du code machine doit être positif"
-
-#: objcopy.c:3058
-msgid "byte number must be less than interleave"
-msgstr "le nombre d'octets ne peut être plus petit que celui de l'intercalage"
-
-#: objcopy.c:3088
-#, c-format
-msgid "architecture %s unknown"
-msgstr "architecture %s inconnue"
-
-#: objcopy.c:3092
-msgid "Warning: input target 'binary' required for binary architecture parameter."
-msgstr "AVERTISSEMENT: la cible d'entrée « binary » requiert un paramètre pour une architecture binaire."
-
-#: objcopy.c:3093
-#, c-format
-msgid " Argument %s ignored"
-msgstr " Argument %s ignoré"
-
-#: objcopy.c:3099
-#, c-format
-msgid "warning: could not locate '%s'. System error message: %s"
-msgstr "AVERTISSEMENT: ne peut localiser '%s'. Message d'erreur système: %s"
-
-#: objcopy.c:3141 objcopy.c:3155
-#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr "%s %s%c0x%s jamais utilisé"
-
-#: objdump.c:178
-#, c-format
-msgid "Usage: %s <option(s)> <file(s)>\n"
-msgstr "Usage: %s <options> <fichiers>\n"
-
-#: objdump.c:179
-#, c-format
-msgid " Display information from object <file(s)>.\n"
-msgstr "Afficher les informations depuis les <fichiers> objet.\n"
-
-#: objdump.c:180
-#, c-format
-msgid " At least one of the following switches must be given:\n"
-msgstr "Au moins un des commutateurs suivants doit être fourni:\n"
-
-#: objdump.c:181
-#, c-format
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -e, --debugging-tags Display debug information using ctags style\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -W, --dwarf Display DWARF info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" @<file> Read options from <file>\n"
-" -v, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-" -a, --archive-headers afficher l'information de l'en-tête de l'archive\n"
-" -f, --file-headers afficher le contenu global du fichier d'en-tête\n"
-" -p, --private-headers afficher le format spécifique du contenu de l'en-tête de l'objet\n"
-" -h, --[section-]headers afficher le contenu des en-têtes de section\n"
-" -x, --all-headers afficher le contenu de toutes les en-têtes\n"
-" -d, --disassemble afficher le contenu en assembleur des sections exécutables\n"
-" -D, --disassemble-all afficher le contenu en assembleur de toutes les sections\n"
-" -S, --source inter-mêler le code source avec le déassemblage\n"
-" -s, --full-contents afficher le contenu complet de toutes les sections voulus\n"
-" -g, --debugging afficher les informations de mise au point du fichier objet\n"
-" -e, --debugging-tags afficher les informations de mise au point en utilisant le style ctags\n"
-" -G, --stabs afficher (en format brut) toutes les infos à inclure du fichier\n"
-" -t, --syms afficher le contenu de(s) table(s) de symboles\n"
-" -T, --dynamic-syms afficher le contenu de la table dynamique de symboles\n"
-" -r, --reloc afficher les entrées de relocalisation du fichier\n"
-" -R, --dynamic-reloc afficher les entrées dynamiques de relocalisation du fichier\n"
-" @<fichier> lire les options à partir du <fichier>\n"
-" -V, --version afficher le nom et la version du logiciel\n"
-" -i, --info afficher les formats objets et les architectures supportées\n"
-" -H, --help afficher cette information\n"
-
-#: objdump.c:206
-#, c-format
-msgid ""
-"\n"
-" The following switches are optional:\n"
-msgstr ""
-"\n"
-" Les commutateurs suivants sont optionnels:\n"
-
-#: objdump.c:207
-#, c-format
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -I, --include=DIR Add DIR to search list for source files\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', `gnu',\n"
-" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whose address is >= ADDR\n"
-" --stop-address=ADDR Only process data whose address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-" --special-syms Include special symbols in symbol dumps\n"
-"\n"
-msgstr ""
-" -b, --target=NOMBFD spécifier le format de l'objet cible comme NOMBFD\n"
-" -m, --architecture=MACHINE spécifier l'architecture cible de la MACHINE\n"
-" -j, --section=NOM afficher seulement les informations de la section du NOM\n"
-" -M, --disassembler-options=OPT relayer l'OPTion au dé-assembleur\n"
-" -EB --endian=big assumer le format « big endian » lors du dé-assemblage\n"
-" -EL --endian=little assumer le format « little endian » lors du dé-assemblage\n"
-" --file-start-context inclure le contexte à partir du début du fichier (avec -S)\n"
-" -I, --include=RÉPERTOIRE ajouter le répertoire à la liste de recherche des fichiers sources\n"
-" -l, --line-numbers inclure les numéros de ligne et les noms de fichier dans la sortie\n"
-" -C, --demangle[=STYLE] décoder les mutilations/traitements des noms de symboles\n"
-" Le STYLE, si spécifé, peut être « auto », « gnu »,\n"
-" « lucid », « arm », « hp », « edg », ou « gnu-v3 »,\n"
-" « gnu-new-abi » ou « gnat »\n"
-" -w, --wide formatter la sortie pour plus de 80 colonnes\n"
-" -z, --disassemble-zeroes ne pas escamoter les blocs de zéros lors du dé-assemblage\n"
-" --start-address=ADR traiter seulement les données dont les adresses sont >= ADR\n"
-" --stop-address=ADR traiter seulement les données dont les adresses sont <= ADR\n"
-" --prefix-addresses afficher les adresses complètes dans le dé-assemblage\n"
-" --[no-]show-raw-insn afficher en hexadécimale le dé-assemblage symbolique\n"
-" --adjust-vma=DÉCALAGE ajouter un DÉCALAGE à toutes les adresses affichés des sections\n"
-" --special-syms inclure les symboles spéciaux dans la vidange de symboles\n"
-"\n"
-
-#: objdump.c:389
-#, c-format
-msgid "Sections:\n"
-msgstr "Sections:\n"
-
-#: objdump.c:392 objdump.c:396
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idx Nom Taille VMA LMA Fich off Algn"
-
-#: objdump.c:398
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idx Nom Taille VMA LMA Fich off Algn"
-
-#: objdump.c:402
-#, c-format
-msgid " Flags"
-msgstr " Fanions"
-
-#: objdump.c:404
-#, c-format
-msgid " Pg"
-msgstr " Pg"
-
-#: objdump.c:447
-#, c-format
-msgid "%s: not a dynamic object"
-msgstr "%s: n'est pas un objet dynamique"
-
-#: objdump.c:1735
-#, c-format
-msgid "Disassembly of section %s:\n"
-msgstr "Déassemblage de la section %s:\n"
-
-#: objdump.c:1897
-#, c-format
-msgid "Can't use supplied machine %s"
-msgstr "Ne peut utiliser la machine %s"
-
-#: objdump.c:1916
-#, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr "Ne peut déassembler pour l'architecture %s\n"
-
-#: objdump.c:2006
-#, c-format
-msgid ""
-"\n"
-"Can't get contents for section '%s'.\n"
-msgstr ""
-"\n"
-"Ne peut obtenir le contenu de la section « %s ».\n"
-
-#: objdump.c:2143
-#, c-format
-msgid ""
-"No %s section present\n"
-"\n"
-msgstr ""
-"Aucune section %s présente\n"
-"\n"
-
-#: objdump.c:2152
-#, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr "Lecture de la section %s de %s a échouée: %s"
-
-#: objdump.c:2196
-#, c-format
-msgid ""
-"Contents of %s section:\n"
-"\n"
-msgstr ""
-"Contenu de la section %s:\n"
-"\n"
-
-#: objdump.c:2323
-#, c-format
-msgid "architecture: %s, "
-msgstr "architecture: %s, "
-
-#: objdump.c:2326
-#, c-format
-msgid "flags 0x%08x:\n"
-msgstr "fanions 0x%08x:\n"
-
-#: objdump.c:2340
-#, c-format
-msgid ""
-"\n"
-"start address 0x"
-msgstr ""
-"\n"
-"adresse de départ 0x"
-
-#: objdump.c:2380
-#, c-format
-msgid "Contents of section %s:\n"
-msgstr "Contenu de la section %s:\n"
-
-#: objdump.c:2505
-#, c-format
-msgid "no symbols\n"
-msgstr "aucun symbole\n"
-
-#: objdump.c:2512
-#, c-format
-msgid "no information for symbol number %ld\n"
-msgstr "pas d'information pour le symbol numéro %ld\n"
-
-#: objdump.c:2515
-#, c-format
-msgid "could not determine the type of symbol number %ld\n"
-msgstr "incapable de déterminer le type du symbole numéro %ld\n"
-
-#: objdump.c:2788
-#, c-format
-msgid ""
-"\n"
-"%s: file format %s\n"
-msgstr ""
-"\n"
-"%s: format de fichier %s\n"
-
-#: objdump.c:2845
-#, c-format
-msgid "%s: printing debugging information failed"
-msgstr "%s: échec d'affichage des information de débug"
-
-#: objdump.c:2936
-#, c-format
-msgid "In archive %s:\n"
-msgstr "Dans l'archive %s:\n"
-
-#: objdump.c:3058
-msgid "unrecognized -E option"
-msgstr "option -E non reconnue"
-
-#: objdump.c:3069
-#, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr "type non reconnu --endian « %s »"
-
-#: rdcoff.c:196
-#, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr "parse_coff_type: mauvais type de code 0x%x"
-
-#: rdcoff.c:404 rdcoff.c:509 rdcoff.c:697
-#, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr "bfd_coff_get_syment en échec: %s"
-
-#: rdcoff.c:420 rdcoff.c:717
-#, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr "bfd_coff_get_auxent en échec: %s"
-
-#: rdcoff.c:784
-#, c-format
-msgid "%ld: .bf without preceding function"
-msgstr "%ld: .bf aucune fonction qui précède"
-
-#: rdcoff.c:834
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr "%ld: .ef inattendu\n"
-
-#: rddbg.c:85
-#, c-format
-msgid "%s: no recognized debugging information"
-msgstr "%s: aucune information de débug reconnue"
-
-#: rddbg.c:394
-#, c-format
-msgid "Last stabs entries before error:\n"
-msgstr "Dernière entrées à inclure avant erreur:\n"
-
-#: readelf.c:264
-#, c-format
-msgid "Unable to seek to 0x%lx for %s\n"
-msgstr "Incapable de repérer 0x%lx pour %s\n"
-
-#: readelf.c:279
-#, c-format
-msgid "Out of memory allocating 0x%lx bytes for %s\n"
-msgstr "Mémoire épuisée lors de l'allocation de 0x%lx octets pour %s\n"
-
-#: readelf.c:289
-#, c-format
-msgid "Unable to read in 0x%lx bytes of %s\n"
-msgstr "Incapable de lire 0x%lx octets de %s\n"
-
-#: readelf.c:623
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr "Ne connaît pas de méthode pour la relocalisation sur l'architecture de cette machine\n"
-
-#: readelf.c:643 readelf.c:671 readelf.c:715 readelf.c:743
-msgid "relocs"
-msgstr "relocalisations"
-
-#: readelf.c:654 readelf.c:682 readelf.c:726 readelf.c:754
-msgid "out of memory parsing relocs"
-msgstr "Mémoire épuisée lors de l'analyse syntaxique des relocalisations"
-
-#: readelf.c:808
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
-msgstr " Décalage Info Type Val.-sym. Noms-symb. + Addenda\n"
-
-#: readelf.c:810
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
-msgstr " Décalage Info Type Val.-sym Noms-symb + Addenda\n"
-
-#: readelf.c:815
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name\n"
-msgstr " Décalage Info Type Val.-sym. Noms-symboles\n"
-
-#: readelf.c:817
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name\n"
-msgstr " Décalage Info Type Val.-sym Noms-symboles\n"
-
-#: readelf.c:825
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
-msgstr " Décalage Info Type Valeurs symbols Noms symboles + Addenda\n"
-
-#: readelf.c:827
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
-msgstr " Décalage Info Type Val.-symboles Noms-symb.+ Addenda\n"
-
-#: readelf.c:832
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr " Décalage Info Type Valeurs symbols Noms symbols\n"
-
-#: readelf.c:834
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name\n"
-msgstr " Décalage Info Type Val.-symboles Noms-symboles\n"
-
-#: readelf.c:1127 readelf.c:1129 readelf.c:1238 readelf.c:1240 readelf.c:1249
-#: readelf.c:1251
-#, c-format
-msgid "unrecognized: %-7lx"
-msgstr "non reconnue: %-7lx"
-
-#: readelf.c:1154
-#, c-format
-msgid "<unknown addend: %lx>"
-msgstr "<ajout inconnu: %lx>"
-
-#: readelf.c:1210
-#, c-format
-msgid "<string table index: %3ld>"
-msgstr "<chaîne de la table index: %3ld>"
-
-#: readelf.c:1212
-#, c-format
-msgid "<corrupt string table index: %3ld>"
-msgstr "<chaîne corrompu de la table index: %3ld>"
-
-#: readelf.c:1522
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr "Spécificités du processeur: %lx"
-
-#: readelf.c:1543
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr "Spécificités du systèmes d'exploitation: %lx"
-
-#: readelf.c:1547 readelf.c:2349
-#, c-format
-msgid "<unknown>: %lx"
-msgstr "<inconnu>: %lx"
-
-#: readelf.c:1560
-msgid "NONE (None)"
-msgstr "NONE (Aucun)"
-
-#: readelf.c:1561
-msgid "REL (Relocatable file)"
-msgstr "REL (Fichier de relocalisation)"
-
-#: readelf.c:1562
-msgid "EXEC (Executable file)"
-msgstr "EXEC (fichier exécutable)"
-
-#: readelf.c:1563
-msgid "DYN (Shared object file)"
-msgstr "DYN (fichier objet partagé)"
-
-#: readelf.c:1564
-msgid "CORE (Core file)"
-msgstr "CORE (fichier core)"
-
-#: readelf.c:1568
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr "Spécificités du processor: (%x)"
-
-#: readelf.c:1570
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr "Spécificités du système d'exploitation: (%x)"
-
-#: readelf.c:1572 readelf.c:1681 readelf.c:2541
-#, c-format
-msgid "<unknown>: %x"
-msgstr "<inconnu>: %x"
-
-#: readelf.c:1584
-msgid "None"
-msgstr "Aucun"
-
-#: readelf.c:2186
-msgid "Standalone App"
-msgstr "Tache autonome"
-
-#: readelf.c:2189 readelf.c:2948 readelf.c:2964
-#, c-format
-msgid "<unknown: %x>"
-msgstr "<inconnu: %x>"
-
-#: readelf.c:2586
-#, c-format
-msgid "Usage: readelf <option(s)> elf-file(s)\n"
-msgstr "Usage: readelf <options> fichiers-elf\n"
-
-#: readelf.c:2587
-#, c-format
-msgid " Display information about the contents of ELF format files\n"
-msgstr "Afficher les informations à propos du contenu du format des fichiers ELF\n"
-
-#: readelf.c:2588
-#, c-format
-msgid ""
-" Options are:\n"
-" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Display the ELF file header\n"
-" -l --program-headers Display the program headers\n"
-" --segments An alias for --program-headers\n"
-" -S --section-headers Display the sections' header\n"
-" --sections An alias for --section-headers\n"
-" -g --section-groups Display the section groups\n"
-" -t --section-details Display the section details\n"
-" -e --headers Equivalent to: -h -l -S\n"
-" -s --syms Display the symbol table\n"
-" --symbols An alias for --syms\n"
-" -n --notes Display the core notes (if present)\n"
-" -r --relocs Display the relocations (if present)\n"
-" -u --unwind Display the unwind info (if present)\n"
-" -d --dynamic Display the dynamic section (if present)\n"
-" -V --version-info Display the version sections (if present)\n"
-" -A --arch-specific Display architecture specific information (if any).\n"
-" -D --use-dynamic Use the dynamic section info when displaying symbols\n"
-" -x --hex-dump=<number> Dump the contents of section <number>\n"
-" -w[liaprmfFsoR] or\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n"
-" Display the contents of DWARF2 debug sections\n"
-msgstr ""
-"Les options sont:\n"
-" -a --all équivalent à: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header afficher l'en-tête du fichier ELF\n"
-" -l --program-headers afficher les en-têtes du programme\n"
-" --segments un alias pour --program-headers\n"
-" -S --section-headers afficher les en-têtes des sections\n"
-" --sections un alias pour --section-headers\n"
-" -g --section-groups afficher les groupes de section\n"
-" -t --section-details afficher les détails de la section\n"
-" -e --headers équivalent à: -h -l -S\n"
-" -s --syms afficher la table des symboles\n"
-" --symbols un alias pour --syms\n"
-" -n --notes afficher les notes du core (si présentes)\n"
-" -r --relocs afficher les relocalisation (si présentes)\n"
-" -u --unwind afficher les informations de type unwind (si présentes)\n"
-" -d --dynamic afficher le segment dynamique (si présent)\n"
-" -V --version-info afficher la version des sections (si présentes)\n"
-" -A --arch-specific afficher les informations spécifiques d'architecture (si présentes)\n"
-" -D --use-dynamic utiliser les informations de la section\n"
-" dynamique lors de l'affichage des symboles\n"
-" -x --hex-dump=<numéro> vidanger le contenu de la section <numéro>\n"
-" -w[liaprmfFso] ou\n"
-" --debug-dump[=liGne,=info,=abrév.,=nom-public,=étendue,=macro,=trames,=chaîne,=localisation]\n"
-" afficher le contenu des sections débug DWARF2\n"
-
-#: readelf.c:2612
-#, c-format
-msgid ""
-" -i --instruction-dump=<number>\n"
-" Disassemble the contents of section <number>\n"
-msgstr ""
-" -i --instruction-dump=<numéro>\n"
-" déassembler le contenu de la section <numéro>\n"
-
-#: readelf.c:2616
-#, c-format
-msgid ""
-" -I --histogram Display histogram of bucket list lengths\n"
-" -W --wide Allow output width to exceed 80 characters\n"
-" @<file> Read options from <file>\n"
-" -H --help Display this information\n"
-" -v --version Display the version number of readelf\n"
-msgstr ""
-" -I --histogram afficher l'histogramme des bacs selon la longueur de la liste\n"
-" -W --wide permettre d'afficher plus de 80 caractères\n"
-" @<fichier> lire les options à partir du <fichier>\n"
-" -H --help afficher l'aide-mémoire\n"
-" -V --version afficher le nom et la version du logiciel\n"
-
-#: readelf.c:2642 readelf.c:9180
-msgid "Out of memory allocating dump request table."
-msgstr "Mémoire épuisée allocation d'une table pour requêtes de vidange"
-
-#: readelf.c:2816 readelf.c:2884
-#, c-format
-msgid "Unrecognized debug option '%s'\n"
-msgstr "Option de débug non reconnue « %s »\n"
-
-#: readelf.c:2918
-#, c-format
-msgid "Invalid option '-%c'\n"
-msgstr "Option invalide '-%c»\n"
-
-#: readelf.c:2932
-msgid "Nothing to do.\n"
-msgstr "Rien à faire.\n"
-
-#: readelf.c:2944 readelf.c:2960 readelf.c:6169
-msgid "none"
-msgstr "aucun"
-
-#: readelf.c:2961
-msgid "2's complement, little endian"
-msgstr "complément à 2, système à octets de poids faible d'abord (little endian)"
-
-#: readelf.c:2962
-msgid "2's complement, big endian"
-msgstr "complément à 2, système à octets de poids fort d'abord (big endian)"
-
-#: readelf.c:2980
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr "N'est pas un fichier ELF - a les mauvais octets magiques au départ\n"
-
-#: readelf.c:2988
-#, c-format
-msgid "ELF Header:\n"
-msgstr "En-tête ELF:\n"
-
-#: readelf.c:2989
-#, c-format
-msgid " Magic: "
-msgstr " Magique: "
-
-#: readelf.c:2993
-#, c-format
-msgid " Class: %s\n"
-msgstr " Classe: %s\n"
-
-#: readelf.c:2995
-#, c-format
-msgid " Data: %s\n"
-msgstr " Données: %s\n"
-
-#: readelf.c:2997
-#, c-format
-msgid " Version: %d %s\n"
-msgstr " Version: %d %s\n"
-
-#: readelf.c:3004
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr " OS/ABI: %s\n"
-
-#: readelf.c:3006
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr " Version ABI: %d\n"
-
-#: readelf.c:3008
-#, c-format
-msgid " Type: %s\n"
-msgstr " Type: %s\n"
-
-#: readelf.c:3010
-#, c-format
-msgid " Machine: %s\n"
-msgstr " Machine: %s\n"
-
-#: readelf.c:3012
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr " Version: 0x%lx\n"
-
-#: readelf.c:3015
-#, c-format
-msgid " Entry point address: "
-msgstr " Adresse du point d'entrée: "
-
-#: readelf.c:3017
-#, c-format
-msgid ""
-"\n"
-" Start of program headers: "
-msgstr ""
-"\n"
-" Début des en-têtes de programme: "
-
-#: readelf.c:3019
-#, c-format
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr ""
-" (octets dans le fichier)\n"
-" Début des en-têtes de section: "
-
-#: readelf.c:3021
-#, c-format
-msgid " (bytes into file)\n"
-msgstr " (octets dans le fichier)\n"
-
-#: readelf.c:3023
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr " Fanions: 0x%lx%s\n"
-
-#: readelf.c:3026
-#, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr " Taille de cet en-tête: %ld (bytes)\n"
-
-#: readelf.c:3028
-#, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr " Taille de l'en-tête du programme: %ld (bytes)\n"
-
-#: readelf.c:3030
-#, c-format
-msgid " Number of program headers: %ld\n"
-msgstr " Nombre d'en-tête du programme: %ld\n"
-
-#: readelf.c:3032
-#, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr " Taille des en-têtes de section: %ld (bytes)\n"
-
-#: readelf.c:3034
-#, c-format
-msgid " Number of section headers: %ld"
-msgstr " Nombre d'en-têtes de section: %ld"
-
-#: readelf.c:3039
-#, c-format
-msgid " Section header string table index: %ld"
-msgstr " Table d'indexes des chaînes d'en-tête de section: %ld"
-
-#: readelf.c:3070 readelf.c:3103
-msgid "program headers"
-msgstr "En-tête de programme"
-
-#: readelf.c:3141 readelf.c:3440 readelf.c:3481 readelf.c:3540 readelf.c:3603
-#: readelf.c:4208 readelf.c:4232 readelf.c:5510 readelf.c:5554 readelf.c:5752
-#: readelf.c:6734 readelf.c:6748 readelf.c:8564 readelf.c:8972 readelf.c:9039
-msgid "Out of memory\n"
-msgstr "Mémoire épuisée\n"
-
-#: readelf.c:3168
-#, c-format
-msgid ""
-"\n"
-"There are no program headers in this file.\n"
-msgstr ""
-"\n"
-"Il n'y a pas d'en-têtes de programme dans ce fichier.\n"
-
-#: readelf.c:3174
-#, c-format
-msgid ""
-"\n"
-"Elf file type is %s\n"
-msgstr ""
-"\n"
-"Type de fichier ELF est %s\n"
-
-#: readelf.c:3175
-#, c-format
-msgid "Entry point "
-msgstr "Point d'entrée "
-
-#: readelf.c:3177
-#, c-format
-msgid ""
-"\n"
-"There are %d program headers, starting at offset "
-msgstr ""
-"\n"
-"Il y a %d en-têtes de programme, débutant à l'adresse de décalage"
-
-#: readelf.c:3189 readelf.c:3191
-#, c-format
-msgid ""
-"\n"
-"Program Headers:\n"
-msgstr ""
-"\n"
-"En-têtes de programme:\n"
-
-#: readelf.c:3195
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Type Décalage Adr. vir. Adr.phys. T.Fich. T.Mém. Fan Alignement\n"
-
-#: readelf.c:3198
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Type Décalage Adr. vir. Adr.phys. T.Fich. T.Mém. Fan Alignement\n"
-
-#: readelf.c:3202
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr " Type Décalage Adr.virt Adr.phys.\n"
-
-#: readelf.c:3204
-#, c-format
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr " Taille fichier Taille mémoire Fanion Alignement\n"
-
-#: readelf.c:3297
-msgid "more than one dynamic segment\n"
-msgstr "plus d'un segment dynamique\n"
-
-#: readelf.c:3308
-msgid "no .dynamic section in the dynamic segment"
-msgstr "pas de section .dynamic dans le segment dynamique"
-
-#: readelf.c:3317
-msgid "the .dynamic section is not contained within the dynamic segment"
-msgstr "la section .dynamic n'est pas contenu à l'intérieur du segment dynamique"
-
-#: readelf.c:3319
-msgid "the .dynamic section is not the first section in the dynamic segment."
-msgstr "la section .dynamic n'est pas la première section dans le segment dynamique."
-
-#: readelf.c:3333
-msgid "Unable to find program interpreter name\n"
-msgstr "Incapable de repérer le nom de l'interpréteur du programme\n"
-
-#: readelf.c:3340
-#, c-format
-msgid ""
-"\n"
-" [Requesting program interpreter: %s]"
-msgstr ""
-"\n"
-" [Réquisition de l'interpréteur de programme: %s]"
-
-#: readelf.c:3352
-#, c-format
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-msgstr ""
-"\n"
-" Section à la projection de segement:\n"
-
-#: readelf.c:3353
-#, c-format
-msgid " Segment Sections...\n"
-msgstr " Sections de segment...\n"
-
-#: readelf.c:3402
-msgid "Cannot interpret virtual addresses without program headers.\n"
-msgstr "Ne peut interpréter les adresses virtuelles sans l'en-tête du programme.\n"
-
-#: readelf.c:3418
-#, c-format
-msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
-msgstr "L'adresse virtuelle 0x%lx ne peut être localisé dans chaque segment PT_LOAD.\n"
-
-#: readelf.c:3432 readelf.c:3473
-msgid "section headers"
-msgstr "En-têtes de section"
-
-#: readelf.c:3517 readelf.c:3580
-msgid "symbols"
-msgstr "symboles"
-
-#: readelf.c:3527 readelf.c:3590
-msgid "symtab shndx"
-msgstr "symtab shndx"
-
-#: readelf.c:3817 readelf.c:4192
-#, c-format
-msgid ""
-"\n"
-"There are no sections in this file.\n"
-msgstr ""
-"\n"
-"Il n'y a pas de section dans ce fichier.\n"
-
-#: readelf.c:3823
-#, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr "Il y a %d en-têtes de section, débutant à l'adresse de décalage 0x%lx:\n"
-
-#: readelf.c:3842 readelf.c:4309 readelf.c:4544 readelf.c:4852 readelf.c:5267
-#: readelf.c:6906
-msgid "string table"
-msgstr "table de chaînes"
-
-#: readelf.c:3881
-#, c-format
-msgid "Section %d has invalid sh_entsize %lx (expected %lx)\n"
-msgstr "La section %d a une sh_entsize %lx invalide (attendait %lx)\n"
-
-#: readelf.c:3901
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr "Le fichier contient plusieurs tables dynamiques de symboles\n"
-
-#: readelf.c:3914
-msgid "File contains multiple dynamic string tables\n"
-msgstr "Le fichier contient plusieurs tables de chaînes dynamiques\n"
-
-#: readelf.c:3919
-msgid "dynamic strings"
-msgstr "chaînes dynamiques"
-
-#: readelf.c:3926
-msgid "File contains multiple symtab shndx tables\n"
-msgstr "Le fichier contient de multiples tables symboliques shndx\n"
-
-#: readelf.c:3973
-#, c-format
-msgid ""
-"\n"
-"Section Headers:\n"
-msgstr ""
-"\n"
-"En-têtes de section:\n"
-
-#: readelf.c:3975
-#, c-format
-msgid ""
-"\n"
-"Section Header:\n"
-msgstr ""
-"\n"
-"En-têtes de section:\n"
-
-#: readelf.c:3981 readelf.c:3992 readelf.c:4003
-#, c-format
-msgid " [Nr] Name\n"
-msgstr " [Nr] Nom\n"
-
-#: readelf.c:3982
-#, c-format
-msgid " Type Addr Off Size ES Lk Inf Al\n"
-msgstr " Type Adr Décala.Taille ES LN Inf Al\n"
-
-#: readelf.c:3986
-#, c-format
-msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] Nom Type Adr Décala.Taille ES Fan LN Inf Al\n"
-
-#: readelf.c:3993
-#, c-format
-msgid " Type Address Off Size ES Lk Inf Al\n"
-msgstr " Type Adresse Décala.Taille ES LN Inf Al\n"
-
-#: readelf.c:3997
-#, c-format
-msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] Nom Type Adr Décala.Taille ES Fan LN Inf Al\n"
-
-#: readelf.c:4004
-#, c-format
-msgid " Type Address Offset Link\n"
-msgstr " Type Adresse Décalage Lien\n"
-
-#: readelf.c:4005
-#, c-format
-msgid " Size EntSize Info Align\n"
-msgstr " Taille TaillEntré Info Alignement\n"
-
-#: readelf.c:4009
-#, c-format
-msgid " [Nr] Name Type Address Offset\n"
-msgstr " [Nr] Nom Type Adresse Décalage\n"
-
-#: readelf.c:4010
-#, c-format
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr " Taille TaillEntré Fanion Lien Info Alignement\n"
-
-#: readelf.c:4015
-#, c-format
-msgid " Flags\n"
-msgstr " Fanions\n"
-
-#: readelf.c:4150
-#, c-format
-msgid ""
-"Key to Flags:\n"
-" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-" I (info), L (link order), G (group), x (unknown)\n"
-" O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr ""
-"Clé des fanions:\n"
-" W (écriture), A (allocation), X (exécution), M (fusion), S (chaînes)\n"
-" I (info), L (ordre des liens), G (groupe), x (inconnu)\n"
-" O (traiterment additionnel requis pour l'OS) o (spécifique à l'OS), p (spécifique au processeur)\n"
-
-#: readelf.c:4168
-#, c-format
-msgid "[<unknown>: 0x%x]"
-msgstr "<inconnu>: 0x%x]"
-
-#: readelf.c:4199
-msgid "Section headers are not available!\n"
-msgstr "En-têtes de section ne sont pas disponibles!\n"
-
-#: readelf.c:4223
-#, c-format
-msgid ""
-"\n"
-"There are no section groups in this file.\n"
-msgstr ""
-"\n"
-"Il n'y a pas de groupe de section dans ce fichier.\n"
-
-#: readelf.c:4259
-#, c-format
-msgid "Bad sh_link in group section `%s'\n"
-msgstr "sh_link erroné dans la section de groupe `%s'\n"
-
-#: readelf.c:4278
-#, c-format
-msgid "Bad sh_info in group section `%s'\n"
-msgstr "sh_info erroné dans la section de groupe`%s'\n"
-
-#: readelf.c:4317 readelf.c:7243
-msgid "section data"
-msgstr "données de section"
-
-#: readelf.c:4329
-#, c-format
-msgid " [Index] Name\n"
-msgstr " [Index] Nom\n"
-
-#: readelf.c:4343
-#, c-format
-msgid "section [%5u] in group section [%5u] > maximum section [%5u]\n"
-msgstr "section [%5u] est dans le groupe section [%5u] > que le maximum de la section [%5u]\n"
-
-#: readelf.c:4349
-#, c-format
-msgid "invalid section [%5u] in group section [%5u]\n"
-msgstr "section invalide [%5u] est dans le groupe section [%5u]\n"
-
-#: readelf.c:4359
-#, c-format
-msgid "section [%5u] in group section [%5u] already in group section [%5u]\n"
-msgstr "section [%5u] est dans le groupe section [%5u] qui est déjà dans le groupe section [%5u]\n"
-
-#: readelf.c:4372
-#, c-format
-msgid "section 0 in group section [%5u]\n"
-msgstr "section 0 dans le groupe section [%5u]\n"
-
-#: readelf.c:4468
-#, c-format
-msgid ""
-"\n"
-"'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr ""
-"\n"
-"'%s' section de relocalisation à l'adresse de décalage 0x%lx contient %ld octets:\n"
-
-#: readelf.c:4480
-#, c-format
-msgid ""
-"\n"
-"There are no dynamic relocations in this file.\n"
-msgstr ""
-"\n"
-"Il n'y a pas d'informations de relocalisation dynamique dans ce fichier.\n"
-
-#: readelf.c:4504
-#, c-format
-msgid ""
-"\n"
-"Relocation section "
-msgstr ""
-"\n"
-"Section de relocalisation "
-
-#: readelf.c:4509 readelf.c:4928 readelf.c:4942 readelf.c:5282
-#, c-format
-msgid "'%s'"
-msgstr "« %s »"
-
-#: readelf.c:4511 readelf.c:4944 readelf.c:5284
-#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr " à l'adresse de décalage 0x%lx contient %lu entrées:\n"
-
-#: readelf.c:4563
-#, c-format
-msgid ""
-"\n"
-"There are no relocations in this file.\n"
-msgstr ""
-"\n"
-"Il n'y a pas de relocalisation dans ce fichier.\n"
-
-#: readelf.c:4742 readelf.c:5124
-msgid "unwind table"
-msgstr "table unwind"
-
-#: readelf.c:4801 readelf.c:5214
-#, c-format
-msgid "Skipping unexpected relocation type %s\n"
-msgstr "Escamotage du type de relocalisation inattendue %s\n"
-
-#: readelf.c:4860 readelf.c:5275 readelf.c:5326
-#, c-format
-msgid ""
-"\n"
-"There are no unwind sections in this file.\n"
-msgstr ""
-"\n"
-"Il n'y a pas de section unwind dans ce fichier.\n"
-
-#: readelf.c:4923
-#, c-format
-msgid ""
-"\n"
-"Could not find unwind info section for "
-msgstr ""
-"\n"
-"N'a pu repérer les infos d'une section unwind pour "
-
-#: readelf.c:4935
-msgid "unwind info"
-msgstr "info unwind"
-
-#: readelf.c:4937 readelf.c:5281
-#, c-format
-msgid ""
-"\n"
-"Unwind section "
-msgstr ""
-"\n"
-"Section unwind"
-
-#: readelf.c:5491 readelf.c:5535
-msgid "dynamic section"
-msgstr "section dynamique"
-
-#: readelf.c:5612
-#, c-format
-msgid ""
-"\n"
-"There is no dynamic section in this file.\n"
-msgstr ""
-"\n"
-"Il n'y a pas de section dynamique dans ce fichier.\n"
-
-#: readelf.c:5650
-msgid "Unable to seek to end of file!"
-msgstr "Incapable de repérer la fin du fichier!"
-
-#: readelf.c:5663
-msgid "Unable to determine the number of symbols to load\n"
-msgstr "Incapable de déterminer le nombre de symboles à charger\n"
-
-#: readelf.c:5698
-msgid "Unable to seek to end of file\n"
-msgstr "Incapable de repérer la fin du fichier\n"
-
-#: readelf.c:5705
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr "Incapable de déterminer la longueur de la table de chaînes dynamiques\n"
-
-#: readelf.c:5710
-msgid "dynamic string table"
-msgstr "table dynamique de chaînes"
-
-#: readelf.c:5745
-msgid "symbol information"
-msgstr "information de symbole"
-
-#: readelf.c:5770
-#, c-format
-msgid ""
-"\n"
-"Dynamic section at offset 0x%lx contains %u entries:\n"
-msgstr ""
-"\n"
-"Section dynamique à l'adresse de décalage 0x%lx contient %u entrées:\n"
-
-#: readelf.c:5773
-#, c-format
-msgid " Tag Type Name/Value\n"
-msgstr " Étiquettes Type Nom/Valeur\n"
-
-#: readelf.c:5809
-#, c-format
-msgid "Auxiliary library"
-msgstr "Librairie auxiliaire"
-
-#: readelf.c:5813
-#, c-format
-msgid "Filter library"
-msgstr "Librairie de filtre"
-
-#: readelf.c:5817
-#, c-format
-msgid "Configuration file"
-msgstr "Fichier de configuration"
-
-#: readelf.c:5821
-#, c-format
-msgid "Dependency audit library"
-msgstr "Librairie d'audit des dépendances"
-
-#: readelf.c:5825
-#, c-format
-msgid "Audit library"
-msgstr "Librairie des audits"
-
-#: readelf.c:5843 readelf.c:5871 readelf.c:5899
-#, c-format
-msgid "Flags:"
-msgstr "Fanions:"
-
-#: readelf.c:5846 readelf.c:5874 readelf.c:5901
-#, c-format
-msgid " None\n"
-msgstr "Aucun\n"
-
-#: readelf.c:6022
-#, c-format
-msgid "Shared library: [%s]"
-msgstr "Librairie partagées: [%s]"
-
-#: readelf.c:6025
-#, c-format
-msgid " program interpreter"
-msgstr " programme interpréteur"
-
-#: readelf.c:6029
-#, c-format
-msgid "Library soname: [%s]"
-msgstr "Librairie soname: [%s]"
-
-#: readelf.c:6033
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr "Librairie rpath: [%s]"
-
-#: readelf.c:6037
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr "Librairie runpath:[%s]"
-
-#: readelf.c:6100
-#, c-format
-msgid "Not needed object: [%s]\n"
-msgstr "Objet non nécessaire: [%s]\n"
-
-#: readelf.c:6214
-#, c-format
-msgid ""
-"\n"
-"Version definition section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Section des définitions de version « %s » contient %ld entrées:\n"
-
-#: readelf.c:6217
-#, c-format
-msgid " Addr: 0x"
-msgstr " Adr: 0x"
-
-#: readelf.c:6219 readelf.c:6426
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr " Décalage: %#08lx Lien: %lx (%s)\n"
-
-#: readelf.c:6228
-msgid "version definition section"
-msgstr "section de définition de version"
-
-#: readelf.c:6254
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr " %#06x: Rev: %d Fanions: %s"
-
-#: readelf.c:6257
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr " Index: %d Compteur: %d "
-
-#: readelf.c:6268
-#, c-format
-msgid "Name: %s\n"
-msgstr "Nom: %s\n"
-
-#: readelf.c:6270
-#, c-format
-msgid "Name index: %ld\n"
-msgstr "Nom de l'index: %ld\n"
-
-#: readelf.c:6285
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr " %#06x: Parent %d: %s\n"
-
-#: readelf.c:6288
-#, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr " %#06x: Parent %d, name index: %ld\n"
-
-#: readelf.c:6307
-#, c-format
-msgid ""
-"\n"
-"Version needs section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Version nécessitant la section « %s » contenant %ld entrées:\n"
-
-#: readelf.c:6310
-#, c-format
-msgid " Addr: 0x"
-msgstr " Adr: 0x"
-
-#: readelf.c:6312
-#, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr " Décalage: %#08lx Lien vers la section: %ld (%s)\n"
-
-#: readelf.c:6321
-msgid "version need section"
-msgstr "version nécessite une section"
-
-#: readelf.c:6343
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr " %#06x: Version: %d"
-
-#: readelf.c:6346
-#, c-format
-msgid " File: %s"
-msgstr " Fichier: %s"
-
-#: readelf.c:6348
-#, c-format
-msgid " File: %lx"
-msgstr " Fichier: %lx"
-
-#: readelf.c:6350
-#, c-format
-msgid " Cnt: %d\n"
-msgstr " Compteur: %d\n"
-
-#: readelf.c:6368
-#, c-format
-msgid " %#06x: Name: %s"
-msgstr " %#06x: Nom: %s"
-
-#: readelf.c:6371
-#, c-format
-msgid " %#06x: Name index: %lx"
-msgstr " %#06x: Nom de l'index: %lx"
-
-#: readelf.c:6374
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr " Fanions: %s Version: %d\n"
-
-#: readelf.c:6417
-msgid "version string table"
-msgstr "table chaîne de version"
-
-#: readelf.c:6421
-#, c-format
-msgid ""
-"\n"
-"Version symbols section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"La version de section « %s » des symboles contient %d entrée:\n"
-
-#: readelf.c:6424
-#, c-format
-msgid " Addr: "
-msgstr " Adr: "
-
-#: readelf.c:6434
-msgid "version symbol data"
-msgstr "données de symbole de version"
-
-#: readelf.c:6461
-msgid " 0 (*local*) "
-msgstr " 0 (*local*) "
-
-#: readelf.c:6465
-msgid " 1 (*global*) "
-msgstr " 1 (*global*) "
-
-#: readelf.c:6503 readelf.c:6969
-msgid "version need"
-msgstr "version nécessaire"
-
-#: readelf.c:6513
-msgid "version need aux (2)"
-msgstr "version nécessite aux (2)"
-
-#: readelf.c:6555 readelf.c:7034
-msgid "version def"
-msgstr "définition de version"
-
-#: readelf.c:6575 readelf.c:7049
-msgid "version def aux"
-msgstr "définition de version aux"
-
-#: readelf.c:6606
-#, c-format
-msgid ""
-"\n"
-"No version information found in this file.\n"
-msgstr ""
-"\n"
-"Aucune information de version repérée dans ce fichier.\n"
-
-#: readelf.c:6740
-msgid "Unable to read in dynamic data\n"
-msgstr "Incapable de lire les données dynamiques\n"
-
-#: readelf.c:6793
-msgid "Unable to seek to start of dynamic information"
-msgstr "Incapable de repérer le début des informations dynamiques"
-
-#: readelf.c:6799
-msgid "Failed to read in number of buckets\n"
-msgstr "Échec de lecture parmi tous les baquets\n"
-
-#: readelf.c:6805
-msgid "Failed to read in number of chains\n"
-msgstr "Échec de lecture du nombre de chaînes\n"
-
-#: readelf.c:6825
-#, c-format
-msgid ""
-"\n"
-"Symbol table for image:\n"
-msgstr ""
-"\n"
-"Table de symbole de l'image:\n"
-
-#: readelf.c:6827
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nb Buc: Valeur Taille Type Lien Vis Ndx Nom\n"
-
-#: readelf.c:6829
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nb Buc: Valeur Taille Type Lien Vis Ndx Nom\n"
-
-#: readelf.c:6882
-#, c-format
-msgid ""
-"\n"
-"Symbol table '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"Table de symboles « %s » contient %lu entrées:\n"
-
-#: readelf.c:6886
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Num: Valeur Tail Type Lien Vis Ndx Nom\n"
-
-#: readelf.c:6888
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Num: Valeur Tail Type Lien Vis Ndx Nom\n"
-
-#: readelf.c:6939
-msgid "version data"
-msgstr "données de version"
-
-#: readelf.c:6982
-msgid "version need aux (3)"
-msgstr "version nécessite aux (3)"
-
-#: readelf.c:7009
-msgid "bad dynamic symbol"
-msgstr "mauvais symbole dynamique"
-
-#: readelf.c:7073
-#, c-format
-msgid ""
-"\n"
-"Dynamic symbol information is not available for displaying symbols.\n"
-msgstr ""
-"\n"
-"L'information dynamique des symboles n'est pas disponible pour l'affichage des symboles.\n"
-
-#: readelf.c:7085
-#, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length (total of %lu buckets):\n"
-msgstr ""
-"\n"
-"Histogramme de la longueur de la liste des baquets (total de %lu baquets):\n"
-
-#: readelf.c:7087
-#, c-format
-msgid " Length Number %% of total Coverage\n"
-msgstr " Long. Nombre %% de couverture totale\n"
-
-#: readelf.c:7092 readelf.c:7108 readelf.c:8031 readelf.c:8223
-msgid "Out of memory"
-msgstr "Mémoire épuisée"
-
-#: readelf.c:7157
-#, c-format
-msgid ""
-"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr ""
-"\n"
-"Segment d'informations dynamiques à l'adresse de décalage 0x%lx contient %d entrées:\n"
-
-#: readelf.c:7160
-#, c-format
-msgid " Num: Name BoundTo Flags\n"
-msgstr " Num: Nom Lier à Fanions\n"
-
-#: readelf.c:7212
-#, c-format
-msgid ""
-"\n"
-"Assembly dump of section %s\n"
-msgstr ""
-"\n"
-"Vidange de la section assembleur %s\n"
-
-#: readelf.c:7233
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no data to dump.\n"
-msgstr ""
-"\n"
-"La section « %s » n'a pas de données à être videngé.\n"
-
-#: readelf.c:7238
-#, c-format
-msgid ""
-"\n"
-"Hex dump of section '%s':\n"
-msgstr ""
-"\n"
-"Vidange hexadécimale de la section « %s »:\n"
-
-#: readelf.c:7359
-#, c-format
-msgid "skipping invalid relocation offset 0x%lx in section %s\n"
-msgstr "escamotage invalide de relocalisation du décalage 0x%lx dans la section %s\n"
-
-#: readelf.c:7376
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela%s\n"
-msgstr "escamotage inattendu du type de symbole %s dans la section de relocalisation .rela%s\n"
-
-#: readelf.c:7402
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela.%s\n"
-msgstr "escamotage inattendu du type de symbole %s dans la section de relocalisation .rela%s\n"
-
-#: readelf.c:7435
-#, c-format
-msgid "%s section data"
-msgstr "données de section %s"
-
-#: readelf.c:7472
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no debugging data.\n"
-msgstr ""
-"\n"
-"La section « %s » n'a aucune donnée de débug.\n"
-
-#: readelf.c:7498
-#, c-format
-msgid "Unrecognized debug section: %s\n"
-msgstr "Section de débug non reconnue: %s\n"
-
-#: readelf.c:7533
-#, c-format
-msgid "Section %d was not dumped because it does not exist!\n"
-msgstr "La section %d n'a pas été vidangée parce qu'inexistante!\n"
-
-#: readelf.c:7791
-msgid "attributes"
-msgstr "attributs"
-
-#: readelf.c:7809
-#, c-format
-msgid "ERROR: Bad section length (%d > %d)\n"
-msgstr "ERREUR: longueur erronée de section (%d > %d)\n"
-
-#: readelf.c:7830
-#, c-format
-msgid "ERROR: Bad subsection length (%d > %d)\n"
-msgstr "EREUR: longueur erronée de la sous-section (%d > %d)\n"
-
-#: readelf.c:7880
-#, c-format
-msgid "Unknown format '%c'\n"
-msgstr "Format inconnu « %c »\n"
-
-#: readelf.c:7936 readelf.c:8304
-msgid "liblist"
-msgstr "liblist"
-
-#: readelf.c:8025
-msgid "options"
-msgstr "options"
-
-#: readelf.c:8055
-#, c-format
-msgid ""
-"\n"
-"Section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"Section « %s » contient %d entrées:\n"
-
-#: readelf.c:8216
-msgid "conflict list found without a dynamic symbol table"
-msgstr "conflit de liste repéré sans symbole de table dynamique"
-
-#: readelf.c:8232 readelf.c:8246
-msgid "conflict"
-msgstr "conflit"
-
-#: readelf.c:8256
-#, c-format
-msgid ""
-"\n"
-"Section '.conflict' contains %lu entries:\n"
-msgstr ""
-"\n"
-"La section « .conflict » contient %lu entrées:\n"
-
-#: readelf.c:8258
-msgid " Num: Index Value Name"
-msgstr " Nombre: Index Valeur Nom"
-
-#: readelf.c:8311
-msgid "liblist string table"
-msgstr "table de chaînes liblist"
-
-#: readelf.c:8321
-#, c-format
-msgid ""
-"\n"
-"Library list section '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"Liste de libraire de la section « %s » contenant %lu entrées:\n"
-
-#: readelf.c:8374
-msgid "NT_AUXV (auxiliary vector)"
-msgstr "NT_AUXV (vecteur auxiliaire)"
-
-#: readelf.c:8376
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr "NT_PRSTATUS (structure prstatus)"
-
-#: readelf.c:8378
-msgid "NT_FPREGSET (floating point registers)"
-msgstr "NT_FPREGSET (régistres en virgule flottante)"
-
-#: readelf.c:8380
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr "NT_PRPSINFO (structure prpsinfo)"
-
-#: readelf.c:8382
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr "NT_TASKSTRUCT (structure de taches)"
-
-#: readelf.c:8384
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr "NT_PRXFPREG (structure user_xfpregs)"
-
-#: readelf.c:8386
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr "NT_PSTATUS (structure pstatus)"
-
-#: readelf.c:8388
-msgid "NT_FPREGS (floating point registers)"
-msgstr "NT_FPREGS (registres en virgule flottante)"
-
-#: readelf.c:8390
-msgid "NT_PSINFO (psinfo structure)"
-msgstr "NT_PSINFO (structure psinfo)"
-
-#: readelf.c:8392
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr "NT_LWPSTATUS (structure lwpstatus_t)"
-
-#: readelf.c:8394
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr "NT_LWPSINFO (structure lwpsinfo_t)"
-
-#: readelf.c:8396
-msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
-msgstr "NT_WIN32PSTATUS (structure win32_pstatus)"
-
-#: readelf.c:8404
-msgid "NT_VERSION (version)"
-msgstr "NT_VERSION (version)"
-
-#: readelf.c:8406
-msgid "NT_ARCH (architecture)"
-msgstr "NT_ARCH (architecture)"
-
-#: readelf.c:8411 readelf.c:8433
-#, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr "Type de note inconnu: (0x%08x)"
-
-#. NetBSD core "procinfo" structure.
-#: readelf.c:8423
-msgid "NetBSD procinfo structure"
-msgstr "structure proinfo NetBSD"
-
-#: readelf.c:8450 readelf.c:8464
-msgid "PT_GETREGS (reg structure)"
-msgstr "PT_GETREGS (structure reg)"
-
-#: readelf.c:8452 readelf.c:8466
-msgid "PT_GETFPREGS (fpreg structure)"
-msgstr "PT_GETFPPREGS (structure fpreg)"
-
-#: readelf.c:8472
-#, c-format
-msgid "PT_FIRSTMACH+%d"
-msgstr "PT_FIRSTMACH+%d"
-
-#: readelf.c:8518
-msgid "notes"
-msgstr "notes"
-
-#: readelf.c:8524
-#, c-format
-msgid ""
-"\n"
-"Notes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr ""
-"\n"
-"Notes au décalage 0x%08lx de longueur 0x%08lx:\n"
-
-#: readelf.c:8526
-#, c-format
-msgid " Owner\t\tData size\tDescription\n"
-msgstr " Propriétaire\t\tTaille de données\tDescription\n"
-
-#: readelf.c:8545
-#, c-format
-msgid "corrupt note found at offset %lx into core notes\n"
-msgstr "note corrompue repérée au décalage %lx dans les notes du core\n"
-
-#: readelf.c:8547
-#, c-format
-msgid " type: %lx, namesize: %08lx, descsize: %08lx\n"
-msgstr " type: %lx, taille des noms: %08lx, taille de descriptions: %08lx\n"
-
-#: readelf.c:8645
-#, c-format
-msgid "No note segments present in the core file.\n"
-msgstr "Aucun note de segment présent dans le fichier core.\n"
-
-#: readelf.c:8726
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr ""
-"Cette instance de readelf a été contstruite sans soutien pour des\n"
-"types de données de 64 bits et ne peut donc lire des fichiers de 64 bits ELF.\n"
-
-#: readelf.c:8775 readelf.c:9119
-#, c-format
-msgid "%s: Failed to read file header\n"
-msgstr "%s: échec de lecture de l'en-tête du fichier\n"
-
-#: readelf.c:8788
-#, c-format
-msgid ""
-"\n"
-"File: %s\n"
-msgstr ""
-"\n"
-"Fichier: %s\n"
-
-#: readelf.c:8936 readelf.c:8957 readelf.c:8994 readelf.c:9074
-#, c-format
-msgid "%s: failed to read archive header\n"
-msgstr "%s: échec de lecture de l'en-tête de l'archive\n"
-
-#: readelf.c:8947
-#, c-format
-msgid "%s: failed to skip archive symbol table\n"
-msgstr "%s: échec d'escamotage de la table de symboles dans l'archive\n"
-
-#: readelf.c:8979
-#, c-format
-msgid "%s: failed to read string table\n"
-msgstr "%s: échec de lecture de la table de chaînes\n"
-
-#: readelf.c:9015
-#, c-format
-msgid "%s: invalid archive string table offset %lu\n"
-msgstr "%s: chaîne de décalage %lu dans la table est invalide dans l'archive\n"
-
-#: readelf.c:9031
-#, c-format
-msgid "%s: bad archive file name\n"
-msgstr "%s: nom erroné du fichier d'archive\n"
-
-#: readelf.c:9063
-#, c-format
-msgid "%s: failed to seek to next archive header\n"
-msgstr "%s: échec de repérage de la prochaine en-tête d'archive\n"
-
-#: readelf.c:9097
-#, c-format
-msgid "'%s': No such file\n"
-msgstr "'%s': pas de fichier comme tel\n"
-
-#: readelf.c:9099
-#, c-format
-msgid "Could not locate '%s'. System error message: %s\n"
-msgstr "Ne peut retrouver '%s'. Message d'erreur système: %s\n"
-
-#: readelf.c:9106
-#, c-format
-msgid "'%s' is not an ordinary file\n"
-msgstr "'%s' n'est pas un fichier ordinaire\n"
-
-#: readelf.c:9113
-#, c-format
-msgid "Input file '%s' is not readable.\n"
-msgstr "Fichier d'entrée %s n'est pas lisible.\n"
-
-#: rename.c:129
-#, c-format
-msgid "%s: cannot set time: %s"
-msgstr "%s: ne peut initialisé l'heure: %s"
-
-#. We have to clean up here.
-#: rename.c:164 rename.c:202
-#, c-format
-msgid "unable to rename '%s' reason: %s"
-msgstr "incapable de renommer '%s' pour la raison suivante: %s"
-
-#: rename.c:210
-#, c-format
-msgid "unable to copy file '%s' reason: %s"
-msgstr "incapable de copier le fichier '%s' pour la raisoin suivante: %s"
-
-#: resbin.c:132
-#, c-format
-msgid "%s: not enough binary data"
-msgstr "%s: pas assez de données binaires"
-
-#: resbin.c:148
-msgid "null terminated unicode string"
-msgstr "chaîne unicode terminée par un null"
-
-#: resbin.c:175 resbin.c:181
-msgid "resource ID"
-msgstr "IDentificateur de ressource"
-
-#: resbin.c:221
-msgid "cursor"
-msgstr "curseur"
-
-#: resbin.c:253 resbin.c:260
-msgid "menu header"
-msgstr "en-tête de menu"
-
-#: resbin.c:270
-msgid "menuex header"
-msgstr "en-tête menuex"
-
-#: resbin.c:274
-msgid "menuex offset"
-msgstr "décalage menuex"
-
-#: resbin.c:281
-#, c-format
-msgid "unsupported menu version %d"
-msgstr "version de menu non supportée %d"
-
-#: resbin.c:306 resbin.c:321 resbin.c:384
-msgid "menuitem header"
-msgstr "en-tête d'item du menu"
-
-#: resbin.c:414
-msgid "menuitem"
-msgstr "item du menu"
-
-#: resbin.c:453 resbin.c:481
-msgid "dialog header"
-msgstr "en-tête de dialogue"
-
-#: resbin.c:471
-#, c-format
-msgid "unexpected DIALOGEX version %d"
-msgstr "version DIALOGEX inattendue %d"
-
-#: resbin.c:516
-msgid "dialog font point size"
-msgstr "taille en point de fonte de dialogue"
-
-#: resbin.c:524
-msgid "dialogex font information"
-msgstr "information de fonte de type dialogex"
-
-#: resbin.c:550 resbin.c:568
-msgid "dialog control"
-msgstr "contrôle de dialogue"
-
-#: resbin.c:560
-msgid "dialogex control"
-msgstr "contrôle dialogex"
-
-#: resbin.c:589
-msgid "dialog control end"
-msgstr "fin de contrôle du dialogue"
-
-#: resbin.c:601
-msgid "dialog control data"
-msgstr "données de contrôle du dialogue"
-
-#: resbin.c:642
-msgid "stringtable string length"
-msgstr "longueur de chaîne de la table des chaînes"
-
-#: resbin.c:652
-msgid "stringtable string"
-msgstr "chaîne de la table des chaînes"
-
-#: resbin.c:683
-msgid "fontdir header"
-msgstr "en-tête fontdir"
-
-#: resbin.c:696
-msgid "fontdir"
-msgstr "fontdir"
-
-#: resbin.c:712
-msgid "fontdir device name"
-msgstr "nom du périphérique fontdir"
-
-#: resbin.c:718
-msgid "fontdir face name"
-msgstr "nom de la sélection du répertoire de fontes"
-
-#: resbin.c:759
-msgid "accelerator"
-msgstr "accélérateur"
-
-#: resbin.c:819
-msgid "group cursor header"
-msgstr "en-tête du groupe de curseurs"
-
-#: resbin.c:823
-#, c-format
-msgid "unexpected group cursor type %d"
-msgstr "type de groupe de curseur inattendu %d"
-
-#: resbin.c:838
-msgid "group cursor"
-msgstr "groupe de curseur"
-
-#: resbin.c:875
-msgid "group icon header"
-msgstr "en-tête du groupe d'icônes"
-
-#: resbin.c:879
-#, c-format
-msgid "unexpected group icon type %d"
-msgstr "type de groupe d'icône inattendu %d"
-
-#: resbin.c:894
-msgid "group icon"
-msgstr "groupe d'icônes"
-
-#: resbin.c:957 resbin.c:1174
-msgid "unexpected version string"
-msgstr "chaîne de version inattendue"
-
-#: resbin.c:989
-#, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr "longueur de la version %d ne concorde pas avec la longueur de la ressource %lu"
-
-#: resbin.c:993
-#, c-format
-msgid "unexpected version type %d"
-msgstr "type de version inattendu %d"
-
-#: resbin.c:1005
-#, c-format
-msgid "unexpected fixed version information length %d"
-msgstr "longueur d'information fixe de version inattendue %d"
-
-#: resbin.c:1008
-msgid "fixed version info"
-msgstr "information fixe de version"
-
-#: resbin.c:1012
-#, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr "signature de version fixe inattendue %lu"
-
-#: resbin.c:1016
-#, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr "information de version inattendue dans la version fixe %lu"
-
-#: resbin.c:1045
-msgid "version var info"
-msgstr "information de variable de version"
-
-#: resbin.c:1062
-#, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr "longueur de la valeur stringfileinfo inattendue %d"
-
-#: resbin.c:1072
-#, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr "longueur inattendue de la valeur de la table de chaîne de version %d"
-
-#: resbin.c:1106
-#, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr "longueur inattendue de la chaîne de version %d != %d +%d"
-
-#: resbin.c:1117
-#, c-format
-msgid "unexpected version string length %d < %d"
-msgstr "longueur inattendue de la chaîne de version %d < %d"
-
-#: resbin.c:1134
-#, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr "longueur inattendue de la chaîne varfileinfo %d"
-
-#: resbin.c:1153
-msgid "version varfileinfo"
-msgstr "version varfileinfo"
-
-#: resbin.c:1168
-#, c-format
-msgid "unexpected version value length %d"
-msgstr "longueur inattendue de la chaîne de version %d"
-
-#: rescoff.c:126
-msgid "filename required for COFF input"
-msgstr "nom de fichier requis pour l'entrée COFF"
-
-#: rescoff.c:143
-#, c-format
-msgid "%s: no resource section"
-msgstr "%s: aucune section ressource"
-
-#: rescoff.c:150
-msgid "can't read resource section"
-msgstr "ne peutlire la section ressource"
-
-#: rescoff.c:174
-#, c-format
-msgid "%s: %s: address out of bounds"
-msgstr "%s: %s: adresse est hors limite"
-
-#: rescoff.c:190
-msgid "directory"
-msgstr "répertoire"
-
-#: rescoff.c:218
-msgid "named directory entry"
-msgstr "nom du répertoire d'entrée"
-
-#: rescoff.c:227
-msgid "directory entry name"
-msgstr "nom de l'entrée du répertoire"
-
-#: rescoff.c:247
-msgid "named subdirectory"
-msgstr "nom de sous-répertoire"
-
-#: rescoff.c:255
-msgid "named resource"
-msgstr "nom de ressource"
-
-#: rescoff.c:270
-msgid "ID directory entry"
-msgstr "IDentificateur d'entrée de répertoire"
-
-#: rescoff.c:287
-msgid "ID subdirectory"
-msgstr "IDentificateur de sous-répertoire"
-
-#: rescoff.c:295
-msgid "ID resource"
-msgstr "IDentificateur ressource"
-
-#: rescoff.c:318
-msgid "resource type unknown"
-msgstr "type de ressource inconnue"
-
-#: rescoff.c:321
-msgid "data entry"
-msgstr "aucune donnée"
-
-#: rescoff.c:329
-msgid "resource data"
-msgstr "donnée ressource"
-
-#: rescoff.c:334
-msgid "resource data size"
-msgstr "taille de données ressources"
-
-#: rescoff.c:427
-msgid "filename required for COFF output"
-msgstr "nom de fichier requis pour la sortie de COFF"
-
-#: rescoff.c:719
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr "ne peut obtenir le type de la relocalisation BFD_RELOC_RVA"
-
-#: resrc.c:238 resrc.c:309
-#, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr "ne peut ouvrir un fichier temporaire « %s »: %s"
-
-#: resrc.c:244
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr "ne peut rediriger sur stdout: « %s »: %s"
-
-#: resrc.c:260
-#, c-format
-msgid "%s %s: %s"
-msgstr "%s %s: %s"
-
-#: resrc.c:305
-#, c-format
-msgid "can't execute `%s': %s"
-msgstr "ne peut exécuter « %s »: %s"
-
-#: resrc.c:314
-#, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr "Utilisation d'un fichier temporaire « %s » pour lire la sortie du préprocesseur\n"
-
-#: resrc.c:321
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr "ne peut ouvrir un pipe par popen() « %s »: %s"
-
-#: resrc.c:323
-#, c-format
-msgid "Using popen to read preprocessor output\n"
-msgstr "Utilisation de popen pour lire la sortie du préprocesseur\n"
-
-#: resrc.c:362
-#, c-format
-msgid "Tried `%s'\n"
-msgstr "Essayé « %s »\n"
-
-#: resrc.c:373
-#, c-format
-msgid "Using `%s'\n"
-msgstr "Utilisation de « %s »\n"
-
-#: resrc.c:529
-#, c-format
-msgid "%s:%d: %s\n"
-msgstr "%s:%d: %s\n"
-
-#: resrc.c:537
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr "%s: fin de fichier EOF prématuré"
-
-#: resrc.c:586
-#, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr "%s: lecture de %lu retourné %lu"
-
-#: resrc.c:624 resrc.c:1134
-#, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr "échec d'évaluation par stat() du fichier bitmap « %s »: %s"
-
-#: resrc.c:675
-#, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr "fichier curseur « %s » ne contient aucune donnée de type curseur"
-
-#: resrc.c:707 resrc.c:1003
-#, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr "%s: échec %lu de repérage: %s"
-
-#: resrc.c:831
-msgid "help ID requires DIALOGEX"
-msgstr "identificateur d'aide requiert DIALOGEX"
-
-#: resrc.c:833
-msgid "control data requires DIALOGEX"
-msgstr "donnée de contrôle requiert DIALOGEX"
-
-#: resrc.c:861
-#, c-format
-msgid "stat failed on font file `%s': %s"
-msgstr "échec d'évaluation par stat() du fichier de fontes « %s »: %s"
-
-#: resrc.c:972
-#, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr "fichier d'icônes « %s » ne contient pas de données de type icône"
-
-#: resrc.c:1273 resrc.c:1308
-#, c-format
-msgid "stat failed on file `%s': %s"
-msgstr "échec d'évaluation par stat() sur le fichier « %s »: %s"
-
-#: resrc.c:1494
-#, c-format
-msgid "can't open `%s' for output: %s"
-msgstr "ne peut ouvrir « %s » pour la sortie: %s"
-
-#: size.c:83
-#, c-format
-msgid " Displays the sizes of sections inside binary files\n"
-msgstr "Afficher les tailles des sections à l'intérieur des fichiers binaires\n"
-
-#: size.c:84
-#, c-format
-msgid " If no input file(s) are specified, a.out is assumed\n"
-msgstr "Aucune fichier spécifié à l'entrée a.out est assumé\n"
-
-#: size.c:85
-#, c-format
-msgid ""
-" The options are:\n"
-" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
-" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n"
-" -t --totals Display the total sizes (Berkeley only)\n"
-" --target=<bfdname> Set the binary file format\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-"Les options sont:\n"
-" -A|-B --format={sysv|berkeley} sélection le style de sortie (par défaut %s)\n"
-" -o|-d|-h --radix={8|10|16} afficher les nombres en octal, décimal ou hexadécimal\n"
-" -t --totals afficher les tailles totales (Berkeley seulement)\n"
-" --target=<nombfd> sélectionner le format de fichier binaire\n"
-" @<fichier> lire les options à partir du <fichier>\n"
-" -h --help afficher l'aide-mémoire\n"
-" -V --version afficher le nom et la version du logiciel\n"
-"\n"
-
-#: size.c:158
-#, c-format
-msgid "invalid argument to --format: %s"
-msgstr "argument invalide pour --format: %s"
-
-#: size.c:185
-#, c-format
-msgid "Invalid radix: %s\n"
-msgstr "Base numérique invalide: %s\n"
-
-#: srconv.c:1722
-#, c-format
-msgid "Convert a COFF object file into a SYSROFF object file\n"
-msgstr "Convertir un fichier objet COFF en un fichier objet SYSROFF\n"
-
-#: srconv.c:1723
-#, c-format
-msgid ""
-" The options are:\n"
-" -q --quick (Obsolete - ignored)\n"
-" -n --noprescan Do not perform a scan to convert commons into defs\n"
-" -d --debug Display information about what is being done\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-"Les options sont:\n"
-" -q --quick (obsolète - ignoré)\n"
-" -n --noprescan ne pas faire de scrutation pour convertir les commun en defs\n"
-" -d --debug afficher de l'information à propos de ce qui a été fait\n"
-" @<fichier> lire les options à partir du <fichier>\n"
-" -h --help afficher l'aide-mémoire\n"
-" -V --version afficher le nom et la version du logiciel\n"
-
-#: srconv.c:1869
-#, c-format
-msgid "unable to open output file %s"
-msgstr "incapable d'ouvrir le fichier de sortie %s"
-
-#: stabs.c:330 stabs.c:1708
-msgid "numeric overflow"
-msgstr "débordement numérique"
-
-#: stabs.c:340
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr "Mauvaise inclusion (« stab »): %s\n"
-
-#: stabs.c:348
-#, c-format
-msgid "Warning: %s: %s\n"
-msgstr "AVERTISSEMENT: %s: %s\n"
-
-#: stabs.c:458
-#, c-format
-msgid "N_LBRAC not within function\n"
-msgstr "N_LBRAC n'est pas dans la fonction\n"
-
-#: stabs.c:497
-#, c-format
-msgid "Too many N_RBRACs\n"
-msgstr "Trop de N_RBRAC\n"
-
-#: stabs.c:738
-msgid "unknown C++ encoded name"
-msgstr "nom encode C++ inconnu"
-
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1253
-msgid "unrecognized cross reference type"
-msgstr "type de référence croisée non reconnue"
-
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1800
-msgid "missing index type"
-msgstr "type d'index manquant"
-
-#: stabs.c:2114
-msgid "unknown virtual character for baseclass"
-msgstr "caractère virtuel inconnu pour la classe de base"
-
-#: stabs.c:2132
-msgid "unknown visibility character for baseclass"
-msgstr "caractère de visibilité inconnu pour la classe de base"
-
-#: stabs.c:2318
-msgid "unnamed $vb type"
-msgstr "type $vb inconnu"
-
-#: stabs.c:2324
-msgid "unrecognized C++ abbreviation"
-msgstr "abréviation C++ inconnue"
-
-#: stabs.c:2400
-msgid "unknown visibility character for field"
-msgstr "caractère de visibilité inconnu pour le champ"
-
-#: stabs.c:2652
-msgid "const/volatile indicator missing"
-msgstr "indicateur de const/volatile manquant"
-
-#: stabs.c:2888
-#, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr "Pas de mutilation pour \"n%s\"\n"
-
-#: stabs.c:3188
-msgid "Undefined N_EXCL"
-msgstr "N_EXCL indéfini"
-
-#: stabs.c:3268
-#, c-format
-msgid "Type file number %d out of range\n"
-msgstr "Nombre de type de fichier %d hors limite\n"
-
-#: stabs.c:3273
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr "Nombre de type index %d hors limite\n"
-
-#: stabs.c:3352
-#, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr "Type XCOFF non reconnu %d\n"
-
-#: stabs.c:3644
-#, c-format
-msgid "bad mangled name `%s'\n"
-msgstr "mauvais codage par mutilation du nom « %s »\n"
-
-#: stabs.c:3739
-#, c-format
-msgid "no argument types in mangled string\n"
-msgstr "aucun type d'argument dans la chaîne encodé par mutilation\n"
-
-#: stabs.c:5093
-#, c-format
-msgid "Demangled name is not a function\n"
-msgstr "nom démutilé n'est pas une fonction\n"
-
-#: stabs.c:5135
-#, c-format
-msgid "Unexpected type in v3 arglist demangling\n"
-msgstr "Type inattendu dans la arglist v3 en démutilation\n"
-
-#: stabs.c:5202
-#, c-format
-msgid "Unrecognized demangle component %d\n"
-msgstr "Composant de démutilation non reconnu %d\n"
-
-#: stabs.c:5254
-#, c-format
-msgid "Failed to print demangled template\n"
-msgstr "Échec d'affichage du modèle de démutilation\n"
-
-#: stabs.c:5334
-#, c-format
-msgid "Couldn't get demangled builtin type\n"
-msgstr "N'a pu obtenir le type de démutilation construit\n"
-
-#: stabs.c:5383
-#, c-format
-msgid "Unexpected demangled varargs\n"
-msgstr "Varargs inattendu de démutilation\n"
-
-#: stabs.c:5390
-#, c-format
-msgid "Unrecognized demangled builtin type\n"
-msgstr "type de construit de démutilation non reconnu\n"
-
-#: strings.c:218
-#, c-format
-msgid "invalid number %s"
-msgstr "nombre invalide %s"
-
-#: strings.c:700
-#, c-format
-msgid "invalid integer argument %s"
-msgstr "argument en valeur entière invalide %s"
-
-#: strings.c:709
-#, c-format
-msgid " Display printable strings in [file(s)] (stdin by default)\n"
-msgstr "Afficher les chaîne imprimables des [fichier] (stdin par défaut)\n"
-
-#: strings.c:710
-#, c-format
-msgid ""
-" The options are:\n"
-" -a - --all Scan the entire file, not just the data section\n"
-" -f --print-file-name Print the name of the file before each string\n"
-" -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n"
-" -<number> least [number] characters (default 4).\n"
-" -t --radix={o,d,x} Print the location of the string in base 8, 10 or 16\n"
-" -o An alias for --radix=o\n"
-" -T --target=<BFDNAME> Specify the binary file format\n"
-" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
-" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-"Les options sont:\n"
-" -a - --all scruter entièrement le fichier, pas seulement les sections de données\n"
-" -f --print-file-name afficher le nom du fichier avant chaque chaîne\n"
-" -n --bytes=[nombre] localiser et afficher toute séquence terminées par NULL d'au\n"
-" -<nombre> moins [nombre] de caractères (par défault 4).\n"
-" -t --radix={o,d,x} afficher la localisation de la chaîne en base 8, 10 ou 16\n"
-" -o un alias pour --radix=o\n"
-" -T --target=<NOMBFD> spécifier le format du fichier binaire\n"
-" -e --encoding={s,S,b,l,B,L} sélectionner la taille des caractères et le\n"
-" système de poids fort ou faible:\n"
-" s = 8-bits, {b,l} = 16-bits, {B,L} = 32-bits\n"
-" @<fichier> lire les options à partir du <fichier>\n"
-" -h --help afficher l'aide-mémoire\n"
-" -v --version afficher le nom et la version du logiciel\n"
-
-#: sysdump.c:642
-#, c-format
-msgid "Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "Afficher dans un format humainement lisible l'interprétation du fichier objet SYSROFF\n"
-
-#: sysdump.c:643
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-"Les options sont:\n"
-" -h --help afficher l'aide-mémoire\n"
-" -v --version afficher le nom et la version du logiciel\n"
-
-#: sysdump.c:710
-#, c-format
-msgid "cannot open input file %s"
-msgstr "ne peut ouvrir le fichier d'entrée %s"
-
-#: version.c:35
-#, c-format
-msgid "Copyright 2005 Free Software Foundation, Inc.\n"
-msgstr "Copyright 2005 Free Software Foundation, Inc.\n"
-
-#: version.c:36
-#, c-format
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr ""
-"Ce logiciel est libre; vous pouvez le redistribuer selon les termes de la\n"
-"licence GNU General Public License. AUCUNE garantie n'est donnée.\n"
-
-#: windres.c:204
-#, c-format
-msgid "can't open %s `%s': %s"
-msgstr "ne peut ouvrir %s « %s »: %s"
-
-#: windres.c:370
-#, c-format
-msgid ": expected to be a directory\n"
-msgstr ": espérait un répertoire\n"
-
-#: windres.c:382
-#, c-format
-msgid ": expected to be a leaf\n"
-msgstr ": espérait une feuille\n"
-
-#: windres.c:391
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: AVERTISSEMENT: "
-
-#: windres.c:393
-#, c-format
-msgid ": duplicate value\n"
-msgstr ": valeur dupliquée\n"
-
-#: windres.c:543
-#, c-format
-msgid "unknown format type `%s'"
-msgstr "type de format inconnu « %s »"
-
-#: windres.c:544
-#, c-format
-msgid "%s: supported formats:"
-msgstr "%s: formats supportés:"
-
-#. Otherwise, we give up.
-#: windres.c:627
-#, c-format
-msgid "can not determine type of file `%s'; use the -J option"
-msgstr "ne peut déterminer le type de fichier « %s »; utiliser l'option -J"
-
-#: windres.c:639
-#, c-format
-msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
-msgstr "Usage: %s [options] [fichier-d-entrée] [fichier-de-sortie]\n"
-
-#: windres.c:641
-#, c-format
-msgid ""
-" The options are:\n"
-" -i --input=<file> Name input file\n"
-" -o --output=<file> Name output file\n"
-" -J --input-format=<format> Specify input format\n"
-" -O --output-format=<format> Specify output format\n"
-" -F --target=<target> Specify COFF target\n"
-" --preprocessor=<program> Program to use to preprocess rc file\n"
-" -I --include-dir=<dir> Include directory when preprocessing rc file\n"
-" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
-" -U --undefine <sym> Undefine SYM when preprocessing rc file\n"
-" -v --verbose Verbose - tells you what it's doing\n"
-" -l --language=<val> Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr ""
-"Les options sont:\n"
-" -i --input=<FICHIER> nommer le fichier d'entrée\n"
-" -o --output=<FICHIER> nommer le fichier de sortie\n"
-" -J --input-format=<FORMAT>\n"
-" spécifier le format d'entrée\n"
-" -O --output-format=<FORMAT>\n"
-" spécifier le format de sortie\n"
-" -F --target=<CIBLE> spécifier la CIBLE en COFF\n"
-" --preprocessor=<PROGRAMME> programme à utiliser pour pré-traiter le fichier rc\n"
-" -I --include-dir=<RÉPERTOIRE> inclure le RÉPERTOIRE lors du pré-traitement du fichier rc\n"
-" -D --define SYM[=VALEUR]\n"
-" définir le SYMbole ayant la VALEUR lors du\n"
-" du pré-traitement du fichier rc\n"
-" -v --verbose utiliser le mode bavard\n"
-" -l --language=<val> initialiser le langage lors de la lecture du fichier rc\n"
-" --use-temp-file utiliser un fichier temporaire au lieu de la lecture via\n"
-" popen de la sortie du pré-processeur\n"
-" --no-use-temp-file utiliser popen (par défaut)\n"
-
-#: windres.c:657
-#, c-format
-msgid " --yydebug Turn on parser debugging\n"
-msgstr " --yydebug activer le mode de débug de l'analyseur syntaxique\n"
-
-#: windres.c:660
-#, c-format
-msgid ""
-" -r Ignored for compatibility with rc\n"
-" @<file> Read options from <file>\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-"Les options sont:\n"
-" -r ignoré pour la compatibilité avec rc\n"
-" @<fichier> lire les options à partir du <fichier>\n"
-" -h --help afficher l'aide-mémoire\n"
-" -V --version afficher le nom et la version du logiciel\n"
-
-#: windres.c:665
-#, c-format
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr ""
-"FORMAT est soit rc, res, ou coff, et est dédui à partir l'extension\n"
-"du nom de fichier, si non spécifié. Un nom simple de fichier comme fichier d'entrée\n"
-"L'entrée par défaut se fait à partir de stdin, par défaut pour rc.\n"
-"La sortie par défaut est stdout, par défaut pour rc.\n"
-
-#: windres.c:803
-msgid "invalid option -f\n"
-msgstr "option invalide -f\n"
-
-#: windres.c:808
-msgid "No filename following the -fo option.\n"
-msgstr "Pas de nom de fichier après l'option -fo.\n"
-
-#: windres.c:866
-#, c-format
-msgid "Option -I is deprecated for setting the input format, please use -J instead.\n"
-msgstr "L'option -I est dépréciée pour fixer le format d'entrée, svp utiliser -J à la place.\n"
-
-#: windres.c:984
-msgid "no resources"
-msgstr "aucune ressource"
-
-#: wrstabs.c:354 wrstabs.c:1915
-#, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr "échec de string_hash_lookup: %s"
-
-#: wrstabs.c:635
-#, c-format
-msgid "stab_int_type: bad size %u"
-msgstr "stab_int_type: mauvaise taille %u"
-
-#: wrstabs.c:1393
-#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr "%s: AVERTISSEMENT: taille inconnue pour le champ « %s » dans le struct"
-
-#~ msgid "flags"
-#~ msgstr "fanions"
-
-#~ msgid "debug_str section data"
-#~ msgstr "données de la section debug_str"
-
-#~ msgid "debug_loc section data"
-#~ msgstr "données de la section debug_loc"
-
-#~ msgid "debug_range section data"
-#~ msgstr "données de la section debug_range de mise au point"
-
-#~ msgid "%s: skipping unexpected symbol type %s in relocation in section .rela%s\n"
-#~ msgstr "%s: escamotage inattendu du type de symbole %s dans la section relocalisation .rela%s\n"
-
-#~ msgid "debug_abbrev section data"
-#~ msgstr "données de la section debug_abbrev"
-
-#~ msgid "extracting information from .debug_info section"
-#~ msgstr "extraction d'information à partir de la section .debug_info"
-
-#~ msgid ""
-#~ "\n"
-#~ "The .debug_loc section is empty.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "La section .debug_loc est vide.\n"
-
-#~ msgid ""
-#~ "Contents of the .debug_loc section:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Contenu de la section .debug_loc:\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Contents of the .debug_str section:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Contenu de la section .debug_str:\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "The .debug_ranges section is empty.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "La section .debug_ranges est vide.\n"
-
-#~ msgid ""
-#~ "Contents of the .debug_ranges section:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Contenu de la section .debug_ranges:\n"
-#~ "\n"
-
-#~ msgid "There is a hole [0x%lx - 0x%lx] in .debug_ranges section.\n"
-#~ msgstr "Il y a un trou [0x%lx - 0x%lx] dans la section .debug_ranges.\n"
-
-#~ msgid "There is an overlap [0x%lx - 0x%lx] in .debug_ranges section.\n"
-#~ msgstr "Il y a un trou [0x%lx - 0x%lx] dans la section .debug_ranges.\n"
-
-#~ msgid "debug section data"
-#~ msgstr "données de la section debug"
-
-#~ msgid ""
-#~ "\n"
-#~ "<member %s>\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "<membre %s>\n"
-#~ "\n"
-
-#~ msgid "cannot stat: %s: %s"
-#~ msgstr "ne peut évaluer par stat(): %s: %s"
-
-#~ msgid "%s: cannot stat: %s"
-#~ msgstr "%s: ne peut évaluer par stat(): %s"
-
-#~ msgid "Cannot stat: %s: %s"
-#~ msgstr "Ne peut évaluer par stat(): %s: %s"
-
-#~ msgid "Out of virtual memory"
-#~ msgstr "Mémoire virtuelle épuisée"
-
-#~ msgid "%s has no %s section"
-#~ msgstr "%s n'as pas de section %s"
-
-#~ msgid "Reading %s section of %s failed: %s\n"
-#~ msgstr "Lecture de la section %s de %s a échouée: %s\n"
-
-#~ msgid "Skipping unexpected symbol type %u\n"
-#~ msgstr "Escamotage du type de symbole inattendu %u\n"
-
-#~ msgid "dynamic segment"
-#~ msgstr "segment dynamique"
-
-#~ msgid "Cannot stat input file %s.\n"
-#~ msgstr "Ne peut évaluer par stat() le fichier d'entrée %s.\n"
-
-#~ msgid "%s: rename: %s"
-#~ msgstr "%s: changé de nom: %s"
-
-#~ msgid "%s: simple_copy: %s"
-#~ msgstr "%s: simple copie: %s"
-
-#~ msgid "debug_record_variable: no current block"
-#~ msgstr "debug_record_variable: aucun bloc courant"
-
-#~ msgid "%s: No dynamic symbols"
-#~ msgstr "%s: aucun symboles dynamiques"
-
-#~ msgid "64-bit DWARF line info is not supported yet.\n"
-#~ msgstr "ligne info DWARF 64 bits n'est pas encore supportée.\n"
-
-#~ msgid "64-bit DWARF pubnames are not supported yet.\n"
-#~ msgstr "noms publics DWARF 64 bits ne sont pas encore supportés\n"
-
-#~ msgid "64-bit DWARF debug info is not supported yet.\n"
-#~ msgstr "info de débug DWARF 64 bits n'est pas encore supportée.\n"
-
-#~ msgid "64-bit DWARF aranges are not supported yet.\n"
-#~ msgstr "gamme aranges DWARF de 64 bits n'est pas encore supportée.\n"
-
-#~ msgid "64-bit DWARF format frames are not supported yet.\n"
-#~ msgstr "gamme aranges DWARF de 64 bits n'est pas encore supportée.\n"
-
-#~ msgid ""
-#~ " -h --help Print this help message\n"
-#~ " -V --version Print version information\n"
-#~ msgstr ""
-#~ " -h --help afficher l'aide-mémoire\n"
-#~ " -V --version afficher le nom et la version du logiciel\n"
-
-#~ msgid ""
-#~ "Usage: %s [-CfsHV] [-b bfdname] [--target=bfdname]\n"
-#~ " [-e executable] [--exe=executable] [--demangle[=style]]\n"
-#~ " [--basenames] [--functions] [addr addr ...]\n"
-#~ msgstr ""
-#~ "Usage: %s [-CfsHV] [-b nombdf] [--target=nombdf]\n"
-#~ " [-e executable] [--exe=executable] [--demangle[=style]]\n"
-#~ " [--basenames] [--functions] [adr adr ...]\n"
-
-#~ msgid ""
-#~ "Usage: %s [-dhV] [-I bfdname] [-O bfdname] [-T header-file] [-l linker]\n"
-#~ " [--input-target=bfdname] [--output-target=bfdname]\n"
-#~ " [--header-file=file] [--linker=linker] [--debug]\n"
-#~ " [--help] [--version]\n"
-#~ " [in-file [out-file]]\n"
-#~ msgstr ""
-#~ "Usage: %s [-dhV] [-I nombfd] [-O nombfd] [-T fichier_en_tete] [-l editeur_de_lien]\n"
-#~ " [--input-target=nombfd] [--output-target=nombfd]\n"
-#~ " [--header-file=fichier] [--linker=editeur_de_liens] [--debug]\n"
-#~ " [--help] [--version]\n"
-#~ " [fichier_d_entree [fichier_de_sortie]]\n"
-
-#~ msgid "Usage: %s [OPTION]... [FILE]...\n"
-#~ msgstr "Usage: %s [OPTIONS]... [FICHIER]...\n"
-
-#~ msgid "Usage: %s OPTION... FILE...\n"
-#~ msgstr "Usage: %s OPTION... FICHIER...\n"
-
-#~ msgid " Options are:\n"
-#~ msgstr " Les options sont:\n"
-
-#~ msgid " -a or --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-#~ msgstr " -a ou --all équivalent à: -h -l -S -s -r -d -V -A -I\n"
-
-#~ msgid " -h or --file-header Display the ELF file header\n"
-#~ msgstr " -h ou --file-header afficher l'en-tête du fichier ELF\n"
-
-#~ msgid " -l or --program-headers or --segments\n"
-#~ msgstr " -l ou --program-headers ou --segments\n"
-
-#~ msgid " Display the program headers\n"
-#~ msgstr " afficher les en-têtes du programme\n"
-
-#~ msgid " -S or --section-headers or --sections\n"
-#~ msgstr " -S ou --section-headers ou --sections\n"
-
-#~ msgid " Display the sections' header\n"
-#~ msgstr " afficher l'en-tête des sections\n"
-
-#~ msgid " -e or --headers Equivalent to: -h -l -S\n"
-#~ msgstr " -e ou --headers équivalent à: -h -l -S\n"
-
-#~ msgid " -s or --syms or --symbols Display the symbol table\n"
-#~ msgstr " -s ou --syms ou --symbols afficher la table de symboles\n"
-
-#~ msgid " -n or --notes Display the core notes (if present)\n"
-#~ msgstr " -n ou --notes afficher les notes du core (si disponible)\n"
-
-#~ msgid " -r or --relocs Display the relocations (if present)\n"
-#~ msgstr " -r ou --relocs afficher les relocalisations (si disponibles)\n"
-
-#~ msgid " -u or --unwind Display the unwind info (if present)\n"
-#~ msgstr " -u ou --unwind afficher les infos unwind (si disponibles)\n"
-
-#~ msgid " -d or --dynamic Display the dynamic segment (if present)\n"
-#~ msgstr " -d ou --dynamic afficher le segement dynamique (si disponible)\n"
-
-#~ msgid " -V or --version-info Display the version sections (if present)\n"
-#~ msgstr " -V ou --version-info afficher la version des sections (si disponible)\n"
-
-#~ msgid " -A or --arch-specific Display architecture specific information (if any).\n"
-#~ msgstr " -A ou --arch-specific afficher les informations de spécificités d'architecture (si disponible).\n"
-
-#~ msgid " -D or --use-dynamic Use the dynamic section info when displaying symbols\n"
-#~ msgstr " -D ou --use-dynamic utiliser les infos de la section dynamique lors de l'affichage des symboles\n"
-
-#~ msgid " -x <number> or --hex-dump=<number>\n"
-#~ msgstr " -x <nombre> ou --hex-dump=<nombre>\n"
-
-#~ msgid " Dump the contents of section <number>\n"
-#~ msgstr " vidanger le contenu de la section <nombre>\n"
-
-#~ msgid " -w[liaprmfs] or --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]\n"
-#~ msgstr " -w[liaprmfs] ou --debug-dump[=ligne,=info,=abbrev,=nompub,=plages,=macro,=trames,=str]\n"
-
-#~ msgid " Display the contents of DWARF2 debug sections\n"
-#~ msgstr " afficher le contenu des sections DWARF2 de débug\n"
-
-#~ msgid " -i <number> or --instruction-dump=<number>\n"
-#~ msgstr " -i <nombre> ou --instruction-dump=<nombre>\n"
-
-#~ msgid " -I or --histogram Display histogram of bucket list lengths\n"
-#~ msgstr " -I ou --histogram afficher l'histogramme of bucket list lengths\n"
-
-#~ msgid " -v or --version Display the version number of readelf\n"
-#~ msgstr " -v ou --version afficher le numéro de version de readelf\n"
-
-#~ msgid " -W or --wide Don't split lines or truncate symbols to fit into 80 columns\n"
-#~ msgstr " -W ou --wide ne pas couper les lignes ou tronquer les symboles pour s'insérer dans 80 colonnes\n"
-
-#~ msgid " -H or --help Display this information\n"
-#~ msgstr " -H ou --help afficher cette information\n"
-
-#~ msgid "unexpected dialog signature %d"
-#~ msgstr "signature de dialogue inattendue %d"
-
-#~ msgid ""
-#~ "Usage: %s [-A | --format=sysv | -B | --format=berkeley]\n"
-#~ " [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n"
-#~ " [-V | --version] [--target=bfdname] [--help] [file...]\n"
-#~ msgstr ""
-#~ "Usage: %s [-A | --format=sysv | -B | --format=berkeley]\n"
-#~ " [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n"
-#~ " [-V | --version] [--target=nombfd] [--help] [FICHIER...]\n"
-
-#~ msgid "default is --format=berkeley\n"
-#~ msgstr "par défaut --format=berkeley\n"
-
-#~ msgid "default is --format=sysv\n"
-#~ msgstr "par défaut --format=sysv\n"
-
-#~ msgid "Usage: %s [-dhVq] in-file [out-file]\n"
-#~ msgstr "Usage: %s [-dhVq] fichier-entrée [fichier-sortie]\n"
-
-#~ msgid ""
-#~ "Usage: %s [-afov] [-n min-len] [-min-len] [-t {o,x,d}] [-e {s,b,l,B,L}]\n"
-#~ " [-] [--all] [--print-file-name] [--bytes=min-len] [--radix={o,x,d}]\n"
-#~ " [--target=bfdname] [--encoding {s,b,l,B,L}] [--help] [--version] file...\n"
-#~ msgstr ""
-#~ "Usage: %s [-afov] [-n longueur-min] [-min-len] [-t {o,x,d}] [-e {s,b,l,B,L}]\n"
-#~ " [-] [--all] [--print-file-name] [--bytes=longueur-min] [--radix={o,x,d}]\n"
-#~ " [--target=nom_bfd] [--encoding {s,b,l,B,L}] [--help] [--version] file...\n"
-
-#~ msgid "Usage: %s [-hV] in-file\n"
-#~ msgstr "Usage: %s [-hV] fichier-entrée\n"
-
-#~ msgid "GNU %s version %s\n"
-#~ msgstr "GNU %s version %s\n"
-
-#~ msgid "no export definition file provided"
-#~ msgstr "aucun fichier de définition d'exports fourni"
-
-#~ msgid " The switches are:\n"
-#~ msgstr " Les commutateurs sont:\n"
-
-#~ msgid "Unable to seek to start of %s at %x\n"
-#~ msgstr "Incapable de repérer le début de %s à %x\n"
-
-#~ msgid "Unable to read data at %x for %s\n"
-#~ msgstr "Incapable de lire les données à %x de %s\n"
-
-#~ msgid "ELF32"
-#~ msgstr "ELF32"
-
-#~ msgid "ELF64"
-#~ msgstr "ELF64"
-
-#~ msgid "UNIX - System V"
-#~ msgstr "UNIX - System V"
-
-#~ msgid "UNIX - HP-UX"
-#~ msgstr "UNIX - HP-UX"
-
-#~ msgid "UNIX - NetBSD"
-#~ msgstr "UNIX - NetBSD"
-
-#~ msgid "UNIX - Linux"
-#~ msgstr "UNIX - Linux"
-
-#~ msgid "GNU/Hurd"
-#~ msgstr "GNU/Hurd"
-
-#~ msgid "UNIX - Solaris"
-#~ msgstr "UNIX - Solaris"
-
-#~ msgid "UNIX - AIX"
-#~ msgstr "UNIX - AIX"
-
-#~ msgid "UNIX - IRIX"
-#~ msgstr "UNIX - IRIX"
-
-#~ msgid "UNIX - FreeBSD"
-#~ msgstr "UNIX - FreeBSD"
-
-#~ msgid "UNIX - TRU64"
-#~ msgstr "UNIX - TRU64"
-
-#~ msgid "Novell - Modesto"
-#~ msgstr "Novell - Modesto"
-
-#~ msgid "UNIX - OpenBSD"
-#~ msgstr "UNIX - OpenBSD"
-
-#~ msgid "ARM"
-#~ msgstr "ARM"
-
-#~ msgid "Key to Flags:\n"
-#~ msgstr "Clé des fanions:\n"
-
-#~ msgid " W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-#~ msgstr " W (écrit), A (alloc), X (exécution), M (fusion), S (chaînes)\n"
-
-#~ msgid " I (info), L (link order), G (group), x (unknown)\n"
-#~ msgstr " I (info), L (ordre de liens), G (groupe), x (inconnu)\n"
-
-#~ msgid " O (extra OS processing required) o (OS specific), p (processor specific)\n"
-#~ msgstr " O (traitement additionnel sys. exploit. requis) o (spécificités sys. esploit.), p (spécificités de processeur)\n"
-
-#~ msgid "Unable to handle FORM: %d"
-#~ msgstr "Incapable de traiter la FORME: %d"
-
-#~ msgid "64 bit data type and so it cannot read 64 bit ELF files.\n"
-#~ msgstr "type de données de 64 bits et ne peut lire un fichier ELF de 64 bits.\n"
diff --git a/binutils-2.17/binutils/po/ja.gmo b/binutils-2.17/binutils/po/ja.gmo
deleted file mode 100644
index 5152d33b..00000000
--- a/binutils-2.17/binutils/po/ja.gmo
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/po/ja.po b/binutils-2.17/binutils/po/ja.po
deleted file mode 100644
index a140b41e..00000000
--- a/binutils-2.17/binutils/po/ja.po
+++ /dev/null
@@ -1,4110 +0,0 @@
-# Japanese message for binutils 2.11
-# Copyright (C) 2001 Free Software Foundation, Inc.
-# Daisuke Yamashita <yamad@mb.infoweb.ne.jp>, 2001.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: binutils 2.11\n"
-"POT-Creation-Date: 2001-01-11 12:02-0800\n"
-"PO-Revision-Date: 2001-12-16 16:10+0900\n"
-"Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
-"Language-Team: Japanese <ja@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=EUC-JP\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: addr2line.c:76
-#, c-format
-msgid ""
-"Usage: %s [-CfsHV] [-b bfdname] [--target=bfdname]\n"
-" [-e executable] [--exe=executable] [--demangle[=style]]\n"
-" [--basenames] [--functions] [addr addr ...]\n"
-msgstr ""
-"»È¤¤Êý: %s [-CfsHV] [-b bfd̾] [--target=bfd̾]\n"
-" [-e ¼Â¹Ô¥Õ¥¡¥¤¥ë] [--exe=¼Â¹Ô¥Õ¥¡¥¤¥ë] [--demangle[=Êý¼°]]\n"
-" [--basenames] [--functions] [¥¢¥É¥ì¥¹ ¥¢¥É¥ì¥¹ ...]\n"
-
-#: addr2line.c:83 ar.c:288 nlmconv.c:1119 objcopy.c:373 objcopy.c:405
-#: readelf.c:1876 size.c:91 strings.c:530 windres.c:737
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï %s ¤Þ¤Ç\n"
-
-#: addr2line.c:243
-#, c-format
-msgid "%s: can not get addresses from archive"
-msgstr "%s: ¥¢¡¼¥«¥¤¥Ö¤«¤é¥¢¥É¥ì¥¹¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
-
-#: addr2line.c:310 nm.c:436 objdump.c:2857
-#, c-format
-msgid "unknown demangling style `%s'"
-msgstr "̾Á°Éü¸µ (demangle) ¤ÎÊý¼° `%s' ¤¬ÉÔÌÀ¤Ç¤¹"
-
-#: ar.c:236
-#, c-format
-msgid "no entry %s in archive\n"
-msgstr "¹àÌÜ %s ¤¬¥¢¡¼¥«¥¤¥ÖÃæ¤Ë¤¢¤ê¤Þ¤»¤ó\n"
-
-#: ar.c:253
-#, c-format
-msgid "Usage: %s [-X32_64] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"
-msgstr "»È¤¤Êý: %s [-X32_64] [-]{dmpqrstx}[abcfilNoPsSuvV] [¥á¥ó¥Ð̾] [¥«¥¦¥ó¥È] ½ñ¸Ë¥Õ¥¡¥¤¥ë ¥Õ¥¡¥¤¥ë...\n"
-
-#: ar.c:256
-#, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr " %s -M [<mri-¥¹¥¯¥ê¥×¥È]\n"
-
-#: ar.c:257
-msgid " commands:\n"
-msgstr " ¥³¥Þ¥ó¥É:\n"
-
-#: ar.c:258
-msgid " d - delete file(s) from the archive\n"
-msgstr " d - ½ñ¸Ë¤«¤é¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë\n"
-
-#: ar.c:259
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr " m[ab] - ½ñ¸ËÆâ¤Î¥Õ¥¡¥¤¥ë¤ò°ÜÆ°¤¹¤ë\n"
-
-#: ar.c:260
-msgid " p - print file(s) found in the archive\n"
-msgstr " p - ½ñ¸ËÆâ¤Î¥Õ¥¡¥¤¥ë¤òɽ¼¨¤¹¤ë\n"
-
-#: ar.c:261
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr " q[f] - ½ñ¸Ë¤Ø¥Õ¥¡¥¤¥ë¤ò®¤¯Äɲ乤ë\n"
-
-#: ar.c:262
-msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr " r[ab][f][u] - ½ñ¸Ë¤Ø¿·µ¬¥Õ¥¡¥¤¥ë¤òÁÞÆþ¡¢´û¸¥Õ¥¡¥¤¥ë¤Ê¤é¤ÐÃÖ´¹¤¨¤ë\n"
-
-#: ar.c:263
-msgid " t - display contents of archive\n"
-msgstr " t - ¥¢¡¼¥«¥¤¥Ö¤ÎÆâÍƤòɽ¼¨¤¹¤ë\n"
-
-#: ar.c:264
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr " x[o] - ¥¢¡¼¥«¥¤¥Ö¤«¤é¥Õ¥¡¥¤¥ë¤òÃê½Ð¤¹¤ë\n"
-
-#: ar.c:265
-msgid " command specific modifiers:\n"
-msgstr " ¥³¥Þ¥ó¥É»ØÄ꽤¾þ»Ò:\n"
-
-#: ar.c:266
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr " [a] - [¥á¥ó¥Ð̾] ¤Î¸å¤í¤Ë¥Õ¥¡¥¤¥ë¤òÃÖ¤¯\n"
-
-#: ar.c:267
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr " [b] - [¥á¥ó¥Ð̾] ¤ÎÁ°¤Ë¥Õ¥¡¥¤¥ë¤ò¤ª¤¯ ([i] ¤ÈƱ¤¸)\n"
-
-#: ar.c:268
-msgid " [N] - use instance [count] of name\n"
-msgstr " [N] - Ʊ̾¥¤¥ó¥¹¥¿¥ó¥¹¤Ç [¥«¥¦¥ó¥È] ÈÖÌܤΤâ¤Î¤ò»È¤¦\n"
-
-#: ar.c:269
-msgid " [f] - truncate inserted file names\n"
-msgstr " [f] - ÁÞÆþ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤òÀÚ¤êµÍ¤á¤ë\n"
-
-#: ar.c:270
-msgid " [P] - use full path names when matching\n"
-msgstr " [P] - ̾Á°¤Î°ìÃפòÄ´¤Ù¤ëºÝ¤Ë´°Á´¥Ñ¥¹¤ò»È¤¦\n"
-
-#: ar.c:271
-msgid " [o] - preserve original dates\n"
-msgstr " [o] - ËÜÍè¤ÎÆüÉÕ¤òÊÝ»ý¤¹¤ë\n"
-
-#: ar.c:272
-msgid " [u] - only replace files that are newer than current archive contents\n"
-msgstr " [u] - ¸½ºß¤Î½ñ¸Ë¤ËÆþ¤Ã¤Æ¤¤¤ë¤â¤Î¤è¤ê¿·¤·¤¤¥Õ¥¡¥¤¥ë¤À¤±¤òÃÖ´¹¤¨¤ë\n"
-
-#: ar.c:273
-msgid " generic modifiers:\n"
-msgstr " °ìÈ̽¤¾þ»Ò:\n"
-
-#: ar.c:274
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr " [c] - ¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ëɬÍפ¬¤¢¤ë¤È¤­¤Ç¤â·Ù¹ð¤·¤Ê¤¤\n"
-
-#: ar.c:275
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr " [s] - ½ñ¸Ë¤Îº÷°ú¤òºîÀ®¤¹¤ë (ranlib ¤ò»²¾È)\n"
-
-#: ar.c:276
-msgid " [S] - do not build a symbol table\n"
-msgstr " [S] - ¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ò¹½ÃÛ¤·¤Ê¤¤\n"
-
-#: ar.c:277
-msgid " [v] - be verbose\n"
-msgstr " [v] - ñÁÀå¥â¡¼¥É¤Ë¤¹¤ë\n"
-
-#: ar.c:278
-msgid " [V] - display the version number\n"
-msgstr " [V] - ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤¹¤ë\n"
-
-#: ar.c:279
-msgid " [-X32_64] - (ignored)\n"
-msgstr " [-X32_64] - (̵»ë¤µ¤ì¤ë)\n"
-
-#: ar.c:283
-#, c-format
-msgid "Usage: %s [-vV] archive\n"
-msgstr "»È¤¤Êý: %s [-vV] ½ñ¸Ë\n"
-
-#: ar.c:499
-msgid "two different operation options specified"
-msgstr "Æó¤Ä¤Î°Û¤Ê¤Ã¤¿Áàºî¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-
-#: ar.c:574
-#, c-format
-msgid "illegal option -- %c"
-msgstr "ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹ -- %c"
-
-#: ar.c:606
-msgid "no operation specified"
-msgstr "Áàºî¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: ar.c:609
-msgid "`u' is only meaningful with the `r' option."
-msgstr "`u' ¤Ï `r' ¥ª¥×¥·¥ç¥ó¤È°ì½ï¤Ë»È¤Ã¤Æ¤³¤½°ÕÌ£¤¬¤¢¤ê¤Þ¤¹¡£"
-
-#: ar.c:619
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr "`N' ¤Ï `x' ¤ä `d' ¥ª¥×¥·¥ç¥ó¤È°ì½ï¤Ë»È¤Ã¤Æ¤³¤½°ÕÌ£¤¬¤¢¤ê¤Þ¤¹¡£"
-
-#: ar.c:622
-msgid "Value for `N' must be positive."
-msgstr "`N' ¤ËÂФ¹¤ëÃͤÏÀµ¤Î¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-
-#: ar.c:705
-#, c-format
-msgid "internal error -- this option not implemented"
-msgstr "ÆâÉô¥¨¥é¡¼ -- ¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: ar.c:824 ar.c:876 ar.c:1322 objcopy.c:1124
-#, c-format
-msgid "internal stat error on %s"
-msgstr "ÆâÉô¾õÂÖ¥¨¥é¡¼¤¬ %s ¤ÇȯÀ¸¤·¤Þ¤·¤¿"
-
-#: ar.c:828
-#, c-format
-msgid "\n<member %s>\n\n"
-msgstr "\n<¥á¥ó¥Ð %s>\n\n"
-
-#: ar.c:845 ar.c:913
-#, c-format
-msgid "%s is not a valid archive"
-msgstr "%s ¤ÏÀµ¾ï¤Ê½ñ¸Ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ar.c:881
-#, c-format
-msgid "stat returns negative size for %s"
-msgstr "stat(2) ¤¬ %s ¤Î¥µ¥¤¥º¤È¤·¤ÆÉé¤Î¿ô¤òÊÖ¤·¤Þ¤·¤¿"
-
-#: ar.c:1008
-#, c-format
-msgid "%s is not an archive"
-msgstr "%s ¤Ï½ñ¸Ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ar.c:1015
-#, c-format
-msgid "creating %s"
-msgstr "%s ¤òºîÀ®¤·¤Þ¤¹"
-
-#: ar.c:1221
-#, c-format
-msgid "No member named `%s'\n"
-msgstr "`%s' ¤È¤¤¤¦Ì¾Á°¤Î¥á¥ó¥Ð¤Ï¤¢¤ê¤Þ¤»¤ó\n"
-
-#: ar.c:1273
-#, c-format
-msgid "no entry %s in archive %s!"
-msgstr "¥¨¥ó¥È¥ê %s ¤Ï½ñ¸Ë %s ¤Ë¤¢¤ê¤Þ¤»¤ó!"
-
-#: ar.c:1434
-#, c-format
-msgid "%s: no archive map to update"
-msgstr "%s: ¹¹¿·¤¹¤Ù¤­½ñ¸Ë¥Þ¥Ã¥×¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: arsup.c:88
-#, c-format
-msgid "No entry %s in archive.\n"
-msgstr "¥¨¥ó¥È¥ê %s ¤Ï½ñ¸ËÆâ¤Ë¤¢¤ê¤Þ¤»¤ó¡£\n"
-
-#: arsup.c:120
-#, c-format
-msgid "Can't open file %s\n"
-msgstr "¥Õ¥¡¥¤¥ë %s¤ò³«¤±¤Þ¤»¤ó\n"
-
-#: arsup.c:170
-#, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr "%s: ½ÐÎϽñ¸Ë %s ¤ò³«¤±¤Þ¤»¤ó\n"
-
-#: arsup.c:182
-#, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr "%s: ÆþÎϽñ¸Ë %s ¤ò³«¤±¤Þ¤»¤ó\n"
-
-#: arsup.c:188
-#, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr "%s: ¥Õ¥¡¥¤¥ë %s ¤Ï½ñ¸Ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó\n"
-
-#: arsup.c:229
-#, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr "%s: ½ÐÎϽñ¸Ë¤¬¤Þ¤À»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-
-#: arsup.c:249 arsup.c:284 arsup.c:320 arsup.c:340 arsup.c:398
-#, c-format
-msgid "%s: no open output archive\n"
-msgstr "%s: ½ÐÎÏÍѽñ¸Ë¤¬³«¤«¤ì¤Æ¤¤¤Þ¤»¤ó\n"
-
-#: arsup.c:257 arsup.c:358 arsup.c:378
-#, c-format
-msgid "%s: can't open file %s\n"
-msgstr "%s: ¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó\n"
-
-#: arsup.c:305 arsup.c:374 arsup.c:453
-#, c-format
-msgid "%s: can't find module file %s\n"
-msgstr "%s: ¥â¥¸¥å¡¼¥ë¥Õ¥¡¥¤¥ë %s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó\n"
-
-#: arsup.c:405
-#, c-format
-msgid "Current open archive is %s\n"
-msgstr "¸½ºß³«¤«¤ì¤¿½ñ¸Ë¤Ï %s ¤Ç¤¹\n"
-
-#: arsup.c:432
-#, c-format
-msgid "%s: no open archive\n"
-msgstr "%s: ³«¤¤¤Æ¤¤¤ë½ñ¸Ë¤¬¤¢¤ê¤Þ¤»¤ó\n"
-
-#: bucomm.c:135
-#, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr "BFD ¥Ç¥Õ¥©¥ë¥È¥¿¡¼¥²¥Ã¥È¤ò `%s' ¤ËÀßÄê¤Ç¤­¤Þ¤»¤ó: %s"
-
-#: bucomm.c:147
-#, c-format
-msgid "%s: Matching formats:"
-msgstr "%s: ·Á¼°¤ò¾È¹ç¤·¤Þ¤¹:"
-
-#: bucomm.c:164
-msgid "Supported targets:"
-msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¿¡¼¥²¥Ã¥È:"
-
-#: bucomm.c:166
-#, c-format
-msgid "%s: supported targets:"
-msgstr "%s: ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¿¡¼¥²¥Ã¥È:"
-
-#: bucomm.c:272
-#, c-format
-msgid "%s: bad number: %s"
-msgstr "%s: ÉÔÀµ¤ÊÈÖ¹æ: %s"
-
-#: coffdump.c:94
-#, c-format
-msgid "#lines %d "
-msgstr "#¹Ô %d "
-
-#: coffdump.c:456 sysdump.c:719
-#, c-format
-msgid "%s: Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "%s: SYSROFF ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î²ò¼á¤ò¿Í´Ö¤¬Æɤߤ䤹¤¤·Á¼°¤Çɽ¼¨¤¹¤ë\n"
-
-#: coffdump.c:498 srconv.c:1941 sysdump.c:755
-#, c-format
-msgid "GNU %s version %s\n"
-msgstr "GNU %s ¥Ð¡¼¥¸¥ç¥ó %s\n"
-
-#: coffdump.c:516 srconv.c:1975 sysdump.c:775
-msgid "no input file specified"
-msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: debug.c:653
-msgid "debug_add_to_current_namespace: no current file"
-msgstr "debug_add_to_current_namespace: ¸½ºß¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: debug.c:736
-msgid "debug_start_source: no debug_set_filename call"
-msgstr "debug_start_source: debug_set_filename ¸Æ¤Ó½Ð¤·¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: debug.c:795
-msgid "debug_record_function: no debug_set_filename call"
-msgstr "debug_record_function: debug_set_filename ¸Æ¤Ó½Ð¤·¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: debug.c:851
-msgid "debug_record_parameter: no current function"
-msgstr "debug_record_parameter: ¸½ºß¤Î´Ø¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: debug.c:885
-msgid "debug_end_function: no current function"
-msgstr "debug_end_function: ¸½ºß¤Î´Ø¿ô¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: debug.c:891
-msgid "debug_end_function: some blocks were not closed"
-msgstr "debug_end_function: ÊĤ¸¤é¤ì¤Æ¤¤¤Ê¤¤¥Ö¥í¥Ã¥¯¤¬¤¢¤ê¤Þ¤¹"
-
-#: debug.c:921
-msgid "debug_start_block: no current block"
-msgstr "debug_start_block: ¸½ºß¤Î¥Ö¥í¥Ã¥¯¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: debug.c:959
-msgid "debug_end_block: no current block"
-msgstr "debug_end_block: ¸½ºß¤Î¥Ö¥í¥Ã¥¯¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: debug.c:966
-msgid "debug_end_block: attempt to close top level block"
-msgstr "debug_end_block: ¥È¥Ã¥×¥ì¥Ù¥ë¥Ö¥í¥Ã¥¯¤òÊĤ¸¤è¤¦¤È¤·¤Þ¤·¤¿"
-
-#: debug.c:992
-msgid "debug_record_line: no current unit"
-msgstr "debug_record_line: ¸½ºß¤Î¥æ¥Ë¥Ã¥È¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#. FIXME
-#: debug.c:1046
-msgid "debug_start_common_block: not implemented"
-msgstr "debug_start_common_block: ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#. FIXME
-#: debug.c:1058
-msgid "debug_end_common_block: not implemented"
-msgstr "debug_end_common_block: ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#. FIXME.
-#: debug.c:1152
-msgid "debug_record_label not implemented"
-msgstr "debug_record_label ¤Ï¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: debug.c:1178
-msgid "debug_record_variable: no current file"
-msgstr "debug_record_variable: ¸½ºß¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: debug.c:1194
-msgid "debug_record_variable: no current block"
-msgstr "debug_record_variable: ¸½ºß¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: debug.c:1764
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr "debug_make_undefined_type: ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¼ïÎà¤Ç¤¹"
-
-#: debug.c:1970
-msgid "debug_name_type: no current file"
-msgstr "debug_name_type: ¸½ºß¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: debug.c:2018
-msgid "debug_tag_type: no current file"
-msgstr "debug_tag_type: ¸½ºß¤Î¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: debug.c:2026
-msgid "debug_tag_type: extra tag attempted"
-msgstr "debug_tag_type: ;ʬ¤Ê¥¿¥°¤¬»î¤µ¤ì¤Þ¤·¤¿"
-
-#: debug.c:2066
-#, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr "·Ù¹ð: ·¿¤Î¥µ¥¤¥º¤ò %d ¤«¤é %d ¤ËÊѹ¹¤·¤Þ¤¹\n"
-
-#: debug.c:2090
-msgid "debug_find_named_type: no current compilation unit"
-msgstr "debug_find_named_type: ¸½ºß¤Î¥³¥ó¥Ñ¥¤¥ëñ°Ì¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: debug.c:2197
-#, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr "debug_get_real_type: %s ¤Î¥Ç¥Ð¥Ã¥°¾ðÊ󤬽۴Ĥ·¤Æ¤¤¤Þ¤¹\n"
-
-#: debug.c:2662
-msgid "debug_write_type: illegal type encountered"
-msgstr "debug_write_type: ÉÔÀµ¤Ê·¿¤ËÁø¶ø¤·¤Þ¤·¤¿"
-
-#: dlltool.c:737 dlltool.c:762 dlltool.c:788
-#, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr "ÆâÉô¥¨¥é¡¼: ÉÔÌÀ¤Ê¥Þ¥·¥ó·¿¤Ç¤¹: %d"
-
-#: dlltool.c:825
-#, c-format
-msgid "Can't open def file: %s"
-msgstr "ÄêµÁ¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: %s"
-
-#: dlltool.c:830
-#, c-format
-msgid "Processing def file: %s"
-msgstr "ÄêµÁ¥Õ¥¡¥¤¥ë¤ò½èÍý¤·¤Þ¤¹: %s"
-
-#: dlltool.c:834
-msgid "Processed def file"
-msgstr "ÄêµÁ¥Õ¥¡¥¤¥ë¤ò½èÍý¤·¤Þ¤·¤¿"
-
-#: dlltool.c:859
-#, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr "ÄêµÁ¥Õ¥¡¥¤¥ë¤Çʸˡ¥¨¥é¡¼¤Ç¤¹ %s:%d"
-
-#: dlltool.c:892
-#, c-format
-msgid "NAME: %s base: %x"
-msgstr "NAME: %s ¥Ù¡¼¥¹: %x"
-
-#: dlltool.c:895 dlltool.c:914
-msgid "Can't have LIBRARY and NAME"
-msgstr "LIBRARY ¤ä NAME ¤ò»ý¤Æ¤Þ¤»¤ó"
-
-#: dlltool.c:911
-#, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr "LIBRARY: %s ¥Ù¡¼¥¹: %x"
-
-#: dlltool.c:1169 resrc.c:271
-#, c-format
-msgid "wait: %s"
-msgstr "wait: %s"
-
-#: dlltool.c:1174 dllwrap.c:456 resrc.c:276
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr "»Ò¥×¥í¥»¥¹¤¬Ã×̿Ū¤Ê¥·¥°¥Ê¥ë¤ò %d ¼õ¤±¼è¤ê¤Þ¤·¤¿"
-
-#: dlltool.c:1180 dllwrap.c:463 resrc.c:283
-#, c-format
-msgid "%s exited with status %d"
-msgstr "%s ¤Ï¥¹¥Æ¡¼¥¿¥¹ %d ¤Ç½ªÎ»¤·¤Þ¤·¤¿"
-
-#: dlltool.c:1212
-#, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr "%s ¥»¥¯¥·¥ç¥ó(%s Æâ) ¤«¤é¾ðÊó¤ò¼è¤ê¹þ¤ß¤Þ¤¹"
-
-#: dlltool.c:1336
-#, c-format
-msgid "Excluding symbol: %s"
-msgstr "¥·¥ó¥Ü¥ë¤ò½ü³°¤·¤Þ¤¹: %s"
-
-#: dlltool.c:1431 dlltool.c:1442 nm.c:946 nm.c:957 objdump.c:443 objdump.c:460
-#, c-format
-msgid "%s: no symbols"
-msgstr "%s: ¥·¥ó¥Ü¥ë¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#. FIXME: we ought to read in and block out the base relocations
-#: dlltool.c:1469
-#, c-format
-msgid "Done reading %s"
-msgstr "%s ¤ÎÆɼè¤ê¤¬´°Î»¤·¤Þ¤·¤¿"
-
-#: dlltool.c:1480
-#, c-format
-msgid "Unable to open object file: %s"
-msgstr "¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: %s"
-
-#: dlltool.c:1483
-#, c-format
-msgid "Scanning object file %s"
-msgstr "¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë %s ¤òÁöºº¤·¤Þ¤¹"
-
-#: dlltool.c:1498
-#, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr "½ñ¸Ë¥Õ¥¡¥¤¥ë¤«¤é mcore-elf dll ¤òÀ¸À®¤Ç¤­¤Þ¤»¤ó: %s"
-
-#: dlltool.c:1590
-msgid "Adding exports to output file"
-msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ë exports ¤òÄɲä·¤Þ¤¹"
-
-#: dlltool.c:1635
-msgid "Added exports to output file"
-msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë¤Ë exports ¤òÄɲä·¤Þ¤·¤¿"
-
-#: dlltool.c:1759
-#, c-format
-msgid "Generating export file: %s"
-msgstr "export ¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹: %s"
-
-#: dlltool.c:1764
-#, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr "°ì»þ¥¢¥»¥ó¥Ö¥ê¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: %s"
-
-#: dlltool.c:1767
-#, c-format
-msgid "Opened temporary file: %s"
-msgstr "°ì»þ¥Õ¥¡¥¤¥ë¤ò³«¤­¤Þ¤·¤¿: %s"
-
-#: dlltool.c:1981
-msgid "Generated exports file"
-msgstr "exports ¥Õ¥¡¥¤¥ë¤¬À¸À®¤µ¤ì¤Þ¤·¤¿"
-
-#: dlltool.c:2236
-#, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr "bfd_open ¤¬¥¹¥¿¥Ö¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿: %s"
-
-#: dlltool.c:2239
-#, c-format
-msgid "Creating stub file: %s"
-msgstr "¥¹¥¿¥Ö¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤¹: %s"
-
-#: dlltool.c:2626
-#, c-format
-msgid "failed to open temporary head file: %s"
-msgstr "°ì»þ head ¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: %s"
-
-#: dlltool.c:2685
-#, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr "°ì»þ tail ¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: %s"
-
-#: dlltool.c:2753
-#, c-format
-msgid "Can't open .lib file: %s"
-msgstr ".lib ¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: %s"
-
-#: dlltool.c:2756
-#, c-format
-msgid "Creating library file: %s"
-msgstr "¥é¥¤¥Ö¥é¥ê¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤¹: %s"
-
-#: dlltool.c:2815
-#, c-format
-msgid "cannot delete %s: %s"
-msgstr "%s ¤òºï½ü¤Ç¤­¤Þ¤»¤ó: %s"
-
-#: dlltool.c:2819
-msgid "Created lib file"
-msgstr "lib ¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¤Þ¤·¤¿"
-
-#: dlltool.c:2924
-#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr "·Ù¹ð¡¢½ÅÊ£¤·¤¿ EXPORT %s %d,%d ¤ò̵»ë¤·¤Þ¤¹"
-
-#: dlltool.c:2930
-#, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr "¥¨¥é¡¼¡¢½ø¿ôÉÕ¤­ EXPORT ¤¬½ÅÊ£¤·¤Þ¤·¤¿: %s"
-
-#: dlltool.c:3057
-msgid "Processing definitions"
-msgstr "ÄêµÁ¤ò½èÍý¤·¤Þ¤¹"
-
-#: dlltool.c:3095
-msgid "Processed definitions"
-msgstr "ÄêµÁ¤ò½èÍý¤·¤Þ¤·¤¿"
-
-#. xgetext:c-format
-#: dlltool.c:3106 dllwrap.c:520
-#, c-format
-msgid "Usage %s <options> <object-files>\n"
-msgstr "»È¤¤Êý %s <¥ª¥×¥·¥ç¥ó> <¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë>...\n"
-
-#. xgetext:c-format
-#: dlltool.c:3108
-#, c-format
-msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr " -m --machine <¥Þ¥·¥ó> <¥Þ¥·¥ó> ÍÑ DLL ¤òºîÀ®¤¹¤ë¡£ [default: %s]\n"
-
-#: dlltool.c:3109
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-msgstr " ²Äǽ¤Ê <¥Þ¥·¥ó>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-
-#: dlltool.c:3110
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr " -e --output-exp <½ÐÎÏ̾> export ¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¡£\n"
-
-#: dlltool.c:3111
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr " -l --output-lib <½ÐÎÏ̾> interface ¥é¥¤¥Ö¥é¥ê¤òÀ¸À®¤¹¤ë¡£\n"
-
-#: dlltool.c:3112
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr " -a --add-indirect export ¥Õ¥¡¥¤¥ë¤Ë´ÖÀÜ dll ¤òÄɲ乤롣\n"
-
-#: dlltool.c:3113
-msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr " -D --dllname <̾Á°> interface ¥é¥¤¥Ö¥é¥ê¤ËÃÖ¤¯ÆþÎÏ dll ¤Î̾Á°¡£\n"
-
-#: dlltool.c:3114
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr " -d --input-def <deffile> Æɹþ¤Þ¤ì¤ë .def ¥Õ¥¡¥¤¥ë¤Î̾Á°¡£\n"
-
-#: dlltool.c:3115
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr " -z --output-def <deffile> ºîÀ®¤µ¤ì¤ë .def ¥Õ¥¡¥¤¥ë¤Î̾Á°¡£\n"
-
-#: dlltool.c:3116
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols .def ¤ËÁ´¤Æ¤Î¥·¥ó¥Ü¥ë¤ò export ¤¹¤ë\n"
-
-#: dlltool.c:3117
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr " --no-export-all-symbols ¥ê¥¹¥È¤µ¤ì¤¿¥·¥ó¥Ü¥ë¤À¤±¤ò export ¤¹¤ë\n"
-
-#: dlltool.c:3118
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr " --exclude-symbols <¥ê¥¹¥È> <¥ê¥¹¥È> ¤ò export ¤·¤Ê¤¤\n"
-
-#: dlltool.c:3119
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr " --no-default-excludes ¥Ç¥Õ¥©¥ë¥È¤Ç½ü³°¤µ¤ì¤ë¥·¥ó¥Ü¥ë¤ò¥¯¥ê¥¢¤¹¤ë\n"
-
-#: dlltool.c:3120
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr " -b --base-file <basefile> ¥ê¥ó¥«¤¬À¸À®¤·¤¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤òÆɤ߼è¤ë\n"
-
-#: dlltool.c:3121
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr " -x --no-idata4 idata$4 ¥»¥¯¥·¥ç¥ó¤òÀ¸À®¤·¤Ê¤¤¡£\n"
-
-#: dlltool.c:3122
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr " -c --no-idata5 idata$5 ¥»¥¯¥·¥ç¥ó¤òÀ¸À®¤·¤Ê¤¤¡£\n"
-
-#: dlltool.c:3123
-msgid " -U --add-underscore Add underscores to symbols in interface library.\n"
-msgstr " -U --add-underscore interface Æâ¤Î¥·¥ó¥Ü¥ë¤Ë²¼Àþ¤ò¤Ä¤±¤ë\n"
-
-#: dlltool.c:3124
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr " -k --kill-at export ¤µ¤ì¤¿Ì¾Á°¤«¤é @<n> ¤òºï¤ë¡£\n"
-
-#: dlltool.c:3125
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr " -A --add-stdcall-alias @<n> ̵¤·¤Î¥¨¥¤¥ê¥¢¥¹¤òÄɲ乤롣\n"
-
-#: dlltool.c:3126
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr " -S --as <̾Á°> ¥¢¥»¥ó¥Ö¥éÍѤΠ<̾Á°> ¤ò»È¤¦¡£\n"
-
-#: dlltool.c:3127
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr " -f --as-flags <¥Õ¥é¥°> ¥¢¥»¥ó¥Ö¥é¤Ë <¥Õ¥é¥°> ¤òÅϤ¹¡£\n"
-
-#: dlltool.c:3128
-msgid " -C --compat-implib Create backward compatible import library.\n"
-msgstr " -C --compat-implib ¸åÊý¸ß´¹ import ¥é¥¤¥Ö¥é¥ê¤òºîÀ®¤¹¤ë¡£\n"
-
-#: dlltool.c:3129
-msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
-msgstr " -n --no-delete °ì»þ¥Õ¥¡¥¤¥ë¤ò¾Ãµî¤·¤Ê¤¤ (;ʬ¤Ê¤â¤Î¤âÊݸ¤¹¤ë¤Ê¤é·«¤êÊÖ¤¹¤³¤È)¡£\n"
-
-#: dlltool.c:3130
-msgid " -v --verbose Be verbose.\n"
-msgstr " -v --verbose ñÁÀå¥â¡¼¥É¡£\n"
-
-#: dlltool.c:3131
-msgid " -V --version Display the program version.\n"
-msgstr " -V --version ¥×¥í¥°¥é¥à¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤¹¤ë¡£\n"
-
-#: dlltool.c:3132
-msgid " -h --help Display this information.\n"
-msgstr " -h --help ¤³¤Î¾ðÊó¤òɽ¼¨¤¹¤ë¡£\n"
-
-#: dlltool.c:3134
-msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr " -M --mcore-elf <½ÐÎÏ̾> <½ÐÎÏ̾> ¤Ø mcore-elf ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò½èÍý¤¹¤ë\n"
-
-#: dlltool.c:3135
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr " -L --linker <̾Á°> <̾Á°> ¤ò¥ê¥ó¥«¤È¤·¤Æ»ÈÍѤ¹¤ë¡£\n"
-
-#: dlltool.c:3136
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr " -F --linker-flags <¥Õ¥é¥°> <¥Õ¥é¥°> ¤ò¥ê¥ó¥«¤ËÅϤ¹¡£\n"
-
-#: dlltool.c:3280
-#, c-format
-msgid "Unable to open base-file: %s"
-msgstr "¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: %s"
-
-#: dlltool.c:3309
-#, c-format
-msgid "Machine '%s' not supported"
-msgstr "¥Þ¥·¥ó '%s' ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-
-#: dlltool.c:3412 dllwrap.c:241
-#, c-format
-msgid "Tried file: %s"
-msgstr "»î¤·¤¿¥Õ¥¡¥¤¥ë: %s"
-
-#: dlltool.c:3419 dllwrap.c:248
-#, c-format
-msgid "Using file: %s"
-msgstr "»ÈÍѤ¹¤ë¥Õ¥¡¥¤¥ë: %s"
-
-#: dllwrap.c:335
-#, c-format
-msgid "Keeping temporary base file %s"
-msgstr "°ì»þ¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë %s ¤òÊݸ¤·¤Þ¤¹"
-
-#: dllwrap.c:337
-#, c-format
-msgid "Deleting temporary base file %s"
-msgstr "°ì»þ¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë %s ¤òºï½ü¤·¤Þ¤¹"
-
-#: dllwrap.c:351
-#, c-format
-msgid "Keeping temporary exp file %s"
-msgstr "°ì»þ exp ¥Õ¥¡¥¤¥ë %s ¤òÊݸ¤·¤Þ¤¹"
-
-#: dllwrap.c:353
-#, c-format
-msgid "Deleting temporary exp file %s"
-msgstr "°ì»þ exp ¥Õ¥¡¥¤¥ë %s ¤òºï½ü¤·¤Þ¤¹"
-
-#: dllwrap.c:366
-#, c-format
-msgid "Keeping temporary def file %s"
-msgstr "°ì»þ def ¥Õ¥¡¥¤¥ë %s ¤òÊݸ¤·¤Þ¤¹"
-
-#: dllwrap.c:368
-#, c-format
-msgid "Deleting temporary def file %s"
-msgstr "°ì»þ def ¥Õ¥¡¥¤¥ë %s ¤òºï½ü¤·¤Þ¤¹"
-
-#: dllwrap.c:521
-msgid " Generic options:\n"
-msgstr " °ìÈÌ¥ª¥×¥·¥ç¥ó:\n"
-
-#: dllwrap.c:522
-msgid " --quiet, -q Work quietly\n"
-msgstr " --quiet, -q ÀŤ«¤ËÆ°ºî¤¹¤ë\n"
-
-#: dllwrap.c:523
-msgid " --verbose, -v Verbose\n"
-msgstr " --verbose, -v ñÁÀå\n"
-
-#: dllwrap.c:524
-msgid " --version Print dllwrap version\n"
-msgstr " --version dllwrap ¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨\n"
-
-#: dllwrap.c:525
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr " --implib <½ÐÎÏ̾> --output-lib ¤ÈƱµÁ¸ì\n"
-
-#: dllwrap.c:526
-#, c-format
-msgid " Options for %s:\n"
-msgstr " %s ÍÑ¥ª¥×¥·¥ç¥ó:\n"
-
-#: dllwrap.c:527
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr " --driver-name <¥É¥é¥¤¥Ð> \"gcc\" ¤¬¥Ç¥Õ¥©¥ë¥È\n"
-
-#: dllwrap.c:528
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr " --driver-flags <¥Õ¥é¥°> ¥Ç¥Õ¥©¥ë¥È ld ¥Õ¥é¥°¤ò¾å½ñ¤­¤¹¤ë\n"
-
-#: dllwrap.c:529
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr " --dlltool-name <dlltool> \"dlltool\" ¤¬¥Ç¥Õ¥©¥ë¥È\n"
-
-#: dllwrap.c:530
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr " --entry <entry> ÂåÂØ DLL ¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤ò»ØÄꤹ¤ë\n"
-
-#: dllwrap.c:531
-msgid " --image-base <base> Specify image base address\n"
-msgstr " --image-base <base> image ¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤ò»ØÄꤹ¤ë\n"
-
-#: dllwrap.c:532
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr " --target <¥Þ¥·¥ó> i386-cygwin32 Ëô¤Ï i386-mingw32\n"
-
-#: dllwrap.c:533
-msgid " --dry-run Show what needs to be run\n"
-msgstr " --dry-run Æ°ºî¤ËɬÍפʤ³¤È¤òÌÀ¤é¤«¤Ë¤¹¤ë\n"
-
-#: dllwrap.c:534
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr " --mno-cygwin Mingw DLL ¤òºîÀ®¤¹¤ë\n"
-
-#: dllwrap.c:535
-msgid " Options passed to DLLTOOL:\n"
-msgstr " DLLTOOL ¤ËÅϤµ¤ì¤ë¥ª¥×¥·¥ç¥ó:\n"
-
-#: dllwrap.c:536
-msgid " --machine <machine>\n"
-msgstr " --machine <¥Þ¥·¥ó>\n"
-
-#: dllwrap.c:537
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr " --output-exp <½ÐÎÏ̾> export ¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¡£\n"
-
-#: dllwrap.c:538
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr " --output-lib <½ÐÎÏ̾> input ¥é¥¤¥Ö¥é¥ê¤òÀ¸À®¤¹¤ë¡£\n"
-
-#: dllwrap.c:539
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr " --add-indirect export ¥Õ¥¡¥¤¥ë¤Ë´ÖÀÜ dll ¤òÄɲ乤롣\n"
-
-#: dllwrap.c:540
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr " --dllname <̾Á°> ½ÐÎÏ lib ¤ËÃÖ¤¯ÆþÎÏ dll ¤Î̾Á°¡£\n"
-
-#: dllwrap.c:541
-msgid " --def <deffile> Name input .def file\n"
-msgstr " --def <deffile> ÆþÎÏ .def ¥Õ¥¡¥¤¥ë¤Î̾Á°\n"
-
-#: dllwrap.c:542
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr " --output-def <deffile> ½ÐÎÏ .def ¥Õ¥¡¥¤¥ë¤Î̾Á°¡£\n"
-
-#: dllwrap.c:543
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols .def ¤ËÁ´¥·¥ó¥Ü¥ë¤ò export ¤¹¤ë\n"
-
-#: dllwrap.c:544
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr " --no-export-all-symbols .drectve ¥·¥ó¥Ü¥ë¤Î¤ß¤ò export ¤¹¤ë\n"
-
-#: dllwrap.c:545
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr " --exclude-symbols <list> .def ¤«¤é <list> ¤ò½ü³°¤¹¤ë\n"
-
-#: dllwrap.c:546
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr " --no-default-excludes ¥Ç¥Õ¥©¥ë¥È¤Ç½ü³°¤µ¤ì¤ë¥·¥ó¥Ü¥ë¤ò̵¤¯¤¹\n"
-
-#: dllwrap.c:547
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr " --base-file <basefile> ¥ê¥ó¥«¤¬ºîÀ®¤·¤¿¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¤òÆɤ߼è¤ë\n"
-
-#: dllwrap.c:548
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr " --no-idata4 idata$4 ¥»¥¯¥·¥ç¥ó¤òÀ¸À®¤·¤Ê¤¤\n"
-
-#: dllwrap.c:549
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr " --no-idata5 idata$5 ¥»¥¯¥·¥ç¥ó¤òÀ¸À®¤·¤Ê¤¤\n"
-
-#: dllwrap.c:550
-msgid " -U Add underscores to .lib\n"
-msgstr " -U .lib ¤Ë²¼Àþ¤òÄɲ乤ë\n"
-
-#: dllwrap.c:551
-msgid " -k Kill @<n> from exported names\n"
-msgstr " -k export ¤µ¤ì¤¿Ì¾Á°¤«¤é @<n> ¤òºï¤ë\n"
-
-#: dllwrap.c:552
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr " --add-stdcall-alias @<n> ¤Ê¤·¤Î¥¨¥¤¥ê¥¢¥¹¤òÄɲ乤ë\n"
-
-#: dllwrap.c:553
-msgid " --as <name> Use <name> for assembler\n"
-msgstr " --as <̾Á°> ¥¢¥»¥ó¥Ö¥é¤È¤·¤Æ <̾Á°> ¤ò»È¤¦\n"
-
-#: dllwrap.c:554
-msgid " --nodelete Keep temp files.\n"
-msgstr " --nodelete °ì»þ¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Ê¤¤¡£\n"
-
-#: dllwrap.c:555
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr " »Ä¤ê¤Ï¤½¤Î¤Þ¤Þ¸À¸ì¥É¥é¥¤¥Ð¤ËÅϤµ¤ì¤Þ¤¹\n"
-
-#: dllwrap.c:816
-msgid "Must provide at least one of -o or --dllname options"
-msgstr "¾¯¤Ê¤¯¤È¤â -o ¤« --dllname ¥ª¥×¥·¥ç¥ó¤Î¤É¤Á¤é¤«¤Ï»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-
-#: dllwrap.c:844
-msgid "no export definition file provided"
-msgstr "export ÄêµÁ¥Õ¥¡¥¤¥ë¤¬Ä󶡤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: dllwrap.c:845
-msgid "creating one, but that may not be what you want"
-msgstr "°ì¤ÄºîÀ®¤·¤Þ¤¹¤¬¡¢¤³¤ì¤Ï¤¢¤Ê¤¿¤¬Ë¾¤à¤â¤Î¤Ç¤Ï¤Ê¤¤¤È»×¤ï¤ì¤Þ¤¹"
-
-#: dllwrap.c:1006
-#, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr "DLLTOOL ̾ : %s\n"
-
-#: dllwrap.c:1007
-#, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr "DLLTOOL ¥ª¥×¥·¥ç¥ó: %s\n"
-
-#: dllwrap.c:1008
-#, c-format
-msgid "DRIVER name : %s\n"
-msgstr "DRIVER ̾ : %s\n"
-
-#: dllwrap.c:1009
-#, c-format
-msgid "DRIVER options : %s\n"
-msgstr "DRIVER ¥ª¥×¥·¥ç¥ó: %s\n"
-
-#: ieee.c:317
-msgid "unexpected end of debugging information"
-msgstr "¥Ç¥Ð¥Ã¥°¾ðÊó¤¬Í½´ü¤·¤Ê¤¤½ê¤Ç½ª¤ï¤Ã¤Æ¤¤¤Þ¤¹"
-
-#: ieee.c:412
-msgid "invalid number"
-msgstr "ÉÔŬÀÚ¤ÊÈÖ¹æ"
-
-#: ieee.c:471
-msgid "invalid string length"
-msgstr "ÉÔŬÀÚ¤Êʸ»úÎóĹ"
-
-#: ieee.c:528 ieee.c:569
-msgid "expression stack overflow"
-msgstr "¼°¥¹¥¿¥Ã¥¯¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: ieee.c:548
-msgid "unsupported IEEE expression operator"
-msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ IEEE ¼°±é»»»Ò¤Ç¤¹"
-
-#: ieee.c:563
-msgid "unknown section"
-msgstr "ÉÔÌÀ¤Ê¥»¥¯¥·¥ç¥ó¤Ç¤¹"
-
-#: ieee.c:584
-msgid "expression stack underflow"
-msgstr "¼°¥¹¥¿¥Ã¥¯¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: ieee.c:598
-msgid "expression stack mismatch"
-msgstr "¼°¥¹¥¿¥Ã¥¯¤¬°ìÃפ·¤Þ¤»¤ó"
-
-#: ieee.c:637
-msgid "unknown builtin type"
-msgstr "ÉÔÌÀ¤ÊÁȤ߹þ¤ß·¿¤Ç¤¹"
-
-#: ieee.c:782
-msgid "BCD float type not supported"
-msgstr "BCD ÉâÆ°¾®¿ô·¿¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-
-#: ieee.c:928
-msgid "unexpected number"
-msgstr "ͽ´ü¤·¤Ê¤¤ÈÖ¹æ¤Ç¤¹"
-
-#: ieee.c:935
-msgid "unexpected record type"
-msgstr "ͽ´ü¤·¤Ê¤¤¥ì¥³¡¼¥É·¿¤Ç¤¹"
-
-#: ieee.c:968
-msgid "blocks left on stack at end"
-msgstr "¥Ö¥í¥Ã¥¯¤¬¥¹¥¿¥Ã¥¯¤Î½ª¤ê¤Ë»Ä¤Ã¤Æ¤¤¤Þ¤¹"
-
-#: ieee.c:1233
-msgid "unknown BB type"
-msgstr "ÉÔÌÀ¤Ê BB ·¿¤Ç¤¹"
-
-#: ieee.c:1242
-msgid "stack overflow"
-msgstr "¥¹¥¿¥Ã¥¯¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: ieee.c:1267
-msgid "stack underflow"
-msgstr "¥¹¥¿¥Ã¥¯¤¬¥¢¥ó¥À¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: ieee.c:1381 ieee.c:1453 ieee.c:2152
-msgid "illegal variable index"
-msgstr "ÊÑ¿ô¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬ÉÔÀµ¤Ç¤¹"
-
-#: ieee.c:1431
-msgid "illegal type index"
-msgstr "·¿¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬ÉÔÀµ¤Ç¤¹"
-
-#: ieee.c:1441 ieee.c:1478
-msgid "unknown TY code"
-msgstr "ÉÔÌÀ¤Ê TY ¥³¡¼¥É¤Ç¤¹"
-
-#: ieee.c:1460
-msgid "undefined variable in TY"
-msgstr "TY ¤Ë̤ÄêµÁ¤ÎÊÑ¿ô¤¬¤¢¤ê¤Þ¤¹"
-
-#. Pascal file name. FIXME.
-#: ieee.c:1871
-msgid "Pascal file name not supported"
-msgstr "Pascal ¥Õ¥¡¥¤¥ë̾¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: ieee.c:1919
-msgid "unsupported qualifer"
-msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤½¤¾þ»Ò¤Ç¤¹"
-
-#: ieee.c:2190
-msgid "undefined variable in ATN"
-msgstr "ATN ¤Ë̤ÄêµÁ¤ÎÊÑ¿ô¤¬¤¢¤ê¤Þ¤¹"
-
-#: ieee.c:2233
-msgid "unknown ATN type"
-msgstr "ÉÔÌÀ¤Ê ATN ·¿¤Ç¤¹"
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2355
-msgid "unsupported ATN11"
-msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ ATN11 ¤Ç¤¹"
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2382
-msgid "unsupported ATN12"
-msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ ATN12 ¤Ç¤¹"
-
-#: ieee.c:2442
-msgid "unexpected string in C++ misc"
-msgstr "C++ misc ¤Ëͽ´ü¤·¤Ê¤¤Ê¸»úÎ󤬤¢¤ê¤Þ¤¹"
-
-#: ieee.c:2455
-msgid "bad misc record"
-msgstr "ÉÔÀµ¤Ê misc ¥ì¥³¡¼¥É¤Ç¤¹"
-
-#: ieee.c:2498
-msgid "unrecognized C++ misc record"
-msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ C++ misc ¥ì¥³¡¼¥É¤Ç¤¹"
-
-#: ieee.c:2615
-msgid "undefined C++ object"
-msgstr "̤ÄêµÁ¤Î C++ ¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹"
-
-#: ieee.c:2649
-msgid "unrecognized C++ object spec"
-msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ C++ ¥ª¥Ö¥¸¥§¥¯¥È»ÅÍͤǤ¹"
-
-#: ieee.c:2685
-msgid "unsupported C++ object type"
-msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤ C++ ¥ª¥Ö¥¸¥§¥¯¥È·¿¤Ç¤¹"
-
-#: ieee.c:2695
-msgid "C++ base class not defined"
-msgstr "C++ ¥Ù¡¼¥¹¥¯¥é¥¹¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: ieee.c:2707 ieee.c:2812
-msgid "C++ object has no fields"
-msgstr "C++ ¥ª¥Ö¥¸¥§¥¯¥È¤¬¥Õ¥£¡¼¥ë¥É¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó"
-
-#: ieee.c:2726
-msgid "C++ base class not found in container"
-msgstr "C++ ¥Ù¡¼¥¹¥¯¥é¥¹¤¬¥³¥ó¥Æ¥ÊÆâ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-
-#: ieee.c:2833
-msgid "C++ data member not found in container"
-msgstr "C++ ¥Ç¡¼¥¿¥á¥ó¥Ð¤¬¥³¥ó¥Æ¥ÊÆâ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-
-#: ieee.c:2874 ieee.c:3024
-msgid "unknown C++ visibility"
-msgstr "ÉÔÌÀ¤Ê C++ ²Ä»ëÀ­¤Ç¤¹"
-
-#: ieee.c:2908
-msgid "bad C++ field bit pos or size"
-msgstr "C++ ¥Õ¥£¡¼¥ë¥É¥Ó¥Ã¥È°ÌÃÖËô¤Ï¥µ¥¤¥º¤¬ÉÔÀµ¤Ç¤¹"
-
-#: ieee.c:3000
-msgid "bad type for C++ method function"
-msgstr "C++ ¥á¥½¥Ã¥É´Ø¿ô¤Î·¿¤¬ÉÔÀµ¤Ç¤¹"
-
-#: ieee.c:3010
-msgid "no type information for C++ method function"
-msgstr "C++ ¥á¥½¥Ã¥É´Ø¿ô¤Î·¿¾ðÊ󤬤¢¤ê¤Þ¤»¤ó"
-
-#: ieee.c:3049
-msgid "C++ static virtual method"
-msgstr "C++ static virtual ¥á¥½¥Ã¥É¤Ç¤¹"
-
-#: ieee.c:3144
-msgid "unrecognized C++ object overhead spec"
-msgstr "C++ ¥ª¥Ö¥¸¥§¥¯¥È¥ª¡¼¥Ð¡¼¥Ø¥Ã¥É»ÅÍͤòǧ¼±¤Ç¤­¤Þ¤»¤ó"
-
-#: ieee.c:3183
-msgid "undefined C++ vtable"
-msgstr "C++ ²¾ÁÛ´Ø¿ô¥Æ¡¼¥Ö¥ë(vtable) ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: ieee.c:3254
-msgid "C++ default values not in a function"
-msgstr "C++ ¥Ç¥Õ¥©¥ë¥ÈÃͤ¬´Ø¿ôÆâ¤Ë¤¢¤ê¤Þ¤»¤ó"
-
-#: ieee.c:3294
-msgid "unrecognized C++ default type"
-msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ C++ ¥Ç¥Õ¥©¥ë¥È·¿¤Ç¤¹"
-
-#: ieee.c:3325
-msgid "reference parameter is not a pointer"
-msgstr "»²¾È¥Ñ¥é¥á¥¿¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ieee.c:3410
-msgid "unrecognized C++ reference type"
-msgstr "ǧ¼±¤Ç¤­¤Ê¤¤ C++ »²¾È·¿¤Ç¤¹"
-
-#: ieee.c:3492
-msgid "C++ reference not found"
-msgstr "C++ »²¾È¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
-
-#: ieee.c:3500
-msgid "C++ reference is not pointer"
-msgstr "C++ »²¾È¤¬¥Ý¥¤¥ó¥¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: ieee.c:3529 ieee.c:3537
-msgid "missing required ASN"
-msgstr "Í׵ᤵ¤ì¤¿ ASN ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: ieee.c:3567 ieee.c:3575
-msgid "missing required ATN65"
-msgstr "Í׵ᤵ¤ì¤¿ ATN65 ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: ieee.c:3589
-msgid "bad ATN65 record"
-msgstr "ATN65 ¥ì¥³¡¼¥É¤¬ÉÔÀµ¤Ç¤¹"
-
-#: ieee.c:4236
-msgid "IEEE numeric overflow: 0x"
-msgstr "IEEE ¿ôÃͤ¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿: 0x"
-
-#: ieee.c:4282
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr "IEEE ʸ»úÎóŤ¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿: %u\n"
-
-#: ieee.c:5324
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr "IEEE ¤ÏÀ°¿ô·¿¥µ¥¤¥º %u ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó\n"
-
-#: ieee.c:5360
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr "IEEE ¤ÏÉâÆ°¾®¿ô·¿¥µ¥¤¥º %u ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó\n"
-
-#: ieee.c:5396
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr "IEEE ¤ÏÊ£ÁÇ¿ô·¿¥µ¥¤¥º %u ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó\n"
-
-#: nlmconv.c:275 srconv.c:1966
-msgid "input and output files must be different"
-msgstr "ÆþÎϤȽÐÎϤϰۤʤë¥Õ¥¡¥¤¥ë¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-
-#: nlmconv.c:322
-msgid "input file named both on command line and with INPUT"
-msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë̾¤¬¥³¥Þ¥ó¥É¥é¥¤¥ó¤È INPUT ¤ÎξÊý¤ÇÍ¿¤¨¤é¤ì¤Þ¤·¤¿"
-
-#: nlmconv.c:331
-msgid "no input file"
-msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: nlmconv.c:361
-msgid "no name for output file"
-msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ëÍѤÎ̾Á°¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: nlmconv.c:374
-msgid "warning: input and output formats are not compatible"
-msgstr "·Ù¹ð: ÆþÎϤȽÐÎϤηÁ¼°¤Ë¸ß´¹À­¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: nlmconv.c:403
-msgid "make .bss section"
-msgstr ".bss ¥»¥¯¥·¥ç¥ó¤ÎºîÀ®"
-
-#: nlmconv.c:412
-msgid "make .nlmsections section"
-msgstr ".nlmsections ¥»¥¯¥·¥ç¥ó¤ÎºîÀ®"
-
-#: nlmconv.c:414
-msgid "set .nlmsections flags"
-msgstr ".nlmsections ¥Õ¥é¥°¤òÀßÄê"
-
-#: nlmconv.c:442
-msgid "set .bss vma"
-msgstr ".bss vma ¤òÀßÄê"
-
-#: nlmconv.c:449
-msgid "set .data size"
-msgstr ".data size ¤òÀßÄê"
-
-#: nlmconv.c:629
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr "·Ù¹ð: ¥·¥ó¥Ü¥ë %s ¤¬ import ¤µ¤ì¤Þ¤·¤¿¤¬ import ¥ê¥¹¥È¤Ë¤¢¤ê¤Þ¤»¤ó"
-
-#: nlmconv.c:649
-msgid "set start address"
-msgstr "³«»Ï¥¢¥É¥ì¥¹¤òÀßÄê"
-
-#: nlmconv.c:698
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr "·Ù¹ð: START ¥×¥í¥·¡¼¥¸¥ã %s ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: nlmconv.c:700
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr "·Ù¹ð: EXIT ¥×¥í¥·¡¼¥¸¥ã %s ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: nlmconv.c:702
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr "·Ù¹ð: CHECK ¥×¥í¥·¡¼¥¸¥ã %s ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: nlmconv.c:723 nlmconv.c:912
-msgid "custom section"
-msgstr "¥«¥¹¥¿¥à¥»¥¯¥·¥ç¥ó"
-
-#: nlmconv.c:744 nlmconv.c:941
-msgid "help section"
-msgstr "¥Ø¥ë¥×¥»¥¯¥·¥ç¥ó"
-
-#: nlmconv.c:766 nlmconv.c:959
-msgid "message section"
-msgstr "¥á¥Ã¥»¡¼¥¸¥»¥¯¥·¥ç¥ó"
-
-#: nlmconv.c:782 nlmconv.c:992
-msgid "module section"
-msgstr "¥â¥¸¥å¡¼¥ë¥»¥¯¥·¥ç¥ó"
-
-#: nlmconv.c:802 nlmconv.c:1008
-msgid "rpc section"
-msgstr "rpc ¥»¥¯¥·¥ç¥ó"
-
-#. There is no place to record this information.
-#: nlmconv.c:838
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr "%s: ·Ù¹ð: ¶¦Í­¥é¥¤¥Ö¥é¥ê¤Ï̤½é´ü²½¥Ç¡¼¥¿¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó"
-
-#: nlmconv.c:859 nlmconv.c:1027
-msgid "shared section"
-msgstr "¶¦Í­¥»¥¯¥·¥ç¥ó"
-
-#: nlmconv.c:867
-msgid "warning: No version number given"
-msgstr "·Ù¹ð: ¥Ð¡¼¥¸¥ç¥óÈֹ椬Ϳ¤¨¤é¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: nlmconv.c:907 nlmconv.c:936 nlmconv.c:954 nlmconv.c:1003 nlmconv.c:1022
-#, c-format
-msgid "%s: read: %s"
-msgstr "%s: Æɹþ¤ß: %s"
-
-#: nlmconv.c:929
-msgid "warning: MAP and FULLMAP are not supported; try ld -M"
-msgstr "·Ù¹ð: MAP ¤È FULLMAP ¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó -- ld -M ¤ò»î¤·¤Æ¤¯¤À¤µ¤¤"
-
-#: nlmconv.c:1099
-#, c-format
-msgid "%s: Convert an object file into a NetWare Loadable Module\n"
-msgstr "%s: ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò NetWare ¥í¡¼¥À¥Ö¥ë¥â¥¸¥å¡¼¥ë¤ËÊÑ´¹¤·¤Þ¤¹\n"
-
-#: nlmconv.c:1111
-#, c-format
-msgid ""
-"Usage: %s [-dhV] [-I bfdname] [-O bfdname] [-T header-file] [-l linker]\n"
-" [--input-target=bfdname] [--output-target=bfdname]\n"
-" [--header-file=file] [--linker=linker] [--debug]\n"
-" [--help] [--version]\n"
-" [in-file [out-file]]\n"
-msgstr ""
-"Usage: %s [-dhV] [-I bfd̾] [-O bfd̾] [-T ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë] [-l ¥ê¥ó¥«]\n"
-" [--input-target=bfd̾] [--output-target=bfd̾]\n"
-" [--header-file=¥Õ¥¡¥¤¥ë] [--linker=¥ê¥ó¥«] [--debug]\n"
-" [--help] [--version]\n"
-" [ÆþÎÏ¥Õ¥¡¥¤¥ë [½ÐÎÏ¥Õ¥¡¥¤¥ë]]\n"
-
-#: nlmconv.c:1151
-#, c-format
-msgid "support not compiled in for %s"
-msgstr "%s ÍÑ¥µ¥Ý¡¼¥È¤Ï¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: nlmconv.c:1191
-msgid "make section"
-msgstr "make ¥»¥¯¥·¥ç¥ó"
-
-#: nlmconv.c:1205
-msgid "set section size"
-msgstr "¥»¥¯¥·¥ç¥ó¥µ¥¤¥º¤òÀßÄê"
-
-#: nlmconv.c:1211
-msgid "set section alignment"
-msgstr "¥»¥¯¥·¥ç¥ó¥¢¥é¥¤¥ó¥á¥ó¥È¤òÀßÄê"
-
-#: nlmconv.c:1215
-msgid "set section flags"
-msgstr "¥»¥¯¥·¥ç¥ó¥Õ¥é¥°¤òÀßÄê"
-
-#: nlmconv.c:1226
-msgid "set .nlmsections size"
-msgstr ".nlmsections ¥µ¥¤¥º¤òÀßÄê"
-
-#: nlmconv.c:1314 nlmconv.c:1322 nlmconv.c:1331 nlmconv.c:1336
-msgid "set .nlmsection contents"
-msgstr ".nlmsection ¤ÎÆâÍƤòÀßÄê"
-
-#: nlmconv.c:1839
-msgid "stub section sizes"
-msgstr "¥¹¥¿¥Ö¥»¥¯¥·¥ç¥ó¥µ¥¤¥º"
-
-#: nlmconv.c:1888
-msgid "writing stub"
-msgstr "¥¹¥¿¥Ö¤Î½ñ¹þ¤ßÃæ"
-
-#: nlmconv.c:1978
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr "%s ¤ËÂФ¹¤ë PC ´ØÏ¢ºÆÇÛÃÖ¤ò²ò·è¤Ç¤­¤Þ¤»¤ó"
-
-#: nlmconv.c:2042
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr "%s ¤ËÂФ¹¤ëºÆÇÛÃÖ¤òÄ´À°Ãæ¤Ë¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: nlmconv.c:2159
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr "%s: %s ¤Î¼Â¹Ô¤¬¼ºÇÔ¤·¤Þ¤·¤¿: "
-
-#: nlmconv.c:2174
-#, c-format
-msgid "Execution of %s failed"
-msgstr "%s ¤Î¼Â¹Ô¤¬¼ºÇÔ¤·¤Þ¤·¤¿"
-
-#: nm.c:294
-#, c-format
-msgid "Usage: %s [OPTION]... [FILE]...\n"
-msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]...\n"
-
-#: nm.c:295
-msgid "List symbols from FILEs (a.out by default).\n"
-msgstr "¥Õ¥¡¥¤¥ë(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï a.out)¤«¤é¥·¥ó¥Ü¥ë¤ò¥ê¥¹¥Èɽ¼¨¤·¤Þ¤¹¡£\n"
-
-#: nm.c:296
-msgid ""
-"\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', 'lucid', 'arm', 'hp', 'edg' or 'gnu-new-abi'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -h, --help Display this information\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -V, --version Display this program's version number\n"
-" -X 32_64 (ignored)\n"
-"\n"
-msgstr ""
-"\n"
-" -a, --debug-syms ¥Ç¥Ð¥Ã¥°ÀìÍÑ¥·¥ó¥Ü¥ë¤òɽ¼¨¤¹¤ë\n"
-" -A, --print-file-name ³Æ¥·¥ó¥Ü¥ë¤ÎÁ°¤ËÆþÎÏ¥Õ¥¡¥¤¥ë̾¤òɽ¼¨¤¹¤ë\n"
-" -B --format=bsd ¤ÈƱ¤¸\n"
-" -C, --demangle[=STYLE] Äã°Ì¥·¥ó¥Ü¥ë̾¤ò¥æ¡¼¥¶¥ì¥Ù¥ë̾¤ËÉü¸µ¤¹¤ë\n"
-" STYLE ¤Ë°Ê²¼¤Î¤â¤Î¤ò»ØÄê¤Ç¤­¤ë -- `auto'(default),\n"
-" `gnu', 'lucid', 'arm', 'hp', 'edg', 'gnu-new-abi'\n"
-" --no-demangle Äã°Ì¥·¥ó¥Ü¥ë̾¤òÉü¸µ¤·¤Ê¤¤\n"
-" -D, --dynamic Ä̾亮¥ó¥Ü¥ë¤Ç¤Ï¤Ê¤¯Æ°Åª¥·¥ó¥Ü¥ë¤òɽ¼¨¤¹¤ë¡£\n"
-" --defined-only ÄêµÁºÑ¥·¥ó¥Ü¥ë¤Î¤ß¤òɽ¼¨¤¹¤ë\n"
-" -e (̵»ë¤µ¤ì¤ë)\n"
-" -f, --format=FORMAT ½ÐÎÏ·Á¼°¤ò FORMAT ¤È¤¹¤ë¡£FORMAT ¤Ë¤Ï `bsd',\n"
-" `sysv', `posix' ¤ò»ØÄê¤Ç¤­¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï `bsd'\n"
-" -g, --extern-only ³°Éô¥·¥ó¥Ü¥ë¤Î¤ß¤òɽ¼¨¤¹¤ë\n"
-" -h, --help ¤³¤Î¾ðÊó¤òɽ¼¨¤¹¤ë\n"
-" -l, --line-numbers ³Æ¥·¥ó¥Ü¥ë¤Î¥Ç¥Ð¥Ã¥°¾ðÊ󤫤顢¥·¥ó¥Ü¥ë¤Î¥Õ¥¡¥¤¥ë̾¤È\n"
-" ¹ÔÈÖ¹æ¤ò¸«¤Ä¤±¤ë\n"
-" -n, --numeric-sort ¥¢¥É¥ì¥¹Ãͤˤè¤Ã¤Æ¥½¡¼¥È¤¹¤ë\n"
-" -o -A ¤ÈƱ¤¸\n"
-" -p, --no-sort ¥·¥ó¥Ü¥ë¤Ë¤è¤ë¥½¡¼¥È¤ò¹Ô¤ï¤Ê¤¤\n"
-" -P, --portability --format=posix ¤ÈƱ¤¸\n"
-" -r, --reverse-sort ¥½¡¼¥È½ç¤òµÕ¤Ë¤¹¤ë\n"
-" -s, --print-armap ½ñ¸Ë¥á¥ó¥Ð¤«¤é¤Î¥·¥ó¥Ü¥ëÍѤκ÷°ú¤ò´Þ¤á¤ë\n"
-" --size-sort ¥µ¥¤¥º¤Ë¤è¤Ã¤Æ¥½¡¼¥È¤¹¤ë\n"
-" -t, --radix=RADIX ¥·¥ó¥Ü¥ëÃͤÎɽ¼¨´ð¿ô¤Ë RADIX ¤ò»È¤¦\n"
-" --target=BFDNAME ¥¿¡¼¥²¥Ã¥È¥ª¥Ö¥¸¥§¥¯¥È·Á¼°¤ò BFDNAME ¤È¤·¤Æ»ØÄꤹ¤ë\n"
-" -u, --undefined-only ̤ÄêµÁ¥·¥ó¥Ü¥ë¤Î¤ß¤òɽ¼¨¤¹¤ë\n"
-" -V, --version ¤³¤Î¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥ó¤òɽ¼¨¤¹¤ë\n"
-" -X 32_64 (̵»ë¤µ¤ì¤ë)\n"
-"\n"
-
-#: nm.c:328 objdump.c:274
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr "¥Ð¥°Êó¹ð¤Ï %s ¤Þ¤Ç¡£\n"
-
-#: nm.c:361
-#, c-format
-msgid "%s: invalid radix"
-msgstr "%s: ´ð¿ô¤¬ÉÔŬÀڤǤ¹"
-
-#: nm.c:386
-#, c-format
-msgid "%s: invalid output format"
-msgstr "%s: ½ÐÎÏ·Á¼°¤¬ÉÔŬÀڤǤ¹"
-
-#: nm.c:493
-msgid "Only -X 32_64 is supported"
-msgstr "-X 32_64 ¤·¤«¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó"
-
-#: nm.c:535
-#, c-format
-msgid "data size %ld"
-msgstr "¥Ç¡¼¥¿¥µ¥¤¥º %ld"
-
-#: nm.c:1325
-#, c-format
-msgid "\n\nUndefined symbols from %s:\n\n"
-msgstr "\n\n%s ¤«¤é¤Î̤ÄêµÁ¥·¥ó¥Ü¥ë:\n\n"
-
-#: nm.c:1327
-#, c-format
-msgid "\n\nSymbols from %s:\n\n"
-msgstr "\n\n%s ¤«¤é¤Î¥·¥ó¥Ü¥ë:\n\n"
-
-#: nm.c:1328 nm.c:1382
-msgid "Name Value Class Type Size Line Section\n\n"
-msgstr "̾Á° ÃÍ ¥¯¥é¥¹ ·¿ ¥µ¥¤¥º ¹Ô ¥»¥¯¥·¥ç¥ó\n\n"
-
-#: nm.c:1379
-#, c-format
-msgid "\n\nUndefined symbols from %s[%s]:\n\n"
-msgstr "\n\n%s[%s] ¤«¤é¤Î̤ÄêµÁ¥·¥ó¥Ü¥ë:\n\n"
-
-#: nm.c:1381
-#, c-format
-msgid "\n\nSymbols from %s[%s]:\n\n"
-msgstr "\n\n%s[%s] ¤«¤é¤Î¥·¥ó¥Ü¥ë:\n\n"
-
-#: nm.c:1552
-msgid "\nArchive index:\n"
-msgstr "\n½ñ¸Ë¥¤¥ó¥Ç¥Ã¥¯¥¹:\n"
-
-#: objcopy.c:322
-#, c-format
-msgid "Usage: %s <switches> in-file [out-file]\n"
-msgstr "»È¤¤Êý: %s <¥¹¥¤¥Ã¥Á> ÆþÎÏ¥Õ¥¡¥¤¥ë [½ÐÎÏ¥Õ¥¡¥¤¥ë]\n"
-
-#: objcopy.c:323 objcopy.c:383
-msgid " The switches are:\n"
-msgstr " ¥¹¥¤¥Ã¥Á¤Ï°Ê²¼¤ÎÄ̤ê:\n"
-
-#: objcopy.c:324
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" --debugging Convert debugging information, if possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation information\n"
-" -g --strip-debug Remove all debugging symbols\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" -K --keep-symbol <name> Only copy symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-" --weaken Force all global symbols to be marked as weak\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address <addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to <flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to output\n"
-" --change-leading-char Force output format's leading character style\n"
-" --remove-leading-char Remove leading character from global symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --srec-len <number> Restrict the length of generated Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-msgstr ""
-" -I --input-target <bfd̾> ÆþÎÏ¥Õ¥¡¥¤¥ë¤ò <bfd̾> ·Á¼°¤ò¤È¤ß¤Ê¤¹\n"
-" -O --output-target <bfd̾> ½ÐÎÏ·Á¼°¤ò <bfd̾> ¤È¤·¤ÆºîÀ®¤¹¤ë\n"
-" -F --target <bfd̾> ÆþÎÏ¡¦½ÐÎÏξÊý¤Ë <bfd̾> ·Á¼°¤ò»ÈÍѤ¹¤ë\n"
-" --debugging ²Äǽ¤Ç¤¢¤ì¤Ð¥Ç¥Ð¥Ã¥°¾ðÊó¤òÊÑ´¹¤¹¤ë\n"
-" -p --preserve-dates ½¤Àµ/¥¢¥¯¥»¥¹»þ¹ï¾ðÊó¤ò½ÐÎϤ˥³¥Ô¡¼¤¹¤ë\n"
-" -j --only-section <̾Á°> <̾Á°> ¤Î¥»¥¯¥·¥ç¥ó¤À¤±¤ò½ÐÎϤ¹¤ë\n"
-" -R --remove-section <̾Á°> <̾Á°> ¤Î¥»¥¯¥·¥ç¥ó¤ò½ÐÎϤ«¤é¼è¤ê½ü¤¯\n"
-" -S --strip-all Á´¤Æ¤Î¥·¥ó¥Ü¥ëµÚ¤ÓºÆÇÛÃÖ¾ðÊó¤ò¼è¤ê½ü¤¯\n"
-" -g --strip-debug Á´¤Æ¤Î¥Ç¥Ð¥Ã¥°¥·¥ó¥Ü¥ë¤ò¼è¤ê½ü¤¯\n"
-" --strip-unneeded ºÆÇÛÃÖ¤ËɬÍפʥ·¥ó¥Ü¥ë°Ê³°¤òÁ´¤Æ¼è¤ê½ü¤¯\n"
-" -N --strip-symbol <̾Á°> <̾Á°> ¤Î¥·¥ó¥Ü¥ë¤ò¥³¥Ô¡¼¤·¤Ê¤¤\n"
-" -K --keep-symbol <̾Á°> <̾Á°> ¤Î¥·¥ó¥Ü¥ë¤ò¥³¥Ô¡¼¤¹¤ë\n"
-" -L --localize-symbol <̾Á°> <̾Á°> ¤Î¥·¥ó¥Ü¥ë¤Ë local ¥Þ¡¼¥¯¤ò¤Ä¤±¤ë\n"
-" -W --weaken-symbol <̾Á°> <̾Á°> ¤Î¥·¥ó¥Ü¥ë¤Ë weak ¥Þ¡¼¥¯¤ò¤Ä¤±¤ë\n"
-" --weaken Á´¤Æ¤ÎÂç°è¥·¥ó¥Ü¥ë¤Ë weak ¥Þ¡¼¥¯¤ò¤Ä¤±¤ë\n"
-" -x --discard-all Á´¤Æ¤ÎÈóÂç°è¥·¥ó¥Ü¥ë¤ò¼è¤ê½ü¤¯\n"
-" -X --discard-locals ¤¢¤ë¼ï¤Î¥³¥ó¥Ñ¥¤¥éÀ¸À®¥·¥ó¥Ü¥ë¤ò¼è¤ê½ü¤¯\n"
-" -i --interleave <¿ôÃÍ> <¿ôÃÍ> ¥Ð¥¤¥Èʬ¤´¤È¤Ë¥³¥Ô¡¼¤¹¤ë\n"
-" -b --byte <¿ôÃÍ> ³Æ interleave ¥Ö¥í¥Ã¥¯¤Ç¤Î¥Ð¥¤¥È¿ô¤òÁªÂò\n"
-" --gap-fill <ÃÍ> ¥»¥¯¥·¥ç¥ó´Ö¤Î·ä´Ö¤ò <ÃÍ> ¤ÇËä¤á¤ë\n"
-" --pad-to <¥¢¥É¥ì¥¹> ľÁ°¤Î¥»¥¯¥·¥ç¥ó¤«¤é <¥¢¥É¥ì¥¹> ¤Þ¤ÇËä¤á¤ë\n"
-" --set-start <¥¢¥É¥ì¥¹> ³«»Ï¥¢¥É¥ì¥¹¤ò <¥¢¥É¥ì¥¹> ¤ËÀßÄꤹ¤ë\n"
-" {--change-start|--adjust-start} <Áýʬ>\n"
-" ³«»Ï¥¢¥É¥ì¥¹¤Ë <Áýʬ> ²Ã¤¨¤ë\n"
-" {--change-addresses|--adjust-vma} <Áýʬ>\n"
-" LMA, VMA µÚ¤Ó³«»Ï¥¢¥É¥ì¥¹¤Ë <Áýʬ> ²Ã¤¨¤ë\n"
-" {--change-section-address|--adjust-section-vma} <̾Á°>{=|+|-}<ÃÍ>\n"
-" ¥»¥¯¥·¥ç¥ó<̾Á°>¤Î LMA, VMA ¤ò<ÃÍ>¤ËÊѹ¹\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" ¥»¥¯¥·¥ç¥ó <̾Á°> ¤Î LMA ¤ò <ÃÍ> ¤ËÊѹ¹\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" ¥»¥¯¥·¥ç¥ó <̾Á°> ¤Î VMA ¤ò <ÃÍ> ¤ËÊѹ¹\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" ̾Á°ÉÕ¤­¥»¥¯¥·¥ç¥ó¤¬Ìµ¤±¤ì¤Ð·Ù¹ð¤¹¤ë\n"
-" --set-section-flags <̾Á°>=<¥Õ¥é¥°>\n"
-" ¥»¥¯¥·¥ç¥ó<̾Á°> ¤ÎÆüÁ¤ò <¥Õ¥é¥°> ¤ËÀßÄê\n"
-" --add-section <name>=<file> ¥»¥¯¥·¥ç¥ó<̾Á°> ¤ò½ÐÎÏ<¥Õ¥¡¥¤¥ë>¤ËÄɲÃ\n"
-" --change-leading-char ½ÐÎÏ·Á¼°¤ÎÀèƬʸ»úÊý¼°¤ò¶¯À©¤¹¤ë\n"
-" --remove-leading-char Âç°è¥·¥ó¥Ü¥ë¤«¤éÀèƬʸ»ú¤ò¼è¤ê½ü¤¯\n"
-" --redefine-sym <µì>=<¿·> ¥·¥ó¥Ü¥ë̾ <µì> ¤ò <¿·> ¤ËºÆÄêµÁ¤¹¤ë\n"
-" --srec-len <¿ôÃÍ> À¸À®¤µ¤ì¤ë S¥ì¥³¡¼¥ÉŤò¸·Ì©¤Ë<¿ôÃÍ>¤È¤¹¤ë\n"
-" --srec-forceS3 À¸À®¤µ¤ì¤ë S3 ÍÑ S¥ì¥³¡¼¥É·¿¤ò¸·Ì©¤Ë¤¹¤ë\n"
-" -v --verbose ½¤Àµ¤µ¤ì¤¿Á´¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¥ê¥¹¥È\n"
-" -V --version ¤³¤Î¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤¹¤ë\n"
-" -h --help ¤³¤Î»È¤¤Êý¤òɽ¼¨¤¹¤ë\n"
-
-#: objcopy.c:382
-#, c-format
-msgid "Usage: %s <switches> in-file(s)\n"
-msgstr "»È¤¤Êý: %s <¥¹¥¤¥Ã¥Á> ÆþÎÏ¥Õ¥¡¥¤¥ë...\n"
-
-#: objcopy.c:384
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation information\n"
-" -g -S --strip-debug Remove all debugging symbols\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" -K --keep-symbol <name> Only copy symbol <name>\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr ""
-" -I --input-target <bfd̾> ÆþÎÏ¥Õ¥¡¥¤¥ë¤ò <bfd̾> ·Á¼°¤È¤ß¤Ê¤¹\n"
-" -O --output-target <bfd̾> ½ÐÎϤò <bfd̾> ·Á¼°¤ÇºîÀ®¤¹¤ë\n"
-" -F --target <bfd̾> ÆþÎÏ¡¦½ÐÎÏξÊý¤Ë <bfd̾> ·Á¼°¤ò»ÈÍѤ¹¤ë\n"
-" -p --preserve-dates ½¤Àµ/¥¢¥¯¥»¥¹»þ¹ï¾ðÊó¤ò½ÐÎϤ˥³¥Ô¡¼¤¹¤ë\n"
-" -R --remove-section <̾Á°> <̾Á°> ¤Î¥»¥¯¥·¥ç¥ó¤ò½ÐÎϤ«¤é¼è¤ê½ü¤¯\n"
-" -s --strip-all Á´¤Æ¤Î¥·¥ó¥Ü¥ëµÚ¤ÓºÆÇÛÃÖ¾ðÊó¤ò¼è¤ê½ü¤¯\n"
-" -g -S --strip-debug Á´¤Æ¤Î¥Ç¥Ð¥Ã¥°¥·¥ó¥Ü¥ë¤ò¼è¤ê½ü¤¯\n"
-" --strip-unneeded ºÆÇÛÃÖ¤ËɬÍפʥ·¥ó¥Ü¥ë°Ê³°¤òÁ´¤Æ¼è¤ê½ü¤¯ \n"
-" -N --strip-symbol <̾Á°> <̾Á°> ¤Î¥·¥ó¥Ü¥ë¤ò¥³¥Ô¡¼¤·¤Ê¤¤\n"
-" -K --keep-symbol <̾Á°> <̾Á°> ¤Î¥·¥ó¥Ü¥ë¤ò¥³¥Ô¡¼¤¹¤ë\n"
-" -x --discard-all Á´¤Æ¤ÎÈóÂç°è¥·¥ó¥Ü¥ë¤ò¼è¤ê½ü¤¯\n"
-" -X --discard-locals ¤¢¤ë¼ï¤Î¥³¥ó¥Ñ¥¤¥éÀ¸À®¥·¥ó¥Ü¥ë¤ò¼è¤ê½ü¤¯\n"
-" -v --verbose ½¤Àµ¤µ¤ì¤¿Á´¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò¥ê¥¹¥È\n"
-" -V --version ¤³¤Î¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤¹¤ë\n"
-" -h --help ¤³¤Î»È¤¤Êý¤òɽ¼¨¤¹¤ë\n"
-" -o <¥Õ¥¡¥¤¥ë> strip ºÑ½ÐÎϤò <¥Õ¥¡¥¤¥ë> ¤Ë½ñ¤­¹þ¤à\n"
-
-#: objcopy.c:454
-#, c-format
-msgid "unrecognized section flag `%s'"
-msgstr "¥»¥¯¥·¥ç¥ó¥Õ¥é¥° `%s' ¤òǧ¼±¤Ç¤­¤Þ¤»¤ó"
-
-#: objcopy.c:455
-#, c-format
-msgid "supported flags: %s"
-msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤ë¥Õ¥é¥°: %s"
-
-#: objcopy.c:712
-#, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr "%s: ¥·¥ó¥Ü¥ë \"%s\" ¤ÎºÆÄêµÁ¤Ç¤¹"
-
-#: objcopy.c:719
-#, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr "%s: ¥·¥ó¥Ü¥ë \"%s\" ²¿ÅÙ¤«ºÆÄêµÁ¤µ¤ì¤¿¥¿¡¼¥²¥Ã¥È¤Ç¤¹"
-
-#: objcopy.c:773
-#, c-format
-msgid "copy from %s(%s) to %s(%s)\n"
-msgstr "%s(%s) ¤«¤é %s(%s) ¤Ø¥³¥Ô¡¼¤·¤Þ¤¹\n"
-
-#: objcopy.c:792
-#, c-format
-msgid "Warning: Output file cannot represent architecture %s"
-msgstr "·Ù¹ð: ½ÐÎÏ¥Õ¥¡¥¤¥ë¤¬¥¢¡¼¥­¥Æ¥¯¥Á¥ã %s ¤ËÂбþ¤·¤Æ¤¤¤Þ¤»¤ó"
-
-#: objcopy.c:819
-#, c-format
-msgid "can't create section `%s': %s"
-msgstr "¥»¥¯¥·¥ç¥ó `%s' ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s"
-
-#: objcopy.c:905
-#, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr "%s °Ê¹ß¤Î·ä´Ö¤òËä¤á¤é¤ì¤Þ¤»¤ó: %s"
-
-#: objcopy.c:930
-#, c-format
-msgid "Can't add padding to %s: %s"
-msgstr "%s ¤Ë¥Ñ¥Ç¥£¥ó¥°¤Ç¤­¤Þ¤»¤ó: %s"
-
-#: objcopy.c:1068
-#, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr "%s: ¥×¥é¥¤¥Ù¡¼¥È BFD ¥Ç¡¼¥¿¥³¥Ô¡¼Ãæ¤Î¥¨¥é¡¼: %s"
-
-#: objcopy.c:1102
-#, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr "½ñ¸Ë¥³¥Ô¡¼¤Î°Ù¤Î mkdir %s ¤¬¤Ç¤­¤Þ¤»¤ó (¥¨¥é¡¼: %s)"
-
-#: objcopy.c:1291
-msgid "making"
-msgstr "ºîÀ®Ãæ"
-
-#: objcopy.c:1300
-msgid "size"
-msgstr "¥µ¥¤¥º"
-
-#: objcopy.c:1314
-msgid "vma"
-msgstr "vma "
-
-#: objcopy.c:1340
-msgid "alignment"
-msgstr "¥¢¥é¥¤¥ó¥á¥ó¥È"
-
-#: objcopy.c:1349
-msgid "flags"
-msgstr "¥Õ¥é¥°"
-
-#: objcopy.c:1363
-msgid "private data"
-msgstr "¥×¥é¥¤¥Ù¡¼¥È¥Ç¡¼¥¿"
-
-#: objcopy.c:1371
-#, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr "%s: ¥»¥¯¥·¥ç¥ó `%s': %s¤Î¥¨¥é¡¼: %s"
-
-#: objcopy.c:1645
-#, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr "%s: ¥Ç¥Ð¥Ã¥°¥»¥¯¥·¥ç¥ó¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s"
-
-#: objcopy.c:1660
-#, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr "%s: ¥Ç¥Ð¥Ã¥°¥»¥¯¥·¥ç¥ó¤ÎÆâÍƤòÀßÄê¤Ç¤­¤Þ¤»¤ó: %s"
-
-#: objcopy.c:1669
-#, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr "%s: %s ÍѥǥХå°¾ðÊó¤Î½ñ¤­Êý¤¬²ò¤ê¤Þ¤»¤ó"
-
-#: objcopy.c:1775
-#, c-format
-msgid "%s: cannot stat: %s"
-msgstr "%s: stat(2) ¤¬¤Ç¤­¤Þ¤»¤ó: %s"
-
-#: objcopy.c:1825
-msgid "byte number must be non-negative"
-msgstr "¥Ð¥¤¥È¿ô¤ÏÈóÉé¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-
-#: objcopy.c:1831
-msgid "interleave must be positive"
-msgstr "interleave ¤ÏÀµ¤Î¿ôÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-
-#: objcopy.c:1851 objcopy.c:1859
-#, c-format
-msgid "%s both copied and removed"
-msgstr "%s ¥³¥Ô¡¼¤Èºï½ü¤ÎξÊý¤¬»ØÄꤵ¤ì¤Þ¤·¤¿"
-
-#: objcopy.c:1928 objcopy.c:1998 objcopy.c:2099 objcopy.c:2127
-#, c-format
-msgid "bad format for %s"
-msgstr "%s ÍѤȤ·¤Æ¤ÏÉÔÀµ¤Ê·Á¼°¤Ç¤¹"
-
-#: objcopy.c:1931
-#, c-format
-msgid "cannot stat: %s: %s"
-msgstr "stat(2) ¤Ç¤­¤Þ¤»¤ó: %s: %s"
-
-#: objcopy.c:1949
-#, c-format
-msgid "cannot open: %s: %s"
-msgstr "open ¤Ç¤­¤Þ¤»¤ó: %s: %s"
-
-#: objcopy.c:1953
-#, c-format
-msgid "%s: fread failed"
-msgstr "%s: fread(3) ¤¬¼ºÇÔ¤·¤Þ¤·¤¿"
-
-#: objcopy.c:2067
-#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "·Ù¹ð: 0x%s ¤«¤é 0x%x ¤Þ¤Ç¤Î·ä´Ö¤ÎËä¤á¹þ¤ß¤òÀÚ¤êµÍ¤á¤Þ¤¹"
-
-#: objcopy.c:2169
-msgid "byte number must be less than interleave"
-msgstr "¥Ð¥¤¥È¿ô¤Ï interleave ̤Ëþ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
-
-#: objcopy.c:2188
-#, c-format
-msgid "Cannot stat: %s: %s"
-msgstr "stat(2) ¤Ç¤­¤Þ¤»¤ó: %s: %s"
-
-#: objcopy.c:2228 objcopy.c:2242
-#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr "%s %s%c0x%s ¤Ï»È¤ï¤ì¤ë¤³¤È¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: objdump.c:223
-#, c-format
-msgid "Usage: %s OPTION... FILE...\n"
-msgstr "»È¤¤Êý: %s ¥ª¥×¥·¥ç¥ó... ¥Õ¥¡¥¤¥ë...\n"
-
-#: objdump.c:224
-msgid "Display information from object FILE.\n"
-msgstr "¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤«¤é¤Î¾ðÊó¤òɽ¼¨¤¹¤ë¡£\n"
-
-#: objdump.c:225
-msgid "\n At least one of the following switches must be given:\n"
-msgstr "\n °Ê²¼¤Î¥¹¥¤¥Ã¥Á¤«¤é¾¯¤Ê¤¯¤È¤â°ì¤Ä¤Ï»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó:\n"
-
-#: objdump.c:226
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" -V, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-" -a, --archive-headers ½ñ¸Ë¥Ø¥Ã¥À¾ðÊó¤òɽ¼¨¤¹¤ë\n"
-" -f, --file-headers ¥Õ¥¡¥¤¥ë¥Ø¥Ã¥ÀÁ´ÂΤξðÊó¤òɽ¼¨¤¹¤ë\n"
-" -p, --private-headers ¥ª¥Ö¥¸¥§¥¯¥È·Á¼°ÆÃÍ­¤Î¥Õ¥¡¥¤¥ë¥Ø¥Ã¥ÀÆâÍƤòɽ¼¨¤¹¤ë\n"
-" -h, --[section-]headers ¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¤ÎÆâÍƤòɽ¼¨¤¹¤ë\n"
-" -x, --all-headers Á´¥Ø¥Ã¥À¤ÎÆâÍƤòɽ¼¨¤¹¤ë\n"
-" -d, --disassemble executable ¥»¥¯¥·¥ç¥ó¤ÎÆâÍƤò¥¢¥»¥ó¥Ö¥ê·Á¼°É½¼¨\n"
-" -D, --disassemble-all Á´¥»¥¯¥·¥ç¥ó¤ÎÆâÍƤò¥¢¥»¥ó¥Ö¥ê·Á¼°É½¼¨\n"
-" -S, --source µÕ¥¢¥»¥ó¥Ö¥ë¤È¥½¡¼¥¹¥³¡¼¥É¤òº®ºß¤µ¤»¤Æɽ¼¨¤¹¤ë\n"
-" -s, --full-contents Í׵ᤵ¤ì¤¿Á´¥»¥¯¥·¥ç¥ó¤ÎÁ´¤Æ¤ÎÆâÍƤòɽ¼¨¤¹¤ë\n"
-" -g, --debugging ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î¥Ç¥Ð¥Ã¥°¾ðÊó¤òɽ¼¨\n"
-" -G, --stabs ¥Õ¥¡¥¤¥ë¤Î STABS ¾ðÊó¤òÁǤηÁ¼°¤Çɽ¼¨¤¹¤ë\n"
-" -t, --syms ¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ÎÆâÍƤòɽ¼¨¤¹¤ë\n"
-" -T, --dynamic-syms ưŪ¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ÎÆâÍƤòɽ¼¨¤¹¤ë\n"
-" -r, --reloc ¥Õ¥¡¥¤¥ë¤ÎºÆÇÛÃÖ¥¨¥ó¥È¥ê¤òɽ¼¨¤¹¤ë\n"
-" -R, --dynamic-reloc ¥Õ¥¡¥¤¥ë¤ÎưŪºÆÇÛÃÖ¥¨¥ó¥È¥ê¤òɽ¼¨¤¹¤ë\n"
-" -V, --version ¤³¤Î¥×¥í¥°¥é¥à¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤¹¤ë\n"
-" -i, --info ¥µ¥Ý¡¼¥È¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È·Á¼°¤È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤òɽ¼¨\n"
-" -H, --help ¤³¤Î¾ðÊó¤òɽ¼¨¤¹¤ë\n"
-
-#: objdump.c:248
-msgid "\n The following switches are optional:\n"
-msgstr "\n °Ê²¼¤Î¥¹¥¤¥Ã¥Á¤Ï¥ª¥×¥·¥ç¥ó¤Ç¤¹:\n"
-
-#: objdump.c:249
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', 'gnu',\n"
-" 'lucid', 'arm', 'hp', 'edg', or 'gnu-new-abi'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whoes address is >= ADDR\n"
-" --stop-address=ADDR Only process data whoes address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-"\n"
-msgstr ""
-" -b, --target=BFDNAME ¥¿¡¼¥²¥Ã¥È¥ª¥Ö¥¸¥§¥¯¥È·Á¼°¤ò BFDNAME ¤È»ØÄê\n"
-" -m, --architecture=MACHINE ¥¿¡¼¥²¥Ã¥È¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò MACHINE ¤È»ØÄê\n"
-" -j, --section=NAME ¥»¥¯¥·¥ç¥ó NAME ¤Î¾ðÊó¤À¤±¤òɽ¼¨¤¹¤ë\n"
-" -M, --disassembler-options=OPT µÕ¥¢¥»¥ó¥Ö¥é¤Ë OPT ʸ»úÎó¤òÅϤ¹\n"
-" -EB --endian=big µÕ¥¢¥»¥ó¥Ö¥ë»þ¤Ë¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó·Á¼°¤È¤¹¤ë\n"
-" -EL --endian=little µÕ¥¢¥»¥ó¥Ö¥ë»þ¤Ë¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó·Á¼°¤È¤¹¤ë\n"
-" --file-start-context ¥Õ¥¡¥¤¥ë»ÏÅÀ¤«¤é¤Îʸ̮¤ò´Þ¤á¤ë(-S ¤È¶¦¤Ë»ÈÍÑ)\n"
-" -l, --line-numbers ½ÐÎϤ˹ÔÈÖ¹æ¤È¥Õ¥¡¥¤¥ë̾¤ò´Þ¤á¤ë\n"
-" -C, --demangle[=STYLE] ÊÑ·Á/½èÍý¤µ¤ì¤¿¥·¥ó¥Ü¥ë̾¤òÉü¸µ(demangle)¤¹¤ë\n"
-" STYLE ¤ò»ØÄꤹ¤ë¾ì¹ç `auto', 'gnu', 'lucid',\n"
-" 'arm', 'hp', 'edg', or 'gnu-new-abi'\n"
-" -w, --wide ½ÐÎÏÉý 80 ·å°Ê¾å¤Ç½ÐÎϤòÀ°·Á¤¹¤ë\n"
-" -z, --disassemble-zeroes µÕ¥¢¥»¥ó¥Ö¥ë»þ¤Ë¥¼¥í¤Î¥Ö¥í¥Ã¥¯¤òÈô¤Ð¤µ¤Ê¤¤\n"
-" --start-address=ADDR ADDR °Ê¾å¤Î¥¢¥É¥ì¥¹¤À¤±¤ò½èÍý¤¹¤ë\n"
-" --stop-address=ADDR ADDR °Ê²¼¤Î¥¢¥É¥ì¥¹¤À¤±¤ò½èÍý¤¹¤ë\n"
-" --prefix-addresses µÕ¥¢¥»¥ó¥Ö¥ë·ë²Ì¤Î¦¤Ë´°Á´¥¢¥É¥ì¥¹¤òɽ¼¨¤¹¤ë\n"
-" --[no-]show-raw-insn µÕ¥¢¥»¥ó¥Ö¥ëÌ¿Îá̾¤Î¦¤Ë 16 ¿Ê¿ô¥³¡¼¥É¤âɽ¼¨\n"
-" --adjust-vma=OFFSET Á´¤Æ¤Î¥»¥¯¥·¥ç¥ó¥¢¥É¥ì¥¹¤Ë OFFSET ¤ò²Ã»»¤¹¤ë\n"
-"\n"
-
-#: objdump.c:419
-msgid "Sections:\n"
-msgstr "¥»¥¯¥·¥ç¥ó:\n"
-
-#: objdump.c:422
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "º÷°ú̾ ¥µ¥¤¥º VMA LMA File off Algn"
-
-#: objdump.c:424
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "º÷°ú̾ ¥µ¥¤¥º VMA LMA File off Algn"
-
-#: objdump.c:428
-msgid " Flags"
-msgstr " ¥Õ¥é¥°"
-
-#: objdump.c:478
-#, c-format
-msgid "%s: not a dynamic object"
-msgstr "%s: ưŪ¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: objdump.c:494
-#, c-format
-msgid "%s: No dynamic symbols"
-msgstr "%s: ưŪ¥·¥ó¥Ü¥ë¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: objdump.c:1197
-msgid "Out of virtual memory"
-msgstr "²¾ÁÛ¥á¥â¥ê¤¬Â­¤ê¤Þ¤»¤ó"
-
-#: objdump.c:1616
-#, c-format
-msgid "Can't use supplied machine %s"
-msgstr "Í¿¤¨¤é¤ì¤¿¥Þ¥·¥ó %s ¤ò»È¤¨¤Þ¤»¤ó"
-
-#: objdump.c:1634
-#, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr "%s ¥¢¡¼¥­¥Æ¥¯¥Á¥ãÍѤˤϵե¢¥»¥ó¥Ö¥ë¤Ç¤­¤Þ¤»¤ó\n"
-
-#: objdump.c:1716
-#, c-format
-msgid "Disassembly of section %s:\n"
-msgstr "¥»¥¯¥·¥ç¥ó %s ¤ÎµÕ¥¢¥»¥ó¥Ö¥ë:\n"
-
-#: objdump.c:1890
-#, c-format
-msgid "No %s section present\n\n"
-msgstr "%s ¥»¥¯¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤»¤ó\n\n"
-
-#: objdump.c:1897
-#, c-format
-msgid "%s has no %s section"
-msgstr "%s ¤Ë¤Ï %s ¥»¥¯¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: objdump.c:1911
-#, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr "%s ¥»¥¯¥·¥ç¥ó (%s) Æɹþ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: %s"
-
-#: objdump.c:1923
-#, c-format
-msgid "Reading %s section of %s failed: %s\n"
-msgstr "%s ¥»¥¯¥·¥ç¥ó (%s) Æɹþ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: %s\n"
-
-#: objdump.c:1966
-#, c-format
-msgid "Contents of %s section:\n\n"
-msgstr "%s ¥»¥¯¥·¥ç¥ó¤ÎÆâÍÆ:\n\n"
-
-#: objdump.c:2066
-#, c-format
-msgid "architecture: %s, "
-msgstr "¥¢¡¼¥­¥Æ¥¯¥Á¥ã: %s, "
-
-#: objdump.c:2069
-#, c-format
-msgid "flags 0x%08x:\n"
-msgstr "¥Õ¥é¥° 0x%08x:\n"
-
-#: objdump.c:2082
-msgid "\nstart address 0x"
-msgstr "\n³«»Ï¥¢¥É¥ì¥¹ 0x"
-
-#: objdump.c:2114
-#, c-format
-msgid "\n%s: file format %s\n"
-msgstr "\n%s: ¥Õ¥¡¥¤¥ë·Á¼° %s\n"
-
-#: objdump.c:2156
-#, c-format
-msgid "%s: printing debugging information failed"
-msgstr "%s: ¥Ç¥Ð¥Ã¥°¾ðÊó¤Î½ÐÎϤ˼ºÇÔ¤·¤Þ¤·¤¿"
-
-#: objdump.c:2233
-#, c-format
-msgid "In archive %s:\n"
-msgstr "½ñ¸Ë %s Æâ:\n"
-
-#: objdump.c:2285
-#, c-format
-msgid "Contents of section %s:\n"
-msgstr "¥»¥¯¥·¥ç¥ó %s ¤ÎÆâÍÆ:\n"
-
-#: objdump.c:2798
-#, c-format
-msgid "BFD header file version %s\n"
-msgstr "BFD ¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¥Ð¡¼¥¸¥ç¥ó %s\n"
-
-#: objdump.c:2882
-msgid "unrecognized -E option"
-msgstr "-E ¤Î¥ª¥×¥·¥ç¥ó¤òǧ¼±¤Ç¤­¤Þ¤»¤ó"
-
-#: objdump.c:2893
-#, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr "--endian ¥¿¥¤¥× `%s' ¤òǧ¼±¤Ç¤­¤Þ¤»¤ó"
-
-#: rdcoff.c:205
-#, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr "parse_coff_type: ÉÔÀµ¤Ê¥¿¥¤¥×¥³¡¼¥É 0x%x"
-
-#: rdcoff.c:423 rdcoff.c:531 rdcoff.c:730
-#, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr "bfd_coff_get_syment ¤¬¼ºÇÔ¤·¤Þ¤·¤¿: %s"
-
-#: rdcoff.c:439 rdcoff.c:750
-#, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr "bfd_coff_get_auxent ¤¬¼ºÇÔ¤·¤Þ¤·¤¿: %s"
-
-#: rdcoff.c:817
-#, c-format
-msgid "%ld: .bf without preceding function"
-msgstr "%ld: Á°Êý¤Ë´Ø¿ô¤¬¤Ê¤¤ .bf ¤¬¤¢¤ê¤Þ¤¹"
-
-#: rdcoff.c:867
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr "%ld: ͽ´ü¤·¤Ê¤¤ .ef ¤Ç¤¹\n"
-
-#: rddbg.c:87
-#, c-format
-msgid "%s: no recognized debugging information"
-msgstr "%s: ǧ¼±¤µ¤ì¤¿¥Ç¥Ð¥Ã¥°¾ðÊó¤Ï¤¢¤ê¤Þ¤»¤ó"
-
-#: rddbg.c:410
-msgid "Last stabs entries before error:\n"
-msgstr "¥¨¥é¡¼¤ÎľÁ°¤Î¥¹¥¿¥Ö¥¨¥ó¥È¥ê:\n"
-
-#: readelf.c:260
-#, c-format
-msgid "Unable to seek to start of %s at %x\n"
-msgstr "%s ¤Î»ÏÅÀ¤Ø seek ¤Ç¤­¤Þ¤»¤ó(%x)\n"
-
-#: readelf.c:268
-#, c-format
-msgid "Out of memory allocating %d bytes for %s\n"
-msgstr "%d ¥Ð¥¤¥È¤Î¥á¥â¥ê³ÎÊݤ¬¤Ç¤­¤Þ¤»¤ó (%s)\n"
-
-#: readelf.c:274
-#, c-format
-msgid "Unable to read in %d bytes of %s\n"
-msgstr "%d ¥Ð¥¤¥È¤ÎÆɹþ¤ß¤Ë¼ºÇÔ (%s)\n"
-
-#: readelf.c:284
-#, c-format
-msgid "Unable to seek to %x for %s\n"
-msgstr "%x ¤Ø seek ¤Ç¤­¤Þ¤»¤ó (%s)\n"
-
-#: readelf.c:289
-#, c-format
-msgid "Unable to read data at %x for %s\n"
-msgstr "%x ¤Ç¤Î¥Ç¡¼¥¿¤è¸«¹þ¤ß¤¬¤Ç¤­¤Þ¤»¤ó (%s)\n"
-
-#: readelf.c:304 readelf.c:330
-#, c-format
-msgid "%s: Error: "
-msgstr "%s: ¥¨¥é¡¼: "
-
-#: readelf.c:316 readelf.c:345
-#, c-format
-msgid "%s: Warning: "
-msgstr "%s: ·Ù¹ð: "
-
-#: readelf.c:395 readelf.c:533
-#, c-format
-msgid "Unhandled data length: %d\n"
-msgstr "¼è¤ê°·¤ï¤ì¤Ê¤«¤Ã¤¿¥Ç¡¼¥¿Ä¹: %d\n"
-
-#: readelf.c:597
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr "¤³¤Î¥Þ¥·¥ó¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ç¤ÎºÆÇÛÃ֤ˤĤ¤¤Æ²ò¤Ã¤Æ¤¤¤Þ¤»¤ó\n"
-
-#: readelf.c:637 readelf.c:666 readelf.c:698 readelf.c:726
-msgid "out of memory parsing relocs"
-msgstr "ºÆÇÛÃ֥ǡ¼¥¿²òÀÏÃæ¤Ë¥á¥â¥êÉÔ­¤Ë´Ù¤ê¤Þ¤·¤¿"
-
-#: readelf.c:744
-msgid " Offset Info Type Symbol's Value Symbol's Name Addend\n"
-msgstr " Offset ¾ðÊó ¥¿¥¤¥× ¥·¥ó¥Ü¥ë¤ÎÃÍ ¥·¥ó¥Ü¥ë̾ Addend\n"
-
-#: readelf.c:747
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr " Offset ¾ðÊó ¥¿¥¤¥× ¥·¥ó¥Ü¥ë¤ÎÃÍ ¥·¥ó¥Ü¥ë̾\n"
-
-#: readelf.c:907 readelf.c:909
-#, c-format
-msgid "unrecognised: %-7lx"
-msgstr "ǧ¼±¤Ç¤­¤Þ¤»¤ó: %-7lx"
-
-#: readelf.c:934
-#, c-format
-msgid "<string table index %3ld>"
-msgstr "<ʸ»úÎó¥Æ¡¼¥Ö¥ë¤Îº÷°ú %3ld>"
-
-#: readelf.c:1147
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr "¥×¥í¥»¥Ã¥µ¸ÇÍ­: %lx"
-
-#: readelf.c:1166
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr "¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¸ÇÍ­: %lx"
-
-#: readelf.c:1169 readelf.c:1677
-#, c-format
-msgid "<unknown>: %lx"
-msgstr "<ÉÔÌÀ>: %lx"
-
-#: readelf.c:1183
-msgid "NONE (None)"
-msgstr "NONE (̵¤·)"
-
-#: readelf.c:1184
-msgid "REL (Relocatable file)"
-msgstr "REL (ºÆÇÛÃÖ²Äǽ¥Õ¥¡¥¤¥ë)"
-
-#: readelf.c:1185
-msgid "EXEC (Executable file)"
-msgstr "EXEC (¼Â¹Ô²Äǽ¥Õ¥¡¥¤¥ë)"
-
-#: readelf.c:1186
-msgid "DYN (Shared object file)"
-msgstr "DYN (¶¦Í­¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë)"
-
-#: readelf.c:1187
-msgid "CORE (Core file)"
-msgstr "CORE (¥³¥¢¥Õ¥¡¥¤¥ë)"
-
-#: readelf.c:1191
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr "¥×¥í¥»¥Ã¥µ¸ÇÍ­: (%x)"
-
-#: readelf.c:1193
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr "OS ¸ÇÍ­: (%x)"
-
-#: readelf.c:1195 readelf.c:1281 readelf.c:1811
-#, c-format
-msgid "<unknown>: %x"
-msgstr "<ÉÔÌÀ>: %x"
-
-#: readelf.c:1208
-msgid "None"
-msgstr "¤Ê¤·"
-
-#: readelf.c:1849
-msgid "Usage: readelf {options} elf-file(s)\n"
-msgstr "»È¤¤Êý: readelf {¥ª¥×¥·¥ç¥ó} elf¥Õ¥¡¥¤¥ë\n"
-
-#: readelf.c:1850
-msgid " Options are:\n"
-msgstr " ¥ª¥×¥·¥ç¥ó:\n"
-
-#: readelf.c:1851
-msgid " -a or --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-msgstr " -a Ëô¤Ï --all -h -l -S -s -r -d -V -A -I ¤ÈƱ¤¸\n"
-
-#: readelf.c:1852
-msgid " -h or --file-header Display the ELF file header\n"
-msgstr " -h Ëô¤Ï --file-header ELF ¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À¤òɽ¼¨¤¹¤ë\n"
-
-#: readelf.c:1853
-msgid " -l or --program-headers or --segments\n"
-msgstr " -l Ëô¤Ï --program-headers Ëô¤Ï --segments\n"
-
-#: readelf.c:1854
-msgid " Display the program headers\n"
-msgstr " ¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤òɽ¼¨¤¹¤ë\n"
-
-#: readelf.c:1855
-msgid " -S or --section-headers or --sections\n"
-msgstr " -S Ëô¤Ï --section-headers Ëô¤Ï --sections\n"
-
-#: readelf.c:1856
-msgid " Display the sections' header\n"
-msgstr " ¥»¥¯¥·¥ç¥ó¤Î¥Ø¥Ã¥À¤òɽ¼¨¤¹¤ë\n"
-
-#: readelf.c:1857
-msgid " -e or --headers Equivalent to: -h -l -S\n"
-msgstr " -e Ëô¤Ï --headers -h -l -S ¤ÈƱ¤¸\n"
-
-#: readelf.c:1858
-msgid " -s or --syms or --symbols Display the symbol table\n"
-msgstr " -s Ëô¤Ï --syms Ëô¤Ï --symbols ¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤òɽ¼¨¤¹¤ë\n"
-
-#: readelf.c:1859
-msgid " -n or --notes Display the core notes (if present)\n"
-msgstr " -n Ëô¤Ï --notes ¥³¥¢ note ¥»¥°¥á¥ó¥È¤¬¤¢¤ì¤Ðɽ¼¨¤¹¤ë\n"
-
-#: readelf.c:1860
-msgid " -r or --relocs Display the relocations (if present)\n"
-msgstr " -r Ëô¤Ï --relocs ºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤¬¤¢¤ì¤Ðɽ¼¨¤¹¤ë\n"
-
-#: readelf.c:1861
-msgid " -d or --dynamic Display the dynamic segment (if present)\n"
-msgstr " -d Ëô¤Ï --dynamic ưŪ¥»¥°¥á¥ó¥È¤¬¤¢¤ì¤Ðɽ¼¨¤¹¤ë\n"
-
-#: readelf.c:1862
-msgid " -V or --version-info Display the version sections (if present)\n"
-msgstr " -V Ëô¤Ï --version-info ¥Ð¡¼¥¸¥ç¥ó¥»¥¯¥·¥ç¥ó¤¬¤¢¤ì¤Ðɽ¼¨¤¹¤ë\n"
-
-#: readelf.c:1863
-msgid " -A or --arch-specific Display architecture specific information (if any).\n"
-msgstr " -A Ëô¤Ï --arch-specific ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¸ÇÍ­¾ðÊ󤬤¢¤ì¤Ðɽ¼¨¤¹¤ë\n"
-
-#: readelf.c:1864
-msgid " -D or --use-dynamic Use the dynamic section info when displaying symbols\n"
-msgstr " -D Ëô¤Ï --use-dynamic ¥·¥ó¥Ü¥ëɽ¼¨¤ËưŪ¥»¥¯¥·¥ç¥ó¾ðÊó¤ò»ÈÍѤ¹¤ë\n"
-
-#: readelf.c:1865
-msgid " -x <number> or --hex-dump=<number>\n"
-msgstr " -x <ÈÖ¹æ> Ëô¤Ï --hex-dump=<ÈÖ¹æ>\n"
-
-#: readelf.c:1866
-msgid " Dump the contents of section <number>\n"
-msgstr " ¥»¥¯¥·¥ç¥ó <ÈÖ¹æ> ¤ÎÆâÍƤò¥À¥ó¥×¤¹¤ë\n"
-
-#: readelf.c:1867
-msgid " -w[liaprf] or --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=frames]\n"
-msgstr " -w[liaprf] Ëô¤Ï --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=frames]\n"
-
-#: readelf.c:1868
-msgid " Display the contents of DWARF2 debug sections\n"
-msgstr " DWARF2 ¥Ç¥Ð¥Ã¥°¥»¥¯¥·¥ç¥ó¤ÎÆâÍƤòɽ¼¨¤¹¤ë\n"
-
-#: readelf.c:1870
-msgid " -i <number> or --instruction-dump=<number>\n"
-msgstr " -i <ÈÖ¹æ> or --instruction-dump=<ÈÖ¹æ>\n"
-
-#: readelf.c:1871
-msgid " Disassemble the contents of section <number>\n"
-msgstr " ¥»¥¯¥·¥ç¥ó <ÈÖ¹æ> ¤ÎÆâÍƤòµÕ¥¢¥»¥ó¥Ö¥ë¤¹¤ë\n"
-
-#: readelf.c:1873
-msgid " -I or --histogram Display histogram of bucket list lengths\n"
-msgstr " -I Ëô¤Ï --histogram ¥Ð¥±¥Ã¥È¥ê¥¹¥ÈŤÎÅÙ¿ôʬÉÛ¤òɽ¼¨¤¹¤ë\n"
-
-#: readelf.c:1874
-msgid " -v or --version Display the version number of readelf\n"
-msgstr " -v Ëô¤Ï --version readelf ¤Î¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨¤¹¤ë\n"
-
-#: readelf.c:1875
-msgid " -H or --help Display this information\n"
-msgstr " -H Ëô¤Ï --help ¤³¤Î»È¤¤Êý¤òɽ¼¨¤¹¤ë\n"
-
-#: readelf.c:1893
-msgid "Out of memory allocating dump request table."
-msgstr "Í׵ᤵ¤ì¤¿¥Æ¡¼¥Ö¥ë¤Î¥À¥ó¥×Ãæ¤Ë¥á¥â¥ê³ÎÊݤ¬¼ºÇÔ¤·¤Þ¤·¤¿¡£"
-
-#: readelf.c:2033
-#, c-format
-msgid "Unrecognised debug option '%s'\n"
-msgstr "¥Ç¥Ð¥Ã¥°¥ª¥×¥·¥ç¥ó '%s' ¤òǧ¼±¤Ç¤­¤Þ¤»¤ó\n"
-
-#: readelf.c:2058
-#, c-format
-msgid "Invalid option '-%c'\n"
-msgstr "¥ª¥×¥·¥ç¥ó '-%c' ¤¬ÉÔŬÀڤǤ¹\n"
-
-#: readelf.c:2071
-msgid "Nothing to do.\n"
-msgstr "¹Ô¤Ê¤¦¤Ù¤­»ö¤Ï¤¢¤ê¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:2084 readelf.c:2101 readelf.c:3740
-msgid "none"
-msgstr "¤Ê¤·"
-
-#: readelf.c:2085
-msgid "ELF32"
-msgstr "ELF32"
-
-#: readelf.c:2086
-msgid "ELF64"
-msgstr "ELF64"
-
-#: readelf.c:2088 readelf.c:2105 readelf.c:2133
-#, c-format
-msgid "<unknown: %x>"
-msgstr "<ÉÔÌÀ: %x>"
-
-#: readelf.c:2102
-msgid "2's complement, little endian"
-msgstr "2 ¤ÎÊä¿ô¡¢¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó"
-
-#: readelf.c:2103
-msgid "2's complement, big endian"
-msgstr "2 ¤ÎÊä¿ô¡¢¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó"
-
-#: readelf.c:2118
-msgid "UNIX - System V"
-msgstr "UNIX - System V"
-
-#: readelf.c:2119
-msgid "UNIX - HP-UX"
-msgstr "UNIX - HP-UX"
-
-#: readelf.c:2120
-msgid "UNIX - NetBSD"
-msgstr "UNIX - NetBSD"
-
-#: readelf.c:2121
-msgid "UNIX - Linux"
-msgstr "UNIX - Linux"
-
-#: readelf.c:2122
-msgid "GNU/Hurd"
-msgstr "GNU/Hurd"
-
-#: readelf.c:2123
-msgid "UNIX - Solaris"
-msgstr "UNIX - Solaris"
-
-#: readelf.c:2124
-msgid "UNIX - AIX"
-msgstr "UNIX - AIX"
-
-#: readelf.c:2125
-msgid "UNIX - IRIX"
-msgstr "UNIX - IRIX"
-
-#: readelf.c:2126
-msgid "UNIX - FreeBSD"
-msgstr "UNIX - FreeBSD"
-
-#: readelf.c:2127
-msgid "UNIX - TRU64"
-msgstr "UNIX - TRU64"
-
-#: readelf.c:2128
-msgid "Novell - Modesto"
-msgstr "Novell - Modesto"
-
-#: readelf.c:2129
-msgid "UNIX - OpenBSD"
-msgstr "UNIX - OpenBSD"
-
-#: readelf.c:2130
-msgid "Standalone App"
-msgstr "Standalone App"
-
-#: readelf.c:2131
-msgid "ARM"
-msgstr "ARM"
-
-#: readelf.c:2148
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr "ELF ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó - »ÏÅÀ¤Ë¤¢¤ë¥Þ¥¸¥Ã¥¯Èֹ椬°Û¤Ê¤ê¤Þ¤¹\n"
-
-#: readelf.c:2156
-msgid "ELF Header:\n"
-msgstr "ELF ¥Ø¥Ã¥À:\n"
-
-#: readelf.c:2157
-msgid " Magic: "
-msgstr " ¥Þ¥¸¥Ã¥¯: "
-
-#: readelf.c:2161
-#, c-format
-msgid " Class: %s\n"
-msgstr " ¥¯¥é¥¹: %s\n"
-
-#: readelf.c:2163
-#, c-format
-msgid " Data: %s\n"
-msgstr " ¥Ç¡¼¥¿: %s\n"
-
-#: readelf.c:2165
-#, c-format
-msgid " Version: %d %s\n"
-msgstr " ¥Ð¡¼¥¸¥ç¥ó: %d %s\n"
-
-#: readelf.c:2172
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr " OS/ABI: %s\n"
-
-#: readelf.c:2174
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr " ABI ¥Ð¡¼¥¸¥ç¥ó: %d\n"
-
-#: readelf.c:2176
-#, c-format
-msgid " Type: %s\n"
-msgstr " ¥¿¥¤¥×: %s\n"
-
-#: readelf.c:2178
-#, c-format
-msgid " Machine: %s\n"
-msgstr " ¥Þ¥·¥ó: %s\n"
-
-#: readelf.c:2180
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr " ¥Ð¡¼¥¸¥ç¥ó: 0x%lx\n"
-
-#: readelf.c:2183
-msgid " Entry point address: "
-msgstr " ¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¥¢¥É¥ì¥¹: "
-
-#: readelf.c:2185
-msgid "\n Start of program headers: "
-msgstr "\n ¥×¥í¥°¥é¥à¤Î³«»Ï¥Ø¥Ã¥À: "
-
-#: readelf.c:2187
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr ""
-" (¥Ð¥¤¥È)\n"
-" ¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À»ÏÅÀ: "
-
-#: readelf.c:2189
-msgid " (bytes into file)\n"
-msgstr " (¥Ð¥¤¥È)\n"
-
-#: readelf.c:2191
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr " ¥Õ¥é¥°: 0x%lx%s\n"
-
-#: readelf.c:2194
-#, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr " ¤³¤Î¥Ø¥Ã¥À¤Î¥µ¥¤¥º: %ld (¥Ð¥¤¥È)\n"
-
-#: readelf.c:2196
-#, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr " ¥×¥í¥°¥é¥à¥Ø¥Ã¥À¥µ¥¤¥º: %ld (¥Ð¥¤¥È)\n"
-
-#: readelf.c:2198
-#, c-format
-msgid " Number of program headers: %ld\n"
-msgstr " ¥×¥í¥°¥é¥à¥Ø¥Ã¥À¿ô: %ld\n"
-
-#: readelf.c:2200
-#, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr " ¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À: %ld (¥Ð¥¤¥È)\n"
-
-#: readelf.c:2202
-#, c-format
-msgid " Number of section headers: %ld\n"
-msgstr " ¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¥µ¥¤¥º: %ld\n"
-
-#: readelf.c:2204
-#, c-format
-msgid " Section header string table index: %ld\n"
-msgstr " ¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥Àʸ»úÎó¥Æ¡¼¥Ö¥ëº÷°ú:%ld\n"
-
-#: readelf.c:2289
-msgid "\nThere are no program headers in this file.\n"
-msgstr "\n¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥×¥í¥°¥é¥à¥Ø¥Ã¥À¤Ï¤¢¤ê¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:2295
-#, c-format
-msgid "\nElf file type is %s\n"
-msgstr "\nElf ¥Õ¥¡¥¤¥ë¥¿¥¤¥×¤Ï %s ¤Ç¤¹\n"
-
-#: readelf.c:2296
-msgid "Entry point "
-msgstr "¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È "
-
-#: readelf.c:2298
-#, c-format
-msgid "\nThere are %d program headers, starting at offset "
-msgstr "\n%d ¸Ä¤Î¥×¥í¥°¥é¥à¥Ø¥Ã¥À¡¢»ÏÅÀ¥ª¥Õ¥»¥Ã¥È "
-
-#: readelf.c:2309 readelf.c:2485 readelf.c:2527 readelf.c:2570 readelf.c:2611
-#: readelf.c:3133 readelf.c:3174 readelf.c:3350 readelf.c:4358 readelf.c:4372
-#: readelf.c:7741 readelf.c:7781
-msgid "Out of memory\n"
-msgstr "¥á¥â¥ê¤¬Â­¤ê¤Þ¤»¤ó\n"
-
-#: readelf.c:2327
-#, c-format
-msgid "\nProgram Header%s:\n"
-msgstr "\n¥×¥í¥°¥é¥à¥Ø¥Ã¥À%.0s:\n"
-
-#: readelf.c:2331
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " ¥¿¥¤¥× ¥ª¥Õ¥»¥Ã¥È ²¾ÁÛAddr ʪÍýAddr FileSiz MemSiz Flg Align\n"
-
-#: readelf.c:2335
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr " ¥¿¥¤¥× ¥ª¥Õ¥»¥Ã¥È ²¾ÁÛAddr ʪÍýAddr\n"
-
-#: readelf.c:2337
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr " ¥Õ¥¡¥¤¥ë¥µ¥¤¥º ¥á¥â¥ê¥µ¥¤¥º ¥Õ¥é¥° ¥¢¥é¥¤¥ó\n"
-
-#: readelf.c:2395
-msgid "more than one dynamic segment\n"
-msgstr "Ê£¿ô¤ÎưŪ¥»¥°¥á¥ó¥È\n"
-
-#: readelf.c:2403
-msgid "Unable to find program interpreter name\n"
-msgstr "¥×¥í¥°¥é¥à¥¤¥ó¥¿¥×¥ê¥¿Ì¾¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó\n"
-
-#: readelf.c:2410
-#, c-format
-msgid "\n [Requesting program interpreter: %s]"
-msgstr "\n [Í׵ᤵ¤ì¤ë¥×¥í¥°¥é¥à¥¤¥ó¥¿¥×¥ê¥¿: %s]"
-
-#: readelf.c:2428
-msgid "\n Section to Segment mapping:\n"
-msgstr "\n ¥»¥°¥á¥ó¥È¥Þ¥Ã¥Ô¥ó¥°¤Ø¤Î¥»¥¯¥·¥ç¥ó:\n"
-
-#: readelf.c:2429
-msgid " Segment Sections...\n"
-msgstr " ¥»¥°¥á¥ó¥È¥»¥¯¥·¥ç¥ó...\n"
-
-#: readelf.c:2693
-msgid "\nThere are no sections in this file.\n"
-msgstr "\n¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¥»¥¯¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:2699
-#, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr "%d ¸Ä¤Î¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À¡¢»ÏÅÀ¥ª¥Õ¥»¥Ã¥È 0x%lx:\n"
-
-#: readelf.c:2739
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr "¥Õ¥¡¥¤¥ë¤¬Ê£¿ô¤ÎưŪ¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹\n"
-
-#: readelf.c:2752
-msgid "File contains multiple dynamic string tables\n"
-msgstr "¥Õ¥¡¥¤¥ë¤¬Ê£¿ô¤ÎưŪʸ»úÎó¥Æ¡¼¥Ö¥ë¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹\n"
-
-#: readelf.c:2786
-#, c-format
-msgid "\nSection Header%s:\n"
-msgstr "\n¥»¥¯¥·¥ç¥ó¥Ø¥Ã¥À%.0s:\n"
-
-#: readelf.c:2790
-msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-msgstr " [ÈÖ] ̾Á° ¥¿¥¤¥× ¥¢¥É¥ì¥¹ Off ¥µ¥¤¥º ES Flg Lk Inf Al\n"
-
-#: readelf.c:2793
-msgid " [Nr] Name Type Address Offset\n"
-msgstr " [ÈÖ] ̾Á° ¥¿¥¤¥× ¥¢¥É¥ì¥¹ Offset\n"
-
-#: readelf.c:2794
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr " ¥µ¥¤¥º EntSize ¥Õ¥é¥° Link Info Align\n"
-
-#: readelf.c:2841
-msgid "Key to Flags:\n"
-msgstr "¥Õ¥é¥°¤Î¥­¡¼:\n"
-
-#: readelf.c:2842
-msgid " W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-msgstr " W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-
-#: readelf.c:2843
-msgid " I (info), L (link order), G (group), x (unknown)\n"
-msgstr " I (info), L (link order), G (group), x (ÉÔÌÀ)\n"
-
-#: readelf.c:2844
-msgid " O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr " O (OS ¤ÎÆüì½èÍý¤ËɬÍ×) o (OS ¸ÇÍ­), p (processor ¸ÇÍ­)\n"
-
-#: readelf.c:2902
-#, c-format
-msgid "\nRelocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr "\n¥ª¥Õ¥»¥Ã¥È 0x%lx ¤ÎºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó¤Ï %ld ¥Ð¥¤¥È¤Ç¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹:\n"
-
-#: readelf.c:2909
-msgid "\nThere are no dynamic relocations in this file.\n"
-msgstr "\n¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤ÏưŪºÆÇÛÃÖ¤¬¤¢¤ê¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:2937
-msgid "\nRelocation section "
-msgstr "\nºÆÇÛÃÖ¥»¥¯¥·¥ç¥ó "
-
-#: readelf.c:2944
-#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr " (¥ª¥Õ¥»¥Ã¥È 0x%lx) ¤Ï %lu ¸Ä¤Î¥¨¥ó¥È¥ê¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹:\n"
-
-#: readelf.c:2972
-msgid "\nThere are no relocations in this file.\n"
-msgstr "\n¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤ÏºÆÇÛÃÖ¤µ¤ì¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:3227
-msgid "\nThere is no dynamic segment in this file.\n"
-msgstr "\n¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤ÏưŪ¥»¥°¥á¥ó¥È¤¬¤¢¤ê¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:3261
-msgid "Unable to seek to end of file!"
-msgstr "¥Õ¥¡¥¤¥ëËöÈø¤Ë seek ¤Ç¤­¤Þ¤»¤ó!"
-
-#: readelf.c:3270
-msgid "Unable to determine the number of symbols to load\n"
-msgstr "¥í¡¼¥É¤¹¤Ù¤­¥·¥ó¥Ü¥ë¤Î¿ô¤ò·èÄê¤Ç¤­¤Þ¤»¤ó\n"
-
-#: readelf.c:3300
-msgid "Unable to seek to end of file\n"
-msgstr "¥Õ¥¡¥¤¥ëËöÈø¤Ë seek ¤Ç¤­¤Þ¤»¤ó\n"
-
-#: readelf.c:3306
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr "ưŪʸ»úÎó¥Æ¡¼¥Ö¥ë¤ÎŤµ¤ò·èÄê¤Ç¤­¤Þ¤»¤ó\n"
-
-#: readelf.c:3367
-#, c-format
-msgid "\nDynamic segment at offset 0x%x contains %ld entries:\n"
-msgstr "\n¥ª¥Õ¥»¥Ã¥È 0x%x ¤ÎưŪ¥»¥°¥á¥ó¥È¤Ï %ld ¸Ä¤Î¥¨¥ó¥È¥ê¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹:\n"
-
-#: readelf.c:3370
-msgid " Tag Type Name/Value\n"
-msgstr " ¥¿¥° ¥¿¥¤¥× ̾Á°/ÃÍ\n"
-
-#: readelf.c:3406
-msgid "Auxiliary library"
-msgstr "Êä½õ¥é¥¤¥Ö¥é¥ê"
-
-#: readelf.c:3410
-msgid "Filter library"
-msgstr "¥Õ¥£¥ë¥¿¥é¥¤¥Ö¥é¥ê"
-
-#: readelf.c:3414
-msgid "Configuration file"
-msgstr "ÀßÄê¥Õ¥¡¥¤¥ë"
-
-#: readelf.c:3418
-msgid "Dependency audit library"
-msgstr "°Í¸´Ø·¸´Æºº¥é¥¤¥Ö¥é¥ê"
-
-#: readelf.c:3422
-msgid "Audit library"
-msgstr "´Æºº¥é¥¤¥Ö¥é¥ê"
-
-#: readelf.c:3440 readelf.c:3466 readelf.c:3492
-msgid "Flags:"
-msgstr "¥Õ¥é¥°:"
-
-#: readelf.c:3442 readelf.c:3468 readelf.c:3494
-msgid " None\n"
-msgstr " ̵¤·\n"
-
-#: readelf.c:3613
-#, c-format
-msgid "Shared library: [%s]"
-msgstr "¶¦Í­¥é¥¤¥Ö¥é¥ê: [%s]"
-
-#: readelf.c:3616
-msgid " program interpreter"
-msgstr " ¥×¥í¥°¥é¥à¥¤¥ó¥¿¥×¥ê¥¿"
-
-#: readelf.c:3620
-#, c-format
-msgid "Library soname: [%s]"
-msgstr "¥é¥¤¥Ö¥é¥ê¤Î soname: [%s]"
-
-#: readelf.c:3624
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr "¥é¥¤¥Ö¥é¥ê¤Î rpath: [%s]"
-
-#: readelf.c:3628
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr "¥é¥¤¥Ö¥é¥ê¤Î runpath: [%s]"
-
-#: readelf.c:3689
-#, c-format
-msgid "Not needed object: [%s]\n"
-msgstr "ÉÔÍפʥª¥Ö¥¸¥§¥¯¥È: [%s]\n"
-
-#: readelf.c:3786
-#, c-format
-msgid "\nVersion definition section '%s' contains %ld entries:\n"
-msgstr "\n¥Ð¡¼¥¸¥ç¥óÄêµÁ¥»¥¯¥·¥ç¥ó '%s' ¤Ï %ld ¸Ä¤Î¥¨¥ó¥È¥ê¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹:\n"
-
-#: readelf.c:3789
-msgid " Addr: 0x"
-msgstr " ¥¢¥É¥ì¥¹: 0x"
-
-#: readelf.c:3791 readelf.c:3979
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr " ¥ª¥Õ¥»¥Ã¥È: %#08lx ¥ê¥ó¥¯: %lx (%s)\n"
-
-#: readelf.c:3821
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr " %#06x: Rev: %d ¥Õ¥é¥°: %s"
-
-#: readelf.c:3824
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr " º÷°ú: %d Cnt: %d "
-
-#: readelf.c:3835
-#, c-format
-msgid "Name: %s\n"
-msgstr "̾Á°: %s\n"
-
-#: readelf.c:3837
-#, c-format
-msgid "Name index: %ld\n"
-msgstr "̾Á°º÷°ú: %ld\n"
-
-#: readelf.c:3852
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr " %#06x: ¿Æ %d: %s\n"
-
-#: readelf.c:3855
-#, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr " %#06x: ¿Æ %d, ̾Á°º÷°ú: %ld\n"
-
-#: readelf.c:3874
-#, c-format
-msgid "\nVersion needs section '%s' contains %ld entries:\n"
-msgstr "\nɬÍץС¼¥¸¥ç¥ó¥»¥¯¥·¥ç¥ó '%s' ¤Ï %ld ¸Ä¤Î¥¨¥ó¥È¥ê¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹:\n"
-
-#: readelf.c:3877
-msgid " Addr: 0x"
-msgstr " ¥¢¥É¥ì¥¹: 0x"
-
-#: readelf.c:3879
-#, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr " Offset: %#08lx ¥»¥¯¥·¥ç¥ó¤Ø¤Î¥ê¥ó¥¯: %ld (%s)\n"
-
-#: readelf.c:3905
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr " %#06x: ¥Ð¡¼¥¸¥ç¥ó: %d"
-
-#: readelf.c:3908
-#, c-format
-msgid " File: %s"
-msgstr " ¥Õ¥¡¥¤¥ë: %s"
-
-#: readelf.c:3910
-#, c-format
-msgid " File: %lx"
-msgstr " ¥Õ¥¡¥¤¥ë: %lx"
-
-#: readelf.c:3912
-#, c-format
-msgid " Cnt: %d\n"
-msgstr " ¸Ä¿ô: %d\n"
-
-#: readelf.c:3930
-#, c-format
-msgid " %#06x: Name: %s"
-msgstr " %#06x: ̾Á°: %s"
-
-#: readelf.c:3933
-#, c-format
-msgid " %#06x: Name index: %lx"
-msgstr " %#06x: ̾Á°º÷°ú: %lx"
-
-#: readelf.c:3936
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr " ¥Õ¥é¥°: %s ¥Ð¡¼¥¸¥ç¥ó: %d\n"
-
-#: readelf.c:3974
-#, c-format
-msgid "\nVersion symbols section '%s' contains %d entries:\n"
-msgstr "\n¥Ð¡¼¥¸¥ç¥ó¥·¥ó¥Ü¥ë¥»¥¯¥·¥ç¥ó '%s' ¤Ï %d ¸Ä¤Î¥¨¥ó¥È¥ê¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹:\n"
-
-#: readelf.c:3977
-msgid " Addr: "
-msgstr " ¥¢¥É¥ì¥¹: "
-
-#: readelf.c:4007
-msgid " 0 (*local*) "
-msgstr " 0 (*¶É ½ê*) "
-
-#: readelf.c:4011
-msgid " 1 (*global*) "
-msgstr " 1 (*Âç °è*) "
-
-#: readelf.c:4233
-msgid "\nNo version information found in this file.\n"
-msgstr "\n¤³¤Î¥Õ¥¡¥¤¥ë¤«¤é¤Ï¥Ð¡¼¥¸¥ç¥ó¾ðÊ󤬸«¤Ä¤«¤ê¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:4251 readelf.c:4286
-#, c-format
-msgid "<processor specific>: %d"
-msgstr "<¥×¥í¥»¥Ã¥µ¸ÇÍ­>: %d"
-
-#: readelf.c:4253 readelf.c:4298
-#, c-format
-msgid "<OS specific>: %d"
-msgstr "<OS ¸ÇÍ­>: %d"
-
-#: readelf.c:4255 readelf.c:4301
-#, c-format
-msgid "<unknown>: %d"
-msgstr "<ÉÔÌÀ>: %d"
-
-#: readelf.c:4364
-msgid "Unable to read in dynamic data\n"
-msgstr "ưŪ¥Ç¡¼¥¿¤òÆɹþ¤á¤Þ¤»¤ó\n"
-
-#: readelf.c:4406
-msgid "Unable to seek to start of dynamic information"
-msgstr "ưŪ¾ðÊó¤Î³«»Ï°ÌÃÖ¤Ë seek ¤Ç¤­¤Þ¤»¤ó"
-
-#: readelf.c:4412
-msgid "Failed to read in number of buckets\n"
-msgstr "¥Ð¥±¥Ã¥È¿ô¤ÎÆɹþ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿\n"
-
-#: readelf.c:4418
-msgid "Failed to read in number of chains\n"
-msgstr "¥Á¥§¥¤¥ó¿ô¤ÎÆɹþ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿\n"
-
-#: readelf.c:4438
-msgid "\nSymbol table for image:\n"
-msgstr "\n¥¤¥á¡¼¥¸¤Î¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë:\n"
-
-#: readelf.c:4440
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " bucket¿ô: ÃÍ ¥µ¥¤¥º ¥¿¥¤¥× Bind Vis º÷°ú̾\n"
-
-#: readelf.c:4442
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " bucket¿ô: ÃÍ ¥µ¥¤¥º ¥¿¥¤¥× Bind Vis º÷°ú̾\n"
-
-#: readelf.c:4486
-#, c-format
-msgid "\nSymbol table '%s' contains %lu entries:\n"
-msgstr "\n¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë '%s' ¤Ï %lu ¸Ä¤Î¥¨¥ó¥È¥ê¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹:\n"
-
-#: readelf.c:4490
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " ÈÖ¹æ: ÃÍ ¥µ¥¤¥º ¥¿¥¤¥× Bind Vis º÷°ú̾\n"
-
-#: readelf.c:4492
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " ÈÖ¹æ: ÃÍ ¥µ¥¤¥º ¥¿¥¤¥× Bind Vis º÷°ú̾\n"
-
-#: readelf.c:4601
-msgid "bad dynamic symbol"
-msgstr "ÉÔÀµ¤ÊưŪ¥·¥ó¥Ü¥ë¤Ç¤¹"
-
-#: readelf.c:4660
-msgid "\nDynamic symbol information is not available for displaying symbols.\n"
-msgstr "\nưŪ¥·¥ó¥Ü¥ë¾ðÊó¤Ïɽ¼¨ÍÑ¥·¥ó¥Ü¥ë¤È¤·¤Æ¤ÏÍøÍѤǤ­¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:4672
-#, c-format
-msgid "\nHistogram for bucket list length (total of %d buckets):\n"
-msgstr "\n¥Ð¥±¥Ã¥È¥ê¥¹¥È¤ÎÅÙ¿ôʬÉÛ (Á´ %d ¸Ä¤Î¥Ð¥±¥Ã¥È):\n"
-
-#: readelf.c:4674
-msgid " Length Number %% of total Coverage\n"
-msgstr " Ťµ ¸Ä¿ô ÀêͭΨ ÈÏ°Ï\n"
-
-#: readelf.c:4679 readelf.c:4698 readelf.c:7423 readelf.c:7616
-msgid "Out of memory"
-msgstr "¥á¥â¥ê¤¬Â­¤ê¤Þ¤»¤ó"
-
-#: readelf.c:4747
-#, c-format
-msgid "\nDynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr "\n¥ª¥Õ¥»¥Ã¥È 0x%lx ¤ÎưŪ¾ðÊ󥻥°¥á¥ó¥È¤Ï %d ¸Ä¤Î¥¨¥ó¥È¥ê¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹:\n"
-
-#: readelf.c:4750
-msgid " Num: Name BoundTo Flags\n"
-msgstr "ÈÖ¹æ: ̾Á° ¶­³¦¤Þ¤Ç ¥Õ¥é¥°\n"
-
-#: readelf.c:4798
-#, c-format
-msgid "\nAssembly dump of section %s\n"
-msgstr "\n¥»¥¯¥·¥ç¥ó %s ¤Î¥¢¥»¥ó¥Ö¥ê¥À¥ó¥×\n"
-
-#: readelf.c:4821
-#, c-format
-msgid "\nSection '%s' has no data to dump.\n"
-msgstr "\n¥»¥¯¥·¥ç¥ó '%s' ¤Ï¥À¥ó¥×¤Ç¤­¤ë¥Ç¡¼¥¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:4826
-#, c-format
-msgid "\nHex dump of section '%s':\n"
-msgstr "\n¥»¥¯¥·¥ç¥ó '%s' ¤Î 16 ¿Ê¿ô¥À¥ó¥×:\n"
-
-#: readelf.c:4978
-msgid "badly formed extended line op encountered!"
-msgstr "ÉÔÀµ¤Ê·Á¼°¤Î³ÈÄ¥ line ¥ª¥Ú¥³¡¼¥É¤ËÁø¶ø¤·¤Þ¤·¤¿!"
-
-#: readelf.c:4985
-#, c-format
-msgid " Extended opcode %d: "
-msgstr " ³ÈÄ¥¥ª¥Ú¥³¡¼¥É %d: "
-
-#: readelf.c:4990
-msgid "End of Sequence\n\n"
-msgstr "Îó¤Î½ª¤ê\n\n"
-
-#: readelf.c:4996
-#, c-format
-msgid "set Address to 0x%lx\n"
-msgstr "ÀßÄꥢ¥É¥ì¥¹ 0x%lx\n"
-
-#: readelf.c:5001
-msgid " define new File Table entry\n"
-msgstr " ¿·¤¿¤Ê¥Õ¥¡¥¤¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤ÎÄêµÁ\n"
-
-#: readelf.c:5002 readelf.c:5124
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr " Entry\tDir\t»þ¹ï\t¥µ¥¤¥º\t̾Á°\n"
-
-#: readelf.c:5004
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: readelf.c:5007 readelf.c:5009 readelf.c:5011 readelf.c:5136 readelf.c:5138
-#: readelf.c:5140
-#, c-format
-msgid "%lu\t"
-msgstr "%lu\t"
-
-#: readelf.c:5012
-#, c-format
-msgid "%s\n\n"
-msgstr "%s\n\n"
-
-#: readelf.c:5016
-#, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr "UNKNOWN: Ťµ %d\n"
-
-#: readelf.c:5042
-#, c-format
-msgid "\nDump of debug contents of section %s:\n\n"
-msgstr "\n¥»¥¯¥·¥ç¥óÆâÍƤΥǥХå°¥À¥ó¥× %s:\n\n"
-
-#: readelf.c:5054
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr "line ¾ðÊó¤Ï²õ¤ì¤Æ¤¤¤Þ¤¹ - ¥»¥¯¥·¥ç¥ó¤¬¾®¤µ¤¹¤®¤Þ¤¹\n"
-
-#: readelf.c:5062
-msgid "Only DWARF version 2 line info is currently supported.\n"
-msgstr "¸½ºß¤Î¤È¤³¤í¡¢DWARF ¥Ð¡¼¥¸¥ç¥ó 2 ¤À¤±¤¬ line ¾ðÊó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£\n"
-
-#: readelf.c:5077
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Ťµ: %ld\n"
-
-#: readelf.c:5078
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr " DWARF ¥Ð¡¼¥¸¥ç¥ó: %d\n"
-
-#: readelf.c:5079
-#, c-format
-msgid " Prolgue Length: %d\n"
-msgstr " Prolgue ¤ÎŤµ: %d\n"
-
-#: readelf.c:5080
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr " ºÇ¾®Ì¿ÎáĹ: %d\n"
-
-#: readelf.c:5081
-#, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr " 'is_stmt' ¤Î½é´üÃÍ: %d\n"
-
-#: readelf.c:5082
-#, c-format
-msgid " Line Base: %d\n"
-msgstr " Line ¥Ù¡¼¥¹: %d\n"
-
-#: readelf.c:5083
-#, c-format
-msgid " Line Range: %d\n"
-msgstr " Line ÈÏ°Ï: %d\n"
-
-#: readelf.c:5084
-#, c-format
-msgid " Opcode Base: %d\n"
-msgstr " ¥ª¥Ú¥³¡¼¥É¥Ù¡¼¥¹: %d\n"
-
-#: readelf.c:5093
-msgid "\n Opcodes:\n"
-msgstr "\n ¥ª¥Ú¥³¡¼¥É:\n"
-
-#: readelf.c:5096
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr " ¥ª¥Ú¥³¡¼¥É %d ¤Ï %d ¸Ä¤Î°ú¿ô¤ò»ý¤Á¤Þ¤¹\n"
-
-#: readelf.c:5102
-msgid "\n The Directory Table is empty.\n"
-msgstr "\n ¥Ç¥£¥ì¥¯¥È¥ê¥Æ¡¼¥Ö¥ë¤Ï¶õ¤Ç¤¹¡£\n"
-
-#: readelf.c:5105
-msgid "\n The Directory Table:\n"
-msgstr "\n ¥Ç¥£¥ì¥¯¥È¥ê¥Æ¡¼¥Ö¥ë:\n"
-
-#: readelf.c:5109
-#, c-format
-msgid " %s\n"
-msgstr " %s\n"
-
-#: readelf.c:5120
-msgid "\n The File Name Table is empty.\n"
-msgstr "\n ¥Õ¥¡¥¤¥ë̾¥Æ¡¼¥Ö¥ë¤Ï¶õ¤Ç¤¹¡£\n"
-
-#: readelf.c:5123
-msgid "\n The File Name Table:\n"
-msgstr "\n ¥Õ¥¡¥¤¥ë̾¥Æ¡¼¥Ö¥ë:\n"
-
-#: readelf.c:5131
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: readelf.c:5142
-#, c-format
-msgid "%s\n"
-msgstr "%s\n"
-
-#. Now display the statements.
-#: readelf.c:5150
-msgid "\n Line Number Statements:\n"
-msgstr "\n ¹ÔÈֹ楹¥Æ¡¼¥È¥á¥ó¥È:\n"
-
-#: readelf.c:5169
-msgid " Copy\n"
-msgstr " ¥³¥Ô¡¼\n"
-
-#: readelf.c:5176
-#, c-format
-msgid " Advance PC by %d to %lx\n"
-msgstr " PC ¤ò %d ʬ¿Ê¤á %lx ¤È¤·¤Þ¤¹\n"
-
-#: readelf.c:5184
-#, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr " ¹Ô¤ò %d ¿Ê¤á %d ¤È¤·¤Þ¤¹\n"
-
-#: readelf.c:5191
-#, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr " ¥¨¥ó¥È¥ê %d ¤Î¥Õ¥¡¥¤¥ë̾¤ò¥Õ¥¡¥¤¥ë̾¥Æ¡¼¥Ö¥ë¤Ë¥»¥Ã¥È\n"
-
-#: readelf.c:5199
-#, c-format
-msgid " Set column to %d\n"
-msgstr " ·åÉý¤ò %d ¤ËÀßÄê\n"
-
-#: readelf.c:5206
-#, c-format
-msgid " Set is_stmt to %d\n"
-msgstr " is_stmt ¤ò %d ¤Ë¥»¥Ã¥È\n"
-
-#: readelf.c:5211
-msgid " Set basic block\n"
-msgstr " ´ðËÜ¥Ö¥í¥Ã¥¯¤òÀßÄê\n"
-
-#: readelf.c:5219
-#, c-format
-msgid " Advance PC by constant %d to 0x%lx\n"
-msgstr " PC ¤òÄê¿ô %d ʬ¿Ê¤á 0x%lx ¤È¤·¤Þ¤¹\n"
-
-#: readelf.c:5227
-#, c-format
-msgid " Advance PC by fixed size amount %d to 0x%lx\n"
-msgstr " PC ¤ò¸ÇÄꥵ¥¤¥º %d ʬ¿Ê¤á 0x%lx ¤È¤·¤Þ¤¹\n"
-
-#: readelf.c:5235
-#, c-format
-msgid " Special opcode %d: advance Address by %d to 0x%lx"
-msgstr " Æü쥪¥Ú¥³¡¼¥É %d: ¥¢¥É¥ì¥¹¤ò %d ʬ¿Ê¤á 0x%lx ¤È¤·"
-
-#: readelf.c:5239
-#, c-format
-msgid " and Line by %d to %d\n"
-msgstr " ¹Ô¤ò %d ʬ¿Ê¤á %d ¤È¤·¤Þ¤¹\n"
-
-#: readelf.c:5262 readelf.c:5691
-#, c-format
-msgid "Contents of the %s section:\n\n"
-msgstr "%s ¥»¥¯¥·¥ç¥ó¤ÎÆâÍÆ:\n\n"
-
-#: readelf.c:5285
-msgid "Only DWARF 2 pubnames are currently supported\n"
-msgstr "¸½ºß¤Î¤È¤³¤í¡¢DWARF 2 ¤À¤±¤¬ pubnames ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹\n"
-
-#: readelf.c:5292
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Ťµ: %ld\n"
-
-#: readelf.c:5294
-#, c-format
-msgid " Version: %d\n"
-msgstr " ¥Ð¡¼¥¸¥ç¥ó: %d\n"
-
-#: readelf.c:5296
-#, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr " .debug_info ¥»¥¯¥·¥ç¥ó¤Ø¤Î¥ª¥Õ¥»¥Ã¥È:%ld\n"
-
-#: readelf.c:5298
-#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr " .debug_info ¥»¥¯¥·¥ç¥óÎΰ襵¥¤¥º: %ld\n"
-
-#: readelf.c:5301
-msgid "\n Offset\tName\n"
-msgstr "\n ¥ª¥Õ¥»¥Ã¥È\t̾Á°\n"
-
-#: readelf.c:5383
-#, c-format
-msgid "Unknown TAG value: %lx"
-msgstr "ÉÔÌÀ¤Ê TAG ÃÍ: %lx"
-
-#: readelf.c:5478
-#, c-format
-msgid "Unknown AT value: %lx"
-msgstr "ÉÔÌÀ¤Ê AT ÃÍ: %lx"
-
-#: readelf.c:5515
-#, c-format
-msgid "Unknown FORM value: %lx"
-msgstr "ÉÔÌÀ¤Ê FORM ÃÍ: %lx"
-
-#: readelf.c:5697
-msgid " Number TAG\n"
-msgstr " ÈÖ¹æ TAG\n"
-
-#: readelf.c:5703
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr " %ld %s [%s]\n"
-
-#: readelf.c:5706
-msgid "has children"
-msgstr "»Ò¤¢¤ê"
-
-#: readelf.c:5706
-msgid "no children"
-msgstr "»Ò¤Ê¤·"
-
-#: readelf.c:5710
-#, c-format
-msgid " %-18s %s\n"
-msgstr " %-18s %s\n"
-
-#: readelf.c:5729
-#, c-format
-msgid " %lu byte block: "
-msgstr " %lu ¥Ð¥¤¥È¥Ö¥í¥Ã¥¯: "
-
-#: readelf.c:6036
-msgid "(User defined location op)"
-msgstr "(¥æ¡¼¥¶ÄêµÁ location op)"
-
-#: readelf.c:6038
-msgid "(Unknown location op)"
-msgstr "(ÉÔÌÀ¤Ê location op)"
-
-#: readelf.c:6165
-#, c-format
-msgid "Unable to handle FORM: %d"
-msgstr "FORM ¤ò°·¤¨¤Þ¤»¤ó: %d"
-
-#: readelf.c:6169
-#, c-format
-msgid "Unrecognised form: %d"
-msgstr "ǧ¼±¤Ç¤­¤Ê¤¤·Á¼°: %d"
-
-#: readelf.c:6182
-msgid "(not inlined)"
-msgstr "(Èó inline)"
-
-#: readelf.c:6183
-msgid "(inlined)"
-msgstr "(inlined ²½)"
-
-#: readelf.c:6184
-msgid "(declared as inline but ignored)"
-msgstr "(inline Àë¸À¤µ¤ì¤¿¤¬Ìµ»ë¤µ¤ì¤¿)"
-
-#: readelf.c:6185
-msgid "(declared as inline and inlined)"
-msgstr "(inline Àë¸À¤µ¤ì inline ²½)"
-
-#: readelf.c:6186
-#, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr " (ÉÔÌÀ¤Ê inline °À­ÃÍ: %lx)"
-
-#: readelf.c:6315 readelf.c:6441
-#, c-format
-msgid "The section %s contains:\n\n"
-msgstr "¥»¥¯¥·¥ç¥ó %s ¤ÎÆâÍÆ:\n\n"
-
-#: readelf.c:6337
-#, c-format
-msgid " Compilation Unit @ %lx:\n"
-msgstr " ¥³¥ó¥Ñ¥¤¥ëñ°Ì @ %lx:\n"
-
-#: readelf.c:6338
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Ťµ: %ld\n"
-
-#: readelf.c:6339
-#, c-format
-msgid " Version: %d\n"
-msgstr " ¥Ð¡¼¥¸¥ç¥ó: %d\n"
-
-#: readelf.c:6340
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr " ¾Êά offset: %ld\n"
-
-#: readelf.c:6341
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " ¥Ý¥¤¥ó¥¿¥µ¥¤¥º:%d\n"
-
-#: readelf.c:6345
-msgid "Only version 2 DWARF debug information is currently supported.\n"
-msgstr "¸½ºß¤Î¤È¤³¤í¡¢¥Ð¡¼¥¸¥ç¥ó 2 DWARF ¤À¤±¤¬¥Ç¥Ð¥Ã¥°¾ðÊó¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£\n"
-
-#: readelf.c:6367
-msgid "Unable to locate .debug_abbrev section!\n"
-msgstr ".debug_abbrev ¥»¥¯¥·¥ç¥ó¤Î°ÌÃÖ¤òÆÃÄê¤Ç¤­¤Þ¤»¤ó!\n"
-
-#: readelf.c:6407
-#, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr "¾Êά¥Æ¡¼¥Ö¥ëÆâ¤Î¥¨¥ó¥È¥ê %lu ¤Î°ÌÃÖ¤òÆÃÄê¤Ç¤­¤Þ¤»¤ó\n"
-
-#: readelf.c:6412
-#, c-format
-msgid " <%d><%x>: Abbrev Number: %lu (%s)\n"
-msgstr " <%d><%x>: ¾ÊάÈÖ¹æ: %lu (%s)\n"
-
-#: readelf.c:6462
-msgid "Only DWARF 2 aranges are currently supported.\n"
-msgstr "¸½ºß¤Î¤È¤³¤í DWARF 2 ¤À¤±¤¬ arange ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£\n"
-
-#: readelf.c:6466
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Ťµ: %ld\n"
-
-#: readelf.c:6467
-#, c-format
-msgid " Version: %d\n"
-msgstr " ¥Ð¡¼¥¸¥ç¥ó: %d\n"
-
-#: readelf.c:6468
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr " .debug_info Æâ¤Ø¤Îoffset: %lx\n"
-
-#: readelf.c:6469
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " ¥Ý¥¤¥ó¥¿¥µ¥¤¥º: %d\n"
-
-#: readelf.c:6470
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr " ¥»¥°¥á¥ó¥È¥µ¥¤¥º: %d\n"
-
-#: readelf.c:6472
-msgid "\n Address Length\n"
-msgstr "\n ¥¢¥É¥ì¥¹Ä¹\n"
-
-#: readelf.c:6634
-#, c-format
-msgid "The section %s contains:\n"
-msgstr "¥»¥¯¥·¥ç¥ó %s ¤ÎÆâÍÆ:\n"
-
-#: readelf.c:7109
-#, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr "¥»¥¯¥·¥ç¥ó %s ¤Î¥Ç¥Ð¥Ã¥°ÆâÍƤÎɽ¼¨¤Ï¤Þ¤À¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:7173
-#, c-format
-msgid "\nSection '%s' has no debugging data.\n"
-msgstr "\n¥»¥¯¥·¥ç¥ó '%s' ¤Ï¥Ç¥Ð¥Ã¥°¥Ç¡¼¥¿¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:7192
-#, c-format
-msgid "Unrecognised debug section: %s\n"
-msgstr "ǧ¼±¤Ç¤­¤Ê¤¤¥Ç¥Ð¥Ã¥°¥»¥¯¥·¥ç¥ó: %s\n"
-
-#: readelf.c:7264
-msgid "Some sections were not dumped because they do not exist!\n"
-msgstr "¸ºß¤·¤Ê¤¤¤¿¤á¥À¥ó¥×¤µ¤ì¤Ê¤«¤Ã¤¿¥»¥¯¥·¥ç¥ó¤â¤¢¤ê¤Þ¤¹!\n"
-
-#: readelf.c:7447
-#, c-format
-msgid "\nSection '%s' contains %d entries:\n"
-msgstr "\n¥»¥¯¥·¥ç¥ó '%s' ¤Ï %d ¸Ä¤Î¥¨¥ó¥È¥ê¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹:\n"
-
-#: readelf.c:7609
-msgid "conflict list with without table"
-msgstr "¥Æ¡¼¥Ö¥ë¤Î̵ͭ¤Î conflict ¥ê¥¹¥È"
-
-#: readelf.c:7637
-#, c-format
-msgid "\nSection '.conflict' contains %d entries:\n"
-msgstr "\n¥»¥¯¥·¥ç¥ó '.conflict' ¤Ï %d ¸Ä¤Î¥¨¥ó¥È¥ê¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹:\n"
-
-#: readelf.c:7638
-msgid " Num: Index Value Name"
-msgstr " ÈÖ¹æ: º÷°ú ÃÍ Ì¾Á°"
-
-#: readelf.c:7663
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr "NT_PRSTATUS (prstatus ¹½Â¤ÂÎ)"
-
-#: readelf.c:7664
-msgid "NT_FPREGSET (floating point registers)"
-msgstr "NT_FPREGSET (ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿)"
-
-#: readelf.c:7665
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr "NT_PRPSINFO (prpsinfo ¹½Â¤ÂÎ)"
-
-#: readelf.c:7666
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr "NT_TASKSTRUCT (task ¹½Â¤ÂÎ)"
-
-#: readelf.c:7667
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr "NT_PRXFPREG (user_xfpregs ¹½Â¤ÂÎ)"
-
-#: readelf.c:7668
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr "NT_PSTATUS (pstatus ¹½Â¤ÂÎ)"
-
-#: readelf.c:7669
-msgid "NT_FPREGS (floating point registers)"
-msgstr "NT_FPREGS (ÉâÆ°¾®¿ôÅÀ¥ì¥¸¥¹¥¿)"
-
-#: readelf.c:7670
-msgid "NT_PSINFO (psinfo structure)"
-msgstr "NT_PSINFO (psinfo ¹½Â¤ÂÎ)"
-
-#: readelf.c:7671
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr "NT_LWPSTATUS (lwpstatus_t ¹½Â¤ÂÎ)"
-
-#: readelf.c:7672
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr "NT_LWPSINFO (lwpsinfo_t ¹½Â¤ÂÎ)"
-
-#: readelf.c:7673
-msgid "NT_WIN32PSTATUS (win32_pstatus strcuture)"
-msgstr "NT_WIN32PSTATUS (win32_pstatus ¹½Â¤ÂÎ)"
-
-#: readelf.c:7675
-#, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr "ÉÔÌÀ¤Ê note ¥¿¥¤¥×: (0x%08x)"
-
-#: readelf.c:7713
-#, c-format
-msgid "\nNotes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr "\n¥ª¥Õ¥»¥Ã¥È 0x%08lx, Ťµ 0x%08lx ¤Î note:\n"
-
-#: readelf.c:7715
-msgid " Owner\t\tData size\tDescription\n"
-msgstr " ½êÍ­¼Ô\t\t¥Ç¡¼¥¿¥µ¥¤¥º\tÀâÌÀ\n"
-
-#: readelf.c:7826
-msgid "No note segments present in the core file.\n"
-msgstr "¤³¤Î¥³¥¢¥Õ¥¡¥¤¥ë¤Ë note ¥»¥°¥á¥ó¥È¤¬Í­¤ê¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:7904
-msgid "This instance of readelf has been built without support for a\n"
-msgstr "¤³¤Î readelf ¤Î¼ÂÂÎ¤Ï 64 bit ¥Ç¡¼¥¿·¿¥µ¥Ý¡¼¥È̵¤·¤Ç¥Ó¥ë¥É¤µ¤ì¤Æ¤ª¤ê¡¢\n"
-
-#: readelf.c:7905
-msgid "64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr "64 bit ELF ¥Õ¥¡¥¤¥ë¤òÆɤळ¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:7940
-#, c-format
-msgid "Cannot stat input file %s.\n"
-msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë %s ¤ò stat(2) ¤Ç¤­¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:7947
-#, c-format
-msgid "Input file %s not found.\n"
-msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë %s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£\n"
-
-#: readelf.c:7953
-#, c-format
-msgid "%s: Failed to read file header\n"
-msgstr "%s: ¥Õ¥¡¥¤¥ë¥Ø¥Ã¥À¤ÎÆɹþ¤ß¤¬¼ºÇÔ¤·¤Þ¤·¤¿\n"
-
-#: readelf.c:7967
-#, c-format
-msgid "\nFile: %s\n"
-msgstr "\n¥Õ¥¡¥¤¥ë: %s\n"
-
-#: rename.c:131
-#, c-format
-msgid "%s: cannot set time: %s"
-msgstr "%s: »þ¹ï¤òÀßÄê¤Ç¤­¤Þ¤»¤ó: %s"
-
-#. We have to clean up here.
-#: rename.c:170 rename.c:203
-#, c-format
-msgid "%s: rename: %s"
-msgstr "%s: rename: %s"
-
-#: rename.c:211
-#, c-format
-msgid "%s: simple_copy: %s"
-msgstr "%s: simple_copy: %s"
-
-#: resbin.c:130
-#, c-format
-msgid "%s: not enough binary data"
-msgstr "%s: ¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤¬ÉÔ½½Ê¬¤Ç¤¹"
-
-#: resbin.c:149
-msgid "null terminated unicode string"
-msgstr "½ªÃ¼¤¬ null ¤Î unicode ʸ»úÎó¤Ç¤¹"
-
-#: resbin.c:179 resbin.c:185
-msgid "resource ID"
-msgstr "¥ê¥½¡¼¥¹ ID"
-
-#: resbin.c:229
-msgid "cursor"
-msgstr "¥«¡¼¥½¥ë"
-
-#: resbin.c:263 resbin.c:270
-msgid "menu header"
-msgstr "menu ¥Ø¥Ã¥À"
-
-#: resbin.c:280
-msgid "menuex header"
-msgstr "¥á¥Ë¥å¡¼ ex ¥Ø¥Ã¥À"
-
-#: resbin.c:284
-msgid "menuex offset"
-msgstr "¥á¥Ë¥å¡¼ ex ¥ª¥Õ¥»¥Ã¥È"
-
-#: resbin.c:291
-#, c-format
-msgid "unsupported menu version %d"
-msgstr "¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥á¥Ë¥å¡¼¥Ð¡¼¥¸¥ç¥ó %d"
-
-#: resbin.c:319 resbin.c:334 resbin.c:400
-msgid "menuitem header"
-msgstr "¥á¥Ë¥å¡¼¥¢¥¤¥Æ¥à¥Ø¥Ã¥À"
-
-#: resbin.c:430
-msgid "menuitem"
-msgstr "¥á¥Ë¥å¡¼¥¢¥¤¥Æ¥à"
-
-#: resbin.c:471 resbin.c:499
-msgid "dialog header"
-msgstr "¥À¥¤¥¢¥í¥°¥Ø¥Ã¥À"
-
-#: resbin.c:489
-#, c-format
-msgid "unexpected dialog signature %d"
-msgstr "ͽ´ü¤·¤Ê¤¤¥À¥¤¥¢¥í¥°¼±ÊÌÈÖ¹æ %d"
-
-#: resbin.c:531
-msgid "dialog font point size"
-msgstr "¥À¥¤¥¢¥í¥°¥Õ¥©¥ó¥È¥Ý¥¤¥ó¥È¥µ¥¤¥º"
-
-#: resbin.c:539
-msgid "dialogex font information"
-msgstr "¥À¥¤¥¢¥í¥° ex ¥Õ¥©¥ó¥È¾ðÊó"
-
-#: resbin.c:564 resbin.c:582
-msgid "dialog control"
-msgstr "¥À¥¤¥¢¥í¥°¥³¥ó¥È¥í¡¼¥ë"
-
-#: resbin.c:574
-msgid "dialogex control"
-msgstr "¥À¥¤¥¢¥í¥° ex ¥³¥ó¥È¥í¡¼¥ë"
-
-#: resbin.c:603
-msgid "dialog control end"
-msgstr "¥À¥¤¥¢¥í¥°¥³¥ó¥È¥í¡¼¥ëËöÈø"
-
-#: resbin.c:615
-msgid "dialog control data"
-msgstr "¥À¥¤¥¢¥í¥°¥³¥ó¥È¥í¡¼¥ë¥Ç¡¼¥¿"
-
-#: resbin.c:658
-msgid "stringtable string length"
-msgstr "stringtable ʸ»úÎóĹ"
-
-#: resbin.c:668
-msgid "stringtable string"
-msgstr "stringtable ʸ»úÎó"
-
-#: resbin.c:701
-msgid "fontdir header"
-msgstr "fontdir ¥Ø¥Ã¥À"
-
-#: resbin.c:714
-msgid "fontdir"
-msgstr "fontdir"
-
-#: resbin.c:730
-msgid "fontdir device name"
-msgstr "fontdir ¥Ç¥Ð¥¤¥¹Ì¾"
-
-#: resbin.c:736
-msgid "fontdir face name"
-msgstr "fontdir ¥Õ¥§¥¤¥¹Ì¾"
-
-#: resbin.c:779
-msgid "accelerator"
-msgstr "¥¢¥¯¥»¥é¥ì¡¼¥¿"
-
-#: resbin.c:843
-msgid "group cursor header"
-msgstr "¥°¥ë¡¼¥×¥«¡¼¥½¥ë¥Ø¥Ã¥À"
-
-#: resbin.c:847
-#, c-format
-msgid "unexpected group cursor type %d"
-msgstr "ͽ´ü¤·¤Ê¤¤¥°¥ë¡¼¥×¥«¡¼¥½¥ë·¿ %d"
-
-#: resbin.c:862
-msgid "group cursor"
-msgstr "¥°¥ë¡¼¥×¥«¡¼¥½¥ë"
-
-#: resbin.c:901
-msgid "group icon header"
-msgstr "¥°¥ë¡¼¥×¥¢¥¤¥³¥ó¥Ø¥Ã¥À"
-
-#: resbin.c:905
-#, c-format
-msgid "unexpected group icon type %d"
-msgstr "ͽ´ü¤·¤Ê¤¤¥Ð¡¼¥¸¥ç¥óʸ»úÎó %d"
-
-#: resbin.c:920
-msgid "group icon"
-msgstr "¥°¥ë¡¼¥×¥¢¥¤¥³¥ó"
-
-#: resbin.c:991 resbin.c:1210
-msgid "unexpected version string"
-msgstr "ͽ´ü¤·¤Ê¤¤¥Ð¡¼¥¸¥ç¥óʸ»úÎó"
-
-#: resbin.c:1025
-#, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr "¥Ð¡¼¥¸¥çĹ %d ¤Ï¥ê¥½¡¼¥¹Ä¹ %lu ¤Î°ìÃפ·¤Þ¤»¤ó"
-
-#: resbin.c:1029
-#, c-format
-msgid "unexpected version type %d"
-msgstr "ͽ´ü¤·¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó¥¿¥¤¥× %d"
-
-#: resbin.c:1041
-#, c-format
-msgid "unexpected fixed version information length %d"
-msgstr "ͽ´ü¤·¤Ê¤¤¸ÇÄê¥Ð¡¼¥¸¥ç¥ó¾ðÊóĹ %d"
-
-#: resbin.c:1044
-msgid "fixed version info"
-msgstr "¸ÇÄê¥Ð¡¼¥¸¥ç¥ó¾ðÊó"
-
-#: resbin.c:1048
-#, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr "ͽ´ü¤·¤Ê¤¤¸ÇÄê¥Ð¡¼¥¸¥ç¥ó¼±ÊÌÈÖ¹æ %lu"
-
-#: resbin.c:1052
-#, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr "ͽ´ü¤·¤Ê¤¤¸ÇÄê¥Ð¡¼¥¸¥ç¥ó¾ðÊó¥Ð¡¼¥¸¥ç¥ó %lu"
-
-#: resbin.c:1081
-msgid "version var info"
-msgstr "¥Ð¡¼¥¸¥ç¥ó var ¾ðÊó"
-
-#: resbin.c:1098
-#, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr "ͽ´ü¤·¤Ê¤¤ stringfileinfo ÃͤÎŤµ %d"
-
-#: resbin.c:1108
-#, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr "ͽ´ü¤·¤Ê¤¤¥Ð¡¼¥¸¥ç¥ó stringtable ÃͤÎŤµ %d"
-
-#: resbin.c:1142
-#, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr "ͽ´ü¤·¤Ê¤¤¥Ð¡¼¥¸¥ç¥óʸ»úÎóĹ %d != %d + %d"
-
-#: resbin.c:1153
-#, c-format
-msgid "unexpected version string length %d < %d"
-msgstr "ͽ´ü¤·¤Ê¤¤ÊÑ¿ô¥Õ¥¡¥¤¥ë¾ðÊóÃͤÎŤµ %d < %d"
-
-#: resbin.c:1170
-#, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr "ͽ´ü¤·¤Ê¤¤ varfileinfo ÃͤÎŤµ %d"
-
-#: resbin.c:1189
-msgid "version varfileinfo"
-msgstr "¥Ð¡¼¥¸¥ç¥ó varfileinfo"
-
-#: resbin.c:1204
-#, c-format
-msgid "unexpected version value length %d"
-msgstr "ͽ´ü¤·¤Ê¤¤¥Ð¡¼¥¸¥ç¥óÃͤÎŤµ %d"
-
-#: rescoff.c:128
-msgid "filename required for COFF input"
-msgstr "COFF ÆþÎÏÍѤΥե¡¥¤¥ë̾¤¬É¬ÍפǤ¹"
-
-#: rescoff.c:145
-#, c-format
-msgid "%s: no resource section"
-msgstr "%s: ¥ê¥½¡¼¥¹¥»¥¯¥·¥ç¥ó¤¬Í­¤ê¤Þ¤»¤ó"
-
-#: rescoff.c:152
-msgid "can't read resource section"
-msgstr "¥ê¥½¡¼¥¹¥»¥¯¥·¥ç¥ó¤òÆɹþ¤á¤Þ¤»¤ó"
-
-#: rescoff.c:178
-#, c-format
-msgid "%s: %s: address out of bounds"
-msgstr "%s: %s: ¥¢¥É¥ì¥¹¤¬¶­³¦¤ò±Û¤¨¤Æ¤¤¤Þ¤¹"
-
-#: rescoff.c:197
-msgid "directory"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê"
-
-#: rescoff.c:225
-msgid "named directory entry"
-msgstr "̾Á°¤Ä¤­¥Ç¥£¥ì¥¯¥È¥ê¹àÌÜ"
-
-#: rescoff.c:234
-msgid "directory entry name"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê¹àÌÜ̾"
-
-#: rescoff.c:254
-msgid "named subdirectory"
-msgstr "̾Á°¤Ä¤­¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê"
-
-#: rescoff.c:262
-msgid "named resource"
-msgstr "̾Á°¤Ä¤­¥ê¥½¡¼¥¹"
-
-#: rescoff.c:277
-msgid "ID directory entry"
-msgstr "ID ¥Ç¥£¥ì¥¯¥È¥ê¹àÌÜ"
-
-#: rescoff.c:294
-msgid "ID subdirectory"
-msgstr "ID ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê"
-
-#: rescoff.c:302
-msgid "ID resource"
-msgstr "ID ¥ê¥½¡¼¥¹"
-
-#: rescoff.c:328
-msgid "resource type unknown"
-msgstr "¥ê¥½¡¼¥¹·¿¤¬ÉÔÌÀ¤Ç¤¹"
-
-#: rescoff.c:331
-msgid "data entry"
-msgstr "¥Ç¡¼¥¿¹àÌÜ"
-
-#: rescoff.c:339
-msgid "resource data"
-msgstr "¥ê¥½¡¼¥¹¥Ç¡¼¥¿"
-
-#: rescoff.c:344
-msgid "resource data size"
-msgstr "¥ê¥½¡¼¥¹¥Ç¡¼¥¿¥µ¥¤¥º"
-
-#: rescoff.c:439
-msgid "filename required for COFF output"
-msgstr "COFF ½ÐÎÏÍѤΥե¡¥¤¥ë̾¤¬É¬ÍפǤ¹"
-
-#: rescoff.c:738
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr "BFD_RELOC_RVA ºÆÇÛÃÖ¥¿¥¤¥×¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
-
-#: resrc.c:240 resrc.c:312
-#, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr "°ì»þ¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó `%s': %s"
-
-#: resrc.c:246
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr "ɸ½à½ÐÎϤ˥ê¥À¥¤¥ì¥¯¥È¤Ç¤­¤Þ¤»¤ó: `%s': %s"
-
-#: resrc.c:262
-#, c-format
-msgid "%s %s: %s"
-msgstr "%s %s: %s"
-
-#: resrc.c:308
-#, c-format
-msgid "can't execute `%s': %s"
-msgstr "`%s' ¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó: %s"
-
-#: resrc.c:317
-#, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr "¥×¥ê¥×¥í¥»¥Ã¥µ½ÐÎϤòÆɹþ¤à¤¿¤á¤Ë°ì»þ¥Õ¥¡¥¤¥ë `%s' ¤ò»È¤¤¤Þ¤¹\n"
-
-#: resrc.c:324
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr "`%s' ¤ò popen ¤Ç¤­¤Þ¤»¤ó: %s"
-
-#: resrc.c:326
-msgid "Using popen to read preprocessor output\n"
-msgstr "¥×¥ê¥×¥í¥»¥Ã¥µ½ÐÎϤòÆɹþ¤à¤¿¤á¤Ë popen ¤ò»È¤¤¤Þ¤¹\n"
-
-#: resrc.c:369
-#, c-format
-msgid "Tried `%s'\n"
-msgstr "`%s' ¤ò»î¤·¤Þ¤·¤¿\n"
-
-#: resrc.c:380
-#, c-format
-msgid "Using `%s'\n"
-msgstr "`%s' ¤ò»È¤¤¤Þ¤¹\n"
-
-#: resrc.c:541
-#, c-format
-msgid "%s:%d: %s\n"
-msgstr "%s:%d: %s\n"
-
-#: resrc.c:550
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr "%s: ͽ´ü¤·¤Ê¤¤ EOF ¤Ç¤¹"
-
-#: resrc.c:607
-#, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr "%s: %lu ¸Ä¤ÎÆɹþ¤ß¤Ç %lu ¤¬Ê֤äƤ­¤Þ¤·¤¿"
-
-#: resrc.c:649 resrc.c:903 resrc.c:1176 resrc.c:1330
-#, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr "¥Ó¥Ã¥È¥Þ¥Ã¥×¥Õ¥¡¥¤¥ë `%s' ¤Î stat(2) ¤¬¼ºÇÔ¤·¤Þ¤·¤¿: %s"
-
-#: resrc.c:702
-#, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr "¥«¡¼¥½¥ë¥Õ¥¡¥¤¥ë `%s' ¤¬¥«¡¼¥½¥ë¥Ç¡¼¥¿¤ò´Þ¤ó¤Ç¤¤¤Þ¤»¤ó"
-
-#: resrc.c:734 resrc.c:1047
-#, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr "%s: %lu ¤Ø¤Î fseek ¤¬¼ºÇÔ¤·¤Þ¤·¤¿: %s"
-
-#: resrc.c:871
-msgid "help ID requires DIALOGEX"
-msgstr "¥Ø¥ë¥× ID ¤Ë¤Ï DIALOGEX ¤¬É¬ÍפȤʤê¤Þ¤¹"
-
-#: resrc.c:873
-msgid "control data requires DIALOGEX"
-msgstr "¥³¥ó¥È¥í¡¼¥ë¥Ç¡¼¥¿¤Ë¤Ï DIALOGEX ¤¬É¬ÍפȤʤê¤Þ¤¹"
-
-#: resrc.c:1016
-#, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr "¥¢¥¤¥³¥ó¥Õ¥¡¥¤¥ë `%s' ¤¬¥¢¥¤¥³¥ó¥Ç¡¼¥¿¤ò´Þ¤ó¤Ç¤¤¤Þ¤»¤ó"
-
-#: resrc.c:1535
-#, c-format
-msgid "can't open `%s' for output: %s"
-msgstr "½ÐÎÏÍѤΠ`%s' ¤ò³«¤±¤Þ¤»¤ó: %s"
-
-#: size.c:79
-#, c-format
-msgid ""
-"Usage: %s [-A | --format=sysv | -B | --format=berkeley]\n"
-" [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n"
-" [-V | --version] [--target=bfdname] [--help] [file...]\n"
-msgstr ""
-"»È¤¤Êý: %s [-A | --format=sysv | -B | --format=berkeley]\n"
-" [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n"
-" [-V | --version] [--target=bfdname] [--help] [¥Õ¥¡¥¤¥ë...]\n"
-
-#: size.c:85
-msgid "default is --format=berkeley\n"
-msgstr "¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï --format=berkeley ¤Ç¤¹\n"
-
-#: size.c:87
-msgid "default is --format=sysv\n"
-msgstr "¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï --format=sysv ¤Ç¤¹\n"
-
-#: size.c:141
-#, c-format
-msgid "invalid argument to --format: %s"
-msgstr "--format ¤ËÂФ·¤ÆÉÔŬÀڤʰú¿ô¤Ç¤¹: %s"
-
-#: size.c:168
-#, c-format
-msgid "Invalid radix: %s\n"
-msgstr "ÉÔŬÀڤʴð¿ô¤Ç¤¹: %s\n"
-
-#: srconv.c:1880
-#, c-format
-msgid "Usage: %s [-dhVq] in-file [out-file]\n"
-msgstr "»È¤¤Êý: %s [-dhVq] ÆþÎÏ¥Õ¥¡¥¤¥ë [½ÐÎÏ¥Õ¥¡¥¤¥ë]\n"
-
-#: srconv.c:1887
-#, c-format
-msgid "%s: Convert a COFF object file into a SYSROFF object file\n"
-msgstr "%s: COFF ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ò SYSROFF ¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤ËÊÑ´¹¤·¤Þ¤¹\n"
-
-#: srconv.c:2020
-#, c-format
-msgid "unable to open output file %s"
-msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó"
-
-#: stabs.c:349 stabs.c:1770
-msgid "numeric overflow"
-msgstr "¿ôÃͤ¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤·¤Þ¤·¤¿"
-
-#: stabs.c:360
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr "ÉÔÀµ¤Ê¥¹¥¿¥Ö¤Ç¤¹: %s\n"
-
-#: stabs.c:370
-#, c-format
-msgid "Warning: %s: %s\n"
-msgstr "·Ù¹ð: %s: %s\n"
-
-#: stabs.c:492
-msgid "N_LBRAC not within function\n"
-msgstr "N_LBRAC ¤¬´Ø¿ôÆâ¤Ë¤¢¤ê¤Þ¤»¤ó\n"
-
-#: stabs.c:531
-msgid "Too many N_RBRACs\n"
-msgstr "N_RBRAC ¤Î¿ô¤¬Â¿¤¹¤®¤Þ¤¹\n"
-
-#: stabs.c:780
-msgid "unknown C++ encoded name"
-msgstr "ÉÔÌÀ¤Ê C++ ¥¨¥ó¥³¡¼¥É̾¤Ç¤¹"
-
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1307
-msgid "unrecognized cross reference type"
-msgstr "Áê¸ß»²¾È·¿¤òǧ¼±¤Ç¤­¤Þ¤»¤ó"
-
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1862
-msgid "missing index type"
-msgstr "¥¤¥ó¥Ç¥Ã¥¯¥¹·¿¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: stabs.c:2189
-msgid "unknown virtual character for baseclass"
-msgstr "´ðÄ쥯¥é¥¹ÍѲ¾ÁÛʸ»ú¤¬ÉÔÌÀ¤Ç¤¹"
-
-#: stabs.c:2207
-msgid "unknown visibility character for baseclass"
-msgstr "´ðÄ쥯¥é¥¹ÍѲĻëÀ­Ê¸»ú¤¬ÉÔÌÀ¤Ç¤¹"
-
-#: stabs.c:2399
-msgid "unnamed $vb type"
-msgstr "$vb ·¿¤Î̾Á°¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: stabs.c:2405
-msgid "unrecognized C++ abbreviation"
-msgstr "C++ ¾Êά̾¤òǧ¼±¤Ç¤­¤Þ¤»¤ó"
-
-#: stabs.c:2485
-msgid "unknown visibility character for field"
-msgstr "¥Õ¥£¡¼¥ë¥ÉÍѤβĻëÀ­Ê¸»ú¤¬ÉÔÌÀ¤Ç¤¹"
-
-#: stabs.c:2741
-msgid "const/volatile indicator missing"
-msgstr "const/volatile »Ø¼¨»Ò¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
-
-#: stabs.c:2981
-#, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr "\"%s\" ¤Î̾Á°¤ÎÊÑ·Á(mangling) ¤¬¤¢¤ê¤Þ¤»¤ó\n"
-
-#: stabs.c:3294
-msgid "Undefined N_EXCL"
-msgstr "N_EXCL ¤¬Ì¤ÄêµÁ¤Ç¤¹"
-
-#: stabs.c:3382
-#, c-format
-msgid "Type file number %d out of range\n"
-msgstr "¥Õ¥¡¥¤¥ëÈֹ淿 %d ¤¬Èϰϳ°¤Ç¤¹\n"
-
-#: stabs.c:3387
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr "¥¤¥ó¥Ç¥Ã¥¯¥¹Èֹ淿 %d ¤¬Èϰϳ°¤Ç¤¹\n"
-
-#: stabs.c:3474
-#, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr "XCOFF ¥¿¥¤¥× %d ¤òǧ¼±¤Ç¤­¤Þ¤»¤ó\n"
-
-#: stabs.c:3773
-#, c-format
-msgid "bad mangled name `%s'\n"
-msgstr "ÉÔÀµ¤ÊÊÑ·Á̾ (mangled name) `%s'\n"
-
-#: stabs.c:3869
-msgid "no argument types in mangled string\n"
-msgstr "ÊÑ·Á¤µ¤ì¤¿(mangled) ʸ»úÎó¤Ë°ú¿ô¤Î·¿¤¬¤¢¤ê¤Þ¤»¤ó\n"
-
-#: strings.c:177
-#, c-format
-msgid "invalid number %s"
-msgstr "ÉÔŬÀÚ¤ÊÃÍ %s"
-
-#: strings.c:513
-#, c-format
-msgid "invalid integer argument %s"
-msgstr "ÉÔŬÀÚ¤ÊÀ°¿ô°ú¿ô %s"
-
-#: strings.c:523
-#, c-format
-msgid ""
-"Usage: %s [-afov] [-n min-len] [-min-len] [-t {o,x,d}] [-]\n"
-" [--all] [--print-file-name] [--bytes=min-len] [--radix={o,x,d}]\n"
-" [--target=bfdname] [--help] [--version] file...\n"
-msgstr ""
-"»È¤¤Êý: %s [-afov] [-n min-len] [-min-len] [-t {o,x,d}] [-]\n"
-" [--all] [--print-file-name] [--bytes=min-len] [--radix={o,x,d}]\n"
-" [--target=bfdname] [--help] [--version] ¥Õ¥¡¥¤¥ë...\n"
-
-#: sysdump.c:712
-#, c-format
-msgid "Usage: %s [-hV] in-file\n"
-msgstr "»È¤¤Êý: %s [-hV] ÆþÎÏ¥Õ¥¡¥¤¥ë\n"
-
-#: sysdump.c:781
-#, c-format
-msgid "cannot open input file %s"
-msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó"
-
-#: version.c:39
-msgid "Copyright 1997, 98, 99, 2000 Free Software Foundation, Inc.\n"
-msgstr "Copyright 1997, 98, 99, 2000 Free Software Foundation, Inc.\n"
-
-#: version.c:40
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-"[»²¹ÍÌõ -- ˡŪ¸úÎϤȤ·¤Æ¤Ï±Ñʸ¤¬Å¬ÍѤµ¤ì¤Þ¤¹]\n"
-"¤³¤ì¤Ï¥Õ¥ê¡¼¥½¥Õ¥È¥¦¥§¥¢¤Ç¤¹ -- GNU GPL ¤Îʸ¸À¤Ë½¾¤Ã¤ÆÊ£À½¤¬µö²Ä¤µ¤ì¤Þ¤¹¡£\n"
-"¤³¤Î¥×¥í¥°¥é¥à¤Ë¤Ï¤¤¤«¤Ê¤ëÊݾڤ⤢¤ê¤Þ¤»¤ó¡£\n"
-
-#: windres.c:237
-#, c-format
-msgid "can't open %s `%s': %s"
-msgstr "%s `%s' ¤ò³«¤±¤Þ¤»¤ó: %s"
-
-#: windres.c:416
-msgid ": expected to be a directory\n"
-msgstr ": ¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë¤Ù¤­¤Ç¤¹\n"
-
-#: windres.c:428
-msgid ": expected to be a leaf\n"
-msgstr ": ËöÈøÍ×ÁǤǤ¢¤ë¤Ù¤­¤Ç¤¹\n"
-
-#: windres.c:437
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: ·Ù¹ð: "
-
-#: windres.c:439
-msgid ": duplicate value\n"
-msgstr ": ½ÅÊ£¤·¤¿ÃͤǤ¹\n"
-
-#: windres.c:602
-#, c-format
-msgid "unknown format type `%s'"
-msgstr "ÉÔÌÀ¤Ê¥Õ¥©¡¼¥Þ¥Ã¥È·¿ `%s'"
-
-#: windres.c:603
-#, c-format
-msgid "%s: supported formats:"
-msgstr "%s: ¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥Õ¥©¡¼¥Þ¥Ã¥È:"
-
-#. Otherwise, we give up.
-#: windres.c:690
-#, c-format
-msgid "can not determine type of file `%s'; use the -I option"
-msgstr "¥Õ¥¡¥¤¥ë `%s' ¤Î·¿¤ò·èÄê¤Ç¤­¤Þ¤»¤ó -- -I ¥ª¥×¥·¥ç¥ó¤ò»È¤¤¤Þ¤·¤ç¤¦"
-
-#: windres.c:704
-#, c-format
-msgid "Usage: %s [options] [input-file] [output-file]\n"
-msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó] [ÆþÎÏ¥Õ¥¡¥¤¥ë] [½ÐÎÏ¥Õ¥¡¥¤¥ë]\n"
-
-#: windres.c:706
-msgid ""
-"Options:\n"
-" -i FILE, --input FILE Name input file\n"
-" -o FILE, --output FILE Name output file\n"
-" -I FORMAT, --input-format FORMAT\n"
-" Specify input format\n"
-" -O FORMAT, --output-format FORMAT\n"
-" Specify output format\n"
-" -F TARGET, --target TARGET Specify COFF target\n"
-" --preprocessor PROGRAM Program to use to preprocess rc file\n"
-" --include-dir DIR Include directory when preprocessing rc file\n"
-" -DSYM[=VAL], --define SYM[=VAL]\n"
-" Define SYM when preprocessing rc file\n"
-" -v Verbose - tells you what it's doing\n"
-" --language VAL Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr ""
-"¥ª¥×¥·¥ç¥ó:\n"
-" -i FILE, --input FILE ÆþÎÏ¥Õ¥¡¥¤¥ë̾\n"
-" -o FILE, --output FILE ½ÐÎÏ¥Õ¥¡¥¤¥ë̾\n"
-" -I FORMAT, --input-format FORMAT\n"
-" ÆþÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë\n"
-" -O FORMAT, --output-format FORMAT\n"
-" ½ÐÎÏ¥Õ¥©¡¼¥Þ¥Ã¥È¤ò»ØÄꤹ¤ë\n"
-" -F TARGET, --target TARGET COFF ¥¿¡¼¥²¥Ã¥È¤ò»ØÄꤹ¤ë\n"
-" --preprocessor PROGRAM rc ¥Õ¥¡¥¤¥ë¤ÎÁ°½èÍý¤Ë»È¤¦¥×¥í¥°¥é¥à\n"
-" --include-dir DIR rc ¥Õ¥¡¥¤¥ëÁ°½èÍý»þ¤Î¥¤¥ó¥¯¥ë¡¼¥É¥Ç¥£¥ì¥¯¥È¥ê\n"
-" -DSYM[=VAL], --define SYM[=VAL]\n"
-" rc ¥Õ¥¡¥¤¥ëÁ°½èÍý»þ¤Ë SYM ¤òÄêµÁ¤¹¤ë\n"
-" -v ñÁÀå --¹Ô¤ï¤ì¤ë¤³¤È¤òÃΤ餻¤ë\n"
-" --language VAL rc Æɹþ¤ß»þ¤Î¸À¸ì¤òÀßÄꤹ¤ë\n"
-" --use-temp-file Á°½èÍý½ÐÎϤÎÆɹþ¤ß¤Ë popen ¤Ç¤Ï¤Ê¤¯\n"
-" °ì»þ¥Õ¥¡¥¤¥ë¤ò»È¤¦\n"
-" --no-use-temp-file popen ¤ò»È¤¦ (¥Ç¥Õ¥©¥ë¥È)\n"
-
-#: windres.c:725
-msgid " --yydebug Turn on parser debugging\n"
-msgstr " --yydebug ¹½Ê¸²òÀÏ´ï¤Î¥Ç¥Ð¥Ã¥°¤òÍ­¸ú¤Ë¤¹¤ë\n"
-
-#: windres.c:728
-msgid ""
-" --help Print this help message\n"
-" --version Print version information\n"
-msgstr ""
-" --help ¤³¤Î»È¤¤Êý¤òɽ¼¨¤¹¤ë\n"
-" --version ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤¹¤ë\n"
-
-#: windres.c:731
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr ""
-"FORMAT ¤Ï rc, res ¤¢¤ë¤¤¤Ï coff ¤Î¤¤¤º¤ì¤«¤È¤Ê¤ê¡¢¤³¤ì¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢\n"
-"¥Õ¥¡¥¤¥ë̾¤Î³ÈÄ¥»Ò¤«¤é¿äÄꤵ¤ì¤Þ¤¹¡£ÆþÎÏ¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Ê¤±¤ì¤Ðɸ½àÆþÎϤ¬\n"
-"»ÈÍѤµ¤ì¡¢rc ·Á¼°¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤ê¤Þ¤¹¡£½ÐÎÏ¥Õ¥¡¥¤¥ë¤¬»ØÄꤵ¤ì¤Ê¤±¤ì¤Ð\n"
-"ɸ½à½ÐÎϤ¬»ÈÍѤµ¤ì¡¢rc ·Á¼°¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤ê¤Þ¤¹¡£\n"
-
-#: windres.c:980
-msgid "no resources"
-msgstr "¥ê¥½¡¼¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
-
-#: wrstabs.c:366 wrstabs.c:2027
-#, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr "string_hash_lookup ¤¬¼ºÇÔ¤·¤Þ¤·¤¿: %s"
-
-#: wrstabs.c:666
-#, c-format
-msgid "stab_int_type: bad size %u"
-msgstr "stab_int_type: ÉÔÀµ¤Ê¥µ¥¤¥º %u ¤Ç¤¹"
-
-#: wrstabs.c:1467
-#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr "%s: ·Ù¹ð: ¹½Â¤ÂΤΥե£¡¼¥ë¥É `%s' ¤Î¥µ¥¤¥º¤¬ÉÔÌÀ¤Ç¤¹"
diff --git a/binutils-2.17/binutils/po/ro.gmo b/binutils-2.17/binutils/po/ro.gmo
deleted file mode 100644
index f1c1e0e1..00000000
--- a/binutils-2.17/binutils/po/ro.gmo
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/po/ro.po b/binutils-2.17/binutils/po/ro.po
deleted file mode 100644
index e4bfea38..00000000
--- a/binutils-2.17/binutils/po/ro.po
+++ /dev/null
@@ -1,5090 +0,0 @@
-# Mesajele în limba românã pentru binutils.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# Acest fiºier este distribuit sub aceeaºi licenþã ca ºi pachetul binutils.
-# Laurentiu Buzdugan <lbuz@rolix.org>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: binutils 2.15.96\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-03 21:03+1030\n"
-"PO-Revision-Date: 2005-03-09 12:00-0500\n"
-"Last-Translator: Laurentiu Buzdugan <lbuz@rolix.org>\n"
-"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-2\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: addr2line.c:73
-#, c-format
-msgid "Usage: %s [option(s)] [addr(s)]\n"
-msgstr "Folosire: %s [opþiune(i)] [adresã(e)]\n"
-
-#: addr2line.c:74
-#, c-format
-msgid " Convert addresses into line number/file name pairs.\n"
-msgstr " Converteºte adrese în perechi numãr linei/nume fiºier.\n"
-
-#: addr2line.c:75
-#, c-format
-msgid " If no addresses are specified on the command line, they will be read from stdin\n"
-msgstr " Dacã nu este specificatã nici o adresã în linia de comandã, acestea vor fi citite de la intrarea standard (stdin)\n"
-
-#: addr2line.c:76
-#, c-format
-msgid ""
-" The options are:\n"
-" -b --target=<bfdname> Set the binary file format\n"
-" -e --exe=<executable> Set the input file name (default is a.out)\n"
-" -s --basenames Strip directory names\n"
-" -f --functions Show function names\n"
-" -C --demangle[=style] Demangle function names\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Opþiunile sunt:\n"
-" -b --target=<bfdname> Seteazã formatul binar al fiºierului\n"
-" -e --exe=<executable> Seteazã numele fiºierului de intrare (implicit a.out)\n"
-" -s --basenames Strip directory names\n"
-" -f --functions Afiºeazã numele funcþiilor\n"
-" -C --demangle[=style] Demangle function names\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-
-#: addr2line.c:88 ar.c:263 coffdump.c:467 nlmconv.c:1110 objcopy.c:478
-#: objcopy.c:512 readelf.c:2631 size.c:99 srconv.c:1731 strings.c:667
-#: sysdump.c:655 windres.c:672
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr "Raportaþi bug-uri la %s\n"
-
-#: addr2line.c:241
-#, c-format
-msgid "%s: can not get addresses from archive"
-msgstr ""
-
-#: addr2line.c:311 nm.c:1519 objdump.c:2848
-#, c-format
-msgid "unknown demangling style `%s'"
-msgstr ""
-
-#: ar.c:205
-#, c-format
-msgid "no entry %s in archive\n"
-msgstr ""
-
-#: ar.c:221
-#, c-format
-msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"
-msgstr ""
-
-#: ar.c:224
-#, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr ""
-
-#: ar.c:225
-#, c-format
-msgid " commands:\n"
-msgstr " comenzi:\n"
-
-#: ar.c:226
-#, c-format
-msgid " d - delete file(s) from the archive\n"
-msgstr " d - ºterge fiºier(e) din arhivã\n"
-
-#: ar.c:227
-#, c-format
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr " m[ab] - mutã fiºier(e) în arhivã\n"
-
-#: ar.c:228
-#, c-format
-msgid " p - print file(s) found in the archive\n"
-msgstr " p - tipãreºte fiºier(e) gãsite în arhivã\n"
-
-#: ar.c:229
-#, c-format
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr " q[f] - adaugã rapid fiºier(e) la arhivã\n"
-
-#: ar.c:230
-#, c-format
-msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr ""
-
-#: ar.c:231
-#, c-format
-msgid " t - display contents of archive\n"
-msgstr " t - afiºeazã conþinutul arhivei\n"
-
-#: ar.c:232
-#, c-format
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr " x[o] - extrage fiºier(e) din arhivã\n"
-
-#: ar.c:233
-#, c-format
-msgid " command specific modifiers:\n"
-msgstr " modificatori specifici pentru comenzi:\n"
-
-#: ar.c:234
-#, c-format
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr " [a] - pune fiºier(e) dupã [nume-membru]\n"
-
-#: ar.c:235
-#, c-format
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr ""
-
-#: ar.c:236
-#, c-format
-msgid " [N] - use instance [count] of name\n"
-msgstr ""
-
-#: ar.c:237
-#, c-format
-msgid " [f] - truncate inserted file names\n"
-msgstr ""
-
-#: ar.c:238
-#, c-format
-msgid " [P] - use full path names when matching\n"
-msgstr ""
-
-#: ar.c:239
-#, c-format
-msgid " [o] - preserve original dates\n"
-msgstr ""
-
-#: ar.c:240
-#, c-format
-msgid " [u] - only replace files that are newer than current archive contents\n"
-msgstr ""
-
-#: ar.c:241
-#, c-format
-msgid " generic modifiers:\n"
-msgstr ""
-
-#: ar.c:242
-#, c-format
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr ""
-
-#: ar.c:243
-#, c-format
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr ""
-
-#: ar.c:244
-#, c-format
-msgid " [S] - do not build a symbol table\n"
-msgstr ""
-
-#: ar.c:245
-#, c-format
-msgid " [v] - be verbose\n"
-msgstr ""
-
-#: ar.c:246
-#, c-format
-msgid " [V] - display the version number\n"
-msgstr ""
-
-#: ar.c:253
-#, c-format
-msgid "Usage: %s [options] archive\n"
-msgstr ""
-
-#: ar.c:254
-#, c-format
-msgid " Generate an index to speed access to archives\n"
-msgstr ""
-
-#: ar.c:255
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-
-#: ar.c:483
-msgid "two different operation options specified"
-msgstr ""
-
-#: ar.c:558
-#, c-format
-msgid "illegal option -- %c"
-msgstr "opþiune ilegalã -- %c"
-
-#: ar.c:604
-msgid "no operation specified"
-msgstr "nici o operaþiune specificatã"
-
-#: ar.c:607
-msgid "`u' is only meaningful with the `r' option."
-msgstr ""
-
-#: ar.c:615
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr ""
-
-#: ar.c:618
-msgid "Value for `N' must be positive."
-msgstr ""
-
-#: ar.c:668
-#, c-format
-msgid "internal error -- this option not implemented"
-msgstr ""
-
-#: ar.c:737
-#, c-format
-msgid "creating %s"
-msgstr "creez %s"
-
-#: ar.c:786 ar.c:836 ar.c:1154 objcopy.c:1603
-#, c-format
-msgid "internal stat error on %s"
-msgstr "eroare stat internã pe %s"
-
-#: ar.c:790
-#, c-format
-msgid ""
-"\n"
-"<%s>\n"
-"\n"
-msgstr ""
-
-#: ar.c:806 ar.c:873
-#, c-format
-msgid "%s is not a valid archive"
-msgstr "%s nu este o arhivã validã"
-
-#: ar.c:841
-#, c-format
-msgid "stat returns negative size for %s"
-msgstr "stat a returnat o dimensiune negativã pentru %s"
-
-#: ar.c:1059
-#, c-format
-msgid "No member named `%s'\n"
-msgstr "Nici un membru numit `%s'\n"
-
-#: ar.c:1109
-#, c-format
-msgid "no entry %s in archive %s!"
-msgstr ""
-
-#: ar.c:1246
-#, c-format
-msgid "%s: no archive map to update"
-msgstr ""
-
-#: arsup.c:83
-#, c-format
-msgid "No entry %s in archive.\n"
-msgstr ""
-
-#: arsup.c:109
-#, c-format
-msgid "Can't open file %s\n"
-msgstr "Nu pot deschide fiºierul %s\n"
-
-#: arsup.c:162
-#, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr "%s: Nu pot deschide arhiva de ieºire %s\n"
-
-#: arsup.c:179
-#, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr "%s: Nu pot deschide arhiva de intrare %s\n"
-
-#: arsup.c:188
-#, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr ""
-
-#: arsup.c:227
-#, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr ""
-
-#: arsup.c:247 arsup.c:285 arsup.c:327 arsup.c:347 arsup.c:413
-#, c-format
-msgid "%s: no open output archive\n"
-msgstr ""
-
-#: arsup.c:258 arsup.c:368 arsup.c:394
-#, c-format
-msgid "%s: can't open file %s\n"
-msgstr "%s: nu pot deschide fiºierul %s\n"
-
-#: arsup.c:312 arsup.c:390 arsup.c:471
-#, c-format
-msgid "%s: can't find module file %s\n"
-msgstr "%s: nu pot gãsi fiºierul modul %s\n"
-
-#: arsup.c:422
-#, c-format
-msgid "Current open archive is %s\n"
-msgstr "Arhiva deschisã curent este %s\n"
-
-#: arsup.c:446
-#, c-format
-msgid "%s: no open archive\n"
-msgstr "%s: nici o arhivã deschisã\n"
-
-#: binemul.c:37
-#, c-format
-msgid " No emulation specific options\n"
-msgstr ""
-
-#. Macros for common output.
-#: binemul.h:42
-#, c-format
-msgid " emulation options: \n"
-msgstr ""
-
-#: bucomm.c:109
-#, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr ""
-
-#: bucomm.c:120
-#, c-format
-msgid "%s: Matching formats:"
-msgstr ""
-
-#: bucomm.c:135
-#, c-format
-msgid "Supported targets:"
-msgstr ""
-
-#: bucomm.c:137
-#, c-format
-msgid "%s: supported targets:"
-msgstr ""
-
-#: bucomm.c:153
-#, c-format
-msgid "Supported architectures:"
-msgstr ""
-
-#: bucomm.c:155
-#, c-format
-msgid "%s: supported architectures:"
-msgstr ""
-
-#: bucomm.c:348
-#, c-format
-msgid "BFD header file version %s\n"
-msgstr ""
-
-#: bucomm.c:449
-#, c-format
-msgid "%s: bad number: %s"
-msgstr ""
-
-#: bucomm.c:466 strings.c:386
-#, c-format
-msgid "'%s': No such file"
-msgstr ""
-
-#: bucomm.c:468 strings.c:388
-#, c-format
-msgid "Warning: could not locate '%s'. reason: %s"
-msgstr ""
-
-#: bucomm.c:472
-#, c-format
-msgid "Warning: '%s' is not an ordinary file"
-msgstr ""
-
-#: coffdump.c:105
-#, c-format
-msgid "#lines %d "
-msgstr ""
-
-#: coffdump.c:459 sysdump.c:648
-#, c-format
-msgid "Usage: %s [option(s)] in-file\n"
-msgstr ""
-
-#: coffdump.c:460
-#, c-format
-msgid " Print a human readable interpretation of a SYSROFF object file\n"
-msgstr ""
-
-#: coffdump.c:461
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-
-#: coffdump.c:527 srconv.c:1819 sysdump.c:710
-msgid "no input file specified"
-msgstr ""
-
-#: debug.c:648
-msgid "debug_add_to_current_namespace: no current file"
-msgstr ""
-
-#: debug.c:727
-msgid "debug_start_source: no debug_set_filename call"
-msgstr ""
-
-#: debug.c:783
-msgid "debug_record_function: no debug_set_filename call"
-msgstr ""
-
-#: debug.c:835
-msgid "debug_record_parameter: no current function"
-msgstr ""
-
-#: debug.c:867
-msgid "debug_end_function: no current function"
-msgstr ""
-
-#: debug.c:873
-msgid "debug_end_function: some blocks were not closed"
-msgstr ""
-
-#: debug.c:901
-msgid "debug_start_block: no current block"
-msgstr ""
-
-#: debug.c:937
-msgid "debug_end_block: no current block"
-msgstr ""
-
-#: debug.c:944
-msgid "debug_end_block: attempt to close top level block"
-msgstr ""
-
-#: debug.c:967
-msgid "debug_record_line: no current unit"
-msgstr ""
-
-#. FIXME
-#: debug.c:1020
-msgid "debug_start_common_block: not implemented"
-msgstr ""
-
-#. FIXME
-#: debug.c:1031
-msgid "debug_end_common_block: not implemented"
-msgstr ""
-
-#. FIXME.
-#: debug.c:1115
-msgid "debug_record_label: not implemented"
-msgstr ""
-
-#: debug.c:1137
-msgid "debug_record_variable: no current file"
-msgstr ""
-
-#: debug.c:1665
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr ""
-
-#: debug.c:1842
-msgid "debug_name_type: no current file"
-msgstr ""
-
-#: debug.c:1887
-msgid "debug_tag_type: no current file"
-msgstr ""
-
-#: debug.c:1895
-msgid "debug_tag_type: extra tag attempted"
-msgstr ""
-
-#: debug.c:1932
-#, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr ""
-
-#: debug.c:1954
-msgid "debug_find_named_type: no current compilation unit"
-msgstr ""
-
-#: debug.c:2057
-#, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr ""
-
-#: debug.c:2484
-msgid "debug_write_type: illegal type encountered"
-msgstr ""
-
-#: dlltool.c:773 dlltool.c:797 dlltool.c:826
-#, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr ""
-
-#: dlltool.c:862
-#, c-format
-msgid "Can't open def file: %s"
-msgstr "Nu pot deschide fiºierul def: %s"
-
-#: dlltool.c:867
-#, c-format
-msgid "Processing def file: %s"
-msgstr "Procesez fiºierul def: %s"
-
-#: dlltool.c:871
-msgid "Processed def file"
-msgstr "Am procesat fiºierul def"
-
-#: dlltool.c:895
-#, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr ""
-
-#: dlltool.c:930
-#, c-format
-msgid "%s: Path components stripped from image name, '%s'."
-msgstr ""
-
-#: dlltool.c:939
-#, c-format
-msgid "NAME: %s base: %x"
-msgstr ""
-
-#: dlltool.c:942 dlltool.c:958
-msgid "Can't have LIBRARY and NAME"
-msgstr ""
-
-#: dlltool.c:955
-#, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr ""
-
-#: dlltool.c:1191 resrc.c:269
-#, c-format
-msgid "wait: %s"
-msgstr "aºteaptã: %s"
-
-#: dlltool.c:1196 dllwrap.c:418 resrc.c:274
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr "subprocesul a primit semnalul fatal %d"
-
-#: dlltool.c:1202 dllwrap.c:425 resrc.c:281
-#, c-format
-msgid "%s exited with status %d"
-msgstr "%s a terminat cu codul %d"
-
-#: dlltool.c:1233
-#, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr "Absorb info din secþiunea %s în %s"
-
-#: dlltool.c:1358
-#, c-format
-msgid "Excluding symbol: %s"
-msgstr ""
-
-#: dlltool.c:1447 dlltool.c:1458 nm.c:998 nm.c:1009
-#, c-format
-msgid "%s: no symbols"
-msgstr ""
-
-#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1484
-#, c-format
-msgid "Done reading %s"
-msgstr "Am terminat de citit %s"
-
-#: dlltool.c:1494
-#, c-format
-msgid "Unable to open object file: %s"
-msgstr ""
-
-#: dlltool.c:1497
-#, c-format
-msgid "Scanning object file %s"
-msgstr "Scanez fiºierul obiect %s"
-
-#: dlltool.c:1512
-#, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr "Nu pot produce dll mcore-elf fin fiºierul arhivã: %s"
-
-#: dlltool.c:1598
-msgid "Adding exports to output file"
-msgstr ""
-
-#: dlltool.c:1646
-msgid "Added exports to output file"
-msgstr ""
-
-#: dlltool.c:1767
-#, c-format
-msgid "Generating export file: %s"
-msgstr "Generez fiºier de export: %s"
-
-#: dlltool.c:1772
-#, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr ""
-
-#: dlltool.c:1775
-#, c-format
-msgid "Opened temporary file: %s"
-msgstr ""
-
-#: dlltool.c:1997
-msgid "Generated exports file"
-msgstr "Am generat fiºier de export"
-
-#: dlltool.c:2203
-#, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr ""
-
-#: dlltool.c:2206
-#, c-format
-msgid "Creating stub file: %s"
-msgstr "Creez fiºier stub: %s"
-
-#: dlltool.c:2588
-#, c-format
-msgid "failed to open temporary head file: %s"
-msgstr ""
-
-#: dlltool.c:2647
-#, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr ""
-
-#: dlltool.c:2714
-#, c-format
-msgid "Can't open .lib file: %s"
-msgstr "Nu pot deschide fiºierul .lib: %s"
-
-#: dlltool.c:2717
-#, c-format
-msgid "Creating library file: %s"
-msgstr "Creez fiºier bibliotecã: %s"
-
-#: dlltool.c:2800 dlltool.c:2806
-#, c-format
-msgid "cannot delete %s: %s"
-msgstr "nu pot ºterge %s: %s"
-
-#: dlltool.c:2811
-msgid "Created lib file"
-msgstr "Am creat fiºier lib"
-
-#: dlltool.c:2904
-#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr "Avertisment, ignor EXPORT duplicat %s %d,%d"
-
-#: dlltool.c:2910
-#, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr ""
-
-#: dlltool.c:3026
-msgid "Processing definitions"
-msgstr ""
-
-#: dlltool.c:3058
-msgid "Processed definitions"
-msgstr ""
-
-#. xgetext:c-format
-#: dlltool.c:3065 dllwrap.c:479
-#, c-format
-msgid "Usage %s <option(s)> <object-file(s)>\n"
-msgstr ""
-
-#. xgetext:c-format
-#: dlltool.c:3067
-#, c-format
-msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr ""
-
-#: dlltool.c:3068
-#, c-format
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-msgstr ""
-
-#: dlltool.c:3069
-#, c-format
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr ""
-
-#: dlltool.c:3070
-#, c-format
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr ""
-
-#: dlltool.c:3071
-#, c-format
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr ""
-
-#: dlltool.c:3072
-#, c-format
-msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr ""
-
-#: dlltool.c:3073
-#, c-format
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr ""
-
-#: dlltool.c:3074
-#, c-format
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr ""
-
-#: dlltool.c:3075
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr ""
-
-#: dlltool.c:3076
-#, c-format
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr ""
-
-#: dlltool.c:3077
-#, c-format
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr ""
-
-#: dlltool.c:3078
-#, c-format
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr ""
-
-#: dlltool.c:3079
-#, c-format
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr ""
-
-#: dlltool.c:3080
-#, c-format
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr ""
-
-#: dlltool.c:3081
-#, c-format
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr ""
-
-#: dlltool.c:3082
-#, c-format
-msgid " -U --add-underscore Add underscores to symbols in interface library.\n"
-msgstr ""
-
-#: dlltool.c:3083
-#, c-format
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr ""
-
-#: dlltool.c:3084
-#, c-format
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr ""
-
-#: dlltool.c:3085
-#, c-format
-msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
-msgstr ""
-
-#: dlltool.c:3086
-#, c-format
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr ""
-
-#: dlltool.c:3087
-#, c-format
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr ""
-
-#: dlltool.c:3088
-#, c-format
-msgid " -C --compat-implib Create backward compatible import library.\n"
-msgstr ""
-
-#: dlltool.c:3089
-#, c-format
-msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
-msgstr ""
-
-#: dlltool.c:3090
-#, c-format
-msgid " -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
-msgstr ""
-
-#: dlltool.c:3091
-#, c-format
-msgid " -v --verbose Be verbose.\n"
-msgstr ""
-
-#: dlltool.c:3092
-#, c-format
-msgid " -V --version Display the program version.\n"
-msgstr ""
-
-#: dlltool.c:3093
-#, c-format
-msgid " -h --help Display this information.\n"
-msgstr ""
-
-#: dlltool.c:3095
-#, c-format
-msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr ""
-
-#: dlltool.c:3096
-#, c-format
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr ""
-
-#: dlltool.c:3097
-#, c-format
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr ""
-
-#: dlltool.c:3211
-#, c-format
-msgid "Path components stripped from dllname, '%s'."
-msgstr ""
-
-#: dlltool.c:3256
-#, c-format
-msgid "Unable to open base-file: %s"
-msgstr "Nu pot deschide fiºierul-bazã: %s"
-
-#: dlltool.c:3288
-#, c-format
-msgid "Machine '%s' not supported"
-msgstr "Maºina '%s' nu este suportatã"
-
-#: dlltool.c:3392 dllwrap.c:209
-#, c-format
-msgid "Tried file: %s"
-msgstr "Am încercat fiºier: %s"
-
-#: dlltool.c:3399 dllwrap.c:216
-#, c-format
-msgid "Using file: %s"
-msgstr "Folosesc fiºier: %s"
-
-#: dllwrap.c:299
-#, c-format
-msgid "Keeping temporary base file %s"
-msgstr ""
-
-#: dllwrap.c:301
-#, c-format
-msgid "Deleting temporary base file %s"
-msgstr "ªterg fiºier bazã temporar %s"
-
-#: dllwrap.c:315
-#, c-format
-msgid "Keeping temporary exp file %s"
-msgstr "Pãstrez fiºier exp temporar %s"
-
-#: dllwrap.c:317
-#, c-format
-msgid "Deleting temporary exp file %s"
-msgstr "ªterg fiºier exp temporar %s"
-
-#: dllwrap.c:330
-#, c-format
-msgid "Keeping temporary def file %s"
-msgstr "Pãstrez fiºier def temporar %s"
-
-#: dllwrap.c:332
-#, c-format
-msgid "Deleting temporary def file %s"
-msgstr "ªterg fiºier def temporar %s"
-
-#: dllwrap.c:480
-#, c-format
-msgid " Generic options:\n"
-msgstr " Opþiuni generice:\n"
-
-#: dllwrap.c:481
-#, c-format
-msgid " --quiet, -q Work quietly\n"
-msgstr ""
-
-#: dllwrap.c:482
-#, c-format
-msgid " --verbose, -v Verbose\n"
-msgstr ""
-
-#: dllwrap.c:483
-#, c-format
-msgid " --version Print dllwrap version\n"
-msgstr ""
-
-#: dllwrap.c:484
-#, c-format
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr ""
-
-#: dllwrap.c:485
-#, c-format
-msgid " Options for %s:\n"
-msgstr ""
-
-#: dllwrap.c:486
-#, c-format
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr ""
-
-#: dllwrap.c:487
-#, c-format
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr ""
-
-#: dllwrap.c:488
-#, c-format
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr ""
-
-#: dllwrap.c:489
-#, c-format
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr ""
-
-#: dllwrap.c:490
-#, c-format
-msgid " --image-base <base> Specify image base address\n"
-msgstr ""
-
-#: dllwrap.c:491
-#, c-format
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr ""
-
-#: dllwrap.c:492
-#, c-format
-msgid " --dry-run Show what needs to be run\n"
-msgstr ""
-
-#: dllwrap.c:493
-#, c-format
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr ""
-
-#: dllwrap.c:494
-#, c-format
-msgid " Options passed to DLLTOOL:\n"
-msgstr ""
-
-#: dllwrap.c:495
-#, c-format
-msgid " --machine <machine>\n"
-msgstr ""
-
-#: dllwrap.c:496
-#, c-format
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr ""
-
-#: dllwrap.c:497
-#, c-format
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr ""
-
-#: dllwrap.c:498
-#, c-format
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr ""
-
-#: dllwrap.c:499
-#, c-format
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr ""
-
-#: dllwrap.c:500
-#, c-format
-msgid " --def <deffile> Name input .def file\n"
-msgstr ""
-
-#: dllwrap.c:501
-#, c-format
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr ""
-
-#: dllwrap.c:502
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr ""
-
-#: dllwrap.c:503
-#, c-format
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr ""
-
-#: dllwrap.c:504
-#, c-format
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr ""
-
-#: dllwrap.c:505
-#, c-format
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr ""
-
-#: dllwrap.c:506
-#, c-format
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr ""
-
-#: dllwrap.c:507
-#, c-format
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr ""
-
-#: dllwrap.c:508
-#, c-format
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr ""
-
-#: dllwrap.c:509
-#, c-format
-msgid " -U Add underscores to .lib\n"
-msgstr ""
-
-#: dllwrap.c:510
-#, c-format
-msgid " -k Kill @<n> from exported names\n"
-msgstr ""
-
-#: dllwrap.c:511
-#, c-format
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr ""
-
-#: dllwrap.c:512
-#, c-format
-msgid " --as <name> Use <name> for assembler\n"
-msgstr ""
-
-#: dllwrap.c:513
-#, c-format
-msgid " --nodelete Keep temp files.\n"
-msgstr ""
-
-#: dllwrap.c:514
-#, c-format
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr ""
-
-#: dllwrap.c:784
-msgid "Must provide at least one of -o or --dllname options"
-msgstr ""
-
-#: dllwrap.c:813
-msgid ""
-"no export definition file provided.\n"
-"Creating one, but that may not be what you want"
-msgstr ""
-
-#: dllwrap.c:972
-#, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr ""
-
-#: dllwrap.c:973
-#, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr ""
-
-#: dllwrap.c:974
-#, c-format
-msgid "DRIVER name : %s\n"
-msgstr ""
-
-#: dllwrap.c:975
-#, c-format
-msgid "DRIVER options : %s\n"
-msgstr ""
-
-#: emul_aix.c:51
-#, c-format
-msgid " [-g] - 32 bit small archive\n"
-msgstr ""
-
-#: emul_aix.c:52
-#, c-format
-msgid " [-X32] - ignores 64 bit objects\n"
-msgstr ""
-
-#: emul_aix.c:53
-#, c-format
-msgid " [-X64] - ignores 32 bit objects\n"
-msgstr ""
-
-#: emul_aix.c:54
-#, c-format
-msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
-msgstr ""
-
-#: ieee.c:311
-msgid "unexpected end of debugging information"
-msgstr ""
-
-#: ieee.c:398
-msgid "invalid number"
-msgstr "numãr invalid"
-
-#: ieee.c:451
-msgid "invalid string length"
-msgstr "lungime ºir invalidã"
-
-#: ieee.c:506 ieee.c:547
-msgid "expression stack overflow"
-msgstr "depãºire stivã pentru expresie"
-
-#: ieee.c:526
-msgid "unsupported IEEE expression operator"
-msgstr "operator expresie IEEE nesuportat"
-
-#: ieee.c:541
-msgid "unknown section"
-msgstr "secþiune necunoscutã"
-
-#: ieee.c:562
-msgid "expression stack underflow"
-msgstr ""
-
-#: ieee.c:576
-msgid "expression stack mismatch"
-msgstr ""
-
-#: ieee.c:613
-msgid "unknown builtin type"
-msgstr "tip intern (builtin) necunoscut"
-
-#: ieee.c:758
-msgid "BCD float type not supported"
-msgstr "tip float BCD nu este suportat"
-
-#: ieee.c:895
-msgid "unexpected number"
-msgstr "numãr neaºteptat"
-
-#: ieee.c:902
-msgid "unexpected record type"
-msgstr "tip înregistrare (record) neaºteptat"
-
-#: ieee.c:935
-msgid "blocks left on stack at end"
-msgstr ""
-
-#: ieee.c:1198
-msgid "unknown BB type"
-msgstr "tip BB necunoscut"
-
-#: ieee.c:1207
-msgid "stack overflow"
-msgstr "depãºire stivã"
-
-#: ieee.c:1230
-msgid "stack underflow"
-msgstr "depãsire negativã stivã"
-
-#: ieee.c:1342 ieee.c:1412 ieee.c:2109
-msgid "illegal variable index"
-msgstr "index variabilã ilegal"
-
-#: ieee.c:1390
-msgid "illegal type index"
-msgstr "index tip ilegal"
-
-#: ieee.c:1400 ieee.c:1437
-msgid "unknown TY code"
-msgstr "cod TY necunoscut"
-
-#: ieee.c:1419
-msgid "undefined variable in TY"
-msgstr "variabila nedefinitã în TY"
-
-#. Pascal file name. FIXME.
-#: ieee.c:1830
-msgid "Pascal file name not supported"
-msgstr "nume fiºier Pascal nesuportat"
-
-#: ieee.c:1878
-msgid "unsupported qualifier"
-msgstr ""
-
-#: ieee.c:2147
-msgid "undefined variable in ATN"
-msgstr ""
-
-#: ieee.c:2190
-msgid "unknown ATN type"
-msgstr "tip ATN necunoscut"
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2312
-msgid "unsupported ATN11"
-msgstr "ATN11 nesuportat"
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2339
-msgid "unsupported ATN12"
-msgstr "ATN12 nesuportat"
-
-#: ieee.c:2399
-msgid "unexpected string in C++ misc"
-msgstr "ºir neaºteptat în C++ misc"
-
-#: ieee.c:2412
-msgid "bad misc record"
-msgstr "înregistrare misc incorectã"
-
-#: ieee.c:2453
-msgid "unrecognized C++ misc record"
-msgstr "secvenþã C++ misc nerecunoscutã"
-
-#: ieee.c:2568
-msgid "undefined C++ object"
-msgstr "obiect C++ nedefinit"
-
-#: ieee.c:2602
-msgid "unrecognized C++ object spec"
-msgstr "spec obiect C++ nerecunoscut"
-
-#: ieee.c:2638
-msgid "unsupported C++ object type"
-msgstr "tip obiect C++ nesuportat"
-
-#: ieee.c:2648
-msgid "C++ base class not defined"
-msgstr ""
-
-#: ieee.c:2660 ieee.c:2765
-msgid "C++ object has no fields"
-msgstr ""
-
-#: ieee.c:2679
-msgid "C++ base class not found in container"
-msgstr ""
-
-#: ieee.c:2786
-msgid "C++ data member not found in container"
-msgstr ""
-
-#: ieee.c:2827 ieee.c:2977
-msgid "unknown C++ visibility"
-msgstr ""
-
-#: ieee.c:2861
-msgid "bad C++ field bit pos or size"
-msgstr ""
-
-#: ieee.c:2953
-msgid "bad type for C++ method function"
-msgstr ""
-
-#: ieee.c:2963
-msgid "no type information for C++ method function"
-msgstr ""
-
-#: ieee.c:3002
-msgid "C++ static virtual method"
-msgstr ""
-
-#: ieee.c:3097
-msgid "unrecognized C++ object overhead spec"
-msgstr ""
-
-#: ieee.c:3136
-msgid "undefined C++ vtable"
-msgstr ""
-
-#: ieee.c:3205
-msgid "C++ default values not in a function"
-msgstr ""
-
-#: ieee.c:3245
-msgid "unrecognized C++ default type"
-msgstr ""
-
-#: ieee.c:3276
-msgid "reference parameter is not a pointer"
-msgstr ""
-
-#: ieee.c:3359
-msgid "unrecognized C++ reference type"
-msgstr "tip referinþã C++ nerecunoscut"
-
-#: ieee.c:3441
-msgid "C++ reference not found"
-msgstr "referinþa C++ nu a fost gãsitã"
-
-#: ieee.c:3449
-msgid "C++ reference is not pointer"
-msgstr "referinþa C++ nu este pointer"
-
-#: ieee.c:3475 ieee.c:3483
-msgid "missing required ASN"
-msgstr "ASN necesar lipseºte"
-
-#: ieee.c:3510 ieee.c:3518
-msgid "missing required ATN65"
-msgstr "ATN65 necesar lipseºte"
-
-#: ieee.c:3532
-msgid "bad ATN65 record"
-msgstr ""
-
-#: ieee.c:4160
-#, c-format
-msgid "IEEE numeric overflow: 0x"
-msgstr ""
-
-#: ieee.c:4204
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr ""
-
-#: ieee.c:5203
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr ""
-
-#: ieee.c:5237
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr ""
-
-#: ieee.c:5271
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr ""
-
-#: nlmconv.c:267 srconv.c:1810
-msgid "input and output files must be different"
-msgstr ""
-
-#: nlmconv.c:314
-msgid "input file named both on command line and with INPUT"
-msgstr ""
-
-#: nlmconv.c:323
-msgid "no input file"
-msgstr "nici un fiºier de intrare"
-
-#: nlmconv.c:353
-msgid "no name for output file"
-msgstr "nici un nume pentru fiºierul de ieºire"
-
-#: nlmconv.c:367
-msgid "warning: input and output formats are not compatible"
-msgstr ""
-
-#: nlmconv.c:396
-msgid "make .bss section"
-msgstr "creazã secþiunea .bss"
-
-#: nlmconv.c:405
-msgid "make .nlmsections section"
-msgstr "creazã secþiunea .nlmsections"
-
-#: nlmconv.c:407
-msgid "set .nlmsections flags"
-msgstr "seteazã atribute .nlmsections"
-
-#: nlmconv.c:435
-msgid "set .bss vma"
-msgstr "seteazã vma .bss"
-
-#: nlmconv.c:442
-msgid "set .data size"
-msgstr "seteazã dimensiune .data"
-
-#: nlmconv.c:622
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr "avertisment: simbolul %s importat dar nu este prezent în lista de import"
-
-#: nlmconv.c:642
-msgid "set start address"
-msgstr ""
-
-#: nlmconv.c:691
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr ""
-
-#: nlmconv.c:693
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr ""
-
-#: nlmconv.c:695
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr ""
-
-#: nlmconv.c:716 nlmconv.c:905
-msgid "custom section"
-msgstr "secþiune personalizatã"
-
-#: nlmconv.c:737 nlmconv.c:934
-msgid "help section"
-msgstr "secþiune ajutor"
-
-#: nlmconv.c:759 nlmconv.c:952
-msgid "message section"
-msgstr "secþiune mesaj"
-
-#: nlmconv.c:775 nlmconv.c:985
-msgid "module section"
-msgstr "secþiune modul"
-
-#: nlmconv.c:795 nlmconv.c:1001
-msgid "rpc section"
-msgstr "secþiune rpc"
-
-#. There is no place to record this information.
-#: nlmconv.c:831
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr ""
-
-#: nlmconv.c:852 nlmconv.c:1020
-msgid "shared section"
-msgstr "secþiune partajatã"
-
-#: nlmconv.c:860
-msgid "warning: No version number given"
-msgstr "avertisment: Nici un numãr de versiune furnizat"
-
-#: nlmconv.c:900 nlmconv.c:929 nlmconv.c:947 nlmconv.c:996 nlmconv.c:1015
-#, c-format
-msgid "%s: read: %s"
-msgstr "%s: citit: %s"
-
-#: nlmconv.c:922
-msgid "warning: FULLMAP is not supported; try ld -M"
-msgstr "avertisment: FULLMAP nu este suportat; încercaþi ld -M"
-
-#: nlmconv.c:1098
-#, c-format
-msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
-msgstr ""
-
-#: nlmconv.c:1099
-#, c-format
-msgid " Convert an object file into a NetWare Loadable Module\n"
-msgstr ""
-
-#: nlmconv.c:1100
-#, c-format
-msgid ""
-" The options are:\n"
-" -I --input-target=<bfdname> Set the input binary file format\n"
-" -O --output-target=<bfdname> Set the output binary file format\n"
-" -T --header-file=<file> Read <file> for NLM header information\n"
-" -l --linker=<linker> Use <linker> for any linking\n"
-" -d --debug Display on stderr the linker command line\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-msgstr ""
-
-#: nlmconv.c:1140
-#, c-format
-msgid "support not compiled in for %s"
-msgstr ""
-
-#: nlmconv.c:1177
-msgid "make section"
-msgstr "creazã secþiune"
-
-#: nlmconv.c:1191
-msgid "set section size"
-msgstr "seteazã dimensiune secþiune"
-
-#: nlmconv.c:1197
-msgid "set section alignment"
-msgstr "seteazã aliniere secþiune"
-
-#: nlmconv.c:1201
-msgid "set section flags"
-msgstr "seteazã atribute secþiune"
-
-#: nlmconv.c:1212
-msgid "set .nlmsections size"
-msgstr "seteazã dimensiune .nlmsections"
-
-#: nlmconv.c:1293 nlmconv.c:1301 nlmconv.c:1310 nlmconv.c:1315
-msgid "set .nlmsection contents"
-msgstr ""
-
-#: nlmconv.c:1794
-msgid "stub section sizes"
-msgstr "dimensiuni secþiune stub"
-
-#: nlmconv.c:1841
-msgid "writing stub"
-msgstr "scriu stub"
-
-#: nlmconv.c:1925
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr ""
-
-#: nlmconv.c:1989
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr ""
-
-#: nlmconv.c:2116
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr ""
-
-#: nlmconv.c:2131
-#, c-format
-msgid "Execution of %s failed"
-msgstr ""
-
-#: nm.c:224 size.c:80 strings.c:651
-#, c-format
-msgid "Usage: %s [option(s)] [file(s)]\n"
-msgstr ""
-
-#: nm.c:225
-#, c-format
-msgid " List symbols in [file(s)] (a.out by default).\n"
-msgstr ""
-
-#: nm.c:226
-#, c-format
-msgid ""
-" The options are:\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -S, --print-size Print size of defined symbols\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" --special-syms Include special symbols in the output\n"
-" --synthetic Display synthetic symbols as well\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -X 32_64 (ignored)\n"
-" -h, --help Display this information\n"
-" -V, --version Display this program's version number\n"
-"\n"
-msgstr ""
-
-#: nm.c:262 objdump.c:232
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr "Raportaþi bug-uri la %s.\n"
-
-#: nm.c:294
-#, c-format
-msgid "%s: invalid radix"
-msgstr "%s: rãdãcinã (radix) invalidã"
-
-#: nm.c:318
-#, c-format
-msgid "%s: invalid output format"
-msgstr "%s: format de ieºire invalid"
-
-#: nm.c:339 readelf.c:6342 readelf.c:6378
-#, c-format
-msgid "<processor specific>: %d"
-msgstr ""
-
-#: nm.c:341 readelf.c:6345 readelf.c:6390
-#, c-format
-msgid "<OS specific>: %d"
-msgstr ""
-
-#: nm.c:343 readelf.c:6347 readelf.c:6393
-#, c-format
-msgid "<unknown>: %d"
-msgstr "<necunoscut>: %d"
-
-#: nm.c:380
-#, c-format
-msgid ""
-"\n"
-"Archive index:\n"
-msgstr ""
-
-#: nm.c:1225
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s:\n"
-"\n"
-msgstr ""
-
-#: nm.c:1227
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr ""
-
-#: nm.c:1229 nm.c:1280
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-
-#: nm.c:1232 nm.c:1283
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-
-#: nm.c:1276
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-
-#: nm.c:1278
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-
-#: nm.c:1580
-msgid "Only -X 32_64 is supported"
-msgstr ""
-
-#: nm.c:1600
-msgid "Using the --size-sort and --undefined-only options together"
-msgstr ""
-
-#: nm.c:1601
-msgid "will produce no output, since undefined symbols have no size."
-msgstr ""
-
-#: nm.c:1629
-#, c-format
-msgid "data size %ld"
-msgstr ""
-
-#: objcopy.c:396 srconv.c:1721
-#, c-format
-msgid "Usage: %s [option(s)] in-file [out-file]\n"
-msgstr ""
-
-#: objcopy.c:397
-#, c-format
-msgid " Copies a binary file, possibly transforming it in the process\n"
-msgstr ""
-
-#: objcopy.c:398 objcopy.c:487
-#, c-format
-msgid " The options are:\n"
-msgstr ""
-
-#: objcopy.c:399
-#, c-format
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -B --binary-architecture <arch> Set arch of output file, when input is binary\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" --debugging Convert debugging information, if possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation information\n"
-" -g --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" --strip-unneeded-symbol <name>\n"
-" Do not copy symbol <name> unless needed by\n"
-" relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -K --keep-symbol <name> Only copy symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-" --weaken Force all global symbols to be marked as weak\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address <addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to <flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to output\n"
-" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-" --change-leading-char Force output format's leading character style\n"
-" --remove-leading-char Remove leading character from global symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --redefine-syms <file> --redefine-sym for all symbol pairs \n"
-" listed in <file>\n"
-" --srec-len <number> Restrict the length of generated Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-" --strip-symbols <file> -N for all symbols listed in <file>\n"
-" --strip-unneeded-symbols <file>\n"
-" --strip-unneeded-symbol for all symbols listed\n"
-" in <file>\n"
-" --keep-symbols <file> -K for all symbols listed in <file>\n"
-" --localize-symbols <file> -L for all symbols listed in <file>\n"
-" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-" --weaken-symbols <file> -W for all symbols listed in <file>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" --writable-text Mark the output text as writable\n"
-" --readonly-text Make the output text write protected\n"
-" --pure Mark the output file as demand paged\n"
-" --impure Mark the output file as impure\n"
-" --prefix-symbols <prefix> Add <prefix> to start of every symbol name\n"
-" --prefix-sections <prefix> Add <prefix> to start of every section name\n"
-" --prefix-alloc-sections <prefix>\n"
-" Add <prefix> to start of every allocatable\n"
-" section name\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-msgstr ""
-
-#: objcopy.c:485
-#, c-format
-msgid "Usage: %s <option(s)> in-file(s)\n"
-msgstr ""
-
-#: objcopy.c:486
-#, c-format
-msgid " Removes symbols and sections from files\n"
-msgstr ""
-
-#: objcopy.c:488
-#, c-format
-msgid ""
-" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target=<bfdname> Create an output file in format <bfdname>\n"
-" -F --target=<bfdname> Set both input and output format to <bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -R --remove-section=<name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation information\n"
-" -g -S -d --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -N --strip-symbol=<name> Do not copy symbol <name>\n"
-" -K --keep-symbol=<name> Only copy symbol <name>\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr ""
-
-#: objcopy.c:560
-#, c-format
-msgid "unrecognized section flag `%s'"
-msgstr "atribut secþiune nerecunoscut `%s'"
-
-#: objcopy.c:561
-#, c-format
-msgid "supported flags: %s"
-msgstr "atribute suportate: %s"
-
-#: objcopy.c:638
-#, c-format
-msgid "cannot open '%s': %s"
-msgstr "nu pot deschide '%s': %s"
-
-#: objcopy.c:641 objcopy.c:2629
-#, c-format
-msgid "%s: fread failed"
-msgstr "%s: fread a eºuat"
-
-#: objcopy.c:714
-#, c-format
-msgid "%s:%d: Ignoring rubbish found on this line"
-msgstr ""
-
-#: objcopy.c:976
-#, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr ""
-
-#: objcopy.c:980
-#, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr "%s: Simbolului \"%s\" este destinaþie pentru mai mult de o redefinire"
-
-#: objcopy.c:1008
-#, c-format
-msgid "couldn't open symbol redefinition file %s (error: %s)"
-msgstr ""
-
-#: objcopy.c:1086
-#, c-format
-msgid "%s:%d: garbage found at end of line"
-msgstr ""
-
-#: objcopy.c:1089
-#, c-format
-msgid "%s:%d: missing new symbol name"
-msgstr ""
-
-#: objcopy.c:1099
-#, c-format
-msgid "%s:%d: premature end of file"
-msgstr ""
-
-#: objcopy.c:1124
-msgid "Unable to change endianness of input file(s)"
-msgstr ""
-
-#: objcopy.c:1133
-#, c-format
-msgid "copy from %s(%s) to %s(%s)\n"
-msgstr ""
-
-#: objcopy.c:1170
-#, c-format
-msgid "Unable to recognise the format of the input file %s"
-msgstr "Nu pot recunoaºte formatul fiºierului de intrare %s"
-
-#: objcopy.c:1174
-#, c-format
-msgid "Warning: Output file cannot represent architecture %s"
-msgstr ""
-
-#: objcopy.c:1211
-#, c-format
-msgid "can't create section `%s': %s"
-msgstr ""
-
-#: objcopy.c:1277
-msgid "there are no sections to be copied!"
-msgstr ""
-
-#: objcopy.c:1323
-#, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr ""
-
-#: objcopy.c:1348
-#, c-format
-msgid "Can't add padding to %s: %s"
-msgstr ""
-
-#: objcopy.c:1514
-#, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr ""
-
-#: objcopy.c:1525
-msgid "unknown alternate machine code, ignored"
-msgstr ""
-
-#: objcopy.c:1555 objcopy.c:1585
-#, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr ""
-
-#: objcopy.c:1790
-#, c-format
-msgid "Multiple renames of section %s"
-msgstr "Multiple redenumiri ale secþiunii %s"
-
-#: objcopy.c:1841
-msgid "private header data"
-msgstr "date antet privat"
-
-#: objcopy.c:1849
-#, c-format
-msgid "%s: error in %s: %s"
-msgstr "%s: eroare în %s: %s"
-
-#: objcopy.c:1903
-msgid "making"
-msgstr "creez"
-
-#: objcopy.c:1912
-msgid "size"
-msgstr "mãrime"
-
-#: objcopy.c:1926
-msgid "vma"
-msgstr ""
-
-#: objcopy.c:1951
-msgid "alignment"
-msgstr ""
-
-#: objcopy.c:1966
-msgid "flags"
-msgstr "atribute"
-
-#: objcopy.c:1988
-msgid "private data"
-msgstr "date private"
-
-#: objcopy.c:1996
-#, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr "%s: secþiune `%s': eroare în %s: %s"
-
-#: objcopy.c:2274
-#, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr "%s: nu pot crea secþiune de depanare: %s"
-
-#: objcopy.c:2288
-#, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr ""
-
-#: objcopy.c:2297
-#, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr ""
-
-#: objcopy.c:2472
-msgid "byte number must be non-negative"
-msgstr ""
-
-#: objcopy.c:2482
-msgid "interleave must be positive"
-msgstr ""
-
-#: objcopy.c:2502 objcopy.c:2510
-#, c-format
-msgid "%s both copied and removed"
-msgstr ""
-
-#: objcopy.c:2603 objcopy.c:2674 objcopy.c:2774 objcopy.c:2805 objcopy.c:2829
-#: objcopy.c:2833 objcopy.c:2853
-#, c-format
-msgid "bad format for %s"
-msgstr "format incorect pentru %s"
-
-#: objcopy.c:2624
-#, c-format
-msgid "cannot open: %s: %s"
-msgstr "nu pot deschide : %s: %s"
-
-#: objcopy.c:2743
-#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "Avetisment: trunchez umplere-gol de la 0x%s la 0x%x"
-
-#: objcopy.c:2903
-msgid "alternate machine code index must be positive"
-msgstr ""
-
-#: objcopy.c:2961
-msgid "byte number must be less than interleave"
-msgstr ""
-
-#: objcopy.c:2991
-#, c-format
-msgid "architecture %s unknown"
-msgstr ""
-
-#: objcopy.c:2995
-msgid "Warning: input target 'binary' required for binary architecture parameter."
-msgstr ""
-
-#: objcopy.c:2996
-#, c-format
-msgid " Argument %s ignored"
-msgstr "Argument %s ignorat"
-
-#: objcopy.c:3002
-#, c-format
-msgid "warning: could not locate '%s'. System error message: %s"
-msgstr ""
-
-#: objcopy.c:3042 objcopy.c:3056
-#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr ""
-
-#: objdump.c:176
-#, c-format
-msgid "Usage: %s <option(s)> <file(s)>\n"
-msgstr ""
-
-#: objdump.c:177
-#, c-format
-msgid " Display information from object <file(s)>.\n"
-msgstr ""
-
-#: objdump.c:178
-#, c-format
-msgid " At least one of the following switches must be given:\n"
-msgstr ""
-
-#: objdump.c:179
-#, c-format
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -e, --debugging-tags Display debug information using ctags style\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" -v, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-
-#: objdump.c:202
-#, c-format
-msgid ""
-"\n"
-" The following switches are optional:\n"
-msgstr ""
-
-#: objdump.c:203
-#, c-format
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -I, --include=DIR Add DIR to search list for source files\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', `gnu',\n"
-" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whose address is >= ADDR\n"
-" --stop-address=ADDR Only process data whose address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-" --special-syms Include special symbols in symbol dumps\n"
-"\n"
-msgstr ""
-
-#: objdump.c:378
-#, c-format
-msgid "Sections:\n"
-msgstr "Secþiuni:\n"
-
-#: objdump.c:381 objdump.c:385
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idx Nume Dim VMA LMA Fiºier off Algn"
-
-#: objdump.c:387
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idx Nume Dim VMA LMA Fiºier off Algn"
-
-#: objdump.c:391
-#, c-format
-msgid " Flags"
-msgstr " Atribute"
-
-#: objdump.c:393
-#, c-format
-msgid " Pg"
-msgstr ""
-
-#: objdump.c:436
-#, c-format
-msgid "%s: not a dynamic object"
-msgstr ""
-
-#: objdump.c:1722
-#, c-format
-msgid "Disassembly of section %s:\n"
-msgstr ""
-
-#: objdump.c:1884
-#, c-format
-msgid "Can't use supplied machine %s"
-msgstr ""
-
-#: objdump.c:1903
-#, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr ""
-
-#: objdump.c:1973
-#, c-format
-msgid ""
-"No %s section present\n"
-"\n"
-msgstr ""
-
-#: objdump.c:1982
-#, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr ""
-
-#: objdump.c:2026
-#, c-format
-msgid ""
-"Contents of %s section:\n"
-"\n"
-msgstr ""
-
-#: objdump.c:2153
-#, c-format
-msgid "architecture: %s, "
-msgstr ""
-
-#: objdump.c:2156
-#, c-format
-msgid "flags 0x%08x:\n"
-msgstr "atribute 0x%08x:\n"
-
-#: objdump.c:2170
-#, c-format
-msgid ""
-"\n"
-"start address 0x"
-msgstr ""
-
-#: objdump.c:2210
-#, c-format
-msgid "Contents of section %s:\n"
-msgstr ""
-
-#: objdump.c:2335
-#, c-format
-msgid "no symbols\n"
-msgstr ""
-
-#: objdump.c:2342
-#, c-format
-msgid "no information for symbol number %ld\n"
-msgstr ""
-
-#: objdump.c:2345
-#, c-format
-msgid "could not determine the type of symbol number %ld\n"
-msgstr ""
-
-#: objdump.c:2611
-#, c-format
-msgid ""
-"\n"
-"%s: file format %s\n"
-msgstr ""
-
-#: objdump.c:2662
-#, c-format
-msgid "%s: printing debugging information failed"
-msgstr ""
-
-#: objdump.c:2753
-#, c-format
-msgid "In archive %s:\n"
-msgstr "În arhivã %s:\n"
-
-#: objdump.c:2873
-msgid "unrecognized -E option"
-msgstr "opþiune -E nerecunoscutã"
-
-#: objdump.c:2884
-#, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr "tip opþiune --endian nerecunoscutã `%s'"
-
-#: rdcoff.c:196
-#, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr ""
-
-#: rdcoff.c:404 rdcoff.c:509 rdcoff.c:697
-#, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr ""
-
-#: rdcoff.c:420 rdcoff.c:717
-#, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr ""
-
-#: rdcoff.c:784
-#, c-format
-msgid "%ld: .bf without preceding function"
-msgstr ""
-
-#: rdcoff.c:834
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr ""
-
-#: rddbg.c:85
-#, c-format
-msgid "%s: no recognized debugging information"
-msgstr "%s: nici o informaþie de depanare recunoscutã"
-
-#: rddbg.c:394
-#, c-format
-msgid "Last stabs entries before error:\n"
-msgstr ""
-
-#: readelf.c:272
-#, c-format
-msgid "%s: Error: "
-msgstr ""
-
-#: readelf.c:283
-#, c-format
-msgid "%s: Warning: "
-msgstr "%s: Avertisment: "
-
-#: readelf.c:298
-#, c-format
-msgid "Unable to seek to 0x%x for %s\n"
-msgstr ""
-
-#: readelf.c:310
-#, c-format
-msgid "Out of memory allocating 0x%x bytes for %s\n"
-msgstr ""
-
-#: readelf.c:318
-#, c-format
-msgid "Unable to read in 0x%x bytes of %s\n"
-msgstr "Nu pot citi în cei 0x%x octeþi ai lui %s\n"
-
-#: readelf.c:364 readelf.c:412 readelf.c:615 readelf.c:647
-#, c-format
-msgid "Unhandled data length: %d\n"
-msgstr ""
-
-#: readelf.c:752
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr ""
-
-#: readelf.c:772 readelf.c:799 readelf.c:842 readelf.c:869
-msgid "relocs"
-msgstr ""
-
-#: readelf.c:782 readelf.c:809 readelf.c:852 readelf.c:879
-msgid "out of memory parsing relocs"
-msgstr ""
-
-#: readelf.c:933
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
-msgstr ""
-
-#: readelf.c:935
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
-msgstr ""
-
-#: readelf.c:940
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name\n"
-msgstr ""
-
-#: readelf.c:942
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name\n"
-msgstr ""
-
-#: readelf.c:950
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
-msgstr ""
-
-#: readelf.c:952
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
-msgstr ""
-
-#: readelf.c:957
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr ""
-
-#: readelf.c:959
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name\n"
-msgstr ""
-
-#: readelf.c:1239 readelf.c:1241 readelf.c:1324 readelf.c:1326 readelf.c:1335
-#: readelf.c:1337
-#, c-format
-msgid "unrecognized: %-7lx"
-msgstr ""
-
-#: readelf.c:1295
-#, c-format
-msgid "<string table index: %3ld>"
-msgstr ""
-
-#: readelf.c:1297
-#, c-format
-msgid "<corrupt string table index: %3ld>"
-msgstr ""
-
-#: readelf.c:1569
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr ""
-
-#: readelf.c:1588
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr ""
-
-#: readelf.c:1592 readelf.c:2370
-#, c-format
-msgid "<unknown>: %lx"
-msgstr "necunoscut>: %lx"
-
-#: readelf.c:1605
-msgid "NONE (None)"
-msgstr "NONE (Nimic)"
-
-#: readelf.c:1606
-msgid "REL (Relocatable file)"
-msgstr "REL (Fiºier realocabil)"
-
-#: readelf.c:1607
-msgid "EXEC (Executable file)"
-msgstr "EXEC (Fiºier executabil)"
-
-#: readelf.c:1608
-msgid "DYN (Shared object file)"
-msgstr ""
-
-#: readelf.c:1609
-msgid "CORE (Core file)"
-msgstr ""
-
-#: readelf.c:1613
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr ""
-
-#: readelf.c:1615
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr ""
-
-#: readelf.c:1617 readelf.c:1724 readelf.c:2554
-#, c-format
-msgid "<unknown>: %x"
-msgstr "<necunoscut>: %x"
-
-#: readelf.c:1629
-msgid "None"
-msgstr "Nimic"
-
-#: readelf.c:2229
-msgid "Standalone App"
-msgstr "Aplicaþie independentã"
-
-#: readelf.c:2232 readelf.c:2952 readelf.c:2968
-#, c-format
-msgid "<unknown: %x>"
-msgstr "<necunoscut: %x>"
-
-#: readelf.c:2597
-#, c-format
-msgid "Usage: readelf <option(s)> elf-file(s)\n"
-msgstr ""
-
-#: readelf.c:2598
-#, c-format
-msgid " Display information about the contents of ELF format files\n"
-msgstr ""
-
-#: readelf.c:2599
-#, c-format
-msgid ""
-" Options are:\n"
-" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Display the ELF file header\n"
-" -l --program-headers Display the program headers\n"
-" --segments An alias for --program-headers\n"
-" -S --section-headers Display the sections' header\n"
-" --sections An alias for --section-headers\n"
-" -g --section-groups Display the section groups\n"
-" -e --headers Equivalent to: -h -l -S\n"
-" -s --syms Display the symbol table\n"
-" --symbols An alias for --syms\n"
-" -n --notes Display the core notes (if present)\n"
-" -r --relocs Display the relocations (if present)\n"
-" -u --unwind Display the unwind info (if present)\n"
-" -d --dynamic Display the dynamic section (if present)\n"
-" -V --version-info Display the version sections (if present)\n"
-" -A --arch-specific Display architecture specific information (if any).\n"
-" -D --use-dynamic Use the dynamic section info when displaying symbols\n"
-" -x --hex-dump=<number> Dump the contents of section <number>\n"
-" -w[liaprmfFsoR] or\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n"
-" Display the contents of DWARF2 debug sections\n"
-msgstr ""
-
-#: readelf.c:2622
-#, c-format
-msgid ""
-" -i --instruction-dump=<number>\n"
-" Disassemble the contents of section <number>\n"
-msgstr ""
-
-#: readelf.c:2626
-#, c-format
-msgid ""
-" -I --histogram Display histogram of bucket list lengths\n"
-" -W --wide Allow output width to exceed 80 characters\n"
-" -H --help Display this information\n"
-" -v --version Display the version number of readelf\n"
-msgstr ""
-
-#: readelf.c:2651 readelf.c:12118
-msgid "Out of memory allocating dump request table."
-msgstr ""
-
-#: readelf.c:2820 readelf.c:2888
-#, c-format
-msgid "Unrecognized debug option '%s'\n"
-msgstr "Opþiune de depanare nerecunoscutã '%s'\n"
-
-#: readelf.c:2922
-#, c-format
-msgid "Invalid option '-%c'\n"
-msgstr "Opþiune invalidã '-%c'\n"
-
-#: readelf.c:2936
-msgid "Nothing to do.\n"
-msgstr ""
-
-#: readelf.c:2948 readelf.c:2964 readelf.c:5906
-msgid "none"
-msgstr "nimic"
-
-#: readelf.c:2965
-msgid "2's complement, little endian"
-msgstr ""
-
-#: readelf.c:2966
-msgid "2's complement, big endian"
-msgstr ""
-
-#: readelf.c:2984
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr ""
-
-#: readelf.c:2992
-#, c-format
-msgid "ELF Header:\n"
-msgstr ""
-
-#: readelf.c:2993
-#, c-format
-msgid " Magic: "
-msgstr ""
-
-#: readelf.c:2997
-#, c-format
-msgid " Class: %s\n"
-msgstr " Clasa: %s\n"
-
-#: readelf.c:2999
-#, c-format
-msgid " Data: %s\n"
-msgstr " Date: %s\n"
-
-#: readelf.c:3001
-#, c-format
-msgid " Version: %d %s\n"
-msgstr " Versiune: %d %s\n"
-
-#: readelf.c:3008
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr " OS/ABI: %s\n"
-
-#: readelf.c:3010
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr " Versiune ABI: %d\n"
-
-#: readelf.c:3012
-#, c-format
-msgid " Type: %s\n"
-msgstr " Tip: %s\n"
-
-#: readelf.c:3014
-#, c-format
-msgid " Machine: %s\n"
-msgstr " Maºinã: %s\n"
-
-#: readelf.c:3016
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr " Versiune: 0x%lx\n"
-
-#: readelf.c:3019
-#, c-format
-msgid " Entry point address: "
-msgstr " Adresã punct de intrare: "
-
-#: readelf.c:3021
-#, c-format
-msgid ""
-"\n"
-" Start of program headers: "
-msgstr ""
-"\n"
-" Începutul antetelor programului: "
-
-#: readelf.c:3023
-#, c-format
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr ""
-
-#: readelf.c:3025
-#, c-format
-msgid " (bytes into file)\n"
-msgstr " (octeþi în fiºier)\n"
-
-#: readelf.c:3027
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr " Atribute: 0x%lx%s\n"
-
-#: readelf.c:3030
-#, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr ""
-
-#: readelf.c:3032
-#, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr ""
-
-#: readelf.c:3034
-#, c-format
-msgid " Number of program headers: %ld\n"
-msgstr ""
-
-#: readelf.c:3036
-#, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr ""
-
-#: readelf.c:3038
-#, c-format
-msgid " Number of section headers: %ld"
-msgstr ""
-
-#: readelf.c:3043
-#, c-format
-msgid " Section header string table index: %ld"
-msgstr ""
-
-#: readelf.c:3074 readelf.c:3107
-msgid "program headers"
-msgstr "antete program"
-
-#: readelf.c:3145 readelf.c:3446 readelf.c:3487 readelf.c:3546 readelf.c:3609
-#: readelf.c:3993 readelf.c:4017 readelf.c:5247 readelf.c:5291 readelf.c:5489
-#: readelf.c:6450 readelf.c:6464 readelf.c:11493 readelf.c:11912
-#: readelf.c:11979
-msgid "Out of memory\n"
-msgstr "Memorie insuficientã\n"
-
-#: readelf.c:3172
-#, c-format
-msgid ""
-"\n"
-"There are no program headers in this file.\n"
-msgstr ""
-
-#: readelf.c:3178
-#, c-format
-msgid ""
-"\n"
-"Elf file type is %s\n"
-msgstr ""
-"\n"
-"Tipul fiºierului elf este %s\n"
-
-#: readelf.c:3179
-#, c-format
-msgid "Entry point "
-msgstr ""
-
-#: readelf.c:3181
-#, c-format
-msgid ""
-"\n"
-"There are %d program headers, starting at offset "
-msgstr ""
-
-#: readelf.c:3193 readelf.c:3195
-#, c-format
-msgid ""
-"\n"
-"Program Headers:\n"
-msgstr ""
-
-#: readelf.c:3199
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr ""
-
-#: readelf.c:3202
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr ""
-
-#: readelf.c:3206
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr ""
-
-#: readelf.c:3208
-#, c-format
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr ""
-
-#: readelf.c:3301
-msgid "more than one dynamic segment\n"
-msgstr ""
-
-#: readelf.c:3312
-msgid "no .dynamic section in the dynamic segment"
-msgstr ""
-
-#: readelf.c:3321
-msgid "the .dynamic section is not contained within the dynamic segment"
-msgstr ""
-
-#: readelf.c:3323
-msgid "the .dynamic section is not the first section in the dynamic segment."
-msgstr ""
-
-#: readelf.c:3337
-msgid "Unable to find program interpreter name\n"
-msgstr ""
-
-#: readelf.c:3344
-#, c-format
-msgid ""
-"\n"
-" [Requesting program interpreter: %s]"
-msgstr ""
-
-#: readelf.c:3356
-#, c-format
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-msgstr ""
-
-#: readelf.c:3357
-#, c-format
-msgid " Segment Sections...\n"
-msgstr ""
-
-#: readelf.c:3408
-msgid "Cannot interpret virtual addresses without program headers.\n"
-msgstr ""
-
-#: readelf.c:3424
-#, c-format
-msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
-msgstr ""
-
-#: readelf.c:3438 readelf.c:3479
-msgid "section headers"
-msgstr "antete secþiune"
-
-#: readelf.c:3523 readelf.c:3586
-msgid "symbols"
-msgstr "simboluri"
-
-#: readelf.c:3533 readelf.c:3596
-msgid "symtab shndx"
-msgstr "symtab shndx"
-
-#: readelf.c:3697 readelf.c:3977
-#, c-format
-msgid ""
-"\n"
-"There are no sections in this file.\n"
-msgstr ""
-"\n"
-"Nu existã nici o secþiune în acest fiºier.\n"
-
-#: readelf.c:3703
-#, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr ""
-
-#: readelf.c:3720 readelf.c:4079 readelf.c:4290 readelf.c:4591 readelf.c:5011
-#: readelf.c:6618
-msgid "string table"
-msgstr ""
-
-#: readelf.c:3765
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr ""
-
-#: readelf.c:3777
-msgid "File contains multiple dynamic string tables\n"
-msgstr ""
-
-#: readelf.c:3782
-msgid "dynamic strings"
-msgstr ""
-
-#: readelf.c:3789
-msgid "File contains multiple symtab shndx tables\n"
-msgstr ""
-
-#: readelf.c:3828
-#, c-format
-msgid ""
-"\n"
-"Section Headers:\n"
-msgstr ""
-
-#: readelf.c:3830
-#, c-format
-msgid ""
-"\n"
-"Section Header:\n"
-msgstr ""
-
-#: readelf.c:3834
-#, c-format
-msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-msgstr ""
-
-#: readelf.c:3837
-#, c-format
-msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
-msgstr ""
-
-#: readelf.c:3840
-#, c-format
-msgid " [Nr] Name Type Address Offset\n"
-msgstr ""
-
-#: readelf.c:3841
-#, c-format
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr ""
-
-#: readelf.c:3936
-#, c-format
-msgid ""
-"Key to Flags:\n"
-" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-" I (info), L (link order), G (group), x (unknown)\n"
-" O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr ""
-
-#: readelf.c:3954
-#, c-format
-msgid "[<unknown>: 0x%x]"
-msgstr "[<necunoscut>: 0x%x]"
-
-#: readelf.c:3984
-msgid "Section headers are not available!\n"
-msgstr ""
-
-#: readelf.c:4008
-#, c-format
-msgid ""
-"\n"
-"There are no section groups in this file.\n"
-msgstr ""
-
-#: readelf.c:4042
-#, c-format
-msgid "Bad sh_link in group section `%s'\n"
-msgstr ""
-
-#: readelf.c:4061
-#, c-format
-msgid "Bad sh_info in group section `%s'\n"
-msgstr ""
-
-#: readelf.c:4085 readelf.c:6947
-msgid "section data"
-msgstr "date secþiune"
-
-#: readelf.c:4097
-#, c-format
-msgid " [Index] Name\n"
-msgstr " [Index] Nume\n"
-
-#: readelf.c:4114
-#, c-format
-msgid "section [%5u] already in group section [%5u]\n"
-msgstr ""
-
-#: readelf.c:4127
-#, c-format
-msgid "section 0 in group section [%5u]\n"
-msgstr ""
-
-#: readelf.c:4224
-#, c-format
-msgid ""
-"\n"
-"'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr ""
-
-#: readelf.c:4236
-#, c-format
-msgid ""
-"\n"
-"There are no dynamic relocations in this file.\n"
-msgstr ""
-
-#: readelf.c:4260
-#, c-format
-msgid ""
-"\n"
-"Relocation section "
-msgstr ""
-
-#: readelf.c:4265 readelf.c:4666 readelf.c:4680 readelf.c:5025
-#, c-format
-msgid "'%s'"
-msgstr ""
-
-#: readelf.c:4267 readelf.c:4682 readelf.c:5027
-#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr ""
-
-#: readelf.c:4308
-#, c-format
-msgid ""
-"\n"
-"There are no relocations in this file.\n"
-msgstr ""
-
-#: readelf.c:4482 readelf.c:4862
-msgid "unwind table"
-msgstr "deruleazã tabel"
-
-#: readelf.c:4540 readelf.c:4959
-#, c-format
-msgid "Skipping unexpected relocation type %s\n"
-msgstr ""
-
-#: readelf.c:4598 readelf.c:5018 readelf.c:5069
-#, c-format
-msgid ""
-"\n"
-"There are no unwind sections in this file.\n"
-msgstr ""
-
-#: readelf.c:4661
-#, c-format
-msgid ""
-"\n"
-"Could not find unwind info section for "
-msgstr ""
-
-#: readelf.c:4673
-msgid "unwind info"
-msgstr ""
-
-#: readelf.c:4675 readelf.c:5024
-#, c-format
-msgid ""
-"\n"
-"Unwind section "
-msgstr ""
-
-#: readelf.c:5228 readelf.c:5272
-msgid "dynamic section"
-msgstr "secþiune dinamicã"
-
-#: readelf.c:5349
-#, c-format
-msgid ""
-"\n"
-"There is no dynamic section in this file.\n"
-msgstr ""
-
-#: readelf.c:5387
-msgid "Unable to seek to end of file!"
-msgstr ""
-
-#: readelf.c:5400
-msgid "Unable to determine the number of symbols to load\n"
-msgstr ""
-
-#: readelf.c:5435
-msgid "Unable to seek to end of file\n"
-msgstr ""
-
-#: readelf.c:5442
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr ""
-
-#: readelf.c:5447
-msgid "dynamic string table"
-msgstr ""
-
-#: readelf.c:5482
-msgid "symbol information"
-msgstr ""
-
-#: readelf.c:5507
-#, c-format
-msgid ""
-"\n"
-"Dynamic section at offset 0x%lx contains %u entries:\n"
-msgstr ""
-
-#: readelf.c:5510
-#, c-format
-msgid " Tag Type Name/Value\n"
-msgstr ""
-
-#: readelf.c:5546
-#, c-format
-msgid "Auxiliary library"
-msgstr ""
-
-#: readelf.c:5550
-#, c-format
-msgid "Filter library"
-msgstr ""
-
-#: readelf.c:5554
-#, c-format
-msgid "Configuration file"
-msgstr "Fiºier de configurare"
-
-#: readelf.c:5558
-#, c-format
-msgid "Dependency audit library"
-msgstr ""
-
-#: readelf.c:5562
-#, c-format
-msgid "Audit library"
-msgstr ""
-
-#: readelf.c:5580 readelf.c:5608 readelf.c:5636
-#, c-format
-msgid "Flags:"
-msgstr "Atribute:"
-
-#: readelf.c:5583 readelf.c:5611 readelf.c:5638
-#, c-format
-msgid " None\n"
-msgstr "Nimic\n"
-
-#: readelf.c:5759
-#, c-format
-msgid "Shared library: [%s]"
-msgstr "Bibliotecã partajatã: [%s]"
-
-#: readelf.c:5762
-#, c-format
-msgid " program interpreter"
-msgstr " interpretor de programe"
-
-#: readelf.c:5766
-#, c-format
-msgid "Library soname: [%s]"
-msgstr ""
-
-#: readelf.c:5770
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr ""
-
-#: readelf.c:5774
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr "Cale de rulare bibliotecã: [%s]"
-
-#: readelf.c:5837
-#, c-format
-msgid "Not needed object: [%s]\n"
-msgstr ""
-
-#: readelf.c:5951
-#, c-format
-msgid ""
-"\n"
-"Version definition section '%s' contains %ld entries:\n"
-msgstr ""
-
-#: readelf.c:5954
-#, c-format
-msgid " Addr: 0x"
-msgstr ""
-
-#: readelf.c:5956 readelf.c:6148
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr ""
-
-#: readelf.c:5961
-msgid "version definition section"
-msgstr ""
-
-#: readelf.c:5987
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr " %#06x: Rev: %d Atribute: %s"
-
-#: readelf.c:5990
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr ""
-
-#: readelf.c:6001
-#, c-format
-msgid "Name: %s\n"
-msgstr "Nume: %s\n"
-
-#: readelf.c:6003
-#, c-format
-msgid "Name index: %ld\n"
-msgstr "Nume index: %ld\n"
-
-#: readelf.c:6018
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr " %#06x: Pãrinte %d: %s\n"
-
-#: readelf.c:6021
-#, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr ""
-
-#: readelf.c:6040
-#, c-format
-msgid ""
-"\n"
-"Version needs section '%s' contains %ld entries:\n"
-msgstr ""
-
-#: readelf.c:6043
-#, c-format
-msgid " Addr: 0x"
-msgstr " Addr: 0x"
-
-#: readelf.c:6045
-#, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr ""
-
-#: readelf.c:6050
-msgid "version need section"
-msgstr ""
-
-#: readelf.c:6072
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr ""
-
-#: readelf.c:6075
-#, c-format
-msgid " File: %s"
-msgstr " Fiºier: %s"
-
-#: readelf.c:6077
-#, c-format
-msgid " File: %lx"
-msgstr " Fiºier: %lx"
-
-#: readelf.c:6079
-#, c-format
-msgid " Cnt: %d\n"
-msgstr " Cnt: %d\n"
-
-#: readelf.c:6097
-#, c-format
-msgid " %#06x: Name: %s"
-msgstr " %#06x: Nume: %s"
-
-#: readelf.c:6100
-#, c-format
-msgid " %#06x: Name index: %lx"
-msgstr " %#06x: Nume index: %lx"
-
-#: readelf.c:6103
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr " Atribute: %s Versiune: %d\n"
-
-#: readelf.c:6139
-msgid "version string table"
-msgstr ""
-
-#: readelf.c:6143
-#, c-format
-msgid ""
-"\n"
-"Version symbols section '%s' contains %d entries:\n"
-msgstr ""
-
-#: readelf.c:6146
-#, c-format
-msgid " Addr: "
-msgstr " Addr: "
-
-#: readelf.c:6156
-msgid "version symbol data"
-msgstr ""
-
-#: readelf.c:6183
-msgid " 0 (*local*) "
-msgstr ""
-
-#: readelf.c:6187
-msgid " 1 (*global*) "
-msgstr ""
-
-#: readelf.c:6223 readelf.c:6677
-msgid "version need"
-msgstr ""
-
-#: readelf.c:6233
-msgid "version need aux (2)"
-msgstr ""
-
-#: readelf.c:6275 readelf.c:6740
-msgid "version def"
-msgstr ""
-
-#: readelf.c:6294 readelf.c:6755
-msgid "version def aux"
-msgstr ""
-
-#: readelf.c:6325
-#, c-format
-msgid ""
-"\n"
-"No version information found in this file.\n"
-msgstr ""
-
-#: readelf.c:6456
-msgid "Unable to read in dynamic data\n"
-msgstr ""
-
-#: readelf.c:6509
-msgid "Unable to seek to start of dynamic information"
-msgstr ""
-
-#: readelf.c:6515
-msgid "Failed to read in number of buckets\n"
-msgstr ""
-
-#: readelf.c:6521
-msgid "Failed to read in number of chains\n"
-msgstr ""
-
-#: readelf.c:6541
-#, c-format
-msgid ""
-"\n"
-"Symbol table for image:\n"
-msgstr ""
-
-#: readelf.c:6543
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:6545
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:6597
-#, c-format
-msgid ""
-"\n"
-"Symbol table '%s' contains %lu entries:\n"
-msgstr ""
-
-#: readelf.c:6601
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:6603
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:6649
-msgid "version data"
-msgstr ""
-
-#: readelf.c:6690
-msgid "version need aux (3)"
-msgstr ""
-
-#: readelf.c:6715
-msgid "bad dynamic symbol"
-msgstr ""
-
-#: readelf.c:6778
-#, c-format
-msgid ""
-"\n"
-"Dynamic symbol information is not available for displaying symbols.\n"
-msgstr ""
-
-#: readelf.c:6790
-#, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length (total of %lu buckets):\n"
-msgstr ""
-
-#: readelf.c:6792
-#, c-format
-msgid " Length Number %% of total Coverage\n"
-msgstr ""
-
-#: readelf.c:6797 readelf.c:6813 readelf.c:10967 readelf.c:11159
-msgid "Out of memory"
-msgstr ""
-
-#: readelf.c:6862
-#, c-format
-msgid ""
-"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr ""
-
-#: readelf.c:6865
-#, c-format
-msgid " Num: Name BoundTo Flags\n"
-msgstr ""
-
-#: readelf.c:6917
-#, c-format
-msgid ""
-"\n"
-"Assembly dump of section %s\n"
-msgstr ""
-
-#: readelf.c:6938
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no data to dump.\n"
-msgstr ""
-
-#: readelf.c:6943
-#, c-format
-msgid ""
-"\n"
-"Hex dump of section '%s':\n"
-msgstr ""
-
-#: readelf.c:7090
-msgid "badly formed extended line op encountered!\n"
-msgstr ""
-
-#: readelf.c:7097
-#, c-format
-msgid " Extended opcode %d: "
-msgstr ""
-
-#: readelf.c:7102
-#, c-format
-msgid ""
-"End of Sequence\n"
-"\n"
-msgstr ""
-
-#: readelf.c:7108
-#, c-format
-msgid "set Address to 0x%lx\n"
-msgstr ""
-
-#: readelf.c:7113
-#, c-format
-msgid " define new File Table entry\n"
-msgstr ""
-
-#: readelf.c:7114 readelf.c:9032
-#, c-format
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr ""
-
-#: readelf.c:7116
-#, c-format
-msgid " %d\t"
-msgstr ""
-
-#: readelf.c:7119 readelf.c:7121 readelf.c:7123 readelf.c:9044 readelf.c:9046
-#: readelf.c:9048
-#, c-format
-msgid "%lu\t"
-msgstr "%lu\t"
-
-#: readelf.c:7124
-#, c-format
-msgid ""
-"%s\n"
-"\n"
-msgstr ""
-
-#: readelf.c:7128
-#, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr ""
-
-#: readelf.c:7155
-msgid "debug_str section data"
-msgstr ""
-
-#: readelf.c:7173
-msgid "<no .debug_str section>"
-msgstr ""
-
-#: readelf.c:7176
-msgid "<offset is too big>"
-msgstr ""
-
-#: readelf.c:7201
-msgid "debug_loc section data"
-msgstr ""
-
-#: readelf.c:7235
-msgid "debug_range section data"
-msgstr "date secþiune debug_range"
-
-#: readelf.c:7307
-#, c-format
-msgid "%s: skipping unexpected symbol type %s in relocation in section .rela%s\n"
-msgstr ""
-
-#: readelf.c:7321
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela.%s\n"
-msgstr ""
-
-#: readelf.c:7565
-#, c-format
-msgid "Unknown TAG value: %lx"
-msgstr ""
-
-#: readelf.c:7601
-#, c-format
-msgid "Unknown FORM value: %lx"
-msgstr ""
-
-#: readelf.c:7610
-#, c-format
-msgid " %lu byte block: "
-msgstr ""
-
-#: readelf.c:7944
-#, c-format
-msgid "(User defined location op)"
-msgstr ""
-
-#: readelf.c:7946
-#, c-format
-msgid "(Unknown location op)"
-msgstr ""
-
-#: readelf.c:8015
-msgid "Internal error: DWARF version is not 2 or 3.\n"
-msgstr ""
-
-#: readelf.c:8113
-msgid "DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n"
-msgstr ""
-
-#: readelf.c:8162
-#, c-format
-msgid " (indirect string, offset: 0x%lx): %s"
-msgstr ""
-
-#: readelf.c:8171
-#, c-format
-msgid "Unrecognized form: %d\n"
-msgstr "Formã nerecunoscutã: %d\n"
-
-#: readelf.c:8256
-#, c-format
-msgid "(not inlined)"
-msgstr ""
-
-#: readelf.c:8259
-#, c-format
-msgid "(inlined)"
-msgstr ""
-
-#: readelf.c:8262
-#, c-format
-msgid "(declared as inline but ignored)"
-msgstr ""
-
-#: readelf.c:8265
-#, c-format
-msgid "(declared as inline and inlined)"
-msgstr ""
-
-#: readelf.c:8268
-#, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr ""
-
-#: readelf.c:8413 readelf.c:9537
-#, c-format
-msgid " [without DW_AT_frame_base]"
-msgstr ""
-
-#: readelf.c:8416
-#, c-format
-msgid "(location list)"
-msgstr ""
-
-#: readelf.c:8534
-#, c-format
-msgid "Unknown AT value: %lx"
-msgstr ""
-
-#: readelf.c:8602
-msgid "No comp units in .debug_info section ?"
-msgstr ""
-
-#: readelf.c:8611
-#, c-format
-msgid "Not enough memory for a debug info array of %u entries"
-msgstr ""
-
-#: readelf.c:8619 readelf.c:9630
-#, c-format
-msgid ""
-"The section %s contains:\n"
-"\n"
-msgstr ""
-
-#: readelf.c:8693
-#, c-format
-msgid " Compilation Unit @ %lx:\n"
-msgstr ""
-
-#: readelf.c:8694
-#, c-format
-msgid " Length: %ld\n"
-msgstr ""
-
-#: readelf.c:8695
-#, c-format
-msgid " Version: %d\n"
-msgstr ""
-
-#: readelf.c:8696
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr ""
-
-#: readelf.c:8697
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr ""
-
-#: readelf.c:8702
-msgid "Only version 2 and 3 DWARF debug information is currently supported.\n"
-msgstr ""
-
-#: readelf.c:8717
-msgid "Unable to locate .debug_abbrev section!\n"
-msgstr ""
-
-#: readelf.c:8722
-msgid "debug_abbrev section data"
-msgstr ""
-
-#: readelf.c:8759
-#, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr ""
-
-#: readelf.c:8765
-#, c-format
-msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
-msgstr ""
-
-#: readelf.c:8838
-#, c-format
-msgid "%s section needs a populated .debug_info section\n"
-msgstr ""
-
-#: readelf.c:8845
-#, c-format
-msgid "%s section has more comp units than .debug_info section\n"
-msgstr ""
-
-#: readelf.c:8847
-#, c-format
-msgid ""
-"assuming that the pointer size is %d, from the last comp unit in .debug_info\n"
-"\n"
-msgstr ""
-
-#: readelf.c:8891
-msgid "extracting information from .debug_info section"
-msgstr ""
-
-#: readelf.c:8909
-#, c-format
-msgid ""
-"\n"
-"Dump of debug contents of section %s:\n"
-"\n"
-msgstr ""
-
-#: readelf.c:8948
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr ""
-
-#: readelf.c:8957
-msgid "Only DWARF version 2 and 3 line info is currently supported.\n"
-msgstr ""
-
-#: readelf.c:8984
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Lungime: %ld\n"
-
-#: readelf.c:8985
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr " Versiune DWARF: %d\n"
-
-#: readelf.c:8986
-#, c-format
-msgid " Prologue Length: %d\n"
-msgstr ""
-
-#: readelf.c:8987
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr ""
-
-#: readelf.c:8988
-#, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr ""
-
-#: readelf.c:8989
-#, c-format
-msgid " Line Base: %d\n"
-msgstr " Ba Linie: %d\n"
-
-#: readelf.c:8990
-#, c-format
-msgid " Line Range: %d\n"
-msgstr " Interval Linie: %d\n"
-
-#: readelf.c:8991
-#, c-format
-msgid " Opcode Base: %d\n"
-msgstr " Bazã Opcode: %d\n"
-
-#: readelf.c:8992
-#, c-format
-msgid " (Pointer size: %u)\n"
-msgstr " (Dimensiune Pointer: %u)\n"
-
-#: readelf.c:9001
-#, c-format
-msgid ""
-"\n"
-" Opcodes:\n"
-msgstr ""
-"\n"
-" Opcode-uri:\n"
-
-#: readelf.c:9004
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr " Opcode %d are %d argumente\n"
-
-#: readelf.c:9010
-#, c-format
-msgid ""
-"\n"
-" The Directory Table is empty.\n"
-msgstr ""
-
-#: readelf.c:9013
-#, c-format
-msgid ""
-"\n"
-" The Directory Table:\n"
-msgstr ""
-"\n"
-" Tabelul Director:\n"
-
-#: readelf.c:9017
-#, c-format
-msgid " %s\n"
-msgstr " %s\n"
-
-#: readelf.c:9028
-#, c-format
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr ""
-
-#: readelf.c:9031
-#, c-format
-msgid ""
-"\n"
-" The File Name Table:\n"
-msgstr ""
-
-#: readelf.c:9039
-#, c-format
-msgid " %d\t"
-msgstr ""
-
-#: readelf.c:9050
-#, c-format
-msgid "%s\n"
-msgstr ""
-
-#. Now display the statements.
-#: readelf.c:9058
-#, c-format
-msgid ""
-"\n"
-" Line Number Statements:\n"
-msgstr ""
-
-#: readelf.c:9073
-#, c-format
-msgid " Special opcode %d: advance Address by %d to 0x%lx"
-msgstr ""
-
-#: readelf.c:9077
-#, c-format
-msgid " and Line by %d to %d\n"
-msgstr ""
-
-#: readelf.c:9088
-#, c-format
-msgid " Copy\n"
-msgstr "Copiazã\n"
-
-#: readelf.c:9095
-#, c-format
-msgid " Advance PC by %d to %lx\n"
-msgstr ""
-
-#: readelf.c:9103
-#, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr ""
-
-#: readelf.c:9110
-#, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr ""
-
-#: readelf.c:9118
-#, c-format
-msgid " Set column to %d\n"
-msgstr ""
-
-#: readelf.c:9125
-#, c-format
-msgid " Set is_stmt to %d\n"
-msgstr ""
-
-#: readelf.c:9130
-#, c-format
-msgid " Set basic block\n"
-msgstr ""
-
-#: readelf.c:9138
-#, c-format
-msgid " Advance PC by constant %d to 0x%lx\n"
-msgstr ""
-
-#: readelf.c:9146
-#, c-format
-msgid " Advance PC by fixed size amount %d to 0x%lx\n"
-msgstr ""
-
-#: readelf.c:9151
-#, c-format
-msgid " Set prologue_end to true\n"
-msgstr ""
-
-#: readelf.c:9155
-#, c-format
-msgid " Set epilogue_begin to true\n"
-msgstr ""
-
-#: readelf.c:9161
-#, c-format
-msgid " Set ISA to %d\n"
-msgstr ""
-
-#: readelf.c:9165
-#, c-format
-msgid " Unknown opcode %d with operands: "
-msgstr ""
-
-#: readelf.c:9193 readelf.c:9279 readelf.c:9354
-#, c-format
-msgid ""
-"Contents of the %s section:\n"
-"\n"
-msgstr ""
-
-#: readelf.c:9233
-msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
-msgstr ""
-
-#: readelf.c:9240
-#, c-format
-msgid " Length: %ld\n"
-msgstr ""
-
-#: readelf.c:9242
-#, c-format
-msgid " Version: %d\n"
-msgstr ""
-
-#: readelf.c:9244
-#, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr ""
-
-#: readelf.c:9246
-#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr ""
-
-#: readelf.c:9249
-#, c-format
-msgid ""
-"\n"
-" Offset\tName\n"
-msgstr ""
-
-#: readelf.c:9300
-#, c-format
-msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr ""
-
-#: readelf.c:9306
-#, c-format
-msgid " DW_MACINFO_end_file\n"
-msgstr ""
-
-#: readelf.c:9314
-#, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr ""
-
-#: readelf.c:9323
-#, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr ""
-
-#: readelf.c:9335
-#, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr ""
-
-#: readelf.c:9363
-#, c-format
-msgid " Number TAG\n"
-msgstr ""
-
-#: readelf.c:9369
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr ""
-
-#: readelf.c:9372
-msgid "has children"
-msgstr ""
-
-#: readelf.c:9372
-msgid "no children"
-msgstr ""
-
-#: readelf.c:9375
-#, c-format
-msgid " %-18s %s\n"
-msgstr ""
-
-#: readelf.c:9410
-#, c-format
-msgid ""
-"\n"
-"The .debug_loc section is empty.\n"
-msgstr ""
-
-#. FIXME: Should we handle this case?
-#: readelf.c:9455
-msgid "Location lists in .debug_info section aren't in ascending order!\n"
-msgstr ""
-
-#: readelf.c:9458
-msgid "No location lists in .debug_info section!\n"
-msgstr ""
-
-#: readelf.c:9461
-#, c-format
-msgid "Location lists in .debug_loc section start at 0x%lx\n"
-msgstr ""
-
-#: readelf.c:9464
-#, c-format
-msgid ""
-"Contents of the .debug_loc section:\n"
-"\n"
-msgstr ""
-
-#: readelf.c:9465
-#, c-format
-msgid " Offset Begin End Expression\n"
-msgstr ""
-
-#: readelf.c:9495
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr ""
-
-#: readelf.c:9498
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr ""
-
-#: readelf.c:9512 readelf.c:9837
-#, c-format
-msgid " %8.8lx <End of list>\n"
-msgstr ""
-
-#: readelf.c:9540 readelf.c:9854
-msgid " (start == end)"
-msgstr ""
-
-#: readelf.c:9542 readelf.c:9856
-msgid " (start > end)"
-msgstr ""
-
-#: readelf.c:9566
-#, c-format
-msgid ""
-"\n"
-"The .debug_str section is empty.\n"
-msgstr ""
-
-#: readelf.c:9570
-#, c-format
-msgid ""
-"Contents of the .debug_str section:\n"
-"\n"
-msgstr ""
-
-#: readelf.c:9675
-msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
-msgstr ""
-
-#: readelf.c:9679
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Lungime: %ld\n"
-
-#: readelf.c:9680
-#, c-format
-msgid " Version: %d\n"
-msgstr " Versiune: %d\n"
-
-#: readelf.c:9681
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr ""
-
-#: readelf.c:9682
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr ""
-
-#: readelf.c:9683
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr ""
-
-#: readelf.c:9685
-#, c-format
-msgid ""
-"\n"
-" Address Length\n"
-msgstr ""
-
-#: readelf.c:9741
-#, c-format
-msgid ""
-"\n"
-"The .debug_ranges section is empty.\n"
-msgstr ""
-
-#. FIXME: Should we handle this case?
-#: readelf.c:9786
-msgid "Range lists in .debug_info section aren't in ascending order!\n"
-msgstr ""
-
-#: readelf.c:9789
-msgid "No range lists in .debug_info section!\n"
-msgstr ""
-
-#: readelf.c:9792
-#, c-format
-msgid "Range lists in .debug_ranges section start at 0x%lx\n"
-msgstr ""
-
-#: readelf.c:9795
-#, c-format
-msgid ""
-"Contents of the .debug_ranges section:\n"
-"\n"
-msgstr ""
-
-#: readelf.c:9796
-#, c-format
-msgid " Offset Begin End\n"
-msgstr ""
-
-#: readelf.c:9820
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_ranges section.\n"
-msgstr ""
-
-#: readelf.c:9823
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_ranges section.\n"
-msgstr ""
-
-#: readelf.c:10017
-#, c-format
-msgid "The section %s contains:\n"
-msgstr ""
-
-#: readelf.c:10663
-#, c-format
-msgid "unsupported or unknown DW_CFA_%d\n"
-msgstr ""
-
-#: readelf.c:10688
-#, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr ""
-
-#: readelf.c:10732
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no debugging data.\n"
-msgstr ""
-
-#: readelf.c:10746
-msgid "debug section data"
-msgstr "date secþiune depanare"
-
-#: readelf.c:10765
-#, c-format
-msgid "Unrecognized debug section: %s\n"
-msgstr "Secþiune depanare nerecunoscutã: %s\n"
-
-#: readelf.c:10800
-#, c-format
-msgid "Section %d was not dumped because it does not exist!\n"
-msgstr ""
-
-#: readelf.c:10872 readelf.c:11236
-msgid "liblist"
-msgstr ""
-
-#: readelf.c:10961
-msgid "options"
-msgstr "opþiuni"
-
-#: readelf.c:10991
-#, c-format
-msgid ""
-"\n"
-"Section '%s' contains %d entries:\n"
-msgstr ""
-
-#: readelf.c:11152
-msgid "conflict list found without a dynamic symbol table"
-msgstr ""
-
-#: readelf.c:11168 readelf.c:11182
-msgid "conflict"
-msgstr ""
-
-#: readelf.c:11192
-#, c-format
-msgid ""
-"\n"
-"Section '.conflict' contains %lu entries:\n"
-msgstr ""
-
-#: readelf.c:11194
-msgid " Num: Index Value Name"
-msgstr ""
-
-#: readelf.c:11243
-msgid "liblist string table"
-msgstr ""
-
-#: readelf.c:11252
-#, c-format
-msgid ""
-"\n"
-"Library list section '%s' contains %lu entries:\n"
-msgstr ""
-
-#: readelf.c:11303
-msgid "NT_AUXV (auxiliary vector)"
-msgstr ""
-
-#: readelf.c:11305
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr ""
-
-#: readelf.c:11307
-msgid "NT_FPREGSET (floating point registers)"
-msgstr ""
-
-#: readelf.c:11309
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr ""
-
-#: readelf.c:11311
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr ""
-
-#: readelf.c:11313
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr ""
-
-#: readelf.c:11315
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr ""
-
-#: readelf.c:11317
-msgid "NT_FPREGS (floating point registers)"
-msgstr ""
-
-#: readelf.c:11319
-msgid "NT_PSINFO (psinfo structure)"
-msgstr ""
-
-#: readelf.c:11321
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr ""
-
-#: readelf.c:11323
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr ""
-
-#: readelf.c:11325
-msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
-msgstr ""
-
-#: readelf.c:11333
-msgid "NT_VERSION (version)"
-msgstr ""
-
-#: readelf.c:11335
-msgid "NT_ARCH (architecture)"
-msgstr ""
-
-#: readelf.c:11340 readelf.c:11362
-#, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr ""
-
-#. NetBSD core "procinfo" structure.
-#: readelf.c:11352
-msgid "NetBSD procinfo structure"
-msgstr ""
-
-#: readelf.c:11379 readelf.c:11393
-msgid "PT_GETREGS (reg structure)"
-msgstr ""
-
-#: readelf.c:11381 readelf.c:11395
-msgid "PT_GETFPREGS (fpreg structure)"
-msgstr ""
-
-#: readelf.c:11401
-#, c-format
-msgid "PT_FIRSTMACH+%d"
-msgstr ""
-
-#: readelf.c:11447
-msgid "notes"
-msgstr "note"
-
-#: readelf.c:11453
-#, c-format
-msgid ""
-"\n"
-"Notes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr ""
-
-#: readelf.c:11455
-#, c-format
-msgid " Owner\t\tData size\tDescription\n"
-msgstr ""
-
-#: readelf.c:11474
-#, c-format
-msgid "corrupt note found at offset %x into core notes\n"
-msgstr ""
-
-#: readelf.c:11476
-#, c-format
-msgid " type: %x, namesize: %08lx, descsize: %08lx\n"
-msgstr ""
-
-#: readelf.c:11574
-#, c-format
-msgid "No note segments present in the core file.\n"
-msgstr ""
-
-#: readelf.c:11653
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr ""
-
-#: readelf.c:11700 readelf.c:12059
-#, c-format
-msgid "%s: Failed to read file header\n"
-msgstr ""
-
-#: readelf.c:11713
-#, c-format
-msgid ""
-"\n"
-"File: %s\n"
-msgstr ""
-"\n"
-"Fiºier: %s\n"
-
-#: readelf.c:11876 readelf.c:11897 readelf.c:11934 readelf.c:12014
-#, c-format
-msgid "%s: failed to read archive header\n"
-msgstr ""
-
-#: readelf.c:11887
-#, c-format
-msgid "%s: failed to skip archive symbol table\n"
-msgstr ""
-
-#: readelf.c:11919
-#, c-format
-msgid "%s: failed to read string table\n"
-msgstr ""
-
-#: readelf.c:11955
-#, c-format
-msgid "%s: invalid archive string table offset %lu\n"
-msgstr ""
-
-#: readelf.c:11971
-#, c-format
-msgid "%s: bad archive file name\n"
-msgstr ""
-
-#: readelf.c:12003
-#, c-format
-msgid "%s: failed to seek to next archive header\n"
-msgstr ""
-
-#: readelf.c:12037
-#, c-format
-msgid "'%s': No such file\n"
-msgstr ""
-
-#: readelf.c:12039
-#, c-format
-msgid "Could not locate '%s'. System error message: %s\n"
-msgstr ""
-
-#: readelf.c:12046
-#, c-format
-msgid "'%s' is not an ordinary file\n"
-msgstr "'%s' nu este un fiºier obiºnuit\n"
-
-#: readelf.c:12053
-#, c-format
-msgid "Input file '%s' is not readable.\n"
-msgstr ""
-
-#: rename.c:127
-#, c-format
-msgid "%s: cannot set time: %s"
-msgstr "%s: nu pot seta timpul: %s"
-
-#. We have to clean up here.
-#: rename.c:162 rename.c:200
-#, c-format
-msgid "unable to rename '%s' reason: %s"
-msgstr "nu pot redenumi '%s' motiv: %s"
-
-#: rename.c:208
-#, c-format
-msgid "unable to copy file '%s' reason: %s"
-msgstr "nu pot copia fiºierul '%s' motiv: %s"
-
-#: resbin.c:132
-#, c-format
-msgid "%s: not enough binary data"
-msgstr ""
-
-#: resbin.c:148
-msgid "null terminated unicode string"
-msgstr ""
-
-#: resbin.c:175 resbin.c:181
-msgid "resource ID"
-msgstr ""
-
-#: resbin.c:221
-msgid "cursor"
-msgstr ""
-
-#: resbin.c:253 resbin.c:260
-msgid "menu header"
-msgstr ""
-
-#: resbin.c:270
-msgid "menuex header"
-msgstr ""
-
-#: resbin.c:274
-msgid "menuex offset"
-msgstr ""
-
-#: resbin.c:281
-#, c-format
-msgid "unsupported menu version %d"
-msgstr ""
-
-#: resbin.c:306 resbin.c:321 resbin.c:384
-msgid "menuitem header"
-msgstr ""
-
-#: resbin.c:414
-msgid "menuitem"
-msgstr "articol-meniu"
-
-#: resbin.c:453 resbin.c:481
-msgid "dialog header"
-msgstr "antet dialog"
-
-#: resbin.c:471
-#, c-format
-msgid "unexpected DIALOGEX version %d"
-msgstr ""
-
-#: resbin.c:516
-msgid "dialog font point size"
-msgstr ""
-
-#: resbin.c:524
-msgid "dialogex font information"
-msgstr ""
-
-#: resbin.c:550 resbin.c:568
-msgid "dialog control"
-msgstr ""
-
-#: resbin.c:560
-msgid "dialogex control"
-msgstr ""
-
-#: resbin.c:589
-msgid "dialog control end"
-msgstr ""
-
-#: resbin.c:601
-msgid "dialog control data"
-msgstr ""
-
-#: resbin.c:642
-msgid "stringtable string length"
-msgstr ""
-
-#: resbin.c:652
-msgid "stringtable string"
-msgstr ""
-
-#: resbin.c:683
-msgid "fontdir header"
-msgstr ""
-
-#: resbin.c:696
-msgid "fontdir"
-msgstr ""
-
-#: resbin.c:712
-msgid "fontdir device name"
-msgstr ""
-
-#: resbin.c:718
-msgid "fontdir face name"
-msgstr "nume faþã fontdir"
-
-#: resbin.c:759
-msgid "accelerator"
-msgstr "accelerator"
-
-#: resbin.c:819
-msgid "group cursor header"
-msgstr ""
-
-#: resbin.c:823
-#, c-format
-msgid "unexpected group cursor type %d"
-msgstr ""
-
-#: resbin.c:838
-msgid "group cursor"
-msgstr ""
-
-#: resbin.c:875
-msgid "group icon header"
-msgstr ""
-
-#: resbin.c:879
-#, c-format
-msgid "unexpected group icon type %d"
-msgstr ""
-
-#: resbin.c:894
-msgid "group icon"
-msgstr "grup pictogramã"
-
-#: resbin.c:957 resbin.c:1174
-msgid "unexpected version string"
-msgstr ""
-
-#: resbin.c:989
-#, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr ""
-
-#: resbin.c:993
-#, c-format
-msgid "unexpected version type %d"
-msgstr ""
-
-#: resbin.c:1005
-#, c-format
-msgid "unexpected fixed version information length %d"
-msgstr ""
-
-#: resbin.c:1008
-msgid "fixed version info"
-msgstr ""
-
-#: resbin.c:1012
-#, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr ""
-
-#: resbin.c:1016
-#, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr ""
-
-#: resbin.c:1045
-msgid "version var info"
-msgstr ""
-
-#: resbin.c:1062
-#, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr ""
-
-#: resbin.c:1072
-#, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr ""
-
-#: resbin.c:1106
-#, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr ""
-
-#: resbin.c:1117
-#, c-format
-msgid "unexpected version string length %d < %d"
-msgstr ""
-
-#: resbin.c:1134
-#, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr ""
-
-#: resbin.c:1153
-msgid "version varfileinfo"
-msgstr ""
-
-#: resbin.c:1168
-#, c-format
-msgid "unexpected version value length %d"
-msgstr ""
-
-#: rescoff.c:126
-msgid "filename required for COFF input"
-msgstr ""
-
-#: rescoff.c:143
-#, c-format
-msgid "%s: no resource section"
-msgstr ""
-
-#: rescoff.c:150
-msgid "can't read resource section"
-msgstr ""
-
-#: rescoff.c:174
-#, c-format
-msgid "%s: %s: address out of bounds"
-msgstr ""
-
-#: rescoff.c:190
-msgid "directory"
-msgstr "director"
-
-#: rescoff.c:218
-msgid "named directory entry"
-msgstr "intrare directorul numit"
-
-#: rescoff.c:227
-msgid "directory entry name"
-msgstr ""
-
-#: rescoff.c:247
-msgid "named subdirectory"
-msgstr "subdirectorul numit"
-
-#: rescoff.c:255
-msgid "named resource"
-msgstr "resursã numitã"
-
-#: rescoff.c:270
-msgid "ID directory entry"
-msgstr "intrare director ID"
-
-#: rescoff.c:287
-msgid "ID subdirectory"
-msgstr "subdirector ID"
-
-#: rescoff.c:295
-msgid "ID resource"
-msgstr "resursã ID"
-
-#: rescoff.c:318
-msgid "resource type unknown"
-msgstr ""
-
-#: rescoff.c:321
-msgid "data entry"
-msgstr ""
-
-#: rescoff.c:329
-msgid "resource data"
-msgstr ""
-
-#: rescoff.c:334
-msgid "resource data size"
-msgstr ""
-
-#: rescoff.c:427
-msgid "filename required for COFF output"
-msgstr ""
-
-#: rescoff.c:719
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr ""
-
-#: resrc.c:238 resrc.c:309
-#, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr "nu pot deschide fiºierul temporar `%s': %s"
-
-#: resrc.c:244
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr ""
-
-#: resrc.c:260
-#, c-format
-msgid "%s %s: %s"
-msgstr "%s %s: %s"
-
-#: resrc.c:305
-#, c-format
-msgid "can't execute `%s': %s"
-msgstr "nu pot executa `%s': %s"
-
-#: resrc.c:314
-#, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr ""
-
-#: resrc.c:321
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr "nu pot popen `%s': %s"
-
-#: resrc.c:323
-#, c-format
-msgid "Using popen to read preprocessor output\n"
-msgstr ""
-
-#: resrc.c:362
-#, c-format
-msgid "Tried `%s'\n"
-msgstr ""
-
-#: resrc.c:373
-#, c-format
-msgid "Using `%s'\n"
-msgstr "Folosesc `%s'\n"
-
-#: resrc.c:529
-#, c-format
-msgid "%s:%d: %s\n"
-msgstr "%s:%d: %s\n"
-
-#: resrc.c:537
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr ""
-
-#: resrc.c:586
-#, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr ""
-
-#: resrc.c:624 resrc.c:1134
-#, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr ""
-
-#: resrc.c:675
-#, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr ""
-
-#: resrc.c:707 resrc.c:1003
-#, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr ""
-
-#: resrc.c:831
-msgid "help ID requires DIALOGEX"
-msgstr ""
-
-#: resrc.c:833
-msgid "control data requires DIALOGEX"
-msgstr ""
-
-#: resrc.c:861
-#, c-format
-msgid "stat failed on font file `%s': %s"
-msgstr "stat a eºuat pentru fiºierul de font `%s': %s"
-
-#: resrc.c:972
-#, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr "fiºier pictogramã `%s' nu conþine date pictogramã"
-
-#: resrc.c:1273 resrc.c:1308
-#, c-format
-msgid "stat failed on file `%s': %s"
-msgstr "stat a eºuat pentru fiºierul `%s': %s"
-
-#: resrc.c:1494
-#, c-format
-msgid "can't open `%s' for output: %s"
-msgstr ""
-
-#: size.c:81
-#, c-format
-msgid " Displays the sizes of sections inside binary files\n"
-msgstr ""
-
-#: size.c:82
-#, c-format
-msgid " If no input file(s) are specified, a.out is assumed\n"
-msgstr ""
-
-#: size.c:83
-#, c-format
-msgid ""
-" The options are:\n"
-" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
-" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n"
-" -t --totals Display the total sizes (Berkeley only)\n"
-" --target=<bfdname> Set the binary file format\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-
-#: size.c:153
-#, c-format
-msgid "invalid argument to --format: %s"
-msgstr "argument invalid pentru --format: %s"
-
-#: size.c:180
-#, c-format
-msgid "Invalid radix: %s\n"
-msgstr "Rdãcinã (radix) invalidã: %s\n"
-
-#: srconv.c:1722
-#, c-format
-msgid "Convert a COFF object file into a SYSROFF object file\n"
-msgstr ""
-
-#: srconv.c:1723
-#, c-format
-msgid ""
-" The options are:\n"
-" -q --quick (Obsolete - ignored)\n"
-" -n --noprescan Do not perform a scan to convert commons into defs\n"
-" -d --debug Display information about what is being done\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-
-#: srconv.c:1866
-#, c-format
-msgid "unable to open output file %s"
-msgstr "nu pot deschide fiºierul de ieºire %s"
-
-#: stabs.c:330 stabs.c:1708
-msgid "numeric overflow"
-msgstr ""
-
-#: stabs.c:340
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr ""
-
-#: stabs.c:348
-#, c-format
-msgid "Warning: %s: %s\n"
-msgstr "Avertisment: %s: %s\n"
-
-#: stabs.c:458
-#, c-format
-msgid "N_LBRAC not within function\n"
-msgstr ""
-
-#: stabs.c:497
-#, c-format
-msgid "Too many N_RBRACs\n"
-msgstr ""
-
-#: stabs.c:738
-msgid "unknown C++ encoded name"
-msgstr ""
-
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1253
-msgid "unrecognized cross reference type"
-msgstr "tip referinþã încruciºatã nerecunoscutã"
-
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1800
-msgid "missing index type"
-msgstr ""
-
-#: stabs.c:2114
-msgid "unknown virtual character for baseclass"
-msgstr ""
-
-#: stabs.c:2132
-msgid "unknown visibility character for baseclass"
-msgstr ""
-
-#: stabs.c:2318
-msgid "unnamed $vb type"
-msgstr "Tip $vb fãrã nume"
-
-#: stabs.c:2324
-msgid "unrecognized C++ abbreviation"
-msgstr ""
-
-#: stabs.c:2400
-msgid "unknown visibility character for field"
-msgstr ""
-
-#: stabs.c:2652
-msgid "const/volatile indicator missing"
-msgstr ""
-
-#: stabs.c:2888
-#, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr ""
-
-#: stabs.c:3188
-msgid "Undefined N_EXCL"
-msgstr ""
-
-#: stabs.c:3268
-#, c-format
-msgid "Type file number %d out of range\n"
-msgstr ""
-
-#: stabs.c:3273
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr "Numãr index tip %d în afara domeniului\n"
-
-#: stabs.c:3352
-#, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr ""
-
-#: stabs.c:3644
-#, c-format
-msgid "bad mangled name `%s'\n"
-msgstr ""
-
-#: stabs.c:3739
-#, c-format
-msgid "no argument types in mangled string\n"
-msgstr ""
-
-#: stabs.c:5093
-#, c-format
-msgid "Demangled name is not a function\n"
-msgstr ""
-
-#: stabs.c:5135
-#, c-format
-msgid "Unexpected type in v3 arglist demangling\n"
-msgstr ""
-
-#: stabs.c:5202
-#, c-format
-msgid "Unrecognized demangle component %d\n"
-msgstr ""
-
-#: stabs.c:5254
-#, c-format
-msgid "Failed to print demangled template\n"
-msgstr ""
-
-#: stabs.c:5334
-#, c-format
-msgid "Couldn't get demangled builtin type\n"
-msgstr ""
-
-#: stabs.c:5383
-#, c-format
-msgid "Unexpected demangled varargs\n"
-msgstr ""
-
-#: stabs.c:5390
-#, c-format
-msgid "Unrecognized demangled builtin type\n"
-msgstr ""
-
-#: strings.c:206
-#, c-format
-msgid "invalid number %s"
-msgstr "numãr invalid %s"
-
-#: strings.c:643
-#, c-format
-msgid "invalid integer argument %s"
-msgstr "argument întreg invalid %s"
-
-#: strings.c:652
-#, c-format
-msgid " Display printable strings in [file(s)] (stdin by default)\n"
-msgstr ""
-
-#: strings.c:653
-#, c-format
-msgid ""
-" The options are:\n"
-" -a - --all Scan the entire file, not just the data section\n"
-" -f --print-file-name Print the name of the file before each string\n"
-" -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n"
-" -<number> least [number] characters (default 4).\n"
-" -t --radix={o,d,x} Print the location of the string in base 8, 10 or 16\n"
-" -o An alias for --radix=o\n"
-" -T --target=<BFDNAME> Specify the binary file format\n"
-" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
-" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-
-#: sysdump.c:649
-#, c-format
-msgid "Print a human readable interpretation of a SYSROFF object file\n"
-msgstr ""
-
-#: sysdump.c:650
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-
-#: sysdump.c:715
-#, c-format
-msgid "cannot open input file %s"
-msgstr "nu pot deschide fiºierul de intrare %s"
-
-#: version.c:35
-#, c-format
-msgid "Copyright 2005 Free Software Foundation, Inc.\n"
-msgstr "Copyright 2005 Free Software Foundation, Inc.\n"
-
-#: version.c:36
-#, c-format
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr ""
-
-#: windres.c:204
-#, c-format
-msgid "can't open %s `%s': %s"
-msgstr "nu pot deschide %s `%s': %s"
-
-#: windres.c:370
-#, c-format
-msgid ": expected to be a directory\n"
-msgstr ": am aºteptat sã fie un director\n"
-
-#: windres.c:382
-#, c-format
-msgid ": expected to be a leaf\n"
-msgstr ""
-
-#: windres.c:391
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: avertisment: "
-
-#: windres.c:393
-#, c-format
-msgid ": duplicate value\n"
-msgstr ""
-
-#: windres.c:543
-#, c-format
-msgid "unknown format type `%s'"
-msgstr "tip format necunoscut `%s'"
-
-#: windres.c:544
-#, c-format
-msgid "%s: supported formats:"
-msgstr ""
-
-#. Otherwise, we give up.
-#: windres.c:627
-#, c-format
-msgid "can not determine type of file `%s'; use the -J option"
-msgstr ""
-
-#: windres.c:639
-#, c-format
-msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
-msgstr ""
-
-#: windres.c:641
-#, c-format
-msgid ""
-" The options are:\n"
-" -i --input=<file> Name input file\n"
-" -o --output=<file> Name output file\n"
-" -J --input-format=<format> Specify input format\n"
-" -O --output-format=<format> Specify output format\n"
-" -F --target=<target> Specify COFF target\n"
-" --preprocessor=<program> Program to use to preprocess rc file\n"
-" -I --include-dir=<dir> Include directory when preprocessing rc file\n"
-" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
-" -U --undefine <sym> Undefine SYM when preprocessing rc file\n"
-" -v --verbose Verbose - tells you what it's doing\n"
-" -l --language=<val> Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr ""
-
-#: windres.c:657
-#, c-format
-msgid " --yydebug Turn on parser debugging\n"
-msgstr ""
-
-#: windres.c:660
-#, c-format
-msgid ""
-" -r Ignored for compatibility with rc\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-
-#: windres.c:664
-#, c-format
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr ""
-
-#: windres.c:800
-msgid "invalid option -f\n"
-msgstr "opþiune invalidã -f\n"
-
-#: windres.c:805
-msgid "No filename following the -fo option.\n"
-msgstr ""
-
-#: windres.c:863
-#, c-format
-msgid "Option -I is deprecated for setting the input format, please use -J instead.\n"
-msgstr ""
-
-#: windres.c:981
-msgid "no resources"
-msgstr "nici o resursã"
-
-#: wrstabs.c:354 wrstabs.c:1915
-#, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr ""
-
-#: wrstabs.c:635
-#, c-format
-msgid "stab_int_type: bad size %u"
-msgstr ""
-
-#: wrstabs.c:1393
-#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr ""
diff --git a/binutils-2.17/binutils/po/ru.gmo b/binutils-2.17/binutils/po/ru.gmo
deleted file mode 100644
index 88eb5d30..00000000
--- a/binutils-2.17/binutils/po/ru.gmo
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/po/ru.po b/binutils-2.17/binutils/po/ru.po
deleted file mode 100644
index 9f654e3d..00000000
--- a/binutils-2.17/binutils/po/ru.po
+++ /dev/null
@@ -1,5612 +0,0 @@
-# Translation of binutils-2.16.93.po to Russian
-# Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc.
-# This file is distributed under the same license as the binutils package.
-#
-# Pavel Maryanov <acid_jack@ukr.net>, 2003, 2005, 2006.
-msgid ""
-msgstr ""
-"Project-Id-Version: binutils-2.16.93\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-25 09:14+0930\n"
-"PO-Revision-Date: 2006-05-22 14:32+0300\n"
-"Last-Translator: Pavel Maryanov <acid_jack@ukr.net>\n"
-"Language-Team: Russian <ru@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=KOI8-R\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.2\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: addr2line.c:76
-#, c-format
-msgid "Usage: %s [option(s)] [addr(s)]\n"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ÏÐÃÉÉ] [ÁÄÒÅÓ(Á)]\n"
-
-#: addr2line.c:77
-#, c-format
-msgid " Convert addresses into line number/file name pairs.\n"
-msgstr "ëÏÎ×ÅÒÔÉÒÕÅÔ ÁÄÒÅÓÁ × ÐÁÒÙ ÎÏÍÅÒ_ÓÔÒÏËÉ/ÉÍÑ_ÆÁÊÌÁ.\n"
-
-#: addr2line.c:78
-#, c-format
-msgid " If no addresses are specified on the command line, they will be read from stdin\n"
-msgstr " åÓÌÉ ÁÄÒÅÓÁ ÎÅ ÕËÁÚÁÎÙ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ, ÏÎÉ ÂÕÄÕÔ ÐÒÏÞÉÔÁÎÙ ÉÚ stdin\n"
-
-#: addr2line.c:79
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -b --target=<bfdname> Set the binary file format\n"
-" -e --exe=<executable> Set the input file name (default is a.out)\n"
-" -i --inlines\t\t Unwind inlined functions\n"
-" -s --basenames Strip directory names\n"
-" -f --functions Show function names\n"
-" -C --demangle[=style] Demangle function names\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" ïÐÃÉÉ:\n"
-" @<ÆÁÊÌ> þÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>\n"
-" -b --target=<bfd-ÉÍÑ> õÓÔÁÎÏ×ÉÔØ ÆÏÒÍÁÔ Ä×ÏÉÞÎÏÇÏ ÆÁÊÌÁ\n"
-" -e --exe=<exe'ÛÎÉË> õÓÔÁÎÏ×ÉÔØ ÉÍÑ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÉÓÐÏÌØÚÕÅÔÓÑ a.out)\n"
-" -s --basenames ÷ÙÄÅÌÉÔØ ÉÍÅÎÁ ËÁÔÁÌÏÇÏ×\n"
-" -f --functions ðÏËÁÚÁÔØ ÉÍÅÎÁ ÆÕÎËÃÉÊ\n"
-" -C --demangle[=ÓÔÉÌØ] äÅËÏÄÉÒÏ×ÁÔØ ÉÍÅÎÁ ÆÕÎËÃÉÊ\n"
-" -h --help ðÏËÁÚÁÔØ ÜÔÕ ÉÎÆÏÒÍÁÃÉÀ\n"
-" -v --version ðÏËÁÚÁÔØ ×ÅÒÓÉÀ ÐÒÏÇÒÁÍÍÙ\n"
-"\n"
-
-#: addr2line.c:93 ar.c:263 coffdump.c:466 nlmconv.c:1113 objcopy.c:486
-#: objcopy.c:520 readelf.c:2622 size.c:102 srconv.c:1732 strings.c:725
-#: sysdump.c:648 windres.c:673
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr "ïÔÞ£ÔÙ Ï ÏÛÉÂËÁÈ ÏÔÐÒÁ×ÌÑÊÔÅ × %s\n"
-
-#: addr2line.c:253
-#, c-format
-msgid "%s: can not get addresses from archive"
-msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÁÄÒÅÓÁ ÉÚ ÁÒÈÉ×Á"
-
-#: addr2line.c:325 nm.c:1523 objdump.c:3033
-#, c-format
-msgid "unknown demangling style `%s'"
-msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÓÔÉÌØ ÄÅËÏÄÉÒÏ×ÁÎÉÑ `%s'"
-
-#: ar.c:203
-#, c-format
-msgid "no entry %s in archive\n"
-msgstr "× ÁÒÈÉ×Å ÎÅÔ ÐÕÎËÔÁ %s\n"
-
-#: ar.c:219
-#, c-format
-msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"
-msgstr ""
-"éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ÏÐÃÉÉ ÜÍÕÌÑÃÉÉ] [-]{dmpqrstx}[abcfilNoPsSuvV] [ÉÍÑ_ÞÌÅÎÁ]\n"
-" [ÓÞÅÔ] ÆÁÊÌ_ÁÒÈÉ×Á ÆÁÊÌ...\n"
-
-#: ar.c:222
-#, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr " %s -M [<mri-ÓËÒÉÐÔ]\n"
-
-#: ar.c:223
-#, c-format
-msgid " commands:\n"
-msgstr " ËÏÍÁÎÄÙ:\n"
-
-#: ar.c:224
-#, c-format
-msgid " d - delete file(s) from the archive\n"
-msgstr " d - ÕÄÁÌÅÎÉÅ ÆÁÊÌÏ× ÉÚ ÁÒÈÉ×Á\n"
-
-#: ar.c:225
-#, c-format
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr " m[ab] - ÐÅÒÅÍÅÝÅÎÉÅ ÆÁÊÌÏ× × ÁÒÈÉ×\n"
-
-#: ar.c:226
-#, c-format
-msgid " p - print file(s) found in the archive\n"
-msgstr " p - ×Ù×ÏÄ ÆÁÊÌÏ×, ÎÁÊÄÅÎÎÙÈ × ÁÒÈÉ×Å\n"
-
-#: ar.c:227
-#, c-format
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr " q[f] - ÂÙÓÔÒÏÅ ÄÏÂÁ×ÌÅÎÉÅ ÆÁÊÌÏ× × ÁÒÈÉ×\n"
-
-#: ar.c:228
-#, c-format
-msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr " r[ab][f][u] - ÚÁÍÅÎÁ ÓÕÝÅÓÔ×ÕÀÝÉÈ ÉÌÉ ×ÓÔÁ×ËÁ ÎÏ×ÙÈ ÆÁÊÌÏ× × ÁÒÈÉ×\n"
-
-#: ar.c:229
-#, c-format
-msgid " t - display contents of archive\n"
-msgstr " t - ÏÔÏÂÒÁÖÅÎÉÅ ÓÏÄÅÒÖÉÍÏÇÏ ÁÒÈÉ×Á\n"
-
-#: ar.c:230
-#, c-format
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr " x[o] - ÉÚ×ÌÅÞÅÎÉÅ ÆÁÊÌÏ× ÉÚ ÁÒÈÉ×Á\n"
-
-#: ar.c:231
-#, c-format
-msgid " command specific modifiers:\n"
-msgstr " ÏÓÏÂÙÅ ÍÏÄÉÆÉËÁÔÏÒÙ ÄÌÑ ËÏÍÁÎÄ:\n"
-
-#: ar.c:232
-#, c-format
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr " [a] - ÒÁÚÍÅÝÅÎÉÅ ÆÁÊÌÏ× ÐÏÓÌÅ [ÉÍÅÎÉ_ÞÌÅÎÁ]\n"
-
-#: ar.c:233
-#, c-format
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr " [b] - ÒÁÚÍÅÝÅÎÉÅ ÆÁÊÌÏ× ÄÏ [ÉÍÅÎÉ_ÞÌÅÎÁ] (ÔÏ ÖÅ, ÞÔÏ É [i])\n"
-
-#: ar.c:234
-#, c-format
-msgid " [N] - use instance [count] of name\n"
-msgstr " [N] - ÉÓÐÏÌØÚÏ×ÁÎÉÅ [ÓÞÅÔÁ], ËÁË ×ÁÒÉÁÎÔÁ ÉÍÅÎÉ\n"
-
-#: ar.c:235
-#, c-format
-msgid " [f] - truncate inserted file names\n"
-msgstr " [f] - ÏÂÒÅÚÁÎÉÅ ÉÍÅÎ ×ÓÔÁ×ÌÅÎÎÙÈ ÆÁÊÌÏ×\n"
-
-#: ar.c:236
-#, c-format
-msgid " [P] - use full path names when matching\n"
-msgstr " [P] - ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÐÏÌÎÙÈ ÐÕÔÅ×ÙÈ ÉÍÅÎ ÐÒÉ ÓÏÐÏÓÔÁ×ÌÅÎÉÉ\n"
-
-#: ar.c:237
-#, c-format
-msgid " [o] - preserve original dates\n"
-msgstr " [o] - ÓÏÈÒÁÎÅÎÉÅ ÉÓÈÏÄÎÙÈ ÄÁÔ\n"
-
-#: ar.c:238
-#, c-format
-msgid " [u] - only replace files that are newer than current archive contents\n"
-msgstr " [u] - ÚÁÍÅÎÁ ÔÏÌØËÏ ÆÁÊÌÏ× ÂÏÌÅÅ ÎÏ×ÙÈ, ÞÅÍ ÔÅËÕÝÅÅ ÓÏÄÅÒÖÉÍÏÅ ÁÒÈÉ×Á\n"
-
-#: ar.c:239
-#, c-format
-msgid " generic modifiers:\n"
-msgstr " ÏÂÙÞÎÙÅ ÍÏÄÉÆÉËÁÔÏÒÙ:\n"
-
-#: ar.c:240
-#, c-format
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr " [c] - ÎÅ ÐÒÅÄÕÐÒÅÖÄÁÔØ, ÅÓÌÉ ÄÏÌÖÎÁ ÂÙÔØ ÓÏÚÄÁÎÁ ÂÉÂÌÉÏÔÅËÁ\n"
-
-#: ar.c:241
-#, c-format
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr " [s] - ÓÏÚÄÁÎÉÅ ÉÎÄÅËÓÁ ÁÒÈÉ×Á (cf. ranlib)\n"
-
-#: ar.c:242
-#, c-format
-msgid " [S] - do not build a symbol table\n"
-msgstr " [S] - ÎÅ ÓÏÚÄÁ×ÁÔØ ÔÁÂÌÉÃÕ ÓÉÍ×ÏÌÏ×\n"
-
-#: ar.c:243
-#, c-format
-msgid " [v] - be verbose\n"
-msgstr " [v] - ÐÏÄÒÏÂÎÙÊ ÒÅÖÉÍ\n"
-
-#: ar.c:244
-#, c-format
-msgid " [V] - display the version number\n"
-msgstr " [V] - ×Ù×ÏÄ ÎÏÍÅÒÁ ×ÅÒÓÉÉ\n"
-
-#: ar.c:245
-#, c-format
-msgid " @<file> - read options from <file>\n"
-msgstr " @<file> - ÞÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>\n"
-
-#: ar.c:252
-#, c-format
-msgid "Usage: %s [options] archive\n"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ÏÐÃÉÉ] ÁÒÈÉ×\n"
-
-#: ar.c:253
-#, c-format
-msgid " Generate an index to speed access to archives\n"
-msgstr " óÏÚÄÁÅÔ ÉÎÄÅËÓ ÄÌÑ Õ×ÅÌÉÞÅÎÉÑ ÓËÏÒÏÓÔÉ ÄÏÓÔÕÐÁ Ë ÁÒÈÉ×ÁÍ\n"
-
-#: ar.c:254
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" ïÐÃÉÉ:\n"
-" @<ÆÁÊÌ> þÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>\n"
-" -h --help ÷Ù×ÏÄ ÓÐÒÁ×ÏÞÎÏÇÏ ÓÏÏÂÝÅÎÉÑ\n"
-" -V --version ÷Ù×ÏÄ ÉÎÆÏÒÍÁÃÉÉ Ï ×ÅÒÓÉÉ\n"
-
-#: ar.c:485
-msgid "two different operation options specified"
-msgstr "ÕËÁÚÁÎÙ ÏÐÃÉÉ ÄÌÑ Ä×ÕÈ ÒÁÚÌÉÞÎÙÈ ÏÐÅÒÁÃÉÊ"
-
-#: ar.c:560
-#, c-format
-msgid "illegal option -- %c"
-msgstr "ÎÅ×ÅÒÎÁÑ ÏÐÃÉÑ -- %c"
-
-#: ar.c:606
-msgid "no operation specified"
-msgstr "ÏÐÅÒÁÃÉÑ ÎÅ ÕËÁÚÁÎÁ"
-
-#: ar.c:609
-msgid "`u' is only meaningful with the `r' option."
-msgstr "`u' ÉÍÅÅÔ ÚÎÁÞÅÎÉÅ ÔÏÌØËÏ Ó ÏÐÃÉÅÊ `r'."
-
-#: ar.c:617
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr "`u' ÉÍÅÅÔ ÚÎÁÞÅÎÉÅ ÔÏÌØËÏ Ó ÏÐÃÉÑÍÉ `x' É `d'."
-
-#: ar.c:620
-msgid "Value for `N' must be positive."
-msgstr "úÎÁÞÅÎÉÅ ÄÌÑ `N' ÄÏÌÖÎÏ ÂÙÔØ ÐÏÌÏÖÉÔÅÌØÎÙÍ."
-
-#: ar.c:670
-#, c-format
-msgid "internal error -- this option not implemented"
-msgstr "×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ -- ÜÔÁ ÏÐÃÉÑ ÎÅ ×ÙÐÏÌÎÅÎÁ"
-
-#: ar.c:739
-#, c-format
-msgid "creating %s"
-msgstr "ÓÏÚÄÁÅÔÓÑ %s"
-
-#: ar.c:788 ar.c:838 ar.c:1156 objcopy.c:1683
-#, c-format
-msgid "internal stat error on %s"
-msgstr "×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ stat ÎÁ %s"
-
-#: ar.c:792
-#, c-format
-msgid ""
-"\n"
-"<%s>\n"
-"\n"
-msgstr ""
-"\n"
-"<%s>\n"
-"\n"
-
-#: ar.c:808 ar.c:875
-#, c-format
-msgid "%s is not a valid archive"
-msgstr "%s ÎÅ Ñ×ÌÑÅÔÓÑ ×ÅÒÎÙÍ ÁÒÈÉ×ÏÍ"
-
-#: ar.c:843
-#, c-format
-msgid "stat returns negative size for %s"
-msgstr "stat ×ÏÚ×ÒÁÔÉÌ ÏÔÒÉÃÁÔÅÌØÎÙÊ ÒÁÚÍÅÒ ÄÌÑ %s"
-
-#: ar.c:1061
-#, c-format
-msgid "No member named `%s'\n"
-msgstr "îÅÔ ÞÌÅÎÁ Ó ÉÍÅÎÅÍ `%s'\n"
-
-#: ar.c:1111
-#, c-format
-msgid "no entry %s in archive %s!"
-msgstr "ÐÕÎËÔÁ %s ÎÅÔ × ÁÒÈÉ×Å %s!"
-
-#: ar.c:1248
-#, c-format
-msgid "%s: no archive map to update"
-msgstr "%s: ÎÅÔ ËÁÒÔÙ ÁÒÈÉ×Á ÄÌÑ ÏÂÎÏ×ÌÅÎÉÑ"
-
-#: arsup.c:87
-#, c-format
-msgid "No entry %s in archive.\n"
-msgstr "ÐÕÎËÔÁ %s ÎÅÔ × ÁÒÈÉ×Å.\n"
-
-#: arsup.c:112
-#, c-format
-msgid "Can't open file %s\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ %s\n"
-
-#: arsup.c:162
-#, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr "%s: îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÙÈÏÄÎÏÊ ÁÒÈÉ× %s\n"
-
-#: arsup.c:179
-#, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr "%s: îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÈÏÄÎÏÊ ÁÒÈÉ× %s\n"
-
-#: arsup.c:188
-#, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr "%s: ÆÁÊÌ %s ÎÅ Ñ×ÌÑÅÔÓÑ ÁÒÈÉ×ÏÍ\n"
-
-#: arsup.c:227
-#, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr "%s: ×ÙÈÏÄÎÏÊ ÁÒÈÉ× ÅÝÅ ÎÅ ÕËÁÚÁÎ\n"
-
-#: arsup.c:247 arsup.c:285 arsup.c:327 arsup.c:347 arsup.c:413
-#, c-format
-msgid "%s: no open output archive\n"
-msgstr "%s: ÎÅÔ ÏÔËÒÙÔÏÇÏ ×ÙÈÏÄÎÏÇÏ ÁÒÈÉ×Á\n"
-
-#: arsup.c:258 arsup.c:368 arsup.c:394
-#, c-format
-msgid "%s: can't open file %s\n"
-msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ %s\n"
-
-#: arsup.c:312 arsup.c:390 arsup.c:471
-#, c-format
-msgid "%s: can't find module file %s\n"
-msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÆÁÊÌ ÍÏÄÕÌÑ %s\n"
-
-#: arsup.c:422
-#, c-format
-msgid "Current open archive is %s\n"
-msgstr "ôÅËÕÝÉÊ ÏÔËÒÙÔÙÊ ÁÒÈÉ× - %s\n"
-
-#: arsup.c:446
-#, c-format
-msgid "%s: no open archive\n"
-msgstr "%s: ÎÅÔ ÏÔËÒÙÔÏÇÏ ÁÒÈÉ×Á\n"
-
-#: binemul.c:37
-#, c-format
-msgid " No emulation specific options\n"
-msgstr " îÅÔ ÏÐÃÉÊ, ÓÐÅÃÉÆÉÞÎÙÈ ÄÌÑ ÜÍÕÌÑÃÉÉ\n"
-
-#. Macros for common output.
-#: binemul.h:40
-#, c-format
-msgid " emulation options: \n"
-msgstr " ÏÐÃÉÉ ÜÍÕÌÑÃÉÉ: \n"
-
-#: bucomm.c:110
-#, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ ÃÅÌØ BFD ÐÏ ÕÍÏÌÞÁÎÉÀ ÎÁ `%s': %s"
-
-#: bucomm.c:121
-#, c-format
-msgid "%s: Matching formats:"
-msgstr "%s: æÏÒÍÁÔÙ ÓÏ×ÐÁÄÅÎÉÑ:"
-
-#: bucomm.c:136
-#, c-format
-msgid "Supported targets:"
-msgstr "ðÏÄÄÅÒÖÉ×ÁÅÍÙÅ ÃÅÌÉ:"
-
-#: bucomm.c:138
-#, c-format
-msgid "%s: supported targets:"
-msgstr "%s: ÐÏÄÄÅÒÖÉ×ÁÅÍÙÅ ÃÅÌÉ:"
-
-#: bucomm.c:154
-#, c-format
-msgid "Supported architectures:"
-msgstr "ðÏÄÄÅÒÖÉ×ÁÅÍÙÅ ÁÒÈÉÔÅËÔÕÒÙ:"
-
-#: bucomm.c:156
-#, c-format
-msgid "%s: supported architectures:"
-msgstr "%s: ÐÏÄÄÅÒÖÉ×ÁÅÍÙÅ ÁÒÈÉÔÅËÔÕÒÙ:"
-
-#: bucomm.c:349
-#, c-format
-msgid "BFD header file version %s\n"
-msgstr "æÁÊÌ ÚÁÇÏÌÏ×ËÁ BFD ×ÅÒÓÉÑ %s\n"
-
-#: bucomm.c:450
-#, c-format
-msgid "%s: bad number: %s"
-msgstr "%s: ÐÌÏÈÏÅ ÞÉÓÌÏ: %s"
-
-#: bucomm.c:467 strings.c:438
-#, c-format
-msgid "'%s': No such file"
-msgstr "'%s': îÅÔ ÔÁËÏÇÏ ÆÁÊÌÁ"
-
-#: bucomm.c:469 strings.c:440
-#, c-format
-msgid "Warning: could not locate '%s'. reason: %s"
-msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ '%s'. ðÒÉÞÉÎÁ: %s"
-
-#: bucomm.c:473
-#, c-format
-msgid "Warning: '%s' is not an ordinary file"
-msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: '%s' ÎÅ Ñ×ÌÑÅÔÓÑ ÏÂÙÞÎÙÍ ÆÁÊÌÏÍ"
-
-#: coffdump.c:103
-#, c-format
-msgid "#lines %d "
-msgstr "#ÓÔÒÏËÉ %d "
-
-#: coffdump.c:457 sysdump.c:641
-#, c-format
-msgid "Usage: %s [option(s)] in-file\n"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ÏÐÃÉÉ] in-ÆÁÊÌ\n"
-
-#: coffdump.c:458
-#, c-format
-msgid " Print a human readable interpretation of a SYSROFF object file\n"
-msgstr " ÷Ù×ÏÄÉÔ ÕÄÏÂÏÞÉÔÁÅÍÕÀ ÄÌÑ ÞÅÌÏ×ÅËÁ ÉÎÔÅÒÐÒÅÔÁÃÉÀ ÏÂßÅËÔÎÏÇÏ ÆÁÊÌÁ SYSROFF\n"
-
-#: coffdump.c:459
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" ïÐÃÉÉ:\n"
-" @<ÆÁÊÌ> þÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>\n"
-" -h --help ÷Ù×ÏÄ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ\n"
-" -v --version ÷Ù×ÏÄ ×ÅÒÓÉÉ ÐÒÏÇÒÁÍÍÙ\n"
-"\n"
-
-#: coffdump.c:528 srconv.c:1822 sysdump.c:705
-msgid "no input file specified"
-msgstr "ÎÅ ÕËÁÚÁÎ ×ÈÏÄÎÏÊ ÆÁÊÌ"
-
-#: debug.c:648
-msgid "debug_add_to_current_namespace: no current file"
-msgstr "debug_add_to_current_namespace: ÎÅÔ ÔÅËÕÝÅÇÏ ÆÁÊÌÁ"
-
-#: debug.c:727
-msgid "debug_start_source: no debug_set_filename call"
-msgstr "debug_start_source: ÎÅÔ ×ÙÚÏ×Á debug_set_filename"
-
-#: debug.c:783
-msgid "debug_record_function: no debug_set_filename call"
-msgstr "debug_record_function: ÎÅÔ ×ÙÚÏ×Á debug_set_filename"
-
-#: debug.c:835
-msgid "debug_record_parameter: no current function"
-msgstr "debug_record_parameter: ÎÅÔ ÔÅËÕÝÅÊ ÆÕÎËÃÉÉ"
-
-#: debug.c:867
-msgid "debug_end_function: no current function"
-msgstr "debug_end_function: ÎÅÔ ÔÅËÕÝÅÊ ÆÕÎËÃÉÉ"
-
-#: debug.c:873
-msgid "debug_end_function: some blocks were not closed"
-msgstr "debug_end_function: ÎÅËÏÔÏÒÙÅ ÂÌÏËÉ ÎÅ ÂÙÌÉ ÚÁËÒÙÔÙ"
-
-#: debug.c:901
-msgid "debug_start_block: no current block"
-msgstr "debug_start_block: ÎÅÔ ÔÅËÕÝÅÇÏ ÂÌÏËÁ"
-
-#: debug.c:937
-msgid "debug_end_block: no current block"
-msgstr "debug_end_block: ÎÅÔ ÔÅËÕÝÅÇÏ ÂÌÏËÁ"
-
-#: debug.c:944
-msgid "debug_end_block: attempt to close top level block"
-msgstr "debug_end_block: ÐÏÐÙÔËÁ ÚÁËÒÙÔØ ÂÌÏË ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ"
-
-#: debug.c:967
-msgid "debug_record_line: no current unit"
-msgstr "debug_record_line: ÎÅÔ ÔÅËÕÝÅÇÏ ÍÏÄÕÌÑ"
-
-#. FIXME
-#: debug.c:1020
-msgid "debug_start_common_block: not implemented"
-msgstr "debug_start_common_block: ÎÅ ×ÙÐÏÌÎÅÎ"
-
-#. FIXME
-#: debug.c:1031
-msgid "debug_end_common_block: not implemented"
-msgstr "debug_end_common_block: ÎÅ ×ÙÐÏÌÎÅÎ"
-
-#. FIXME.
-#: debug.c:1115
-msgid "debug_record_label: not implemented"
-msgstr "debug_record_label: ÎÅ ×ÙÐÏÌÎÅÎ"
-
-#: debug.c:1137
-msgid "debug_record_variable: no current file"
-msgstr "debug_record_variable: ÎÅÔ ÔÅËÕÝÅÇÏ ÆÁÊÌÁ"
-
-#: debug.c:1665
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr "debug_make_undefined_type: ÎÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ÔÉÐ"
-
-#: debug.c:1842
-msgid "debug_name_type: no current file"
-msgstr "debug_name_type: ÎÅÔ ÔÅËÕÝÅÇÏ ÆÁÊÌÁ"
-
-#: debug.c:1887
-msgid "debug_tag_type: no current file"
-msgstr "debug_tag_type: ÎÅÔ ÔÅËÕÝÅÇÏ ÆÁÊÌÁ"
-
-#: debug.c:1895
-msgid "debug_tag_type: extra tag attempted"
-msgstr "debug_tag_type: ÏÐÒÏÂÏ×ÁÎ ÄÏÐÏÌÎÉÔÅÌØÎÙÊ ÔÅÇ"
-
-#: debug.c:1932
-#, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÉÚÍÅÎÑÅÔÓÑ ÒÁÚÍÅÒ ÔÉÐÁ Ó %d ÎÁ %d\n"
-
-#: debug.c:1954
-msgid "debug_find_named_type: no current compilation unit"
-msgstr "debug_find_named_type: ÎÅÔ ÔÅËÕÝÅÇÏ ÍÏÄÕÌÑ ËÏÍÐÉÌÑÃÉÉ"
-
-#: debug.c:2057
-#, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr "debug_get_real_type: ÃÉÒËÕÌÑÒÎÁÑ ÏÔÌÁÄÏÞÎÁÑ ÉÎÆÏÒÍÁÃÉÑ ÄÌÑ %s\n"
-
-#: debug.c:2484
-msgid "debug_write_type: illegal type encountered"
-msgstr "debug_write_type: ×ÓÔÒÅÞÅÎ ÎÅ×ÅÒÎÙÊ ÔÉÐ"
-
-#: dlltool.c:765 dlltool.c:789 dlltool.c:818
-#, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr "÷ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: îÅÉÚ×ÅÓÔÎÙÊ ÔÉÐ ÍÁÛÉÎÙ: %d"
-
-#: dlltool.c:854
-#, c-format
-msgid "Can't open def file: %s"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ def: %s"
-
-#: dlltool.c:859
-#, c-format
-msgid "Processing def file: %s"
-msgstr "ïÂÒÁÂÁÔÙ×ÁÅÔÓÑ ÆÁÊÌ def: %s"
-
-#: dlltool.c:863
-msgid "Processed def file"
-msgstr "ïÂÒÁÂÏÔÁÎ ÆÁÊÌ def"
-
-#: dlltool.c:887
-#, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr "ïÛÉÂËÁ ÓÉÎÔÁËÓÉÓÁ × ÆÁÊÌÅ def %s:%d"
-
-#: dlltool.c:922
-#, c-format
-msgid "%s: Path components stripped from image name, '%s'."
-msgstr "%s: ëÏÍÐÏÎÅÎÔÙ ÐÕÔÉ, ÉÚ×ÌÅÞÅÎÎÙÅ ÉÚ ÉÍÅÎÉ ÉÚÏÂÒÁÖÅÎÉÑ, '%s'."
-
-#: dlltool.c:931
-#, c-format
-msgid "NAME: %s base: %x"
-msgstr "NAME: %s base: %x"
-
-#: dlltool.c:934 dlltool.c:950
-msgid "Can't have LIBRARY and NAME"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÉÍÅÔØ LIBRARY É NAME"
-
-#: dlltool.c:947
-#, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr "LIBRARY: %s base: %x"
-
-#: dlltool.c:1183 resrc.c:269
-#, c-format
-msgid "wait: %s"
-msgstr "ÏÖÉÄÁÎÉÅ: %s"
-
-#: dlltool.c:1188 dllwrap.c:413 resrc.c:274
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr "ÐÏÄÐÒÏÃÅÓÓ ÐÏÌÕÞÉÌ ÆÁÔÁÌØÎÙÊ ÓÉÇÎÁÌ %d"
-
-#: dlltool.c:1194 dllwrap.c:420 resrc.c:281
-#, c-format
-msgid "%s exited with status %d"
-msgstr "%s ÚÁ×ÅÒÛÅÎ ÓÏ ÓÔÁÔÕÓÏÍ %d"
-
-#: dlltool.c:1225
-#, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr "÷ÓÁÓÙ×ÁÅÔÓÑ ÉÎÆÏÒÍÁÃÉÑ ÉÚ ÒÁÚÄÅÌÁ %s × %s"
-
-#: dlltool.c:1350
-#, c-format
-msgid "Excluding symbol: %s"
-msgstr "óÉÍ×ÏÌ ÉÓËÌÀÞÅÎÉÑ: %s"
-
-#: dlltool.c:1439 dlltool.c:1450 nm.c:1000 nm.c:1011
-#, c-format
-msgid "%s: no symbols"
-msgstr "%s: ÎÅÔ ÓÉÍ×ÏÌÏ×"
-
-#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1476
-#, c-format
-msgid "Done reading %s"
-msgstr "þÔÅÎÉÅ ×ÙÐÏÌÎÅÎÏ %s"
-
-#: dlltool.c:1486
-#, c-format
-msgid "Unable to open object file: %s"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÏÂßÅËÔÎÙÊ ÆÁÊÌ: %s"
-
-#: dlltool.c:1489
-#, c-format
-msgid "Scanning object file %s"
-msgstr "óËÁÎÉÒÕÅÔÓÑ ÏÂßÅËÔÎÙÊ ÆÁÊÌ %s"
-
-#: dlltool.c:1504
-#, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÓÆÏÒÍÉÒÏ×ÁÔØ mcore-elf dll ÉÚ ÆÁÊÌÁ ÁÒÈÉ×Á: %s"
-
-#: dlltool.c:1590
-msgid "Adding exports to output file"
-msgstr "üËÓÐÏÒÔÎÙÅ ÄÁÎÎÙÅ ÄÏÂÁ×ÌÑÀÔÓÑ × ×ÙÈÏÄÎÏÊ ÆÁÊÌ"
-
-#: dlltool.c:1638
-msgid "Added exports to output file"
-msgstr "üËÓÐÏÒÔÎÙÅ ÄÁÎÎÙÅ ÄÏÂÁ×ÌÅÎÙ × ×ÙÈÏÄÎÏÊ ÆÁÊÌ"
-
-#: dlltool.c:1759
-#, c-format
-msgid "Generating export file: %s"
-msgstr "çÅÎÅÒÉÒÕÅÔÓÑ ÆÁÊÌ ÜËÓÐÏÒÔÁ: %s"
-
-#: dlltool.c:1764
-#, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ ÁÓÓÅÍÂÌÅÒÁ: %s"
-
-#: dlltool.c:1767
-#, c-format
-msgid "Opened temporary file: %s"
-msgstr "ïÔËÒÙÔÙÊ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ: %s"
-
-#: dlltool.c:1989
-msgid "Generated exports file"
-msgstr "óÇÅÎÅÒÉÒÏ×ÁÎ ÆÁÊÌ ÜËÓÐÏÒÔÁ"
-
-#: dlltool.c:2195
-#, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr "bfd_open ÎÅ ÓÍÏÇ ÏÔËÒÙÔØ ÆÁÊÌ stub: %s"
-
-#: dlltool.c:2198
-#, c-format
-msgid "Creating stub file: %s"
-msgstr "óÏÚÄÁÅÔÓÑ ÆÁÊÌ stub: %s"
-
-#: dlltool.c:2580
-#, c-format
-msgid "failed to open temporary head file: %s"
-msgstr "ÓÂÏÊ ÐÒÉ ÏÔËÒÙÔÉÉ ×ÒÅÍÅÎÎÏÇÏ ÇÏÌÏ×ÎÏÇÏ ÆÁÊÌÁ: %s"
-
-#: dlltool.c:2639
-#, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr "ÓÂÏÊ ÐÒÉ ÏÔËÒÙÔÉÉ ×ÒÅÍÅÎÎÏÇÏ ËÏÎÅÞÎÏÇÏ ÆÁÊÌÁ: %s"
-
-#: dlltool.c:2706
-#, c-format
-msgid "Can't open .lib file: %s"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ .lib: %s"
-
-#: dlltool.c:2709
-#, c-format
-msgid "Creating library file: %s"
-msgstr "óÏÚÄÁÅÔÓÑ ÆÁÊÌ ÂÉÂÌÉÏÔÅËÉ: %s"
-
-#: dlltool.c:2792 dlltool.c:2798
-#, c-format
-msgid "cannot delete %s: %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ %s: %s"
-
-#: dlltool.c:2803
-msgid "Created lib file"
-msgstr "óÏÚÄÁÎ lib-ÆÁÊÌ"
-
-#: dlltool.c:2882
-#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ, ÐÒÏÐÕÓËÁÅÔÓÑ ÐÏ×ÔÏÒÑÀÝÉÊÓÑ EXPORT %s %d,%d"
-
-#: dlltool.c:2888
-#, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr "ïÛÉÂËÁ, EXPORT ÐÏ×ÔÏÒÑÅÔÓÑ Ó ÐÏÒÑÄËÏ×ÙÍÉ ÞÉÓÌÉÔÅÌØÎÙÍÉ: %s"
-
-#: dlltool.c:2993
-msgid "Processing definitions"
-msgstr "ïÂÒÁÂÁÔÙ×ÁÀÔÓÑ ÏÐÉÓÁÎÉÑ"
-
-#: dlltool.c:3025
-msgid "Processed definitions"
-msgstr "ïÐÉÓÁÎÉÑ ÏÂÒÁÂÏÔÁÎÙ"
-
-#. xgetext:c-format
-#: dlltool.c:3032 dllwrap.c:474
-#, c-format
-msgid "Usage %s <option(s)> <object-file(s)>\n"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ %s <ÏÐÃÉÉ> <ÏÂßÅËÔÎÙÅ_ÆÁÊÌÙ>\n"
-
-#. xgetext:c-format
-#: dlltool.c:3034
-#, c-format
-msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr " -m --machine <ÍÁÛÉÎÁ> óÏÚÄÁÎÉÅ ËÁË DLL ÄÌÑ <ÍÁÛÉÎÙ>. [ÐÏ ÕÍÏÌÞÁÎÉÀ: %s]\n"
-
-#: dlltool.c:3035
-#, c-format
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-msgstr " ×ÏÚÍÏÖÎÏ <ÍÁÛÉÎÁ>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-
-#: dlltool.c:3036
-#, c-format
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr " -e --output-exp <×ÙÈ_ÉÍÑ> óÏÚÄÁÎÉÅ ÆÁÊÌÁ ÜËÓÐÏÒÔÁ.\n"
-
-#: dlltool.c:3037
-#, c-format
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr " -l --output-lib <×ÙÈ_ÉÍÑ> óÏÚÄÁÎÉÅ ÂÉÂÌÉÏÔÅËÉ ÉÎÔÅÒÆÅÊÓÁ.\n"
-
-#: dlltool.c:3038
-#, c-format
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr " -a --add-indirect äÏÂÁ×ÌÅÎÉÅ ÎÅÐÒÑÍÙÈ dll × ÆÁÊÌ ÜËÓÐÏÒÔÁ.\n"
-
-#: dlltool.c:3039
-#, c-format
-msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr " -D --dllname <ÉÍÑ> éÍÑ ×ÈÏÄÎÏÊ dll ÄÌÑ ÐÏÍÅÝÅÎÉÑ × ÂÉÂÌÉÏÔÅËÕ ÉÎÔÅÒÆÅÊÓÁ.\n"
-
-#: dlltool.c:3040
-#, c-format
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr " -d --input-def <def-ÆÁÊÌ> éÍÑ ÆÁÊÌÁ .def ÄÌÑ ÓÞÉÔÙ×ÁÎÉÑ.\n"
-
-#: dlltool.c:3041
-#, c-format
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr " -z --output-def <def-ÆÁÊÌ> éÍÑ ÓÏÚÄÁ×ÁÅÍÏÇÏ ÆÁÊÌÁ .def.\n"
-
-#: dlltool.c:3042
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols üËÓÐÏÒÔ ×ÓÅÈ ÓÉÍ×ÏÌÏ× × .def\n"
-
-#: dlltool.c:3043
-#, c-format
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr " --no-export-all-symbols üËÓÐÏÒÔ ÔÏÌØËÏ ÐÅÒÅÞÉÓÌÅÎÎÙÈ ÓÉÍ×ÏÌÏ×\n"
-
-#: dlltool.c:3044
-#, c-format
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr " --exclude-symbols <ÓÐÉÓÏË> îÅ ÜËÓÐÏÒÔÉÒÏ×ÁÔØ <ÓÐÉÓÏË>\n"
-
-#: dlltool.c:3045
-#, c-format
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr " --no-default-excludes ïÞÉÓÔËÁ ÓÉÍ×ÏÌÏ× ÉÓËÌÀÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ\n"
-
-#: dlltool.c:3046
-#, c-format
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr " -b --base-file <base-ÆÁÊÌ> þÔÅÎÉÅ ÓÏÚÄÁÎÎÏÇÏ ËÏÍÐÏÎÏ×ÝÉËÏÍ base-ÆÁÊÌÁ.\n"
-
-#: dlltool.c:3047
-#, c-format
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr " -x --no-idata4 îÅ ÓÏÚÄÁ×ÁÔØ ÒÁÚÄÅÌ idata$4.\n"
-
-#: dlltool.c:3048
-#, c-format
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr " -c --no-idata5 îÅ ÓÏÚÄÁ×ÁÔØ ÒÁÚÄÅÌ idata$5.\n"
-
-#: dlltool.c:3049
-#, c-format
-msgid " -U --add-underscore Add underscores to symbols in interface library.\n"
-msgstr " -U --add-underscore äÏÂÁ×ÌÅÎÉÅ ÓÉÍ×ÏÌÏ× ÐÏÄÞÅÒËÉ×ÁÎÉÑ Ë ÓÉÍ×ÏÌÁÍ × ÂÉÂÌÉÏÔÅËÅ ÉÎÔÅÒÆÅÊÓÁ.\n"
-
-#: dlltool.c:3050
-#, c-format
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr " -k --kill-at õÄÁÌÅÎÉÅ @<n> ÉÚ ÜËÓÐÏÒÔÉÒÏ×ÁÎÎÙÈ ÉÍÅÎ.\n"
-
-#: dlltool.c:3051
-#, c-format
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr " -A --add-stdcall-alias äÏÂÁ×ÌÅÎÉÅ ÁÌÉÁÓÏ× ÂÅÚ @<n>.\n"
-
-#: dlltool.c:3052
-#, c-format
-msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
-msgstr " -p --ext-prefix-alias <ÐÒÅÆÉËÓ> äÏÂÁ×ÌÅÎÉÅ ÁÌÉÁÓÏ× Ó <ÐÒÅÆÉËÓÏÍ>.\n"
-
-#: dlltool.c:3053
-#, c-format
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr " -S --as <ÉÍÑ> éÓÐÏÌØÚÏ×ÁÎÉÅ <ÉÍÅÎÉ> ÄÌÑ ÁÓÓÅÍÂÌÅÒÁ.\n"
-
-#: dlltool.c:3054
-#, c-format
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr " -f --as-flags <ÆÌÁÇÉ> ðÅÒÅÄÁÞÁ <ÆÌÁÇÏ×> × ÁÓÓÅÍÂÌÅÒ.\n"
-
-#: dlltool.c:3055
-#, c-format
-msgid " -C --compat-implib Create backward compatible import library.\n"
-msgstr " -C --compat-implib óÏÚÄÁÎÉÅ ÂÉÂÌÉÏÔÅËÉ ÉÍÐÏÒÔÁ Ó ÏÂÒÁÔÎÏÊ ÓÏ×ÍÅÓÔÉÍÏÓÔØÀ.\n"
-
-#: dlltool.c:3056
-#, c-format
-msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
-msgstr " -n --no-delete ïÓÔÁ×ÌÑÔØ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ (ÐÏ×ÔÏÒ ÄÌÑ ÄÏÐ. ÚÁÝÉÔÙ).\n"
-
-#: dlltool.c:3057
-#, c-format
-msgid " -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
-msgstr " -t --temp-prefix <ÐÒÅÆÉËÓ> éÓÐÏÌØÚÏ×ÁÎÉÅ <ÐÒÅÆÉËÓÁ> ÄÌÑ ÓÏÚÄÁÎÉÑ ÉÍÅÎ ×ÒÅÍÅÎÎÙÈ ÆÁÊÌÏ×.\n"
-
-#: dlltool.c:3058
-#, c-format
-msgid " -v --verbose Be verbose.\n"
-msgstr " -v --verbose ðÏÄÒÏÂÎÙÊ ÒÅÖÉÍ.\n"
-
-#: dlltool.c:3059
-#, c-format
-msgid " -V --version Display the program version.\n"
-msgstr " -V --version ÷Ù×ÏÄ ×ÅÒÓÉÉ ÐÒÏÇÒÁÍÍÙ.\n"
-
-#: dlltool.c:3060
-#, c-format
-msgid " -h --help Display this information.\n"
-msgstr " -h --help ÷Ù×ÏÄ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ.\n"
-
-#: dlltool.c:3061
-#, c-format
-msgid " @<file> Read options from <file>.\n"
-msgstr " @<ÆÁÊÌ> þÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>.\n"
-
-#: dlltool.c:3063
-#, c-format
-msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr " -M --mcore-elf <×ÙÈ_ÉÍÑ> ïÂÒÁÂÏÔËÁ ÏÂßÅËÔÎÏÇÏ ÆÁÊÌÁ mcore-elf × <×ÙÈ_ÉÍÑ>.\n"
-
-#: dlltool.c:3064
-#, c-format
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr " -L --linker <ÉÍÑ> éÓÐÏÌØÚÏ×ÁÎÉÅ <ÉÍÅÎÉ> × ËÁÞÅÓÔ×Å ËÏÍÐÏÎÏ×ÝÉËÁ.\n"
-
-#: dlltool.c:3065
-#, c-format
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr " -F --linker-flags <ÆÌÁÇÉ> ðÅÒÅÄÁÞÁ <ÆÌÁÇÏ×> ËÏÍÐÏÎÏ×ÝÉËÕ.\n"
-
-#: dlltool.c:3181
-#, c-format
-msgid "Path components stripped from dllname, '%s'."
-msgstr "ëÏÍÐÏÎÅÎÔÙ ÐÕÔÉ, ÉÚ×ÌÅÞÅÎÎÙÅ ÉÚ ÉÍÅÎÉ dll, '%s'."
-
-#: dlltool.c:3226
-#, c-format
-msgid "Unable to open base-file: %s"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ base-ÆÁÊÌ: %s"
-
-#: dlltool.c:3258
-#, c-format
-msgid "Machine '%s' not supported"
-msgstr "íÁÛÉÎÁ '%s' ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ"
-
-#: dlltool.c:3362 dllwrap.c:204
-#, c-format
-msgid "Tried file: %s"
-msgstr "ïÐÒÏÂÏ×ÁÎÎÙÊ ÆÁÊÌ: %s"
-
-#: dlltool.c:3369 dllwrap.c:211
-#, c-format
-msgid "Using file: %s"
-msgstr "éÓÐÏÌØÚÕÅÔÓÑ ÆÁÊÌ: %s"
-
-#: dllwrap.c:294
-#, c-format
-msgid "Keeping temporary base file %s"
-msgstr "ïÓÔÁ×ÌÑÅÔÓÑ ×ÒÅÍÅÎÎÙÊ base-ÆÁÊÌ %s"
-
-#: dllwrap.c:296
-#, c-format
-msgid "Deleting temporary base file %s"
-msgstr "õÄÁÌÑÅÔÓÑ ×ÒÅÍÅÎÎÙÊ base-ÆÁÊÌ %s"
-
-#: dllwrap.c:310
-#, c-format
-msgid "Keeping temporary exp file %s"
-msgstr "ïÓÔÁ×ÌÑÅÔÓÑ ×ÒÅÍÅÎÎÙÊ exp-ÆÁÊÌ %s"
-
-#: dllwrap.c:312
-#, c-format
-msgid "Deleting temporary exp file %s"
-msgstr "õÄÁÌÑÅÔÓÑ ×ÒÅÍÅÎÎÙÊ exp-ÆÁÊÌ %s"
-
-#: dllwrap.c:325
-#, c-format
-msgid "Keeping temporary def file %s"
-msgstr "ïÓÔÁ×ÌÑÅÔÓÑ ×ÒÅÍÅÎÎÙÊ def-ÆÁÊÌ %s"
-
-#: dllwrap.c:327
-#, c-format
-msgid "Deleting temporary def file %s"
-msgstr "õÄÁÌÑÅÔÓÑ ×ÒÅÍÅÎÎÙÊ def-ÆÁÊÌ %s"
-
-#: dllwrap.c:475
-#, c-format
-msgid " Generic options:\n"
-msgstr " ïÂÝÉÅ ÏÐÃÉÉ:\n"
-
-#: dllwrap.c:476
-#, c-format
-msgid " @<file> Read options from <file>\n"
-msgstr " @<ÆÁÊÌ> þÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>\n"
-
-#: dllwrap.c:477
-#, c-format
-msgid " --quiet, -q Work quietly\n"
-msgstr " --quiet, -q íÏÌÞÁÌÉ×ÙÊ ÒÅÖÉÍ\n"
-
-#: dllwrap.c:478
-#, c-format
-msgid " --verbose, -v Verbose\n"
-msgstr " --verbose, -v ðÏÄÒÏÂÎÙÊ ÒÅÖÉÍ\n"
-
-#: dllwrap.c:479
-#, c-format
-msgid " --version Print dllwrap version\n"
-msgstr " --version ÷Ù×ÏÄ ×ÅÒÓÉÉ dllwrap\n"
-
-#: dllwrap.c:480
-#, c-format
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr " --implib <×ÙÈ_ÉÍÑ> óÉÎÏÎÉÍ ÄÌÑ --output-lib\n"
-
-#: dllwrap.c:481
-#, c-format
-msgid " Options for %s:\n"
-msgstr " ïÐÃÉÉ ÄÌÑ %s:\n"
-
-#: dllwrap.c:482
-#, c-format
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr " --driver-name <ÄÒÁÊ×ÅÒ> úÎÁÞÅÎÉÑ ÄÌÑ \"gcc\" ÐÏ ÕÍÏÌÞÁÎÉÀ\n"
-
-#: dllwrap.c:483
-#, c-format
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr " --driver-flags <ÆÌÁÇÉ> ðÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÆÌÁÇÏ× ld ÐÏ ÕÍÏÌÞÁÎÉÀ\n"
-
-#: dllwrap.c:484
-#, c-format
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr " --dlltool-name <dlltool> úÎÁÞÅÎÉÑ ÄÌÑ \"dlltool\" ÐÏ ÕÍÏÌÞÁÎÉÀ\n"
-
-#: dllwrap.c:485
-#, c-format
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr " --entry <ÐÕÎËÔ> õËÁÚÁÎÉÅ ÁÌØÔÅÒÎÁÔÉ×ÎÏÊ ÔÏÞËÉ ×ÈÏÄÁ DLL\n"
-
-#: dllwrap.c:486
-#, c-format
-msgid " --image-base <base> Specify image base address\n"
-msgstr " --image-base <base> õËÁÚÁÎÉÅ ÂÁÚÏ×ÏÇÏ ÁÄÒÅÓÁ ÏÂÒÁÚÁ\n"
-
-#: dllwrap.c:487
-#, c-format
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr " --target <ÍÁÛÉÎÁ> i386-cygwin32 ÉÌÉ i386-mingw32\n"
-
-#: dllwrap.c:488
-#, c-format
-msgid " --dry-run Show what needs to be run\n"
-msgstr " --dry-run ðÏËÁÚÁÔØ, ÞÔÏ ÄÏÌÖÎÏ ÂÙÔØ ÚÁÐÕÝÅÎÏ\n"
-
-#: dllwrap.c:489
-#, c-format
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr " --mno-cygwin óÏÚÄÁÎÉÅ Mingw DLL\n"
-
-#: dllwrap.c:490
-#, c-format
-msgid " Options passed to DLLTOOL:\n"
-msgstr " ïÐÃÉÉ, ÐÅÒÅÄÁ×ÁÅÍÙÅ × DLLTOOL:\n"
-
-#: dllwrap.c:491
-#, c-format
-msgid " --machine <machine>\n"
-msgstr " --machine <ÍÁÛÉÎÁ>\n"
-
-#: dllwrap.c:492
-#, c-format
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr " --output-exp <×ÙÈ_ÉÍÑ> óÏÚÄÁÎÉÅ ÆÁÊÌÁ ÜËÓÐÏÒÔÁ.\n"
-
-#: dllwrap.c:493
-#, c-format
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr " --output-lib <×ÙÈ_ÉÍÑ> óÏÚÄÁÎÉÅ ×ÈÏÄÎÏÊ ÂÉÂÌÉÏÔÅËÉ.\n"
-
-#: dllwrap.c:494
-#, c-format
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr " --add-indirect äÏÂÁ×ÌÅÎÉÅ ÎÅÐÒÑÍÙÈ dll × ÆÁÊÌ ÜËÓÐÏÒÔÁ.\n"
-
-#: dllwrap.c:495
-#, c-format
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr " --dllname <ÉÍÑ> éÍÑ ×ÈÏÄÎÏÊ dll ÄÌÑ ÐÏÍÅÝÅÎÉÑ × ×ÙÈÏÄÎÕÀ ÂÉÂÌÉÏÔÅËÕ.\n"
-
-#: dllwrap.c:496
-#, c-format
-msgid " --def <deffile> Name input .def file\n"
-msgstr " --def <def-ÆÁÊÌ> éÍÑ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ .def\n"
-
-#: dllwrap.c:497
-#, c-format
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr " --output-def <def-ÆÁÊÌ> éÍÑ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ .def\n"
-
-#: dllwrap.c:498
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols üËÓÐÏÒÔ ×ÓÅÈ ÓÉÍ×ÏÌÏ× × .def\n"
-
-#: dllwrap.c:499
-#, c-format
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr " --no-export-all-symbols üËÓÐÏÒÔ ÔÏÌØËÏ ÓÉÍ×ÏÌÏ× .drectve\n"
-
-#: dllwrap.c:500
-#, c-format
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr " --exclude-symbols <ÓÐÉÓÏË> éÓËÌÀÞÉÔØ <ÓÐÉÓÏË> ÉÚ .def\n"
-
-#: dllwrap.c:501
-#, c-format
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr " --no-default-excludes õÄÁÌÅÎÉÅ ÓÉÍ×ÏÌÏ× ÉÓËÌÀÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ\n"
-
-#: dllwrap.c:502
-#, c-format
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr " --base-file <base-ÆÁÊÌ> þÔÅÎÉÅ ÓÏÚÄÁÎÎÏÇÏ ËÏÍÐÏÎÏ×ÝÉËÏÍ base-ÆÁÊÌÁ.\n"
-
-#: dllwrap.c:503
-#, c-format
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr " --no-idata4 îÅ ÓÏÚÄÁ×ÁÔØ ÒÁÚÄÅÌ idata$4.\n"
-
-#: dllwrap.c:504
-#, c-format
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr " --no-idata5 îÅ ÓÏÚÄÁ×ÁÔØ ÒÁÚÄÅÌ idata$5.\n"
-
-#: dllwrap.c:505
-#, c-format
-msgid " -U Add underscores to .lib\n"
-msgstr " -U äÏÂÁ×ÌÅÎÉÅ ÓÉÍ×ÏÌÏ× ÐÏÄÞÅÒËÉ×ÁÎÉÑ × .lib\n"
-
-#: dllwrap.c:506
-#, c-format
-msgid " -k Kill @<n> from exported names\n"
-msgstr " -k õÄÁÌÅÎÉÅ @<n> ÉÚ ÜËÓÐÏÒÔÉÒÏ×ÁÎÎÙÈ ÉÍÅÎ.\n"
-
-#: dllwrap.c:507
-#, c-format
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr " --add-stdcall-alias äÏÂÁ×ÌÅÎÉÅ ÁÌÉÁÓÏ× ÂÅÚ @<n>\n"
-
-#: dllwrap.c:508
-#, c-format
-msgid " --as <name> Use <name> for assembler\n"
-msgstr " --as <ÉÍÑ> éÓÐÏÌØÚÏ×ÁÎÉÅ <ÉÍÅÎÉ> ÄÌÑ ÁÓÓÅÍÂÌÅÒÁ\n"
-
-#: dllwrap.c:509
-#, c-format
-msgid " --nodelete Keep temp files.\n"
-msgstr " --nodelete ïÓÔÁ×ÌÑÔØ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ.\n"
-
-#: dllwrap.c:510
-#, c-format
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr " ïÓÔÁÌØÎÏÅ ÂÅÚ ÉÚÍÅÎÅÎÉÊ ÐÅÒÅÄÁÎÏ ÑÚÙËÏ×ÏÍÕ ÄÒÁÊ×ÅÒÕ\n"
-
-#: dllwrap.c:782
-msgid "Must provide at least one of -o or --dllname options"
-msgstr "îÅÏÂÈÏÄÉÍÏ ÐÒÅÄÏÓÔÁ×ÉÔØ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÏÄÎÕ ÉÚ ÏÐÃÉÊ -o ÉÌÉ --dllname"
-
-#: dllwrap.c:811
-msgid ""
-"no export definition file provided.\n"
-"Creating one, but that may not be what you want"
-msgstr ""
-"ÎÅ ÐÒÅÄÏÓÔÁ×ÌÅÎ ÆÁÊÌ ÏÐÉÓÁÎÉÑ ÜËÓÐÏÒÔÁ.\n"
-"ïÎ ÓÏÚÄÁÅÔÓÑ, ÎÏ ÜÔÏ ÍÏÖÅÔ ÂÙÔØ ÎÅ ÔÏ, ÞÔÏ ×ÁÍ ÎÕÖÎÏ"
-
-#: dllwrap.c:970
-#, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr "DLLTOOL ÉÍÑ : %s\n"
-
-#: dllwrap.c:971
-#, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr "DLLTOOL ÏÐÃÉÉ : %s\n"
-
-#: dllwrap.c:972
-#, c-format
-msgid "DRIVER name : %s\n"
-msgstr "DRIVER ÉÍÑ : %s\n"
-
-#: dllwrap.c:973
-#, c-format
-msgid "DRIVER options : %s\n"
-msgstr "DRIVER ÏÐÃÉÉ : %s\n"
-
-#: dwarf.c:93 dwarf.c:137 readelf.c:322 readelf.c:515
-#, c-format
-msgid "Unhandled data length: %d\n"
-msgstr "äÌÉÎÁ ÎÅÏÂÒÁÂÁÔÙ×ÁÅÍÙÈ ÄÁÎÎÙÈ: %d\n"
-
-#: dwarf.c:237
-msgid "badly formed extended line op encountered!\n"
-msgstr "×ÓÔÒÅÞÅÎ ÎÅ×ÅÒÎÏ ÓÆÏÒÍÉÒÏ×ÁÎÎÙÊ ÒÁÓÛÉÒÅÎÎÙÊ line-up!\n"
-
-#: dwarf.c:244
-#, c-format
-msgid " Extended opcode %d: "
-msgstr " òÁÓÛÉÒÅÎÎÙÊ ËÏÄ ÏÐÅÒÁÃÉÉ %d: "
-
-#: dwarf.c:249
-#, c-format
-msgid ""
-"End of Sequence\n"
-"\n"
-msgstr ""
-"ëÏÎÅà ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ\n"
-"\n"
-
-#: dwarf.c:255
-#, c-format
-msgid "set Address to 0x%lx\n"
-msgstr "ÕÓÔÁÎÏ×ËÁ ÁÄÒÅÓÁ × 0x%lx\n"
-
-#: dwarf.c:260
-#, c-format
-msgid " define new File Table entry\n"
-msgstr " ÏÐÒÅÄÅÌÅÎÉÅ ÎÏ×ÏÇÏ ÐÕÎËÔÁ ôÁÂÌÉÃÙ ÆÁÊÌÏ×\n"
-
-#: dwarf.c:261 dwarf.c:1944
-#, c-format
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr " ðÕÎËÔ\tëÁÔÁÌÏÇ\t÷ÒÅÍÑ\tòÁÚÍÅÒ\téÍÑ\n"
-
-#: dwarf.c:263
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: dwarf.c:266 dwarf.c:268 dwarf.c:270 dwarf.c:1956 dwarf.c:1958 dwarf.c:1960
-#, c-format
-msgid "%lu\t"
-msgstr "%lu\t"
-
-#: dwarf.c:271
-#, c-format
-msgid ""
-"%s\n"
-"\n"
-msgstr ""
-"%s\n"
-"\n"
-
-#: dwarf.c:275
-#, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr "îåéú÷åóôîùê: ÄÌÉÎÁ %d\n"
-
-#: dwarf.c:288
-msgid "<no .debug_str section>"
-msgstr "<ÎÅÔ ÒÁÚÄÅÌÁ .debug_str>"
-
-#: dwarf.c:294
-#, c-format
-msgid "DW_FORM_strp offset too big: %lx\n"
-msgstr "óÍÅÝÅÎÉÅ DW_FORM_strp ÓÌÉÛËÏÍ ÂÏÌØÛÏÅ: %lx\n"
-
-#: dwarf.c:295
-msgid "<offset is too big>"
-msgstr "<ÓÍÅÝÅÎÉÅ ÓÌÉÛËÏÍ ×ÅÌÉËÏ>"
-
-#: dwarf.c:528
-#, c-format
-msgid "Unknown TAG value: %lx"
-msgstr "îÅÉÚ×ÅÓÔÎÏÅ ÚÎÁÞÅÎÉÅ TAG: %lx"
-
-#: dwarf.c:564
-#, c-format
-msgid "Unknown FORM value: %lx"
-msgstr "îÅÉÚ×ÅÓÔÎÏÅ ÚÎÁÞÅÎÉÅ FORM: %lx"
-
-#: dwarf.c:573
-#, c-format
-msgid " %lu byte block: "
-msgstr " %lu-ÂÁÊÔÏ×ÙÊ ÂÌÏË: "
-
-#: dwarf.c:907
-#, c-format
-msgid "(User defined location op)"
-msgstr "(ïÐÒÅÄÅÌÅÎÎÏÅ ÐÏÌØÚÏ×ÁÔÅÌÅÍ ÒÁÚÍÅÝÅÎÉÅ ÏÐÅÒÁÃÉÉ)"
-
-#: dwarf.c:909
-#, c-format
-msgid "(Unknown location op)"
-msgstr "(îÅÉÚ×ÅÓÔÎÏÅ ÒÁÚÍÅÝÅÎÉÅ ÏÐÅÒÁÃÉÉ)"
-
-#: dwarf.c:955
-msgid "Internal error: DWARF version is not 2 or 3.\n"
-msgstr "÷ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: ÎÏÍÅÒ ×ÅÒÓÉÉ DWARF ÎÅ 2 ÉÌÉ 3.\n"
-
-#: dwarf.c:1053
-msgid "DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n"
-msgstr "DW_FORM_data8 ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ, ËÏÇÄÁ sizeof (ÄÌÉÎÎÏÅ ÃÅÌÏÅ ÞÉÓÌÏ ÂÅÚ ÚÎÁËÁ) != 8\n"
-
-#: dwarf.c:1102
-#, c-format
-msgid " (indirect string, offset: 0x%lx): %s"
-msgstr " (ËÏÓ×ÅÎÎÁÑ ÓÔÒÏËÁ, ÓÍÅÝÅÎÉÅ: 0x%lx): %s"
-
-#: dwarf.c:1111
-#, c-format
-msgid "Unrecognized form: %lu\n"
-msgstr "îÅÒÁÓÐÏÚÎÁÎÎÁÑ ÆÏÒÍÁ: %lu\n"
-
-#: dwarf.c:1196
-#, c-format
-msgid "(not inlined)"
-msgstr "(ÎÅ ×ÎÕÔÒÉÓÔÒÏÞÎÙÊ)"
-
-#: dwarf.c:1199
-#, c-format
-msgid "(inlined)"
-msgstr "(×ÎÕÔÒÉÓÔÒÏÞÎÙÊ)"
-
-#: dwarf.c:1202
-#, c-format
-msgid "(declared as inline but ignored)"
-msgstr "(ÏÂßÑ×ÌÅÎ ËÁË ×ÎÕÔÒÉÓÔÒÏÞÎÙÊ, ÎÏ ÐÒÏÐÕÝÅÎ)"
-
-#: dwarf.c:1205
-#, c-format
-msgid "(declared as inline and inlined)"
-msgstr "(ÏÂßÑ×ÌÅÎ ËÁË ×ÎÕÔÒÉÓÔÒÏÞÎÙÊ, ÔÁË É ÅÓÔØ)"
-
-#: dwarf.c:1208
-#, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr " (îÅÉÚ×ÅÓÔÎÏÅ ÚÎÁÞÅÎÉÅ ×ÎÕÔÒÉÓÔÒÏÞÎÏÇÏ ÁÔÒÉÂÕÔÁ: %lx)"
-
-#: dwarf.c:1354 dwarf.c:2484
-#, c-format
-msgid " [without DW_AT_frame_base]"
-msgstr " [ÂÅÚ DW_AT_frame_base]"
-
-#: dwarf.c:1357
-#, c-format
-msgid "(location list)"
-msgstr "(ÓÐÉÓÏË ÍÅÓÔÏÐÏÌÏÖÅÎÉÑ)"
-
-#: dwarf.c:1475
-#, c-format
-msgid "Unknown AT value: %lx"
-msgstr "îÅÉÚ×ÅÓÔÎÏÅ ÚÎÁÞÅÎÉÅ AT: %lx "
-
-#: dwarf.c:1544
-#, c-format
-msgid "No comp units in %s section ?"
-msgstr "÷ ÒÁÚÄÅÌÅ %s ÎÅÔ ÜÌÅÍÅÎÔÏ× comp?"
-
-#: dwarf.c:1553
-#, c-format
-msgid "Not enough memory for a debug info array of %u entries"
-msgstr "îÅÄÏÓÔÁÔÏÞÎÏ ÐÁÍÑÔÉ ÄÌÑ ÍÁÓÓÉ×Á Ó ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÅÊ ÉÚ %u ÜÌÅÍÅÎÔÏ×"
-
-#: dwarf.c:1561 dwarf.c:2573
-#, c-format
-msgid ""
-"The section %s contains:\n"
-"\n"
-msgstr ""
-"òÁÚÄÅÌ %s ÓÏÄÅÒÖÉÔ:\n"
-"\n"
-
-#: dwarf.c:1569
-#, c-format
-msgid "Unable to locate %s section!\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÒÁÚÍÅÝÅÎÉÅ ÒÁÚÄÅÌÁ %s!\n"
-
-#: dwarf.c:1635
-#, c-format
-msgid " Compilation Unit @ offset 0x%lx:\n"
-msgstr " åÄÉÎÉÃÁ ËÏÍÐÉÌÑÃÉÉ @ ÓÍÅÝÅÎÉÅ 0x%lx:\n"
-
-#: dwarf.c:1636
-#, c-format
-msgid " Length: %ld\n"
-msgstr " äÌÉÎÁ: %ld\n"
-
-#: dwarf.c:1637
-#, c-format
-msgid " Version: %d\n"
-msgstr " ÷ÅÒÓÉÑ: %d\n"
-
-#: dwarf.c:1638
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr " óÍÅÝ. ÁÂÂÒÅ×: %ld\n"
-
-#: dwarf.c:1639
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " òÁÚÍ. ÕËÁÚÁÔ: %d\n"
-
-#: dwarf.c:1644
-msgid "Only version 2 and 3 DWARF debug information is currently supported.\n"
-msgstr "óÅÊÞÁÓ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ ÏÔÌÁÄÏÞÎÁÑ ÉÎÆÏÒÍÁÃÉÑ ÔÏÌØËÏ ÄÌÑ DWARF ×ÅÒÓÉÉ 2 É 3.\n"
-
-#: dwarf.c:1685
-#, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÒÁÚÍÅÝÅÎÉÅ ÐÕÎËÔÁ %lu × ÔÁÂÌÉÃÅ ÁÂÂÒÅ×ÉÁÃÉÉ\n"
-
-#: dwarf.c:1691
-#, c-format
-msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
-msgstr " <%d><%lx>: îÏÍÅÒ ÁÂÂÒÅ×: %lu (%s)\n"
-
-#: dwarf.c:1785
-#, c-format
-msgid "%s section needs a populated .debug_info section\n"
-msgstr "òÁÚÄÅÌÕ %s ÎÅÏÂÈÏÄÉÍ ÚÁÐÏÌÎÅÎÎÙÊ ÒÁÚÄÅÌ .debug_info\n"
-
-#: dwarf.c:1792
-#, c-format
-msgid "%s section has more comp units than .debug_info section\n"
-msgstr "òÁÚÄÅÌ %s ÓÏÄÅÒÖÉÔ ÂÏÌØÛÅ ÜÌÅÍÅÎÔÏ× comp, ÞÅÍ ÒÁÚÄÅÌ .debug_info\n"
-
-#: dwarf.c:1794
-#, c-format
-msgid ""
-"assuming that the pointer size is %d, from the last comp unit in .debug_info\n"
-"\n"
-msgstr ""
-"ÐÏÄÒÁÚÕÍÅ×ÁÅÔÓÑ, ÞÔÏ ÒÁÚÍÅÒ ÕËÁÚÁÔÅÌÑ - %d, ÏÔ ÐÏÓÌÅÄÎÅÇÏ ÜÌÅÍÅÎÔÁ comp × .debug_info\n"
-"\n"
-
-#: dwarf.c:1819
-#, c-format
-msgid ""
-"\n"
-"Dump of debug contents of section %s:\n"
-"\n"
-msgstr ""
-"\n"
-"äÁÍÐ ÄÌÑ ÏÔÌÁÄËÉ ÓÏÄÅÒÖÉÍÏÇÏ ÒÁÚÄÅÌÁ %s:\n"
-"\n"
-
-#: dwarf.c:1858
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr "ðÏÈÏÖÅ, ÞÔÏ ÓÔÒÏËÁ ÉÎÆÏ ÐÏ×ÒÅÖÄÅÎÁ - ÒÁÚÄÅÌ ÓÌÉÛËÏÍ ÍÁÌ\n"
-
-#: dwarf.c:1867
-msgid "Only DWARF version 2 and 3 line info is currently supported.\n"
-msgstr "óÅÊÞÁÓ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ ÓÔÒÏËÉ ÉÎÆÏ ÔÏÌØËÏ ÄÌÑ DWARF ×ÅÒÓÉÉ 2 É 3.\n"
-
-#: dwarf.c:1894
-#, c-format
-msgid " Length: %ld\n"
-msgstr " äÌÉÎÁ: %ld\n"
-
-#: dwarf.c:1895
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr " DWARF ×ÅÒÓÉÑ: %d\n"
-
-#: dwarf.c:1896
-#, c-format
-msgid " Prologue Length: %d\n"
-msgstr " äÌÉÎÁ ÐÒÏÌÏÇÁ: %d\n"
-
-#: dwarf.c:1897
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr " íÉÎÉÍ. ÄÌÉÎÁ ÉÎÓÔÒÕËÃÉÉ: %d\n"
-
-#: dwarf.c:1898
-#, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr " îÁÞ. ÚÎÁÞÅÎÉÅ 'is_stmt': %d\n"
-
-#: dwarf.c:1899
-#, c-format
-msgid " Line Base: %d\n"
-msgstr " ïÓÎÏ×ÁÎÉÅ ÓÔÒÏËÉ: %d\n"
-
-#: dwarf.c:1900
-#, c-format
-msgid " Line Range: %d\n"
-msgstr " äÉÁÐÁÚÏÎ ÓÔÒÏËÉ: %d\n"
-
-#: dwarf.c:1901
-#, c-format
-msgid " Opcode Base: %d\n"
-msgstr " ïÓÎÏ×ÁÎÉÅ ËÏÄÁ ÏÐÅÒÁÃÉÉ: %d\n"
-
-#: dwarf.c:1902
-#, c-format
-msgid " (Pointer size: %u)%s\n"
-msgstr " (òÁÚÍÅÒ ÕËÁÚÁÔÅÌÑ: %u)%s\n"
-
-#: dwarf.c:1913
-#, c-format
-msgid ""
-"\n"
-" Opcodes:\n"
-msgstr ""
-"\n"
-" ëÏÄÙ ÏÐÅÒÁÃÉÊ:\n"
-
-#: dwarf.c:1916
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr " ëÏÄ ÏÐÅÒÁÃÉÉ %d ÓÏÄÅÒÖÉÔ %d ÁÒÇÕÍÅÎÔÏ×\n"
-
-#: dwarf.c:1922
-#, c-format
-msgid ""
-"\n"
-" The Directory Table is empty.\n"
-msgstr ""
-"\n"
-" ôÁÂÌÉÃÁ ËÁÔÁÌÏÇÏ× ÐÕÓÔÁ.\n"
-
-#: dwarf.c:1925
-#, c-format
-msgid ""
-"\n"
-" The Directory Table:\n"
-msgstr ""
-"\n"
-" ôÁÂÌÉÃÁ ËÁÔÁÌÏÇÏ×:\n"
-
-#: dwarf.c:1929
-#, c-format
-msgid " %s\n"
-msgstr " %s\n"
-
-#: dwarf.c:1940
-#, c-format
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr ""
-"\n"
-" ôÁÂÌÉÃÁ ÉÍÅÎ ÆÁÊÌÏ× ÐÕÓÔÁ.\n"
-
-#: dwarf.c:1943
-#, c-format
-msgid ""
-"\n"
-" The File Name Table:\n"
-msgstr ""
-"\n"
-" ôÁÂÌÉÃÁ ÉÍÅÎ ÆÁÊÌÏ×:\n"
-
-#: dwarf.c:1951
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: dwarf.c:1962
-#, c-format
-msgid "%s\n"
-msgstr "%s\n"
-
-#. Now display the statements.
-#: dwarf.c:1970
-#, c-format
-msgid ""
-"\n"
-" Line Number Statements:\n"
-msgstr ""
-"\n"
-" ïÐÅÒÁÔÏÒÙ ÎÏÍÅÒÁ ÓÔÒÏËÉ:\n"
-
-#: dwarf.c:1986
-#, c-format
-msgid " Special opcode %d: advance Address by %lu to 0x%lx"
-msgstr " óÐÅÃÉÁÌØÎÙÊ ËÏÄ ÏÐÅÒÁÃÉÉ %d: ÐÒÏÄ×ÉÖÅÎÉÅ ÁÄÒÅÓÁ ÎÁ %lu × 0x%lx"
-
-#: dwarf.c:1990
-#, c-format
-msgid " and Line by %d to %d\n"
-msgstr " É ÓÔÒÏËÉ ÎÁ %d × %d\n"
-
-#: dwarf.c:1998
-msgid "Extend line ops need a valid pointer size, guessing at 4\n"
-msgstr "äÌÑ ÒÁÓÛÉÒÅÎÎÙÈ ËÏÄÏ× ÏÐÅÒÁÃÉÊ ÎÕÖÅÎ ×ÅÒÎÙÊ ÒÁÚÍÅÒ ÕËÁÚÁÔÅÌÑ; ÐÒÅÄÐÏÌÁÇÁÅÔÓÑ 4\n"
-
-#: dwarf.c:2007
-#, c-format
-msgid " Copy\n"
-msgstr " ëÏÐÉÑ\n"
-
-#: dwarf.c:2015
-#, c-format
-msgid " Advance PC by %lu to 0x%lx\n"
-msgstr " ðÒÏÄ×ÉÖÅÎÉÅ ÓÞ£ÔÞÉËÁ ËÏÍÁÎÄ ÎÁ %lu × 0x%lx\n"
-
-#: dwarf.c:2023
-#, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr " ðÒÏÄ×ÉÖÅÎÉÅ ÓÔÒÏËÉ ÎÁ %d × %d\n"
-
-#: dwarf.c:2030
-#, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr " õÓÔÁÎÏ×ËÁ ÉÍÅÎÉ ÆÁÊÌÁ × ÐÕÎËÔ %d × ÔÁÂÌÉÃÅ ÉÍÅÎ ÆÁÊÌÏ×\n"
-
-#: dwarf.c:2038
-#, c-format
-msgid " Set column to %lu\n"
-msgstr " õÓÔÁÎÏ×ËÁ ÓÔÏÌÂÃÁ × %lu\n"
-
-#: dwarf.c:2045
-#, c-format
-msgid " Set is_stmt to %d\n"
-msgstr " õÓÔÁÎÏ×ËÁ is_stmt × %d\n"
-
-#: dwarf.c:2050
-#, c-format
-msgid " Set basic block\n"
-msgstr " õÓÔÁÎÏ×ËÁ ÂÁÚÏ×ÏÇÏ ÂÌÏËÁ\n"
-
-#: dwarf.c:2058
-#, c-format
-msgid " Advance PC by constant %lu to 0x%lx\n"
-msgstr " ðÒÏÄ×ÉÖÅÎÉÅ ÓÞ£ÔÞÉËÁ ËÏÍÁÎÄ ÎÁ ÐÏÓÔÏÑÎÎÕÀ %lu × 0x%lx\n"
-
-#: dwarf.c:2066
-#, c-format
-msgid " Advance PC by fixed size amount %lu to 0x%lx\n"
-msgstr " ðÒÏÄ×ÉÖÅÎÉÅ ÓÞ£ÔÞÉËÁ ËÏÍÁÎÄ ÎÁ ×ÅÌÉÞÉÎÕ ÆÉËÓÉÒÏ×ÁÎÎÏÇÏ ÒÁÚÍÅÒÁ %lu × 0x%lx\n"
-
-#: dwarf.c:2071
-#, c-format
-msgid " Set prologue_end to true\n"
-msgstr " õÓÔÁÎÏ×ËÁ prologue_end × `ÉÓÔÉÎÁ'\n"
-
-#: dwarf.c:2075
-#, c-format
-msgid " Set epilogue_begin to true\n"
-msgstr " õÓÔÁÎÏ×ËÁ epilogue_begin × `ÉÓÔÉÎÁ'\n"
-
-#: dwarf.c:2081
-#, c-format
-msgid " Set ISA to %lu\n"
-msgstr " õÓÔÁÎÏ×ËÁ ISA × %lu\n"
-
-#: dwarf.c:2085
-#, c-format
-msgid " Unknown opcode %d with operands: "
-msgstr " îÅÉÚ×ÅÓÔÎÙÊ ËÏÄ ÏÐÅÒÁÃÉÉ %d Ó ÏÐÅÒÁÎÄÁÍÉ: "
-
-#: dwarf.c:2111 dwarf.c:2197 dwarf.c:2271 dwarf.c:2382 dwarf.c:2514
-#: dwarf.c:2739
-#, c-format
-msgid ""
-"Contents of the %s section:\n"
-"\n"
-msgstr ""
-"óÏÄÅÒÖÉÍÏÅ ÒÁÚÄÅÌÁ %s:\n"
-"\n"
-
-#: dwarf.c:2151
-msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
-msgstr "óÅÊÞÁÓ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ pubname ÔÏÌØËÏ ÄÌÑ DWARF ×ÅÒÓÉÉ 2 É 3\n"
-
-#: dwarf.c:2158
-#, c-format
-msgid " Length: %ld\n"
-msgstr " äÌÉÎÁ: %ld\n"
-
-#: dwarf.c:2160
-#, c-format
-msgid " Version: %d\n"
-msgstr " ÷ÅÒÓÉÑ: %d\n"
-
-#: dwarf.c:2162
-#, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr " óÍÅÝÅÎÉÅ × ÒÁÚÄÅÌ .debug_info: %ld\n"
-
-#: dwarf.c:2164
-#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr " òÁÚÍ. ÏÂÌÁÓÔÉ × ÒÁÚÄÅÌÅ .debug_info: %ld\n"
-
-#: dwarf.c:2167
-#, c-format
-msgid ""
-"\n"
-" Offset\tName\n"
-msgstr ""
-"\n"
-" óÍÅÝÅÎÉÅ\téÍÑ\n"
-
-#: dwarf.c:2218
-#, c-format
-msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr " DW_MACINFO_start_file - ÎÏÍÅÒ_ÓÔÒÏËÉ: %d ÎÏÍÅÒ_ÆÁÊÌÁ: %d\n"
-
-#: dwarf.c:2224
-#, c-format
-msgid " DW_MACINFO_end_file\n"
-msgstr " DW_MACINFO_end_file\n"
-
-#: dwarf.c:2232
-#, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_define - ÎÏÍÅÒ_ÓÔÒÏËÉ : %d ÍÁËÒÏ : %s\n"
-
-#: dwarf.c:2241
-#, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_undef - ÎÏÍÅÒ_ÓÔÒÏËÉ : %d ÍÁËÒÏ : %s\n"
-
-#: dwarf.c:2253
-#, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr " DW_MACINFO_vendor_ext - ËÏÎÓÔÁÎÔÁ : %d ÓÔÒÏËÁ : %s\n"
-
-#: dwarf.c:2282
-#, c-format
-msgid " Number TAG\n"
-msgstr " þÉÓÌÏ TAG\n"
-
-#: dwarf.c:2288
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr " %ld %s [%s]\n"
-
-#: dwarf.c:2291
-msgid "has children"
-msgstr "ÉÍÅÅÔ ÐÏÔÏÍËÏ×"
-
-#: dwarf.c:2291
-msgid "no children"
-msgstr "ÎÅÔ ÐÏÔÏÍËÏ×"
-
-#: dwarf.c:2294
-#, c-format
-msgid " %-18s %s\n"
-msgstr " %-18s %s\n"
-
-#: dwarf.c:2327 dwarf.c:2510 dwarf.c:2684
-#, c-format
-msgid ""
-"\n"
-"The %s section is empty.\n"
-msgstr ""
-"\n"
-"òÁÚÄÅÌ %s ÐÕÓÔ.\n"
-
-#. FIXME: Should we handle this case?
-#: dwarf.c:2372
-msgid "Location lists in .debug_info section aren't in ascending order!\n"
-msgstr "óÐÉÓËÉ ÍÅÓÔÏÐÏÌÏÖÅÎÉÊ × ÒÁÚÄÅÌÅ .debug_info ÎÅ ÕÐÏÒÑÄÏÞÅÎÙ ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ!\n"
-
-#: dwarf.c:2375
-msgid "No location lists in .debug_info section!\n"
-msgstr "÷ ÒÁÚÄÅÌÅ .debug_info ÎÅÔ ÓÐÉÓËÏ× ÍÅÓÔÏÐÏÌÏÖÅÎÉÊ!\n"
-
-#: dwarf.c:2379
-#, c-format
-msgid "Location lists in %s section start at 0x%lx\n"
-msgstr "óÐÉÓËÉ ÍÅÓÔÏÐÏÌÏÖÅÎÉÊ × ÒÁÚÄÅÌÅ %s ÎÁÞÉÎÁÀÔÓÑ Ó 0x%lx\n"
-
-#: dwarf.c:2383
-#, c-format
-msgid " Offset Begin End Expression\n"
-msgstr " óÍÅÝ. îÁÞÁÌÏ ëÏÎÅà òÁÓÛÉÒÅÎÉÅ\n"
-
-#: dwarf.c:2414
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "÷ ÒÁÚÄÅÌÅ .debug_loc ÐÒÉÓÕÔÓÔ×ÕÅÔ ÄÙÒÁ [0x%lx - 0x%lx].\n"
-
-#: dwarf.c:2417
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "÷ ÒÁÚÄÅÌÅ .debug_loc ÐÒÉÓÕÔÓÔ×ÕÅÔ ÐÅÒÅËÒÙÔÉÅ [0x%lx - 0x%lx].\n"
-
-#: dwarf.c:2424
-#, c-format
-msgid "Offset 0x%lx is bigger than .debug_loc section size.\n"
-msgstr "óÍÅÝÅÎÉÅ 0x%lx ÂÏÌØÛÅ, ÞÅÍ ÒÁÚÍÅÒ ÒÁÚÄÅÌÁ .debug_loc.\n"
-
-#: dwarf.c:2433 dwarf.c:2460 dwarf.c:2470
-#, c-format
-msgid "Location list starting at offset 0x%lx is not terminated.\n"
-msgstr "óÐÉÓÏË ÍÅÓÔÏÐÏÌÏÖÅÎÉÊ, ÎÁÞÉÎÁÑ ÓÏ ÓÍÅÝÅÎÉÑ 0x%lx, ÎÅ ÚÁ×ÅÒÛ£Î.\n"
-
-#: dwarf.c:2445 dwarf.c:2784
-#, c-format
-msgid " %8.8lx <End of list>\n"
-msgstr " %8.8lx <ëÏÎÅà ÓÐÉÓËÁ>\n"
-
-#: dwarf.c:2453
-#, c-format
-msgid " %8.8lx %8.8lx %8.8lx (base address)\n"
-msgstr " %8.8lx %8.8lx %8.8lx (ÂÁÚÏ×ÙÊ ÁÄÒÅÓ)\n"
-
-#: dwarf.c:2487 dwarf.c:2801
-msgid " (start == end)"
-msgstr " (ÎÁÞÁÌÏ == ËÏÎÅÃ)"
-
-#: dwarf.c:2489 dwarf.c:2803
-msgid " (start > end)"
-msgstr " (ÎÁÞÁÌÏ > ËÏÎÅÃ)"
-
-#: dwarf.c:2618
-msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
-msgstr "óÅÊÞÁÓ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ aganges ÔÏÌØËÏ ÄÌÑ DWARF ×ÅÒÓÉÉ 2 É 3.\n"
-
-#: dwarf.c:2622
-#, c-format
-msgid " Length: %ld\n"
-msgstr " äÌÉÎÁ: %ld\n"
-
-#: dwarf.c:2623
-#, c-format
-msgid " Version: %d\n"
-msgstr " ÷ÅÒÓÉÑ: %d\n"
-
-#: dwarf.c:2624
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr " óÍÅÝÅÎÉÅ × .debug_info: %lx\n"
-
-#: dwarf.c:2625
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " òÁÚÍ. ÕËÁÚÁÔ: %d\n"
-
-#: dwarf.c:2626
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr " òÁÚÍ. ÓÅÇÍ.: %d\n"
-
-#: dwarf.c:2628
-#, c-format
-msgid ""
-"\n"
-" Address Length\n"
-msgstr ""
-"\n"
-" áÄÒÅÓ äÌÉÎÁ\n"
-
-#. FIXME: Should we handle this case?
-#: dwarf.c:2729
-msgid "Range lists in .debug_info section aren't in ascending order!\n"
-msgstr "óÐÉÓËÉ ÄÉÁÐÁÚÏÎÏ× × ÒÁÚÄÅÌÅ .debug_info ÎÅ ÕÐÏÒÑÄÏÞÅÎÙ ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ!\n"
-
-#: dwarf.c:2732
-msgid "No range lists in .debug_info section!\n"
-msgstr "÷ ÒÁÚÄÅÌÅ .debug_info ÎÅÔ ÓÐÉÓËÏ× ÄÉÁÐÁÚÏÎÏ×!\n"
-
-#: dwarf.c:2736
-#, c-format
-msgid "Range lists in %s section start at 0x%lx\n"
-msgstr "óÐÉÓËÉ ÄÉÁÐÁÚÏÎÏ× × ÒÁÚÄÅÌÅ %s ÎÁÞÉÎÁÀÔÓÑ Ó 0x%lx\n"
-
-#: dwarf.c:2740
-#, c-format
-msgid " Offset Begin End\n"
-msgstr " óÍÅÝ. îÁÞÁÌÏ ëÏÎÅÃ\n"
-
-#: dwarf.c:2765
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in %s section.\n"
-msgstr "äÙÒÁ [0x%lx - 0x%lx] × ÒÁÚÄÅÌÅ %s.\n"
-
-#: dwarf.c:2769
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in %s section.\n"
-msgstr "ðÅÒÅËÒÙÔÉÅ [0x%lx - 0x%lx] × ÒÁÚÄÅÌÅ %s.\n"
-
-#: dwarf.c:2964
-#, c-format
-msgid "The section %s contains:\n"
-msgstr "òÁÚÄÅÌ %s ÓÏÄÅÒÖÉÔ:\n"
-
-#: dwarf.c:3608
-#, c-format
-msgid "unsupported or unknown DW_CFA_%d\n"
-msgstr "ÎÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ÉÌÉ ÎÅÉÚ×ÅÓÔÎÙÊ DW_CFA_%d\n"
-
-#: dwarf.c:3632
-#, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr "ïÔÏÂÒÁÖÅÎÉÅ ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÒÁÚÄÅÌÁ %s ÅÝÅ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ.\n"
-
-#: dwarf.c:3674
-#, c-format
-msgid "%s: Error: "
-msgstr "%s: ïÛÉÂËÁ: "
-
-#: dwarf.c:3685
-#, c-format
-msgid "%s: Warning: "
-msgstr "%s: ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: "
-
-#: emul_aix.c:51
-#, c-format
-msgid " [-g] - 32 bit small archive\n"
-msgstr " [-g] - 32-ÂÉÔÎÙÊ ÍÁÌÅÎØËÉÊ ÁÒÈÉ×\n"
-
-#: emul_aix.c:52
-#, c-format
-msgid " [-X32] - ignores 64 bit objects\n"
-msgstr " [-X32] - ÐÒÏÐÕÓËÁÅÔ 64-ÂÉÔÎÙÅ ÏÂßÅËÔÙ\n"
-
-#: emul_aix.c:53
-#, c-format
-msgid " [-X64] - ignores 32 bit objects\n"
-msgstr " [-X64] - ÐÒÏÐÕÓËÁÅÔ 32-ÂÉÔÎÙÅ ÏÂßÅËÔÙ\n"
-
-#: emul_aix.c:54
-#, c-format
-msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
-msgstr " [-X32_64] - ÄÏÐÕÓËÁÅÔ 32- É 64-ÂÉÔÎÙÅ ÏÂßÅËÔÙ\n"
-
-#: ieee.c:311
-msgid "unexpected end of debugging information"
-msgstr "ÎÅÏÖÉÄÁÎÎÏÅ ÏËÏÎÞÁÎÉÅ ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ"
-
-#: ieee.c:398
-msgid "invalid number"
-msgstr "ÎÅ×ÅÒÎÙÊ ÎÏÍÅÒ"
-
-#: ieee.c:451
-msgid "invalid string length"
-msgstr "ÎÅ×ÅÒÎÁÑ ÄÌÉÎÁ ÓÔÒÏËÉ"
-
-#: ieee.c:506 ieee.c:547
-msgid "expression stack overflow"
-msgstr "ÐÅÒÅÐÏÌÎÅÎÉÅ ÓÔÅËÁ ×ÙÒÁÖÅÎÉÑ"
-
-#: ieee.c:526
-msgid "unsupported IEEE expression operator"
-msgstr "ÎÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ÏÐÅÒÁÔÏÒ ×ÙÒÁÖÅÎÉÑ IEEE"
-
-#: ieee.c:541
-msgid "unknown section"
-msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÒÁÚÄÅÌ"
-
-#: ieee.c:562
-msgid "expression stack underflow"
-msgstr "ÏÐÕÓÔÏÛÅÎÉÅ ÓÔÅËÁ ×ÙÒÁÖÅÎÉÑ"
-
-#: ieee.c:576
-msgid "expression stack mismatch"
-msgstr "ÎÅÓÏ×ÐÁÄÅÎÉÅ ÓÔÅËÁ ×ÙÒÁÖÅÎÉÑ"
-
-#: ieee.c:613
-msgid "unknown builtin type"
-msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ×ÓÔÒÏÅÎÎÙÊ ÔÉÐ"
-
-#: ieee.c:758
-msgid "BCD float type not supported"
-msgstr "ä×ÏÉÞÎÏ-ËÏÄÉÒÏ×ÁÎÎÙÊ ÄÅÓÑÔÉÞÎÙÊ ÔÉÐ Ó ÐÌÁ×ÁÀÝÅÊ ÚÁÐÑÔÏÊ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ"
-
-#: ieee.c:895
-msgid "unexpected number"
-msgstr "ÎÅÏÖÉÄÁÎÎÏÅ ÞÉÓÌÏ"
-
-#: ieee.c:902
-msgid "unexpected record type"
-msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ËÏÍÂÉÎÉÒÏ×ÁÎÎÙÊ ÔÉÐ"
-
-#: ieee.c:935
-msgid "blocks left on stack at end"
-msgstr "× ËÏÎÃÅ ÓÔÅËÁ ÏÓÔÁÌÉÓØ ÂÌÏËÉ"
-
-#: ieee.c:1198
-msgid "unknown BB type"
-msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÔÉÐ BB"
-
-#: ieee.c:1207
-msgid "stack overflow"
-msgstr "ÐÅÒÅÐÏÌÎÅÎÉÅ ÓÔÅËÁ"
-
-#: ieee.c:1230
-msgid "stack underflow"
-msgstr "ÏÐÕÓÔÏÛÅÎÉÅ ÓÔÅËÁ"
-
-#: ieee.c:1342 ieee.c:1412 ieee.c:2109
-msgid "illegal variable index"
-msgstr "ÎÅ×ÅÒÎÙÊ ÉÎÄÅËÓ ÐÅÒÅÍÅÎÎÏÊ"
-
-#: ieee.c:1390
-msgid "illegal type index"
-msgstr "ÎÅ×ÅÒÎÙÊ ÉÎÄÅËÓ ÔÉÐÁ"
-
-#: ieee.c:1400 ieee.c:1437
-msgid "unknown TY code"
-msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ËÏÄ TY"
-
-#: ieee.c:1419
-msgid "undefined variable in TY"
-msgstr "ÎÅÏÐÒÅÄÅÌÅÎÎÁÑ ÐÅÒÅÍÅÎÎÁÑ × TY"
-
-#. Pascal file name. FIXME.
-#: ieee.c:1830
-msgid "Pascal file name not supported"
-msgstr "éÍÑ ÆÁÊÌÁ Pascal ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ"
-
-#: ieee.c:1878
-msgid "unsupported qualifier"
-msgstr "ÎÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ËÌÁÓÓÉÆÉËÁÔÏÒ"
-
-#: ieee.c:2147
-msgid "undefined variable in ATN"
-msgstr "ÎÅÏÐÒÅÄÅÌÅÎÎÁÑ ÐÅÒÅÍÅÎÎÁÑ × ATN"
-
-#: ieee.c:2190
-msgid "unknown ATN type"
-msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÔÉÐ ATN"
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2312
-msgid "unsupported ATN11"
-msgstr "ÎÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ATN11"
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2339
-msgid "unsupported ATN12"
-msgstr "ÎÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ATN12"
-
-#: ieee.c:2399
-msgid "unexpected string in C++ misc"
-msgstr "ÎÅÏÖÉÄÁÎÎÁÑ ÓÔÒÏËÁ × C++ misc"
-
-#: ieee.c:2412
-msgid "bad misc record"
-msgstr "ÐÌÏÈÁÑ ÚÁÐÉÓØ misc"
-
-#: ieee.c:2453
-msgid "unrecognized C++ misc record"
-msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ C++ ÚÁÐÉÓØ misc"
-
-#: ieee.c:2568
-msgid "undefined C++ object"
-msgstr "ÎÅÏÐÒÅÄÅÌÅÎÎÙÊ ÏÂßÅËÔ C++"
-
-#: ieee.c:2602
-msgid "unrecognized C++ object spec"
-msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ ÓÐÅÃÉÆÉËÁÃÉÑ ÏÂßÅËÔÁ C++"
-
-#: ieee.c:2638
-msgid "unsupported C++ object type"
-msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ ÔÉÐ ÏÂßÅËÔÁ C++"
-
-#: ieee.c:2648
-msgid "C++ base class not defined"
-msgstr "ÂÁÚÏ×ÙÊ ËÌÁÓÓ C++ ÎÅ ÏÐÒÅÄÅÌÅÎ"
-
-#: ieee.c:2660 ieee.c:2765
-msgid "C++ object has no fields"
-msgstr "ÏÂßÅËÔ C++ ÎÅ ÉÍÅÅÔ ÐÏÌÅÊ"
-
-#: ieee.c:2679
-msgid "C++ base class not found in container"
-msgstr "ÂÁÚÏ×ÙÊ ËÌÁÓÓ C++ ÎÅ ÎÁÊÄÅÎ × ËÏÎÅÊÎÅÒÅ"
-
-#: ieee.c:2786
-msgid "C++ data member not found in container"
-msgstr "ÜÌÅÍÅÎÔ ËÌÁÓÓÁ C++ ÎÅ ÎÁÊÄÅÎ × ËÏÎÔÅÊÎÅÒÅ"
-
-#: ieee.c:2827 ieee.c:2977
-msgid "unknown C++ visibility"
-msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ×ÉÄÉÍÏÓÔØ C++"
-
-#: ieee.c:2861
-msgid "bad C++ field bit pos or size"
-msgstr "ÎÅ×ÅÒÎÙÊ Ä×ÏÉÞÎÙÊ ÒÁÚÒÑÄ ÉÌÉ ÒÁÚÍÅÒ ÐÏÌÑ C++"
-
-#: ieee.c:2953
-msgid "bad type for C++ method function"
-msgstr "ÎÅ×ÅÒÎÙÊ ÔÉÐ ÆÕÎËÃÉÉ ÍÅÔÏÄÁ C++"
-
-#: ieee.c:2963
-msgid "no type information for C++ method function"
-msgstr "ÎÅÔ ÉÎÆÏÒÍÁÃÉÉ Ï ÔÉÐÅ ÄÌÑ ÆÕÎËÃÉÉ ÍÅÔÏÄÁ C++"
-
-#: ieee.c:3002
-msgid "C++ static virtual method"
-msgstr "ÓÔÁÔÉÞÅÓËÉÊ ×ÉÒÔÕÁÌØÎÙÊ ÍÅÔÏÄ C++"
-
-#: ieee.c:3097
-msgid "unrecognized C++ object overhead spec"
-msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ ÓÌÕÖÅÂÎÁÑ ÓÐÅÃÉÆÉËÁÃÉÑ ÏÂßÅËÔÁ C++"
-
-#: ieee.c:3136
-msgid "undefined C++ vtable"
-msgstr "ÎÅÏÐÒÅÄÅÌÅÎÎÁÑ ×ÉÒÔÕÁÌØÎÁÑ ÔÁÂÌÉÃÁ C++"
-
-#: ieee.c:3205
-msgid "C++ default values not in a function"
-msgstr "ÚÎÁÞÅÎÉÑ C++ ÐÏ ÕÍÏÌÞÁÎÉÀ ÎÅ × ÆÕÎËÃÉÉ"
-
-#: ieee.c:3245
-msgid "unrecognized C++ default type"
-msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ ÔÉÐ C++ ÐÏ ÕÍÏÌÞÁÎÉÀ"
-
-#: ieee.c:3276
-msgid "reference parameter is not a pointer"
-msgstr "ÓÓÙÌÏÞÎÙÊ ÐÁÒÁÍÅÔÒ ÎÅ Ñ×ÌÑÅÔÓÑ ÕËÁÚÁÔÅÌÅÍ"
-
-#: ieee.c:3359
-msgid "unrecognized C++ reference type"
-msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ ÓÓÙÌÏÞÎÙÊ ÔÉÐ C++"
-
-#: ieee.c:3441
-msgid "C++ reference not found"
-msgstr "ÓÓÙÌËÁ C++ ÎÅ ÎÁÊÄÅÎÁ"
-
-#: ieee.c:3449
-msgid "C++ reference is not pointer"
-msgstr "ÓÓÙÌËÁ C++ ÎÅ Ñ×ÌÑÅÔÓÑ ÕËÁÚÁÔÅÌÅÍ"
-
-#: ieee.c:3475 ieee.c:3483
-msgid "missing required ASN"
-msgstr "ÏÔÓÕÔÓÔ×ÕÅÔ ÔÒÅÂÕÅÍÙÊ ASN"
-
-#: ieee.c:3510 ieee.c:3518
-msgid "missing required ATN65"
-msgstr "ÏÔÓÕÔÓÔ×ÕÅÔ ÔÒÅÂÕÅÍÙÊ ATN65"
-
-#: ieee.c:3532
-msgid "bad ATN65 record"
-msgstr "ÐÌÏÈÁÑ ÚÁÐÉÓØ ATN65"
-
-#: ieee.c:4160
-#, c-format
-msgid "IEEE numeric overflow: 0x"
-msgstr "ÞÉÓÌÏ×ÏÅ ÐÅÒÅÐÏÌÎÅÎÉÅ IEEE: 0x"
-
-#: ieee.c:4204
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr "ÐÅÒÅÐÏÌÎÅÎÉÅ ÄÌÉÎÙ ÓÔÒÏËÉ IEEE: %u\n"
-
-#: ieee.c:5203
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr "ÎÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ÒÁÚÍÅÒ ÃÅÌÏÇÏ ÔÉÐÁ IEEE %u\n"
-
-#: ieee.c:5237
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr "ÎÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ÒÁÚÍÅÒ ÔÉÐÁ Ó ÐÌÁ×ÁÀÝÅÊ ÚÁÐÑÔÏÊ IEEE %u\n"
-
-#: ieee.c:5271
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr "ÎÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ ÒÁÚÍÅÒ ËÏÍÐÌÅËÓÎÏÇÏ ÔÉÐÁ IEEE%u\n"
-
-#: nlmconv.c:269 srconv.c:1813
-msgid "input and output files must be different"
-msgstr "×ÈÏÄÎÏÊ É ×ÙÈÏÄÎÏÊ ÆÁÊÌÙ ÄÏÌÖÎÙ ÂÙÔØ ÒÁÚÌÉÞÎÙÍÉ"
-
-#: nlmconv.c:316
-msgid "input file named both on command line and with INPUT"
-msgstr "×ÈÏÄÎÏÊ ÆÁÊÌ ÎÁÚ×ÁÎ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ É × INPUT"
-
-#: nlmconv.c:325
-msgid "no input file"
-msgstr "ÎÅÔ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ"
-
-#: nlmconv.c:355
-msgid "no name for output file"
-msgstr "ÎÅÔ ÉÍÅÎÉ ÄÌÑ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ"
-
-#: nlmconv.c:369
-msgid "warning: input and output formats are not compatible"
-msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ×ÈÏÄÎÏÊ É ×ÙÈÏÄÎÏÊ ÆÏÒÍÁÔÙ ÎÅ ÓÏ×ÍÅÓÔÉÍÙ"
-
-#: nlmconv.c:398
-msgid "make .bss section"
-msgstr "ÓÏÚÄÁÎÉÅ ÒÁÚÄÅÌÁ .bss"
-
-#: nlmconv.c:407
-msgid "make .nlmsections section"
-msgstr "ÓÏÚÄÁÎÉÅ ÒÁÚÄÅÌÁ .nlmsections"
-
-#: nlmconv.c:409
-msgid "set .nlmsections flags"
-msgstr "ÕÓÔÁÎÏ×ËÁ ÆÌÁÇÏ× .nlmsections"
-
-#: nlmconv.c:437
-msgid "set .bss vma"
-msgstr "ÕÓÔÁÎÏ×ËÁ .bss vma"
-
-#: nlmconv.c:444
-msgid "set .data size"
-msgstr "ÕÓÔÁÎÏ×ËÁ ÒÁÚÍÅÒÁ .data"
-
-#: nlmconv.c:624
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÓÉÍ×ÏÌ %s ÉÍÐÏÒÔÉÒÏ×ÁÎ, ÎÏ ÅÇÏ ÎÅÔ × ÓÐÉÓËÅ ÉÍÐÏÒÔÁ"
-
-#: nlmconv.c:644
-msgid "set start address"
-msgstr "ÕÓÔÁÎÏ×ËÁ ÎÁÞÁÌØÎÏÇÏ ÁÄÒÅÓÁ"
-
-#: nlmconv.c:693
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: START-ÐÒÏÃÅÄÕÒÁ %s ÎÅ ÏÐÒÅÄÅÌÅÎÁ"
-
-#: nlmconv.c:695
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: EXIT-ÐÒÏÃÅÄÕÒÁ %s ÎÅ ÏÐÒÅÄÅÌÅÎÁ"
-
-#: nlmconv.c:697
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: CHECK-ÐÒÏÃÅÄÕÒÁ %s ÎÅ ÏÐÒÅÄÅÌÅÎÁ"
-
-#: nlmconv.c:718 nlmconv.c:907
-msgid "custom section"
-msgstr "ÒÁÚÄÅÌ custom"
-
-#: nlmconv.c:739 nlmconv.c:936
-msgid "help section"
-msgstr "ÒÁÚÄÅÌ help"
-
-#: nlmconv.c:761 nlmconv.c:954
-msgid "message section"
-msgstr "ÒÁÚÄÅÌ message"
-
-#: nlmconv.c:777 nlmconv.c:987
-msgid "module section"
-msgstr "ÒÁÚÄÅÌ module"
-
-#: nlmconv.c:797 nlmconv.c:1003
-msgid "rpc section"
-msgstr "ÒÁÚÄÅÌ rpc"
-
-#. There is no place to record this information.
-#: nlmconv.c:833
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÓÏ×ÍÅÓÔÎÏ ÉÓÐÏÌØÚÕÅÍÙÅ ÂÉÂÌÉÏÔÅËÉ ÎÅ ÍÏÇÕÔ ÉÍÅÔØ ÎÅÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎÎÙÅ ÄÁÎÎÙÅ"
-
-#: nlmconv.c:854 nlmconv.c:1022
-msgid "shared section"
-msgstr "ÒÁÚÄÅÌ shared"
-
-#: nlmconv.c:862
-msgid "warning: No version number given"
-msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: îÅ ÕËÁÚÁÎ ÎÏÍÅÒ ×ÅÒÓÉÉ"
-
-#: nlmconv.c:902 nlmconv.c:931 nlmconv.c:949 nlmconv.c:998 nlmconv.c:1017
-#, c-format
-msgid "%s: read: %s"
-msgstr "%s: ÞÔÅÎÉÅ: %s"
-
-#: nlmconv.c:924
-msgid "warning: FULLMAP is not supported; try ld -M"
-msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: FULLMAP ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ; ÐÏÐÒÏÂÕÊÔÅ ld -M"
-
-#: nlmconv.c:1100
-#, c-format
-msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ÏÐÃÉÉ] [in-ÆÁÊÌ [out-ÆÁÊÌ]]\n"
-
-#: nlmconv.c:1101
-#, c-format
-msgid " Convert an object file into a NetWare Loadable Module\n"
-msgstr " ëÏÎ×ÅÒÔÉÒÕÅÔ ÏÂßÅËÔÎÙÊ ÆÁÊÌ × ÚÁÇÒÕÖÁÅÍÙÊ ÍÏÄÕÌØ ÓÉÓÔÅÍÙ NetWare\n"
-
-#: nlmconv.c:1102
-#, c-format
-msgid ""
-" The options are:\n"
-" -I --input-target=<bfdname> Set the input binary file format\n"
-" -O --output-target=<bfdname> Set the output binary file format\n"
-" -T --header-file=<file> Read <file> for NLM header information\n"
-" -l --linker=<linker> Use <linker> for any linking\n"
-" -d --debug Display on stderr the linker command line\n"
-" @<file> Read options from <file>.\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-msgstr ""
-" ïÐÃÉÉ:\n"
-" -I --input-target=<bfd-ÉÍÑ> õÓÔÁÎÏ×ËÁ ÆÏÒÍÁÔÁ ×ÈÏÄÎÏÇÏ Ä×ÏÉÞÎÏÇÏ ÆÁÊÌÁ\n"
-" -O --output-target=<bfd-ÉÍÑ> õÓÔÁÎÏ×ËÁ ÆÏÒÍÁÔÁ ×ÙÈÏÄÎÏÇÏ Ä×ÏÉÞÎÏÇÏ ÆÁÊÌÁ\n"
-" -T --header-file=<ÆÁÊÌ> þÔÅÎÉÅ <ÆÁÊÌÁ> Ó ÉÎÆÏÒÍÁÃÉÅÊ ÚÁÇÏÌÏ×ËÁ NLM\n"
-" -l --linker=<ËÏÍÐÏÎÏ×ÝÉË> éÓÐÏÌØÚÏ×ÁÎÉÅ <ËÏÍÐÏÎÏ×ÝÉËÁ> ÄÌÑ ÌÀÂÏÇÏ Ó×ÑÚÙ×ÁÎÉÑ\n"
-" -d --debug ÷Ù×ÏÄ ÎÁ stderr ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ËÏÍÐÏÎÏ×ÝÉËÁ\n"
-" @<ÆÁÊÌ> þÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>\n"
-" -h --help ÷Ù×ÏÄ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ\n"
-" -v --version ÷Ù×ÏÄ ×ÅÒÓÉÉ ÐÒÏÇÒÁÍÍÙ\n"
-
-#: nlmconv.c:1143
-#, c-format
-msgid "support not compiled in for %s"
-msgstr "ÏÔËÏÍÐÉÌÉÒÏ×ÁÎ ÂÅÚ ÐÏÄÄÅÒÖËÉ %s"
-
-#: nlmconv.c:1180
-msgid "make section"
-msgstr "ÒÁÚÄÅÌ make"
-
-#: nlmconv.c:1194
-msgid "set section size"
-msgstr "ÕÓÔÁÎÏ×ËÁ ÒÁÚÍÅÒÁ ÒÁÚÄÅÌÁ"
-
-#: nlmconv.c:1200
-msgid "set section alignment"
-msgstr "ÕÓÔÁÎÏ×ËÁ ÏÒÉÅÎÔÁÃÉÉ ÒÁÚÄÅÌÁ"
-
-#: nlmconv.c:1204
-msgid "set section flags"
-msgstr "ÕÓÔÁÎÏ×ËÁ ÆÌÁÇÏ× ÒÁÚÄÅÌÁ"
-
-#: nlmconv.c:1215
-msgid "set .nlmsections size"
-msgstr "ÕÓÔÁÎÏ×ËÁ ÒÁÚÍÅÒÁ .nlmsections"
-
-#: nlmconv.c:1296 nlmconv.c:1304 nlmconv.c:1313 nlmconv.c:1318
-msgid "set .nlmsection contents"
-msgstr "ÕÓÔÁÎÏ×ËÁ ÓÏÄÅÒÖÉÍÏÇÏ .nlmsections"
-
-#: nlmconv.c:1797
-msgid "stub section sizes"
-msgstr "ÒÁÚÍÅÒÙ ÒÁÚÄÅÌÁ ÚÁÇÌÕÛËÉ"
-
-#: nlmconv.c:1844
-msgid "writing stub"
-msgstr "ÚÁÐÉÓÙ×ÁÅÔÓÑ ÚÁÇÌÕÛËÁ"
-
-#: nlmconv.c:1928
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÏÅ ÏÔÎÏÓÉÔÅÌØÎÏÅ ÐÅÒÅÍÅÝÅÎÉÅ ÐÏ ÓÞÅÔÞÉËÕ ËÏÍÁÎÄ × %s"
-
-#: nlmconv.c:1992
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr "ÐÅÒÅÐÏÌÎÅÎÉÅ ÐÒÉ ÒÅÇÕÌÉÒÏ×ËÅ ÐÅÒÅÍÅÝÅÎÉÑ × %s"
-
-#: nlmconv.c:2119
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr "%s: ×ÙÐÏÌÎÅÎÉÅ %s ÚÁ×ÅÒÛÉÌÏÓØ ÎÅÕÄÁÞÅÊ: "
-
-#: nlmconv.c:2134
-#, c-format
-msgid "Execution of %s failed"
-msgstr "÷ÙÐÏÌÎÅÎÉÅ %s ÚÁ×ÅÒÛÉÌÏÓØ ÎÅÕÄÁÞÅÊ"
-
-#: nm.c:224 size.c:82 strings.c:708
-#, c-format
-msgid "Usage: %s [option(s)] [file(s)]\n"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ÏÐÃÉÉ] [ÆÁÊÌ(Ù)]\n"
-
-#: nm.c:225
-#, c-format
-msgid " List symbols in [file(s)] (a.out by default).\n"
-msgstr " ÷Ù×ÏÄÉÔ ÓÐÉÓÏË ÓÉÍ×ÏÌÏ× × [ÆÁÊÌ(Ù)] (ÐÏ ÕÍÏÌÞÁÎÉÀ × a.out).\n"
-
-#: nm.c:226
-#, c-format
-msgid ""
-" The options are:\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -S, --print-size Print size of defined symbols\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" --special-syms Include special symbols in the output\n"
-" --synthetic Display synthetic symbols as well\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -X 32_64 (ignored)\n"
-" @FILE Read options from FILE\n"
-" -h, --help Display this information\n"
-" -V, --version Display this program's version number\n"
-"\n"
-msgstr ""
-" ïÐÃÉÉ:\n"
-" -a, --debug-syms ÷Ù×ÏÄ ÔÏÌØËÏ ÏÔÌÁÄÏÞÎÙÈ ÓÉÍ×ÏÌÏ×\n"
-" -A, --print-file-name ÷Ù×ÏÄ ÉÍÅÎÉ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ ÐÅÒÅÄ ËÁÖÄÙÍ ÓÉÍ×ÏÌÏÍ\n"
-" -B ôÏ ÖÅ, ÞÔÏ É --format=bsd\n"
-" -C, --demangle[=óôéìø] äÅËÏÄÉÒÏ×ÁÎÉÅ ÎÉÚËÏÕÒÏ×ÎÅ×ÙÈ ÉÍÅÎ ÓÉÍ×ÏÌÏ× × ÉÍÅÎÁ\n"
-" ÕÒÏ×ÎÑ ÐÏÌØÚÏ×ÁÔÅÌÑ\n"
-" óôéìø, ÅÓÌÉ ÕËÁÚÁÎ, ÍÏÖÅÔ ÂÙÔØ `auto' (ÐÏ ÕÍÏÌÞÁÎÉÀ),\n"
-" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" ÉÌÉ `gnat'\n"
-" --no-demangle îÅ ÄÅËÏÄÉÒÏ×ÁÔØ ÎÉÚËÏÕÒÏ×ÎÅ×ÙÅ ÉÍÅÎÁ ÓÉÍ×ÏÌÏ×\n"
-" -D, --dynamic ÷Ù×ÏÄ ÄÉÎÁÍÉÞÅÓËÉÈ ÓÉÍ×ÏÌÏ× ×ÍÅÓÔÏ ÎÏÒÍÁÌØÎÙÈ ÓÉÍ×ÏÌÏ×\n"
-" --defined-only ÷Ù×ÏÄ ÔÏÌØËÏ ÏÐÒÅÄÅÌÅÎÎÙÈ ÓÉÍ×ÏÌÏ×\n"
-" -e (ÐÒÏÐÕÝÅÎÁ)\n"
-" -f, --format=æïòíáô éÓÐÏÌØÚÏ×ÁÎÉÅ æïòíáô × ËÁÞÅÓÔ×Å ×ÙÈÏÄÎÏÇÏ ÆÏÒÍÁÔÁ.\n"
-" æïòíáô ÍÏÖÅÔ ÂÙÔØ `bsd', `sysv' ÉÌÉ `posix'.\n"
-" ðÏ ÕÍÏÌÞÁÎÉÀ ÉÓÐÏÌØÚÕÅÔÓÑ `bsd'.\n"
-" -g, --extern-only ÷Ù×ÏÄ ÔÏÌØËÏ ×ÎÅÛÎÉÈ ÓÉÍ×ÏÌÏ×\n"
-" -l, --line-numbers éÓÐÏÌØÚÏ×ÁÎÉÅ ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÄÌÑ ÎÁÈÏÖÄÅÎÉÑ\n"
-" ÉÍÅÎÉ ÆÁÊÌÁ É ÎÏÍÅÒÁ ÓÔÒÏËÉ ÄÌÑ ËÁÖÄÏÇÏ ÓÉÍ×ÏÌÁ\n"
-" -n, --numeric-sort óÏÒÔÉÒÏ×ËÁ ÓÉÍ×ÏÌÏ× ÐÏ ÁÄÒÅÓÕ\n"
-" -o ôÏ ÖÅ, ÞÔÏ É -A\n"
-" -p, --no-sort âÅÚ ÓÏÒÔÉÒÏ×ËÉ ÓÉÍ×ÏÌÏ×\n"
-" -P, --portability ôÏ ÖÅ, ÞÔÏ É --format=posix\n"
-" -r, --reverse-sort óÏÒÔÉÒÏ×ËÁ × ÏÂÒÁÔÎÏÍ ÐÏÒÑÄËÅ\n"
-" -S, --print-size ÷Ù×ÏÄ ÒÁÚÍÅÒÁ ÏÐÒÅÄÅÌÅÎÎÙÈ ÓÉÍ×ÏÌÏ×\n"
-" -s, --print-armap ÷ËÌÀÞÅÎÉÅ ÉÎÄÅËÓÁ ÄÌÑ ÓÉÍ×ÏÌÏ× ÉÚ ÞÌÅÎÏ× ÁÒÈÉ×Á\n"
-" --size-sort óÏÒÔÉÒÏ×ËÁ ÓÉÍ×ÏÌÏ× ÐÏ ÒÁÚÍÅÒÕ\n"
-" --special-syms ÷ËÌÀÞÅÎÉÅ ÓÐÅÃÉÁÌØÎÙÈ ÓÉÍ×ÏÌÏ× × ×ÙÈÏÄÎÙÅ ÄÁÎÎÙÅ\n"
-" --synthetic ÷Ù×ÏÄ ÔÁËÖÅ ÓÉÎÔÅÔÉÞÅÓËÉÈ ÓÉÍ×ÏÌÏ×\n"
-" -t, --radix=RADIX éÓÐÏÌØÚÏ×ÁÎÉÅ RADIX ÄÌÑ ×Ù×ÏÄÁ ÚÎÁÞÅÎÉÊ ÓÉÍ×ÏÌÏ×\n"
-" --target=BFD-éíñ õËÁÚÁÎÉÅ ÃÅÌÅ×ÏÇÏ ÆÏÒÍÁÔÁ ÏÂßÅËÔÁ ËÁË BFD-éíñ\n"
-" -u, --undefined-only ÷Ù×ÏÄ ÔÏÌØËÏ ÎÅ ÏÐÒÅÄÅÌÅÎÎÙÈ ÓÉÍ×ÏÌÏ×\n"
-" -X 32_64 (ÐÒÏÐÕÝÅÎÁ)\n"
-" @æáêì þÉÔÁÔØ ÏÐÃÉÉ ÉÚ æáêìá\n"
-" -h, --help ÷Ù×ÏÄ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ\n"
-" -V, --version ÷Ù×ÏÄ ÎÏÍÅÒÁ ×ÅÒÓÉÉ ÜÔÏÊ ÐÒÏÇÒÁÍÍÙ\n"
-"\n"
-
-#: nm.c:263 objdump.c:236
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr "ïÔÞ£ÔÙ Ï ÏÛÉÂËÁÈ ÏÔÐÒÁ×ÌÑÊÔÅ × %s\n"
-
-#: nm.c:295
-#, c-format
-msgid "%s: invalid radix"
-msgstr "%s: ÎÅ×ÅÒÎÙÊ radix"
-
-#: nm.c:319
-#, c-format
-msgid "%s: invalid output format"
-msgstr "%s: ÎÅ×ÅÒÎÙÊ ×ÙÈÏÄÎÏÊ ÆÏÒÍÁÔ"
-
-#: nm.c:340 readelf.c:6623 readelf.c:6659
-#, c-format
-msgid "<processor specific>: %d"
-msgstr "<ÓÐÅÃÉÆÉÞÎÙÊ ÄÌÑ ÐÒÏÃÅÓÓÏÒÁ>: %d"
-
-#: nm.c:342 readelf.c:6626 readelf.c:6671
-#, c-format
-msgid "<OS specific>: %d"
-msgstr "<ÓÐÅÃÉÆÉÞÎÙÊ ÄÌÑ ïó>: %d"
-
-#: nm.c:344 readelf.c:6628 readelf.c:6674
-#, c-format
-msgid "<unknown>: %d"
-msgstr "<ÎÅÉÚ×ÅÓÔÎÙÊ>: %d"
-
-#: nm.c:381
-#, c-format
-msgid ""
-"\n"
-"Archive index:\n"
-msgstr ""
-"\n"
-"éÎÄÅËÓ ÁÒÈÉ×Á:\n"
-
-#: nm.c:1227
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"îÅÏÐÒÅÄÅÌÅÎÎÙÅ ÓÉÍ×ÏÌÙ ÉÚ %s:\n"
-"\n"
-
-#: nm.c:1229
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"óÉÍ×ÏÌÙ ÉÚ %s:\n"
-"\n"
-
-#: nm.c:1231 nm.c:1282
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"éÍÑ úÎÁÞ. ëÌÁÓÓ ôÉÐ òÁÚÍÅÒ óÔÒÏËÁ òÁÚÄÅÌ\n"
-"\n"
-
-#: nm.c:1234 nm.c:1285
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"éÍÑ úÎÁÞ. ëÌÁÓÓ ôÉÐ òÁÚÍÅÒ óÔÒÏËÁ òÁÚÄÅÌ\n"
-"\n"
-
-#: nm.c:1278
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"îÅÏÐÒÅÄÅÌÅÎÎÙÅ ÓÉÍ×ÏÌÙ ÉÚ %s[%s]:\n"
-"\n"
-
-#: nm.c:1280
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"óÉÍ×ÏÌÙ ÉÚ %s[%s]:\n"
-"\n"
-
-#: nm.c:1584
-msgid "Only -X 32_64 is supported"
-msgstr "ðÏÄÄÅÒÖÉ×ÁÅÔÓÑ ÔÏÌØËÏ -X 32_64"
-
-#: nm.c:1604
-msgid "Using the --size-sort and --undefined-only options together"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ ×ÍÅÓÔÅ ÏÐÃÉÊ --size-sort É --undefined-only"
-
-#: nm.c:1605
-msgid "will produce no output, since undefined symbols have no size."
-msgstr "ÎÅ ÄÁÓÔ ×ÙÈÏÄÎÙÈ ÄÁÎÎÙÈ, Ô.Ë. ÎÅÏÐÒÅÄÅÌÅÎÎÙÅ ÓÉÍ×ÏÌÙ ÎÅ ÉÍÅÀÔ ÒÁÚÍÅÒÁ."
-
-#: nm.c:1633
-#, c-format
-msgid "data size %ld"
-msgstr "ÒÁÚÍÅÒ ÄÁÎÎÙÈ %ld"
-
-#: objcopy.c:401 srconv.c:1721
-#, c-format
-msgid "Usage: %s [option(s)] in-file [out-file]\n"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ÏÐÃÉÉ] in-ÆÁÊÌ [out-ÆÁÊÌ]\n"
-
-#: objcopy.c:402
-#, c-format
-msgid " Copies a binary file, possibly transforming it in the process\n"
-msgstr " ëÏÐÉÒÕÅÔ Ä×ÏÉÞÎÙÊ ÆÁÊÌ, ×ÏÚÍÏÖÎÏ, ÐÒÅÏÂÒÁÚÏ×Ù×ÁÑ ÅÇÏ × ÐÒÏÃÅÓÓÅ\n"
-
-#: objcopy.c:403 objcopy.c:495
-#, c-format
-msgid " The options are:\n"
-msgstr " ïÐÃÉÉ:\n"
-
-#: objcopy.c:404
-#, c-format
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -B --binary-architecture <arch> Set arch of output file, when input is binary\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" --debugging Convert debugging information, if possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation information\n"
-" -g --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" --strip-unneeded-symbol <name>\n"
-" Do not copy symbol <name> unless needed by\n"
-" relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -K --keep-symbol <name> Do not strip symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-" --globalize-symbol <name> Force symbol <name> to be marked as a global\n"
-" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-" --weaken Force all global symbols to be marked as weak\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address <addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to <flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to output\n"
-" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-" --change-leading-char Force output format's leading character style\n"
-" --remove-leading-char Remove leading character from global symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --redefine-syms <file> --redefine-sym for all symbol pairs \n"
-" listed in <file>\n"
-" --srec-len <number> Restrict the length of generated Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-" --strip-symbols <file> -N for all symbols listed in <file>\n"
-" --strip-unneeded-symbols <file>\n"
-" --strip-unneeded-symbol for all symbols listed\n"
-" in <file>\n"
-" --keep-symbols <file> -K for all symbols listed in <file>\n"
-" --localize-symbols <file> -L for all symbols listed in <file>\n"
-" --globalize-symbols <file> --globalize-symbol for all in <file>\n"
-" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-" --weaken-symbols <file> -W for all symbols listed in <file>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" --writable-text Mark the output text as writable\n"
-" --readonly-text Make the output text write protected\n"
-" --pure Mark the output file as demand paged\n"
-" --impure Mark the output file as impure\n"
-" --prefix-symbols <prefix> Add <prefix> to start of every symbol name\n"
-" --prefix-sections <prefix> Add <prefix> to start of every section name\n"
-" --prefix-alloc-sections <prefix>\n"
-" Add <prefix> to start of every allocatable\n"
-" section name\n"
-" -v --verbose List all object files modified\n"
-" @<file> Read options from <file>\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-msgstr ""
-" -I --input-target <bfd-ÉÍÑ> ðÏÄÒÁÚÕÍÅ×ÁÅÔÓÑ ×ÈÏÄÎÏÊ ÆÁÊÌ × ÆÏÒÍÁÔÅ <bfd-ÉÍÑ>\n"
-" -O --output-target <bfd-ÉÍÑ> óÏÚÄÁÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ × ÆÏÒÍÁÔÅ <bfd-ÉÍÑ>\n"
-" -B --binary-architecture <ÁÒÈ> õÓÔÁÎÏ×ÉÔØ ÁÒÈÉÔÅËÔÕÒÕ ÄÌÑ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ, ËÏÇÄÁ ×ÈÏÄÎÏÊ ÆÁÊÌ Ä×ÏÉÞÎÙÊ\n"
-" -F --target <bfd-ÉÍÑ> õÓÔÁÎÏ×ÉÔØ ×ÈÏÄÎÏÊ É ×ÙÈÏÄÎÏÊ ÆÏÒÍÁÔÙ × <bfd-ÉÍÑ>\n"
-" --debugging ðÒÅÏÂÒÁÚÏ×ÁÔØ ÏÔÌÁÄÏÞÎÕÀ ÉÎÆÏÒÍÁÃÉÀ, ÅÓÌÉ ÜÔÏ ×ÏÚÍÏÖÎÏ\n"
-" -p --preserve-dates ëÏÐÉÒÏ×ÁÔØ ×ÒÅÍÑ ÍÏÄÉÆÉËÁÃÉÉ/ÄÏÓÔÕÐÁ ÎÁ ×Ù×ÏÄ\n"
-" -j --only-section <ÉÍÑ> ëÏÐÉÒÏ×ÁÔØ ÒÁÚÄÅÌ <ÉÍÑ> ÎÁ ×Ù×ÏÄ\n"
-" --add-gnu-debuglink=<ÆÁÊÌ> äÏÂÁ×ÌÅÎÉÅ Ó×ÑÚÙ×ÁÎÉÑ ÒÁÚÄÅÌÁ .gnu_debuglink × <ÆÁÊÌ>\n"
-" -R --remove-section <ÉÍÑ> õÄÁÌÉÔØ ÒÁÚÄÅÌ <ÉÍÑ> ÉÚ ×Ù×ÏÄÁ\n"
-" -S --strip-all õÄÁÌÉÔØ ×ÓÅ ÓÉÍ×ÏÌÙ É ÉÎÆÏÒÍÁÃÉÀ Ï ÐÅÒÅÍÅÝÅÎÉÉ\n"
-" -g --strip-debug õÄÁÌÉÔØ ×ÓÅ ÏÔÌÁÄÏÞÎÙÅ ÓÉÍ×ÏÌÙ É ÒÁÚÄÅÌÙ\n"
-" --strip-unneeded õÄÁÌÉÔØ ×ÓÅ ÓÉÍ×ÏÌÙ, ÎÅ ÎÕÖÎÙÅ ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÊ\n"
-" -N --strip-symbol <ÉÍÑ> îÅ ËÏÐÉÒÏ×ÁÔØ ÓÉÍ×ÏÌ <ÉÍÑ>\n"
-" --strip-unneeded-symbol <ÉÍÑ>\n"
-" îÅ ËÏÐÉÒÏ×ÁÔØ ÓÉÍ×ÏÌ <ÉÍÑ>, ÅÓÌÉ ÎÅ ÎÕÖÅÎ ÄÌÑ\n"
-" ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÊ\n"
-" --only-keep-debug ïÓÔÁ×ÉÔØ ÔÏÌØËÏ ÏÔÌÁÄÏÞÎÕÀ ÉÎÆÏÒÍÁÃÉÀ\n"
-" -K --keep-symbol <ÉÍÑ> ëÏÐÉÒÏ×ÁÔØ ÔÏÌØËÏ ÓÉÍ×ÏÌ <ÉÍÑ>\n"
-" -L --localize-symbol <ÉÍÑ> ðÒÉÎÕÄÉÔÅÌØÎÏ ÐÏÍÅÞÁÔØ ÓÉÍ×ÏÌ <ÉÍÑ> ËÁË ÌÏËÁÌØÎÙÊ\n"
-" -G --keep-global-symbol <ÉÍÑ> ìÏËÁÌÉÚÏ×ÁÔØ ×ÓÅ ÓÉÍ×ÏÌÙ ËÒÏÍÅ <ÉÍÑ>\n"
-" -W --weaken-symbol <ÉÍÑ> ðÒÉÎÕÄÉÔÅÌØÎÏ ÐÏÍÅÔÉÔØ ÓÉÍ×ÏÌ <ÉÍÑ> ËÁË ÓÌÁÂÙÊ\n"
-" --weaken ðÒÉÎÕÄÉÔÅÌØÎÏ ÐÏÍÅÔÉÔØ ÇÌÏÂÁÌØÎÙÅ ÓÉÍ×ÏÌÙ ËÁË ÓÌÁÂÙÅ\n"
-" -w --wildcard òÁÚÒÅÛÉÔØ ÍÁÓËÕ ÐÒÉ ÓÒÁ×ÎÅÎÉÉ ÓÉÍ×ÏÌÏ×\n"
-" -x --discard-all õÄÁÌÉÔØ ×ÓÅ ÎÅÇÌÏÂÁÌØÎÙÅ ÓÉÍ×ÏÌÙ\n"
-" -X --discard-locals õÄÁÌÉÔØ ÌÀÂÙÅ ÓÉÍ×ÏÌÙ, ÓÇÅÎÅÒÉÒÏ×ÁÎÎÙÅ ËÏÍÐÉÌÑÔÏÒÏÍ\n"
-" -i --interleave <ÞÉÓÌÏ> ëÏÐÉÒÏ×ÁÔØ ÔÏÌØËÏ ÏÄÉÎ ÂÁÊÔ ÞÅÒÅÚ ËÁÖÄÏÅ <ÞÉÓÌÏ> ÂÁÊÔ\n"
-" -b --byte <ÎÏÍÅÒ> ÷ÙÂÒÁÔØ ÂÁÊÔ <ÎÏÍÅÒ> × ËÁÖÄÏÍ ÞÅÒÅÄÕÀÝÅÍÓÑ ÂÌÏËÅ\n"
-" --gap-fill <ÚÎÁÞÅÎÉÅ> úÁÐÏÌÎÉÔØ ÐÒÏÍÅÖÕÔËÉ ÍÅÖÄÕ ÒÁÚÄÅÌÁÍÉ <ÚÎÁÞÅÎÉÅÍ>\n"
-" --pad-to <ÁÄÒÅÓ> úÁÐÏÌÎÉÔØ ÐÏÓÌÅÄÎÉÊ ÒÁÚÄÅÌ ÄÏ ÁÄÒÅÓÁ <ÁÄÒÅÓ>\n"
-" --set-start <ÁÄÒÅÓ> õÓÔÁÎÏ×ÉÔØ ÎÁÞÁÌØÎÙÊ ÁÄÒÅÓ × <ÁÄÒÅÓ>\n"
-" {--change-start|--adjust-start} <ÐÒÉÒÁÝÅÎÉÅ>\n"
-" äÏÂÁ×ÉÔØ <ÐÒÉÒÁÝÅÎÉÅ> Ë ÎÁÞÁÌØÎÏÍÕ ÁÄÒÅÓÕ\n"
-" {--change-addresses|--adjust-vma} <ÐÒÉÒÁÝÅÎÉÅ>\n"
-" äÏÂÁ×ÉÔØ <ÐÒÉÒÁÝÅÎÉÅ> Ë LMA, VMA É ÎÁÞÁÌØÎÏÍÕ ÁÄÒÅÓÁÍ\n"
-" {--change-section-address|--adjust-section-vma} <ÉÍÑ>{=|+|-}<ÚÎÁÞÅÎÉÅ>\n"
-" éÚÍÅÎÉÔØ LMA É VMA ÒÁÚÄÅÌÁ <ÉÍÑ> ÎÁ <ÚÎÁÞÅÎÉÅ>\n"
-" --change-section-lma <ÉÍÑ>{=|+|-}<ÚÎÁÞÅÎÉÅ>\n"
-" éÚÍÅÎÉÔØ LMA ÒÁÚÄÅÌÁ <ÉÍÑ> ÎÁ <ÚÎÁÞÅÎÉÅ>\n"
-" --change-section-vma <ÉÍÑ>{=|+|-}<ÚÎÁÞÅÎÉÅ>\n"
-" éÚÍÅÎÉÔØ VMA ÒÁÚÄÅÌÁ <ÉÍÑ> ÎÁ <ÚÎÁÞÅÎÉÅ>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" ðÒÅÄÕÐÒÅÄÉÔØ, ÅÓÌÉ ÎÁÚ×ÁÎÎÙÊ ÒÁÚÄÅÌ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ\n"
-" --set-section-flags <ÉÍÑ>=<ÆÌÁÇÉ>\n"
-" õÓÔÁÎÏ×ÉÔØ Ó×ÏÊÓÔ×Á ÒÁÚÄÅÌÁ <ÉÍÑ> × <ÆÌÁÇÉ>\n"
-" --add-section <ÉÍÑ>=<ÆÁÊÌ> äÏÂÁ×ÉÔØ ÒÁÚÄÅÌ <ÉÍÑ>, ÎÁÊÄÅÎÎÙÊ × <ÆÁÊÌÅ>, ÎÁ ×Ù×ÏÄ\n"
-" --rename-section <ÓÔÁÒ>=<ÎÏ×>[,<ÆÌÁÇÉ>] ðÅÒÅÉÍÅÎÏ×ÁÔØ ÒÁÚÄÅÌ <ÓÔÁÒ> ÎÁ <ÎÏ×>\n"
-" --change-leading-char ðÒÉÎÕÄÉÔÅÌØÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÉÌØ ÚÁÇÌÁ×ÎÏÇÏ ÓÉÍ×ÏÌÁ ÄÌÑ ×ÙÈÏÄÎÏÇÏ ÆÏÒÍÁÔÁ\n"
-" --remove-leading-char õÄÁÌÉÔØ ÚÁÇÌÁ×ÎÙÊ ÓÉÍ×ÏÌ ÉÚ ÇÌÏÂÁÌØÎÙÈ ÓÉÍ×ÏÌÏ×\n"
-" --redefine-sym <ÓÔÁÒ>=<ÎÏ×> ðÅÒÅÏÐÒÅÄÅÌÉÔØ ÉÍÑ ÓÉÍ×ÏÌÁ <ÓÔÁÒ> ÎÁ <ÎÏ×>\n"
-" --redefine-syms <ÆÁÊÌ> --redefine-sym ÄÌÑ ×ÓÅÈ ÐÁÒ ÓÉÍ×ÏÌÏ×,\n"
-" ÐÅÒÅÞÉÓÌÅÎÎÙÈ × <ÆÁÊÌÅ>\n"
-" --srec-len <ÞÉÓÌÏ> ïÇÒÁÎÉÞÉÔØ ÄÌÉÎÕ ÓÏÚÄÁÎÎÙÈ S-ÚÁÐÉÓÅÊ\n"
-" --srec-forceS3 ïÇÒÁÎÉÞÉÔØ ÔÉÐ ÓÏÚÄÁÎÎÙÈ S-ÚÁÐÉÓÅÊ ÄÏ S3\n"
-" --strip-symbols <ÆÁÊÌ> -N ÄÌÑ ×ÓÅÈ ÓÉÍÏÌÏ×, ÐÅÒÅÞÉÓÌÅÎÎÙÈ × <ÆÁÊÌÅ>\n"
-" --strip-unneeded-symbols <ÆÁÊÌ>\n"
-" --strip-unneeded-symbol ÄÌÑ ×ÓÅÈ ÓÉÍ×ÏÌÏ×, ÐÅÒÅÞÉÓÌÅÎÎÙÈ\n"
-" × <ÆÁÊÌÅ>\n"
-" --keep-symbols <ÆÁÊÌ> -K ÄÌÑ ×ÓÅÈ ÓÉÍÏÌÏ×, ÐÅÒÅÞÉÓÌÅÎÎÙÈ × <ÆÁÊÌÅ>\n"
-" --localize-symbols <ÆÁÊÌ> -L ÄÌÑ ×ÓÅÈ ÓÉÍÏÌÏ×, ÐÅÒÅÞÉÓÌÅÎÎÙÈ × <ÆÁÊÌÅ>\n"
-" --keep-global-symbols <ÆÁÊÌ> -G ÄÌÑ ×ÓÅÈ ÓÉÍÏÌÏ×, ÐÅÒÅÞÉÓÌÅÎÎÙÈ × <ÆÁÊÌÅ>\n"
-" --weaken-symbols <ÆÁÊÌ> -W ÄÌÑ ×ÓÅÈ ÓÉÍÏÌÏ×, ÐÅÒÅÞÉÓÌÅÎÎÙÈ × <ÆÁÊÌÅ>\n"
-" --alt-machine-code <ÉÎÄÅËÓ> éÓÐÏÌØÚÏ×ÁÔØ ÁÌØÔÅÒÎÁÔÉ×ÎÙÊ ËÏÄ ÍÁÛÉÎÙ ÄÌÑ ×Ù×ÏÄÁ\n"
-" --writable-text ðÏÍÅÔÉÔØ ×ÙÈÏÄÎÏÊ ÔÅËÓÔ ËÁË ÐÅÒÅÚÁÐÉÓÙ×ÁÅÍÙÊ\n"
-" --readonly-text ðÏÍÅÔÉÔØ ×ÙÈÏÄÎÏÊ ÔÅËÓÔ ËÁË ÚÁÝÉÝÅÎÎÙÊ ÏÔ ÚÁÐÉÓÉ\n"
-" --pure ðÏÍÅÔÉÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ ËÁË ÌÉÓÔÁÅÍÙÊ ÐÏ ×ÙÚÏ×Õ\n"
-" --impure ðÏÍÅÔÉÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ ËÁË ÚÁÇÒÑÚÎÅÎÎÙÊ\n"
-" --prefix-symbols <ÐÒÅÆÉËÓ> äÏÂÁ×ÉÔØ <ÐÒÅÆÉËÓ> × ÎÁÞÁÌÏ ÉÍÅÎÉ ËÁÖÄÏÇÏ ÓÉÍ×ÏÌÁ\n"
-" --prefix-sections <ÐÒÅÆÉËÓ> äÏÂÁ×ÉÔØ <ÐÒÅÆÉËÓ> × ÎÁÞÁÌÏ ÉÍÅÎÉ ËÁÖÄÏÇÏ ÒÁÚÄÅÌÁ\n"
-" --prefix-alloc-sections <ÐÒÅÆÉËÓ>\n"
-" äÏÂÁ×ÉÔØ <ÐÒÅÆÉËÓ> × ÎÁÞÁÌÏ ÉÍÅÎÉ ËÁÖÄÏÇÏ\n"
-" ÎÁÚÎÁÞÁÅÍÏÇÏ ÒÁÚÄÅÌÁ\n"
-" -v --verbose ðÅÒÅÞÉÓÌÉÔØ ×ÓÅ ÍÏÄÉÆÉÃÉÒÏ×ÁÎÎÙÅ ÏÂßÅËÔÎÙÅ ÆÁÊÌÙ\n"
-" @<ÆÁÊÌ> þÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>\n"
-" -V --version ÷Ù×ÅÓÔÉ ÎÏÍÅÒ ×ÅÒÓÉÉ ÜÔÏÊ ÐÒÏÇÒÁÍÍÙ\n"
-" -h --help ÷Ù×ÅÓÔÉ ÜÔÕ ÓÐÒÁ×ËÕ\n"
-" --info ðÅÒÅÞÉÓÌÉÔØ ÐÏÄÄÅÒÖÉ×ÁÅÍÙÅ ÆÏÒÍÁÔÙ ÏÂßÅËÔÏ× É ÁÒÈÉÔÅËÔÕÒÙ\n"
-
-#: objcopy.c:493
-#, c-format
-msgid "Usage: %s <option(s)> in-file(s)\n"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s <ÏÐÃÉÉ> in-ÆÁÊÌ(Ù)\n"
-
-#: objcopy.c:494
-#, c-format
-msgid " Removes symbols and sections from files\n"
-msgstr " õÄÁÌÑÅÔ ÓÉÍ×ÏÌÙ É ÒÁÚÄÅÌÙ ÉÚ ÆÁÊÌÏ×\n"
-
-#: objcopy.c:496
-#, c-format
-msgid ""
-" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target=<bfdname> Create an output file in format <bfdname>\n"
-" -F --target=<bfdname> Set both input and output format to <bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -R --remove-section=<name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation information\n"
-" -g -S -d --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -N --strip-symbol=<name> Do not copy symbol <name>\n"
-" -K --keep-symbol=<name> Do not strip symbol <name>\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr ""
-" -I --input-target=<bfd-ÉÍÑ> ðÏÄÒÁÚÕÍÅ×ÁÅÔÓÑ ×ÈÏÄÎÏÊ ÆÁÊÌ × ÆÏÒÍÁÔÅ <bfd-ÉÍÑ>\n"
-" -O --output-target=<bfd-ÉÍÑ> óÏÚÄÁÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ × ÆÏÒÍÁÔÅ <bfd-ÉÍÑ>\n"
-" -F --target=<bfd-ÉÍÑ> õÓÔÁÎÏ×ÉÔØ ×ÈÏÄÎÏÊ É ×ÙÈÏÄÎÏÊ ÆÏÒÍÁÔÙ × <bfd-ÉÍÑ>\n"
-" -p --preserve-dates ëÏÐÉÒÏ×ÁÔØ ×ÒÅÍÑ ÍÏÄÉÆÉËÁÃÉÉ/ÄÏÓÔÕÐÁ ÎÁ ×Ù×ÏÄ\n"
-" -R --remove-section <ÉÍÑ> õÄÁÌÉÔØ ÒÁÚÄÅÌ <ÉÍÑ> ÉÚ ×Ù×ÏÄÁ\n"
-" -s --strip-all õÄÁÌÉÔØ ×ÓÅ ÓÉÍ×ÏÌÙ É ÉÎÆÏÒÍÁÃÉÀ Ï ÐÅÒÅÍÅÝÅÎÉÉ\n"
-" -g -S -d --strip-debug õÄÁÌÉÔØ ×ÓÅ ÏÔÌÁÄÏÞÎÙÅ ÓÉÍ×ÏÌÙ É ÒÁÚÄÅÌÙ\n"
-" --strip-unneeded õÄÁÌÉÔØ ×ÓÅ ÓÉÍ×ÏÌÙ, ÎÅ ÎÕÖÎÙÅ ÄÌÑ ÐÅÒÅÍÅÝÅÎÉÊ\n"
-" --only-keep-debug õÄÁÌÉÔØ ×Ó£, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ\n"
-" -N --strip-symbol=<ÉÍÑ> îÅ ËÏÐÉÒÏ×ÁÔØ ÓÉÍ×ÏÌ <ÉÍÑ>\n"
-" -K --keep-symbol=<ÉÍÑ> ëÏÐÉÒÏ×ÁÔØ ÔÏÌØËÏ ÓÉÍ×ÏÌ <ÉÍÑ>\n"
-" -w --wildcard òÁÚÒÅÛÉÔØ ÍÁÓËÕ ÐÒÉ ÓÒÁ×ÎÅÎÉÉ ÓÉÍ×ÏÌÏ×\n"
-" -x --discard-all õÄÁÌÉÔØ ×ÓÅ ÎÅÇÌÏÂÁÌØÎÙÅ ÓÉÍ×ÏÌÙ\n"
-" -X --discard-locals õÄÁÌÉÔØ ÌÀÂÙÅ ÓÉÍ×ÏÌÙ, ÓÇÅÎÅÒÉÒÏ×ÁÎÎÙÅ ËÏÍÐÉÌÑÔÏÒÏÍ\n"
-" -v --verbose ðÅÒÅÞÉÓÌÉÔØ ×ÓÅ ÍÏÄÉÆÉÃÉÒÏ×ÁÎÎÙÅ ÏÂßÅËÔÎÙÅ ÆÁÊÌÙ\n"
-" -V --version ÷Ù×ÅÓÔÉ ÎÏÍÅÒ ×ÅÒÓÉÉ ÜÔÏÊ ÐÒÏÇÒÁÍÍÙ\n"
-" -h --help ÷Ù×ÅÓÔÉ ÜÔÕ ÓÐÒÁ×ËÕ\n"
-" --info ðÅÒÅÞÉÓÌÉÔØ ÐÏÄÄÅÒÖÉ×ÁÅÍÙÅ ÆÏÒÍÁÔÙ ÏÂßÅËÔÏ× É ÁÒÈÉÔÅËÔÕÒÙ\n"
-" -o <ÆÁÊÌ> ðÏÍÅÓÔÉÔØ ÏÂÒÁÂÏÔÁÎÎÙÅ ×ÙÈÏÄÎÙÅ ÄÁÎÎÙÅ × <ÆÁÊÌ>\n"
-
-#: objcopy.c:568
-#, c-format
-msgid "unrecognized section flag `%s'"
-msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ ÆÌÁÇ ÒÁÚÄÅÌÁ `%s'"
-
-#: objcopy.c:569
-#, c-format
-msgid "supported flags: %s"
-msgstr "ÎÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÅ ÆÌÁÇÉ: %s"
-
-#: objcopy.c:646
-#, c-format
-msgid "cannot open '%s': %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ '%s': %s"
-
-#: objcopy.c:649 objcopy.c:2722
-#, c-format
-msgid "%s: fread failed"
-msgstr "%s: fread ÚÁ×ÅÒÛÉÌÓÑ ÎÅÕÄÁÞÅÊ"
-
-#: objcopy.c:722
-#, c-format
-msgid "%s:%d: Ignoring rubbish found on this line"
-msgstr "%s:%d: ðÒÏÐÕÓËÁÅÔÓÑ ÍÕÓÏÒ, ÎÁÊÄÅÎÎÙÊ × ÜÔÏÊ ÓÔÒÏËÅ "
-
-#: objcopy.c:996
-#, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr "%s: íÎÏÇÏËÒÁÔÎÏÅ ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÅ ÓÉÍ×ÏÌÁ \"%s\""
-
-#: objcopy.c:1000
-#, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr "%s: óÉÍ×ÏÌ \"%s\" Ñ×ÌÑÅÔÓÑ ÃÅÌØÀ ÂÏÌÅÅ, ÞÅÍ ÏÄÎÏÇÏ ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÑ"
-
-#: objcopy.c:1028
-#, c-format
-msgid "couldn't open symbol redefinition file %s (error: %s)"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ÆÁÊÌ ÐÅÒÅÏÐÒÅÄÅÌÅÎÉÑ ÓÉÍ×ÏÌÁ %s (ÏÛÉÂËÁ: %s)"
-
-#: objcopy.c:1106
-#, c-format
-msgid "%s:%d: garbage found at end of line"
-msgstr "%s:%d: × ËÏÎÃÅ ÓÔÒÏËÉ ÎÁÊÄÅÎ ÍÕÓÏÒ"
-
-#: objcopy.c:1109
-#, c-format
-msgid "%s:%d: missing new symbol name"
-msgstr "%s:%d: ÏÔÓÕÔÓÔ×ÕÅÔ ÉÍÑ ÎÏ×ÏÇÏ ÓÉÍ×ÏÌÁ"
-
-#: objcopy.c:1119
-#, c-format
-msgid "%s:%d: premature end of file"
-msgstr "%s:%d: ÐÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ"
-
-#: objcopy.c:1145
-#, c-format
-msgid "stat returns negative size for `%s'"
-msgstr "stat ×ÏÚ×ÒÁÔÉÌ ÏÔÒÉÃÁÔÅÌØÎÙÊ ÒÁÚÍÅÒ ÄÌÑ `%s'"
-
-#: objcopy.c:1157
-#, c-format
-msgid "copy from `%s' [unknown] to `%s' [unknown]\n"
-msgstr "ËÏÐÉÒÏ×ÁÎÉÅ ÉÚ `%s' [ÎÅÉÚ×.] × `%s' [ÎÅÉÚ×.]\n"
-
-#: objcopy.c:1212
-msgid "Unable to change endianness of input file(s)"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÉÚÍÅÎÉÔØ endianness ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ"
-
-#: objcopy.c:1221
-#, c-format
-msgid "copy from `%s' [%s] to `%s' [%s]\n"
-msgstr "ËÏÐÉÒÏ×ÁÎÉÅ ÉÚ `%s' [%s] × `%s' [%s]\n"
-
-#: objcopy.c:1258 objcopy.c:1715
-#, c-format
-msgid "Unable to recognise the format of the input file `%s'"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÆÏÒÍÁÔ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ `%s'"
-
-#: objcopy.c:1261
-#, c-format
-msgid "Warning: Output file cannot represent architecture `%s'"
-msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÷ÙÈÏÄÎÏÊ ÆÁÊÌ ÎÅ ÍÏÖÅÔ ÐÒÅÄÏÓÔÁ×ÉÔØ ÁÒÈÉÔÅËÔÕÒÕ `%s'"
-
-#: objcopy.c:1305
-#, c-format
-msgid "can't create section `%s': %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÒÁÚÄÅÌ `%s': %s"
-
-#: objcopy.c:1356
-msgid "there are no sections to be copied!"
-msgstr "ÎÅÔ ÒÁÚÄÅÌÏ× ÄÌÑ ËÏÐÉÒÏ×ÁÎÉÑ!"
-
-#: objcopy.c:1402
-#, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÚÁÐÏÌÎÉÔØ ÐÒÏÍÅÖÕÔÏË ÐÏÓÌÅ %s: %s"
-
-#: objcopy.c:1427
-#, c-format
-msgid "Can't add padding to %s: %s"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÄÏÂÁ×ÉÔØ ÚÁÐÏÌÎÅÎÉÅ × %s: %s"
-
-#: objcopy.c:1594
-#, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr "%s: ÏÛÉÂËÁ ËÏÐÉÒÏ×ÁÎÉÑ ÞÁÓÔÎÙÈ ÄÁÎÎÙÈ BFD: %s"
-
-#: objcopy.c:1605
-msgid "unknown alternate machine code, ignored"
-msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÁÌØÔÅÒÎÁÔÉ×ÎÙÊ ËÏÄ ÍÁÛÉÎÙ, ÐÒÏÐÕÝÅÎ"
-
-#: objcopy.c:1635 objcopy.c:1665
-#, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ mkdir %s ÄÌÑ ËÏÐÉÒÏ×ÁÎÉÑ ÁÒÈÉ×Á (ÏÛÉÂËÁ: %s)"
-
-#: objcopy.c:1787
-#, c-format
-msgid "error: the input file '%s' is empty"
-msgstr "ÏÛÉÂËÁ: ×ÈÏÄÎÏÊ ÆÁÊÌ '%s' ÐÕÓÔ"
-
-#: objcopy.c:1889
-#, c-format
-msgid "Multiple renames of section %s"
-msgstr "íÎÏÇÏËÒÁÔÎÙÅ ÐÅÒÅÉÍÅÎÏ×ÁÎÉÑ ÒÁÚÄÅÌÁ %s"
-
-#: objcopy.c:1940
-msgid "private header data"
-msgstr "ÞÁÓÔÎÙÅ ÄÁÎÎÙÅ ÚÁÇÏÌÏ×ËÁ"
-
-#: objcopy.c:1948
-#, c-format
-msgid "%s: error in %s: %s"
-msgstr "%s: ÏÛÉÂËÁ × %s: %s"
-
-#: objcopy.c:2007
-msgid "making"
-msgstr "ÓÏÚÄÁÅÔÓÑ"
-
-#: objcopy.c:2022
-msgid "size"
-msgstr "ÒÁÚÍÅÒ"
-
-#: objcopy.c:2036
-msgid "vma"
-msgstr "vma"
-
-#: objcopy.c:2061
-msgid "alignment"
-msgstr "ÏÒÉÅÎÔÁÃÉÑ"
-
-#: objcopy.c:2083
-msgid "private data"
-msgstr "ÞÁÓÔÎÙÅ ÄÁÎÎÙÅ"
-
-#: objcopy.c:2091
-#, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr "%s: ÒÁÚÄÅÌ `%s': ÏÛÉÂËÁ × %s: %s"
-
-#: objcopy.c:2363
-#, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÏÔÌÁÄÏÞÎÙÊ ÒÁÚÄÅÌ: %s"
-
-#: objcopy.c:2377
-#, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ ÓÏÄÅÒÖÉÍÏÅ ÏÔÌÁÄÏÞÎÏÇÏ ÒÁÚÄÅÌÁ: %s"
-
-#: objcopy.c:2386
-#, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr "%s: ÎÅ ÉÚ×ÅÓÔÎÏ, ËÁË ÚÁÐÉÓÁÔØ ÏÔÌÁÄÏÞÎÕÀ ÉÎÆÏÒÍÁÃÉÀ ÄÌÑ %s"
-
-#: objcopy.c:2561
-msgid "byte number must be non-negative"
-msgstr "ÎÏÍÅÒ ÂÁÊÔÁ ÄÏÌÖÅÎ ÂÙÔØ ÎÅÏÔÒÉÃÁÔÅÌØÎÙÍ"
-
-#: objcopy.c:2571
-msgid "interleave must be positive"
-msgstr "ÞÅÒÅÄÏ×ÁÎÉÅ ÄÏÌÖÎÏ ÂÙÔØ ÐÏÌÏÖÉÔÅÌØÎÙÍ"
-
-#: objcopy.c:2591 objcopy.c:2599
-#, c-format
-msgid "%s both copied and removed"
-msgstr "ÏÂÁ %s ÓËÏÐÉÒÏ×ÁÎÙ É ÕÄÁÌÅÎÙ"
-
-#: objcopy.c:2696 objcopy.c:2767 objcopy.c:2867 objcopy.c:2898 objcopy.c:2922
-#: objcopy.c:2926 objcopy.c:2946
-#, c-format
-msgid "bad format for %s"
-msgstr "ÐÌÏÈÏÊ ÆÏÒÍÁÔ ÄÌÑ %s"
-
-#: objcopy.c:2717
-#, c-format
-msgid "cannot open: %s: %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ: %s: %s"
-
-#: objcopy.c:2836
-#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "ðÒÅÄÕÐÒÅÖÅÄÎÉÅ: ÏÂÒÅÚÁÅÔÓÑ ÚÁÐÏÌÎÅÎÉÅ ÐÒÏÍÅÖÕÔËÁ ÏÔ 0x%s ÄÏ 0x%x"
-
-#: objcopy.c:3000
-msgid "alternate machine code index must be positive"
-msgstr "ÉÎÄÅËÓ ÁÌØÔÅÒÎÁÔÉ×ÎÏÇÏ ËÏÄÁ ÍÁÛÉÎÙ ÄÏÌÖÅÎ ÂÙÔØ ÐÏÌÏÖÉÔÅÌØÎÙÍ"
-
-#: objcopy.c:3058
-msgid "byte number must be less than interleave"
-msgstr "ÎÏÍÅÒ ÂÁÊÔÁ ÄÏÌÖÅÎ ÂÙÔØ ÍÅÎØÛÅ ÞÅÒÅÄÏ×ÁÎÉÑ"
-
-#: objcopy.c:3088
-#, c-format
-msgid "architecture %s unknown"
-msgstr "ÁÒÈÉÔÅËÔÕÒÁ %s ÎÅ ÉÚ×ÅÓÔÎÁ"
-
-#: objcopy.c:3092
-msgid "Warning: input target 'binary' required for binary architecture parameter."
-msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: 'Ä×ÏÉÞÎÙÊ' ÃÅÌÅ×ÏÊ ×ÈÏÄÎÏÊ ÆÁÊÌ ÔÒÅÂÕÅÔÓÑ ÄÌÑ ÐÁÒÁÍÅÔÒÁ Ä×ÏÉÞÎÏÊ ÁÒÈÉÔÅËÔÕÒÙ."
-
-#: objcopy.c:3093
-#, c-format
-msgid " Argument %s ignored"
-msgstr " áÒÇÕÍÅÎÔ %s ÐÒÏÐÕÝÅÎ"
-
-#: objcopy.c:3099
-#, c-format
-msgid "warning: could not locate '%s'. System error message: %s"
-msgstr "ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÎÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ '%s'. óÉÓÔÅÍÎÏÅ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ: %s"
-
-#: objcopy.c:3141 objcopy.c:3155
-#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr "%s %s%c0x%s ÎÉËÏÇÄÁ ÎÅ ÉÓÐÏÌØÚÕÅÔÓÑ"
-
-#: objdump.c:178
-#, c-format
-msgid "Usage: %s <option(s)> <file(s)>\n"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s <ÏÐÃÉÉ> <ÆÁÊÌ(Ù)>\n"
-
-#: objdump.c:179
-#, c-format
-msgid " Display information from object <file(s)>.\n"
-msgstr " ïÔÏÂÒÁÖÁÅÔ ÉÎÆÏÒÍÁÃÉÀ ÉÚ ÏÂßÅËÔÁ <ÆÁÊÌ(Ù)>.\n"
-
-#: objdump.c:180
-#, c-format
-msgid " At least one of the following switches must be given:\n"
-msgstr " äÏÌÖÅÎ ÂÙÔØ ÕËÁÚÁÎ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÏÄÉÎ ÉÚ ÓÌÅÄÕÀÝÉÈ ËÌÀÞÅÊ:\n"
-
-#: objdump.c:181
-#, c-format
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -e, --debugging-tags Display debug information using ctags style\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -W, --dwarf Display DWARF info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" @<file> Read options from <file>\n"
-" -v, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-" -a, --archive-headers ÷Ù×ÅÓÔÉ ÉÎÆÏÒÍÁÃÉÀ ÚÁÇÏÌÏ×ËÁ ÁÒÈÉ×Á\n"
-" -f, --file-headers ÷Ù×ÅÓÔÉ ÓÏÄÅÒÖÉÍÏÅ ÚÁÇÏÌÏ×ËÁ ×ÓÅÇÏ ÆÁÊÌÁ\n"
-" -p, --private-headers ÷Ù×ÅÓÔÉ ÓÏÄÅÒÖÉÍÏÅ ÚÁÇÏÌÏ×ËÁ ÆÁÊÌÁ, ÓÐÅÃÉÆÉÞÎÏÇÏ ÄÌÑ ÆÏÒÍÁÔÁ ÏÂßÅËÔÁ\n"
-" -h, --[section-]headers ÷Ù×ÅÓÔÉ ÓÏÄÅÒÖÉÍÏÅ ÚÁÇÏÌÏ×ËÏ× ÒÁÚÄÅÌÏ×\n"
-" -x, --all-headers ÷Ù×ÅÓÔÉ ÓÏÄÅÒÖÉÍÏÅ ×ÓÅÈ ÚÁÇÏÌÏ×ËÏ×\n"
-" -d, --disassemble ÷Ù×ÅÓÔÉ ÓÏÄÅÒÖÉÍÏÅ ÁÓÓÅÍÂÌÅÒÁ ÉÓÐÏÌÎÑÅÍÙÈ ÒÁÚÄÅÌÏ×\n"
-" -D, --disassemble-all ÷Ù×ÅÓÔÉ ÓÏÄÅÒÖÉÍÏÅ ÁÓÓÅÍÂÌÅÒÁ ×ÓÅÈ ÒÁÚÄÅÌÏ×\n"
-" -S, --source ðÅÒÅÍÅÛÁÔØ ÉÓÈÏÄÎÙÊ ËÏÄ Ó ÄÉÚÁÓÓÅÍÂÌÉÒÏ×ÁÎÉÅÍ\n"
-" -s, --full-contents ÷Ù×ÅÓÔÉ ÐÏÌÎÏÅ ÓÏÄÅÒÖÉÍÏÅ ×ÓÅÈ ÚÁÐÒÏÛÅÎÎÙÈ ÒÁÚÄÅÌÏ×\n"
-" -g, --debugging ÷Ù×ÅÓÔÉ ÏÔÌÁÄÏÞÎÕÀ ÉÎÆÏÒÍÁÃÉÀ × ÏÂßÅËÔÎÏÍ ÆÁÊÌÅ\n"
-" -e, --debugging-tags ÷Ù×ÅÓÔÉ ÏÔÌÁÄÏÞÎÕÀ ÉÎÆÏÒÍÁÃÉÀ × ÓÔÉÌÅ ctags\n"
-" -G, --stabs ÷Ù×ÅÓÔÉ (× ÓÙÒÏÊ ÆÏÒÍÅ) ÌÀÂÕÀ ÉÎÆÏÒÍÁÃÉÀ STABS × ÆÁÊÌÅ\n"
-" -t, --syms ÷Ù×ÅÓÔÉ ÓÏÄÅÒÖÉÍÏÅ ÔÁÂÌÉÃ(Ù) ÓÉÍ×ÏÌÏ×\n"
-" -T, --dynamic-syms ÷Ù×ÅÓÔÉ ÓÏÄÅÒÖÉÍÏÅ ÔÁÂÌÉÃÙ ÄÉÎÁÍÉÞÅÓËÉÈ ÓÉÍ×ÏÌÏ×\n"
-" -r, --reloc ÷Ù×ÅÓÔÉ ÐÕÎËÔÙ ÐÅÒÅÍÅÝÅÎÉÑ × ÆÁÊÌÅ\n"
-" -R, --dynamic-reloc ÷Ù×ÅÓÔÉ ÐÕÎËÔÙ ÄÉÎÁÍÉÞÅÓËÏÇÏ ÐÅÒÅÍÅÝÅÎÉÑ × ÆÁÊÌÅ\n"
-" @<ÆÁÊÌ> þÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>\n"
-" -v, --version ÷Ù×ÅÓÔÉ ÎÏÍÅÒ ×ÅÒÓÉÉ ÜÔÏÊ ÐÒÏÇÒÁÍÍÙ\n"
-" -i, --info ÷Ù×ÅÓÔÉ ÓÐÉÓÏË ÐÏÄÄÅÒÖÉ×ÁÅÍÙÈ ÆÏÒÍÁÔÏ× ÏÂßÅËÔÏ× É ÁÒÈÉÔÅËÔÕÒ\n"
-" -H, --help ÷Ù×ÅÓÔÉ ÜÔÕ ÉÎÆÏÒÍÁÃÉÀ\n"
-
-#: objdump.c:206
-#, c-format
-msgid ""
-"\n"
-" The following switches are optional:\n"
-msgstr ""
-"\n"
-" óÌÅÄÕÀÝÉÅ ËÌÀÞÉ Ñ×ÌÑÀÔÓÑ ÏÐÃÉÏÎÁÌØÎÙÍÉ:\n"
-
-#: objdump.c:207
-#, c-format
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -I, --include=DIR Add DIR to search list for source files\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', `gnu',\n"
-" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whose address is >= ADDR\n"
-" --stop-address=ADDR Only process data whose address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-" --special-syms Include special symbols in symbol dumps\n"
-"\n"
-msgstr ""
-" -b, --target=BFD-éíñ õËÁÚÁÔØ ÃÅÌÅ×ÏÊ ÆÏÒÍÁÔ ÏÂßÅËÔÁ ËÁË BFD-éíñ\n"
-" -m, --architecture=íáûéîá õËÁÚÁÔØ ÃÅÌÅ×ÕÀ ÁÒÈÉÔÅËÔÕÒÕ ËÁË íáûéîá\n"
-" -j, --section=éíñ ÷Ù×ÅÓÔÉ ÉÎÆÏÒÍÁÃÉÀ ÔÏÌØËÏ ÄÌÑ ÒÁÚÄÅÌÁ éíñ\n"
-" -M, --disassembler-options=OPT ðÅÒÅÄÁÔØ ÔÅËÓÔ OPT × ÄÉÚÁÓÓÅÍÂÌÅÒ\n"
-" -EB --endian=big ðÒÅÄÐÏÌÏÖÉÔØ ÆÏÒÍÁÔ big endian ÐÒÉ ÄÉÚÁÓÓÅÍÂÌÉÒÏ×ÁÎÉÉ\n"
-" -EL --endian=little ðÒÅÄÐÏÌÏÖÉÔØ ÆÏÒÍÁÔ little endian ÐÒÉ ÄÉÚÁÓÓÅÍÂÌÉÒÏ×ÁÎÉÉ\n"
-" --file-start-context ÷ËÌÀÞÉÔØ ËÏÎÔÅËÓÔ ÉÚ ÎÁÞÁÌÁ ÆÁÊÌÁ (Ó -S)\n"
-" -I, --include=ëáô äÏÂÁ×ÉÔØ ëáôÁÌÏÇ × ÓÐÉÓÏË ÐÏÉÓËÁ ÉÓÈÏÄÎÙÈ ÆÁÊÌÏ×\n"
-" -l, --line-numbers ÷ËÌÀÞÉÔØ ÎÏÍÅÒÁ ÓÔÒÏË É ÉÍÅÎÁ ÆÁÊÌÏ× ÎÁ ×Ù×ÏÄÅ\n"
-" -C, --demangle[=óôéìø] äÅËÏÄÉÒÏ×ÁÔØ ÓËÏÒÒÅËÔÉÒÏ×ÁÎÎÙÅ/ÏÂÒÁÂÏÔÁÎÎÙÅ ÉÍÅÎÁ ÓÉÍ×ÏÌÏ×\n"
-" óôéìø, ÅÓÌÉ ÕËÁÚÁÎ, ÍÏÖÅÔ ÂÙÔØ `auto', `gnu',\n"
-" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" ÉÌÉ `gnat'\n"
-" -w, --wide æÏÒÍÁÔÉÒÏ×ÁÔØ ×Ù×ÏÄ ÄÌÑ ÂÏÌÅÅ,šÞÅÍ 80 ËÏÌÏÎÏË\n"
-" -z, --disassemble-zeroes îÅ ÐÒÏÐÕÓËÁÔØ ÂÌÏËÉ ÎÕÌÅÊ ÐÒÉ ÄÉÚÁÓÓÅÍÂÌÉÒÏ×ÁÎÉÉ\n"
-" --start-address=áäòåó ïÂÒÁÂÏÔÁÔØ ÔÏÌØËÏ ÄÁÎÎÙÅ, ÁÄÒÅÓ ËÏÔÏÒÙÈ >= áäòåó\n"
-" --stop-address=áäòåó ïÂÒÁÂÏÔÁÔØ ÔÏÌØËÏ ÄÁÎÎÙÅ, ÁÄÒÅÓ ËÏÔÏÒÙÈ <= áäòåó\n"
-" --prefix-addresses ÷Ù×ÅÓÔÉ ÐÏÌÎÙÊ ÁÄÒÅÓ ÐÒÉ ÄÉÚÁÓÓÅÍÂÌÉÒÏ×ÁÎÉÉ\n"
-" --[no-]show-raw-insn ÷Ù×ÅÓÔÉ hex ÐÒÉ ÓÉÍ×ÏÌÉÞÅÓËÏÍ ÄÉÚÁÓÓÅÍÂÌÉÒÏ×ÁÎÉÉ\n"
-" --adjust-vma=óíåýåîéå äÏÂÁ×ÉÔØ óíåýåîéå ËÏ ×ÓÅÍ ÁÄÒÅÓÁÍ ×Ù×ÏÄÉÍÙÈ ÒÁÚÄÅÌÏ×\n"
-" --special-syms ÷ËÌÀÞÉÔØ ÓÐÅÃÉÁÌØÎÙÅ ÓÉÍ×ÏÌÙ × ÄÁÍÐÙ ÓÉÍ×ÏÌÏ×\n"
-"\n"
-
-#: objdump.c:389
-#, c-format
-msgid "Sections:\n"
-msgstr "òÁÚÄÅÌÙ:\n"
-
-#: objdump.c:392 objdump.c:396
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "éÎÄ éÍÑ òÁÚÍÅÒ VMA LMA æÁÊÌ ÷ÙÒÁ×"
-
-#: objdump.c:398
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "éÎÄ éÍÑ òÁÚÍÅÒ VMA LMA æÁÊÌ ÷ÙÒÁ×"
-
-#: objdump.c:402
-#, c-format
-msgid " Flags"
-msgstr " æÌÁÇÉ"
-
-#: objdump.c:404
-#, c-format
-msgid " Pg"
-msgstr " óÔÒ"
-
-#: objdump.c:447
-#, c-format
-msgid "%s: not a dynamic object"
-msgstr "%s: ÎÅ ÄÉÎÁÍÉÞÅÓËÉÊ ÏÂßÅËÔ"
-
-#: objdump.c:1735
-#, c-format
-msgid "Disassembly of section %s:\n"
-msgstr "äÉÁÓÓÅÍÂÌÉÒÏ×ÁÎÉÅ ÒÁÚÄÅÌÁ %s:\n"
-
-#: objdump.c:1897
-#, c-format
-msgid "Can't use supplied machine %s"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÒÅÄÓÔÁ×ÌÅÎÎÕÀ ÍÁÛÉÎÕ %s"
-
-#: objdump.c:1916
-#, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr "äÉÚÁÓÓÅÍÂÌÉÒÏ×ÁÎÉÅ ÎÅ×ÏÚÍÏÖÎÏ ÄÌÑ ÁÒÈÉÔÅËÔÕÒÙ %s\n"
-
-#: objdump.c:2006
-#, c-format
-msgid ""
-"\n"
-"Can't get contents for section '%s'.\n"
-msgstr ""
-"\n"
-"îÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÓÏÄÅÒÖÉÍÏÅ ÒÁÚÄÅÌÁ '%s'.\n"
-
-#: objdump.c:2143
-#, c-format
-msgid ""
-"No %s section present\n"
-"\n"
-msgstr ""
-"òÁÚÄÅÌ %s ÏÔÓÕÔÓÔ×ÕÅÔ\n"
-"\n"
-
-#: objdump.c:2152
-#, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr "þÔÅÎÉÅ %s ÒÁÚÄÅÌÁ %s ÚÁ×ÅÒÛÉÌÏÓØ ÎÅÕÄÁÞÅÊ: %s"
-
-#: objdump.c:2196
-#, c-format
-msgid ""
-"Contents of %s section:\n"
-"\n"
-msgstr ""
-"óÏÄÅÒÖÉÍÏÅ ÒÁÚÄÅÌÁ %s:\n"
-"\n"
-
-#: objdump.c:2323
-#, c-format
-msgid "architecture: %s, "
-msgstr "ÁÒÈÉÔÅËÔÕÒÁ: %s, "
-
-#: objdump.c:2326
-#, c-format
-msgid "flags 0x%08x:\n"
-msgstr "ÆÌÁÇÉ 0x%08x:\n"
-
-#: objdump.c:2340
-#, c-format
-msgid ""
-"\n"
-"start address 0x"
-msgstr ""
-"\n"
-"ÎÁÞÁÌØÎÙÊ ÁÄÒÅÓ 0x"
-
-#: objdump.c:2380
-#, c-format
-msgid "Contents of section %s:\n"
-msgstr "óÏÄÅÒÖÉÍÏÅ ÒÁÚÄÅÌÁ %s:\n"
-
-#: objdump.c:2505
-#, c-format
-msgid "no symbols\n"
-msgstr "ÎÅÔ ÓÉÍ×ÏÌÏ×\n"
-
-#: objdump.c:2512
-#, c-format
-msgid "no information for symbol number %ld\n"
-msgstr "ÎÅÔ ÉÎÆÏÒÍÁÃÉÉ Ï ÓÉÍ×ÏÌÅ ÎÏÍÅÒ %ld\n"
-
-#: objdump.c:2515
-#, c-format
-msgid "could not determine the type of symbol number %ld\n"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÔÉÐ ÓÉÍ×ÏÌÁ ÎÏÍÅÒ %ld\n"
-
-#: objdump.c:2788
-#, c-format
-msgid ""
-"\n"
-"%s: file format %s\n"
-msgstr ""
-"\n"
-"%s: ÆÏÒÍÁÔ ÆÁÊÌÁ %s\n"
-
-#: objdump.c:2845
-#, c-format
-msgid "%s: printing debugging information failed"
-msgstr "%s: ×Ù×ÏÄ ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÚÁ×ÅÒÛÉÌÓÑ ÎÅÕÄÁÞÅÊ"
-
-#: objdump.c:2936
-#, c-format
-msgid "In archive %s:\n"
-msgstr "÷ ÁÒÈÉ×Å %s:\n"
-
-#: objdump.c:3058
-msgid "unrecognized -E option"
-msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ ÏÐÃÉÑ -E"
-
-#: objdump.c:3069
-#, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ --endian ÔÉÐ `%s'"
-
-#: rdcoff.c:196
-#, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr "parse_coff_type: ðÌÏÈÏÊ ËÏÄ ÔÉÐÁ 0x%x"
-
-#: rdcoff.c:404 rdcoff.c:509 rdcoff.c:697
-#, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr "bfd_coff_get_syment ÚÁ×ÅÒÛÉÌÓÑ ÎÅÕÄÁÞÅÊ: %s"
-
-#: rdcoff.c:420 rdcoff.c:717
-#, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr "bfd_coff_get_auxent ÚÁ×ÅÒÛÉÌÓÑ ÎÅÕÄÁÞÅÊ: %s"
-
-#: rdcoff.c:784
-#, c-format
-msgid "%ld: .bf without preceding function"
-msgstr "%ld: .bf ÂÅÚ ÐÒÅÄÛÅÓÔ×ÕÀÝÅÊ ÆÕÎËÃÉÉ"
-
-#: rdcoff.c:834
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr "%ld: ÎÅÏÖÉÄÁÎÎÙÊ .ef\n"
-
-#: rddbg.c:85
-#, c-format
-msgid "%s: no recognized debugging information"
-msgstr "%s: ÎÅÔ ÒÁÓÐÏÚÎÁÎÎÏÊ ÏÔÌÁÄÏÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ"
-
-#: rddbg.c:394
-#, c-format
-msgid "Last stabs entries before error:\n"
-msgstr "ðÏÓÌÅÄÎÉÅ ÐÕÎËÔÙ stabs ÐÅÒÅÄ ÏÛÉÂËÏÊ:\n"
-
-#: readelf.c:264
-#, c-format
-msgid "Unable to seek to 0x%lx for %s\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ 0x%lx ÄÌÑ %s\n"
-
-#: readelf.c:279
-#, c-format
-msgid "Out of memory allocating 0x%lx bytes for %s\n"
-msgstr "îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ ÐÒÉ ÒÁÓÐÒÅÄÅÌÅÎÉÉ 0x%lx ÂÁÊÔ ÄÌÑ %s\n"
-
-#: readelf.c:289
-#, c-format
-msgid "Unable to read in 0x%lx bytes of %s\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ 0x%lx ÂÁÊÔ ÉÚ %s\n"
-
-#: readelf.c:623
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr "îÅÉÚ×ÅÓÔÎÏ Ï ÐÅÒÅÍÅÝÅÎÉÑÈ ÄÌÑ ÜÔÏÊ ÁÒÈÉÔÅËÔÕÒÙ ÍÁÛÉÎÙ\n"
-
-#: readelf.c:643 readelf.c:671 readelf.c:715 readelf.c:743
-msgid "relocs"
-msgstr "ÐÅÒÅÍÅÝÅÎÉÑ"
-
-#: readelf.c:654 readelf.c:682 readelf.c:726 readelf.c:754
-msgid "out of memory parsing relocs"
-msgstr "ÎÅÈ×ÁÔËÁ ÐÁÍÑÔÉ ÐÒÉ ÒÁÚÂÏÒÅ ÐÅÒÅÍÅÝÅÎÉÊ"
-
-#: readelf.c:808
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
-msgstr " óÍÅÝÅÎÉÅ éÎÆÏ ôÉÐ úÎÁÞ.ÓÉÍ×. éÍÑ ÓÉÍ×ÏÌÁ + Addend\n"
-
-#: readelf.c:810
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
-msgstr " óÍÅÝÅÎÉÅ éÎÆÏ ôÉÐ úÎÁÞ.ÓÉÍ× éÍÑ ÓÉÍ×. + Addend\n"
-
-#: readelf.c:815
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name\n"
-msgstr " óÍÅÝÅÎÉÅ éÎÆÏ ôÉÐ úÎÁÞ.ÓÉÍ× éÍÑ ÓÉÍ×ÏÌÁ\n"
-
-#: readelf.c:817
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name\n"
-msgstr " óÍÅÝÅÎÉÅ éÎÆÏ ôÉÐ úÎÁÞ.ÓÉÍ× éÍÑ ÓÉÍ×.\n"
-
-#: readelf.c:825
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
-msgstr " óÍÅÝÅÎÉÅ éÎÆÏ ôÉÐ úÎÁÞÅÎÉÅ ÓÉÍ×. éÍÑ ÓÉÍ×ÏÌÁ + Addend\n"
-
-#: readelf.c:827
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
-msgstr " óÍÅÝÅÎÉÅ éÎÆÏ ôÉÐ úÎÁÞ.ÓÉÍ×. éÍÑ ÓÉÍ×. + Addend\n"
-
-#: readelf.c:832
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr " óÍÅÝÅÎÉÅ éÎÆÏ ôÉÐ úÎÁÞÅÎÉÅ ÓÉÍ×. éÍÑ ÓÉÍ×ÏÌÁ\n"
-
-#: readelf.c:834
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name\n"
-msgstr " óÍÅÝÅÎÉÅ éÎÆÏ ôÉÐ úÎÁÞ.ÓÉÍ×. éÍÑ ÓÉÍ×.\n"
-
-#: readelf.c:1127 readelf.c:1129 readelf.c:1238 readelf.c:1240 readelf.c:1249
-#: readelf.c:1251
-#, c-format
-msgid "unrecognized: %-7lx"
-msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ: %-7lx"
-
-#: readelf.c:1154
-#, c-format
-msgid "<unknown addend: %lx>"
-msgstr "<ÎÅÉÚ×ÅÓÔÎÙÊ addend: %lx>"
-
-#: readelf.c:1210
-#, c-format
-msgid "<string table index: %3ld>"
-msgstr "<ÉÎÄÅËÓ ÔÁÂÌÉÃÙ ÓÔÒÏË: %3ld>"
-
-#: readelf.c:1212
-#, c-format
-msgid "<corrupt string table index: %3ld>"
-msgstr "<ÐÏ×ÒÅÖÄÅÎ ÉÎÄÅËÓ ÔÁÂÌÉÃÙ ÓÔÒÏË: %3ld>"
-
-#: readelf.c:1522
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr "óÐÅÃÉÆÉÞÎÙÊ ÄÌÑ ÐÒÏÃÅÓÓÏÒÁ: %lx"
-
-#: readelf.c:1543
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr "óÐÅÃÉÆÉÞÎÙÊ ÄÌÑ ÏÐÅÒÁÃÉÏÎÎÏÊ ÓÉÓÔÅÍÙ: %lx"
-
-#: readelf.c:1547 readelf.c:2349
-#, c-format
-msgid "<unknown>: %lx"
-msgstr "<ÎÅÉÚ×ÅÓÔÎÙÊ>: %lx"
-
-#: readelf.c:1560
-msgid "NONE (None)"
-msgstr "îåô (îÅÔ)"
-
-#: readelf.c:1561
-msgid "REL (Relocatable file)"
-msgstr "REL (ðÅÒÅÍÅÝÁÅÍÙÊ ÆÁÊÌ)"
-
-#: readelf.c:1562
-msgid "EXEC (Executable file)"
-msgstr "EXEC (éÓÐÏÌÎÑÅÍÙÊ ÆÁÊÌ)"
-
-#: readelf.c:1563
-msgid "DYN (Shared object file)"
-msgstr "DYN (óÏ×Í. ÉÓÐ. ÏÂßÅËÔÎÙÊ ÆÁÊÌ)"
-
-#: readelf.c:1564
-msgid "CORE (Core file)"
-msgstr "CORE (ïÓÎÏ×ÎÏÊ ÆÁÊÌ)"
-
-#: readelf.c:1568
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr "óÐÅÃÉÆÉÞÎÙÊ ÄÌÑ ÐÒÏÃÅÓÓÏÒÁ: (%x)"
-
-#: readelf.c:1570
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr "óÐÅÃÉÆÉÞÎÙÊ ÄÌÑ ïó: (%x)"
-
-#: readelf.c:1572 readelf.c:1681 readelf.c:2541
-#, c-format
-msgid "<unknown>: %x"
-msgstr "<ÎÅÉÚ×ÅÓÔÎÙÊ>: %x"
-
-#: readelf.c:1584
-msgid "None"
-msgstr "îÅÔ"
-
-#: readelf.c:2186
-msgid "Standalone App"
-msgstr "éÚÏÌÉÒÏ×ÁÎÎÏÅ ÐÒÉÌÏÖÅÎÉÅ"
-
-#: readelf.c:2189 readelf.c:2948 readelf.c:2964
-#, c-format
-msgid "<unknown: %x>"
-msgstr "<ÎÅÉÚ×ÅÓÔÎÙÊ: %x>"
-
-#: readelf.c:2586
-#, c-format
-msgid "Usage: readelf <option(s)> elf-file(s)\n"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: readelf <ÏÐÃÉÉ> elf-ÆÁÊÌ(Ù)\n"
-
-#: readelf.c:2587
-#, c-format
-msgid " Display information about the contents of ELF format files\n"
-msgstr " ïÔÏÂÒÁÖÁÅÔ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÏÄÅÒÖÉÍÏÍ ÆÁÊÌÏ× × ÆÏÒÍÁÔÅ ELF\n"
-
-#: readelf.c:2588
-#, c-format
-msgid ""
-" Options are:\n"
-" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Display the ELF file header\n"
-" -l --program-headers Display the program headers\n"
-" --segments An alias for --program-headers\n"
-" -S --section-headers Display the sections' header\n"
-" --sections An alias for --section-headers\n"
-" -g --section-groups Display the section groups\n"
-" -t --section-details Display the section details\n"
-" -e --headers Equivalent to: -h -l -S\n"
-" -s --syms Display the symbol table\n"
-" --symbols An alias for --syms\n"
-" -n --notes Display the core notes (if present)\n"
-" -r --relocs Display the relocations (if present)\n"
-" -u --unwind Display the unwind info (if present)\n"
-" -d --dynamic Display the dynamic section (if present)\n"
-" -V --version-info Display the version sections (if present)\n"
-" -A --arch-specific Display architecture specific information (if any).\n"
-" -D --use-dynamic Use the dynamic section info when displaying symbols\n"
-" -x --hex-dump=<number> Dump the contents of section <number>\n"
-" -w[liaprmfFsoR] or\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n"
-" Display the contents of DWARF2 debug sections\n"
-msgstr ""
-" ïÐÃÉÉ:\n"
-" -a --all üË×É×ÁÌÅÎÔÎÁ: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header ÷Ù×ÏÄ ÚÁÇÏÌÏ×ËÁ ÆÁÊÌÁ ELF\n"
-" -l --program-headers ÷Ù×ÏÄ ÚÁÇÏÌÏ×ËÏ× ÐÒÏÇÒÁÍÍÙ\n"
-" --segments áÌÉÁÓ ÄÌÑ --program-headers\n"
-" -S --section-headers ÷Ù×ÏÄ ÚÁÇÏÌÏ×ËÁ ÒÁÚÄÅÌÏ×\n"
-" --sections áÌÉÁÓ ÄÌÑ --section-headers\n"
-" -g --section-groups ÷Ù×ÏÄ ÇÒÕÐÐ ÒÁÚÄÅÌÏ×\n"
-" -t --section-details ÷Ù×ÏÄ ÉÎÆÏÒÍÁÃÉÉ Ï ÒÁÚÄÅÌÅ\n"
-" -e --headers üË×É×ÁÌÅÎÔÎÁ: -h -l -S\n"
-" -s --syms ÷Ù×ÏÄ ÔÁÂÌÉÃÙ ÓÉÍ×ÏÌÏ×\n"
-" --symbols áÌÉÁÓ ÄÌÑ --syms\n"
-" -n --notes ÷Ù×ÏÄ ÏÓÎÏ×ÎÙÈ ÚÁÐÉÓÅÊ (ÅÓÌÉ ÉÍÅÀÔÓÑ)\n"
-" -r --relocs ÷Ù×ÏÄ ÐÅÒÅÍÅÝÅÎÉÊ (ÅÓÌÉ ÉÍÅÀÔÓÑ)\n"
-" -u --unwind ÷Ù×ÏÄ ÉÎÆÏÒÍÁÃÉÉ Ï ÒÁÓÐÉÓÙ×ÁÎÉÉ (ÅÓÌÉ ÉÍÅÅÔÓÑ)\n"
-" -d --dynamic ÷Ù×ÏÄ ÄÉÎÁÍÉÞÅÓËÏÇÏ ÓÅÇÍÅÎÔÁ (ÅÓÌÉ ÉÍÅÅÔÓÑ)\n"
-" -V --version-info ÷Ù×ÏÄ ÒÁÚÄÅÌÏ× Ó ×ÅÒÓÉÅÊ (ÅÓÌÉ ÉÍÅÀÔÓÑ)\n"
-" -A --arch-specific ÷Ù×ÏÄ ÉÎÆÏÒÍÁÃÉÉ, ÓÐÅÃÉÆÉÞÎÏÊ ÄÌÑ ÁÒÈÉÔÅËÔÕÒÙ (ÅÓÌÉ ÉÍÅÅÔÓÑ).\n"
-" -D --use-dynamic éÓÐÏÌØÚÏ×ÁÎÉÅ ÄÉÎÁÍÉÞÅÓËÏÊ ÉÎÆÏÒÍÁÃÉÉ ÒÁÚÄÅÌÁ ÐÒÉ ×Ù×ÏÄÅ ÓÉÍ×ÏÌÏ×\n"
-" -x --hex-dump=<ÎÏÍÅÒ> äÁÍÐ ÓÏÄÅÒÖÉÍÏÇÏ ÒÁÚÄÅÌÁ <ÎÏÍÅÒ>\n"
-" -w[liaprmfFsoR] ÉÌÉ\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc,=Ranges]\n"
-" ÷Ù×ÏÄ ÓÏÄÅÒÖÉÍÏÇÏ ÏÔÌÁÄÏÞÎÙÈ ÒÁÚÄÅÌÏ× DWARF2\n"
-
-#: readelf.c:2612
-#, c-format
-msgid ""
-" -i --instruction-dump=<number>\n"
-" Disassemble the contents of section <number>\n"
-msgstr ""
-" -i --instruction-dump=<ÎÏÍÅÒ>\n"
-" äÉÚÁÓÓÅÍÂÌÉÒÏ×ÁÎÉÅ ÓÏÄÅÒÖÉÍÏÇÏ ÒÁÚÄÅÌÁ <ÎÏÍÅÒ>\n"
-
-#: readelf.c:2616
-#, c-format
-msgid ""
-" -I --histogram Display histogram of bucket list lengths\n"
-" -W --wide Allow output width to exceed 80 characters\n"
-" @<file> Read options from <file>\n"
-" -H --help Display this information\n"
-" -v --version Display the version number of readelf\n"
-msgstr ""
-" -I --histogram ÷Ù×ÏÄ ÇÉÓÔÏÇÒÁÍÍÙ ÄÌÉÎ ÓÐÉÓËÁ ÕÞÁÓÔËÁ ÐÁÍÑÔÉ\n"
-" -W --wide òÁÚÒÅÛÅÎÉÅ ÛÉÒÉÎÙ ×Ù×ÏÄÁ ÂÏÌÅÅ 80 ÓÉÍ×ÏÌÏ×\n"
-" @<ÆÁÊÌ> þÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>\n"
-" -H --help ÷Ù×ÏÄ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ\n"
-" -v --version ÷Ù×ÏÄ ÎÏÍÅÒÁ ×ÅÒÓÉÉ readelf\n"
-
-#: readelf.c:2642 readelf.c:9180
-msgid "Out of memory allocating dump request table."
-msgstr "îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ ÐÒÉ ÒÁÚÍÅÝÅÎÉÉ ÄÁÍÐÁ ÔÁÂÌÉÃÙ ÚÁÐÒÏÓÁ."
-
-#: readelf.c:2816 readelf.c:2884
-#, c-format
-msgid "Unrecognized debug option '%s'\n"
-msgstr "îÅÒÁÓÐÏÚÎÁÎÎÁÑ ÏÔÌÁÄÏÞÎÁÑ ÏÐÃÉÑ '%s'\n"
-
-#: readelf.c:2918
-#, c-format
-msgid "Invalid option '-%c'\n"
-msgstr "îÅ×ÅÒÎÁÑ ÏÐÃÉÑ '-%c'\n"
-
-#: readelf.c:2932
-msgid "Nothing to do.\n"
-msgstr "îÅÞÅÇÏ ×ÙÐÏÌÎÑÔØ.\n"
-
-#: readelf.c:2944 readelf.c:2960 readelf.c:6169
-msgid "none"
-msgstr "ÎÅÔ"
-
-#: readelf.c:2961
-msgid "2's complement, little endian"
-msgstr "ÄÏÐÏÌÎÅÎÉÅ ÄÏ 2, little endian"
-
-#: readelf.c:2962
-msgid "2's complement, big endian"
-msgstr "ÄÏÐÏÌÎÅÎÉÅ ÄÏ 2, big endian"
-
-#: readelf.c:2980
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr "îÅ ELF-ÆÁÊÌ - ÏÎ ÓÏÄÅÒÖÉÔ ÎÅ×ÅÒÎÙÅ magic-ÂÁÊÔÙ × ÎÁÞÁÌÅ\n"
-
-#: readelf.c:2988
-#, c-format
-msgid "ELF Header:\n"
-msgstr "úÁÇÏÌÏ×ÏË ELF:\n"
-
-#: readelf.c:2989
-#, c-format
-msgid " Magic: "
-msgstr " Magic: "
-
-#: readelf.c:2993
-#, c-format
-msgid " Class: %s\n"
-msgstr " ëÌÁÓÓ: %s\n"
-
-#: readelf.c:2995
-#, c-format
-msgid " Data: %s\n"
-msgstr " äÁÎÎÙÅ: %s\n"
-
-#: readelf.c:2997
-#, c-format
-msgid " Version: %d %s\n"
-msgstr " ÷ÅÒÓÉÑ: %d %s\n"
-
-#: readelf.c:3004
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr " OS/ABI: %s\n"
-
-#: readelf.c:3006
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr " ÷ÅÒÓÉÑ ABI: %d\n"
-
-#: readelf.c:3008
-#, c-format
-msgid " Type: %s\n"
-msgstr " ôÉÐ: %s\n"
-
-#: readelf.c:3010
-#, c-format
-msgid " Machine: %s\n"
-msgstr " íÁÛÉÎÁ: %s\n"
-
-#: readelf.c:3012
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr " ÷ÅÒÓÉÑ: 0x%lx\n"
-
-#: readelf.c:3015
-#, c-format
-msgid " Entry point address: "
-msgstr " áÄÒÅÓ ÔÏÞËÉ ×ÈÏÄÁ: "
-
-#: readelf.c:3017
-#, c-format
-msgid ""
-"\n"
-" Start of program headers: "
-msgstr ""
-"\n"
-" îÁÞÁÌÏ ÚÁÇÏÌÏ×ËÏ× ÐÒÏÇÒÁÍÍÙ: "
-
-#: readelf.c:3019
-#, c-format
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr ""
-" (ÂÁÊÔ × ÆÁÊÌÅ)\n"
-" îÁÞÁÌÏ ÚÁÇÏÌÏ×ËÏ× ÐÒÏÇÒÁÍÍÙ: "
-
-#: readelf.c:3021
-#, c-format
-msgid " (bytes into file)\n"
-msgstr " (ÂÁÊÔ × ÆÁÊÌÅ)\n"
-
-#: readelf.c:3023
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr " æÌÁÇÉ: 0x%lx%s\n"
-
-#: readelf.c:3026
-#, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr " òÁÚÍÅÒ ÜÔÏÇÏ ÚÁÇÏÌÏ×ËÁ: %ld (ÂÁÊÔ)\n"
-
-#: readelf.c:3028
-#, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr " òÁÚÍÅÒ ÚÁÇÏÌÏ×ËÏ× ÐÒÏÇÒÁÍÍÙ: %ld (ÂÁÊÔ)\n"
-
-#: readelf.c:3030
-#, c-format
-msgid " Number of program headers: %ld\n"
-msgstr " þÉÓÌÏ ÚÁÇÏÌÏ×ËÏ× ÐÒÏÇÒÁÍÍÙ: %ld\n"
-
-#: readelf.c:3032
-#, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr " òÁÚÍÅÒ ÚÁÇÏÌÏ×ËÏ× ÒÁÚÄÅÌÁ: %ld (ÂÁÊÔ)\n"
-
-#: readelf.c:3034
-#, c-format
-msgid " Number of section headers: %ld"
-msgstr " þÉÓÌÏ ÚÁÇÏÌÏ×ËÏ× ÒÁÚÄÅÌÁ: %ld"
-
-#: readelf.c:3039
-#, c-format
-msgid " Section header string table index: %ld"
-msgstr " éÎÄÅËÓ ÔÁÂÌ. ÓÔÒÏË ÚÁÇÏÌ. ÒÁÚÄÅÌÁ: %ld"
-
-#: readelf.c:3070 readelf.c:3103
-msgid "program headers"
-msgstr "ÚÁÇÏÌÏ×ËÉ ÐÒÏÇÒÁÍÍÙ"
-
-#: readelf.c:3141 readelf.c:3440 readelf.c:3481 readelf.c:3540 readelf.c:3603
-#: readelf.c:4208 readelf.c:4232 readelf.c:5510 readelf.c:5554 readelf.c:5752
-#: readelf.c:6734 readelf.c:6748 readelf.c:8564 readelf.c:8972 readelf.c:9039
-msgid "Out of memory\n"
-msgstr "îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ\n"
-
-#: readelf.c:3168
-#, c-format
-msgid ""
-"\n"
-"There are no program headers in this file.\n"
-msgstr ""
-"\n"
-"÷ ÜÔÏÍ ÆÁÊÌÅ ÎÅÔ ÚÁÇÏÌÏ×ËÏ× ÐÒÏÇÒÁÍÍÙ.\n"
-
-#: readelf.c:3174
-#, c-format
-msgid ""
-"\n"
-"Elf file type is %s\n"
-msgstr ""
-"\n"
-"ôÉÐ elf-ÆÁÊÌÁ - %s\n"
-
-#: readelf.c:3175
-#, c-format
-msgid "Entry point "
-msgstr "ôÏÞËÁ ×ÈÏÄÁ "
-
-#: readelf.c:3177
-#, c-format
-msgid ""
-"\n"
-"There are %d program headers, starting at offset "
-msgstr ""
-"\n"
-"éÍÅÅÔÓÑ %d ÚÁÇÏÌÏ×ËÏ× ÐÒÏÇÒÁÍÍÙ, ÎÁÞÉÎÁÑ ÓÏ ÓÍÅÝÅÎÉÑ "
-
-#: readelf.c:3189 readelf.c:3191
-#, c-format
-msgid ""
-"\n"
-"Program Headers:\n"
-msgstr ""
-"\n"
-"úÁÇÏÌÏ×ËÉ ÐÒÏÇÒÁÍÍÙ:\n"
-
-#: readelf.c:3195
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " ôÉÐ óÍÅÝ. ÷ÉÒÔ.ÁÄÒ æÉÚ.ÁÄÒ òÚÍ.ÆÊÌ òÚÍ.ÐÍ æÌÇ ÷ÙÒÁ×Î\n"
-
-#: readelf.c:3198
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " ôÉÐ óÍÅÝ. ÷ÉÒÔ.ÁÄÒ æÉÚ.ÁÄÒ òÚÍ.ÆÊÌ òÚÍ.ÐÍ æÌÇ ÷ÙÒÁ×Î\n"
-
-#: readelf.c:3202
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr " ôÉÐ óÍÅÝ. ÷ÉÒÔ.ÁÄÒ æÉÚ.ÁÄÒ\n"
-
-#: readelf.c:3204
-#, c-format
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr " òÚÍ.ÆÊÌ òÚÍ.ÐÍ æÌÁÇÉ ÷ÙÒÁ×Î\n"
-
-#: readelf.c:3297
-msgid "more than one dynamic segment\n"
-msgstr "ÂÏÌÅÅ ÏÄÎÏÇÏ ÄÉÎÁÍÉÞÅÓËÏÇÏ ÓÅÇÍÅÎÔÁ\n"
-
-#: readelf.c:3308
-msgid "no .dynamic section in the dynamic segment"
-msgstr "× ÄÉÎÁÍÉÞÅÓËÏÍ ÓÅÇÍÅÎÔÅ ÎÅÔ ÒÁÚÄÅÌÁ .dynamic"
-
-#: readelf.c:3317
-msgid "the .dynamic section is not contained within the dynamic segment"
-msgstr "× ÄÉÎÁÍÉÞÅÓËÏÍ ÓÅÇÍÅÎÔÅ ÎÅ ÓÏÄÅÒÖÉÔÓÑ ÒÁÚÄÅÌ .dynamic"
-
-#: readelf.c:3319
-msgid "the .dynamic section is not the first section in the dynamic segment."
-msgstr "ÒÁÚÄÅÌ .dynamic ÎÅ Ñ×ÌÑÅÔÓÑ ÐÅÒ×ÙÍ ÒÁÚÄÅÌÏÍ ÄÉÎÁÍÉÞÅÓËÏÇÏ ÓÅÇÍÅÎÔÁ"
-
-#: readelf.c:3333
-msgid "Unable to find program interpreter name\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÉÍÑ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ÐÒÏÇÒÁÍÍÙ\n"
-
-#: readelf.c:3340
-#, c-format
-msgid ""
-"\n"
-" [Requesting program interpreter: %s]"
-msgstr ""
-"\n"
-" [úÁÐÒÁÛÉ×ÁÅÍÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÐÒÏÇÒÁÍÍÙ: %s]"
-
-#: readelf.c:3352
-#, c-format
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-msgstr ""
-"\n"
-" óÏÏÔ×ÅÔÓÔ×ÉÅ ÒÁÚÄÅÌ-ÓÅÇÍÅÎÔ:\n"
-
-#: readelf.c:3353
-#, c-format
-msgid " Segment Sections...\n"
-msgstr " óÅÇÍÅÎÔ òÁÚÄÅÌÙ...\n"
-
-#: readelf.c:3402
-msgid "Cannot interpret virtual addresses without program headers.\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÉÎÔÅÒÐÒÅÔÉÒÏ×ÁÔØ ×ÉÒÔÕÁÌØÎÙÅ ÁÄÒÅÓÁ ÂÅÚ ÚÁÇÏÌÏ×ËÏ× ÐÒÏÇÒÁÍÍÙ.\n"
-
-#: readelf.c:3418
-#, c-format
-msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
-msgstr "÷ÉÒÔÕÁÌØÎÙÊ ÁÄÒÅÓ 0x%lx ÎÅ ÒÁÚÍÅÝÅÎ × ËÁËÏÍ-ÌÉÂÏ ÓÅÇÍÅÎÔÅ PT_LOAD.\n"
-
-#: readelf.c:3432 readelf.c:3473
-msgid "section headers"
-msgstr "ÚÁÇÏÌÏ×ËÉ ÒÁÚÄÅÌÏ×"
-
-#: readelf.c:3517 readelf.c:3580
-msgid "symbols"
-msgstr "ÓÉÍ×ÏÌÙ"
-
-#: readelf.c:3527 readelf.c:3590
-msgid "symtab shndx"
-msgstr "symtab shndx"
-
-#: readelf.c:3817 readelf.c:4192
-#, c-format
-msgid ""
-"\n"
-"There are no sections in this file.\n"
-msgstr ""
-"\n"
-"÷ ÜÔÏÍ ÆÁÊÌÅ ÎÅÔ ÒÁÚÄÅÌÏ×.\n"
-
-#: readelf.c:3823
-#, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr "éÍÅÅÔÓÑ %d ÚÁÇÏÌÏ×ËÏ× ÒÁÚÄÅÌÁ, ÎÁÞÉÎÁÑ ÓÏ ÓÍÅÝÅÎÉÑ 0x%lx:\n"
-
-#: readelf.c:3842 readelf.c:4309 readelf.c:4544 readelf.c:4852 readelf.c:5267
-#: readelf.c:6906
-msgid "string table"
-msgstr "ÔÁÂÌÉÃÁ ÓÔÒÏË"
-
-#: readelf.c:3881
-#, c-format
-msgid "Section %d has invalid sh_entsize %lx (expected %lx)\n"
-msgstr "òÁÚÄÅÌ %d ÓÏÄÅÒÖÉÔ ÎÅ×ÅÒÎÙÊ sh_entsize %lx (ÏÖÉÄÁÌÏÓØ %lx)\n"
-
-#: readelf.c:3901
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr "æÁÊÌ ÓÏÄÅÒÖÉÔ ÎÅÓËÏÌØËÏ ÔÁÂÌÉà ÄÉÎÁÍÉÞÅÓËÉÈ ÓÉÍ×ÏÌÏ×\n"
-
-#: readelf.c:3914
-msgid "File contains multiple dynamic string tables\n"
-msgstr "æÁÊÌ ÓÏÄÅÒÖÉÔ ÎÅÓËÏÌØËÏ ÔÁÂÌÉà ÄÉÎÁÍÉÞÅÓËÉÈ ÓÔÒÏË\n"
-
-#: readelf.c:3919
-msgid "dynamic strings"
-msgstr "ÄÉÎÁÍÉÞÅÓËÉÅ ÓÔÒÏËÉ"
-
-#: readelf.c:3926
-msgid "File contains multiple symtab shndx tables\n"
-msgstr "æÁÊÌ ÓÏÄÅÒÖÉÔ ÎÅÓËÏÌØËÏ ÔÁÂÌÉà symtab shndx\n"
-
-#: readelf.c:3973
-#, c-format
-msgid ""
-"\n"
-"Section Headers:\n"
-msgstr ""
-"\n"
-"úÁÇÏÌÏ×ËÉ ÒÁÚÄÅÌÏ×:\n"
-
-#: readelf.c:3975
-#, c-format
-msgid ""
-"\n"
-"Section Header:\n"
-msgstr ""
-"\n"
-"úÁÇÏÌÏ×ÏË ÒÁÚÄÅÌÁ:\n"
-
-#: readelf.c:3981 readelf.c:3992 readelf.c:4003
-#, c-format
-msgid " [Nr] Name\n"
-msgstr " [Nr] éÍÑ\n"
-
-#: readelf.c:3982
-#, c-format
-msgid " Type Addr Off Size ES Lk Inf Al\n"
-msgstr " ôÉÐ áÄÒÅÓ óÍÅÝ òÁÚÍ ES óÓ éÎÆ Al\n"
-
-#: readelf.c:3986
-#, c-format
-msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-msgstr " [îÍ] éÍÑ ôÉÐ áÄÒÅÓ óÍÅÝ òÁÚÍ ES æÌÇ óÓ éÎÆ Al\n"
-
-#: readelf.c:3993
-#, c-format
-msgid " Type Address Off Size ES Lk Inf Al\n"
-msgstr " ôÉÐ áÄÒÅÓ óÍÅÝ òÁÚÍ ES óÓ éÎÆ Al\n"
-
-#: readelf.c:3997
-#, c-format
-msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
-msgstr " [îÍ] éÍÑ ôÉÐ áÄÒÅÓ óÍÅÝ òÁÚÍ ES æÌÇ ìË éÎÆ Al\n"
-
-#: readelf.c:4004
-#, c-format
-msgid " Type Address Offset Link\n"
-msgstr " ôÉÐ áÄÒÅÓ óÍÅÝÅÎÉÅ óÓÙÌËÁ\n"
-
-#: readelf.c:4005
-#, c-format
-msgid " Size EntSize Info Align\n"
-msgstr " òÁÚÍÅÒ òÁÚÍ.Ent éÎÆÏ ÷ÙÒÁ×Î\n"
-
-#: readelf.c:4009
-#, c-format
-msgid " [Nr] Name Type Address Offset\n"
-msgstr " [îÍ] éÍÑ ôÉÐ áÄÒÅÓ óÍÅÝÅÎÉÅ\n"
-
-#: readelf.c:4010
-#, c-format
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr " òÁÚÍÅÒ òÁÚÍ.Ent æÌÁÇÉ óÓÙÌË éÎÆÏ ÷ÙÒÁ×Î\n"
-
-#: readelf.c:4015
-#, c-format
-msgid " Flags\n"
-msgstr " æÌÁÇÉ\n"
-
-#: readelf.c:4150
-#, c-format
-msgid ""
-"Key to Flags:\n"
-" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-" I (info), L (link order), G (group), x (unknown)\n"
-" O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr ""
-"ïÂÏÚÎÁÞÅÎÉÑ ÆÌÁÇÏ×:\n"
-" W (ÚÁÐÉÓØ), A (ÎÁÚÎÁÞ), X (ÉÓÐÏÌÎÑÅÍÙÊ), M (ÓÌÉÑÎÉÅ), S (ÓÔÒÏËÉ)\n"
-" I (ÉÎÆÏ), L (ÐÏÒÑÄÏË ÓÓÙÌÏË), G (ÇÒÕÐÐÁ), x (ÎÅÉÚ×.)\n"
-" O (ÔÒÅÂ. ÄÏÐ. ÏÂÒÁÂÏÔËÁ ïó) o (ÓÐÅÃÉÆÉÞÎÙÊ ÄÌÑ ïó), p (ÓÐÅÃÉÆÉÞÎÙÊ ÄÌÑ ÐÒÏÃÅÓÓÏÒÁ)\n"
-
-#: readelf.c:4168
-#, c-format
-msgid "[<unknown>: 0x%x]"
-msgstr "[<ÎÅÉÚ×ÅÓÔÎÙÊ>: 0x%x]"
-
-#: readelf.c:4199
-msgid "Section headers are not available!\n"
-msgstr "îÅÄÏÓÔÕÐÎÙ ÚÁÇÏÌÏ×ËÉ ÒÁÚÄÅÌÁ!\n"
-
-#: readelf.c:4223
-#, c-format
-msgid ""
-"\n"
-"There are no section groups in this file.\n"
-msgstr ""
-"\n"
-"÷ ÜÔÏÍ ÆÁÊÌÅ ÎÅÔ ÇÒÕÐÐ ÒÁÚÄÅÌÏ×.\n"
-
-#: readelf.c:4259
-#, c-format
-msgid "Bad sh_link in group section `%s'\n"
-msgstr "îÅ×ÅÒÎÙÊ sh_link × ÒÁÚÄÅÌÅ ÇÒÕÐÐ `%s'\n"
-
-#: readelf.c:4278
-#, c-format
-msgid "Bad sh_info in group section `%s'\n"
-msgstr "îÅ×ÅÒÎÙÊ sh_info × ÒÁÚÄÅÌÅ ÇÒÕÐÐ `%s'\n"
-
-#: readelf.c:4317 readelf.c:7243
-msgid "section data"
-msgstr "ÄÁÎÎÙÅ ÒÁÚÄÅÌÁ"
-
-#: readelf.c:4329
-#, c-format
-msgid " [Index] Name\n"
-msgstr " [éÎÄÅËÓ] éÍÑ\n"
-
-#: readelf.c:4343
-#, c-format
-msgid "section [%5u] in group section [%5u] > maximum section [%5u]\n"
-msgstr "ÒÁÚÄÅÌ [%5u] ÕÖÅ ÎÁÈÏÄÉÔÓÑ × ÒÁÚÄÅÌÅ ÇÒÕÐÐ [%5u] > ÍÁËÓÉÍÁÌØÎÙÊ ÒÁÚÄÅÌ [%5u]\n"
-
-#: readelf.c:4349
-#, c-format
-msgid "invalid section [%5u] in group section [%5u]\n"
-msgstr "ÎÅ×ÅÒÎÙÊ ÒÁÚÄÅÌ [%5u] × ÒÁÚÄÅÌÅ ÇÒÕÐÐ [%5u]\n"
-
-#: readelf.c:4359
-#, c-format
-msgid "section [%5u] in group section [%5u] already in group section [%5u]\n"
-msgstr "ÒÁÚÄÅÌ [%5u] ÉÚ ÒÁÚÄÅÌÁ ÇÒÕÐÐ [%5u] ÕÖÅ ÎÁÈÏÄÉÔÓÑ × ÒÁÚÄÅÌÅ ÇÒÕÐÐ [%5u]\n"
-
-#: readelf.c:4372
-#, c-format
-msgid "section 0 in group section [%5u]\n"
-msgstr "ÒÁÚÄÅÌ 0 × ÒÁÚÄÅÌÅ ÇÒÕÐÐ [%5u]\n"
-
-#: readelf.c:4468
-#, c-format
-msgid ""
-"\n"
-"'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr ""
-"\n"
-"'%s' ÒÁÚÄÅÌ ÐÅÒÅÍÅÝÅÎÉÑ ÓÏ ÓÍÅÝÅÎÉÅÍ 0x%lx ÓÏÄÅÒÖÉÔ %ld ÂÁÊÔ:\n"
-
-#: readelf.c:4480
-#, c-format
-msgid ""
-"\n"
-"There are no dynamic relocations in this file.\n"
-msgstr ""
-"\n"
-"÷ ÜÔÏÍ ÆÁÊÌÅ ÎÅÔ ÄÉÎÁÍÉÞÅÓËÉÈ ÐÅÒÅÍÅÝÅÎÉÊ .\n"
-
-#: readelf.c:4504
-#, c-format
-msgid ""
-"\n"
-"Relocation section "
-msgstr ""
-"\n"
-"òÁÚÄÅÌ ÐÅÒÅÍÅÝÅÎÉÑ "
-
-#: readelf.c:4509 readelf.c:4928 readelf.c:4942 readelf.c:5282
-#, c-format
-msgid "'%s'"
-msgstr "'%s'"
-
-#: readelf.c:4511 readelf.c:4944 readelf.c:5284
-#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr " ÓÏ ÓÍÅÝÅÎÉÅÍ 0x%lx ÓÏÄÅÒÖÉÔ %lu ÐÕÎËÔÏ×:\n"
-
-#: readelf.c:4563
-#, c-format
-msgid ""
-"\n"
-"There are no relocations in this file.\n"
-msgstr ""
-"\n"
-"÷ ÜÔÏÍ ÆÁÊÌÅ ÎÅÔ ÐÅÒÅÍÅÝÅÎÉÊ.\n"
-
-#: readelf.c:4742 readelf.c:5124
-msgid "unwind table"
-msgstr "ÒÁÚ×ÅÒÎÕÔÁÑ ÔÁÂÌÉÃÁ"
-
-#: readelf.c:4801 readelf.c:5214
-#, c-format
-msgid "Skipping unexpected relocation type %s\n"
-msgstr "ðÒÏÐÕÓËÁÅÔÓÑ ÎÅÏÖÉÄÁÎÎÙÊ ÔÉÐ ÐÅÒÅÍÅÝÅÎÉÑ %s\n"
-
-#: readelf.c:4860 readelf.c:5275 readelf.c:5326
-#, c-format
-msgid ""
-"\n"
-"There are no unwind sections in this file.\n"
-msgstr ""
-"\n"
-"÷ ÜÔÏÍ ÆÁÊÌÅ ÎÅÔ ÒÁÚ×ÅÒÎÕÔÙÈ ÒÁÚÄÅÌÏ×.\n"
-
-#: readelf.c:4923
-#, c-format
-msgid ""
-"\n"
-"Could not find unwind info section for "
-msgstr ""
-"\n"
-"îÅ×ÏÚÍÏÖÎÏ ÂÙÌÏ ÎÁÊÔÉ ÒÁÚÄÅÌ Ó ÒÁÚ×ÅÒÎÕÔÏÊ ÉÎÆÏÒÍÁÃÉÅÊ ÄÌÑ"
-
-#: readelf.c:4935
-msgid "unwind info"
-msgstr "ÒÁÚ×ÅÒÎÕÔÁÑ ÉÎÆÏÒÍÁÃÉÑ"
-
-#: readelf.c:4937 readelf.c:5281
-#, c-format
-msgid ""
-"\n"
-"Unwind section "
-msgstr ""
-"\n"
-"òÁÚ×ÅÒÎÕÔÙÊ ÒÁÚÄÅÌ "
-
-#: readelf.c:5491 readelf.c:5535
-msgid "dynamic section"
-msgstr "ÄÉÎÁÍÉÞÅÓËÉÊ ÒÁÚÄÅÌ"
-
-#: readelf.c:5612
-#, c-format
-msgid ""
-"\n"
-"There is no dynamic section in this file.\n"
-msgstr ""
-"\n"
-"÷ ÜÔÏÍ ÆÁÊÌÅ ÎÅÔ ÄÉÎÁÍÉÞÅÓËÏÇÏ ÒÁÚÄÅÌÁ.\n"
-
-#: readelf.c:5650
-msgid "Unable to seek to end of file!"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÄÏ ËÏÎÃÁ ÆÁÊÌÁ!"
-
-#: readelf.c:5663
-msgid "Unable to determine the number of symbols to load\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÞÉÓÌÏ ÚÁÇÒÕÖÁÅÍÙÈ ÓÉÍ×ÏÌÏ×\n"
-
-#: readelf.c:5698
-msgid "Unable to seek to end of file\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÄÏ ËÏÎÃÁ ÆÁÊÌÁ\n"
-
-#: readelf.c:5705
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÄÌÉÎÕ ÔÁÂÌÉÃÙ ÄÉÎÁÍÉÞÅÓËÉÈ ÓÔÒÏË\n"
-
-#: readelf.c:5710
-msgid "dynamic string table"
-msgstr "ÔÁÂÌÉÃÁ ÄÉÎÁÍÉÞÅÓËÉÈ ÓÔÒÏË"
-
-#: readelf.c:5745
-msgid "symbol information"
-msgstr "ÉÎÆÏÒÍÁÃÉÑ Ï ÓÉÍ×ÏÌÅ"
-
-#: readelf.c:5770
-#, c-format
-msgid ""
-"\n"
-"Dynamic section at offset 0x%lx contains %u entries:\n"
-msgstr ""
-"\n"
-"äÉÎÁÍÉÞÅÓËÉÊ ÒÁÚÄÅÌ ÓÏ ÓÍÅÝÅÎÉÅÍ 0x%lx ÓÏÄÅÒÖÉÔ %u ÐÕÎËÔÏ×:\n"
-
-#: readelf.c:5773
-#, c-format
-msgid " Tag Type Name/Value\n"
-msgstr " ôÅÇ ôÉÐ éÍÑ/úÎÁÞ\n"
-
-#: readelf.c:5809
-#, c-format
-msgid "Auxiliary library"
-msgstr "÷ÓÐÏÍÏÇÁÔÅÌØÎÁÑ ÂÉÂÌÉÏÔÅËÁ"
-
-#: readelf.c:5813
-#, c-format
-msgid "Filter library"
-msgstr "âÉÂÌÉÏÔÅËÁ ÆÉÌØÔÒÏ×"
-
-#: readelf.c:5817
-#, c-format
-msgid "Configuration file"
-msgstr "æÁÊÌ ÎÁÓÔÒÏÊËÉ"
-
-#: readelf.c:5821
-#, c-format
-msgid "Dependency audit library"
-msgstr "âÉÂÌÉÏÔÅËÁ ÁÕÄÉÔÁ ÚÁ×ÉÓÉÍÏÓÔÅÊ"
-
-#: readelf.c:5825
-#, c-format
-msgid "Audit library"
-msgstr "âÉÂÌÉÏÔÅËÁ ÁÕÄÉÔÁ"
-
-#: readelf.c:5843 readelf.c:5871 readelf.c:5899
-#, c-format
-msgid "Flags:"
-msgstr "æÌÁÇÉ:"
-
-#: readelf.c:5846 readelf.c:5874 readelf.c:5901
-#, c-format
-msgid " None\n"
-msgstr " îÅÔ\n"
-
-#: readelf.c:6022
-#, c-format
-msgid "Shared library: [%s]"
-msgstr "óÏ×Í. ÉÓÐ. ÂÉÂÌÉÏÔÅËÁ: [%s]"
-
-#: readelf.c:6025
-#, c-format
-msgid " program interpreter"
-msgstr " ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÐÒÏÇÒÁÍÍÙ"
-
-#: readelf.c:6029
-#, c-format
-msgid "Library soname: [%s]"
-msgstr "âÉÂÌÉÏÔÅËÁ soname: [%s]"
-
-#: readelf.c:6033
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr "âÉÂÌÉÏÔÅËÁ rpath: [%s]"
-
-#: readelf.c:6037
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr "âÉÂÌÉÏÔÅËÁ runpath: [%s]"
-
-#: readelf.c:6100
-#, c-format
-msgid "Not needed object: [%s]\n"
-msgstr "îÅÎÕÖÎÙÊ ÏÂßÅËÔ: [%s]\n"
-
-#: readelf.c:6214
-#, c-format
-msgid ""
-"\n"
-"Version definition section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"òÁÚÄÅÌ ÏÐÉÓÁÎÉÑ ×ÅÒÓÉÉ '%s' ÓÏÄÅÒÖÉÔ %ld ÐÕÎËÔÏ×:\n"
-
-#: readelf.c:6217
-#, c-format
-msgid " Addr: 0x"
-msgstr " áÄÒÅÓ: 0x"
-
-#: readelf.c:6219 readelf.c:6426
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr " óÍÅÝÅÎÉÅ: %#08lx óÓÙÌËÁ: %lx (%s)\n"
-
-#: readelf.c:6228
-msgid "version definition section"
-msgstr "ÒÁÚÄÅÌ ÏÐÉÓÁÎÉÑ ×ÅÒÓÉÉ"
-
-#: readelf.c:6254
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr " %#06x: òÅ×ÉÚÉÑ: %d æÌÁÇÉ: %s"
-
-#: readelf.c:6257
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr " éÎÄÅËÓ: %d óÞÅÔÞÉË: %d "
-
-#: readelf.c:6268
-#, c-format
-msgid "Name: %s\n"
-msgstr "éÍÑ: %s\n"
-
-#: readelf.c:6270
-#, c-format
-msgid "Name index: %ld\n"
-msgstr "éÎÄÅËÓ ÉÍÅÎÉ: %ld\n"
-
-#: readelf.c:6285
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr " %#06x: òÏÄÉÔÅÌØ %d: %s\n"
-
-#: readelf.c:6288
-#, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr " %#06x: òÏÄÉÔÅÌØ %d, ÉÎÄÅËÓ ÉÍÅÎÉ: %ld\n"
-
-#: readelf.c:6307
-#, c-format
-msgid ""
-"\n"
-"Version needs section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"òÁÚÄÅÌ ÚÁ×ÉÓÉÍÏÓÔÅÊ ×ÅÒÓÉÉ '%s' ÓÏÄÅÒÖÉÔ %ld ÐÕÎËÔÏ×:\n"
-
-#: readelf.c:6310
-#, c-format
-msgid " Addr: 0x"
-msgstr " áÄÒÅÓ: 0x"
-
-#: readelf.c:6312
-#, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr " óÍÅÝÅÎÉÅ: %#08lx óÓÙÌËÁ ÎÁ ÒÁÚÄÅÌ: %ld (%s)\n"
-
-#: readelf.c:6321
-msgid "version need section"
-msgstr "ÒÁÚÄÅÌ ÚÁ×ÉÓÉÍÏÓÔÅÊ ×ÅÒÓÉÉ"
-
-#: readelf.c:6343
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr " %#06x: ÷ÅÒÓÉÑ: %d"
-
-#: readelf.c:6346
-#, c-format
-msgid " File: %s"
-msgstr " æÁÊÌ: %s"
-
-#: readelf.c:6348
-#, c-format
-msgid " File: %lx"
-msgstr " æÁÊÌ: %lx"
-
-#: readelf.c:6350
-#, c-format
-msgid " Cnt: %d\n"
-msgstr " óÞÅÔÞÉË: %d\n"
-
-#: readelf.c:6368
-#, c-format
-msgid " %#06x: Name: %s"
-msgstr " %#06x: éÍÑ: %s"
-
-#: readelf.c:6371
-#, c-format
-msgid " %#06x: Name index: %lx"
-msgstr " %#06x: éÎÄÅËÓ ÉÍÅÎÉ: %lx"
-
-#: readelf.c:6374
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr " æÌÁÇÉ: %s ÷ÅÒÓÉÑ: %d\n"
-
-#: readelf.c:6417
-msgid "version string table"
-msgstr "ÔÁÂÌÉÃÁ ÓÔÒÏË ×ÅÒÓÉÉ"
-
-#: readelf.c:6421
-#, c-format
-msgid ""
-"\n"
-"Version symbols section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"òÁÚÄÅÌ ÓÉÍ×ÏÌÏ× ×ÅÒÓÉÉ '%s' ÓÏÄÅÒÖÉÔ %d ÐÕÎËÔÏ×:\n"
-
-#: readelf.c:6424
-#, c-format
-msgid " Addr: "
-msgstr " áÄÒÅÓ: "
-
-#: readelf.c:6434
-msgid "version symbol data"
-msgstr "ÄÁÎÎÙÅ ÓÉÍ×ÏÌÁ ×ÅÒÓÉÉ"
-
-#: readelf.c:6461
-msgid " 0 (*local*) "
-msgstr " 0 (*ÌÏËÁÌØÎÙÊ*) "
-
-#: readelf.c:6465
-msgid " 1 (*global*) "
-msgstr " 1 (*ÇÌÏÂÁÌØÎÙÊ*) "
-
-#: readelf.c:6503 readelf.c:6969
-msgid "version need"
-msgstr "ÚÁ×ÉÓÉÍÏÓÔØ ×ÅÒÓÉÉ"
-
-#: readelf.c:6513
-msgid "version need aux (2)"
-msgstr "ÚÁ×ÉÓÉÍÏÓÔØ ×ÅÒÓÉÉ aux (2)"
-
-#: readelf.c:6555 readelf.c:7034
-msgid "version def"
-msgstr "ÏÐÉÓÁÎÉÅ ×ÅÒÓÉÉ"
-
-#: readelf.c:6575 readelf.c:7049
-msgid "version def aux"
-msgstr "ÏÐÉÓÁÎÉÅ ×ÅÒÓÉÉ aux"
-
-#: readelf.c:6606
-#, c-format
-msgid ""
-"\n"
-"No version information found in this file.\n"
-msgstr ""
-"\n"
-"÷ ÜÔÏÍ ÆÁÊÌÅ ÎÅ ÎÁÊÄÅÎÁ ÉÎÆÏÒÍÁÃÉÑ Ï ×ÅÒÓÉÉ.\n"
-
-#: readelf.c:6740
-msgid "Unable to read in dynamic data\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÓÞÉÔÁÔØ ÄÉÎÁÍÉÞÅÓËÉÅ ÄÁÎÎÙÅ\n"
-
-#: readelf.c:6793
-msgid "Unable to seek to start of dynamic information"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÏÔ ÎÁÞÁÌÁ ÄÉÎÁÍÉÞÅÓËÏÊ ÉÎÆÏÒÍÁÃÉÉ"
-
-#: readelf.c:6799
-msgid "Failed to read in number of buckets\n"
-msgstr "óÂÏÊ ÐÒÉ ÓÞÉÔÙ×ÁÎÉÉ ÞÉÓÌÁ ÏÂÌÁÓÔÅÊ ÐÁÍÑÔÉ\n"
-
-#: readelf.c:6805
-msgid "Failed to read in number of chains\n"
-msgstr "óÂÏÊ ÐÒÉ ÓÞÉÔÙ×ÁÎÉÉ ÞÉÓÌÁ ÃÅÐÏÞÅË\n"
-
-#: readelf.c:6825
-#, c-format
-msgid ""
-"\n"
-"Symbol table for image:\n"
-msgstr ""
-"\n"
-"ôÁÂÌÉÃÁ ÓÉÍ×ÏÌÏ× ÄÌÑ ÉÚÏÂÒÁÖÅÎÉÑ:\n"
-
-#: readelf.c:6827
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " ïÂÌÁÓÔÉ: úÎÁÞ òÁÚÍÅÒ ôÉÐ ó×ÑÚ Vis éÎÄÅËÓ ÉÍÅÎÉ\n"
-
-#: readelf.c:6829
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " ïÂÌÁÓÔÉ: úÎÁÞ òÁÚÍÅÒ ôÉÐ ó×ÑÚ Vis éÎÄÅËÓ ÉÍÅÎÉ\n"
-
-#: readelf.c:6882
-#, c-format
-msgid ""
-"\n"
-"Symbol table '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"ôÁÂÌÉÃÁ ÓÉÍ×ÏÌÏ× '%s' ÓÏÄÅÒÖÉÔ %lu ÐÕÎËÔÏ×:\n"
-
-#: readelf.c:6886
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " þÉÓ: úÎÁÞ òÁÚÍ ôÉÐ ó×ÑÚ Vis éÎÄÅËÓ ÉÍÅÎÉ\n"
-
-#: readelf.c:6888
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " þÉÓ: úÎÁÞ òÁÚÍ ôÉÐ ó×ÑÚ Vis éÎÄÅËÓ ÉÍÅÎÉ\n"
-
-#: readelf.c:6939
-msgid "version data"
-msgstr "ÄÁÎÎÙÅ ×ÅÒÓÉÉ"
-
-#: readelf.c:6982
-msgid "version need aux (3)"
-msgstr "ÚÁ×ÉÓÉÍÏÓÔØ ×ÅÒÓÉÉ aux (3)"
-
-#: readelf.c:7009
-msgid "bad dynamic symbol"
-msgstr "ÎÅ×ÅÒÎÙÊ ÄÉÎÁÍÉÞÅÓËÉÊ ÓÉÍ×ÏÌ"
-
-#: readelf.c:7073
-#, c-format
-msgid ""
-"\n"
-"Dynamic symbol information is not available for displaying symbols.\n"
-msgstr ""
-"\n"
-"éÎÆÏÒÍÁÃÉÑ ÄÉÎÁÍÉÞÅÓËÏÇÏ ÓÉÍ×ÏÌÁ ÎÅ ÄÏÓÔÕÐÎÁ ÄÌÑ ÏÔÏÂÒÁÖÅÎÉÑ ÓÉÍ×ÏÌÏ×.\n"
-
-#: readelf.c:7085
-#, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length (total of %lu buckets):\n"
-msgstr ""
-"\n"
-"çÉÓÔÏÇÒÁÍÍÁ ÄÌÑ ÄÌÉÎÙ ÓÐÉÓËÁ ÏÂÌÁÓÔÅÊ ÐÁÍÑÔÉ (×ÓÅÇÏ %lu ÏÂÌÁÓÔÅÊ):\n"
-
-#: readelf.c:7087
-#, c-format
-msgid " Length Number %% of total Coverage\n"
-msgstr " äÌÉÎÁ þÉÓÌÏ %% ÏÔ ×ÓÅÇÏ ïÈ×ÁÔ\n"
-
-#: readelf.c:7092 readelf.c:7108 readelf.c:8031 readelf.c:8223
-msgid "Out of memory"
-msgstr "îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ"
-
-#: readelf.c:7157
-#, c-format
-msgid ""
-"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr ""
-"\n"
-"óÅÇÍÅÎÔ ÄÉÎÁÍÉÞÅÓËÏÊ ÉÎÆÏÒÍÁÃÉÉ ÓÏ ÓÍÅÝÅÎÉÅÍ 0x%lx ÓÏÄÅÒÖÉÔ %d ÐÕÎËÔÏ×:\n"
-
-#: readelf.c:7160
-#, c-format
-msgid " Num: Name BoundTo Flags\n"
-msgstr " þÉÓ: éÍÑ çÒÁÎÉÃÁ æÌÁÇÉ\n"
-
-#: readelf.c:7212
-#, c-format
-msgid ""
-"\n"
-"Assembly dump of section %s\n"
-msgstr ""
-"\n"
-"óÂÏÒÏÞÎÙÊ ÄÁÍÐ ÒÁÚÄÅÌÁ %s\n"
-
-#: readelf.c:7233
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no data to dump.\n"
-msgstr ""
-"\n"
-"òÁÚÄÅÌ '%s' ÎÅ ÓÏÄÅÒÖÉÔ ÄÁÎÎÙÈ ÄÌÑ ÄÁÍÐÁ.\n"
-
-#: readelf.c:7238
-#, c-format
-msgid ""
-"\n"
-"Hex dump of section '%s':\n"
-msgstr ""
-"\n"
-"Hex-ÄÁÍÐ ÒÁÚÄÅÌÁ '%s':\n"
-
-#: readelf.c:7359
-#, c-format
-msgid "skipping invalid relocation offset 0x%lx in section %s\n"
-msgstr "ÐÒÏÐÕÓËÁÅÔÓÑ ÎÅ×ÅÒÎÏÅ ÓÍÅÝÅÎÉÅ ÐÅÒÅÍÅÝÅÎÉÑ 0x%lx × ÒÁÚÄÅÌÅ %s\n"
-
-#: readelf.c:7376
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela%s\n"
-msgstr "ÐÒÏÐÕÓËÁÅÔÓÑ ÎÅÏÖÉÄÁÎÎÙÊ ÔÉÐ ÓÉÍ×ÏÌÁ %s × ÐÅÒÅÍÅÝÅÎÉÉ × ÒÁÚÄÅÌÅ .rela%s\n"
-
-#: readelf.c:7402
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela.%s\n"
-msgstr "ÐÒÏÐÕÓËÁÅÔÓÑ ÎÅÏÖÉÄÁÎÎÙÊ ÔÉÐ ÓÉÍ×ÏÌÁ %s × ÐÅÒÅÍÅÝÅÎÉÉ × ÒÁÚÄÅÌÅ .rela.%s\n"
-
-#: readelf.c:7435
-#, c-format
-msgid "%s section data"
-msgstr "ÄÁÎÎÙÅ ÒÁÚÄÅÌÁ %s"
-
-#: readelf.c:7472
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no debugging data.\n"
-msgstr ""
-"\n"
-"òÁÚÄÅÌ '%s' ÎÅ ÓÏÄÅÒÖÉÔ ÏÔÌÁÄÏÞÎÙÈ ÄÁÎÎÙÈ.\n"
-
-#: readelf.c:7498
-#, c-format
-msgid "Unrecognized debug section: %s\n"
-msgstr "îÅÒÁÓÐÏÚÎÁÎÎÙÊ ÒÁÚÄÅÌ ÏÔÌÁÄËÉ: %s\n"
-
-#: readelf.c:7533
-#, c-format
-msgid "Section %d was not dumped because it does not exist!\n"
-msgstr "äÌÑ ÒÁÚÄÅÌÁ %d ÄÁÍÐ ÎÅ ÂÙÌ ×ÙÐÏÌÎÅÎ, ÐÏÔÏÍÕ ÞÔÏ ÏÎ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ!\n"
-
-#: readelf.c:7791
-msgid "attributes"
-msgstr "ÁÔÒÉÂÕÔÙ"
-
-#: readelf.c:7809
-#, c-format
-msgid "ERROR: Bad section length (%d > %d)\n"
-msgstr "ïûéâëá: îÅ×ÅÒÎÁÑ ÄÌÉÎÁ ÒÁÚÄÅÌÁ (%d > %d)\n"
-
-#: readelf.c:7830
-#, c-format
-msgid "ERROR: Bad subsection length (%d > %d)\n"
-msgstr "ïûéâëá: îÅ×ÅÒÎÁÑ ÄÌÉÎÁ ÐÏÄÒÁÚÄÅÌÁ (%d > %d)\n"
-
-#: readelf.c:7880
-#, c-format
-msgid "Unknown format '%c'\n"
-msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÆÏÒÍÁÔ '%c'\n"
-
-#: readelf.c:7936 readelf.c:8304
-msgid "liblist"
-msgstr "liblist"
-
-#: readelf.c:8025
-msgid "options"
-msgstr "ÏÐÃÉÉ"
-
-#: readelf.c:8055
-#, c-format
-msgid ""
-"\n"
-"Section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"òÁÚÄÅÌ '%s' ÓÏÄÅÒÖÉÔ %d ÐÕÎËÔÏ×:\n"
-
-#: readelf.c:8216
-msgid "conflict list found without a dynamic symbol table"
-msgstr "ÓÐÉÓÏË ËÏÎÆÌÉËÔÏ× ÎÁÊÄÅÎ ÂÅÚ ÔÁÂÌÉÃÙ ÄÉÎÁÍÉÞÅÓËÉÈ ÓÉÍ×ÏÌÏ×"
-
-#: readelf.c:8232 readelf.c:8246
-msgid "conflict"
-msgstr "ËÏÎÆÌÉËÔ"
-
-#: readelf.c:8256
-#, c-format
-msgid ""
-"\n"
-"Section '.conflict' contains %lu entries:\n"
-msgstr ""
-"\n"
-"òÁÚÄÅÌ '.conflict' ÓÏÄÅÒÖÉÔ %lu ÐÕÎËÔÏ×:\n"
-
-#: readelf.c:8258
-msgid " Num: Index Value Name"
-msgstr " îÏÍ: éÎÄÅËÓ úÎÁÞ. éÍÑ"
-
-#: readelf.c:8311
-msgid "liblist string table"
-msgstr "ÔÁÂÌÉÃÁ ÓÔÒÏË liblist"
-
-#: readelf.c:8321
-#, c-format
-msgid ""
-"\n"
-"Library list section '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"òÁÚÄÅÌ ÓÐÉÓËÁ ÂÉÂÌÉÏÔÅË '%s' ÓÏÄÅÒÖÉÔ %lu ÐÕÎËÔÏ×:\n"
-
-#: readelf.c:8374
-msgid "NT_AUXV (auxiliary vector)"
-msgstr "NT_AUXV (×ÓÐÏÍÏÇÁÔÅÌØÎÙÊ ×ÅËÔÏÒ)"
-
-#: readelf.c:8376
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr "NT_PRSTATUS (ÓÔÒÕËÔÕÒÁ prstatus)"
-
-#: readelf.c:8378
-msgid "NT_FPREGSET (floating point registers)"
-msgstr "NT_FPREGSET (ÒÅÇÉÓÔÒÙ Ó ÐÌÁ×ÁÀÝÅÊ ÔÏÞËÏÊ)"
-
-#: readelf.c:8380
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr "NT_PRPSINFO (ÓÔÒÕËÔÕÒÁ prpsinfo)"
-
-#: readelf.c:8382
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr "NT_TASKSTRUCT (ÓÔÒÕËÔÕÒÁ task)"
-
-#: readelf.c:8384
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr "NT_PRXFPREG (ÓÔÒÕËÔÕÒÁ user_xfpregs)"
-
-#: readelf.c:8386
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr "NT_PSTATUS (ÓÔÒÕËÔÕÒÁ pstatus)"
-
-#: readelf.c:8388
-msgid "NT_FPREGS (floating point registers)"
-msgstr "NT_FPREGS (ÒÅÇÉÓÔÒÙ Ó ÐÌÁ×ÁÀÝÅÊ ÔÏÞËÏÊ)"
-
-#: readelf.c:8390
-msgid "NT_PSINFO (psinfo structure)"
-msgstr "NT_PSINFO (ÓÔÒÕËÔÕÒÁ psinfo)"
-
-#: readelf.c:8392
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr "NT_LWPSTATUS (ÓÔÒÕËÔÕÒÁ lwpstatus_t)"
-
-#: readelf.c:8394
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr "NT_LWPSINFO (ÓÔÒÕËÔÕÒÁ lwpsinfo_t)"
-
-#: readelf.c:8396
-msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
-msgstr "NT_WIN32PSTATUS (ÓÔÒÕËÔÕÒÁ win32_pstatus)"
-
-#: readelf.c:8404
-msgid "NT_VERSION (version)"
-msgstr "NT_VERSION (×ÅÒÓÉÑ)"
-
-#: readelf.c:8406
-msgid "NT_ARCH (architecture)"
-msgstr "NT_ARCH (ÁÒÈÉÔÅËÔÕÒÁ)"
-
-#: readelf.c:8411 readelf.c:8433
-#, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÔÉÐ ËÏÍÍÅÎÔÁÒÉÑ: (0x%08x)"
-
-#. NetBSD core "procinfo" structure.
-#: readelf.c:8423
-msgid "NetBSD procinfo structure"
-msgstr "óÔÒÕËÔÕÒÁ procinfo NetBSD"
-
-#: readelf.c:8450 readelf.c:8464
-msgid "PT_GETREGS (reg structure)"
-msgstr "PT_GETREGS (ÓÔÒÕËÔÕÒÁ reg)"
-
-#: readelf.c:8452 readelf.c:8466
-msgid "PT_GETFPREGS (fpreg structure)"
-msgstr "PT_GETFPREGS (ÓÔÒÕËÔÕÒÁ fpreg)"
-
-#: readelf.c:8472
-#, c-format
-msgid "PT_FIRSTMACH+%d"
-msgstr "PT_FIRSTMACH+%d"
-
-#: readelf.c:8518
-msgid "notes"
-msgstr "ËÏÍÍÅÎÔÁÒÉÉ"
-
-#: readelf.c:8524
-#, c-format
-msgid ""
-"\n"
-"Notes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr ""
-"\n"
-"ëÏÍÍÅÎÔÁÒÉÉ ÓÏ ÓÍÅÝÅÎÉÅÍ 0x%08lx ÄÌÉÎÏÊ 0x%08lx:\n"
-
-#: readelf.c:8526
-#, c-format
-msgid " Owner\t\tData size\tDescription\n"
-msgstr " ÷ÌÁÄÅÌÅÃ\t\tòÁÚÍÅÒ ÄÁÎÎÙÈ\tïÐÉÓÁÎÉÅ\n"
-
-#: readelf.c:8545
-#, c-format
-msgid "corrupt note found at offset %lx into core notes\n"
-msgstr "ÎÁÊÄÅÎ ÐÏ×ÒÅÖÄ£ÎÎÙÊ ËÏÍÍÅÎÔÁÒÉÊ ÓÏ ÓÍÅÝÅÎÉÅÍ %lx × ÈÒÁÎÉÌÉÝÅ ËÏÍÍÅÎÔÁÒÉÅ×\n"
-
-#: readelf.c:8547
-#, c-format
-msgid " type: %lx, namesize: %08lx, descsize: %08lx\n"
-msgstr " ÔÉÐ: %lx, ÒÁÚÍ_ÉÍÅÎÉ: %08lx, ÒÁÚÍ_ÏÐÉÓ: %08lx\n"
-
-#: readelf.c:8645
-#, c-format
-msgid "No note segments present in the core file.\n"
-msgstr "÷ ÆÁÊÌÅ ÓÏÄÅÒÖÉÍÏÇÏ ÏÔÓÕÔÓÔ×ÕÀÔ ÓÅÇÍÅÎÔÙ ËÏÍÍÅÎÔÁÒÉÅ×.\n"
-
-#: readelf.c:8726
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr ""
-"üÔÁ ËÏÐÉÑ readelf ÂÙÌÁ ÓÏÂÒÁÎÁ ÂÅÚ ÐÏÄÄÅÒÖËÉ 64-ÂÉÔÎÏÇÏ ÔÉÐÁ\n"
-"ÄÁÎÎÙÈ, É ÐÏÜÔÏÍÕ ÏÎÁ ÎÅ ÍÏÖÅÔ ÞÉÔÁÔØ 64-ÂÉÔÎÙÅ ÆÁÊÌÙ ELF.\n"
-
-#: readelf.c:8775 readelf.c:9119
-#, c-format
-msgid "%s: Failed to read file header\n"
-msgstr "%s: óÂÏÊ ÐÒÉ ÞÔÅÎÉÉ ÚÁÇÏÌÏ×ËÁ ÆÁÊÌÁ\n"
-
-#: readelf.c:8788
-#, c-format
-msgid ""
-"\n"
-"File: %s\n"
-msgstr ""
-"\n"
-"æÁÊÌ: %s\n"
-
-#: readelf.c:8936 readelf.c:8957 readelf.c:8994 readelf.c:9074
-#, c-format
-msgid "%s: failed to read archive header\n"
-msgstr "%s: ÓÂÏÊ ÐÒÉ ÞÔÅÎÉÉ ÚÁÇÏÌÏ×ËÁ ÁÒÈÉ×Á\n"
-
-#: readelf.c:8947
-#, c-format
-msgid "%s: failed to skip archive symbol table\n"
-msgstr "%s: ÓÂÏÊ ÐÒÉ ÐÒÏÐÕÓËÅ ÔÁÂÌÉÃÙ ÓÉÍ×ÏÌÏ× ÁÒÈÉ×Á\n"
-
-#: readelf.c:8979
-#, c-format
-msgid "%s: failed to read string table\n"
-msgstr "%s: ÓÂÏÊ ÐÒÉ ÞÔÅÎÉÉ ÔÁÂÌÉÃÙ ÓÔÒÏË\n"
-
-#: readelf.c:9015
-#, c-format
-msgid "%s: invalid archive string table offset %lu\n"
-msgstr "%s: ÎÅ×ÅÒÎÏÅ ÓÍÅÝÅÎÉÅ ÔÁÂÌÉÃÙ ÓÔÒÏË ÁÒÈÉ×Á %lu\n"
-
-#: readelf.c:9031
-#, c-format
-msgid "%s: bad archive file name\n"
-msgstr "%s: ÎÅ×ÅÒÎÏÅ ÉÍÑ ÆÁÊÌÁ ÁÒÈÉ×Á\n"
-
-#: readelf.c:9063
-#, c-format
-msgid "%s: failed to seek to next archive header\n"
-msgstr "%s: ÓÂÏÊ ÐÒÉ ÐÒÏÉÓËÅ ÓÌÅÄÕÀÝÅÇÏ ÚÁÇÏÌÏ×ËÁ ÁÒÈÉ×Á\n"
-
-#: readelf.c:9097
-#, c-format
-msgid "'%s': No such file\n"
-msgstr "'%s': îÅÔ ÔÁËÏÇÏ ÆÁÊÌÁ\n"
-
-#: readelf.c:9099
-#, c-format
-msgid "Could not locate '%s'. System error message: %s\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ '%s'. óÉÓÔÅÍÎÏÅ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ: %s\n"
-
-#: readelf.c:9106
-#, c-format
-msgid "'%s' is not an ordinary file\n"
-msgstr "%s ÎÅ Ñ×ÌÑÅÔÓÑ ÏÂÙÞÎÙÍ ÆÁÊÌÏÍ\n"
-
-#: readelf.c:9113
-#, c-format
-msgid "Input file '%s' is not readable.\n"
-msgstr "÷ÈÏÄÎÏÊ ÆÁÊÌ '%s' Ñ×ÌÑÅÔÓÑ ÎÅÞÉÔÁÅÍÙÍ.\n"
-
-#: rename.c:129
-#, c-format
-msgid "%s: cannot set time: %s"
-msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ ×ÒÅÍÑ: %s"
-
-#. We have to clean up here.
-#: rename.c:164 rename.c:202
-#, c-format
-msgid "unable to rename '%s' reason: %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÅÒÅÉÍÅÎÏ×ÁÔØ '%s' ÐÒÉÞÉÎÁ: %s"
-
-#: rename.c:210
-#, c-format
-msgid "unable to copy file '%s' reason: %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓËÏÐÉÒÏ×ÁÔØ ÆÁÊÌ '%s' ÐÒÉÞÉÎÁ: %s"
-
-#: resbin.c:132
-#, c-format
-msgid "%s: not enough binary data"
-msgstr "%s: ÎÅÄÏÓÔÁÔÏÞÎÏ Ä×ÏÉÞÎÙÈ ÄÁÎÎÙÈ"
-
-#: resbin.c:148
-msgid "null terminated unicode string"
-msgstr "ÓÔÒÏËÁ unicode, ÚÁ×ÅÒÛÅÎÎÁÑ `0'"
-
-#: resbin.c:175 resbin.c:181
-msgid "resource ID"
-msgstr "ID ÒÅÓÕÒÓÁ"
-
-#: resbin.c:221
-msgid "cursor"
-msgstr "ÕËÁÚÁÔÅÌØ"
-
-#: resbin.c:253 resbin.c:260
-msgid "menu header"
-msgstr "ÚÁÇÏÌÏ×ÏË menu"
-
-#: resbin.c:270
-msgid "menuex header"
-msgstr "ÚÁÇÏÌÏ×ÏË menuex"
-
-#: resbin.c:274
-msgid "menuex offset"
-msgstr "ÓÍÅÝÅÎÉÅ menuex"
-
-#: resbin.c:281
-#, c-format
-msgid "unsupported menu version %d"
-msgstr "ÎÅÐÏÄÄÅÒÖÉ×ÁÅÍÁÑ ×ÅÒÓÉÑ menu %d"
-
-#: resbin.c:306 resbin.c:321 resbin.c:384
-msgid "menuitem header"
-msgstr "ÚÁÇÏÌÏ×ÏË menuitem"
-
-#: resbin.c:414
-msgid "menuitem"
-msgstr "menuitem"
-
-#: resbin.c:453 resbin.c:481
-msgid "dialog header"
-msgstr "ÚÁÇÏÌÏ×ÏË ÄÉÁÌÏÇÁ"
-
-#: resbin.c:471
-#, c-format
-msgid "unexpected DIALOGEX version %d"
-msgstr "ÎÅÐÒÅÄ×ÉÄÅÎÎÁÑ ×ÅÒÓÉÑ DIALOGEX %d"
-
-#: resbin.c:516
-msgid "dialog font point size"
-msgstr "ÒÁÚÍÅÒ × ÐÕÎËÔÁÈ ÛÒÉÆÔÁ ÄÉÁÌÏÇÁ"
-
-#: resbin.c:524
-msgid "dialogex font information"
-msgstr "ÉÎÆÏÒÍÁÃÉÑ Ï ÛÒÉÆÔÅ dialogex"
-
-#: resbin.c:550 resbin.c:568
-msgid "dialog control"
-msgstr "ÕÐÒÁ×ÌÅÎÉÅ ÄÉÁÌÏÇÏÍ"
-
-#: resbin.c:560
-msgid "dialogex control"
-msgstr "ÕÐÒÁ×ÌÅÎÉÅ dialogex"
-
-#: resbin.c:589
-msgid "dialog control end"
-msgstr "ËÏÎÅà ÕÐÒÁ×ÌÅÎÉÑ ÄÉÁÌÏÇÏÍ"
-
-#: resbin.c:601
-msgid "dialog control data"
-msgstr "ÄÁÎÎÙÅ ÕÐÒÁ×ÌÅÎÉÑ ÄÉÁÌÏÇÏÍ"
-
-#: resbin.c:642
-msgid "stringtable string length"
-msgstr "ÄÌÉÎÁ ÓÔÒÏËÉ stringtable"
-
-#: resbin.c:652
-msgid "stringtable string"
-msgstr "ÓÔÒÏËÁ stringtable"
-
-#: resbin.c:683
-msgid "fontdir header"
-msgstr "ÚÁÇÏÌÏ×ÏË fontdir"
-
-#: resbin.c:696
-msgid "fontdir"
-msgstr "fontdir"
-
-#: resbin.c:712
-msgid "fontdir device name"
-msgstr "ÉÍÑ ÕÓÔÒÏÊÓÔ×Á fontdir"
-
-#: resbin.c:718
-msgid "fontdir face name"
-msgstr "ÉÍÑ ÇÁÒÎÉÔÕÒÙ fontdir"
-
-#: resbin.c:759
-msgid "accelerator"
-msgstr "ÁËÓÅÌÅÒÁÔÏÒ"
-
-#: resbin.c:819
-msgid "group cursor header"
-msgstr "ÚÁÇÏÌÏ×ÏË ÕËÁÚÁÔÅÌÑ ÇÒÕÐÐÙ"
-
-#: resbin.c:823
-#, c-format
-msgid "unexpected group cursor type %d"
-msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÔÉÐ ÕËÁÚÁÔÅÌÑ ÇÒÕÐÐÙ %d"
-
-#: resbin.c:838
-msgid "group cursor"
-msgstr "ÕËÁÚÁÔÅÌØ ÇÒÕÐÐÙ"
-
-#: resbin.c:875
-msgid "group icon header"
-msgstr "ÚÁÇÏÌÏ×ÏË ÚÎÁÞËÁ ÇÒÕÐÐÙ"
-
-#: resbin.c:879
-#, c-format
-msgid "unexpected group icon type %d"
-msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÔÉÐ ÚÎÁÞËÁ ÇÒÕÐÐÙ %d"
-
-#: resbin.c:894
-msgid "group icon"
-msgstr "ÚÎÁÞÏË ÇÒÕÐÐÙ"
-
-#: resbin.c:957 resbin.c:1174
-msgid "unexpected version string"
-msgstr "ÎÅÏÖÉÄÁÎÎÁÑ ÓÔÒÏËÁ ×ÅÒÓÉÉ"
-
-#: resbin.c:989
-#, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr "ÄÌÉÎÁ ×ÅÒÓÉÉ %d ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÄÌÉÎÅ ÒÅÓÕÒÓÁ %lu"
-
-#: resbin.c:993
-#, c-format
-msgid "unexpected version type %d"
-msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÔÉÐ ×ÅÒÓÉÉ %d"
-
-#: resbin.c:1005
-#, c-format
-msgid "unexpected fixed version information length %d"
-msgstr "ÎÅÏÖÉÄÁÎÎÁÑ ÄÌÉÎÁ ÉÎÆÏÒÍÁÃÉÉ Ï ÆÉËÓÉÒÏ×ÁÎÎÏÊ ×ÅÒÓÉÉ %d"
-
-#: resbin.c:1008
-msgid "fixed version info"
-msgstr "ÉÎÆÏÒÍÁÃÉÑ Ï ÆÉËÓÉÒÏ×ÁÎÎÏÊ ×ÅÒÓÉÉ"
-
-#: resbin.c:1012
-#, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr "ÎÅÏÖÉÄÁÎÎÁÑ ÓÉÇÎÁÔÕÒÁ ÆÉËÓÉÒÏ×ÁÎÎÏÊ ×ÅÒÓÉÉ %lu"
-
-#: resbin.c:1016
-#, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr "ÎÅÏÖÉÄÁÎÎÁÑ ×ÅÒÓÉÑ ÉÎÆÏÒÍÁÃÉÉ Ï ÆÉËÓÉÒÏ×ÁÎÎÏÊ ×ÅÒÓÉÉ %lu"
-
-#: resbin.c:1045
-msgid "version var info"
-msgstr "ÉÎÆÏÒÍÁÃÉÑ Ï ÐÅÒÅÍÅÎÎÏÊ ×ÅÒÓÉÉ"
-
-#: resbin.c:1062
-#, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr "ÎÅÏÖÉÄÁÎÎÁÑ ÄÌÉÎÁ ÚÎÁÞÅÎÉÑ stringfileinfo %d"
-
-#: resbin.c:1072
-#, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr "ÎÅÏÖÉÄÁÎÎÁÑ ÄÌÉÎÁ ÚÎÁÞÅÎÉÑ ×ÅÒÓÉÉ stringtable %d"
-
-#: resbin.c:1106
-#, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr "ÎÅÏÖÉÄÁÎÎÁÑ ÄÌÉÎÁ ÓÔÒÏËÉ ×ÅÒÓÉÉ %d != %d + %d"
-
-#: resbin.c:1117
-#, c-format
-msgid "unexpected version string length %d < %d"
-msgstr "ÎÅÏÖÉÄÁÎÎÁÑ ÄÌÉÎÁ ÓÔÒÏËÉ ×ÅÒÓÉÉ %d < %d"
-
-#: resbin.c:1134
-#, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr "ÎÅÏÖÉÄÁÎÎÁÑ ÄÌÉÎÁ ÚÎÁÞÅÎÉÑ varfileinfo %d"
-
-#: resbin.c:1153
-msgid "version varfileinfo"
-msgstr "×ÅÒÓÉÑ varfileinfo"
-
-#: resbin.c:1168
-#, c-format
-msgid "unexpected version value length %d"
-msgstr "ÎÅÏÖÉÄÁÎÎÁÑ ÄÌÉÎÁ ÚÎÁÞÅÎÉÑ ×ÅÒÓÉÉ %d"
-
-#: rescoff.c:126
-msgid "filename required for COFF input"
-msgstr "ÔÒÅÂÕÅÔÓÑ ÉÍÑ ÄÌÑ ×ÈÏÄÎÏÇÏ COFF"
-
-#: rescoff.c:143
-#, c-format
-msgid "%s: no resource section"
-msgstr "%s: ÎÅÔ ÒÁÚÄÅÌÁ ÒÅÓÕÒÓÏ×"
-
-#: rescoff.c:150
-msgid "can't read resource section"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ ÒÁÚÄÅÌ ÒÅÓÕÒÓÏ×"
-
-#: rescoff.c:174
-#, c-format
-msgid "%s: %s: address out of bounds"
-msgstr "%s: %s: ÁÄÒÅÓ ÚÁ ÐÒÅÄÅÌÁÍÉ ÇÒÁÎÉÃ"
-
-#: rescoff.c:190
-msgid "directory"
-msgstr "ËÁÔÁÌÏÇ"
-
-#: rescoff.c:218
-msgid "named directory entry"
-msgstr "ÉÍÅÎÏ×ÁÎÎÙÊ ÜÌÅÍÅÎÔ ËÁÔÁÌÏÇÁ"
-
-#: rescoff.c:227
-msgid "directory entry name"
-msgstr "ÉÍÑ ÜÌÅÍÅÎÔÁ ËÁÔÁÌÏÇÁ"
-
-#: rescoff.c:247
-msgid "named subdirectory"
-msgstr "ÉÍÅÎÏ×ÁÎÎÙÊ ÐÏÄËÁÔÁÌÏÇ"
-
-#: rescoff.c:255
-msgid "named resource"
-msgstr "ÉÍÅÎÏ×ÁÎÎÙÊ ÒÅÓÕÒÓ"
-
-#: rescoff.c:270
-msgid "ID directory entry"
-msgstr "ID ÜÌÅÍÅÎÔÁ ËÁÔÁÌÏÇÁ"
-
-#: rescoff.c:287
-msgid "ID subdirectory"
-msgstr "ID ÐÏÄËÁÔÁÌÏÇÁ"
-
-#: rescoff.c:295
-msgid "ID resource"
-msgstr "ID ÒÅÓÕÒÓÁ"
-
-#: rescoff.c:318
-msgid "resource type unknown"
-msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÔÉÐ ÒÅÓÕÒÓÁ"
-
-#: rescoff.c:321
-msgid "data entry"
-msgstr "ÜÌÅÍÅÎÔ ÄÁÎÎÙÈ"
-
-#: rescoff.c:329
-msgid "resource data"
-msgstr "ÄÁÎÎÙÅ ÒÅÓÕÒÓÁ"
-
-#: rescoff.c:334
-msgid "resource data size"
-msgstr "ÒÁÚÍÅÒ ÄÁÎÎÙÈ ÒÅÓÕÒÓÁ"
-
-#: rescoff.c:427
-msgid "filename required for COFF output"
-msgstr "ÔÒÅÂÕÅÔÓÑ ÉÍÑ ÆÁÊÌÁ ÄÌÑ ×ÙÈÏÄÎÏÇÏ COFF"
-
-#: rescoff.c:719
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÔÉÐ ÐÅÒÅÍÅÝÅÎÉÑ BFD_RELOC_RVA"
-
-#: resrc.c:238 resrc.c:309
-#, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ `%s': %s"
-
-#: resrc.c:244
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÅÒÅÎÁÐÒÁ×ÉÔØ stdout: `%s': %s"
-
-#: resrc.c:260
-#, c-format
-msgid "%s %s: %s"
-msgstr "%s %s: %s"
-
-#: resrc.c:305
-#, c-format
-msgid "can't execute `%s': %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ×ÙÐÏÌÎÉÔØ `%s': %s"
-
-#: resrc.c:314
-#, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr "éÓÐÏÌØÚÕÅÔÓÑ ×ÒÅÍÅÎÎÙÊ ÆÁÊÌ `%s' ÄÌÑ ÞÔÅÎÉÑ ×ÙÈÏÄÎÙÈ ÄÁÎÎÙÈ ÐÒÅÐÒÏÃÅÓÓÏÒÁ\n"
-
-#: resrc.c:321
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ popen `%s': %s"
-
-#: resrc.c:323
-#, c-format
-msgid "Using popen to read preprocessor output\n"
-msgstr "éÓÐÏÌØÚÕÅÔÓÑ popen ÄÌÑ ÞÔÅÎÉÑ ×ÙÈÏÄÎÙÈ ÄÁÎÎÙÈ ÐÒÅÐÒÏÃÅÓÓÏÒÁ\n"
-
-#: resrc.c:362
-#, c-format
-msgid "Tried `%s'\n"
-msgstr "ïÐÒÏÂÏ×ÁÎ `%s'\n"
-
-#: resrc.c:373
-#, c-format
-msgid "Using `%s'\n"
-msgstr "éÓÐÏÌØÚÕÅÔÓÑ `%s'\n"
-
-#: resrc.c:529
-#, c-format
-msgid "%s:%d: %s\n"
-msgstr "%s:%d: %s\n"
-
-#: resrc.c:537
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr "%s: ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅÃ ÆÁÊÌÁ"
-
-#: resrc.c:586
-#, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr "%s: ÐÒÉ ÞÔÅÎÉÉ %lu ÂÙÌÏ ×ÏÚ×ÒÁÝÅÎÏ %lu"
-
-#: resrc.c:624 resrc.c:1134
-#, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr "ÓÂÏÊ stat ÄÌÑ ÆÁÊÌÁ ÂÉÔÏ×ÏÇÏ ÏÂÒÁÚÁ `%s': %s"
-
-#: resrc.c:675
-#, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr "ÆÁÊÌ ËÕÒÓÏÒÁ `%s' ÎÅ ÓÏÄÅÒÖÉÔ ÄÁÎÎÙÈ ËÕÒÓÏÒÁ"
-
-#: resrc.c:707 resrc.c:1003
-#, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr "%s: fseek ÄÌÑ %lu ÚÁ×ÅÒÛÉÌÓÑ ÎÅÕÄÁÞÅÊ: %s"
-
-#: resrc.c:831
-msgid "help ID requires DIALOGEX"
-msgstr "ÄÌÑ ID ÓÐÒÁ×ËÉ ÔÒÅÂÕÅÔÓÑ DIALOGEX"
-
-#: resrc.c:833
-msgid "control data requires DIALOGEX"
-msgstr "ÄÌÑ ÕÐÒÁ×ÌÅÎÉÑ ÄÁÎÎÙÍÉ ÔÒÅÂÕÅÔÓÑ DIALOGEX"
-
-#: resrc.c:861
-#, c-format
-msgid "stat failed on font file `%s': %s"
-msgstr "ÓÂÏÊ stat ÄÌÑ ÆÁÊÌÁ ÛÒÉÆÔÁ `%s': %s"
-
-#: resrc.c:972
-#, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr "ÆÁÊÌ ÚÎÁÞËÁ `%s' ÎÅ ÓÏÄÅÒÖÉÔ ÄÁÎÎÙÈ ÚÎÁÞËÁ"
-
-#: resrc.c:1273 resrc.c:1308
-#, c-format
-msgid "stat failed on file `%s': %s"
-msgstr "ÓÂÏÊ stat ÄÌÑ ÆÁÊÌÁ `%s': %s"
-
-#: resrc.c:1494
-#, c-format
-msgid "can't open `%s' for output: %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ `%s' ÄÌÑ ×Ù×ÏÄÁ ÄÁÎÎÙÈ: %s"
-
-#: size.c:83
-#, c-format
-msgid " Displays the sizes of sections inside binary files\n"
-msgstr " ïÔÏÂÒÁÖÁÅÔ ÒÁÚÍÅÒÙ ÒÁÚÄÅÌÏ× ×ÎÕÔÒÉ Ä×ÏÉÞÎÙÈ ÆÁÊÌÏ×\n"
-
-#: size.c:84
-#, c-format
-msgid " If no input file(s) are specified, a.out is assumed\n"
-msgstr " åÓÌÉ ×ÈÏÄÎÙÅ ÆÁÊÌÙ ÎÅ ÕËÁÚÁÎÙ, ÐÏÄÒÁÚÕÍÅ×ÁÅÔÓÑ ÆÁÊÌ a.out\n"
-
-#: size.c:85
-#, c-format
-msgid ""
-" The options are:\n"
-" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
-" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n"
-" -t --totals Display the total sizes (Berkeley only)\n"
-" --target=<bfdname> Set the binary file format\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" ïÐÃÉÉ:\n"
-" -A|-B --format={sysv|berkeley} ÷ÙÂÏÒ ÓÔÉÌÑ ×Ù×ÏÄÁ ÄÁÎÎÙÈ (ÐÏ ÕÍÏÌÞÁÎÉÀ %s)\n"
-" -o|-d|-x --radix={8|10|16} ÷Ù×ÏÄ ÞÉÓÅÌ × ×ÏÓØÍÅÒÉÞÎÏÍ, ÄÅÓÑÔÉÞÎÏÍ\n"
-" ÉÌÉ ÛÅÓÔÎÁÄÃÁÔÉÒÉÞÎÏÍ ÆÏÒÍÁÔÅ\n"
-" -t --totals ÷Ù×ÏÄ ÓÕÍÍÁÒÎÙÈ ÒÁÚÍÅÒÏ× (ÔÏÌØËÏ Berkeley)\n"
-" --target=<bfd-ÉÍÑ> õÓÔÁÎÏ×ËÁ ÆÏÒÍÁÔÁ Ä×ÏÉÞÎÏÇÏ ÆÁÊÌÁ\n"
-" @<ÆÁÊÌ> þÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>\n"
-" -h --help ÷Ù×ÏÄ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ\n"
-" -v --version ÷Ù×ÏÄ ×ÅÒÓÉÉ ÐÒÏÇÒÁÍÍÙ\n"
-"\n"
-
-#: size.c:158
-#, c-format
-msgid "invalid argument to --format: %s"
-msgstr "ÎÅ×ÅÒÎÙÊ ÁÒÇÕÍÅÎÔ --format: %s"
-
-#: size.c:185
-#, c-format
-msgid "Invalid radix: %s\n"
-msgstr "îÅ×ÅÒÎÙÊ radix: %s\n"
-
-#: srconv.c:1722
-#, c-format
-msgid "Convert a COFF object file into a SYSROFF object file\n"
-msgstr "ðÒÅÏÂÒÁÚÏ×Ù×ÁÅÔ ÏÂßÅËÔÎÙÊ ÆÁÊÌ COFF × ÏÂßÅËÔÎÙÊ ÆÁÊÌ SYSROFF\n"
-
-#: srconv.c:1723
-#, c-format
-msgid ""
-" The options are:\n"
-" -q --quick (Obsolete - ignored)\n"
-" -n --noprescan Do not perform a scan to convert commons into defs\n"
-" -d --debug Display information about what is being done\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" ïÐÃÉÉ:\n"
-" -q --quick (ÕÓÔÁÒÅÌÁ - ÉÇÎÏÒÉÒÕÅÔÓÑ)\n"
-" -n --noprescan îÅ ×ÙÐÏÌÎÑÔØ ÓËÁÎÉÒÏ×ÁÎÉÅ ÄÌÑ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ commons × defs\n"
-" -d --debug ÷Ù×ÏÄ ÉÎÆÏÒÍÁÃÉÉ Ï ÔÏÍ, ÞÔÏ ×ÙÐÏÌÎÑÅÔÓÑ\n"
-" @<ÆÁÊÌ> þÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>\n"
-" -h --help ÷Ù×ÏÄ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ\n"
-" -v --version ÷Ù×ÏÄ ÎÏÍÅÒÁ ×ÅÒÓÉÉ ÐÒÏÇÒÁÍÍÙ\n"
-
-#: srconv.c:1869
-#, c-format
-msgid "unable to open output file %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ %s"
-
-#: stabs.c:330 stabs.c:1708
-msgid "numeric overflow"
-msgstr "ÞÉÓÌÏ×ÏÅ ÐÅÒÅÐÏÌÎÅÎÉÅ"
-
-#: stabs.c:340
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr "ðÌÏÈÏÊ stab: %s\n"
-
-#: stabs.c:348
-#, c-format
-msgid "Warning: %s: %s\n"
-msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: %s: %s\n"
-
-#: stabs.c:458
-#, c-format
-msgid "N_LBRAC not within function\n"
-msgstr "N_LBRAC ×ÎÅ ÆÕÎËÃÉÉ\n"
-
-#: stabs.c:497
-#, c-format
-msgid "Too many N_RBRACs\n"
-msgstr "óÌÉÛËÏÍ ÍÎÏÇÏ N_RBRACs\n"
-
-#: stabs.c:738
-msgid "unknown C++ encoded name"
-msgstr "ÎÅÉÚ×ÅÓÔÎÏÅ ËÏÄÉÒÏ×ÁÎÎÏÅ ÉÍÑ C++"
-
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1253
-msgid "unrecognized cross reference type"
-msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ ÔÉÐ ÐÅÒÅËÒÅÓÔÎÏÊ ÓÓÙÌËÉ"
-
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1800
-msgid "missing index type"
-msgstr "ÏÔÓÕÔÓÔ×ÕÅÔ ÉÎÄÅËÓÎÙÊ ÔÉÐ"
-
-#: stabs.c:2114
-msgid "unknown virtual character for baseclass"
-msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ×ÉÒÔÕÁÌØÎÙÊ ÓÉÍ×ÏÌ ÄÌÑ baseclass"
-
-#: stabs.c:2132
-msgid "unknown visibility character for baseclass"
-msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÓÉÍ×ÏÌ ×ÉÄÉÍÏÓÔÉ ÄÌÑ baseclass"
-
-#: stabs.c:2318
-msgid "unnamed $vb type"
-msgstr "ÂÅÚÙÍÑÎÎÙÊ ÔÉÐ $vb"
-
-#: stabs.c:2324
-msgid "unrecognized C++ abbreviation"
-msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ ÁÂÂÒÅ×ÉÁÔÕÒÁ C++"
-
-#: stabs.c:2400
-msgid "unknown visibility character for field"
-msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÓÉÍ×ÏÌ ×ÉÄÉÍÏÓÔÉ ÄÌÑ field"
-
-#: stabs.c:2652
-msgid "const/volatile indicator missing"
-msgstr "ÏÔÓÕÔÓÔ×ÕÅÔ ÉÎÄÉËÁÔÏÒ ÐÏÓÔÏÑÎÎÏÊ/ÐÅÒÅÍÅÎÎÏÊ"
-
-#: stabs.c:2888
-#, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr "îÅÔ ËÏÄÉÒÏ×ÁÎÉÑ ÄÌÑ \"%s\"\n"
-
-#: stabs.c:3188
-msgid "Undefined N_EXCL"
-msgstr "îÅÏÐÒÅÄÅÌÅÎÎÙÊ N_EXCL"
-
-#: stabs.c:3268
-#, c-format
-msgid "Type file number %d out of range\n"
-msgstr "îÏÍÅÒ ÆÁÊÌÁ ÔÉÐÁ %d ÚÁ ÐÒÅÄÅÌÁÍÉ ÄÉÁÐÁÚÏÎÁ\n"
-
-#: stabs.c:3273
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr "îÏÍÅÒ ÉÎÄÅËÓÁ ÔÉÐÁ %d ÚÁ ÐÒÅÄÅÌÁÍÉ ÄÉÁÐÁÚÏÎÁ\n"
-
-#: stabs.c:3352
-#, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr "îÅÒÁÓÐÏÚÎÁÎÎÙÊ ÔÉÐ XCOFF %d\n"
-
-#: stabs.c:3644
-#, c-format
-msgid "bad mangled name `%s'\n"
-msgstr "ÐÌÏÈÏÅ ÓËÏÒÒÅËÔÉÒÏ×ÁÎÎÏÅ ÉÍÑ `%s'\n"
-
-#: stabs.c:3739
-#, c-format
-msgid "no argument types in mangled string\n"
-msgstr "ÎÅÔ ÔÉÐÏ× ÁÒÇÕÍÅÎÔÏ× × ÓËÏÒÒÅËÔÉÒÏ×ÁÎÎÏÊ ÓÔÒÏËÅ\n"
-
-#: stabs.c:5093
-#, c-format
-msgid "Demangled name is not a function\n"
-msgstr "äÅËÏÄÉÒÏ×ÁÎÎÏÅ ÉÍÑ ÎÅ Ñ×ÌÑÅÔÓÑ ÆÕÎËÃÉÅÊ\n"
-
-#: stabs.c:5135
-#, c-format
-msgid "Unexpected type in v3 arglist demangling\n"
-msgstr "îÅÏÖÉÄÁÎÎÙÊ ÔÉÐ ÐÒÉ ÄÅËÏÄÉÒÏ×ÁÎÉÉ v3 arglist\n"
-
-#: stabs.c:5202
-#, c-format
-msgid "Unrecognized demangle component %d\n"
-msgstr "îÅÒÁÓÐÏÚÎÁÎÎÙÊ ËÏÍÐÏÎÅÎÔ ÄÅËÏÄÉÒÏ×ÁÎÉÑ %d\n"
-
-#: stabs.c:5254
-#, c-format
-msgid "Failed to print demangled template\n"
-msgstr "óÂÏÊ ×Ù×ÏÄÁ ÄÅËÏÄÉÒÏ×ÁÎÎÏÇÏ ÛÁÂÌÏÎÁ\n"
-
-#: stabs.c:5334
-#, c-format
-msgid "Couldn't get demangled builtin type\n"
-msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÄÅËÏÄÉÒÏ×ÁÎÎÙÊ ×ÓÔÒÏÅÎÎÙÊ ÔÉÐ\n"
-
-#: stabs.c:5383
-#, c-format
-msgid "Unexpected demangled varargs\n"
-msgstr "îÅÏÖÉÄÁÎÎÙÊ ÄÅËÏÄÉÒÏ×ÁÎÎÙÊ varargs\n"
-
-#: stabs.c:5390
-#, c-format
-msgid "Unrecognized demangled builtin type\n"
-msgstr "îÅÏÖÉÄÁÎÎÙÊ ÄÅËÏÄÉÒÏ×ÁÎÎÙÊ ×ÓÔÒÏÅÎÎÙÊ ÔÉÐ\n"
-
-#: strings.c:218
-#, c-format
-msgid "invalid number %s"
-msgstr "ÎÅ×ÅÒÎÏÅ ÞÉÓÌÏ %s"
-
-#: strings.c:700
-#, c-format
-msgid "invalid integer argument %s"
-msgstr "ÎÅ×ÅÒÎÙÊ ÃÅÌÏÞÉÓÌÅÎÎÙÊ ÁÒÇÕÍÅÎÔ %s"
-
-#: strings.c:709
-#, c-format
-msgid " Display printable strings in [file(s)] (stdin by default)\n"
-msgstr " ÷Ù×ÏÄÉÔ ÐÒÉÇÏÄÎÙÅ ÄÌÑ ÐÅÞÁÔÉ ÓÔÒÏËÉ × [ÆÁÊÌ(ÁÈ)] (ÐÏ ÕÍÏÌÞÁÎÉÀ stdin)\n"
-
-#: strings.c:710
-#, c-format
-msgid ""
-" The options are:\n"
-" -a - --all Scan the entire file, not just the data section\n"
-" -f --print-file-name Print the name of the file before each string\n"
-" -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n"
-" -<number> least [number] characters (default 4).\n"
-" -t --radix={o,d,x} Print the location of the string in base 8, 10 or 16\n"
-" -o An alias for --radix=o\n"
-" -T --target=<BFDNAME> Specify the binary file format\n"
-" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
-" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" ïÐÃÉÉ:\n"
-" -a - --all óËÁÎÉÒÏ×ÁÎÉÅ ×ÓÅÇÏ ÆÁÊÌÁ, Á ÎÅ ÔÏÌØËÏ ÒÁÚÄÅÌÁ ÄÁÎÎÙÈ\n"
-" -f --print-file-name ÷Ù×ÏÄ ÉÍÅÎÉ ÆÁÊÌÁ ÐÅÒÅÄ ËÁÖÄÏÊ ÓÔÒÏËÏÊ\n"
-" -n --bytes=[ÞÉÓÌÏ] ïÂÎÁÒÕÖÅÎÉÅ É ×Ù×ÏÄ ÌÀÂÙÈ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÅÊ Ó ÚÁ×ÅÒÛÁÀÝÉÍ\n"
-" -<ÞÉÓÌÏ> ÎÕÌÅÍ ÄÌÉÎÏÊ × [ÞÉÓÌÏ] ÓÉÍ×ÏÌÏ× (ÐÏ ÕÍÏÌÞÁÎÉÀ 4).\n"
-" -t --radix={o,x,d} ÷Ù×ÏÄ ÍÅÓÔÏÐÏÌÏÖÅÎÉÑ ÓÔÒÏËÉ ÐÏ ÏÓÎÏ×ÁÎÉÀ 8, 10 ÉÌÉ 16\n"
-" -o áÌÉÁÓ ÄÌÑ --radix=o\n"
-" -T --target=<BFD-éíñ> õËÁÚÁÎÉÅ ÆÏÒÍÁÔÁ Ä×ÏÉÞÎÏÇÏ ÆÁÊÌÁ\n"
-" -e --encoding={s,S,b,l,B,L} ÷ÙÂÏÒ ÒÁÚÍÅÒÁ ÓÉÍ×ÏÌÁ É endianness:\n"
-" s = 7-ÂÉÔ, S = 8-ÂÉÔ, {b,l} = 16-ÂÉÔ, {B,L} = 32-ÂÉÔ\n"
-" @<ÆÁÊÌ> þÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>\n"
-" -h --help ÷Ù×ÏÄ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ\n"
-" -v --version ÷Ù×ÏÄ ÎÏÍÅÒÁ ×ÅÒÓÉÉ ÐÒÏÇÒÁÍÍÙ\n"
-
-#: sysdump.c:642
-#, c-format
-msgid "Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "÷Ù×ÏÄ ÕÄÏÂÏÞÉÔÁÅÍÏÊ ÄÌÑ ÞÅÌÏ×ÅËÁ ÉÎÔÅÒÐÒÅÔÁÃÉÉ ÏÂßÅËÔÎÏÇÏ ÆÁÊÌÁ SYSROFF\n"
-
-#: sysdump.c:643
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" ïÐÃÉÉ:\n"
-" -h --help ÷Ù×ÏÄ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ\n"
-" -v --version ÷Ù×ÏÄ ÎÏÍÅÒÁ ×ÅÒÓÉÉ ÐÒÏÇÒÁÍÍÙ\n"
-
-#: sysdump.c:710
-#, c-format
-msgid "cannot open input file %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÈÏÄÎÏÊ ÆÁÊÌ %s"
-
-#: version.c:35
-#, c-format
-msgid "Copyright 2005 Free Software Foundation, Inc.\n"
-msgstr "Copyright 2005 Free Software Foundation, Inc.\n"
-
-#: version.c:36
-#, c-format
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr ""
-"üÔÁ ÐÒÏÇÒÁÍÍÁ Ñ×ÌÑÅÔÓÑ ÏÔËÒÙÔÙÍ ÐÒÏÇÒÁÍÍÎÙÍ ÏÂÅÓÐÅÞÅÎÉÅÍ; ×Ù ÍÏÖÅÔÅ\n"
-"ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÅÅ ÄÁÌÅÅ ÓÏÇÌÁÓÎÏ ÕÓÌÏ×ÉÑÍÉ GNU General Public License.\n"
-"üÔÁ ÐÒÏÇÒÁÍÍÁ ÎÅ ÉÍÅÅÔ ÁÂÓÏÌÀÔÎÏ ÎÉËÁËÉÈ ÇÁÒÁÎÔÉÊ.\n"
-
-#: windres.c:204
-#, c-format
-msgid "can't open %s `%s': %s"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ %s `%s': %s "
-
-#: windres.c:370
-#, c-format
-msgid ": expected to be a directory\n"
-msgstr ": ÏÖÉÄÁÌÏÓØ, ÞÔÏ ÜÔÏ ËÁÔÁÌÏÇ\n"
-
-#: windres.c:382
-#, c-format
-msgid ": expected to be a leaf\n"
-msgstr ": ÏÖÉÄÁÌÏÓØ, ÞÔÏ ÜÔÏ leaf\n"
-
-#: windres.c:391
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: "
-
-#: windres.c:393
-#, c-format
-msgid ": duplicate value\n"
-msgstr ": ÐÏ×ÔÏÒÑÀÝÅÅÓÑ ÚÎÁÞÅÎÉÅ\n"
-
-#: windres.c:543
-#, c-format
-msgid "unknown format type `%s'"
-msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÔÉÐ ÆÏÒÍÁÔÁ `%s'"
-
-#: windres.c:544
-#, c-format
-msgid "%s: supported formats:"
-msgstr "%s: ÐÏÄÄÅÒÖÉ×ÁÅÍÙÅ ÆÏÒÍÁÔÙ:"
-
-#. Otherwise, we give up.
-#: windres.c:627
-#, c-format
-msgid "can not determine type of file `%s'; use the -J option"
-msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÐÒÅÄÅÌÉÔØ ÔÉÐ ÆÁÊÌÁ `%s'; ÉÓÐÏÌØÚÕÊÔÅ ÏÐÃÉÀ -J"
-
-#: windres.c:639
-#, c-format
-msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
-msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ÏÐÃÉÉ] [×ÈÏÄÎÏÊ_ÆÁÊÌ] [×ÙÈÏÄÎÏÊ_ÆÁÊÌ]\n"
-
-#: windres.c:641
-#, c-format
-msgid ""
-" The options are:\n"
-" -i --input=<file> Name input file\n"
-" -o --output=<file> Name output file\n"
-" -J --input-format=<format> Specify input format\n"
-" -O --output-format=<format> Specify output format\n"
-" -F --target=<target> Specify COFF target\n"
-" --preprocessor=<program> Program to use to preprocess rc file\n"
-" -I --include-dir=<dir> Include directory when preprocessing rc file\n"
-" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
-" -U --undefine <sym> Undefine SYM when preprocessing rc file\n"
-" -v --verbose Verbose - tells you what it's doing\n"
-" -l --language=<val> Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr ""
-" ïÐÃÉÉ:\n"
-" -i --input=<ÆÁÊÌ> éÍÑ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ\n"
-" -o --output=<ÆÁÊÌ> éÍÑ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ\n"
-" -J --input-format=<ÆÏÒÍÁÔ> õËÁÚÁÎÉÅ ×ÈÏÄÎÏÇÏ ÆÏÒÍÁÔÁ\n"
-" -O --output-format=<ÆÏÒÍÁÔ> õËÁÚÁÎÉÅ ×ÙÈÏÄÎÏÇÏ ÆÏÒÍÁÔÁ\n"
-" -F --target=<ÃÅÌØ> õËÁÚÁÎÉÅ ÃÅÌÉ COFF\n"
-" --preprocessor=<ÐÒÏÇÒÁÍÍÁ> ðÒÏÇÒÁÍÍÁ ÄÌÑ ÐÒÅÄ×ÁÒÉÔÅÌØÎÏÊ ÏÂÒÁÂÏÔËÉ ÆÁÊÌÁ rc\n"
-" -I --include-dir=<ËÁÔÁÌÏÇ> ÷ËÌÀÞÁÅÍÙÊ ËÁÔÁÌÏÇ ÐÒÉ ÐÒÅÄ×ÁÒÉÔÅÌØÎÏÊ ÏÂÒÁÂÏÔËÅ ÆÁÊÌÁ rc\n"
-" -D --define <sym>[=<ÚÎÁÞ>] ïÐÒÅÄÅÌÅÎÉÅ SYM ÐÒÉ ÐÒÅÄ×ÁÒÉÔÅÌØÎÏÊ ÏÂÒÁÂÏÔËÅ ÆÁÊÌÁ rc\n"
-" -U --undefine <sym> ïÔÍÅÎÁ ÏÐÒÅÄÅÌÅÎÉÑ SYM ÐÒÉ ÐÒÅÄ×ÁÒÉÔÅÌØÎÏÊ ÏÂÒÁÂÏÔËÅ ÆÁÊÌÁ rc\n"
-" -v --verbose ðÏÄÒÏÂÎÏ - ÓÏÏÂÝÁÅÔ ×ÁÍ Ï ×ÓÅÈ Ó×ÏÉÈ ÄÅÊÓÔ×ÉÑÈ\n"
-" -l --language=<ÚÎÁÞ> õÓÔÁÎÏ×ËÁ ÑÚÙËÁ ÐÒÉ ÞÔÅÎÉÉ ÆÁÊÌÁ rc\n"
-" --use-temp-file éÓÐÏÌØÚÏ×ÁÎÉÅ ×ÒÅÍÅÎÎÏÇÏ ÆÁÊÌÁ ×ÍÅÓÔÏ popen\n"
-" ÄÌÑ ÞÔÅÎÉÑ ×ÙÈÏÄÎÙÈ ÄÁÎÎÙÈ ÐÒÅÐÒÏÃÅÓÓÏÒÁ\n"
-" --no-use-temp-file éÓÐÏÌØÚÏ×ÁÎÉÅ popen (ÐÏ ÕÍÏÌÞÁÎÉÀ)\n"
-
-#: windres.c:657
-#, c-format
-msgid " --yydebug Turn on parser debugging\n"
-msgstr " --yydebug ÷ËÌÀÞÅÎÉÅ ÏÔÌÁÄËÉ ÐÁÒÓÅÒÁ\n"
-
-#: windres.c:660
-#, c-format
-msgid ""
-" -r Ignored for compatibility with rc\n"
-" @<file> Read options from <file>\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" -r ðÒÏÐÕÝÅÎÁ ÄÌÑ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ Ó rc\n"
-" @<ÆÁÊÌ> þÉÔÁÔØ ÏÐÃÉÉ ÉÚ <ÆÁÊÌÁ>\n"
-" -h --help ÷Ù×ÏÄ ÜÔÏÇÏ ÓÐÒÁ×ÏÞÎÏÇÏ ÓÏÏÂÝÅÎÉÑ\n"
-" -V --version ÷Ù×ÏÄ ÉÎÆÏÒÍÁÃÉÉ Ï ×ÅÒÓÉÉ\n"
-
-#: windres.c:665
-#, c-format
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr ""
-"FORMAT Ñ×ÌÑÅÔÓÑ ÏÄÎÉÍ ÉÚ rc, res ÉÌÉ coff, É ÏÐÒÅÄÅÌÑÅÔÓÑ ÐÏ ÒÁÓÛÉÒÅÎÉÀ\n"
-"ÉÍÅÎÉ ÆÁÊÌÁ, ÅÓÌÉ ÎÅ ÂÙÌ ÕËÁÚÁÎ. ïÄÉÎÏÞÎÏÅ ÉÍÑ ÆÁÊÌÁ Ñ×ÌÑÅÔÓÑ ×ÈÏÄÎÙÍ ÆÁÊÌÏÍ.\n"
-"âÅÚ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ ÉÓÐÏÌØÚÕÅÔ stdin, ÐÏ ÕÍÏÌÞÁÎÉÀ rc. âÅÚ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ\n"
-"ÉÓÐÏÌØÚÕÅÔÓÑ stdout, ÐÏ ÕÍÏÌÞÁÎÉÀ rc.\n"
-
-#: windres.c:803
-msgid "invalid option -f\n"
-msgstr "ÎÅ×ÅÒÎÁÑ ÏÐÃÉÑ -f\n"
-
-#: windres.c:808
-msgid "No filename following the -fo option.\n"
-msgstr "îÅÔ ÉÍÅÎÉ ÆÁÊÌÁ ÐÏÓÌÅ ÏÐÃÉÉ -fo.\n"
-
-#: windres.c:866
-#, c-format
-msgid "Option -I is deprecated for setting the input format, please use -J instead.\n"
-msgstr "ïÐÃÉÑ -I ËÒÁÊÎÅ ÎÅ ÒÅËÏÍÅÎÄÕÅÔÓÑ ÄÌÑ ÕÓÔÁÎÏ×ËÉ ×ÈÏÄÎÏÇÏ ÆÏÒÍÁÔÁ, ÐÏÖÁÌÕÊÓÔÁ, ÉÓÐÏÌØÚÕÊÔÅ -J.\n"
-
-#: windres.c:984
-msgid "no resources"
-msgstr "ÎÅÔ ÒÅÓÕÒÓÏ×"
-
-#: wrstabs.c:354 wrstabs.c:1915
-#, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr "string_hash_lookup ÚÁ×ÅÒÛÉÌÓÑ ÎÅÕÄÁÞÅÊ: %s"
-
-#: wrstabs.c:635
-#, c-format
-msgid "stab_int_type: bad size %u"
-msgstr "stab_int_type: ÎÅ×ÅÒÎÙÊ ÒÁÚÍÅÒ %u"
-
-#: wrstabs.c:1393
-#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÎÅÉÚ×ÅÓÔÎÙÊ ÒÁÚÍÅÒ ÐÏÌÑ `%s' × struct"
diff --git a/binutils-2.17/binutils/po/rw.gmo b/binutils-2.17/binutils/po/rw.gmo
deleted file mode 100644
index 6d5d7b9e..00000000
--- a/binutils-2.17/binutils/po/rw.gmo
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/po/rw.po b/binutils-2.17/binutils/po/rw.po
deleted file mode 100644
index 51037188..00000000
--- a/binutils-2.17/binutils/po/rw.po
+++ /dev/null
@@ -1,4990 +0,0 @@
-# translation of binutils to Kinyarwanda.
-# Copyright (C) 2005 Free Software Foundation, Inc.
-# This file is distributed under the same license as the binutils package.
-# Steve Murphy <murf@e-tools.com>, 2005
-# Steve performed initial rough translation from compendium built from translations provided by the following translators:
-# Philibert Ndandali <ndandali@yahoo.fr>, 2005.
-# Viateur MUGENZI <muvia1@yahoo.fr>, 2005.
-# Noëlla Mupole <s24211045@tuks.co.za>, 2005.
-# Carole Karema <karemacarole@hotmail.com>, 2005.
-# JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005.
-# Augustin KIBERWA <akiberwa@yahoo.co.uk>, 2005.
-# Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005.
-# Antoine Bigirimana <antoine@e-tools.com>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: binutils 2.15\n"
-"POT-Creation-Date: 2003-07-11 13:56+0930\n"
-"PO-Revision-Date: 2005-04-03 10:55-0700\n"
-"Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
-"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: addr2line.c:74
-#, fuzzy, c-format
-msgid "Usage: %s [option(s)] [addr(s)]\n"
-msgstr "Ihitamo S Aderesi S"
-
-#: addr2line.c:75
-#, fuzzy
-msgid " Convert addresses into line number/file name pairs.\n"
-msgstr "Amaderesi Umurongo Umubare IDOSIYE Izina:"
-
-#: addr2line.c:76
-#, fuzzy
-msgid " If no addresses are specified on the command line, they will be read from stdin\n"
-msgstr "Oya Amaderesi ku i Komandi: Umurongo Gusoma Bivuye"
-
-#: addr2line.c:77
-#, fuzzy
-msgid ""
-" The options are:\n"
-" -b --target=<bfdname> Set the binary file format\n"
-" -e --exe=<executable> Set the input file name (default is a.out)\n"
-" -s --basenames Strip directory names\n"
-" -f --functions Show function names\n"
-" -C --demangle[=style] Demangle function names\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr "Amahitamo B Intego i Nyabibiri IDOSIYE E exe i Iyinjiza IDOSIYE Izina: Mburabuzi ni a Inyuma S bushyinguro F Imimaro Umumaro C IMISUSIRE Umumaro h Ifashayobora iyi v Verisiyo i"
-
-#: addr2line.c:89 ar.c:297 coffdump.c:479 nlmconv.c:1121 objcopy.c:484
-#: objcopy.c:518 readelf.c:2649 size.c:104 srconv.c:1962 strings.c:673
-#: sysdump.c:774 windres.c:702
-#, fuzzy, c-format
-msgid "Report bugs to %s\n"
-msgstr "Kuri"
-
-#: addr2line.c:245
-#, fuzzy, c-format
-msgid "%s: can not get addresses from archive"
-msgstr "%s:OYA Kubona Amaderesi Bivuye"
-
-#: addr2line.c:317 nm.c:433 objdump.c:2693
-#, fuzzy, c-format
-msgid "unknown demangling style `%s'"
-msgstr "Kitazwi IMISUSIRE"
-
-#: ar.c:238
-#, fuzzy, c-format
-msgid "no entry %s in archive\n"
-msgstr "Oya Icyinjijwe in"
-
-#: ar.c:255
-#, fuzzy, c-format
-msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"
-msgstr "Amahitamo Izina: IBARA IDOSIYE IDOSIYE"
-
-#: ar.c:258
-#, fuzzy, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr "%s-IYANDIKA"
-
-# sfx2/source\doc\docvor.src:DLG_ORGANIZE.BTN_EDIT.text
-#: ar.c:259
-#, fuzzy
-msgid " commands:\n"
-msgstr "Amabwiriza"
-
-#: ar.c:260
-#, fuzzy
-msgid " d - delete file(s) from the archive\n"
-msgstr "D Gusiba IDOSIYE S Bivuye i"
-
-#: ar.c:261
-#, fuzzy
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr "M Kwimura IDOSIYE S in i"
-
-#: ar.c:262
-#, fuzzy
-msgid " p - print file(s) found in the archive\n"
-msgstr "P Gucapa IDOSIYE S Byabonetse in i"
-
-#: ar.c:263
-#, fuzzy
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr "Q F Kongeraho... IDOSIYE S Kuri i"
-
-#: ar.c:264
-#, fuzzy
-msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr "R F u Gusimbura Cyangwa Kongeramo Gishya IDOSIYE S i"
-
-#: ar.c:265
-#, fuzzy
-msgid " t - display contents of archive\n"
-msgstr "T Kugaragaza Ibigize Bya"
-
-#: ar.c:266
-#, fuzzy
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr "X o IDOSIYE S Bivuye i"
-
-#: ar.c:267
-#, fuzzy
-msgid " command specific modifiers:\n"
-msgstr "Komandi:"
-
-#: ar.c:268
-#, fuzzy
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr "[a Gushyira IDOSIYE S Nyuma Izina:"
-
-#: ar.c:269
-#, fuzzy
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr "[B Gushyira IDOSIYE S Mbere Izina: Nka i"
-
-#: ar.c:270
-#, fuzzy
-msgid " [N] - use instance [count] of name\n"
-msgstr "[Gukoresha Urugero IBARA Bya"
-
-#: ar.c:271
-#, fuzzy
-msgid " [f] - truncate inserted file names\n"
-msgstr "[F Byinjijwemo IDOSIYE"
-
-#: ar.c:272
-#, fuzzy
-msgid " [P] - use full path names when matching\n"
-msgstr "[Gukoresha Inzira Amazina Ryari:"
-
-#: ar.c:273
-#, fuzzy
-msgid " [o] - preserve original dates\n"
-msgstr "[o Umwimerere"
-
-#: ar.c:274
-#, fuzzy
-msgid " [u] - only replace files that are newer than current archive contents\n"
-msgstr "[u Gusimbura Idosiye KIGEZWEHO"
-
-#: ar.c:275
-#, fuzzy
-msgid " generic modifiers:\n"
-msgstr "Gifitanye isano"
-
-#: ar.c:276
-#, fuzzy
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr "[C OYA NIBA i Isomero Kuri"
-
-#: ar.c:277
-#, fuzzy
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr "[S Kurema Umubarendanga"
-
-#: ar.c:278
-#, fuzzy
-msgid " [S] - do not build a symbol table\n"
-msgstr "[OYA a IKIMENYETSO"
-
-#: ar.c:279
-#, fuzzy
-msgid " [v] - be verbose\n"
-msgstr "[v"
-
-#: ar.c:280
-#, fuzzy
-msgid " [V] - display the version number\n"
-msgstr "[V Kugaragaza i Verisiyo"
-
-#: ar.c:287
-#, fuzzy, c-format
-msgid "Usage: %s [options] archive\n"
-msgstr "Amahitamo"
-
-#: ar.c:288
-#, fuzzy
-msgid " Generate an index to speed access to archives\n"
-msgstr "Umubarendanga Kuri Umuvuduko Kuri"
-
-#: ar.c:289
-#, fuzzy
-msgid ""
-" The options are:\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr "Amahitamo h Ifashayobora iyi Ifashayobora V Verisiyo Verisiyo"
-
-#: ar.c:512
-#, fuzzy
-msgid "two different operation options specified"
-msgstr "Amahitamo"
-
-#: ar.c:587
-#, fuzzy, c-format
-msgid "illegal option -- %c"
-msgstr "Ihitamo"
-
-#: ar.c:619
-#, fuzzy
-msgid "no operation specified"
-msgstr "Oya"
-
-#: ar.c:622
-#, fuzzy
-msgid "`u' is only meaningful with the `r' option."
-msgstr "`ni Na: i Ihitamo"
-
-#: ar.c:632
-#, fuzzy
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr "`ni Na: i Na Amahitamo"
-
-#: ar.c:635
-#, fuzzy
-msgid "Value for `N' must be positive."
-msgstr "kugirango"
-
-#: ar.c:718
-#, fuzzy, c-format
-msgid "internal error -- this option not implemented"
-msgstr "By'imbere Ikosa iyi Ihitamo OYA"
-
-#: ar.c:837 ar.c:888 ar.c:1333 objcopy.c:1579
-#, fuzzy, c-format
-msgid "internal stat error on %s"
-msgstr "By'imbere Ikosa ku"
-
-#: ar.c:841
-#, c-format
-msgid ""
-"\n"
-"<member %s>\n"
-"\n"
-msgstr ""
-
-#: ar.c:857 ar.c:925
-#, fuzzy, c-format
-msgid "%s is not a valid archive"
-msgstr "%sni OYA a Byemewe"
-
-#: ar.c:893
-#, fuzzy, c-format
-msgid "stat returns negative size for %s"
-msgstr "Ingano kugirango"
-
-#: ar.c:1020
-#, fuzzy, c-format
-msgid "%s is not an archive"
-msgstr "%sni OYA"
-
-#: ar.c:1027
-#, c-format
-msgid "creating %s"
-msgstr ""
-
-#: ar.c:1233
-#, c-format
-msgid "No member named `%s'\n"
-msgstr ""
-
-#: ar.c:1285
-#, fuzzy, c-format
-msgid "no entry %s in archive %s!"
-msgstr "Oya Icyinjijwe in"
-
-#: ar.c:1422
-#, fuzzy, c-format
-msgid "%s: no archive map to update"
-msgstr "%s:Oya Kuri Kuvugurura"
-
-#: arsup.c:86
-#, fuzzy, c-format
-msgid "No entry %s in archive.\n"
-msgstr "Icyinjijwe in"
-
-# sfx2/source\appl\app.src:STR_ERR_NOFILE.text
-#: arsup.c:117
-#, fuzzy, c-format
-msgid "Can't open file %s\n"
-msgstr "Ntibishoboka gufungura idosiye$."
-
-#: arsup.c:172
-#, fuzzy, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr "%s:Gufungura Ibisohoka"
-
-#: arsup.c:189
-#, fuzzy, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr "%s:Gufungura Iyinjiza"
-
-#: arsup.c:198
-#, fuzzy, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr "%s:IDOSIYE ni OYA"
-
-#: arsup.c:241
-#, fuzzy, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr "%s:Oya Ibisohoka"
-
-#: arsup.c:262 arsup.c:301 arsup.c:343 arsup.c:364 arsup.c:430
-#, fuzzy, c-format
-msgid "%s: no open output archive\n"
-msgstr "%s:Oya Gufungura Ibisohoka"
-
-#: arsup.c:273 arsup.c:385 arsup.c:411
-#, fuzzy, c-format
-msgid "%s: can't open file %s\n"
-msgstr "%s:Gufungura IDOSIYE"
-
-#: arsup.c:328 arsup.c:407 arsup.c:489
-#, fuzzy, c-format
-msgid "%s: can't find module file %s\n"
-msgstr "%s:Gushaka Modire IDOSIYE"
-
-#: arsup.c:439
-#, fuzzy, c-format
-msgid "Current open archive is %s\n"
-msgstr "Gufungura ni"
-
-#: arsup.c:464
-#, fuzzy, c-format
-msgid "%s: no open archive\n"
-msgstr "%s:Oya Gufungura"
-
-#: binemul.c:39
-#, c-format
-msgid " No emulation specific options\n"
-msgstr ""
-
-#. Macros for common output.
-#: binemul.h:52
-#, fuzzy, c-format
-msgid " emulation options: \n"
-msgstr "Amahitamo"
-
-#: bucomm.c:113
-#, fuzzy, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr "Gushyiraho Mburabuzi Intego Kuri"
-
-#: bucomm.c:125
-#, fuzzy, c-format
-msgid "%s: Matching formats:"
-msgstr "%s:Imiterere"
-
-#: bucomm.c:142
-msgid "Supported targets:"
-msgstr ""
-
-#: bucomm.c:144
-#, c-format
-msgid "%s: supported targets:"
-msgstr ""
-
-#: bucomm.c:162
-msgid "Supported architectures:"
-msgstr ""
-
-#: bucomm.c:164
-#, c-format
-msgid "%s: supported architectures:"
-msgstr ""
-
-#: bucomm.c:360
-#, fuzzy, c-format
-msgid "BFD header file version %s\n"
-msgstr "Umutwempangano IDOSIYE Verisiyo"
-
-#: bucomm.c:467
-#, fuzzy, c-format
-msgid "%s: bad number: %s"
-msgstr "%s:Umubare"
-
-#: coffdump.c:107
-#, fuzzy, c-format
-msgid "#lines %d "
-msgstr "#Imirongo"
-
-#: coffdump.c:471 sysdump.c:767
-#, fuzzy, c-format
-msgid "Usage: %s [option(s)] in-file\n"
-msgstr "Ihitamo S in"
-
-#: coffdump.c:472
-#, fuzzy
-msgid " Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "a Bya a Igikoresho"
-
-#: coffdump.c:473
-#, fuzzy
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr "Amahitamo h Ifashayobora iyi v Verisiyo i"
-
-#: coffdump.c:541 srconv.c:2052 sysdump.c:831
-#, fuzzy
-msgid "no input file specified"
-msgstr "Oya Iyinjiza IDOSIYE"
-
-#: debug.c:654
-#, fuzzy
-msgid "debug_add_to_current_namespace: no current file"
-msgstr "Oya KIGEZWEHO IDOSIYE"
-
-#: debug.c:737
-#, fuzzy
-msgid "debug_start_source: no debug_set_filename call"
-msgstr "Oya"
-
-#: debug.c:796
-#, fuzzy
-msgid "debug_record_function: no debug_set_filename call"
-msgstr "Oya"
-
-#: debug.c:852
-#, fuzzy
-msgid "debug_record_parameter: no current function"
-msgstr "Oya KIGEZWEHO Umumaro"
-
-#: debug.c:886
-#, fuzzy
-msgid "debug_end_function: no current function"
-msgstr "Oya KIGEZWEHO Umumaro"
-
-#: debug.c:892
-#, fuzzy
-msgid "debug_end_function: some blocks were not closed"
-msgstr "OYA"
-
-#: debug.c:922
-#, fuzzy
-msgid "debug_start_block: no current block"
-msgstr "Oya KIGEZWEHO Funga"
-
-#: debug.c:960
-#, fuzzy
-msgid "debug_end_block: no current block"
-msgstr "Oya KIGEZWEHO Funga"
-
-#: debug.c:967
-#, fuzzy
-msgid "debug_end_block: attempt to close top level block"
-msgstr "Kuri Gufunga Hejuru: urwego Funga"
-
-#: debug.c:993
-#, fuzzy
-msgid "debug_record_line: no current unit"
-msgstr "Oya KIGEZWEHO Igice:"
-
-#. FIXME
-#: debug.c:1047
-#, fuzzy
-msgid "debug_start_common_block: not implemented"
-msgstr "OYA"
-
-#. FIXME
-#: debug.c:1059
-#, fuzzy
-msgid "debug_end_common_block: not implemented"
-msgstr "OYA"
-
-#. FIXME.
-#: debug.c:1153
-#, fuzzy
-msgid "debug_record_label: not implemented"
-msgstr "OYA"
-
-#: debug.c:1179
-#, fuzzy
-msgid "debug_record_variable: no current file"
-msgstr "Oya KIGEZWEHO IDOSIYE"
-
-#: debug.c:1762
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr ""
-
-#: debug.c:1963
-#, fuzzy
-msgid "debug_name_type: no current file"
-msgstr "Oya KIGEZWEHO IDOSIYE"
-
-#: debug.c:2011
-#, fuzzy
-msgid "debug_tag_type: no current file"
-msgstr "Oya KIGEZWEHO IDOSIYE"
-
-#: debug.c:2019
-#, fuzzy
-msgid "debug_tag_type: extra tag attempted"
-msgstr "Birenga Itagi:"
-
-#: debug.c:2058
-#, fuzzy, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr "Ubwoko Ingano Bivuye Kuri"
-
-#: debug.c:2082
-#, fuzzy
-msgid "debug_find_named_type: no current compilation unit"
-msgstr "Oya KIGEZWEHO Igice:"
-
-#: debug.c:2189
-#, fuzzy, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr "Cy'uruziga Kosora amakosa Ibisobanuro kugirango"
-
-#: debug.c:2650
-#, fuzzy
-msgid "debug_write_type: illegal type encountered"
-msgstr "Ubwoko"
-
-#: dlltool.c:812 dlltool.c:837 dlltool.c:863
-#, fuzzy, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr "Ikosa Ubwoko"
-
-#: dlltool.c:900
-#, fuzzy, c-format
-msgid "Can't open def file: %s"
-msgstr "Gufungura IDOSIYE"
-
-#: dlltool.c:905
-#, fuzzy, c-format
-msgid "Processing def file: %s"
-msgstr "IDOSIYE"
-
-#: dlltool.c:909
-#, fuzzy
-msgid "Processed def file"
-msgstr "IDOSIYE"
-
-#: dlltool.c:935
-#, fuzzy, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr "Ikosa in IDOSIYE"
-
-#: dlltool.c:974
-#, fuzzy, c-format
-msgid "NAME: %s base: %x"
-msgstr "SHINGIRO"
-
-#: dlltool.c:977 dlltool.c:996
-#, fuzzy
-msgid "Can't have LIBRARY and NAME"
-msgstr "Na"
-
-#: dlltool.c:993
-#, fuzzy, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr "SHINGIRO"
-
-#: dlltool.c:1251 resrc.c:271
-#, fuzzy, c-format
-msgid "wait: %s"
-msgstr "Tegereza"
-
-#: dlltool.c:1256 dllwrap.c:430 resrc.c:276
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr ""
-
-#: dlltool.c:1262 dllwrap.c:437 resrc.c:283
-#, fuzzy, c-format
-msgid "%s exited with status %d"
-msgstr "%sNa: Imimerere"
-
-#: dlltool.c:1294
-#, fuzzy, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr "in Ibisobanuro Bivuye Icyiciro in"
-
-#: dlltool.c:1423
-#, fuzzy, c-format
-msgid "Excluding symbol: %s"
-msgstr "IKIMENYETSO"
-
-#: dlltool.c:1518 dlltool.c:1529 nm.c:1004 nm.c:1015
-#, fuzzy, c-format
-msgid "%s: no symbols"
-msgstr "%s:Oya Ibimenyetso"
-
-#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1556
-#, c-format
-msgid "Done reading %s"
-msgstr ""
-
-#: dlltool.c:1567
-#, fuzzy, c-format
-msgid "Unable to open object file: %s"
-msgstr "Kuri Gufungura Igikoresho IDOSIYE"
-
-#: dlltool.c:1570
-#, fuzzy, c-format
-msgid "Scanning object file %s"
-msgstr "Igikoresho IDOSIYE"
-
-#: dlltool.c:1585
-#, fuzzy, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr "Bivuye IDOSIYE"
-
-#: dlltool.c:1677
-#, fuzzy
-msgid "Adding exports to output file"
-msgstr "Kuri Ibisohoka IDOSIYE"
-
-#: dlltool.c:1724
-#, fuzzy
-msgid "Added exports to output file"
-msgstr "Kuri Ibisohoka IDOSIYE"
-
-#: dlltool.c:1848
-#, fuzzy, c-format
-msgid "Generating export file: %s"
-msgstr "Kohereza IDOSIYE"
-
-#: dlltool.c:1853
-#, fuzzy, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr "Kuri Gufungura By'igihe gito IDOSIYE"
-
-#: dlltool.c:1856
-#, fuzzy, c-format
-msgid "Opened temporary file: %s"
-msgstr "By'igihe gito IDOSIYE"
-
-#: dlltool.c:2086
-#, fuzzy
-msgid "Generated exports file"
-msgstr "IDOSIYE"
-
-#: dlltool.c:2378
-#, fuzzy, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr "Byanze Gufungura IDOSIYE"
-
-#: dlltool.c:2381
-#, fuzzy, c-format
-msgid "Creating stub file: %s"
-msgstr "IDOSIYE"
-
-#: dlltool.c:2766
-#, fuzzy, c-format
-msgid "failed to open temporary head file: %s"
-msgstr "Byanze Kuri Gufungura By'igihe gito IDOSIYE"
-
-#: dlltool.c:2825
-#, fuzzy, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr "Byanze Kuri Gufungura By'igihe gito IDOSIYE"
-
-#: dlltool.c:2892
-#, fuzzy, c-format
-msgid "Can't open .lib file: %s"
-msgstr "Gufungura IDOSIYE"
-
-#: dlltool.c:2895
-#, fuzzy, c-format
-msgid "Creating library file: %s"
-msgstr "Isomero IDOSIYE"
-
-#: dlltool.c:2951
-#, fuzzy, c-format
-msgid "cannot delete %s: %s"
-msgstr "Gusiba"
-
-#: dlltool.c:2955
-#, fuzzy
-msgid "Created lib file"
-msgstr "IDOSIYE"
-
-#: dlltool.c:3062
-#, fuzzy, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr "Gusubiramo"
-
-#: dlltool.c:3068
-#, fuzzy, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr "Gusubiramo Na:"
-
-#: dlltool.c:3191
-msgid "Processing definitions"
-msgstr ""
-
-#: dlltool.c:3223
-msgid "Processed definitions"
-msgstr ""
-
-#. xgetext:c-format
-#: dlltool.c:3234 dllwrap.c:495
-#, fuzzy, c-format
-msgid "Usage %s <option(s)> <object-file(s)>\n"
-msgstr "Ihitamo S Igikoresho IDOSIYE S"
-
-#. xgetext:c-format
-#: dlltool.c:3236
-#, fuzzy, c-format
-msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr "-M Nka kugirango Mburabuzi"
-
-#: dlltool.c:3237
-#, fuzzy
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-msgstr "LE"
-
-#: dlltool.c:3238
-#, fuzzy
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr "-E Ibisohoka EXP Kohereza IDOSIYE"
-
-#: dlltool.c:3239
-#, fuzzy
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr "-L Ibisohoka Isomero"
-
-#: dlltool.c:3240
-#, fuzzy
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr "-a Kongeramo BUZIGUYE Kuri Kohereza IDOSIYE"
-
-#: dlltool.c:3241
-#, fuzzy
-msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr "-Izina: Bya Iyinjiza Kuri Gushyira"
-
-#: dlltool.c:3242
-#, fuzzy
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr "-D Iyinjiza Bya IDOSIYE Kuri Gusoma in"
-
-#: dlltool.c:3243
-#, fuzzy
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr "-Z Ibisohoka Bya IDOSIYE Kuri Byaremwe"
-
-#: dlltool.c:3244
-#, fuzzy
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr "--Kohereza Byose Ibimenyetso Byose Ibimenyetso Kuri"
-
-#: dlltool.c:3245
-#, fuzzy
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr "--Oya Kohereza Byose Ibimenyetso Kohereza"
-
-#: dlltool.c:3246
-#, fuzzy
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr "--Ibimenyetso Urutonde Kohereza Urutonde"
-
-#: dlltool.c:3247
-#, fuzzy
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr "--Oya Mburabuzi Mburabuzi"
-
-#: dlltool.c:3248
-#, fuzzy
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr "-B SHINGIRO IDOSIYE SHINGIRO IDOSIYE"
-
-#: dlltool.c:3249
-#, fuzzy
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr "-X Oya 4. Icyiciro"
-
-#: dlltool.c:3250
-#, fuzzy
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr "-C Oya 5 Icyiciro"
-
-#: dlltool.c:3251
-#, fuzzy
-msgid " -U --add-underscore Add underscores to symbols in interface library.\n"
-msgstr "-U Kongeramo Kuri Ibimenyetso in Isomero"
-
-#: dlltool.c:3252
-#, fuzzy
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr "-K ku N Bivuye Amazina"
-
-#: dlltool.c:3253
-#, fuzzy
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr "-A Kongeramo Irihimbano Irihimbano N"
-
-#: dlltool.c:3254
-#, fuzzy
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr "-Nka Izina: Izina: kugirango"
-
-#: dlltool.c:3255
-#, fuzzy
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr "-F Nka Amabendera Amabendera Amabendera Kuri i"
-
-#: dlltool.c:3256
-#, fuzzy
-msgid " -C --compat-implib Create backward compatible import library.\n"
-msgstr "-C subira inyuma Kuzana Isomero"
-
-#: dlltool.c:3257
-#, fuzzy
-msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
-msgstr "-N Oya Gusiba Idosiye Gusubiramo kugirango Birenga"
-
-#: dlltool.c:3258
-#, fuzzy
-msgid " -v --verbose Be verbose.\n"
-msgstr "-v"
-
-#: dlltool.c:3259
-#, fuzzy
-msgid " -V --version Display the program version.\n"
-msgstr "-V Verisiyo i Porogaramu Verisiyo"
-
-#: dlltool.c:3260
-#, fuzzy
-msgid " -h --help Display this information.\n"
-msgstr "-h Ifashayobora iyi Ibisobanuro"
-
-#: dlltool.c:3262
-#, fuzzy
-msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr "-Igikoresho Idosiye"
-
-#: dlltool.c:3263
-#, fuzzy
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr "-Izina: Izina: Nka i"
-
-#: dlltool.c:3264
-#, fuzzy
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr "-Amabendera Amabendera Amabendera Kuri i"
-
-#: dlltool.c:3418
-#, fuzzy, c-format
-msgid "Unable to open base-file: %s"
-msgstr "Kuri Gufungura SHINGIRO IDOSIYE"
-
-#: dlltool.c:3450
-#, fuzzy, c-format
-msgid "Machine '%s' not supported"
-msgstr "OYA"
-
-#: dlltool.c:3553 dllwrap.c:214
-#, fuzzy, c-format
-msgid "Tried file: %s"
-msgstr "IDOSIYE"
-
-#: dlltool.c:3560 dllwrap.c:221
-#, fuzzy, c-format
-msgid "Using file: %s"
-msgstr "IDOSIYE"
-
-#: dllwrap.c:308
-#, fuzzy, c-format
-msgid "Keeping temporary base file %s"
-msgstr "By'igihe gito SHINGIRO IDOSIYE"
-
-#: dllwrap.c:310
-#, fuzzy, c-format
-msgid "Deleting temporary base file %s"
-msgstr "By'igihe gito SHINGIRO IDOSIYE"
-
-#: dllwrap.c:324
-#, fuzzy, c-format
-msgid "Keeping temporary exp file %s"
-msgstr "By'igihe gito EXP IDOSIYE"
-
-#: dllwrap.c:326
-#, fuzzy, c-format
-msgid "Deleting temporary exp file %s"
-msgstr "By'igihe gito EXP IDOSIYE"
-
-#: dllwrap.c:339
-#, fuzzy, c-format
-msgid "Keeping temporary def file %s"
-msgstr "By'igihe gito IDOSIYE"
-
-#: dllwrap.c:341
-#, fuzzy, c-format
-msgid "Deleting temporary def file %s"
-msgstr "By'igihe gito IDOSIYE"
-
-#: dllwrap.c:496
-#, fuzzy
-msgid " Generic options:\n"
-msgstr "Amahitamo"
-
-#: dllwrap.c:497
-#, fuzzy
-msgid " --quiet, -q Work quietly\n"
-msgstr "--Q"
-
-#: dllwrap.c:498
-#, fuzzy
-msgid " --verbose, -v Verbose\n"
-msgstr "--v"
-
-#: dllwrap.c:499
-#, fuzzy
-msgid " --version Print dllwrap version\n"
-msgstr "--Verisiyo"
-
-#: dllwrap.c:500
-#, fuzzy
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr "--kugirango Ibisohoka"
-
-#: dllwrap.c:501
-#, fuzzy, c-format
-msgid " Options for %s:\n"
-msgstr "kugirango"
-
-#: dllwrap.c:502
-#, fuzzy
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr "--Musomyi: Izina: Musomyi: Kuri"
-
-#: dllwrap.c:503
-#, fuzzy
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr "--Musomyi: Amabendera Amabendera Mburabuzi"
-
-#: dllwrap.c:504
-#, fuzzy
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr "--Izina: Kuri"
-
-#: dllwrap.c:505
-#, fuzzy
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr "--Icyinjijwe Icyinjijwe Icyinjijwe"
-
-#: dllwrap.c:506
-#, fuzzy
-msgid " --image-base <base> Specify image base address\n"
-msgstr "--Ishusho SHINGIRO SHINGIRO Ishusho SHINGIRO"
-
-#: dllwrap.c:507
-#, fuzzy
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr "--Intego Cyangwa"
-
-#: dllwrap.c:508
-#, fuzzy
-msgid " --dry-run Show what needs to be run\n"
-msgstr "--Gukoresha Kuri"
-
-#: dllwrap.c:509
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr ""
-
-#: dllwrap.c:510
-#, fuzzy
-msgid " Options passed to DLLTOOL:\n"
-msgstr "Kuri"
-
-#: dllwrap.c:511
-msgid " --machine <machine>\n"
-msgstr ""
-
-#: dllwrap.c:512
-#, fuzzy
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr "--Ibisohoka EXP Kohereza IDOSIYE"
-
-#: dllwrap.c:513
-#, fuzzy
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr "--Ibisohoka Iyinjiza Isomero"
-
-#: dllwrap.c:514
-#, fuzzy
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr "--Kongeramo BUZIGUYE Kuri Kohereza IDOSIYE"
-
-#: dllwrap.c:515
-#, fuzzy
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr "--Izina: Bya Iyinjiza Kuri Gushyira Ibisohoka"
-
-#: dllwrap.c:516
-#, fuzzy
-msgid " --def <deffile> Name input .def file\n"
-msgstr "--Iyinjiza"
-
-#: dllwrap.c:517
-#, fuzzy
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr "--Ibisohoka Ibisohoka"
-
-#: dllwrap.c:518
-#, fuzzy
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr "--Kohereza Byose Ibimenyetso Byose Ibimenyetso Kuri"
-
-#: dllwrap.c:519
-#, fuzzy
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr "--Oya Kohereza Byose Ibimenyetso Kohereza"
-
-#: dllwrap.c:520
-#, fuzzy
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr "--Ibimenyetso Urutonde Urutonde Bivuye"
-
-#: dllwrap.c:521
-#, fuzzy
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr "--Oya Mburabuzi Mburabuzi"
-
-#: dllwrap.c:522
-#, fuzzy
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr "--SHINGIRO IDOSIYE SHINGIRO"
-
-#: dllwrap.c:523
-#, fuzzy
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr "--Oya 4."
-
-#: dllwrap.c:524
-#, fuzzy
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr "--Oya 5"
-
-#: dllwrap.c:525
-#, fuzzy
-msgid " -U Add underscores to .lib\n"
-msgstr "-U Kuri"
-
-#: dllwrap.c:526
-#, fuzzy
-msgid " -k Kill @<n> from exported names\n"
-msgstr "-K N Bivuye"
-
-#: dllwrap.c:527
-#, fuzzy
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr "--Kongeramo Irihimbano Irihimbano N"
-
-#: dllwrap.c:528
-#, fuzzy
-msgid " --as <name> Use <name> for assembler\n"
-msgstr "--Nka Izina: Izina: kugirango"
-
-#: dllwrap.c:529
-#, fuzzy
-msgid " --nodelete Keep temp files.\n"
-msgstr "--Idosiye"
-
-#: dllwrap.c:530
-#, fuzzy
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr "Kuri i Ururimi"
-
-#: dllwrap.c:802
-#, fuzzy
-msgid "Must provide at least one of -o or --dllname options"
-msgstr "ku Bya o Cyangwa Amahitamo"
-
-#: dllwrap.c:830
-#, fuzzy
-msgid ""
-"no export definition file provided.\n"
-"Creating one, but that may not be what you want"
-msgstr "Oya Kohereza Insobanuro IDOSIYE Gicurasi OYA"
-
-#: dllwrap.c:992
-#, fuzzy, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr "Izina:"
-
-#: dllwrap.c:993
-#, fuzzy, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr "Amahitamo"
-
-# offmgr/source\offapp\dialog\connpooloptions.src:RID_OFAPAGE_CONNPOOLOPTIONS.STR_DRIVER_NAME.text
-#: dllwrap.c:994
-#, fuzzy, c-format
-msgid "DRIVER name : %s\n"
-msgstr "Izina rya musomyi"
-
-#: dllwrap.c:995
-#, fuzzy, c-format
-msgid "DRIVER options : %s\n"
-msgstr "Amahitamo"
-
-#: emul_aix.c:58
-#, fuzzy, c-format
-msgid " [-g] - 32 bit small archive\n"
-msgstr "[-g Gitoya"
-
-#: emul_aix.c:59
-msgid " [-X32] - ignores 64 bit objects\n"
-msgstr ""
-
-#: emul_aix.c:60
-msgid " [-X64] - ignores 32 bit objects\n"
-msgstr ""
-
-#: emul_aix.c:61
-#, fuzzy
-msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
-msgstr "[-Na"
-
-#: ieee.c:326
-#, fuzzy
-msgid "unexpected end of debugging information"
-msgstr "Impera Bya Ibisobanuro"
-
-# sch/source\ui\app\strings.src:STR_INVALID_NUMBER.text
-#: ieee.c:421
-#, fuzzy
-msgid "invalid number"
-msgstr "Umubare utari wo"
-
-#: ieee.c:480
-#, fuzzy
-msgid "invalid string length"
-msgstr "Sibyo Ikurikiranyanyuguti Uburebure"
-
-#: ieee.c:537 ieee.c:578
-#, fuzzy
-msgid "expression stack overflow"
-msgstr "imvugo Byarenze urugero"
-
-#: ieee.c:557
-#, fuzzy
-msgid "unsupported IEEE expression operator"
-msgstr "imvugo Mukoresha"
-
-#: ieee.c:572
-#, fuzzy
-msgid "unknown section"
-msgstr "Kitazwi Icyiciro"
-
-#: ieee.c:593
-#, fuzzy
-msgid "expression stack underflow"
-msgstr "imvugo"
-
-#: ieee.c:607
-#, fuzzy
-msgid "expression stack mismatch"
-msgstr "imvugo"
-
-#: ieee.c:646
-#, fuzzy
-msgid "unknown builtin type"
-msgstr "Kitazwi Ubwoko"
-
-#: ieee.c:791
-#, fuzzy
-msgid "BCD float type not supported"
-msgstr "Kureremba Ubwoko OYA"
-
-#: ieee.c:937
-#, fuzzy
-msgid "unexpected number"
-msgstr "Umubare"
-
-#: ieee.c:944
-#, fuzzy
-msgid "unexpected record type"
-msgstr "Icyabitswe Ubwoko"
-
-#: ieee.c:977
-#, fuzzy
-msgid "blocks left on stack at end"
-msgstr "Ibumoso: ku ku Impera"
-
-#: ieee.c:1242
-#, fuzzy
-msgid "unknown BB type"
-msgstr "Kitazwi Ubwoko"
-
-#: ieee.c:1251
-#, fuzzy
-msgid "stack overflow"
-msgstr "Byarenze urugero"
-
-#: ieee.c:1276
-msgid "stack underflow"
-msgstr ""
-
-#: ieee.c:1390 ieee.c:1462 ieee.c:2161
-#, fuzzy
-msgid "illegal variable index"
-msgstr "IMPINDURAGACIRO Umubarendanga"
-
-#: ieee.c:1440
-#, fuzzy
-msgid "illegal type index"
-msgstr "Ubwoko Umubarendanga"
-
-#: ieee.c:1450 ieee.c:1487
-#, fuzzy
-msgid "unknown TY code"
-msgstr "Kitazwi ITEGEKONGENGA"
-
-#: ieee.c:1469
-#, fuzzy
-msgid "undefined variable in TY"
-msgstr "kidasobanuye IMPINDURAGACIRO in"
-
-#. Pascal file name. FIXME.
-#: ieee.c:1880
-#, fuzzy
-msgid "Pascal file name not supported"
-msgstr "IDOSIYE Izina: OYA"
-
-#: ieee.c:1928
-msgid "unsupported qualifier"
-msgstr ""
-
-#: ieee.c:2199
-#, fuzzy
-msgid "undefined variable in ATN"
-msgstr "kidasobanuye IMPINDURAGACIRO in"
-
-#: ieee.c:2242
-#, fuzzy
-msgid "unknown ATN type"
-msgstr "Kitazwi Ubwoko"
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2364
-msgid "unsupported ATN11"
-msgstr ""
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2391
-msgid "unsupported ATN12"
-msgstr ""
-
-#: ieee.c:2451
-#, fuzzy
-msgid "unexpected string in C++ misc"
-msgstr "Ikurikiranyanyuguti in C"
-
-#: ieee.c:2464
-#, fuzzy
-msgid "bad misc record"
-msgstr "Icyabitswe"
-
-#: ieee.c:2507
-#, fuzzy
-msgid "unrecognized C++ misc record"
-msgstr "C Icyabitswe"
-
-#: ieee.c:2624
-#, fuzzy
-msgid "undefined C++ object"
-msgstr "kidasobanuye C Igikoresho"
-
-#: ieee.c:2658
-#, fuzzy
-msgid "unrecognized C++ object spec"
-msgstr "C Igikoresho"
-
-#: ieee.c:2694
-#, fuzzy
-msgid "unsupported C++ object type"
-msgstr "C Igikoresho Ubwoko"
-
-#: ieee.c:2704
-#, fuzzy
-msgid "C++ base class not defined"
-msgstr "C SHINGIRO ishuri OYA"
-
-#: ieee.c:2716 ieee.c:2821
-#, fuzzy
-msgid "C++ object has no fields"
-msgstr "C Igikoresho Oya Imyanya"
-
-#: ieee.c:2735
-#, fuzzy
-msgid "C++ base class not found in container"
-msgstr "C SHINGIRO ishuri OYA Byabonetse in"
-
-#: ieee.c:2842
-#, fuzzy
-msgid "C++ data member not found in container"
-msgstr "C Ibyatanzwe OYA Byabonetse in"
-
-#: ieee.c:2883 ieee.c:3033
-#, fuzzy
-msgid "unknown C++ visibility"
-msgstr "Kitazwi C Ukugaragara"
-
-#: ieee.c:2917
-#, fuzzy
-msgid "bad C++ field bit pos or size"
-msgstr "C Umwanya Cyangwa Ingano"
-
-#: ieee.c:3009
-#, fuzzy
-msgid "bad type for C++ method function"
-msgstr "Ubwoko kugirango C Uburyo Umumaro"
-
-#: ieee.c:3019
-#, fuzzy
-msgid "no type information for C++ method function"
-msgstr "Oya Ubwoko Ibisobanuro kugirango C Uburyo Umumaro"
-
-#: ieee.c:3058
-#, fuzzy
-msgid "C++ static virtual method"
-msgstr "C Kitaboneka Uburyo"
-
-#: ieee.c:3153
-#, fuzzy
-msgid "unrecognized C++ object overhead spec"
-msgstr "C Igikoresho"
-
-#: ieee.c:3192
-#, fuzzy
-msgid "undefined C++ vtable"
-msgstr "kidasobanuye C"
-
-#: ieee.c:3263
-#, fuzzy
-msgid "C++ default values not in a function"
-msgstr "C Mburabuzi Uduciro OYA in a Umumaro"
-
-#: ieee.c:3303
-#, fuzzy
-msgid "unrecognized C++ default type"
-msgstr "C Mburabuzi Ubwoko"
-
-#: ieee.c:3334
-#, fuzzy
-msgid "reference parameter is not a pointer"
-msgstr "Indango ni OYA a Mweretsi"
-
-#: ieee.c:3419
-#, fuzzy
-msgid "unrecognized C++ reference type"
-msgstr "C Indango Ubwoko"
-
-#: ieee.c:3501
-#, fuzzy
-msgid "C++ reference not found"
-msgstr "C Indango OYA Byabonetse"
-
-#: ieee.c:3509
-#, fuzzy
-msgid "C++ reference is not pointer"
-msgstr "C Indango ni OYA Mweretsi"
-
-#: ieee.c:3538 ieee.c:3546
-#, fuzzy
-msgid "missing required ASN"
-msgstr "Ibuze Bya ngombwa"
-
-#: ieee.c:3576 ieee.c:3584
-#, fuzzy
-msgid "missing required ATN65"
-msgstr "Ibuze Bya ngombwa"
-
-#: ieee.c:3598
-#, fuzzy
-msgid "bad ATN65 record"
-msgstr "Icyabitswe"
-
-#: ieee.c:4286
-#, fuzzy
-msgid "IEEE numeric overflow: 0x"
-msgstr "Bikurikije umubare Byarenze urugero"
-
-#: ieee.c:4332
-#, fuzzy, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr "Ikurikiranyanyuguti Uburebure Byarenze urugero"
-
-#: ieee.c:5382
-#, fuzzy, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr "Umubare wuzuye Ubwoko Ingano"
-
-#: ieee.c:5418
-#, fuzzy, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr "Kureremba Ubwoko Ingano"
-
-#: ieee.c:5454
-#, fuzzy, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr "ITSINDA RY'IMIBARE C Ubwoko Ingano"
-
-#: nlmconv.c:282 srconv.c:2043
-#, fuzzy
-msgid "input and output files must be different"
-msgstr "Iyinjiza Na Ibisohoka Idosiye"
-
-#: nlmconv.c:329
-#, fuzzy
-msgid "input file named both on command line and with INPUT"
-msgstr "Iyinjiza IDOSIYE Byombi ku Komandi: Umurongo Na Na:"
-
-#: nlmconv.c:338
-#, fuzzy
-msgid "no input file"
-msgstr "Oya Iyinjiza IDOSIYE"
-
-#: nlmconv.c:368
-#, fuzzy
-msgid "no name for output file"
-msgstr "Oya Izina: kugirango Ibisohoka IDOSIYE"
-
-#: nlmconv.c:382
-#, fuzzy
-msgid "warning: input and output formats are not compatible"
-msgstr "Iburira Iyinjiza Na Ibisohoka Imiterere OYA"
-
-#: nlmconv.c:411
-#, fuzzy
-msgid "make .bss section"
-msgstr "Ubwoko."
-
-#: nlmconv.c:420
-#, fuzzy
-msgid "make .nlmsections section"
-msgstr "Ubwoko."
-
-#: nlmconv.c:422
-#, fuzzy
-msgid "set .nlmsections flags"
-msgstr "Gushyiraho."
-
-#: nlmconv.c:450
-#, fuzzy
-msgid "set .bss vma"
-msgstr "Gushyiraho."
-
-#: nlmconv.c:457
-#, fuzzy
-msgid "set .data size"
-msgstr "Gushyiraho."
-
-#: nlmconv.c:637
-#, fuzzy, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr "Iburira IKIMENYETSO cyavuye ahandi/ cyatumijwe OYA in Kuzana Urutonde"
-
-#: nlmconv.c:657
-#, fuzzy
-msgid "set start address"
-msgstr "Gushyiraho Gutangira Aderesi"
-
-#: nlmconv.c:706
-#, fuzzy, c-format
-msgid "warning: START procedure %s not defined"
-msgstr "Iburira OYA"
-
-#: nlmconv.c:708
-#, fuzzy, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr "Iburira OYA"
-
-#: nlmconv.c:710
-#, fuzzy, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr "Iburira OYA"
-
-#: nlmconv.c:731 nlmconv.c:920
-#, fuzzy
-msgid "custom section"
-msgstr "Kunoza Icyiciro"
-
-#: nlmconv.c:752 nlmconv.c:949
-#, fuzzy
-msgid "help section"
-msgstr "Ifashayobora Icyiciro"
-
-#: nlmconv.c:774 nlmconv.c:967
-#, fuzzy
-msgid "message section"
-msgstr "Ubutumwa Icyiciro"
-
-#: nlmconv.c:790 nlmconv.c:1000
-#, fuzzy
-msgid "module section"
-msgstr "Modire Icyiciro"
-
-#: nlmconv.c:810 nlmconv.c:1016
-#, fuzzy
-msgid "rpc section"
-msgstr "Icyiciro"
-
-#. There is no place to record this information.
-#: nlmconv.c:846
-#, fuzzy, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr "%s:Iburira Amasomero OYA Itatangijwe Ibyatanzwe"
-
-#: nlmconv.c:867 nlmconv.c:1035
-#, fuzzy
-msgid "shared section"
-msgstr "Icyiciro"
-
-#: nlmconv.c:875
-#, fuzzy
-msgid "warning: No version number given"
-msgstr "Iburira Verisiyo Umubare"
-
-#: nlmconv.c:915 nlmconv.c:944 nlmconv.c:962 nlmconv.c:1011 nlmconv.c:1030
-#, fuzzy, c-format
-msgid "%s: read: %s"
-msgstr "%s:Gusoma"
-
-#: nlmconv.c:937
-#, fuzzy
-msgid "warning: MAP and FULLMAP are not supported; try ld -M"
-msgstr "Iburira Na OYA"
-
-#: nlmconv.c:1109
-#, fuzzy, c-format
-msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
-msgstr "Ihitamo S in IDOSIYE Inyuma IDOSIYE"
-
-#: nlmconv.c:1110
-#, fuzzy
-msgid " Convert an object file into a NetWare Loadable Module\n"
-msgstr "Igikoresho IDOSIYE a"
-
-#: nlmconv.c:1111
-#, fuzzy
-msgid ""
-" The options are:\n"
-" -I --input-target=<bfdname> Set the input binary file format\n"
-" -O --output-target=<bfdname> Set the output binary file format\n"
-" -T --header-file=<file> Read <file> for NLM header information\n"
-" -l --linker=<linker> Use <linker> for any linking\n"
-" -d --debug Display on stderr the linker command line\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-msgstr "Amahitamo Iyinjiza Intego i Iyinjiza Nyabibiri IDOSIYE Ibisohoka Intego i Ibisohoka Nyabibiri IDOSIYE Umutwempangano IDOSIYE IDOSIYE IDOSIYE kugirango Umutwempangano L kugirango D Kosora amakosa ku i Komandi: h Ifashayobora iyi v Verisiyo i"
-
-#: nlmconv.c:1153
-#, fuzzy, c-format
-msgid "support not compiled in for %s"
-msgstr "Gushigikira OYA in kugirango"
-
-#: nlmconv.c:1193
-#, fuzzy
-msgid "make section"
-msgstr "Ubwoko Icyiciro"
-
-#: nlmconv.c:1207
-#, fuzzy
-msgid "set section size"
-msgstr "Gushyiraho Icyiciro Ingano"
-
-#: nlmconv.c:1213
-#, fuzzy
-msgid "set section alignment"
-msgstr "Gushyiraho Icyiciro Itunganya"
-
-#: nlmconv.c:1217
-#, fuzzy
-msgid "set section flags"
-msgstr "Gushyiraho Icyiciro Amabendera"
-
-#: nlmconv.c:1228
-#, fuzzy
-msgid "set .nlmsections size"
-msgstr "Gushyiraho."
-
-#: nlmconv.c:1316 nlmconv.c:1324 nlmconv.c:1333 nlmconv.c:1338
-#, fuzzy
-msgid "set .nlmsection contents"
-msgstr "Gushyiraho."
-
-#: nlmconv.c:1839
-#, fuzzy
-msgid "stub section sizes"
-msgstr "Icyiciro"
-
-#: nlmconv.c:1888
-msgid "writing stub"
-msgstr ""
-
-#: nlmconv.c:1977
-#, fuzzy, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr "Bifitanye isano"
-
-#: nlmconv.c:2041
-#, fuzzy, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr "Byarenze urugero Ryari:"
-
-#: nlmconv.c:2158
-#, fuzzy, c-format
-msgid "%s: execution of %s failed: "
-msgstr "%s:Bya Byanze"
-
-#: nlmconv.c:2173
-#, fuzzy, c-format
-msgid "Execution of %s failed"
-msgstr "Bya Byanze"
-
-#: nm.c:283 size.c:85 strings.c:657
-#, fuzzy, c-format
-msgid "Usage: %s [option(s)] [file(s)]\n"
-msgstr "Ihitamo S IDOSIYE S"
-
-#: nm.c:284
-#, fuzzy
-msgid " List symbols in [file(s)] (a.out by default).\n"
-msgstr "Ibimenyetso in IDOSIYE S a Inyuma ku Mburabuzi"
-
-#: nm.c:285
-#, fuzzy
-msgid ""
-" The options are:\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -S, --print-size Print size of defined symbols\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -X 32_64 (ignored)\n"
-" -h, --help Display this information\n"
-" -V, --version Display this program's version number\n"
-"\n"
-msgstr "Amahitamo a Kosora amakosa A Gucapa IDOSIYE Izina: Izina: Bya i Iyinjiza IDOSIYE Mbere buri Nka Imiterere C Byo hasi urwego IKIMENYETSO Amazina Ukoresha: urwego NIBA i Mburabuzi Cyangwa Oya OYA Byo hasi urwego IKIMENYETSO Ibimenyetso Bya Bisanzwe E F Imiterere i Ibisohoka Imiterere Cyangwa Mburabuzi ni g external L Umurongo Imibare Ibisobanuro Kuri Gushaka a Izina ry'idosiye: Umurongo Umubare kugirango N Bikurikije umubare Ishungura Ibimenyetso ku o Nka P Oya Ishungura OYA Ishungura i Nka Imiterere R Ihindurakerekezo Ishungura i Bya i Gucapa Ingano Ingano Bya S Gucapa Umubarendanga kugirango Ibimenyetso Bivuye Ingano Ishungura Ibimenyetso ku T radix kugirango Icapa... IKIMENYETSO Intego i Intego Igikoresho Imiterere Nka u kidasobanuye kidasobanuye h Ifashayobora iyi V Verisiyo iyi Verisiyo"
-
-#: nm.c:319 objdump.c:250
-#, fuzzy, c-format
-msgid "Report bugs to %s.\n"
-msgstr "Kuri"
-
-#: nm.c:352
-#, fuzzy, c-format
-msgid "%s: invalid radix"
-msgstr "%s:Sibyo radix"
-
-#: nm.c:377
-#, fuzzy, c-format
-msgid "%s: invalid output format"
-msgstr "%s:Sibyo Ibisohoka Imiterere"
-
-#: nm.c:494
-#, fuzzy
-msgid "Only -X 32_64 is supported"
-msgstr "ni"
-
-#: nm.c:514
-#, fuzzy
-msgid "Using the --size-sort and --undefined-only options together"
-msgstr "i Ingano Ishungura Na kidasobanuye Amahitamo"
-
-#: nm.c:515
-#, fuzzy
-msgid "will produce no output, since undefined symbols have no size."
-msgstr "Oya Ibisohoka guhera kidasobanuye Ibimenyetso Oya Ingano"
-
-#: nm.c:543
-#, fuzzy, c-format
-msgid "data size %ld"
-msgstr "Ibyatanzwe Ingano"
-
-#: nm.c:568 readelf.c:5809 readelf.c:5845
-#, c-format
-msgid "<processor specific>: %d"
-msgstr ""
-
-#: nm.c:570 readelf.c:5811 readelf.c:5857
-#, c-format
-msgid "<OS specific>: %d"
-msgstr ""
-
-#: nm.c:572 readelf.c:5813 readelf.c:5860
-#, fuzzy, c-format
-msgid "<unknown>: %d"
-msgstr "<Itazwi>"
-
-#: nm.c:1376
-#, fuzzy, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s:\n"
-"\n"
-msgstr "Ibimenyetso Bivuye"
-
-#: nm.c:1378
-#, fuzzy, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr "Bivuye"
-
-#: nm.c:1380 nm.c:1438
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-
-#: nm.c:1383 nm.c:1441
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-
-#: nm.c:1434
-#, fuzzy, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s[%s]:\n"
-"\n"
-msgstr "Ibimenyetso Bivuye"
-
-#: nm.c:1436
-#, fuzzy, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr "Bivuye"
-
-#: nm.c:1658
-#, fuzzy
-msgid ""
-"\n"
-"Archive index:\n"
-msgstr "Umubarendanga"
-
-#: objcopy.c:414 srconv.c:1952
-#, fuzzy, c-format
-msgid "Usage: %s [option(s)] in-file [out-file]\n"
-msgstr "Ihitamo S in IDOSIYE Inyuma IDOSIYE"
-
-#: objcopy.c:415
-#, fuzzy
-msgid " Copies a binary file, possibly transforming it in the process\n"
-msgstr "a Nyabibiri IDOSIYE in i"
-
-#: objcopy.c:416 objcopy.c:495
-#, fuzzy
-msgid " The options are:\n"
-msgstr "Amahitamo"
-
-#: objcopy.c:417
-#, fuzzy
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -B --binary-architecture <arch> Set arch of output file, when input is binary\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" --debugging Convert debugging information, if possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation information\n"
-" -g --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" -K --keep-symbol <name> Only copy symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-" --weaken Force all global symbols to be marked as weak\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address <addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to <flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to output\n"
-" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-" --change-leading-char Force output format's leading character style\n"
-" --remove-leading-char Remove leading character from global symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --redefine-syms <file> --redefine-sym for all symbol pairs \n"
-" listed in <file>\n"
-" --srec-len <number> Restrict the length of generated Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-" --strip-symbols <file> -N for all symbols listed in <file>\n"
-" --keep-symbols <file> -K for all symbols listed in <file>\n"
-" --localize-symbols <file> -L for all symbols listed in <file>\n"
-" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-" --weaken-symbols <file> -W for all symbols listed in <file>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" --prefix-symbols <prefix> Add <prefix> to start of every symbol name\n"
-" --prefix-sections <prefix> Add <prefix> to start of every section name\n"
-" --prefix-alloc-sections <prefix>\n"
-" Add <prefix> to start of every allocatable\n"
-" section name\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-msgstr "-Iyinjiza Intego Iyinjiza IDOSIYE ni in Imiterere Ibisohoka Intego Ibisohoka IDOSIYE in Imiterere Nyabibiri Bya Ibisohoka IDOSIYE Ryari: Iyinjiza ni Intego Byombi Iyinjiza Na Ibisohoka Imiterere Kuri Ibisobanuro NIBA P Amatariki Byahinduwe Kuri i j Icyiciro Izina: Gukoporora Icyiciro Izina: i Kongeramo IDOSIYE Icyiciro Impuza Kuri IDOSIYE Gukuraho... Icyiciro Izina: Icyiciro Izina: Bivuye i Byose Byose IKIMENYETSO Na g Kosora amakosa Byose Ibimenyetso Byose Ibimenyetso OYA ku IKIMENYETSO Izina: OYA Gukoporora IKIMENYETSO Izina: Gumana: IKIMENYETSO Izina: Gukoporora IKIMENYETSO Izina: IKIMENYETSO Izina: IKIMENYETSO Izina: Kuri cy/ byagarajwe Nka a Gumana: IKIMENYETSO Izina: Byose Ibimenyetso Izina: IKIMENYETSO Izina: IKIMENYETSO Izina: Kuri cy/ byagarajwe Nka a Byose Ibimenyetso Kuri cy/ byagarajwe Nka X Kwanga Byose Byose Kwanga i Umubare Gukoporora Inyuma Bya buri Umubare B Bayite Bayite in buri Umwanya Kuzuza hagati Ibyatoranyijwe Na: Kuri Aderesi i Iheruka Icyiciro Hejuru Kuri Aderesi Aderesi Gushyiraho Gutangira Aderesi i Gutangira Aderesi Kuri Aderesi Guhindura>> Gutangira Gutangira Kuri i Gutangira Guhindura>> Amaderesi Kuri Na Gutangira Guhindura>> Icyiciro Aderesi Icyiciro Izina: Na Bya Icyiciro Izina: ku Guhindura>> Icyiciro Izina: i Bya Icyiciro Izina: ku Guhindura>> Icyiciro Izina: i Bya Icyiciro Izina: ku Oya Guhindura>> Iburira Oya Iburira NIBA a Icyiciro OYA Gushyiraho Icyiciro Amabendera Izina: Amabendera Icyiciro Izina: S Indangakintu... Kuri Amabendera Kongeramo Icyiciro Izina: IDOSIYE Icyiciro Izina: Byabonetse in IDOSIYE Kuri Guhindura izina Icyiciro ki/ bishaje Gishya Amabendera Icyiciro ki/ bishaje Kuri Gishya Guhindura>> Nyobora INYUGUTI Ibisohoka Nyobora Inyuguti Gukuraho... Nyobora INYUGUTI Nyobora Inyuguti Bivuye ki/ bishaje Gishya IKIMENYETSO Izina: ki/ bishaje Kuri Gishya IDOSIYE kugirango Byose IKIMENYETSO in IDOSIYE LEN Umubare i Uburebure Bya i Ubwoko Bya Kuri Ibimenyetso IDOSIYE kugirango Byose Ibimenyetso in IDOSIYE Gumana: Ibimenyetso IDOSIYE kugirango Byose Ibimenyetso in IDOSIYE Ibimenyetso IDOSIYE kugirango Byose Ibimenyetso in IDOSIYE Gumana: Ibimenyetso IDOSIYE kugirango Byose Ibimenyetso in IDOSIYE Ibimenyetso IDOSIYE kugirango Byose Ibimenyetso in IDOSIYE Alt ITEGEKONGENGA Umubarendanga ITEGEKONGENGA kugirango Imbanziriza Ibimenyetso Imbanziriza Imbanziriza Kuri Gutangira Bya buri IKIMENYETSO Imbanziriza Ibyatoranyijwe Imbanziriza Imbanziriza Kuri Gutangira Bya buri Icyiciro Imbanziriza Ibyatoranyijwe Imbanziriza Imbanziriza Kuri Gutangira Bya buri Icyiciro v Byose Igikoresho Idosiye V Verisiyo iyi Verisiyo h Ifashayobora iyi Ibisobanuro Igikoresho Imiterere"
-
-#: objcopy.c:493
-#, fuzzy, c-format
-msgid "Usage: %s <option(s)> in-file(s)\n"
-msgstr "Ihitamo S in IDOSIYE S"
-
-#: objcopy.c:494
-#, fuzzy
-msgid " Removes symbols and sections from files\n"
-msgstr "Ibimenyetso Na Ibyatoranyijwe Bivuye"
-
-#: objcopy.c:496
-#, fuzzy
-msgid ""
-" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target=<bfdname> Create an output file in format <bfdname>\n"
-" -F --target=<bfdname> Set both input and output format to <bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -R --remove-section=<name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation information\n"
-" -g -S -d --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol=<name> Do not copy symbol <name>\n"
-" -K --keep-symbol=<name> Only copy symbol <name>\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr "-Iyinjiza Intego Iyinjiza IDOSIYE ni in Imiterere Ibisohoka Intego Ibisohoka IDOSIYE in Imiterere Intego Byombi Iyinjiza Na Ibisohoka Imiterere Kuri P Amatariki Byahinduwe Kuri i Gukuraho... Icyiciro Izina: Icyiciro Izina: Bivuye i S Byose Byose IKIMENYETSO Na g D Kosora amakosa Byose Ibimenyetso Byose Ibimenyetso OYA ku IKIMENYETSO Izina: OYA Gukoporora IKIMENYETSO Izina: Gumana: IKIMENYETSO Izina: Gukoporora IKIMENYETSO Izina: X Kwanga Byose Byose Kwanga v Byose Igikoresho Idosiye V Verisiyo iyi Verisiyo h Ifashayobora iyi Ibisobanuro Igikoresho Imiterere o IDOSIYE Ibisohoka IDOSIYE"
-
-#: objcopy.c:567
-#, fuzzy, c-format
-msgid "unrecognized section flag `%s'"
-msgstr "Icyiciro Ibendera"
-
-#: objcopy.c:568
-#, fuzzy, c-format
-msgid "supported flags: %s"
-msgstr "Amabendera"
-
-#: objcopy.c:645 objcopy.c:2526
-#, c-format
-msgid "cannot stat: %s: %s"
-msgstr ""
-
-#: objcopy.c:652 objcopy.c:2544
-#, fuzzy, c-format
-msgid "cannot open: %s: %s"
-msgstr "Gufungura"
-
-#: objcopy.c:655 objcopy.c:2548
-#, fuzzy, c-format
-msgid "%s: fread failed"
-msgstr "%s:Byanze"
-
-#: objcopy.c:728
-#, fuzzy, c-format
-msgid "Ignoring rubbish found on line %d of %s"
-msgstr "Kwirengagiza Byabonetse ku Umurongo Bya"
-
-#: objcopy.c:979
-#, fuzzy, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr "%s:Bya IKIMENYETSO"
-
-#: objcopy.c:983
-#, fuzzy, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr "%s:ni Intego Bya Birenzeho"
-
-#: objcopy.c:1010
-#, fuzzy, c-format
-msgid "couldn't open symbol redefinition file %s (error: %s)"
-msgstr "Gufungura IKIMENYETSO IDOSIYE Ikosa"
-
-#: objcopy.c:1088
-#, fuzzy, c-format
-msgid "%s: garbage at end of line %d"
-msgstr "%s:ku Impera Bya Umurongo"
-
-#: objcopy.c:1091
-#, fuzzy, c-format
-msgid "%s: missing new symbol name at line %d"
-msgstr "%s:Ibuze Gishya IKIMENYETSO Izina: ku Umurongo"
-
-#: objcopy.c:1101
-#, fuzzy, c-format
-msgid "%s: premature end of file at line %d"
-msgstr "%s:Impera Bya IDOSIYE ku Umurongo"
-
-#: objcopy.c:1147
-#, fuzzy
-msgid "Unable to change endianness of input file(s)"
-msgstr "Kuri Guhindura>> Bya Iyinjiza IDOSIYE S"
-
-#: objcopy.c:1155
-#, fuzzy, c-format
-msgid "copy from %s(%s) to %s(%s)\n"
-msgstr "Gukoporora Bivuye Kuri"
-
-#: objcopy.c:1182
-#, fuzzy, c-format
-msgid "Warning: Output file cannot represent architecture %s"
-msgstr "IDOSIYE"
-
-#: objcopy.c:1211
-#, fuzzy, c-format
-msgid "can't create section `%s': %s"
-msgstr "Kurema Icyiciro"
-
-#: objcopy.c:1304
-#, fuzzy, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr "Kuzuza Umwanya Nyuma"
-
-#: objcopy.c:1329
-#, fuzzy, c-format
-msgid "Can't add padding to %s: %s"
-msgstr "Kongeramo Wuzuza: Kuri"
-
-#: objcopy.c:1485
-#, fuzzy, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr "%s:Ikosa By'umwihariko Ibyatanzwe"
-
-#: objcopy.c:1498
-#, fuzzy
-msgid "unknown alternate machine code, ignored"
-msgstr "Kitazwi ITEGEKONGENGA"
-
-#: objcopy.c:1531 objcopy.c:1561
-#, fuzzy, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr "kugirango Ikosa"
-
-#: objcopy.c:1749
-#, fuzzy, c-format
-msgid "Multiple renames of section %s"
-msgstr "Bya Icyiciro"
-
-#: objcopy.c:1840
-msgid "making"
-msgstr ""
-
-# sc/source\ui\src\scfuncs.src:RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_CONFIDENCE.6.text
-#: objcopy.c:1849
-msgid "size"
-msgstr "ingano"
-
-#: objcopy.c:1863
-msgid "vma"
-msgstr ""
-
-#: objcopy.c:1888
-#, fuzzy
-msgid "alignment"
-msgstr "Itunganya"
-
-# svx/source\gallery2\galtheme.src:RID_GALLERYSTR_THEME_FLAGS.text
-#: objcopy.c:1896
-#, fuzzy
-msgid "flags"
-msgstr "Amabendera"
-
-# sw/source\ui\envelp\label.src:TP_PRIVATE_DATA.FL_DATA.text
-#: objcopy.c:1918
-#, fuzzy
-msgid "private data"
-msgstr "Ibyashyinguwe mwihariko"
-
-#: objcopy.c:1926
-#, fuzzy, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr "%s:Icyiciro Ikosa in"
-
-#: objcopy.c:2199
-#, fuzzy, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr "%s:Kurema Icyiciro"
-
-#: objcopy.c:2214
-#, fuzzy, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr "%s:Gushyiraho Icyiciro Ibigize"
-
-#: objcopy.c:2223
-#, fuzzy, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr "%s:Kuri Kwandika Ibisobanuro kugirango"
-
-#: objcopy.c:2346
-#, c-format
-msgid "%s: cannot stat: %s"
-msgstr ""
-
-#: objcopy.c:2400
-#, fuzzy
-msgid "byte number must be non-negative"
-msgstr "Bayite Umubare"
-
-#: objcopy.c:2410
-msgid "interleave must be positive"
-msgstr ""
-
-#: objcopy.c:2430 objcopy.c:2438
-#, fuzzy, c-format
-msgid "%s both copied and removed"
-msgstr "%sByombi Na Cyavanyweho"
-
-#: objcopy.c:2523 objcopy.c:2593 objcopy.c:2693 objcopy.c:2724 objcopy.c:2748
-#: objcopy.c:2752 objcopy.c:2772
-#, fuzzy, c-format
-msgid "bad format for %s"
-msgstr "Imiterere kugirango"
-
-#: objcopy.c:2662
-#, fuzzy, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "Umwanya Kuzuza Bivuye Kuri"
-
-#: objcopy.c:2818
-#, fuzzy
-msgid "alternate machine code index must be positive"
-msgstr "ITEGEKONGENGA Umubarendanga"
-
-#: objcopy.c:2856
-#, fuzzy
-msgid "byte number must be less than interleave"
-msgstr "Bayite Umubare Birutwa"
-
-#: objcopy.c:2883
-#, fuzzy, c-format
-msgid "architecture %s unknown"
-msgstr "Kitazwi"
-
-#: objcopy.c:2887
-#, fuzzy
-msgid "Warning: input target 'binary' required for binary architecture parameter."
-msgstr "Iyinjiza Intego Bya ngombwa kugirango Nyabibiri"
-
-#: objcopy.c:2888
-#, c-format
-msgid " Argument %s ignored"
-msgstr ""
-
-#: objcopy.c:2894
-#, c-format
-msgid "Cannot stat: %s: %s"
-msgstr ""
-
-#: objcopy.c:2934 objcopy.c:2948
-#, fuzzy, c-format
-msgid "%s %s%c0x%s never used"
-msgstr "%s%s%c0x%sNta narimwe"
-
-#: objdump.c:197
-#, fuzzy, c-format
-msgid "Usage: %s <option(s)> <file(s)>\n"
-msgstr "Ihitamo S IDOSIYE S"
-
-#: objdump.c:198
-#, fuzzy
-msgid " Display information from object <file(s)>.\n"
-msgstr "Ibisobanuro Bivuye Igikoresho IDOSIYE S"
-
-#: objdump.c:199
-#, fuzzy
-msgid " At least one of the following switches must be given:\n"
-msgstr "Bya i"
-
-#: objdump.c:200
-#, fuzzy
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" -v, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr "-a Imitwe Umutwempangano F IDOSIYE Imitwe i Ibigize Bya i IDOSIYE P By'umwihariko Imitwe Igikoresho Imiterere IDOSIYE Umutwempangano h Icyiciro Imitwe i Ibigize Bya i Icyiciro X Byose Imitwe i Ibigize Bya Byose D Gutandukanya Ibigize Bya Gutandukanya Byose Ibigize Bya Byose Inkomoko Inkomoko ITEGEKONGENGA Na: S Ibigize i Ibigize Bya Byose Ibyatoranyijwe g Kosora amakosa Ibisobanuro in Igikoresho in Ifishi Ibisobanuro in i T i Ibigize Bya i IKIMENYETSO imbonerahamwe# S i Ibigize Bya i IKIMENYETSO R i Ibyinjijwe in i i Ibyinjijwe in i v Verisiyo iyi Verisiyo i Ibisobanuro Igikoresho Imiterere Na H Ifashayobora iyi"
-
-#: objdump.c:222
-#, fuzzy
-msgid ""
-"\n"
-" The following switches are optional:\n"
-msgstr "Bitari ngombwa"
-
-#: objdump.c:223
-#, fuzzy
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', `gnu',\n"
-" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whose address is >= ADDR\n"
-" --stop-address=ADDR Only process data whose address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-"\n"
-msgstr "-B Intego i Intego Igikoresho Imiterere Nka M i Intego Nka j Icyiciro Kugaragaza Ibisobanuro kugirango Icyiciro Amahitamo Umwandiko ku Kuri i Imiterere Ryari: Imiterere Ryari: IDOSIYE Gutangira Imvugiro Imvugiro Bivuye Gutangira Bya IDOSIYE Na: L Umurongo Imibare Umurongo Imibare Na in C IKIMENYETSO NIBA Cyangwa W Ibisohoka kugirango Birenzeho Z Gutandukanya OYA Bya Ryari: Gutangira Aderesi Ibyatanzwe bya Aderesi ni Guhagarara Aderesi Ibyatanzwe bya Aderesi ni Imbanziriza Amaderesi Byuzuye Aderesi Oya Garagaza Kuri Byose Icyiciro"
-
-# #-#-#-#-# sw.pot (PACKAGE VERSION) #-#-#-#-#
-# sw/source\ui\inc\swmn.hrc:MN_OBJECTMENU_TEXT.FN_EDIT_REGION.text
-# #-#-#-#-# sw.pot (PACKAGE VERSION) #-#-#-#-#
-# sw/source\ui\inc\swmn.hrc:MN_OBJECTMENU_TABLE.FN_EDIT_REGION.text
-#: objdump.c:391
-#, fuzzy
-msgid "Sections:\n"
-msgstr "Ibyiciro..."
-
-#: objdump.c:394 objdump.c:398
-#, fuzzy
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idosiye Bidakora"
-
-#: objdump.c:400
-#, fuzzy
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idosiye Bidakora"
-
-# svx/source\gallery2\galtheme.src:RID_GALLERYSTR_THEME_FLAGS.text
-#: objdump.c:404
-#, fuzzy
-msgid " Flags"
-msgstr "Amabendera"
-
-#: objdump.c:406
-msgid " Pg"
-msgstr ""
-
-#: objdump.c:451
-#, fuzzy, c-format
-msgid "%s: not a dynamic object"
-msgstr "%s:OYA a Igikoresho"
-
-#: objdump.c:1144
-#, fuzzy
-msgid "Out of virtual memory"
-msgstr "Bya Kitaboneka Ububiko"
-
-#: objdump.c:1574
-#, fuzzy, c-format
-msgid "Can't use supplied machine %s"
-msgstr "Gukoresha"
-
-#: objdump.c:1592
-#, fuzzy, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr "Gutandukanya kugirango"
-
-#: objdump.c:1682
-#, fuzzy, c-format
-msgid "Disassembly of section %s:\n"
-msgstr "Bya Icyiciro"
-
-#: objdump.c:1847
-#, fuzzy, c-format
-msgid ""
-"No %s section present\n"
-"\n"
-msgstr "Icyiciro"
-
-#: objdump.c:1854
-#, fuzzy, c-format
-msgid "%s has no %s section"
-msgstr "%sOya Icyiciro"
-
-#: objdump.c:1868
-#, fuzzy, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr "Icyiciro Bya Byanze"
-
-#: objdump.c:1880
-#, fuzzy, c-format
-msgid "Reading %s section of %s failed: %s\n"
-msgstr "Icyiciro Bya Byanze"
-
-#: objdump.c:1923
-#, fuzzy, c-format
-msgid ""
-"Contents of %s section:\n"
-"\n"
-msgstr "Bya Icyiciro"
-
-#: objdump.c:2021
-#, c-format
-msgid "architecture: %s, "
-msgstr ""
-
-#: objdump.c:2024
-#, fuzzy, c-format
-msgid "flags 0x%08x:\n"
-msgstr "Amabendera"
-
-#: objdump.c:2038
-#, fuzzy
-msgid ""
-"\n"
-"start address 0x"
-msgstr "Gutangira Aderesi"
-
-#: objdump.c:2071
-#, fuzzy, c-format
-msgid ""
-"\n"
-"%s: file format %s\n"
-msgstr "%s:IDOSIYE Imiterere"
-
-#: objdump.c:2111
-#, fuzzy, c-format
-msgid "%s: printing debugging information failed"
-msgstr "%s:Icapa... Ibisobanuro Byanze"
-
-#: objdump.c:2190
-#, c-format
-msgid "In archive %s:\n"
-msgstr ""
-
-#: objdump.c:2249
-#, fuzzy, c-format
-msgid "Contents of section %s:\n"
-msgstr "Bya Icyiciro"
-
-#: objdump.c:2369
-#, fuzzy
-msgid "no symbols\n"
-msgstr "Oya"
-
-#: objdump.c:2718
-#, fuzzy
-msgid "unrecognized -E option"
-msgstr "E Ihitamo"
-
-#: objdump.c:2729
-#, fuzzy, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr "Ubwoko"
-
-#: rdcoff.c:206
-#, fuzzy, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr "Ubwoko ITEGEKONGENGA"
-
-#: rdcoff.c:424 rdcoff.c:532 rdcoff.c:731
-#, fuzzy, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr "Byanze"
-
-#: rdcoff.c:440 rdcoff.c:751
-#, fuzzy, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr "Byanze"
-
-#: rdcoff.c:818
-#, fuzzy, c-format
-msgid "%ld: .bf without preceding function"
-msgstr ""
-"%ld:.Project- Id- Version: basctl\n"
-"POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n"
-"PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n"
-"Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n"
-"Content- Type: text/ plain; charset= UTF- 8\n"
-"Content- Transfer- Encoding: 8bit\n"
-"X- Generator: KBabel 1. 0\n"
-"."
-
-#: rdcoff.c:868
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr ""
-
-#: rddbg.c:91
-#, fuzzy, c-format
-msgid "%s: no recognized debugging information"
-msgstr "%s:Oya Ibisobanuro"
-
-#: rddbg.c:415
-#, fuzzy
-msgid "Last stabs entries before error:\n"
-msgstr "Ibyinjijwe Mbere Ikosa"
-
-# sw/source\ui\utlui\initui.src:RID_SW_SHELLRES.STR_CALC_DEFAULT.text
-#: readelf.c:455
-#, fuzzy, c-format
-msgid "%s: Error: "
-msgstr "%s:Ikosa**"
-
-#: readelf.c:466
-#, fuzzy, c-format
-msgid "%s: Warning: "
-msgstr "%s:Iburira"
-
-#: readelf.c:488
-#, fuzzy, c-format
-msgid "Unable to seek to 0x%x for %s\n"
-msgstr "Kuri Kuri kugirango"
-
-#: readelf.c:499
-#, fuzzy, c-format
-msgid "Out of memory allocating 0x%x bytes for %s\n"
-msgstr "Bya Ububiko Bayite kugirango"
-
-#: readelf.c:507
-#, fuzzy, c-format
-msgid "Unable to read in 0x%x bytes of %s\n"
-msgstr "Kuri Gusoma in Bayite Bya"
-
-#: readelf.c:560 readelf.c:614 readelf.c:798 readelf.c:833
-#, fuzzy, c-format
-msgid "Unhandled data length: %d\n"
-msgstr "Ibyatanzwe Uburebure"
-
-#: readelf.c:924
-#, fuzzy
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr "Ibyerekeye ku iyi"
-
-#: readelf.c:946 readelf.c:975 readelf.c:1021 readelf.c:1049
-msgid "relocs"
-msgstr ""
-
-#: readelf.c:957 readelf.c:986 readelf.c:1031 readelf.c:1059
-#, fuzzy
-msgid "out of memory parsing relocs"
-msgstr "Inyuma Bya Ububiko"
-
-#: readelf.c:1112
-msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
-msgstr ""
-
-#: readelf.c:1114
-msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
-msgstr ""
-
-#: readelf.c:1119
-msgid " Offset Info Type Sym. Value Symbol's Name\n"
-msgstr ""
-
-#: readelf.c:1121
-msgid " Offset Info Type Sym.Value Sym. Name\n"
-msgstr ""
-
-#: readelf.c:1129
-msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
-msgstr ""
-
-#: readelf.c:1131
-msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
-msgstr ""
-
-#: readelf.c:1136
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr ""
-
-#: readelf.c:1138
-msgid " Offset Info Type Sym. Value Sym. Name\n"
-msgstr ""
-
-#: readelf.c:1414 readelf.c:1416 readelf.c:1492 readelf.c:1494 readelf.c:1503
-#: readelf.c:1505
-#, c-format
-msgid "unrecognized: %-7lx"
-msgstr ""
-
-#: readelf.c:1466
-#, fuzzy, c-format
-msgid "<string table index %3ld>"
-msgstr "<Ikurikiranyanyuguti imbonerahamwe# Umubarendanga"
-
-#: readelf.c:1743
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr ""
-
-#: readelf.c:1762
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr ""
-
-#: readelf.c:1765 readelf.c:2417
-#, fuzzy, c-format
-msgid "<unknown>: %lx"
-msgstr "<Itazwi>"
-
-#: readelf.c:1779
-msgid "NONE (None)"
-msgstr ""
-
-#: readelf.c:1780
-#, fuzzy
-msgid "REL (Relocatable file)"
-msgstr "IDOSIYE"
-
-#: readelf.c:1781
-#, fuzzy
-msgid "EXEC (Executable file)"
-msgstr "IDOSIYE"
-
-#: readelf.c:1782
-#, fuzzy
-msgid "DYN (Shared object file)"
-msgstr "Igikoresho IDOSIYE"
-
-#: readelf.c:1783
-#, fuzzy
-msgid "CORE (Core file)"
-msgstr "IDOSIYE"
-
-#: readelf.c:1787
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr ""
-
-#: readelf.c:1789
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr ""
-
-#: readelf.c:1791 readelf.c:1898 readelf.c:2574
-#, fuzzy, c-format
-msgid "<unknown>: %x"
-msgstr "<Itazwi>"
-
-# goodies/source\filter.vcl\eps\dlgeps.src:DLG_EXPORT_EPS.RB_COMPRESSION_NONE.text
-#: readelf.c:1804
-msgid "None"
-msgstr "Nta na kimwe"
-
-#: readelf.c:2616
-#, fuzzy
-msgid "Usage: readelf <option(s)> elf-file(s)\n"
-msgstr "Ihitamo S IDOSIYE S"
-
-#: readelf.c:2617
-#, fuzzy
-msgid " Display information about the contents of ELF format files\n"
-msgstr "Ibisobanuro Ibyerekeye i Ibigize Bya Imiterere"
-
-#: readelf.c:2618
-#, fuzzy
-msgid ""
-" Options are:\n"
-" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Display the ELF file header\n"
-" -l --program-headers Display the program headers\n"
-" --segments An alias for --program-headers\n"
-" -S --section-headers Display the sections' header\n"
-" --sections An alias for --section-headers\n"
-" -e --headers Equivalent to: -h -l -S\n"
-" -s --syms Display the symbol table\n"
-" --symbols An alias for --syms\n"
-" -n --notes Display the core notes (if present)\n"
-" -r --relocs Display the relocations (if present)\n"
-" -u --unwind Display the unwind info (if present)\n"
-" -d --dynamic Display the dynamic segment (if present)\n"
-" -V --version-info Display the version sections (if present)\n"
-" -A --arch-specific Display architecture specific information (if any).\n"
-" -D --use-dynamic Use the dynamic section info when displaying symbols\n"
-" -x --hex-dump=<number> Dump the contents of section <number>\n"
-" -w[liaprmfFso] or\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]\n"
-" Display the contents of DWARF2 debug sections\n"
-msgstr "a Byose Kuri h L S R D V A h IDOSIYE Umutwempangano i IDOSIYE L Porogaramu Imitwe i Porogaramu Ingeri Irihimbano kugirango Porogaramu Icyiciro Imitwe i Ibyatoranyijwe Irihimbano kugirango Icyiciro E Imitwe Kuri h L S i IKIMENYETSO Ibimenyetso Irihimbano kugirango N Ibisobanuro i Ibisobanuro NIBA R i NIBA u i Ibisobanuro NIBA D i NIBA V Verisiyo Ibisobanuro i Verisiyo Ibyatoranyijwe NIBA A Ibisobanuro NIBA Gukoresha i Icyiciro Ibisobanuro Ryari: X Umubare i Ibigize Bya Icyiciro Umubare W Kosora amakosa Umurongo Ibisobanuro Ibice Makoro Amakadiri i Ibigize Bya Kosora amakosa"
-
-#: readelf.c:2640
-#, fuzzy
-msgid ""
-" -i --instruction-dump=<number>\n"
-" Disassemble the contents of section <number>\n"
-msgstr "-i Umubare i Ibigize Bya Icyiciro Umubare"
-
-#: readelf.c:2644
-#, fuzzy
-msgid ""
-" -I --histogram Display histogram of bucket list lengths\n"
-" -W --wide Allow output width to exceed 80 characters\n"
-" -H --help Display this information\n"
-" -v --version Display the version number of readelf\n"
-msgstr "-Bya Urutonde Ibisohoka Ubugari Kuri H Ifashayobora iyi v Verisiyo i Verisiyo Umubare Bya"
-
-#: readelf.c:2666 readelf.c:10765
-#, fuzzy
-msgid "Out of memory allocating dump request table."
-msgstr "Bya Ububiko Kubaza... imbonerahamwe#"
-
-#: readelf.c:2830 readelf.c:2906
-#, fuzzy, c-format
-msgid "Unrecognized debug option '%s'\n"
-msgstr "Kosora amakosa Ihitamo"
-
-#: readelf.c:2940
-#, fuzzy, c-format
-msgid "Invalid option '-%c'\n"
-msgstr "Ihitamo"
-
-#: readelf.c:2953
-#, fuzzy
-msgid "Nothing to do.\n"
-msgstr "Kuri"
-
-# svx/source\items\svxitems.src:RID_SVXITEMS_EMPHASIS_NONE_STYLE.text
-#: readelf.c:2966 readelf.c:2983 readelf.c:5366
-msgid "none"
-msgstr "ntacyo"
-
-#: readelf.c:2970 readelf.c:2987 readelf.c:3018
-#, fuzzy, c-format
-msgid "<unknown: %x>"
-msgstr "<Itazwi>"
-
-#: readelf.c:2984
-msgid "2's complement, little endian"
-msgstr ""
-
-#: readelf.c:2985
-msgid "2's complement, big endian"
-msgstr ""
-
-#: readelf.c:3015
-msgid "Standalone App"
-msgstr ""
-
-#: readelf.c:3034
-#, fuzzy
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr "IDOSIYE i Bayite ku i"
-
-#: readelf.c:3042
-msgid "ELF Header:\n"
-msgstr ""
-
-#: readelf.c:3043
-msgid " Magic: "
-msgstr ""
-
-# officecfg/registry\schema\org\openoffice\Office\Java.xcs:....VirtualMachine.UserClassPath.text
-#: readelf.c:3047
-#, fuzzy, c-format
-msgid " Class: %s\n"
-msgstr "ishuri"
-
-#: readelf.c:3049
-#, fuzzy, c-format
-msgid " Data: %s\n"
-msgstr "Ibyatanzwe"
-
-# goodies/source\filter.vcl\eps\dlgeps.src:DLG_EXPORT_EPS.GRP_VERSION.text
-#: readelf.c:3051
-#, fuzzy, c-format
-msgid " Version: %d %s\n"
-msgstr "Verisiyo"
-
-#: readelf.c:3058
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr ""
-
-#: readelf.c:3060
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr ""
-
-# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
-# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
-#: readelf.c:3062
-#, fuzzy, c-format
-msgid " Type: %s\n"
-msgstr "Ubwoko"
-
-#: readelf.c:3064
-#, c-format
-msgid " Machine: %s\n"
-msgstr ""
-
-#: readelf.c:3066
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr ""
-
-#: readelf.c:3069
-#, fuzzy
-msgid " Entry point address: "
-msgstr "Akadomo Aderesi"
-
-#: readelf.c:3071
-#, fuzzy
-msgid ""
-"\n"
-" Start of program headers: "
-msgstr "Gutangira Bya Porogaramu Imitwe"
-
-#: readelf.c:3073
-#, fuzzy
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr "(Bayite IDOSIYE Gutangira Bya Icyiciro Imitwe"
-
-#: readelf.c:3075
-#, fuzzy
-msgid " (bytes into file)\n"
-msgstr "(Bayite IDOSIYE"
-
-#: readelf.c:3077
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr ""
-
-#: readelf.c:3080
-#, fuzzy, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr "Bya iyi Umutwempangano Bayite"
-
-#: readelf.c:3082
-#, fuzzy, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr "Bya Porogaramu Imitwe Bayite"
-
-#: readelf.c:3084
-#, fuzzy, c-format
-msgid " Number of program headers: %ld\n"
-msgstr "Bya Porogaramu Imitwe"
-
-#: readelf.c:3086
-#, fuzzy, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr "Bya Icyiciro Imitwe Bayite"
-
-#: readelf.c:3088
-#, fuzzy, c-format
-msgid " Number of section headers: %ld"
-msgstr "Bya Icyiciro Imitwe"
-
-#: readelf.c:3093
-#, fuzzy, c-format
-msgid " Section header string table index: %ld"
-msgstr "Umutwempangano Ikurikiranyanyuguti imbonerahamwe# Umubarendanga"
-
-#: readelf.c:3127 readelf.c:3163
-#, fuzzy
-msgid "program headers"
-msgstr "Porogaramu Imitwe"
-
-#: readelf.c:3203 readelf.c:3480 readelf.c:3526 readelf.c:3589 readelf.c:3656
-#: readelf.c:4715 readelf.c:4758 readelf.c:4948 readelf.c:5917 readelf.c:5931
-#: readelf.c:10411
-#, fuzzy
-msgid "Out of memory\n"
-msgstr "Bya"
-
-#: readelf.c:3231
-#, fuzzy
-msgid ""
-"\n"
-"There are no program headers in this file.\n"
-msgstr "Oya Porogaramu Imitwe in iyi IDOSIYE"
-
-#: readelf.c:3237
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Elf file type is %s\n"
-msgstr "IDOSIYE Ubwoko ni"
-
-#: readelf.c:3238
-#, fuzzy
-msgid "Entry point "
-msgstr "Akadomo"
-
-#: readelf.c:3240
-#, fuzzy, c-format
-msgid ""
-"\n"
-"There are %d program headers, starting at offset "
-msgstr "Porogaramu Imitwe ku Nta- boneza"
-
-#: readelf.c:3252 readelf.c:3254
-msgid ""
-"\n"
-"Program Headers:\n"
-msgstr ""
-
-#: readelf.c:3258
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr ""
-
-#: readelf.c:3261
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr ""
-
-#: readelf.c:3265
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr ""
-
-#: readelf.c:3267
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr ""
-
-#: readelf.c:3360
-#, fuzzy
-msgid "more than one dynamic segment\n"
-msgstr "Birenzeho"
-
-#: readelf.c:3368
-#, fuzzy
-msgid "Unable to find program interpreter name\n"
-msgstr "Kuri Gushaka Porogaramu"
-
-#: readelf.c:3375
-#, fuzzy, c-format
-msgid ""
-"\n"
-" [Requesting program interpreter: %s]"
-msgstr "[Porogaramu"
-
-#: readelf.c:3387
-#, fuzzy
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-msgstr "Kuri Igereranya"
-
-#: readelf.c:3388
-msgid " Segment Sections...\n"
-msgstr ""
-
-#: readelf.c:3437
-#, fuzzy
-msgid "Cannot interpret virtual addresses without program headers.\n"
-msgstr "Kitaboneka Amaderesi Porogaramu Imitwe"
-
-#: readelf.c:3453
-#, fuzzy, c-format
-msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
-msgstr "Aderesi OYA in"
-
-#: readelf.c:3471 readelf.c:3517
-#, fuzzy
-msgid "section headers"
-msgstr "Icyiciro Imitwe"
-
-# sch/source\ui\app\strings.src:STR_SYMBOL.text
-#: readelf.c:3565 readelf.c:3632
-#, fuzzy
-msgid "symbols"
-msgstr "Ibimenyetso"
-
-#: readelf.c:3576 readelf.c:3643
-msgid "symtab shndx"
-msgstr ""
-
-#: readelf.c:3745
-#, fuzzy
-msgid ""
-"\n"
-"There are no sections in this file.\n"
-msgstr "Oya Ibyatoranyijwe in iyi IDOSIYE"
-
-#: readelf.c:3751
-#, fuzzy, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr "Icyiciro Imitwe ku Nta- boneza"
-
-#: readelf.c:3768 readelf.c:4098 readelf.c:4433 readelf.c:6070
-#, fuzzy
-msgid "string table"
-msgstr "Ikurikiranyanyuguti imbonerahamwe#"
-
-#: readelf.c:3793
-#, fuzzy
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr "Idosiye Kirimo Igikubo IKIMENYETSO"
-
-#: readelf.c:3805
-#, fuzzy
-msgid "File contains multiple dynamic string tables\n"
-msgstr "Idosiye Kirimo Igikubo Ikurikiranyanyuguti"
-
-#: readelf.c:3811
-#, fuzzy
-msgid "dynamic strings"
-msgstr "Ikurikiranyanyuguti"
-
-#: readelf.c:3817
-#, fuzzy
-msgid "File contains multiple symtab shndx tables\n"
-msgstr "Idosiye Kirimo Igikubo"
-
-#: readelf.c:3855
-msgid ""
-"\n"
-"Section Headers:\n"
-msgstr ""
-
-#: readelf.c:3857
-msgid ""
-"\n"
-"Section Header:\n"
-msgstr ""
-
-#: readelf.c:3861
-msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-msgstr ""
-
-#: readelf.c:3864
-msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
-msgstr ""
-
-#: readelf.c:3867
-msgid " [Nr] Name Type Address Offset\n"
-msgstr ""
-
-#: readelf.c:3868
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr ""
-
-#: readelf.c:3963
-#, fuzzy
-msgid ""
-"Key to Flags:\n"
-" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-" I (info), L (link order), G (group), x (unknown)\n"
-" O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr "Kuri Kwandika A Gukora Gukomatanya Ikurikiranyanyuguti Ibisobanuro Ihuza Itondekanya Itsinda X Kitazwi Birenga Inonosora Bya ngombwa o P"
-
-#: readelf.c:4031
-#, fuzzy, c-format
-msgid ""
-"\n"
-"'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr "'%s'Icyiciro ku Nta- boneza Kirimo Bayite"
-
-#: readelf.c:4043
-#, fuzzy
-msgid ""
-"\n"
-"There are no dynamic relocations in this file.\n"
-msgstr "Oya in iyi IDOSIYE"
-
-#: readelf.c:4070
-#, fuzzy
-msgid ""
-"\n"
-"Relocation section "
-msgstr "Icyiciro"
-
-# desktop/source\app\ssodlg.src:DLG_SSOLOGIN.text
-#: readelf.c:4075 readelf.c:4496 readelf.c:4510
-#, fuzzy, c-format
-msgid "'%s'"
-msgstr "'%s'"
-
-#: readelf.c:4077 readelf.c:4512
-#, fuzzy, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr "ku Nta- boneza Kirimo Ibyinjijwe"
-
-#: readelf.c:4115
-#, fuzzy
-msgid ""
-"\n"
-"There are no relocations in this file.\n"
-msgstr "Oya in iyi IDOSIYE"
-
-#: readelf.c:4299
-#, fuzzy
-msgid "unwind table"
-msgstr "imbonerahamwe#"
-
-#: readelf.c:4350 readelf.c:4362 readelf.c:8499 readelf.c:8511
-#, fuzzy, c-format
-msgid "Skipping unexpected symbol type %u\n"
-msgstr "IKIMENYETSO Ubwoko"
-
-#: readelf.c:4370
-#, fuzzy, c-format
-msgid "Skipping unexpected relocation type %s\n"
-msgstr "Ubwoko"
-
-#: readelf.c:4415 readelf.c:4440
-#, fuzzy
-msgid ""
-"\n"
-"There are no unwind sections in this file.\n"
-msgstr "Oya Ibyatoranyijwe in iyi IDOSIYE"
-
-#: readelf.c:4491
-#, fuzzy
-msgid ""
-"\n"
-"Could not find unwind info section for "
-msgstr "OYA Gushaka Ibisobanuro Icyiciro kugirango"
-
-#: readelf.c:4503
-#, fuzzy
-msgid "unwind info"
-msgstr "Ibisobanuro"
-
-#: readelf.c:4505
-#, fuzzy
-msgid ""
-"\n"
-"Unwind section "
-msgstr "Icyiciro"
-
-#: readelf.c:4699 readelf.c:4742
-msgid "dynamic segment"
-msgstr ""
-
-#: readelf.c:4820
-#, fuzzy
-msgid ""
-"\n"
-"There is no dynamic segment in this file.\n"
-msgstr "ni Oya in iyi IDOSIYE"
-
-#: readelf.c:4854
-#, fuzzy
-msgid "Unable to seek to end of file!"
-msgstr "Kuri Kuri Impera Bya IDOSIYE"
-
-#: readelf.c:4865
-#, fuzzy
-msgid "Unable to determine the number of symbols to load\n"
-msgstr "Kuri i Umubare Bya Ibimenyetso Kuri"
-
-#: readelf.c:4895
-#, fuzzy
-msgid "Unable to seek to end of file\n"
-msgstr "Kuri Kuri Impera Bya"
-
-#: readelf.c:4901
-#, fuzzy
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr "Kuri i Uburebure Bya i Ikurikiranyanyuguti"
-
-#: readelf.c:4906
-#, fuzzy
-msgid "dynamic string table"
-msgstr "Ikurikiranyanyuguti imbonerahamwe#"
-
-#: readelf.c:4941
-#, fuzzy
-msgid "symbol information"
-msgstr "IKIMENYETSO Ibisobanuro"
-
-#: readelf.c:4965
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Dynamic segment at offset 0x%lx contains %ld entries:\n"
-msgstr "ku Nta- boneza Kirimo Ibyinjijwe"
-
-#: readelf.c:4968
-msgid " Tag Type Name/Value\n"
-msgstr ""
-
-#: readelf.c:5004
-#, fuzzy
-msgid "Auxiliary library"
-msgstr "Isomero"
-
-#: readelf.c:5008
-#, fuzzy
-msgid "Filter library"
-msgstr "Isomero"
-
-# sfx2/source\explorer\explorer.src:STR_SFX_CFGFILE.text
-#: readelf.c:5012
-msgid "Configuration file"
-msgstr "Idosiye y'iboneza"
-
-#: readelf.c:5016
-#, fuzzy
-msgid "Dependency audit library"
-msgstr "Isomero"
-
-#: readelf.c:5020
-#, fuzzy
-msgid "Audit library"
-msgstr "Isomero"
-
-# svx/source\gallery2\galtheme.src:RID_GALLERYSTR_THEME_FLAGS.text
-#: readelf.c:5038 readelf.c:5066 readelf.c:5094
-#, fuzzy
-msgid "Flags:"
-msgstr "Amabendera"
-
-#: readelf.c:5041 readelf.c:5069 readelf.c:5096
-msgid " None\n"
-msgstr ""
-
-#: readelf.c:5217
-#, fuzzy, c-format
-msgid "Shared library: [%s]"
-msgstr "Isomero"
-
-#: readelf.c:5220
-#, fuzzy
-msgid " program interpreter"
-msgstr "Porogaramu"
-
-#: readelf.c:5224
-#, c-format
-msgid "Library soname: [%s]"
-msgstr ""
-
-#: readelf.c:5228
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr ""
-
-#: readelf.c:5232
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr ""
-
-#: readelf.c:5296
-#, fuzzy, c-format
-msgid "Not needed object: [%s]\n"
-msgstr "Igikoresho"
-
-#: readelf.c:5412
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Version definition section '%s' contains %ld entries:\n"
-msgstr "Insobanuro Icyiciro Kirimo Ibyinjijwe"
-
-#: readelf.c:5415
-msgid " Addr: 0x"
-msgstr ""
-
-#: readelf.c:5417 readelf.c:5612
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr ""
-
-#: readelf.c:5424
-#, fuzzy
-msgid "version definition section"
-msgstr "Verisiyo Insobanuro Icyiciro"
-
-#: readelf.c:5450
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr ""
-
-#: readelf.c:5453
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr ""
-
-# basctl/source\basicide\moduldlg.src:RID_DLG_NEWLIB.RID_FT_NEWLIB.text
-#: readelf.c:5464
-#, fuzzy, c-format
-msgid "Name: %s\n"
-msgstr "Izina:"
-
-#: readelf.c:5466
-#, fuzzy, c-format
-msgid "Name index: %ld\n"
-msgstr "Umubarendanga"
-
-#: readelf.c:5481
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr ""
-
-#: readelf.c:5484
-#, fuzzy, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr "%#06x:Izina: Umubarendanga"
-
-#: readelf.c:5503
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Version needs section '%s' contains %ld entries:\n"
-msgstr "Icyiciro Kirimo Ibyinjijwe"
-
-#: readelf.c:5506
-msgid " Addr: 0x"
-msgstr ""
-
-#: readelf.c:5508
-#, fuzzy, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr "Kuri Icyiciro"
-
-#: readelf.c:5514
-#, fuzzy
-msgid "version need section"
-msgstr "Verisiyo Icyiciro"
-
-#: readelf.c:5536
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr ""
-
-# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_HFCMD_FILE.text
-#: readelf.c:5539
-#, fuzzy, c-format
-msgid " File: %s"
-msgstr "IDOSIYE"
-
-# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_HFCMD_FILE.text
-#: readelf.c:5541
-#, fuzzy, c-format
-msgid " File: %lx"
-msgstr "IDOSIYE"
-
-#: readelf.c:5543
-#, c-format
-msgid " Cnt: %d\n"
-msgstr ""
-
-# sc/source\core\src\compiler.src:RID_SC_FUNCTION_NAMES.SC_OPCODE_NO_NAME.text
-#: readelf.c:5561
-#, fuzzy, c-format
-msgid " %#06x: Name: %s"
-msgstr "%#06x:IZINA!"
-
-#: readelf.c:5564
-#, fuzzy, c-format
-msgid " %#06x: Name index: %lx"
-msgstr "%#06x:Umubarendanga"
-
-#: readelf.c:5567
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr ""
-
-#: readelf.c:5603
-#, fuzzy
-msgid "version string table"
-msgstr "Verisiyo Ikurikiranyanyuguti imbonerahamwe#"
-
-#: readelf.c:5607
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Version symbols section '%s' contains %d entries:\n"
-msgstr "Ibimenyetso Icyiciro Kirimo Ibyinjijwe"
-
-#: readelf.c:5610
-#, fuzzy
-msgid " Addr: "
-msgstr "Aderesi"
-
-#: readelf.c:5622
-#, fuzzy
-msgid "version symbol data"
-msgstr "Verisiyo IKIMENYETSO Ibyatanzwe"
-
-#: readelf.c:5649
-#, fuzzy
-msgid " 0 (*local*) "
-msgstr "0"
-
-#: readelf.c:5653
-#, fuzzy
-msgid " 1 (*global*) "
-msgstr "1."
-
-#: readelf.c:5689 readelf.c:6129
-#, fuzzy
-msgid "version need"
-msgstr "Verisiyo"
-
-#: readelf.c:5699
-#, fuzzy
-msgid "version need aux (2)"
-msgstr "Verisiyo 2."
-
-#: readelf.c:5741 readelf.c:6192
-#, fuzzy
-msgid "version def"
-msgstr "Verisiyo"
-
-#: readelf.c:5760 readelf.c:6207
-#, fuzzy
-msgid "version def aux"
-msgstr "Verisiyo"
-
-#: readelf.c:5791
-#, fuzzy
-msgid ""
-"\n"
-"No version information found in this file.\n"
-msgstr "Verisiyo Ibisobanuro Byabonetse in iyi IDOSIYE"
-
-#: readelf.c:5923
-#, fuzzy
-msgid "Unable to read in dynamic data\n"
-msgstr "Kuri Gusoma in"
-
-#: readelf.c:5967
-#, fuzzy
-msgid "Unable to seek to start of dynamic information"
-msgstr "Kuri Kuri Gutangira Bya Ibisobanuro"
-
-#: readelf.c:5973
-#, fuzzy
-msgid "Failed to read in number of buckets\n"
-msgstr "Kuri Gusoma in Umubare Bya"
-
-#: readelf.c:5979
-#, fuzzy
-msgid "Failed to read in number of chains\n"
-msgstr "Kuri Gusoma in Umubare Bya"
-
-#: readelf.c:5999
-#, fuzzy
-msgid ""
-"\n"
-"Symbol table for image:\n"
-msgstr "imbonerahamwe# kugirango Ishusho"
-
-#: readelf.c:6001
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:6003
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:6048
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Symbol table '%s' contains %lu entries:\n"
-msgstr "imbonerahamwe# Kirimo Ibyinjijwe"
-
-#: readelf.c:6052
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:6054
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:6101
-#, fuzzy
-msgid "version data"
-msgstr "Verisiyo Ibyatanzwe"
-
-#: readelf.c:6142
-#, fuzzy
-msgid "version need aux (3)"
-msgstr "Verisiyo 3."
-
-#: readelf.c:6167
-#, fuzzy
-msgid "bad dynamic symbol"
-msgstr "IKIMENYETSO"
-
-#: readelf.c:6230
-#, fuzzy
-msgid ""
-"\n"
-"Dynamic symbol information is not available for displaying symbols.\n"
-msgstr "IKIMENYETSO Ibisobanuro ni OYA Bihari kugirango Ibimenyetso"
-
-#: readelf.c:6242
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length (total of %d buckets):\n"
-msgstr "kugirango Urutonde Uburebure Igiteranyo Bya"
-
-#: readelf.c:6244
-#, fuzzy, c-format
-msgid " Length Number %% of total Coverage\n"
-msgstr "Bya Igiteranyo"
-
-# # @name NO_MEMORY
-# # @loc none
-#: readelf.c:6249 readelf.c:6268 readelf.c:9898 readelf.c:10090
-msgid "Out of memory"
-msgstr "Ububiko bwarenzwe"
-
-#: readelf.c:6317
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr "Ibisobanuro ku Nta- boneza Kirimo Ibyinjijwe"
-
-#: readelf.c:6320
-msgid " Num: Name BoundTo Flags\n"
-msgstr ""
-
-#: readelf.c:6373
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Assembly dump of section %s\n"
-msgstr "Bya Icyiciro"
-
-#: readelf.c:6396
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Section '%s' has no data to dump.\n"
-msgstr "Oya Ibyatanzwe Kuri"
-
-#: readelf.c:6401
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Hex dump of section '%s':\n"
-msgstr "Bya Icyiciro"
-
-#: readelf.c:6406
-#, fuzzy
-msgid "section data"
-msgstr "Icyiciro Ibyatanzwe"
-
-#: readelf.c:6555
-#, fuzzy
-msgid "badly formed extended line op encountered!\n"
-msgstr "Byongerewe... Umurongo"
-
-#: readelf.c:6562
-#, c-format
-msgid " Extended opcode %d: "
-msgstr ""
-
-#: readelf.c:6567
-#, fuzzy
-msgid ""
-"End of Sequence\n"
-"\n"
-msgstr "Impera Bya"
-
-#: readelf.c:6573
-#, fuzzy, c-format
-msgid "set Address to 0x%lx\n"
-msgstr "Gushyiraho Kuri"
-
-#: readelf.c:6578
-#, fuzzy
-msgid " define new File Table entry\n"
-msgstr "Kugaragaza... Gishya Idosiye"
-
-#: readelf.c:6579 readelf.c:6726
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr ""
-
-# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
-#: readelf.c:6581
-#, fuzzy, c-format
-msgid " %d\t"
-msgstr "%d"
-
-# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
-#: readelf.c:6584 readelf.c:6586 readelf.c:6588 readelf.c:6738 readelf.c:6740
-#: readelf.c:6742
-#, fuzzy, c-format
-msgid "%lu\t"
-msgstr "%lu"
-
-# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
-#: readelf.c:6589
-#, fuzzy, c-format
-msgid ""
-"%s\n"
-"\n"
-msgstr "%s"
-
-#: readelf.c:6593
-#, fuzzy, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr "Uburebure"
-
-#: readelf.c:6621
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Dump of debug contents of section %s:\n"
-"\n"
-msgstr "Bya Kosora amakosa Ibigize Bya Icyiciro"
-
-#: readelf.c:6649
-#, fuzzy
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr "Umurongo Ibisobanuro Kuri i Icyiciro ni"
-
-#: readelf.c:6658
-#, fuzzy
-msgid "Only DWARF version 2 and 3 line info is currently supported.\n"
-msgstr "Verisiyo 2. Na 3. Umurongo Ibisobanuro ni"
-
-# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
-# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
-#: readelf.c:6679
-#, fuzzy, c-format
-msgid " Length: %ld\n"
-msgstr "Uburebure"
-
-#: readelf.c:6680
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr ""
-
-#: readelf.c:6681
-#, c-format
-msgid " Prologue Length: %d\n"
-msgstr ""
-
-#: readelf.c:6682
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr ""
-
-#: readelf.c:6683
-#, fuzzy, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr "Agaciro Bya"
-
-#: readelf.c:6684
-#, fuzzy, c-format
-msgid " Line Base: %d\n"
-msgstr "Base"
-
-#: readelf.c:6685
-#, c-format
-msgid " Line Range: %d\n"
-msgstr ""
-
-#: readelf.c:6686
-#, fuzzy, c-format
-msgid " Opcode Base: %d\n"
-msgstr "Base"
-
-#: readelf.c:6695
-msgid ""
-"\n"
-" Opcodes:\n"
-msgstr ""
-
-#: readelf.c:6698
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr ""
-
-#: readelf.c:6704
-#, fuzzy
-msgid ""
-"\n"
-" The Directory Table is empty.\n"
-msgstr "ni ubusa"
-
-#: readelf.c:6707
-msgid ""
-"\n"
-" The Directory Table:\n"
-msgstr ""
-
-# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
-#: readelf.c:6711
-#, fuzzy, c-format
-msgid " %s\n"
-msgstr "%s"
-
-#: readelf.c:6722
-#, fuzzy
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr "Idosiye ni ubusa"
-
-#: readelf.c:6725
-#, fuzzy
-msgid ""
-"\n"
-" The File Name Table:\n"
-msgstr "Idosiye"
-
-# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
-#: readelf.c:6733
-#, fuzzy, c-format
-msgid " %d\t"
-msgstr "%d"
-
-# basctl/source\basicide\basidesh.src:RID_IMGBTN_REMOVEWATCH.text
-#: readelf.c:6744
-#, fuzzy, c-format
-msgid "%s\n"
-msgstr "%s"
-
-#. Now display the statements.
-#: readelf.c:6752
-msgid ""
-"\n"
-" Line Number Statements:\n"
-msgstr ""
-
-#: readelf.c:6768
-#, fuzzy, c-format
-msgid " Special opcode %d: advance Address by %d to 0x%lx"
-msgstr "ku Kuri"
-
-#: readelf.c:6772
-#, fuzzy, c-format
-msgid " and Line by %d to %d\n"
-msgstr "Na ku Kuri"
-
-#: readelf.c:6783
-msgid " Copy\n"
-msgstr ""
-
-#: readelf.c:6790
-#, fuzzy, c-format
-msgid " Advance PC by %d to %lx\n"
-msgstr "ku Kuri"
-
-#: readelf.c:6798
-#, fuzzy, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr "ku Kuri"
-
-#: readelf.c:6805
-#, fuzzy, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr "Idosiye Kuri Icyinjijwe in i Idosiye"
-
-#: readelf.c:6813
-#, fuzzy, c-format
-msgid " Set column to %d\n"
-msgstr "Inkingi Kuri"
-
-#: readelf.c:6820
-#, fuzzy, c-format
-msgid " Set is_stmt to %d\n"
-msgstr "Kuri"
-
-#: readelf.c:6825
-#, fuzzy
-msgid " Set basic block\n"
-msgstr "BASIC"
-
-#: readelf.c:6833
-#, fuzzy, c-format
-msgid " Advance PC by constant %d to 0x%lx\n"
-msgstr "ku Kuri"
-
-#: readelf.c:6841
-#, fuzzy, c-format
-msgid " Advance PC by fixed size amount %d to 0x%lx\n"
-msgstr "ku BIHAMYE Ingano Igiteranyo Kuri"
-
-#: readelf.c:6846
-#, fuzzy
-msgid " Set prologue_end to true\n"
-msgstr "Kuri"
-
-#: readelf.c:6850
-#, fuzzy
-msgid " Set epilogue_begin to true\n"
-msgstr "Kuri"
-
-#: readelf.c:6856
-#, fuzzy, c-format
-msgid " Set ISA to %d\n"
-msgstr "Kuri"
-
-#: readelf.c:6860
-#, fuzzy, c-format
-msgid " Unknown opcode %d with operands: "
-msgstr "Na:"
-
-#: readelf.c:6891 readelf.c:7371 readelf.c:7443
-#, fuzzy, c-format
-msgid ""
-"Contents of the %s section:\n"
-"\n"
-msgstr "Bya i Icyiciro"
-
-#: readelf.c:6931
-#, fuzzy
-msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
-msgstr "2. Na 3."
-
-# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
-# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
-#: readelf.c:6938
-#, fuzzy, c-format
-msgid " Length: %ld\n"
-msgstr "Uburebure"
-
-# goodies/source\filter.vcl\eps\dlgeps.src:DLG_EXPORT_EPS.GRP_VERSION.text
-#: readelf.c:6940
-#, fuzzy, c-format
-msgid " Version: %d\n"
-msgstr "Verisiyo"
-
-#: readelf.c:6942
-#, fuzzy, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr "Icyiciro"
-
-#: readelf.c:6944
-#, fuzzy, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr "Bya Ubuso in Icyiciro"
-
-#: readelf.c:6947
-msgid ""
-"\n"
-" Offset\tName\n"
-msgstr ""
-
-#: readelf.c:7042
-#, fuzzy, c-format
-msgid "Unknown TAG value: %lx"
-msgstr "Agaciro"
-
-#: readelf.c:7156
-#, fuzzy, c-format
-msgid "Unknown AT value: %lx"
-msgstr "Agaciro"
-
-#: readelf.c:7193
-#, fuzzy, c-format
-msgid "Unknown FORM value: %lx"
-msgstr "Agaciro"
-
-#: readelf.c:7392
-#, c-format
-msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr ""
-
-#: readelf.c:7397
-msgid " DW_MACINFO_end_file\n"
-msgstr ""
-
-#: readelf.c:7405
-#, fuzzy, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr "Makoro"
-
-#: readelf.c:7413
-#, fuzzy, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr "Makoro"
-
-#: readelf.c:7424
-#, fuzzy, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr "Ikurikiranyanyuguti"
-
-#: readelf.c:7452
-msgid " Number TAG\n"
-msgstr ""
-
-#: readelf.c:7458
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr ""
-
-#: readelf.c:7461
-msgid "has children"
-msgstr ""
-
-#: readelf.c:7461
-#, fuzzy
-msgid "no children"
-msgstr "Oya"
-
-# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
-# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
-# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
-#: readelf.c:7465
-#, fuzzy, c-format
-msgid " %-18s %s\n"
-msgstr "%-18s%s"
-
-#: readelf.c:7486
-#, fuzzy, c-format
-msgid " %lu byte block: "
-msgstr "%luBayite Funga"
-
-#: readelf.c:7814
-#, fuzzy
-msgid "(User defined location op)"
-msgstr "(Ahantu"
-
-#: readelf.c:7816
-#, fuzzy
-msgid "(Unknown location op)"
-msgstr "(Ahantu"
-
-#: readelf.c:7855
-#, fuzzy
-msgid "debug_loc section data"
-msgstr "Icyiciro Ibyatanzwe"
-
-#: readelf.c:7887
-#, fuzzy
-msgid ""
-"\n"
-"The .debug_loc section is empty.\n"
-msgstr "Icyiciro ni ubusa"
-
-#: readelf.c:7891
-#, fuzzy
-msgid ""
-"Contents of the .debug_loc section:\n"
-"\n"
-msgstr "Bya i Icyiciro"
-
-#: readelf.c:7892
-#, fuzzy
-msgid ""
-"\n"
-" Offset Begin End Expression\n"
-msgstr "Impera"
-
-#: readelf.c:7968
-#, fuzzy
-msgid "debug_str section data"
-msgstr "Icyiciro Ibyatanzwe"
-
-#: readelf.c:7987
-#, fuzzy
-msgid "<no .debug_str section>"
-msgstr "<Oya."
-
-#: readelf.c:7990
-#, fuzzy
-msgid "<offset is too big>"
-msgstr "<Nta- boneza ni"
-
-#: readelf.c:8009
-#, fuzzy
-msgid ""
-"\n"
-"The .debug_str section is empty.\n"
-msgstr "Icyiciro ni ubusa"
-
-#: readelf.c:8013
-#, fuzzy
-msgid ""
-"Contents of the .debug_str section:\n"
-"\n"
-msgstr "Bya i Icyiciro"
-
-#: readelf.c:8088
-#, fuzzy
-msgid "Internal error: DWARF version is not 2 or 3.\n"
-msgstr "Ikosa Verisiyo ni OYA 2. Cyangwa 3."
-
-#: readelf.c:8203
-#, fuzzy, c-format
-msgid " (indirect string, offset: 0x%lx): %s"
-msgstr "(BUZIGUYE Ikurikiranyanyuguti Nta- boneza"
-
-#: readelf.c:8212
-#, fuzzy, c-format
-msgid "Unrecognized form: %d\n"
-msgstr "Ifishi"
-
-#: readelf.c:8226
-#, fuzzy
-msgid "(not inlined)"
-msgstr "(OYA"
-
-#: readelf.c:8229
-msgid "(inlined)"
-msgstr ""
-
-#: readelf.c:8232
-#, fuzzy
-msgid "(declared as inline but ignored)"
-msgstr "(Nka Mumurongo"
-
-#: readelf.c:8235
-#, fuzzy
-msgid "(declared as inline and inlined)"
-msgstr "(Nka Mumurongo Na"
-
-#: readelf.c:8238
-#, fuzzy, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr "(Mumurongo Ikiranga Agaciro"
-
-#: readelf.c:8419 readelf.c:8646
-#, fuzzy, c-format
-msgid ""
-"The section %s contains:\n"
-"\n"
-msgstr "Icyiciro Kirimo"
-
-#: readelf.c:8535
-#, c-format
-msgid " Compilation Unit @ %lx:\n"
-msgstr ""
-
-# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
-# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
-#: readelf.c:8536
-#, fuzzy, c-format
-msgid " Length: %ld\n"
-msgstr "Uburebure"
-
-# goodies/source\filter.vcl\eps\dlgeps.src:DLG_EXPORT_EPS.GRP_VERSION.text
-#: readelf.c:8537
-#, fuzzy, c-format
-msgid " Version: %d\n"
-msgstr "Verisiyo"
-
-#: readelf.c:8538
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr ""
-
-#: readelf.c:8539
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr ""
-
-#: readelf.c:8543
-#, fuzzy
-msgid "Only version 2 and 3 DWARF debug information is currently supported.\n"
-msgstr "Verisiyo 2. Na 3. Kosora amakosa Ibisobanuro ni"
-
-#: readelf.c:8563
-#, fuzzy
-msgid "Unable to locate .debug_abbrev section!\n"
-msgstr "Kuri Icyiciro"
-
-#: readelf.c:8569
-#, fuzzy
-msgid "debug_abbrev section data"
-msgstr "Icyiciro Ibyatanzwe"
-
-#: readelf.c:8606
-#, fuzzy, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr "Kuri Icyinjijwe in i Impine"
-
-#: readelf.c:8611
-#, c-format
-msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
-msgstr ""
-
-#: readelf.c:8691
-#, fuzzy
-msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
-msgstr "2. Na 3."
-
-# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
-# #-#-#-#-# dbaccess.pot (PACKAGE VERSION) #-#-#-#-#
-#: readelf.c:8695
-#, fuzzy, c-format
-msgid " Length: %ld\n"
-msgstr "Uburebure"
-
-# goodies/source\filter.vcl\eps\dlgeps.src:DLG_EXPORT_EPS.GRP_VERSION.text
-#: readelf.c:8696
-#, fuzzy, c-format
-msgid " Version: %d\n"
-msgstr "Verisiyo"
-
-#: readelf.c:8697
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr ""
-
-#: readelf.c:8698
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr ""
-
-#: readelf.c:8699
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr ""
-
-#: readelf.c:8701
-msgid ""
-"\n"
-" Address Length\n"
-msgstr ""
-
-#: readelf.c:8903
-#, fuzzy, c-format
-msgid "The section %s contains:\n"
-msgstr "Icyiciro Kirimo"
-
-#: readelf.c:9538
-#, fuzzy, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr "i Kosora amakosa Ibigize Bya Icyiciro ni OYA"
-
-#: readelf.c:9634
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Section '%s' has no debugging data.\n"
-msgstr "Oya Ibyatanzwe"
-
-#: readelf.c:9639 readelf.c:9701
-#, fuzzy
-msgid "debug section data"
-msgstr "Kosora amakosa Icyiciro Ibyatanzwe"
-
-#: readelf.c:9655
-#, fuzzy, c-format
-msgid "Unrecognized debug section: %s\n"
-msgstr "Kosora amakosa Icyiciro"
-
-#: readelf.c:9729
-#, fuzzy
-msgid "Some sections were not dumped because they do not exist!\n"
-msgstr "Ibyatoranyijwe OYA OYA"
-
-#: readelf.c:9806 readelf.c:10170
-msgid "liblist"
-msgstr ""
-
-# basctl/source\basicide\moduldlg.src:RID_DLG_LIBS.RID_FL_OPTIONS.text
-#: readelf.c:9891
-#, fuzzy
-msgid "options"
-msgstr "Amahitamo"
-
-#: readelf.c:9922
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Section '%s' contains %d entries:\n"
-msgstr "Kirimo Ibyinjijwe"
-
-#: readelf.c:10083
-#, fuzzy
-msgid "conflict list found without a dynamic symbol table"
-msgstr "Urutonde Byabonetse a IKIMENYETSO imbonerahamwe#"
-
-#: readelf.c:10101 readelf.c:10117
-msgid "conflict"
-msgstr ""
-
-#: readelf.c:10127
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Section '.conflict' contains %ld entries:\n"
-msgstr "Kirimo Ibyinjijwe"
-
-#: readelf.c:10129
-msgid " Num: Index Value Name"
-msgstr ""
-
-#: readelf.c:10178
-#, fuzzy
-msgid "liblist string table"
-msgstr "Ikurikiranyanyuguti imbonerahamwe#"
-
-#: readelf.c:10187
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Library list section '%s' contains %lu entries:\n"
-msgstr "Urutonde Icyiciro Kirimo Ibyinjijwe"
-
-#: readelf.c:10236
-#, fuzzy
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr "Imiterere"
-
-#: readelf.c:10237
-#, fuzzy
-msgid "NT_FPREGSET (floating point registers)"
-msgstr "Bihindagurika Akadomo"
-
-#: readelf.c:10238
-#, fuzzy
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr "Imiterere"
-
-#: readelf.c:10239
-#, fuzzy
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr "Igikorwa Imiterere"
-
-#: readelf.c:10240
-#, fuzzy
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr "Imiterere"
-
-#: readelf.c:10241
-#, fuzzy
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr "Imiterere"
-
-#: readelf.c:10242
-#, fuzzy
-msgid "NT_FPREGS (floating point registers)"
-msgstr "Bihindagurika Akadomo"
-
-#: readelf.c:10243
-#, fuzzy
-msgid "NT_PSINFO (psinfo structure)"
-msgstr "Imiterere"
-
-#: readelf.c:10244
-#, fuzzy
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr "Imiterere"
-
-#: readelf.c:10245
-#, fuzzy
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr "Imiterere"
-
-#: readelf.c:10246
-#, fuzzy
-msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
-msgstr "Imiterere"
-
-#: readelf.c:10248 readelf.c:10272
-#, fuzzy, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr "Impugukirwa Ubwoko"
-
-#. NetBSD core "procinfo" structure.
-#: readelf.c:10262
-#, fuzzy
-msgid "NetBSD procinfo structure"
-msgstr "Imiterere"
-
-#: readelf.c:10289 readelf.c:10303
-#, fuzzy
-msgid "PT_GETREGS (reg structure)"
-msgstr "Imiterere"
-
-#: readelf.c:10291 readelf.c:10305
-#, fuzzy
-msgid "PT_GETFPREGS (fpreg structure)"
-msgstr "Imiterere"
-
-#: readelf.c:10311
-#, c-format
-msgid "PT_FIRSTMACH+%d"
-msgstr ""
-
-# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-#
-# officecfg/registry\schema\org\openoffice\Office\Impress.xcs:....Print.Content.Note.text
-# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-#
-# officecfg/registry\schema\org\openoffice\Office\WriterWeb.xcs:....Content.Display.Note.text
-# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-#
-# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Content.Display.Note.text
-# #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-#
-# officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Agenda.Elements.Notes.text
-#: readelf.c:10365
-#, fuzzy
-msgid "notes"
-msgstr "Ibisobanuro"
-
-#: readelf.c:10371
-#, fuzzy, c-format
-msgid ""
-"\n"
-"Notes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr "ku Nta- boneza Na: Uburebure"
-
-#: readelf.c:10373
-msgid " Owner\t\tData size\tDescription\n"
-msgstr ""
-
-#: readelf.c:10392
-#, fuzzy, c-format
-msgid "corrupt note found at offset %x into core notes\n"
-msgstr "Impugukirwa Byabonetse ku Nta- boneza"
-
-#: readelf.c:10394
-#, fuzzy, c-format
-msgid " type: %x, namesize: %08lx, descsize: %08lx\n"
-msgstr "Ubwoko"
-
-#: readelf.c:10476
-#, fuzzy
-msgid "No note segments present in the core file.\n"
-msgstr "Impugukirwa Ingeri in i IDOSIYE"
-
-#: readelf.c:10560
-#, fuzzy
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr "Urugero Bya Gushigikira kugirango Ibyatanzwe Ubwoko Na Gusoma Idosiye"
-
-#: readelf.c:10606
-#, fuzzy, c-format
-msgid "Cannot stat input file %s.\n"
-msgstr "Iyinjiza IDOSIYE"
-
-#: readelf.c:10613
-#, fuzzy, c-format
-msgid "Input file %s not found.\n"
-msgstr "IDOSIYE OYA Byabonetse"
-
-#: readelf.c:10619
-#, fuzzy, c-format
-msgid "%s: Failed to read file header\n"
-msgstr "%s:Kuri Gusoma IDOSIYE"
-
-# sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_HFCMD_FILE.text
-#: readelf.c:10633
-#, fuzzy, c-format
-msgid ""
-"\n"
-"File: %s\n"
-msgstr "IDOSIYE"
-
-#: rename.c:132
-#, fuzzy, c-format
-msgid "%s: cannot set time: %s"
-msgstr "%s:Gushyiraho Igihe"
-
-#. We have to clean up here.
-#: rename.c:171 rename.c:204
-#, fuzzy, c-format
-msgid "%s: rename: %s"
-msgstr "%s:Guhindura izina"
-
-#: rename.c:212
-#, c-format
-msgid "%s: simple_copy: %s"
-msgstr ""
-
-#: resbin.c:134
-#, fuzzy, c-format
-msgid "%s: not enough binary data"
-msgstr "%s:OYA Nyabibiri Ibyatanzwe"
-
-#: resbin.c:153
-#, fuzzy
-msgid "null terminated unicode string"
-msgstr "NTAGIHARI Inikode Ikurikiranyanyuguti"
-
-#: resbin.c:183 resbin.c:189
-msgid "resource ID"
-msgstr ""
-
-# 1316
-#: resbin.c:233
-#, fuzzy
-msgid "cursor"
-msgstr "indanga"
-
-#: resbin.c:267 resbin.c:274
-#, fuzzy
-msgid "menu header"
-msgstr "Ibikubiyemo Umutwempangano"
-
-#: resbin.c:284
-#, fuzzy
-msgid "menuex header"
-msgstr "Umutwempangano"
-
-#: resbin.c:288
-#, fuzzy
-msgid "menuex offset"
-msgstr "Nta- boneza"
-
-#: resbin.c:295
-#, fuzzy, c-format
-msgid "unsupported menu version %d"
-msgstr "Ibikubiyemo Verisiyo"
-
-#: resbin.c:323 resbin.c:338 resbin.c:404
-#, fuzzy
-msgid "menuitem header"
-msgstr "Umutwempangano"
-
-#: resbin.c:434
-msgid "menuitem"
-msgstr ""
-
-#: resbin.c:475 resbin.c:503
-#, fuzzy
-msgid "dialog header"
-msgstr "Ikiganiro Umutwempangano"
-
-#: resbin.c:493
-#, fuzzy, c-format
-msgid "unexpected DIALOGEX version %d"
-msgstr "Verisiyo"
-
-#: resbin.c:538
-#, fuzzy
-msgid "dialog font point size"
-msgstr "Ikiganiro Intego- nyuguti Akadomo Ingano"
-
-#: resbin.c:546
-#, fuzzy
-msgid "dialogex font information"
-msgstr "Intego- nyuguti Ibisobanuro"
-
-#: resbin.c:572 resbin.c:590
-#, fuzzy
-msgid "dialog control"
-msgstr "Ikiganiro Igenzura"
-
-#: resbin.c:582
-#, fuzzy
-msgid "dialogex control"
-msgstr "Igenzura"
-
-#: resbin.c:611
-#, fuzzy
-msgid "dialog control end"
-msgstr "Ikiganiro Igenzura Impera"
-
-#: resbin.c:623
-#, fuzzy
-msgid "dialog control data"
-msgstr "Ikiganiro Igenzura Ibyatanzwe"
-
-#: resbin.c:666
-#, fuzzy
-msgid "stringtable string length"
-msgstr "Ikurikiranyanyuguti Uburebure"
-
-#: resbin.c:676
-#, fuzzy
-msgid "stringtable string"
-msgstr "Ikurikiranyanyuguti"
-
-#: resbin.c:709
-#, fuzzy
-msgid "fontdir header"
-msgstr "Umutwempangano"
-
-#: resbin.c:722
-msgid "fontdir"
-msgstr ""
-
-#: resbin.c:738
-#, fuzzy
-msgid "fontdir device name"
-msgstr "APAREYE Izina:"
-
-#: resbin.c:744
-#, fuzzy
-msgid "fontdir face name"
-msgstr "Izina:"
-
-#: resbin.c:787
-msgid "accelerator"
-msgstr ""
-
-#: resbin.c:851
-#, fuzzy
-msgid "group cursor header"
-msgstr "Itsinda indanga Umutwempangano"
-
-#: resbin.c:855
-#, fuzzy, c-format
-msgid "unexpected group cursor type %d"
-msgstr "Itsinda indanga Ubwoko"
-
-#: resbin.c:870
-#, fuzzy
-msgid "group cursor"
-msgstr "Itsinda indanga"
-
-#: resbin.c:909
-#, fuzzy
-msgid "group icon header"
-msgstr "Itsinda Agashushondanga Umutwempangano"
-
-#: resbin.c:913
-#, fuzzy, c-format
-msgid "unexpected group icon type %d"
-msgstr "Itsinda Agashushondanga Ubwoko"
-
-#: resbin.c:928
-#, fuzzy
-msgid "group icon"
-msgstr "Itsinda Agashushondanga"
-
-#: resbin.c:999 resbin.c:1218
-#, fuzzy
-msgid "unexpected version string"
-msgstr "Verisiyo Ikurikiranyanyuguti"
-
-#: resbin.c:1033
-#, fuzzy, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr "Verisiyo Uburebure OYA BIHUYE Uburebure"
-
-#: resbin.c:1037
-#, fuzzy, c-format
-msgid "unexpected version type %d"
-msgstr "Verisiyo Ubwoko"
-
-#: resbin.c:1049
-#, fuzzy, c-format
-msgid "unexpected fixed version information length %d"
-msgstr "BIHAMYE Verisiyo Ibisobanuro Uburebure"
-
-#: resbin.c:1052
-#, fuzzy
-msgid "fixed version info"
-msgstr "BIHAMYE Verisiyo Ibisobanuro"
-
-#: resbin.c:1056
-#, fuzzy, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr "BIHAMYE Verisiyo Isinya"
-
-#: resbin.c:1060
-#, fuzzy, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr "BIHAMYE Verisiyo Ibisobanuro Verisiyo"
-
-#: resbin.c:1089
-#, fuzzy
-msgid "version var info"
-msgstr "Verisiyo VAR Ibisobanuro"
-
-#: resbin.c:1106
-#, fuzzy, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr "Agaciro Uburebure"
-
-#: resbin.c:1116
-#, fuzzy, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr "Verisiyo Agaciro Uburebure"
-
-#: resbin.c:1150
-#, fuzzy, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr "Verisiyo Ikurikiranyanyuguti Uburebure"
-
-#: resbin.c:1161
-#, fuzzy, c-format
-msgid "unexpected version string length %d < %d"
-msgstr "Verisiyo Ikurikiranyanyuguti Uburebure"
-
-#: resbin.c:1178
-#, fuzzy, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr "Agaciro Uburebure"
-
-#: resbin.c:1197
-#, fuzzy
-msgid "version varfileinfo"
-msgstr "Verisiyo"
-
-#: resbin.c:1212
-#, fuzzy, c-format
-msgid "unexpected version value length %d"
-msgstr "Verisiyo Agaciro Uburebure"
-
-#: rescoff.c:128
-#, fuzzy
-msgid "filename required for COFF input"
-msgstr "Izina ry'idosiye: Bya ngombwa kugirango Iyinjiza"
-
-#: rescoff.c:145
-#, fuzzy, c-format
-msgid "%s: no resource section"
-msgstr "%s:Oya Icyiciro"
-
-#: rescoff.c:152
-#, fuzzy
-msgid "can't read resource section"
-msgstr "Gusoma Icyiciro"
-
-#: rescoff.c:178
-#, fuzzy, c-format
-msgid "%s: %s: address out of bounds"
-msgstr "%s:%s:Aderesi Inyuma Bya"
-
-# svtools/source\dialogs\filedlg2.src:STR_FILEDLG_DIR.text
-#: rescoff.c:197
-#, fuzzy
-msgid "directory"
-msgstr "Ububiko"
-
-#: rescoff.c:225
-#, fuzzy
-msgid "named directory entry"
-msgstr "bushyinguro Icyinjijwe"
-
-#: rescoff.c:234
-#, fuzzy
-msgid "directory entry name"
-msgstr "bushyinguro Icyinjijwe Izina:"
-
-#: rescoff.c:254
-msgid "named subdirectory"
-msgstr ""
-
-#: rescoff.c:262
-msgid "named resource"
-msgstr ""
-
-#: rescoff.c:277
-#, fuzzy
-msgid "ID directory entry"
-msgstr "bushyinguro Icyinjijwe"
-
-#: rescoff.c:294
-msgid "ID subdirectory"
-msgstr ""
-
-#: rescoff.c:302
-msgid "ID resource"
-msgstr ""
-
-#: rescoff.c:328
-#, fuzzy
-msgid "resource type unknown"
-msgstr "Ubwoko Kitazwi"
-
-#: rescoff.c:331
-#, fuzzy
-msgid "data entry"
-msgstr "Ibyatanzwe Icyinjijwe"
-
-#: rescoff.c:339
-#, fuzzy
-msgid "resource data"
-msgstr "Ibyatanzwe"
-
-#: rescoff.c:344
-#, fuzzy
-msgid "resource data size"
-msgstr "Ibyatanzwe Ingano"
-
-#: rescoff.c:439
-#, fuzzy
-msgid "filename required for COFF output"
-msgstr "Izina ry'idosiye: Bya ngombwa kugirango Ibisohoka"
-
-#: rescoff.c:738
-#, fuzzy
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr "Kubona Ubwoko"
-
-#: resrc.c:240 resrc.c:312
-#, fuzzy, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr "Gufungura By'igihe gito IDOSIYE"
-
-#: resrc.c:246
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr ""
-
-#: resrc.c:262
-#, c-format
-msgid "%s %s: %s"
-msgstr ""
-
-#: resrc.c:308
-#, fuzzy, c-format
-msgid "can't execute `%s': %s"
-msgstr "Gukora"
-
-#: resrc.c:317
-#, fuzzy, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr "By'igihe gito IDOSIYE Kuri Gusoma"
-
-#: resrc.c:324
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr ""
-
-#: resrc.c:326
-#, fuzzy
-msgid "Using popen to read preprocessor output\n"
-msgstr "Kuri Gusoma"
-
-#: resrc.c:369
-#, c-format
-msgid "Tried `%s'\n"
-msgstr ""
-
-#: resrc.c:380
-#, fuzzy, c-format
-msgid "Using `%s'\n"
-msgstr "ikoresha"
-
-#: resrc.c:542
-#, fuzzy, c-format
-msgid "%s:%d: %s\n"
-msgstr "%s:%d:%sCYOSE"
-
-#: resrc.c:551
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr ""
-
-#: resrc.c:608
-#, fuzzy, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr "%s:Gusoma Bya"
-
-#: resrc.c:650 resrc.c:905 resrc.c:1178 resrc.c:1332
-#, fuzzy, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr "Byanze ku Bitimapu IDOSIYE"
-
-#: resrc.c:703
-#, fuzzy, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr "indanga IDOSIYE OYA indanga Ibyatanzwe"
-
-#: resrc.c:735 resrc.c:1049
-#, fuzzy, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr "%s:Kuri Byanze"
-
-#: resrc.c:873
-#, fuzzy
-msgid "help ID requires DIALOGEX"
-msgstr "Ifashayobora"
-
-#: resrc.c:875
-#, fuzzy
-msgid "control data requires DIALOGEX"
-msgstr "Igenzura Ibyatanzwe"
-
-#: resrc.c:1018
-#, fuzzy, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr "Agashushondanga IDOSIYE OYA Agashushondanga Ibyatanzwe"
-
-#: resrc.c:1537
-#, fuzzy, c-format
-msgid "can't open `%s' for output: %s"
-msgstr "Gufungura kugirango Ibisohoka"
-
-#: size.c:86
-#, fuzzy
-msgid " Displays the sizes of sections inside binary files\n"
-msgstr "i Bya Ibyatoranyijwe Mo Imbere Nyabibiri"
-
-#: size.c:87
-#, fuzzy
-msgid " If no input file(s) are specified, a.out is assumed\n"
-msgstr "Oya Iyinjiza IDOSIYE S a Inyuma ni"
-
-#: size.c:88
-#, fuzzy, c-format
-msgid ""
-" The options are:\n"
-" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
-" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n"
-" -t --totals Display the total sizes (Berkeley only)\n"
-" --target=<bfdname> Set the binary file format\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr "Amahitamo A Imiterere Ibisohoka IMISUSIRE Mburabuzi ni o D X radix 8 10 Imibare in NYACUMI Cyangwa T i Igiteranyo Intego i Nyabibiri IDOSIYE h Ifashayobora iyi v Verisiyo i"
-
-#: size.c:160
-#, fuzzy, c-format
-msgid "invalid argument to --format: %s"
-msgstr "Sibyo Kuri Imiterere"
-
-#: size.c:187
-#, fuzzy, c-format
-msgid "Invalid radix: %s\n"
-msgstr "radix"
-
-#: srconv.c:1953
-#, fuzzy
-msgid "Convert a COFF object file into a SYSROFF object file\n"
-msgstr "a Igikoresho IDOSIYE a Igikoresho"
-
-#: srconv.c:1954
-#, fuzzy
-msgid ""
-" The options are:\n"
-" -q --quick (Obsolete - ignoerd)\n"
-" -n --noprescan Do not perform a scan to convert commons into defs\n"
-" -d --debug Display information about what is being done\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr "Amahitamo Q N OYA a Gusikana Kuri GUHINDURA D Kosora amakosa Ibisobanuro Ibyerekeye ni h Ifashayobora iyi v Verisiyo i Verisiyo"
-
-#: srconv.c:2099
-#, fuzzy, c-format
-msgid "unable to open output file %s"
-msgstr "Kuri Gufungura Ibisohoka IDOSIYE"
-
-#: stabs.c:346 stabs.c:1755
-#, fuzzy
-msgid "numeric overflow"
-msgstr "Bikurikije umubare Byarenze urugero"
-
-#: stabs.c:357
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr ""
-
-#: stabs.c:367
-#, fuzzy, c-format
-msgid "Warning: %s: %s\n"
-msgstr "Iburira"
-
-#: stabs.c:488
-#, fuzzy
-msgid "N_LBRAC not within function\n"
-msgstr "OYA muri"
-
-#: stabs.c:527
-msgid "Too many N_RBRACs\n"
-msgstr ""
-
-#: stabs.c:773
-#, fuzzy
-msgid "unknown C++ encoded name"
-msgstr "Kitazwi C Izina:"
-
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1293
-#, fuzzy
-msgid "unrecognized cross reference type"
-msgstr "Kwambukiranya Indango Ubwoko"
-
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1847
-#, fuzzy
-msgid "missing index type"
-msgstr "Ibuze Umubarendanga Ubwoko"
-
-#: stabs.c:2174
-#, fuzzy
-msgid "unknown virtual character for baseclass"
-msgstr "Kitazwi Kitaboneka Inyuguti kugirango"
-
-#: stabs.c:2192
-#, fuzzy
-msgid "unknown visibility character for baseclass"
-msgstr "Kitazwi Ukugaragara Inyuguti kugirango"
-
-#: stabs.c:2384
-#, fuzzy
-msgid "unnamed $vb type"
-msgstr "Kitiswe Ubwoko"
-
-#: stabs.c:2390
-#, fuzzy
-msgid "unrecognized C++ abbreviation"
-msgstr "C Impine"
-
-#: stabs.c:2470
-#, fuzzy
-msgid "unknown visibility character for field"
-msgstr "Kitazwi Ukugaragara Inyuguti kugirango Umwanya"
-
-#: stabs.c:2726
-#, fuzzy
-msgid "const/volatile indicator missing"
-msgstr "Ibuze"
-
-#: stabs.c:2967
-#, fuzzy, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr "kugirango"
-
-#: stabs.c:3281
-msgid "Undefined N_EXCL"
-msgstr ""
-
-#: stabs.c:3369
-#, fuzzy, c-format
-msgid "Type file number %d out of range\n"
-msgstr "IDOSIYE Umubare Inyuma Bya"
-
-#: stabs.c:3374
-#, fuzzy, c-format
-msgid "Type index number %d out of range\n"
-msgstr "Umubarendanga Umubare Inyuma Bya"
-
-#: stabs.c:3461
-#, fuzzy, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr "Ubwoko"
-
-#: stabs.c:3762
-#, fuzzy, c-format
-msgid "bad mangled name `%s'\n"
-msgstr "Izina:"
-
-#: stabs.c:3859
-#, fuzzy
-msgid "no argument types in mangled string\n"
-msgstr "Oya in"
-
-# sch/source\ui\app\strings.src:STR_INVALID_NUMBER.text
-#: strings.c:208
-#, fuzzy, c-format
-msgid "invalid number %s"
-msgstr "Umubare utari wo"
-
-#: strings.c:647
-#, fuzzy, c-format
-msgid "invalid integer argument %s"
-msgstr "Sibyo Umubare wuzuye"
-
-#: strings.c:658
-#, fuzzy
-msgid " Display printable strings in [file(s)] (stdin by default)\n"
-msgstr "Gicapika Ikurikiranyanyuguti in IDOSIYE S ku Mburabuzi"
-
-#: strings.c:659
-#, fuzzy
-msgid ""
-" The options are:\n"
-" -a - --all Scan the entire file, not just the data section\n"
-" -f --print-file-name Print the name of the file before each string\n"
-" -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n"
-" -<number> least [number] characters (default 4).\n"
-" -t --radix={o,x,d} Print the location of the string in base 8, 10 or 16\n"
-" -o An alias for --radix=o\n"
-" -T --target=<BFDNAME> Specify the binary file format\n"
-" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
-" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr "Amahitamo a Byose i IDOSIYE OYA i Ibyatanzwe F Gucapa IDOSIYE Izina: i Izina: Bya i IDOSIYE Mbere N Bayite Umubare Gucapa Bya Umubare Umubare Inyuguti Mburabuzi 4. T radix o X D i Ahantu Bya i Ikurikiranyanyuguti in SHINGIRO 8 10 Cyangwa o Irihimbano kugirango radix Intego i Nyabibiri IDOSIYE E Imisobekere: S B L Inyuguti Ingano Na S 7 8 B L h Ifashayobora iyi v Verisiyo i Verisiyo"
-
-#: sysdump.c:768
-#, fuzzy
-msgid "Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "a Bya a Igikoresho"
-
-#: sysdump.c:769
-#, fuzzy
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr "Amahitamo h Ifashayobora iyi v Verisiyo i Verisiyo"
-
-#: sysdump.c:836
-#, fuzzy, c-format
-msgid "cannot open input file %s"
-msgstr "Gufungura Iyinjiza IDOSIYE"
-
-#: version.c:36
-msgid "Copyright 2002 Free Software Foundation, Inc.\n"
-msgstr ""
-
-#: version.c:37
-#, fuzzy
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr "Porogaramu ni Kigenga Gicurasi i Porogaramu Oya"
-
-#: windres.c:205
-#, fuzzy, c-format
-msgid "can't open %s `%s': %s"
-msgstr "Gufungura"
-
-#: windres.c:384
-#, fuzzy
-msgid ": expected to be a directory\n"
-msgstr ":Ikitezwe: Kuri a"
-
-#: windres.c:396
-#, fuzzy
-msgid ": expected to be a leaf\n"
-msgstr ":Ikitezwe: Kuri a"
-
-#: windres.c:405
-#, fuzzy, c-format
-msgid "%s: warning: "
-msgstr "%s:Iburira"
-
-#: windres.c:407
-#, fuzzy
-msgid ": duplicate value\n"
-msgstr ":Gusubiramo"
-
-#: windres.c:569
-#, fuzzy, c-format
-msgid "unknown format type `%s'"
-msgstr "Kitazwi Imiterere Ubwoko"
-
-#: windres.c:570
-#, fuzzy, c-format
-msgid "%s: supported formats:"
-msgstr "%s:Imiterere"
-
-#. Otherwise, we give up.
-#: windres.c:655
-#, fuzzy, c-format
-msgid "can not determine type of file `%s'; use the -I option"
-msgstr "OYA Ubwoko Bya IDOSIYE Gukoresha i Ihitamo"
-
-#: windres.c:669
-#, fuzzy, c-format
-msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
-msgstr "Ihitamo S Iyinjiza IDOSIYE Ibisohoka IDOSIYE"
-
-#: windres.c:671
-#, fuzzy
-msgid ""
-" The options are:\n"
-" -i --input=<file> Name input file\n"
-" -o --output=<file> Name output file\n"
-" -J --input-format=<format> Specify input format\n"
-" -O --output-format=<format> Specify output format\n"
-" -F --target=<target> Specify COFF target\n"
-" --preprocessor=<program> Program to use to preprocess rc file\n"
-" -I --include-dir=<dir> Include directory when preprocessing rc file\n"
-" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
-" -U --undefine <sym> Undefine SYM when preprocessing rc file\n"
-" -v --verbose Verbose - tells you what it's doing\n"
-" -l --language=<val> Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr "Amahitamo i Iyinjiza IDOSIYE Iyinjiza o Ibisohoka IDOSIYE Ibisohoka Iyinjiza Imiterere Imiterere Iyinjiza Ibisohoka Imiterere Imiterere Ibisohoka Intego Intego Porogaramu Kuri Gukoresha Kuri Gushyiramo bushyinguro Ryari: Kugaragaza... Ryari: U Ryari: v L Ururimi Ururimi Ryari: Gukoresha IDOSIYE a By'igihe gito IDOSIYE Bya Kuri i Oya Gukoresha IDOSIYE Mburabuzi"
-
-#: windres.c:687
-#, fuzzy
-msgid " --yydebug Turn on parser debugging\n"
-msgstr "--ku"
-
-#: windres.c:690
-#, fuzzy
-msgid ""
-" -r Ignored for compatibility with rc\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr "-R kugirango Bihuye neza Na: h Ifashayobora iyi Ifashayobora V Verisiyo Verisiyo"
-
-#: windres.c:694
-#, fuzzy
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr "ni Bya Cyangwa Na ni Bivuye i IDOSIYE NIBA OYA A UMWE IDOSIYE Izina: ni Iyinjiza IDOSIYE Iyinjiza IDOSIYE ni Mburabuzi Ibisohoka IDOSIYE ni Mburabuzi"
-
-#: windres.c:833
-#, fuzzy
-msgid "invalid option -f\n"
-msgstr "Sibyo Ihitamo"
-
-#: windres.c:838
-#, fuzzy
-msgid "No filename following the -fo option.\n"
-msgstr "Izina ry'idosiye: i Ihitamo"
-
-#: windres.c:896
-#, fuzzy
-msgid "Option -I is deprecated for setting the input format, please use -J instead.\n"
-msgstr "ni Bitemewe. kugirango Igenamiterere i Iyinjiza Imiterere Gukoresha"
-
-#: windres.c:1014
-#, fuzzy
-msgid "no resources"
-msgstr "Oya"
-
-#: wrstabs.c:395 wrstabs.c:2055
-#, fuzzy, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr "Byanze"
-
-#: wrstabs.c:695
-#, fuzzy, c-format
-msgid "stab_int_type: bad size %u"
-msgstr "Ingano"
-
-#: wrstabs.c:1495
-#, fuzzy, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr "%s:Iburira Kitazwi Ingano kugirango Umwanya in"
diff --git a/binutils-2.17/binutils/po/sv.gmo b/binutils-2.17/binutils/po/sv.gmo
deleted file mode 100644
index 16e64439..00000000
--- a/binutils-2.17/binutils/po/sv.gmo
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/po/sv.po b/binutils-2.17/binutils/po/sv.po
deleted file mode 100644
index 5f37fb53..00000000
--- a/binutils-2.17/binutils/po/sv.po
+++ /dev/null
@@ -1,5571 +0,0 @@
-# Swedish messages for binutils.
-# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-# Tommy Pettersson <ptp@lysator.liu.se>, 2001, 2002.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: binutils 2.12.1\n"
-"POT-Creation-Date: 2002-01-17 13:58+0000\n"
-"PO-Revision-Date: 2002-08-05 00:03+0200\n"
-"Last-Translator: Tommy Pettersson <ptp@lysator.liu.se>\n"
-"Language-Team: Swedish <sv@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#
-#: addr2line.c:73
-#, c-format
-msgid ""
-"Usage: %s [-CfsHV] [-b bfdname] [--target=bfdname]\n"
-" [-e executable] [--exe=executable] [--demangle[=style]]\n"
-" [--basenames] [--functions] [addr addr ...]\n"
-msgstr ""
-"Användning: %s [-CfsHV] [-b bfd-namn] [--target=bfd-namn]\n"
-" [-e programfil] [--exe=programfil] [--demangle[=stil]]\n"
-" [--basenames] [--functions] [adress adress ...]\n"
-
-#
-#: addr2line.c:80 ar.c:289 nlmconv.c:1121 objcopy.c:423 objcopy.c:455
-#: readelf.c:2181 size.c:91 strings.c:655 windres.c:737
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr ""
-"Rapportera fel till %s\n"
-"Skicka synpunkter på översättningen till sv@li.org\n"
-
-#
-#: addr2line.c:240
-#, c-format
-msgid "%s: can not get addresses from archive"
-msgstr "%s: kommer inte åt adresserna i arkivet"
-
-#
-#: addr2line.c:312 nm.c:447 objdump.c:2800
-#, c-format
-msgid "unknown demangling style `%s'"
-msgstr "okänd avkodningsstil \"%s\""
-
-#
-#: ar.c:237
-#, c-format
-msgid "no entry %s in archive\n"
-msgstr "ingen post %s i arkivet\n"
-
-#
-#: ar.c:254
-#, c-format
-msgid "Usage: %s [-X32_64] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"
-msgstr "Användning: %s [-X32_64] [-]{dmpqrstx}[abcfilNoPsSuvV] [medlemsnamn] [nummer] arkivfil fil...\n"
-
-#
-#: ar.c:257
-#, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr " %s -M [<mri-skript]\n"
-
-#
-#: ar.c:258
-msgid " commands:\n"
-msgstr " kommandon:\n"
-
-#
-#: ar.c:259
-msgid " d - delete file(s) from the archive\n"
-msgstr " d - ta bort fil(er) i arkivet\n"
-
-#
-#: ar.c:260
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr " m[ab] - flytta fil(er) i arkivet\n"
-
-#
-#: ar.c:261
-msgid " p - print file(s) found in the archive\n"
-msgstr " p - skriv ut fil(er) som påträffas i arkivet\n"
-
-#
-#: ar.c:262
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr " q[f] - snabbfoga fil(er) till slutet av arkivet\n"
-
-#
-#: ar.c:263
-msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr " r[ab][f][u] - ersätt existerande eller infoga ny(a) fil(er) i arkivet\n"
-
-#
-#: ar.c:264
-msgid " t - display contents of archive\n"
-msgstr " t - visa innehållet i arkivet\n"
-
-#
-#: ar.c:265
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr " x[o] - hämta fil(er) från arkivet\n"
-
-#
-#: ar.c:266
-msgid " command specific modifiers:\n"
-msgstr " modifierare specifika för kommandona:\n"
-
-#
-#: ar.c:267
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr " [a] - infoga fil(er) efter [medlemsnamn]\n"
-
-#
-#: ar.c:268
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr " [b] - infoga fil(er) före [medlemsnamn] (samma som [i])\n"
-
-#
-#: ar.c:269
-msgid " [N] - use instance [count] of name\n"
-msgstr " [N] - använd förekomst [nummer] av namn\n"
-
-#
-#: ar.c:270
-msgid " [f] - truncate inserted file names\n"
-msgstr " [f] - korta av infogade filnamn\n"
-
-#
-#: ar.c:271
-msgid " [P] - use full path names when matching\n"
-msgstr " [P] - använd fullständiga sökvägen vid jämförelser\n"
-
-#
-#: ar.c:272
-msgid " [o] - preserve original dates\n"
-msgstr " [o] - bevara ursprungliga datum\n"
-
-#
-#: ar.c:273
-msgid " [u] - only replace files that are newer than current archive contents\n"
-msgstr " [u] - ersätt bara filer som är nyare än i arkivet\n"
-
-#
-#: ar.c:274
-msgid " generic modifiers:\n"
-msgstr " generella modifierare:\n"
-
-#
-#: ar.c:275
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr " [c] - varna inte om biblioteket måste skapas\n"
-
-#
-#: ar.c:276
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr " [s] - skapa ett index över arkivet (jfr. ranlib)\n"
-
-#
-#: ar.c:277
-msgid " [S] - do not build a symbol table\n"
-msgstr " [S] - skapa inget index över arkivet\n"
-
-#
-#: ar.c:278
-msgid " [v] - be verbose\n"
-msgstr " [v] - var mångordig\n"
-
-#
-#: ar.c:279
-msgid " [V] - display the version number\n"
-msgstr " [V] - visa versionsinformation\n"
-
-#
-#: ar.c:280
-msgid " [-X32_64] - (ignored)\n"
-msgstr " [-X32_64] - (ignorerad)\n"
-
-#
-#: ar.c:284
-#, c-format
-msgid "Usage: %s [-vV] archive\n"
-msgstr "Användning: %s [-vV] arkiv\n"
-
-#
-#: ar.c:505
-msgid "two different operation options specified"
-msgstr "två olika kommandoflaggor angavs"
-
-#
-#: ar.c:580
-#, c-format
-msgid "illegal option -- %c"
-msgstr "otillåten flagga -- %c"
-
-#
-#: ar.c:612
-msgid "no operation specified"
-msgstr "inget kommando angavs"
-
-#
-#: ar.c:615
-msgid "`u' is only meaningful with the `r' option."
-msgstr "\"u\" är bara meningsfull tillsammans med flaggan \"r\"."
-
-#
-#: ar.c:625
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr "\"N\" är bara meningsfull tillsammans med flaggan \"x\" eller \"d\"."
-
-#
-#: ar.c:628
-msgid "Value for `N' must be positive."
-msgstr "Argument till \"N\" måste vara positivt."
-
-#
-#: ar.c:711
-#, c-format
-msgid "internal error -- this option not implemented"
-msgstr "internt fel -- denna flagga är inte implementerad"
-
-#
-#: ar.c:830 ar.c:881 ar.c:1327 objcopy.c:1322
-#, c-format
-msgid "internal stat error on %s"
-msgstr "internt stat-fel för %s"
-
-#
-#: ar.c:834
-#, c-format
-msgid ""
-"\n"
-"<member %s>\n"
-"\n"
-msgstr ""
-"\n"
-"<medlem %s>\n"
-"\n"
-
-#
-#: ar.c:850 ar.c:918
-#, c-format
-msgid "%s is not a valid archive"
-msgstr "%s är inte ett giltigt arkiv"
-
-#
-#: ar.c:886
-#, c-format
-msgid "stat returns negative size for %s"
-msgstr "stat returnerar negativ storlek på %s"
-
-#
-#: ar.c:1013
-#, c-format
-msgid "%s is not an archive"
-msgstr "%s är inte ett arkiv"
-
-#
-#: ar.c:1020
-#, c-format
-msgid "creating %s"
-msgstr "skapar %s"
-
-#
-#: ar.c:1226
-#, c-format
-msgid "No member named `%s'\n"
-msgstr "Ingen medlem heter \"%s\"\n"
-
-#
-#: ar.c:1278
-#, c-format
-msgid "no entry %s in archive %s!"
-msgstr "ingen post %s i arkiv %s!"
-
-#
-# archive map verkar vara vad indexet kallas i källkoden
-#: ar.c:1439
-#, c-format
-msgid "%s: no archive map to update"
-msgstr "%s: inget arkivindex att uppdatera"
-
-#
-#: arsup.c:88
-#, c-format
-msgid "No entry %s in archive.\n"
-msgstr "Ingen post %s i arkivet.\n"
-
-#
-#: arsup.c:120
-#, c-format
-msgid "Can't open file %s\n"
-msgstr "Kan inte öppna fil %s\n"
-
-#
-#: arsup.c:171
-#, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr "%s: Kan inte öppna utdataarkiv %s\n"
-
-#
-#: arsup.c:183
-#, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr "%s: Kan inte öppna indataarkiv %s\n"
-
-#
-#: arsup.c:189
-#, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr "%s: fil %s är inte ett arkiv\n"
-
-#
-#: arsup.c:230
-#, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr "%s: inget utdataarkiv angivet än\n"
-
-#
-#: arsup.c:250 arsup.c:285 arsup.c:321 arsup.c:341 arsup.c:399
-#, c-format
-msgid "%s: no open output archive\n"
-msgstr "%s: inget öppet utdataarkiv\n"
-
-#
-#: arsup.c:258 arsup.c:359 arsup.c:379
-#, c-format
-msgid "%s: can't open file %s\n"
-msgstr "%s: kan inte öppna fil %s\n"
-
-#
-# module file är detsamma som member
-#: arsup.c:306 arsup.c:375 arsup.c:454
-#, c-format
-msgid "%s: can't find module file %s\n"
-msgstr "%s: hittar inte modulfil %s\n"
-
-#
-#: arsup.c:406
-#, c-format
-msgid "Current open archive is %s\n"
-msgstr "Det aktuella öppna arkivet är %s\n"
-
-#
-# BUGG: dubbelt blanksteg
-#: arsup.c:433
-#, c-format
-msgid "%s: no open archive\n"
-msgstr "%s: inget öppet arkiv\n"
-
-#
-#: bucomm.c:106
-#, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr "kan inte sätta BFD:s standardmål till \"%s\": %s"
-
-#
-#: bucomm.c:118
-#, c-format
-msgid "%s: Matching formats:"
-msgstr "%s: Passande format:"
-
-#
-#: bucomm.c:135
-msgid "Supported targets:"
-msgstr "Mål som hanteras:"
-
-#
-#: bucomm.c:137
-#, c-format
-msgid "%s: supported targets:"
-msgstr "%s: mål som hanteras:"
-
-#
-#: bucomm.c:153
-msgid "Supported architectures:"
-msgstr "Arkitekturer som hanteras:"
-
-#
-#: bucomm.c:155
-#, c-format
-msgid "%s: supported architectures:"
-msgstr "%s: arkitekturer som hanteras:"
-
-#
-#: bucomm.c:262
-#, c-format
-msgid "%s: bad number: %s"
-msgstr "%s: felaktigt tal: %s"
-
-#
-#: coffdump.c:106
-#, c-format
-msgid "#lines %d "
-msgstr "#rader %d "
-
-#
-#: coffdump.c:468 sysdump.c:740
-#, c-format
-msgid "%s: Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "%s: Skriv en mänskligt läsbar tolkning av en SYSROFF-objektfil\n"
-
-#
-#: coffdump.c:531 srconv.c:2029 sysdump.c:799
-msgid "no input file specified"
-msgstr "ingen indatafil angavs"
-
-#
-#: debug.c:653
-msgid "debug_add_to_current_namespace: no current file"
-msgstr "debug_add_to_current_namespace: ingen aktuell fil"
-
-#
-#: debug.c:736
-msgid "debug_start_source: no debug_set_filename call"
-msgstr "debug_start_source: inget anrop till debug_set_filename"
-
-#
-#: debug.c:795
-msgid "debug_record_function: no debug_set_filename call"
-msgstr "debug_record_function: inget anrop till debug_set_filename"
-
-#
-#: debug.c:851
-msgid "debug_record_parameter: no current function"
-msgstr "debug_record_parameter: ingen aktuell funktion"
-
-#
-#: debug.c:885
-msgid "debug_end_function: no current function"
-msgstr "debug_end_function: ingen aktuell funktion"
-
-#
-#: debug.c:891
-msgid "debug_end_function: some blocks were not closed"
-msgstr "debug_end_function: några block avslutades inte"
-
-#
-#: debug.c:921
-msgid "debug_start_block: no current block"
-msgstr "debug_start_block: inget aktuellt block"
-
-#
-#: debug.c:959
-msgid "debug_end_block: no current block"
-msgstr "debug_end_block: inget aktuellt block"
-
-#
-#: debug.c:966
-msgid "debug_end_block: attempt to close top level block"
-msgstr "debug_end_block: försök gjordes att avsluta yttersta blocket"
-
-#
-#: debug.c:992
-msgid "debug_record_line: no current unit"
-msgstr "debug_record_line: ingen aktuell kompileringsenhet"
-
-#
-#. FIXME
-#: debug.c:1046
-msgid "debug_start_common_block: not implemented"
-msgstr "debug_start_common_block: inte implementerat"
-
-#
-#. FIXME
-#: debug.c:1058
-msgid "debug_end_common_block: not implemented"
-msgstr "debug_end_common_block: inte implementerat"
-
-#
-# BUGG: Kolon saknas antagligen
-#. FIXME.
-#: debug.c:1152
-msgid "debug_record_label not implemented"
-msgstr "debug_record_label: inte implementerat"
-
-#
-#: debug.c:1178
-msgid "debug_record_variable: no current file"
-msgstr "debug_record_variable: ingen aktuell fil"
-
-#
-#: debug.c:1194
-msgid "debug_record_variable: no current block"
-msgstr "debug_record_variable: inget aktuellt block"
-
-#
-#: debug.c:1764
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr "debug_make_undefined_type: sorten kan inte hanteras"
-
-#
-#: debug.c:1970
-msgid "debug_name_type: no current file"
-msgstr "debug_name_type: ingen aktuell fil"
-
-#
-#: debug.c:2018
-msgid "debug_tag_type: no current file"
-msgstr "debug_tag_type: ingen aktuell fil"
-
-#
-#: debug.c:2026
-msgid "debug_tag_type: extra tag attempted"
-msgstr "debug_tag_type: försök gjordes att sätta en extra tagg"
-
-#
-#: debug.c:2066
-#, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr "Varning: ändrar datatypens storlek från %d till %d\n"
-
-#
-#: debug.c:2090
-msgid "debug_find_named_type: no current compilation unit"
-msgstr "debug_find_named_type: ingen aktuell kompileringsenhet"
-
-#
-#: debug.c:2197
-#, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr "debug_get_real_type: %s har cirkulär felsökningsinformation\n"
-
-#
-#: debug.c:2662
-msgid "debug_write_type: illegal type encountered"
-msgstr "debug_write_type: påträffade en ogiltig typ"
-
-#
-#: dlltool.c:743 dlltool.c:768 dlltool.c:794
-#, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr "Internt fel: Okänd maskintyp: %d"
-
-#
-#: dlltool.c:831
-#, c-format
-msgid "Can't open def file: %s"
-msgstr "Kan inte öppna def-fil: %s"
-
-#
-# Här parsas def-filen bara, så den bearbetas inte
-#: dlltool.c:836
-#, c-format
-msgid "Processing def file: %s"
-msgstr "Behandlar def-fil: %s"
-
-#
-#: dlltool.c:840
-msgid "Processed def file"
-msgstr "Def-filen är behandlad"
-
-#
-#: dlltool.c:866
-#, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr "Syntaktiskt fel i def-fil %s:%d"
-
-#
-#: dlltool.c:905
-#, c-format
-msgid "NAME: %s base: %x"
-msgstr "NAME: %s bas: %x"
-
-#
-#: dlltool.c:908 dlltool.c:927
-msgid "Can't have LIBRARY and NAME"
-msgstr "Kan inte ha både LIBRARY och NAME"
-
-#
-#: dlltool.c:924
-#, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr "LIBRARY: %s bas: %x"
-
-#
-#: dlltool.c:1182 resrc.c:271
-#, c-format
-msgid "wait: %s"
-msgstr "wait: %s"
-
-#
-#: dlltool.c:1187 dllwrap.c:455 resrc.c:276
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr "barnprocessen fick fatal signal %d"
-
-#
-#: dlltool.c:1193 dllwrap.c:462 resrc.c:283
-#, c-format
-msgid "%s exited with status %d"
-msgstr "%s avslutade med status %d"
-
-#
-#: dlltool.c:1225
-#, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr "Suger åt mig info från sektion %s i %s"
-
-#
-#: dlltool.c:1349
-#, c-format
-msgid "Excluding symbol: %s"
-msgstr "Undantar symbol: %s"
-
-#
-#: dlltool.c:1444 dlltool.c:1455 nm.c:958 nm.c:969 objdump.c:383 objdump.c:400
-#, c-format
-msgid "%s: no symbols"
-msgstr "%s: inga symboler"
-
-#
-#. FIXME: we ought to read in and block out the base relocations
-#: dlltool.c:1482
-#, c-format
-msgid "Done reading %s"
-msgstr "Klar med att läsa %s"
-
-#
-#: dlltool.c:1493
-#, c-format
-msgid "Unable to open object file: %s"
-msgstr "Kan inte öppna objektfil: %s"
-
-#
-#: dlltool.c:1496
-#, c-format
-msgid "Scanning object file %s"
-msgstr "Genomsöker objektfil %s"
-
-#
-#: dlltool.c:1511
-#, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr "Kan inte producera en mcore-elf-dll från arkivfil: %s"
-
-#
-#: dlltool.c:1603
-msgid "Adding exports to output file"
-msgstr "Lägger till exporter till utdatafilen"
-
-#
-#: dlltool.c:1648
-msgid "Added exports to output file"
-msgstr "La till exporter till utdatafilen"
-
-#
-#: dlltool.c:1772
-#, c-format
-msgid "Generating export file: %s"
-msgstr "Genererar exportfil: %s"
-
-#
-#: dlltool.c:1777
-#, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr "Kan inte öppna temporär assemblerfil: %s"
-
-#
-#: dlltool.c:1780
-#, c-format
-msgid "Opened temporary file: %s"
-msgstr "Öppnade temporär fil: %s"
-
-#
-#: dlltool.c:2004
-msgid "Generated exports file"
-msgstr "Genererade exportfil"
-
-#
-#: dlltool.c:2266
-#, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr "bfd_open misslyckades att öppna stubbfil: %s"
-
-#
-#: dlltool.c:2269
-#, c-format
-msgid "Creating stub file: %s"
-msgstr "Skapar stubbfil: %s"
-
-#
-#: dlltool.c:2658
-#, c-format
-msgid "failed to open temporary head file: %s"
-msgstr "misslyckades att öppna temporär huvudfil: %s"
-
-#
-#: dlltool.c:2717
-#, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr "misslyckades att öppna temporär svansfil: %s"
-
-#
-#: dlltool.c:2785
-#, c-format
-msgid "Can't open .lib file: %s"
-msgstr "Kan inte öppna .lib-fil: %s"
-
-#
-#: dlltool.c:2788
-#, c-format
-msgid "Creating library file: %s"
-msgstr "Skapar biblioteksfil: %s"
-
-#
-#: dlltool.c:2847
-#, c-format
-msgid "cannot delete %s: %s"
-msgstr "kan inte ta bort %s: %s"
-
-#
-#: dlltool.c:2851
-msgid "Created lib file"
-msgstr "Skapade biblioteksfilen"
-
-#
-#: dlltool.c:2956
-#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr "Varning, ignorerar dubbel EXPORT %s %d,%d"
-
-#
-#: dlltool.c:2962
-#, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr "Fel, dubbel EXPORT med ordningstal: %s"
-
-#
-# Här bearbetas definitionerna (sorteras bl.a.)
-#: dlltool.c:3089
-msgid "Processing definitions"
-msgstr "Bearbetar definitioner"
-
-#
-#: dlltool.c:3127
-msgid "Processed definitions"
-msgstr "Definitionerna är bearbetade"
-
-#
-# BUGG: Kolon fattas
-#. xgetext:c-format
-#: dlltool.c:3138 dllwrap.c:519
-#, c-format
-msgid "Usage %s <options> <object-files>\n"
-msgstr "Användning: %s <flaggor> <objektfiler>\n"
-
-#
-#. xgetext:c-format
-#: dlltool.c:3140
-#, c-format
-msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr " -m --machine <maskin> Skapa som DLL för <maskin>. [förval: %s]\n"
-
-#
-#: dlltool.c:3141
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-msgstr " möjliga <maskin>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-
-#
-#: dlltool.c:3142
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr " -e --output-exp <utnamn> Generera en exportfil.\n"
-
-#
-#: dlltool.c:3143
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr " -l --output-lib <utnamn> Generera ett gränssnittsbibliotek.\n"
-
-#
-#: dlltool.c:3144
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr " -a --add-indirect Lägg till indirekta dll till exportfilen.\n"
-
-#
-#: dlltool.c:3145
-msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr " -D --dllname <namn> Namn på indata-dll att infoga i gränssnittsbiblioteket.\n"
-
-#
-#: dlltool.c:3146
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr " -d --input-def <def-fil> Namn på .def-fil att läsa in.\n"
-
-#
-#: dlltool.c:3147
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr " -z --output-def <def-fil> Namn på .def-fil att skapa.\n"
-
-#
-#: dlltool.c:3148
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols Exportera alla symboler till .def\n"
-
-#
-# Följande sträng har den beskrivande delen indenterad två tecken
-# extra i den engelska texten för att två flaggor är för långa. I den
-# svenska översättningen är de indenterade tre tecken extra för att
-# den ena flaggan blev ytterligare ett tecken för lång.
-#: dlltool.c:3149
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr " --no-export-all-symbols Exportera endast anvisade symboler\n"
-
-#
-# Följande sträng har den beskrivande delen indenterad två tecken
-# extra i den engelska texten för att två flaggor är för långa. I den
-# svenska översättningen är de indenterade tre tecken extra för att
-# den ena flaggan blev ytterligare ett tecken för lång.
-#: dlltool.c:3150
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr " --exclude-symbols <lista> Exportera inte symboler i <lista>\n"
-
-#
-#: dlltool.c:3151
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr " --no-default-excludes Inga automatiskt undantagna symboler\n"
-
-#
-#: dlltool.c:3152
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr " -b --base-file <basfil> Läs den länkargenererade basfilen.\n"
-
-#
-#: dlltool.c:3153
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr " -x --no-idata4 Generera ingen idata$4-sektion.\n"
-
-#
-#: dlltool.c:3154
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr " -c --no-idata5 Generera ingen idata$5-sektion.\n"
-
-#
-#: dlltool.c:3155
-msgid " -U --add-underscore Add underscores to symbols in interface library.\n"
-msgstr " -U --add-underscore Lägg till understreck på symboler i gränssnittsbiblioteket.\n"
-
-#
-#: dlltool.c:3156
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr " -k --kill-at Utplåna @<n> från exporterade namn.\n"
-
-#
-#: dlltool.c:3157
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr " -A --add-stdcall-alias Lägg till alias utan @<n>.\n"
-
-#
-#: dlltool.c:3158
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr " -S --as <namn> Använd <namn> som assemblerare.\n"
-
-#
-#: dlltool.c:3159
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr " -f --as-flags <flaggor> Skicka <flaggor> till assembleraren.\n"
-
-#
-#: dlltool.c:3160
-msgid " -C --compat-implib Create backward compatible import library.\n"
-msgstr " -C --compat-implib Skapa bakåtkompatibelt importbibliotek.\n"
-
-#
-#: dlltool.c:3161
-msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
-msgstr " -n --no-delete Behåll temp.-filer (repetera för ökat antal).\n"
-
-#
-#: dlltool.c:3162
-msgid " -v --verbose Be verbose.\n"
-msgstr " -v --verbose Var mångordig.\n"
-
-#
-#: dlltool.c:3163
-msgid " -V --version Display the program version.\n"
-msgstr " -V --version Visa versionsinformation om programmet.\n"
-
-#
-#: dlltool.c:3164
-msgid " -h --help Display this information.\n"
-msgstr " -h --help Visa den här informationen.\n"
-
-#
-#: dlltool.c:3166
-msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr " -M --mcore-elf <utnamn> Behandla mcore-elf-objektfiler till <utnamn>.\n"
-
-#
-#: dlltool.c:3167
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr " -L --linker <namn> Använd <namn> som länkare.\n"
-
-#
-# Justeringen blir fel här för flaggan är för lång.
-#: dlltool.c:3168
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr " -F --linker-flags <flaggor> Skicka <flaggor> till länkaren.\n"
-
-#
-#: dlltool.c:3315
-#, c-format
-msgid "Unable to open base-file: %s"
-msgstr "Kan inte öppna basfilen: %s"
-
-#
-#: dlltool.c:3344
-#, c-format
-msgid "Machine '%s' not supported"
-msgstr "Maskin \"%s\" hanteras inte"
-
-#
-#: dlltool.c:3447 dllwrap.c:240
-#, c-format
-msgid "Tried file: %s"
-msgstr "Provade fil: %s"
-
-#
-#: dlltool.c:3454 dllwrap.c:247
-#, c-format
-msgid "Using file: %s"
-msgstr "Använder fil: %s"
-
-#
-#: dllwrap.c:334
-#, c-format
-msgid "Keeping temporary base file %s"
-msgstr "Behåller temporär basfil %s"
-
-#
-#: dllwrap.c:336
-#, c-format
-msgid "Deleting temporary base file %s"
-msgstr "Tar bort temporär basfil %s"
-
-#
-#: dllwrap.c:350
-#, c-format
-msgid "Keeping temporary exp file %s"
-msgstr "Behåller temporär exportfil %s"
-
-#
-#: dllwrap.c:352
-#, c-format
-msgid "Deleting temporary exp file %s"
-msgstr "Tar bort temporär exportfil %s"
-
-#
-#: dllwrap.c:365
-#, c-format
-msgid "Keeping temporary def file %s"
-msgstr "Behåller temporär def-fil %s"
-
-#
-#: dllwrap.c:367
-#, c-format
-msgid "Deleting temporary def file %s"
-msgstr "Tar bort temporär def-fil %s"
-
-#
-#: dllwrap.c:520
-msgid " Generic options:\n"
-msgstr " Generella flaggor:\n"
-
-#
-#: dllwrap.c:521
-msgid " --quiet, -q Work quietly\n"
-msgstr " --quiet, -q Arbeta under tystnad\n"
-
-#
-#: dllwrap.c:522
-msgid " --verbose, -v Verbose\n"
-msgstr " --verbose, -v Mångordig\n"
-
-#
-#: dllwrap.c:523
-msgid " --version Print dllwrap version\n"
-msgstr " --version Visa versionsinformation för dllwrap\n"
-
-#
-#: dllwrap.c:524
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr " --implib <utnamn> Synonym för --output-lib\n"
-
-#
-#: dllwrap.c:525
-#, c-format
-msgid " Options for %s:\n"
-msgstr " Flaggor för %s:\n"
-
-#
-#: dllwrap.c:526
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr " --driver-name <enhet> Förvald till \"gcc\"\n"
-
-#
-#: dllwrap.c:527
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr " --driver-flags <flaggor> Förbigå förvalda flaggor för ld\n"
-
-#
-#: dllwrap.c:528
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr " --dlltool-name <dllverktyg> Förvalt till \"dlltool\"\n"
-
-#
-#: dllwrap.c:529
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr " --entry <ingång> Ange alternativ ingångspunkt i DLL:en\n"
-
-#
-#: dllwrap.c:530
-msgid " --image-base <base> Specify image base address\n"
-msgstr " --image-base <bas> Ange bildens basadress\n"
-
-#
-#: dllwrap.c:531
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr " --target <maskin> i386-cygwin32 eller i386-mingw32\n"
-
-#
-#: dllwrap.c:532
-msgid " --dry-run Show what needs to be run\n"
-msgstr " --dry-run Gör inget annat än att visa vad som måste köras\n"
-
-#
-#: dllwrap.c:533
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr " --mno-cygwin Skapa Mingw-DLL\n"
-
-#
-#: dllwrap.c:534
-msgid " Options passed to DLLTOOL:\n"
-msgstr " Flaggor som skickas till DLLVERKTYG:\n"
-
-#
-#: dllwrap.c:535
-msgid " --machine <machine>\n"
-msgstr " --machine <maskin>\n"
-
-#
-#: dllwrap.c:536
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr " --output-exp <utnamn> Generera exportfil.\n"
-
-#
-#: dllwrap.c:537
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr " --output-lib <utnamn> Generera indatabibliotek.\n"
-
-#
-#: dllwrap.c:538
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr " --add-indirect Lägg till indirekta dll till exportfilen.\n"
-
-#
-#: dllwrap.c:539
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr " --dllname <namn> Namn på indata-dll som ska infogas i utdatabiblioteket.\n"
-
-#
-#: dllwrap.c:540
-msgid " --def <deffile> Name input .def file\n"
-msgstr " --def <deffil> Namnge .def-indatafilen\n"
-
-#
-#: dllwrap.c:541
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr " --output-def <deffil> Namnge .def-utdatafilen\n"
-
-#
-#: dllwrap.c:542
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols Exportera alla symboler till .def\n"
-
-#
-#: dllwrap.c:543
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr " --no-export-all-symbols Exportera endast .drectve-symboler\n"
-
-#
-#: dllwrap.c:544
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr " --exclude-symbols <lista> Undanta symbolerna i <lista> från .def\n"
-
-#
-#: dllwrap.c:545
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr " --no-default-excludes Inga automatiskt undantagna symboler\n"
-
-#
-#: dllwrap.c:546
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr " --base-file <basfil> Läs länkargenererad basfil\n"
-
-#
-#: dllwrap.c:547
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr " --no-idata4 Generera ingen idata$4-sektion\n"
-
-#
-#: dllwrap.c:548
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr " --no-idata5 Generera ingen idata$5-sektion\n"
-
-#
-#: dllwrap.c:549
-msgid " -U Add underscores to .lib\n"
-msgstr " -U Lägg till understreck i .lib\n"
-
-#
-#: dllwrap.c:550
-msgid " -k Kill @<n> from exported names\n"
-msgstr " -k Utplåna @<n> från exporterade namn\n"
-
-#
-#: dllwrap.c:551
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr " --add-stdcall-alias Lägg till alias utan @<n>\n"
-
-#
-#: dllwrap.c:552
-msgid " --as <name> Use <name> for assembler\n"
-msgstr " --as <namn> Använd <namn> som assemblerare\n"
-
-#
-#: dllwrap.c:553
-msgid " --nodelete Keep temp files.\n"
-msgstr " --nodelete Behåll temporära filer.\n"
-
-#
-#: dllwrap.c:554
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr " Övriga flaggor skickas oförändrade till programspråksenheten\n"
-
-#
-#: dllwrap.c:824
-msgid "Must provide at least one of -o or --dllname options"
-msgstr "Ange minst en av flaggorna -o eller --dllname"
-
-#
-#: dllwrap.c:852
-msgid ""
-"no export definition file provided.\n"
-"Creating one, but that may not be what you want"
-msgstr ""
-"ingen export-definitionsfil angavs.\n"
-"En sådan skapas, men det är kanske inte vad du vill"
-
-#
-# Indenteringen är ökad för att översättningen ska få plats framför
-# kolonet på alla 4 strängar.
-#: dllwrap.c:1014
-#, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr "DLLVERKTYG namn : %s\n"
-
-#
-# Indenteringen är ökad för att översättningen ska få plats framför
-# kolonet på alla 4 strängar.
-#: dllwrap.c:1015
-#, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr "DLLVERKTYG flaggor: %s\n"
-
-#
-# Indenteringen är ökad för att översättningen ska få plats framför
-# kolonet på alla 4 strängar.
-#: dllwrap.c:1016
-#, c-format
-msgid "DRIVER name : %s\n"
-msgstr "DRIVRUTIN namn : %s\n"
-
-#
-# Indenteringen är ökad för att översättningen ska få plats framför
-# kolonet på alla 4 strängar.
-#: dllwrap.c:1017
-#, c-format
-msgid "DRIVER options : %s\n"
-msgstr "DRIVRUTIN flaggor : %s\n"
-
-#
-#: ieee.c:317
-msgid "unexpected end of debugging information"
-msgstr "oväntat slut på felsökningsinformationen"
-
-#
-#: ieee.c:412
-msgid "invalid number"
-msgstr "ogiltigt tal"
-
-#
-#: ieee.c:471
-msgid "invalid string length"
-msgstr "ogiltig stränglängd"
-
-#
-#: ieee.c:528 ieee.c:569
-msgid "expression stack overflow"
-msgstr "överspill i uttrycksstacken"
-
-#
-#: ieee.c:548
-msgid "unsupported IEEE expression operator"
-msgstr "IEEE-uttrycksoperator som inte stöds"
-
-#
-#: ieee.c:563
-msgid "unknown section"
-msgstr "okänd sektion"
-
-#
-#: ieee.c:584
-msgid "expression stack underflow"
-msgstr "underspill i uttrycksstacken"
-
-#
-#: ieee.c:598
-msgid "expression stack mismatch"
-msgstr "felbalanserad uttrycksstack"
-
-#
-#: ieee.c:637
-msgid "unknown builtin type"
-msgstr "okänd inbyggd typ"
-
-#
-#: ieee.c:782
-msgid "BCD float type not supported"
-msgstr "flyttalstyp BCD stöds inte"
-
-#
-#: ieee.c:928
-msgid "unexpected number"
-msgstr "oväntat tal"
-
-#
-#: ieee.c:935
-msgid "unexpected record type"
-msgstr "oväntad posttyp"
-
-#
-#: ieee.c:968
-msgid "blocks left on stack at end"
-msgstr "block kvar på stacken på slutet"
-
-#
-#: ieee.c:1233
-msgid "unknown BB type"
-msgstr "okänd BB-typ"
-
-#
-#: ieee.c:1242
-msgid "stack overflow"
-msgstr "överspill i stacken"
-
-#
-#: ieee.c:1267
-msgid "stack underflow"
-msgstr "underspill i stacken"
-
-#
-#: ieee.c:1381 ieee.c:1453 ieee.c:2152
-msgid "illegal variable index"
-msgstr "otillåtet variabelindex"
-
-#
-#: ieee.c:1431
-msgid "illegal type index"
-msgstr "otillåtet typindex"
-
-#
-#: ieee.c:1441 ieee.c:1478
-msgid "unknown TY code"
-msgstr "okänd TY-kod"
-
-#
-#: ieee.c:1460
-msgid "undefined variable in TY"
-msgstr "odefinierad variabel i TY"
-
-#
-#. Pascal file name. FIXME.
-#: ieee.c:1871
-msgid "Pascal file name not supported"
-msgstr "Pascal-filnamn stöds inte"
-
-#
-# BUGG: qualif>i<er
-#: ieee.c:1919
-msgid "unsupported qualifer"
-msgstr "bestämningen stöds inte"
-
-#
-#: ieee.c:2190
-msgid "undefined variable in ATN"
-msgstr "odefinierad variabel i ATN"
-
-#
-#: ieee.c:2233
-msgid "unknown ATN type"
-msgstr "okänd ATN-typ"
-
-#
-#. Reserved for FORTRAN common.
-#: ieee.c:2355
-msgid "unsupported ATN11"
-msgstr "ATN11 stöds inte"
-
-#
-#. We have no way to record this information. FIXME.
-#: ieee.c:2382
-msgid "unsupported ATN12"
-msgstr "ATN12 stöds inte"
-
-#
-#: ieee.c:2442
-msgid "unexpected string in C++ misc"
-msgstr "oväntad sträng i C++-misc"
-
-#
-#: ieee.c:2455
-msgid "bad misc record"
-msgstr "felaktig misc-post"
-
-#
-#: ieee.c:2498
-msgid "unrecognized C++ misc record"
-msgstr "okänd C++-misc-post"
-
-#
-#: ieee.c:2615
-msgid "undefined C++ object"
-msgstr "odefinierat C++-objekt"
-
-#
-#: ieee.c:2649
-msgid "unrecognized C++ object spec"
-msgstr "okänd C++-objektspecifikation"
-
-#
-#: ieee.c:2685
-msgid "unsupported C++ object type"
-msgstr "C++-objekttyp som inte stöds"
-
-#
-#: ieee.c:2695
-msgid "C++ base class not defined"
-msgstr "odefinierad C++-basklass"
-
-#
-#: ieee.c:2707 ieee.c:2812
-msgid "C++ object has no fields"
-msgstr "C++-objektet har inga fält"
-
-#
-# FIXME: behållare??
-#: ieee.c:2726
-msgid "C++ base class not found in container"
-msgstr "Hittade inte C++-basklassen i behållaren"
-
-#
-# FIXME: behållare??
-#: ieee.c:2833
-msgid "C++ data member not found in container"
-msgstr "Hittade inte C++-datamedlemmen i behållaren"
-
-#
-#: ieee.c:2874 ieee.c:3024
-msgid "unknown C++ visibility"
-msgstr "okänd C++-synlighet"
-
-#
-#: ieee.c:2908
-msgid "bad C++ field bit pos or size"
-msgstr "C++-fältets bitposition eller bitstorlek är felaktig"
-
-#
-#: ieee.c:3000
-msgid "bad type for C++ method function"
-msgstr "felaktig typ på C++-metodfunktion"
-
-#
-#: ieee.c:3010
-msgid "no type information for C++ method function"
-msgstr "ingen typinformation om C++-metodfunktion"
-
-#
-#: ieee.c:3049
-msgid "C++ static virtual method"
-msgstr "statisk virtuell C++-metod"
-
-#
-#: ieee.c:3144
-msgid "unrecognized C++ object overhead spec"
-msgstr "okänd C++-objektöversiktsspec"
-
-#
-#: ieee.c:3183
-msgid "undefined C++ vtable"
-msgstr "odefinierad C++-v-tabell"
-
-#
-#: ieee.c:3254
-msgid "C++ default values not in a function"
-msgstr "C++-standardvärden inte inom en funktion"
-
-#
-#: ieee.c:3294
-msgid "unrecognized C++ default type"
-msgstr "okänd C++-standardtyp"
-
-#
-#: ieee.c:3325
-msgid "reference parameter is not a pointer"
-msgstr "referensparametern är inte en pekare"
-
-#
-#: ieee.c:3410
-msgid "unrecognized C++ reference type"
-msgstr "okänd C++-referenstyp"
-
-#
-#: ieee.c:3492
-msgid "C++ reference not found"
-msgstr "hittade inte C++-referensen"
-
-#
-#: ieee.c:3500
-msgid "C++ reference is not pointer"
-msgstr "C++-referensen är ingen pekare"
-
-#
-#: ieee.c:3529 ieee.c:3537
-msgid "missing required ASN"
-msgstr "saknar nödvändig ASN"
-
-#
-#: ieee.c:3567 ieee.c:3575
-msgid "missing required ATN65"
-msgstr "saknar nödvändig ATN65"
-
-#
-#: ieee.c:3589
-msgid "bad ATN65 record"
-msgstr "felaktig ATN65-post"
-
-#
-#: ieee.c:4236
-msgid "IEEE numeric overflow: 0x"
-msgstr "IEEE numeriskt överspill: 0x"
-
-#
-#: ieee.c:4282
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr "IEEE överspill i stränglängden: %u\n"
-
-#
-#: ieee.c:5333
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr "IEEE klarar inte heltalstyper av storlek %u\n"
-
-#
-#: ieee.c:5369
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr "IEEE klarar inte flyttalstyper av storlek %u\n"
-
-#
-#: ieee.c:5405
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr "IEEE klarar inte komplextyper av storlek %u\n"
-
-#
-#: nlmconv.c:278 srconv.c:2020
-msgid "input and output files must be different"
-msgstr "utdatafilen måste vara en annan än indatafilen"
-
-#
-#: nlmconv.c:325
-msgid "input file named both on command line and with INPUT"
-msgstr "indatafilen nämnd både på kommandoraden och via INPUT"
-
-#
-#: nlmconv.c:334
-msgid "no input file"
-msgstr "ingen indatafil"
-
-#
-#: nlmconv.c:364
-msgid "no name for output file"
-msgstr "inget namn på utdatafilen"
-
-#
-#: nlmconv.c:377
-msgid "warning: input and output formats are not compatible"
-msgstr "varning: formaten för in- och utdata är inte kompatibla"
-
-#
-#: nlmconv.c:406
-msgid "make .bss section"
-msgstr "skapa .bss-sektion"
-
-#
-#: nlmconv.c:415
-msgid "make .nlmsections section"
-msgstr "skapa .nlmsections-sektion"
-
-#
-#: nlmconv.c:417
-msgid "set .nlmsections flags"
-msgstr "sätt .nlmsections-flaggor"
-
-#
-#: nlmconv.c:445
-msgid "set .bss vma"
-msgstr "sätt vma för .bss"
-
-#
-#: nlmconv.c:452
-msgid "set .data size"
-msgstr "sätt .data-storlek"
-
-#
-#: nlmconv.c:632
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr "varning: symbolen %s importerades men finns inte med i importlistan"
-
-#
-#: nlmconv.c:652
-msgid "set start address"
-msgstr "sätt startadress"
-
-#
-#: nlmconv.c:701
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr "varning: START-procedur %s är inte definierad"
-
-#
-#: nlmconv.c:703
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr "varning: EXIT-procedur %s är inte definierad"
-
-#
-#: nlmconv.c:705
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr "varning: CHECK-procedur %s är inte definierad"
-
-#
-#: nlmconv.c:726 nlmconv.c:915
-msgid "custom section"
-msgstr "anpassningsbar sektion"
-
-#
-#: nlmconv.c:747 nlmconv.c:944
-msgid "help section"
-msgstr "hjälpsektion"
-
-#
-#: nlmconv.c:769 nlmconv.c:962
-msgid "message section"
-msgstr "meddelandesektion"
-
-#
-#: nlmconv.c:785 nlmconv.c:995
-msgid "module section"
-msgstr "modulsektion"
-
-#
-#: nlmconv.c:805 nlmconv.c:1011
-msgid "rpc section"
-msgstr "rpc-section"
-
-#
-#. There is no place to record this information.
-#: nlmconv.c:841
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr "%s: varning: delade bibliotek kan inte ha oinitierad data"
-
-#
-#: nlmconv.c:862 nlmconv.c:1030
-msgid "shared section"
-msgstr "delad sektion"
-
-#
-#: nlmconv.c:870
-msgid "warning: No version number given"
-msgstr "varning: Inget versionsnummer angivet"
-
-#
-#: nlmconv.c:910 nlmconv.c:939 nlmconv.c:957 nlmconv.c:1006 nlmconv.c:1025
-#, c-format
-msgid "%s: read: %s"
-msgstr "%s: läsfel: %s"
-
-#
-#: nlmconv.c:932
-msgid "warning: MAP and FULLMAP are not supported; try ld -M"
-msgstr "varning: MAP och FULLMAP stöds inte; försök med ld -M"
-
-#
-#: nlmconv.c:1101
-#, c-format
-msgid "%s: Convert an object file into a NetWare Loadable Module\n"
-msgstr "%s: Konvertera en objektfil till en inläsningsbar NetWare-modul\n"
-
-#
-#: nlmconv.c:1113
-#, c-format
-msgid ""
-"Usage: %s [-dhV] [-I bfdname] [-O bfdname] [-T header-file] [-l linker]\n"
-" [--input-target=bfdname] [--output-target=bfdname]\n"
-" [--header-file=file] [--linker=linker] [--debug]\n"
-" [--help] [--version]\n"
-" [in-file [out-file]]\n"
-msgstr ""
-"Användning: %s [-dhV] [-I bfd-namn] [-O bfd-namn] [-T huvudfil] [-l länkare]\n"
-" [--input-target=bfd-namn] [--output-target=bfd-namn]\n"
-" [--header-file=fil] [--linker=länkare] [--debug]\n"
-" [--help] [--version]\n"
-" [indatafil [utdatafil]]\n"
-
-#
-#: nlmconv.c:1153
-#, c-format
-msgid "support not compiled in for %s"
-msgstr "inte kompilerad med stöd för %s"
-
-#
-#: nlmconv.c:1193
-msgid "make section"
-msgstr "skapa sektion"
-
-#
-#: nlmconv.c:1207
-msgid "set section size"
-msgstr "sätt sektionsstorlek"
-
-#
-#: nlmconv.c:1213
-msgid "set section alignment"
-msgstr "sätt jämn gräns för sektion"
-
-#
-#: nlmconv.c:1217
-msgid "set section flags"
-msgstr "sätt sektionsflaggor"
-
-#
-#: nlmconv.c:1228
-msgid "set .nlmsections size"
-msgstr "sätt storlek på .nlmsektionen"
-
-#
-#: nlmconv.c:1316 nlmconv.c:1324 nlmconv.c:1333 nlmconv.c:1338
-msgid "set .nlmsection contents"
-msgstr "sätt inehåll i .nlmsektionen"
-
-#
-#: nlmconv.c:1841
-msgid "stub section sizes"
-msgstr "stubbsektionsstorlek"
-
-#
-#: nlmconv.c:1890
-msgid "writing stub"
-msgstr "skriver stubbe"
-
-#
-#: nlmconv.c:1980
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr "olöst PC-relativ omlokalisering mot %s"
-
-#
-#: nlmconv.c:2044
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr "överspill vid justeringen av omlokalisering mot %s"
-
-#
-#: nlmconv.c:2161
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr "%s: exekvering av %s misslyckades: "
-
-#
-#: nlmconv.c:2176
-#, c-format
-msgid "Execution of %s failed"
-msgstr "Exekvering av %s misslyckades"
-
-#
-#: nm.c:300
-#, c-format
-msgid "Usage: %s [OPTION]... [FILE]...\n"
-msgstr "Användning: %s [FLAGGA]... [FIL]...\n"
-
-#
-#: nm.c:301
-msgid "List symbols from FILEs (a.out by default).\n"
-msgstr "Lista symboler i FILerna (eller a.out).\n"
-
-#
-#: nm.c:302
-msgid ""
-"\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', 'lucid', 'arm', 'hp', 'edg' or 'gnu-new-abi'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -h, --help Display this information\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -V, --version Display this program's version number\n"
-" -X 32_64 (ignored)\n"
-"\n"
-msgstr ""
-"\n"
-" -a, --debug-syms Visa endast felsökningssymboler\n"
-" -A, --print-file-name Skriv namnet på indatafilen före varje symbol\n"
-" -B Samma som --format=bsd\n"
-" -C, --demangle[=STIL] Avkoda lågnivåsymbolnamn till användarnivånamn\n"
-" STIL kan vara \"auto\" (det förvalda), \"gnu\",\n"
-" \"lucid\", \"arm\", \"hp\", \"edg\" eller \"gnu-new-abi\"\n"
-" --no-demangle Avkoda inte lågnivåsymbolnamn\n"
-" -D, --dynamic Visa dynamiska symboler istället för vanliga symboler\n"
-" --defined-only Visa endast definierade symboler\n"
-" -e (ignoreras)\n"
-" -f, --format=FORMAT Använd FORMAT som utdataformat. FORMAT kan vara\n"
-" \"bsd\", \"sysv\" eller \"posix\". Förvalet är \"bsd\"\n"
-" -g, --extern-only Visa endast externa symboler\n"
-" -h, --help Visa den här hjälpen\n"
-" -l, --line-numbers Använd felsökningsinformationen för att slå upp\n"
-" filnamn och radnummer för varje symbol\n"
-" -n, --numeric-sort Sortera symboler numeriskt efter adress\n"
-" -o Samma som -A\n"
-" -p, --no-sort Sortera inte symbolerna\n"
-" -P, --portability Samma som --format=posix\n"
-" -r, --reverse-sort Sortera åt andra hållet\n"
-" -s, --print-armap Ta med index för symboler i arkivmedlemmar\n"
-" --size-sort Sortera symboler efter storlek\n"
-" -t, --radix=BAS Skriv tal i talbasen BAS\n"
-" --target=BFD-NAMN Ange målobjektets format som BFD-NAMN\n"
-" -u, --undefined-only Visa endast odefinierade symboler\n"
-" -V, --version Visa programmets versionsinformation\n"
-" -X 32_64 (ignoreras)\n"
-"\n"
-
-#
-#: nm.c:334 objdump.c:216
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr ""
-"Rapportera fel till %s.\n"
-"Skicka synpunkter på översättningen till sv@li.org.\n"
-
-#
-#: nm.c:367
-#, c-format
-msgid "%s: invalid radix"
-msgstr "%s: ogiltig talbas"
-
-#
-#: nm.c:392
-#, c-format
-msgid "%s: invalid output format"
-msgstr "%s: ogiltigt utdataformat"
-
-#
-#: nm.c:504
-msgid "Only -X 32_64 is supported"
-msgstr "Endast -X 32_64 stöds"
-
-#
-#: nm.c:546
-#, c-format
-msgid "data size %ld"
-msgstr "datastorlek %ld"
-
-#
-#: nm.c:1340
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Odefinierade symboler från %s:\n"
-"\n"
-
-#
-#: nm.c:1342
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Symboler från %s:\n"
-"\n"
-
-#
-#: nm.c:1343 nm.c:1397
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"Namn Värde Klass Typ Storl. Rad Sektion\n"
-"\n"
-
-#
-#: nm.c:1394
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Odefinierade symboler från %s[%s]:\n"
-"\n"
-
-#
-#: nm.c:1396
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Symboler från %s[%s]:\n"
-"\n"
-
-#
-#: nm.c:1564
-msgid ""
-"\n"
-"Archive index:\n"
-msgstr ""
-"\n"
-"Arkivindex:\n"
-
-#
-#: objcopy.c:363
-#, c-format
-msgid "Usage: %s <options> in-file [out-file]\n"
-msgstr "Användning: %s <flaggor> indatafil [utdatafil]\n"
-
-#
-#: objcopy.c:364 objcopy.c:433
-msgid " The options are:\n"
-msgstr " Flaggorna är:\n"
-
-#
-#: objcopy.c:365
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -B --binary-architecture <arch> Set arch of output file, when input is binary\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" --debugging Convert debugging information, if possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation information\n"
-" -g --strip-debug Remove all debugging symbols\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" -K --keep-symbol <name> Only copy symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-" --weaken Force all global symbols to be marked as weak\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address <addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to <flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to output\n"
-" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-" --change-leading-char Force output format's leading character style\n"
-" --remove-leading-char Remove leading character from global symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --srec-len <number> Restrict the length of generated Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-" --strip-symbols <file> -N for all symbols listed in <file>\n"
-" --keep-symbols <file> -K for all symbols listed in <file>\n"
-" --localize-symbols <file> -L for all symbols listed in <file>\n"
-" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-" --weaken-symbols <file> -W for all symbols listed in <file>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-msgstr ""
-" -I --input-target <bfd-namn> Antag indatafilens format är <bfd-namn>\n"
-" -O --output-target <bfd-namn> Skapa utdatafilen i formatet <bfd-namn>\n"
-" -B --binary-architecture <ark> Välj arkitektur för utfil när indata är binär\n"
-" -F --target <bfd-namn> Sätt både in- och utformatet till <bfd-namn>\n"
-" --debugging Konvertera felsökningsinfo, om möjligt\n"
-" -p --preserve-dates Kopiera ändrings/åtkomsttider till utdatan\n"
-" -j --only-section <namn> Kopiera endast sektion <namn> till utdatan\n"
-" -R --remove-section <namn> Ta bort sektion <namn> från utdatan\n"
-" -S --strip-all Ta bort all symbol- och omlokaliseringsinfo\n"
-" -g --strip-debug Ta bort alla felsökningssymboler\n"
-" --strip-unneeded Ta bort symboler onödiga för omlokalisering\n"
-" -N --strip-symbol <namn> Kopiera inte symbol <namn>\n"
-" -K --keep-symbol <namn> Kopiera endast symbol <namn>\n"
-" -L --localize-symbol <namn> Markera symbol <namn> som lokal\n"
-" -G --keep-global-symbol <namn> Gör alla symboler lokala, förutom <namn>\n"
-" -W --weaken-symbol <namn> Markera symbol <namn> som vek\n"
-" --weaken Markera alla globala symboler som veka\n"
-" -x --discard-all Ta bort alla icke-globala symboler\n"
-" -X --discard-locals Ta bort alla kompilatorgenererade symboler\n"
-" -i --interleave <antal> Kopiera endast en av varje <antal> byte\n"
-" -b --byte <nr> Välj ut <nr>:e byten i varje intervall\n"
-" --gap-fill <tal> Fyll luckor mellan sektionerna med <tal>\n"
-" --pad-to <adr> Fyll ut efter sista sektionen fram till <adr>\n"
-" --set-start <adr> Sätt startadressen till <adr>\n"
-" {--change-start|--adjust-start} <ökn>\n"
-" Lägg till <ökn> till startadressen\n"
-" {--change-addresses|--adjust-vma} <ökn>\n"
-" Lägg till <ökn> till LMA, VMA och startadr.\n"
-" {--change-section-address|--adjust-section-vma} <namn>{=|+|-}<tal>\n"
-" Ändra LMA och VMA på sektion <namn> med <tal>\n"
-" --change-section-lma <namn>{=|+|-}<tal>\n"
-" Ändra LMA på sektion <namn> med <tal>\n"
-" --change-section-vma <namn>{=|+|-}<tal>\n"
-" Ändra VMA på sektion <namn> med <tal>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Varna (inte/[no-]) om en sektion inte finns\n"
-" --set-section-flags <namn>=<flaggor>\n"
-" Sätt sektion <namn>s attribut till <flaggor>\n"
-" --add-section <namn>=<fil> Lägg till sektion <namn> i <fil> till utdatan\n"
-" --rename-section <gam>=<ny>[,<flaggor>] Byt namn på sektion <gam> till <ny>\n"
-" --change-leading-char Ändra till utformatets typ av inledningstecken\n"
-" --remove-leading-char Ta bort inledningstecken från globala symboler\n"
-" --redefine-sym <gam>=<ny> Definiera om symbolen med namn <gam> till <ny>\n"
-" --srec-len <nr> Begränsa längden på genererade S-poster\n"
-" --srec-forceS3 Begränsa typen av genererade S-poster till S3\n"
-" --strip-symbols <fil> -N för alla symboler som listas i <fil>\n"
-" --keep-symbols <fil> -K för alla symboler som listas i <fil>\n"
-" --localize-symbols <fil> -L för alla symboler som listas i <fil>\n"
-" --keep-global-symbols <fil> -G för alla symboler som listas i <fil>\n"
-" --weaken-symbols <fil> -W för alla symboler som listas i <fil>\n"
-" --alt-machine-code <index> Använd alternativ maskinkod för utdata\n"
-" -v --verbose Lista alla förändrade objektfiler\n"
-" -V --version Visa programmets versionsinformation\n"
-" -h --help Visa denna hjälp\n"
-
-#
-#: objcopy.c:432
-#, c-format
-msgid "Usage: %s <options> in-file(s)\n"
-msgstr "Användning: %s <flaggor> indatafil(er)\n"
-
-#
-#: objcopy.c:434
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation information\n"
-" -g -S --strip-debug Remove all debugging symbols\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" -K --keep-symbol <name> Only copy symbol <name>\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr ""
-" -I --input-target <bfd-namn> Antag indatafilens format är <bfd-namn>\n"
-" -O --output-target <bfd-namn> Skapa utdatafilen i formatet <bfd-namn>\n"
-" -F --target <bfd-namn> Sätt både in- och utformatet till <bfd-namn>\n"
-" -p --preserve-dates Kopiera ändrings/åtkomsttider till utdatan\n"
-" -R --remove-section <namn> Ta bort sektion <namn> från utdatan\n"
-" -s --strip-all Ta bort all symbol- och omlokaliseringsinfo\n"
-" -g -S --strip-debug Ta bort alla felsökningssymboler\n"
-" --strip-unneeded Ta bort symboler onödiga för omlokaliseringen\n"
-" -N --strip-symbol <namn> Kopiera inte symbol <namn>\n"
-" -K --keep-symbol <namn> Kopiera endast symbol <namn>\n"
-" -x --discard-all Ta bort alla icke-globala symboler\n"
-" -X --discard-locals Ta bort alla kompilatorgenererade symboler\n"
-" -v --verbose Lista alla förändrade objektfiler\n"
-" -V --version Visa programmets versionsinformation\n"
-" -h --help Visa denna hjälp\n"
-" -o <fil> Spara den utrensade utdatan i <fil>\n"
-
-#
-#: objcopy.c:504
-#, c-format
-msgid "unrecognized section flag `%s'"
-msgstr "okänd sektionsflagga \"%s\""
-
-#
-#: objcopy.c:505
-#, c-format
-msgid "supported flags: %s"
-msgstr "flaggor som hanteras: %s"
-
-#
-#: objcopy.c:582 objcopy.c:2206
-#, c-format
-msgid "cannot stat: %s: %s"
-msgstr "kan inte ta status: %s: %s"
-
-#
-#: objcopy.c:589 objcopy.c:2224
-#, c-format
-msgid "cannot open: %s: %s"
-msgstr "kan inte öppna: %s: %s"
-
-#
-#: objcopy.c:592 objcopy.c:2228
-#, c-format
-msgid "%s: fread failed"
-msgstr "%s: fread misslyckades"
-
-#
-#: objcopy.c:665
-#, c-format
-msgid "Ignoring rubbish found on line %d of %s"
-msgstr "Ignorerar skräp hittat på rad %d i %s"
-
-#
-#: objcopy.c:886
-#, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr "%s: Flera omdefinieringar av symbol \"%s\""
-
-#
-#: objcopy.c:891
-#, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr "%s: Symbol \"%s\" är mål för mer än en omdefiniering"
-
-#
-#: objcopy.c:943
-msgid "Unable to change endianness of input file(s)"
-msgstr "Kan inte ändra endian-typ på indatafilen(erna)"
-
-#
-#: objcopy.c:951
-#, c-format
-msgid "copy from %s(%s) to %s(%s)\n"
-msgstr "kopierar från %s(%s) till %s(%s)\n"
-
-#
-#: objcopy.c:975
-#, c-format
-msgid "Warning: Output file cannot represent architecture %s"
-msgstr "Varning: Utdatafilen kan inte representera arkitektur %s"
-
-#
-#: objcopy.c:1002
-#, c-format
-msgid "can't create section `%s': %s"
-msgstr "kan inte skapa sektion \"%s\": %s"
-
-#
-#: objcopy.c:1088
-#, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr "Kan inte fylla luckan efter %s: %s"
-
-#
-#: objcopy.c:1113
-#, c-format
-msgid "Can't add padding to %s: %s"
-msgstr "Kan inte fylla ut efter %s: %s"
-
-#
-#: objcopy.c:1252
-#, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr "%s: fel vid kopiering av privat BFD-data: %s"
-
-#
-#: objcopy.c:1265
-msgid "unknown alternate machine code, ignored"
-msgstr "okänd alternativ maskinkod, ignorerad"
-
-#
-#: objcopy.c:1295
-#, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr "kan inte skapa katalog %s för arkivkopiering (fel: %s)"
-
-#
-#: objcopy.c:1466
-#, c-format
-msgid "Multiple renames of section %s"
-msgstr "Flera namnbyten på sektion %s"
-
-#
-#: objcopy.c:1550
-msgid "making"
-msgstr "tillverkning"
-
-#
-#: objcopy.c:1559
-msgid "size"
-msgstr "storlek"
-
-#
-#: objcopy.c:1573
-msgid "vma"
-msgstr "vma"
-
-#
-#: objcopy.c:1599
-msgid "alignment"
-msgstr "jämn gräns"
-
-#
-#: objcopy.c:1607
-msgid "flags"
-msgstr "flaggor"
-
-#
-#: objcopy.c:1624
-msgid "private data"
-msgstr "privat data"
-
-#
-#: objcopy.c:1632
-#, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr "%s: sektion \"%s\": fel på %s: %s"
-
-#
-#: objcopy.c:1910
-#, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr "%s: kan inte skapa felsökningssektion: %s"
-
-#
-#: objcopy.c:1925
-#, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr "%s: kan inte sätta innehållet i felsökningssektionen: %s"
-
-#
-#: objcopy.c:1934
-#, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr "%s: vet inte hur man skriver felsökningsinformation för %s"
-
-#
-#: objcopy.c:2041
-#, c-format
-msgid "%s: cannot stat: %s"
-msgstr "%s: kan inte ta status: %s"
-
-#
-#: objcopy.c:2092
-msgid "byte number must be non-negative"
-msgstr "bytenummer får inte vara negativt"
-
-#
-#: objcopy.c:2102
-msgid "interleave must be positive"
-msgstr "intervallstorleken måste vara positiv"
-
-#
-#: objcopy.c:2122 objcopy.c:2130
-#, c-format
-msgid "%s both copied and removed"
-msgstr "%s både kopierad och borttagen"
-
-#
-#: objcopy.c:2203 objcopy.c:2273 objcopy.c:2373 objcopy.c:2400 objcopy.c:2424
-#: objcopy.c:2428 objcopy.c:2448
-#, c-format
-msgid "bad format for %s"
-msgstr "felaktigt format på %s"
-
-#
-#: objcopy.c:2342
-#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "Varning: kortar av utfyllnadsvärdet från 0x%s till 0x%x"
-
-#
-#: objcopy.c:2494
-msgid "alternate machine code index must be positive"
-msgstr "index för alternativ maskinkod måste vara positivt"
-
-#
-#: objcopy.c:2512
-msgid "byte number must be less than interleave"
-msgstr "bytenummer måste vara mindre än antalet byte i intervallet"
-
-#
-#: objcopy.c:2539
-#, c-format
-msgid "architecture %s unknown"
-msgstr "arkitektur %s är okänd"
-
-#
-#: objcopy.c:2543
-msgid "Warning: input target 'binary' required for binary architecture parameter."
-msgstr "Varning: indata måste ha formatet \"binary\" för binärarkitektursparametern."
-
-#
-#: objcopy.c:2544
-#, c-format
-msgid " Argument %s ignored"
-msgstr " Argument %s ignoreras"
-
-#
-#: objcopy.c:2550
-#, c-format
-msgid "Cannot stat: %s: %s"
-msgstr "Kan inte ta status: %s: %s"
-
-#
-#: objcopy.c:2590 objcopy.c:2604
-#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr "%s %s%c0x%s användes aldrig"
-
-#
-#: objdump.c:164
-#, c-format
-msgid "Usage: %s OPTION... FILE...\n"
-msgstr "Användning: %s FLAGGA... FIL...\n"
-
-#
-#: objdump.c:165
-msgid "Display information from object FILE.\n"
-msgstr "Visa information från en objektFIL.\n"
-
-#
-#: objdump.c:166
-msgid ""
-"\n"
-" At least one of the following switches must be given:\n"
-msgstr ""
-"\n"
-" Minst en av följande flaggor måste anges:\n"
-
-#
-#: objdump.c:167
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" -V, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-" -a, --archive-headers Visa information från arkivhuvuden\n"
-" -f, --file-headers Visa innehållet i det övergripande filhuvudet\n"
-" -p, --private-headers Visa innehållet i objektformatspecifika filhuvuden\n"
-" -h, --[section-]headers Visa innehållet i sektionshuvuden\n"
-" -x, --all-headers Visa innehållet i alla huvuden\n"
-" -d, --disassemble Visa disassemblering av exekverbara sektioner\n"
-" -D, --disassemble-all Visa disassemblering av alla sektioner\n"
-" -S, --source Varva källkod med disassemblering\n"
-" -s, --full-contents Visa hela innehållet i alla utvalda sektioner\n"
-" -g, --debugging Visa felsökningsinformation från objektfilen\n"
-" -G, --stabs Visa (obehandlat) eventuell STABS-info från filen\n"
-" -t, --syms Visa innehållet i symboltabellen(erna)\n"
-" -T, --dynamic-syms Visa innehållet i tabellen med dynamiska symboler\n"
-" -r, --reloc Visa omlokaliseringsposterna i filen\n"
-" -R, --dynamic-reloc Visa de dynamiska omlokaliseringsposterna i filen\n"
-" -V, --version Visa programmets versionsinformation\n"
-" -i, --info Lista de objektformat och arkitekturer som hanteras\n"
-" -H, --help Visa denna hjälp\n"
-
-#
-#: objdump.c:189
-msgid ""
-"\n"
-" The following switches are optional:\n"
-msgstr ""
-"\n"
-" Följande flaggor är frivilliga:\n"
-
-#
-#: objdump.c:190
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', 'gnu',\n"
-" 'lucid', 'arm', 'hp', 'edg', or 'gnu-new-abi'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whoes address is >= ADDR\n"
-" --stop-address=ADDR Only process data whoes address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-"\n"
-msgstr ""
-" -b, --target=BFDNAMN Ange att målobjektets format är BFDNAMN\n"
-" -m, --architecture=MASKIN Ange att målarkitekturen är MASKIN\n"
-" -j, --section=NAMN Visa endast information om sektion NAMN\n"
-" -M, --disassembler-options=FLG Skicka vidare FLG till disassembleraren\n"
-" -EB --endian=big Antag big endian-format vid disassemblering\n"
-" -EL --endian=little Antag little endian-format vid disassemblering\n"
-" --file-start-context Ta med omgivningen i början av filen (med -S)\n"
-" -l, --line-numbers Ta med radnummer och filnamn i utdatan\n"
-" -C, --demangle[=STIL] Avkoda kodade symbolnamn\n"
-" STIL, om angivet, kan vara: \"auto\", \"gnu\",\n"
-" \"lucid\", \"arm\", \"hp\", \"edg\", \"gnu-new-abi\"\n"
-" -w, --wide Anpassa utdatan för mer än 80 kolumner\n"
-" -z, --disassemble-zeroes Hoppa inte över block av nollor vid\n"
-" disassemblering\n"
-" --start-address=ADR Behandla endast data på adresser >= ADR\n"
-" --stop-address=ADR Behandla endast data på adresser <= ADR\n"
-" --prefix-addresses Visa fullständiga adresser jämte disassembler.\n"
-" --[no-]show-raw-insn Visa hex.-kod jämte disassemblering\n"
-" --adjust-vma=OFFSET Lägg till OFFSET till alla visade sektionsadresser\n"
-"\n"
-
-#
-#: objdump.c:359
-msgid "Sections:\n"
-msgstr "Sektioner:\n"
-
-#
-#: objdump.c:362
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idx Namn Storlek VMA LMA Filoffs Just"
-
-#
-#: objdump.c:364
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idx Namn Storlek VMA LMA Filoffs Just"
-
-#
-#: objdump.c:368
-msgid " Flags"
-msgstr " Flaggor"
-
-#
-#: objdump.c:418
-#, c-format
-msgid "%s: not a dynamic object"
-msgstr "%s: inte ett dynamiskt objekt"
-
-#
-#: objdump.c:434
-#, c-format
-msgid "%s: No dynamic symbols"
-msgstr "%s: Inga dynamiska symboler"
-
-#
-#: objdump.c:1124
-msgid "Out of virtual memory"
-msgstr "Slut på virtuellt minne"
-
-#
-#: objdump.c:1553
-#, c-format
-msgid "Can't use supplied machine %s"
-msgstr "Kan inte använda den tillhandahållna maskinen %s"
-
-#
-#: objdump.c:1571
-#, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr "Kan inte disassemblera för arkitektur %s\n"
-
-#
-#: objdump.c:1653
-#, c-format
-msgid "Disassembly of section %s:\n"
-msgstr "Disassemblering av sektion %s:\n"
-
-#
-#: objdump.c:1828
-#, c-format
-msgid ""
-"No %s section present\n"
-"\n"
-msgstr ""
-"Det finns ingen %s-sektion\n"
-"\n"
-
-#
-#: objdump.c:1835
-#, c-format
-msgid "%s has no %s section"
-msgstr "%s har ingen %s-sektion"
-
-#
-#: objdump.c:1849
-#, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr "Läsa %s-sektionen i %s misslyckades: %s"
-
-#
-#: objdump.c:1861
-#, c-format
-msgid "Reading %s section of %s failed: %s\n"
-msgstr "Läsa %s-sektionen i %s misslyckades: %s\n"
-
-#
-#: objdump.c:1904
-#, c-format
-msgid ""
-"Contents of %s section:\n"
-"\n"
-msgstr ""
-"Innehåll i %s-sektionen:\n"
-"\n"
-
-#
-#: objdump.c:2004
-#, c-format
-msgid "architecture: %s, "
-msgstr "arkitektur: %s, "
-
-#
-#: objdump.c:2007
-#, c-format
-msgid "flags 0x%08x:\n"
-msgstr "flaggor 0x%08x:\n"
-
-#
-#: objdump.c:2020
-msgid ""
-"\n"
-"start address 0x"
-msgstr ""
-"\n"
-"startadress 0x"
-
-#
-#: objdump.c:2052
-#, c-format
-msgid ""
-"\n"
-"%s: file format %s\n"
-msgstr ""
-"\n"
-"%s: filformat %s\n"
-
-#
-#: objdump.c:2094
-#, c-format
-msgid "%s: printing debugging information failed"
-msgstr "%s: visa felsökningsinformationen misslyckades"
-
-#
-#: objdump.c:2171
-#, c-format
-msgid "In archive %s:\n"
-msgstr "I arkiv %s:\n"
-
-#
-#: objdump.c:2223
-#, c-format
-msgid "Contents of section %s:\n"
-msgstr "Innehåll i %s-sektionen:\n"
-
-#
-#: objdump.c:2736
-#, c-format
-msgid "BFD header file version %s\n"
-msgstr "BFD-huvudfil version %s\n"
-
-#
-#: objdump.c:2825
-msgid "unrecognized -E option"
-msgstr "okänd -E-flagga"
-
-#
-#: objdump.c:2836
-#, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr "okänd --endian-typ \"%s\""
-
-#
-#: rdcoff.c:205
-#, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr "parse_coff_type: Felaktig typkod 0x%x"
-
-#
-#: rdcoff.c:423 rdcoff.c:531 rdcoff.c:730
-#, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr "bfd_coff_get_syment misslyckades: %s"
-
-#
-#: rdcoff.c:439 rdcoff.c:750
-#, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr "bfd_coff_get_auxent misslyckades: %s"
-
-#
-#: rdcoff.c:817
-#, c-format
-msgid "%ld: .bf without preceding function"
-msgstr "%ld: .bf saknar inledande funktion"
-
-#
-#: rdcoff.c:867
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr "%ld: oväntad .ef\n"
-
-#
-#: rddbg.c:87
-#, c-format
-msgid "%s: no recognized debugging information"
-msgstr "%s: ingen känd felsökningsinformation"
-
-#
-#: rddbg.c:410
-msgid "Last stabs entries before error:\n"
-msgstr "De sista stabs-posterna innan felet:\n"
-
-#
-#: readelf.c:318
-#, c-format
-msgid "%s: Error: "
-msgstr "%s: Fel: "
-
-#
-#: readelf.c:329
-#, c-format
-msgid "%s: Warning: "
-msgstr "%s: Varning: "
-
-#
-#: readelf.c:351
-#, c-format
-msgid "Unable to seek to %x for %s\n"
-msgstr "Kan inte uppsöka %2$s på %1$x\n"
-
-#
-#: readelf.c:362
-#, c-format
-msgid "Out of memory allocating %d bytes for %s\n"
-msgstr "Slut på minne vid allokering av %d byte för %s\n"
-
-#
-#: readelf.c:370
-#, c-format
-msgid "Unable to read in %d bytes of %s\n"
-msgstr "Kan inte läsa in %d byte från %s\n"
-
-#
-#: readelf.c:423 readelf.c:581
-#, c-format
-msgid "Unhandled data length: %d\n"
-msgstr "Storlek på data som inte kan behandlas: %d\n"
-
-#
-#: readelf.c:660
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr "Vet inte hur man omlokaliserar på den här maskinarkitekturen\n"
-
-#
-#: readelf.c:682 readelf.c:711 readelf.c:757 readelf.c:784
-msgid "relocs"
-msgstr "omlokaliseringar"
-
-#
-#: readelf.c:693 readelf.c:722 readelf.c:767 readelf.c:794
-msgid "out of memory parsing relocs"
-msgstr "slut på minne vid tolkning av omlokaliseringar"
-
-#
-#: readelf.c:845
-msgid " Offset Info Type Symbol's Value Symbol's Name Addend\n"
-msgstr " Offset Info Typ Symbolvärde Symbolnamn Tillägg\n"
-
-#
-#: readelf.c:848
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr " Offset Info Typ Symbolvärde Symbolnamn\n"
-
-#
-#: readelf.c:854
-msgid " Offset Info Type Symbol's Value Symbol's Name Addend\n"
-msgstr " Offset Info Typ Symbolvärde Symbolnamn Tillägg\n"
-
-#
-#: readelf.c:857
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr " Offset Info Typ Symbolvärde Symbolnamn\n"
-
-#
-#: readelf.c:1061 readelf.c:1063
-#, c-format
-msgid "unrecognised: %-7lx"
-msgstr "okänd: %-7lx"
-
-#
-#: readelf.c:1085
-#, c-format
-msgid "<string table index %3ld>"
-msgstr "<strängtabellsindex %3ld>"
-
-#
-#: readelf.c:1315
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr "processorspecifik: %lx"
-
-#
-#: readelf.c:1334
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr "operativsystemsspecifik: %lx"
-
-#
-#: readelf.c:1337 readelf.c:1961
-#, c-format
-msgid "<unknown>: %lx"
-msgstr "<okänd>: %lx"
-
-#
-#: readelf.c:1351
-msgid "NONE (None)"
-msgstr "NONE (ingen)"
-
-#
-#: readelf.c:1352
-msgid "REL (Relocatable file)"
-msgstr "REL (omlokaliseringsbar fil)"
-
-#
-#: readelf.c:1353
-msgid "EXEC (Executable file)"
-msgstr "EXEC (exekverbar fil)"
-
-#
-#: readelf.c:1354
-msgid "DYN (Shared object file)"
-msgstr "DYN (delad objektfil)"
-
-#
-#: readelf.c:1355
-msgid "CORE (Core file)"
-msgstr "CORE (minnesfil)"
-
-#
-#: readelf.c:1359
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr "processorspecifik: (%x)"
-
-#
-#: readelf.c:1361
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr "OS-specifik: (%x)"
-
-#
-#: readelf.c:1363 readelf.c:1460 readelf.c:2112
-#, c-format
-msgid "<unknown>: %x"
-msgstr "<okänd>: %x"
-
-#
-#: readelf.c:1376
-msgid "None"
-msgstr "ingen"
-
-#
-#: readelf.c:2152
-msgid "Usage: readelf {options} elf-file(s)\n"
-msgstr "Användning: readelf {flaggor} elf-fil(er)\n"
-
-#
-#: readelf.c:2153
-msgid " Options are:\n"
-msgstr " Flaggorna är:\n"
-
-#
-#: readelf.c:2154
-msgid " -a or --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-msgstr " -a eller --all Samma som: -h -l -S -s -r -d -V -A -I\n"
-
-#
-#: readelf.c:2155
-msgid " -h or --file-header Display the ELF file header\n"
-msgstr " -h eller --file-header Visa ELF-filens huvud\n"
-
-#
-#: readelf.c:2156
-msgid " -l or --program-headers or --segments\n"
-msgstr " -l eller --program-headers eller --segments\n"
-
-#
-#: readelf.c:2157
-msgid " Display the program headers\n"
-msgstr " Visa programhuvudena\n"
-
-#
-#: readelf.c:2158
-msgid " -S or --section-headers or --sections\n"
-msgstr " -S eller --section-headers eller --sections\n"
-
-#
-#: readelf.c:2159
-msgid " Display the sections' header\n"
-msgstr " Visa sektionernas huvud\n"
-
-#
-#: readelf.c:2160
-msgid " -e or --headers Equivalent to: -h -l -S\n"
-msgstr " -e eller --headers Samma som: -h -l -S\n"
-
-#
-#: readelf.c:2161
-msgid " -s or --syms or --symbols Display the symbol table\n"
-msgstr ""
-" -s eller --syms eller --symbols\n"
-" Visa symboltabellen\n"
-
-#
-#: readelf.c:2162
-msgid " -n or --notes Display the core notes (if present)\n"
-msgstr " -n eller --notes Visa kommentarer från minnesutskriften (om de finns)\n"
-
-#
-#: readelf.c:2163
-msgid " -r or --relocs Display the relocations (if present)\n"
-msgstr " -r eller --relocs Visa omlokaliseringsinformationen (om den finns)\n"
-
-#
-#: readelf.c:2164
-msgid " -u or --unwind Display the unwind info (if present)\n"
-msgstr " -u eller --unwind Visa tillbakarullningsinformation (om den finns)\n"
-
-#
-#: readelf.c:2165
-msgid " -d or --dynamic Display the dynamic segment (if present)\n"
-msgstr " -d eller --dynamic Visa det dynamiska segmentet (om det finns)\n"
-
-#
-#: readelf.c:2166
-msgid " -V or --version-info Display the version sections (if present)\n"
-msgstr " -V eller --version-info Visa versionssektionen (om den finns)\n"
-
-#
-#: readelf.c:2167
-msgid " -A or --arch-specific Display architecture specific information (if any).\n"
-msgstr " -A eller --arch-specific Visa arkitekturspecifik information (om den finns)\n"
-
-#
-#: readelf.c:2168
-msgid " -D or --use-dynamic Use the dynamic section info when displaying symbols\n"
-msgstr " -D eller --use-dynamic Använd den dynamiska sektionen för att visa symboler\n"
-
-#
-#: readelf.c:2169
-msgid " -x <number> or --hex-dump=<number>\n"
-msgstr " -x <nr> eller --hex-dump=<nr>\n"
-
-#
-#: readelf.c:2170
-msgid " Dump the contents of section <number>\n"
-msgstr " Visa innehållet i sektion <nr>\n"
-
-#
-#: readelf.c:2171
-msgid " -w[liaprmfs] or --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]\n"
-msgstr " -w[liaprmfs] eller --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]\n"
-
-#
-#: readelf.c:2172
-msgid " Display the contents of DWARF2 debug sections\n"
-msgstr " Visa innehållet i DWARF2-felsökningssektioner\n"
-
-#
-#: readelf.c:2174
-msgid " -i <number> or --instruction-dump=<number>\n"
-msgstr " -i <nr> eller --instruction-dump=<nr>\n"
-
-#
-#: readelf.c:2175
-msgid " Disassemble the contents of section <number>\n"
-msgstr " Disassemblera innehållet i sektion <nr>\n"
-
-#
-#: readelf.c:2177
-msgid " -I or --histogram Display histogram of bucket list lengths\n"
-msgstr " -I eller --histogram Visa ett histogram över hinkarnas listlängder\n"
-
-#
-#: readelf.c:2178
-msgid " -v or --version Display the version number of readelf\n"
-msgstr " -v eller --version Visa versionsinformation om readelf\n"
-
-#
-#: readelf.c:2179
-msgid " -W or --wide Don't split lines or truncate symbols to fit into 80 columns\n"
-msgstr " -W eller --wide Bryt inga rader och kapa inga symboler för att passa 80 kolumner\n"
-
-#
-#: readelf.c:2180
-msgid " -H or --help Display this information\n"
-msgstr " -H eller --help Visa denna hjälp\n"
-
-#
-#: readelf.c:2198
-msgid "Out of memory allocating dump request table."
-msgstr "Slut på minne vid allokering av tabell för önskade utskrifter."
-
-#
-#: readelf.c:2357
-#, c-format
-msgid "Unrecognised debug option '%s'\n"
-msgstr "Okänt felsökningsargument \"%s\"\n"
-
-#
-#: readelf.c:2385
-#, c-format
-msgid "Invalid option '-%c'\n"
-msgstr "Ogiltig flagga \"-%c\"\n"
-
-#
-#: readelf.c:2398
-msgid "Nothing to do.\n"
-msgstr "Inget att göra.\n"
-
-#
-#: readelf.c:2411 readelf.c:2428 readelf.c:4700
-msgid "none"
-msgstr "ingen"
-
-#
-#: readelf.c:2415 readelf.c:2432 readelf.c:2460
-#, c-format
-msgid "<unknown: %x>"
-msgstr "<okänd: %x>"
-
-#
-#: readelf.c:2429
-msgid "2's complement, little endian"
-msgstr "tvåkomplement, little endian"
-
-#
-#: readelf.c:2430
-msgid "2's complement, big endian"
-msgstr "tvåkomplement, big endian"
-
-#
-#: readelf.c:2457
-msgid "Standalone App"
-msgstr "Självständigt program"
-
-#
-#: readelf.c:2475
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr "Inte en ELF-fil - den har fel magiska byte i början\n"
-
-#
-#: readelf.c:2483
-msgid "ELF Header:\n"
-msgstr "ELF-huvud:\n"
-
-#
-#: readelf.c:2484
-msgid " Magic: "
-msgstr " Magi: "
-
-#
-#: readelf.c:2488
-#, c-format
-msgid " Class: %s\n"
-msgstr " Klass: %s\n"
-
-#
-#: readelf.c:2490
-#, c-format
-msgid " Data: %s\n"
-msgstr " Data: %s\n"
-
-#
-#: readelf.c:2492
-#, c-format
-msgid " Version: %d %s\n"
-msgstr " Version: %d %s\n"
-
-#
-#: readelf.c:2499
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr " OS/ABI: %s\n"
-
-#
-#: readelf.c:2501
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr " ABI-version: %d\n"
-
-#
-#: readelf.c:2503
-#, c-format
-msgid " Type: %s\n"
-msgstr " Typ: %s\n"
-
-#
-#: readelf.c:2505
-#, c-format
-msgid " Machine: %s\n"
-msgstr " Maskin: %s\n"
-
-#
-#: readelf.c:2507
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr " Version: 0x%lx\n"
-
-#
-#: readelf.c:2510
-msgid " Entry point address: "
-msgstr " Ingångsadress: "
-
-#
-#: readelf.c:2512
-msgid ""
-"\n"
-" Start of program headers: "
-msgstr ""
-"\n"
-" Start för programhuvuden: "
-
-#
-#: readelf.c:2514
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr ""
-" (byte in i filen)\n"
-" Start för sektionshuvuden: "
-
-#
-#: readelf.c:2516
-msgid " (bytes into file)\n"
-msgstr " (byte in i filen)\n"
-
-#
-#: readelf.c:2518
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr " Flaggor: 0x%lx%s\n"
-
-#
-#: readelf.c:2521
-#, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr " Detta huvuds storlek: %ld (byte)\n"
-
-#
-#: readelf.c:2523
-#, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr " Programhuvudenas storlek: %ld (byte)\n"
-
-#
-#: readelf.c:2525
-#, c-format
-msgid " Number of program headers: %ld\n"
-msgstr " Antal programhuvuden: %ld\n"
-
-#
-#: readelf.c:2527
-#, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr " Sektionshuvudenas storlek: %ld (byte)\n"
-
-#
-#: readelf.c:2529
-#, c-format
-msgid " Number of section headers: %ld"
-msgstr " Antal sektionshuvuden: %ld"
-
-#
-#: readelf.c:2534
-#, c-format
-msgid " Section header string table index: %ld"
-msgstr " Sektionshuvudets strängtabellsndx: %ld"
-
-#
-#: readelf.c:2568 readelf.c:2604
-msgid "program headers"
-msgstr "programhuvuden"
-
-#
-#: readelf.c:2638
-msgid ""
-"\n"
-"There are no program headers in this file.\n"
-msgstr ""
-"\n"
-"Det finns inga programhuvuden i denna fil.\n"
-
-#
-#: readelf.c:2644
-#, c-format
-msgid ""
-"\n"
-"Elf file type is %s\n"
-msgstr ""
-"\n"
-"Elf-filtyp är %s\n"
-
-#
-#: readelf.c:2645
-msgid "Entry point "
-msgstr "Ingångspunkt "
-
-#
-#: readelf.c:2647
-#, c-format
-msgid ""
-"\n"
-"There are %d program headers, starting at offset "
-msgstr ""
-"\n"
-"Det finns %d programhuvuden, med början på offset "
-
-#
-#: readelf.c:2658 readelf.c:2883 readelf.c:2929 readelf.c:2992 readelf.c:3059
-#: readelf.c:4087 readelf.c:4130 readelf.c:4310 readelf.c:5246 readelf.c:5260
-#: readelf.c:9246 readelf.c:9286
-msgid "Out of memory\n"
-msgstr "Slut på minne\n"
-
-#
-# BUGG: plural-s
-#: readelf.c:2676
-#, c-format
-msgid ""
-"\n"
-"Program Header%s:\n"
-msgstr ""
-"\n"
-"Programhuvud%0.s:\n"
-
-#
-#: readelf.c:2680
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Typ Offset VirtAdr FysAdr FilSt MinneSt Flg Just\n"
-
-#
-#: readelf.c:2683
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Typ Offset VirtAdress FysAdress FilStrl MinneSt Flg Just\n"
-
-#
-#: readelf.c:2687
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr " Typ Offset VirtAdress FysAdress\n"
-
-#
-#: readelf.c:2689
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr " FilStorlek MinneStorlek Flagg Justering\n"
-
-#
-#: readelf.c:2789
-msgid "more than one dynamic segment\n"
-msgstr "mer än ett dynamiskt segment\n"
-
-#
-#: readelf.c:2797
-msgid "Unable to find program interpreter name\n"
-msgstr "Kan inte hitta namnet på programtolken\n"
-
-#
-#: readelf.c:2804
-#, c-format
-msgid ""
-"\n"
-" [Requesting program interpreter: %s]"
-msgstr ""
-"\n"
-" [Begär programtolkare: %s]"
-
-#
-#: readelf.c:2822
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-msgstr ""
-"\n"
-" Sektion till segment-avbildning:\n"
-
-#
-#: readelf.c:2823
-msgid " Segment Sections...\n"
-msgstr " Segmentsektioner...\n"
-
-#
-#: readelf.c:2874 readelf.c:2920
-msgid "section headers"
-msgstr "sektionshuvuden"
-
-#
-#: readelf.c:2968 readelf.c:3035
-msgid "symbols"
-msgstr "symboler"
-
-#
-#: readelf.c:2979 readelf.c:3046
-msgid "symtab shndx"
-msgstr "symtab shndx"
-
-#
-#: readelf.c:3147
-msgid ""
-"\n"
-"There are no sections in this file.\n"
-msgstr ""
-"\n"
-"Det finns inga sektioner i denna fil.\n"
-
-#
-#: readelf.c:3153
-#, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr "Det finns %d sektionshuvuden, med början på offset 0x%lx:\n"
-
-#
-#: readelf.c:3170 readelf.c:3479 readelf.c:3826 readelf.c:5397
-msgid "string table"
-msgstr "strängtabell"
-
-#
-#: readelf.c:3191
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr "Filen innehåller flera tabeller med dynamiska symboler\n"
-
-#
-#: readelf.c:3203
-msgid "File contains multiple dynamic string tables\n"
-msgstr "Filen innehåller flera dynamiska strängtabeller\n"
-
-#
-#: readelf.c:3209
-msgid "dynamic strings"
-msgstr "dynamiska strängar"
-
-#
-#: readelf.c:3215
-msgid "File contains multiple symtab shndx tables\n"
-msgstr "Filen innehåller flera symtab-shndx-tabeller\n"
-
-#
-# BUGG: plural-s
-#: readelf.c:3250
-#, c-format
-msgid ""
-"\n"
-"Section Header%s:\n"
-msgstr ""
-"\n"
-"Sektionshuvud%0.s:\n"
-
-#
-#: readelf.c:3254
-msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] Namn Typ Adress Off Strl PS Flg Lk Inf Ju\n"
-
-#
-#: readelf.c:3257
-msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] Namn Typ Adress Off Strl PS Flg Lk Inf Ju\n"
-
-#
-#: readelf.c:3260
-msgid " [Nr] Name Type Address Offset\n"
-msgstr " [Nr] Namn Typ Adress Offset\n"
-
-#
-#: readelf.c:3261
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr " Storlek Poststorlek Flagg Länk Info Just\n"
-
-#
-#: readelf.c:3356
-msgid ""
-"Key to Flags:\n"
-" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-" I (info), L (link order), G (group), x (unknown)\n"
-" O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr ""
-"Nyckel till flaggorna:\n"
-" W (skriv), A (allokera), X (exekvera), M (förena), S (strängar)\n"
-" I (info), L (länkordning), G (grupp), x (okänd)\n"
-" O (extra OS-bearbetning krävs) o (OS-specifik), p (processorspecifik)\n"
-
-#
-#: readelf.c:3417
-#, c-format
-msgid ""
-"\n"
-"Relocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr ""
-"\n"
-"Omlokaliseringssektionen på offset 0x%lx innehåller %ld byte:\n"
-
-#
-#: readelf.c:3424
-msgid ""
-"\n"
-"There are no dynamic relocations in this file.\n"
-msgstr ""
-"\n"
-"Det finns inga dynamiska omlokaliseringar i denna fil.\n"
-
-#
-#: readelf.c:3451
-msgid ""
-"\n"
-"Relocation section "
-msgstr ""
-"\n"
-"Omlokaliseringssektion "
-
-#
-#: readelf.c:3458 readelf.c:3905
-#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr " på offset 0x%lx innehåller %lu poster:\n"
-
-#
-#: readelf.c:3496
-msgid ""
-"\n"
-"There are no relocations in this file.\n"
-msgstr ""
-"\n"
-"Det finns inga omlokaliseringar i denna fil.\n"
-
-#
-#: readelf.c:3692
-msgid "unwind table"
-msgstr "tillbakarullningstabell"
-
-#
-#: readelf.c:3743 readelf.c:3755 readelf.c:7608 readelf.c:7619
-#, c-format
-msgid "Skipping unexpected symbol type %u\n"
-msgstr "Hoppar över oväntad symboltyp %u\n"
-
-#
-#: readelf.c:3763
-#, c-format
-msgid "Skipping unexpected relocation type %s\n"
-msgstr "Hoppar över oväntad omlokaliseringstyp %s\n"
-
-#
-#: readelf.c:3808 readelf.c:3833
-msgid ""
-"\n"
-"There are no unwind sections in this file.\n"
-msgstr ""
-"\n"
-"Det finns inga tillbakarullningssektioner i denna fil.\n"
-
-#
-# BUGG: Fortsättningen är inte markerad för översättning i koden och innehåller '-citattecken.
-#: readelf.c:3884
-msgid ""
-"\n"
-"Could not find unwind info section for "
-msgstr ""
-"\n"
-"Kunde inte hitta tillbakarullningssektion till "
-
-#
-#: readelf.c:3896
-msgid "unwind info"
-msgstr "tillbakarullningsinfo"
-
-#
-#: readelf.c:3898
-msgid ""
-"\n"
-"Unwind section "
-msgstr ""
-"\n"
-"Tillbakarullningssektion "
-
-#
-#: readelf.c:4071 readelf.c:4114
-msgid "dynamic segment"
-msgstr "dynamiskt segment"
-
-#
-#: readelf.c:4183
-msgid ""
-"\n"
-"There is no dynamic segment in this file.\n"
-msgstr ""
-"\n"
-"Det finns inget dynamiskt segment i denna fil.\n"
-
-#
-#: readelf.c:4217
-msgid "Unable to seek to end of file!"
-msgstr "Kan inte uppsöka slutet av filen!"
-
-#
-#: readelf.c:4228
-msgid "Unable to determine the number of symbols to load\n"
-msgstr "Kan inte fastställa hur många symboler som ska läsas in\n"
-
-#
-#: readelf.c:4258
-msgid "Unable to seek to end of file\n"
-msgstr "Kan inte uppsöka slutet av filen\n"
-
-#
-#: readelf.c:4264
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr "Kan inte fastställa längden på den dynamiska strängtabellen\n"
-
-#
-#: readelf.c:4269
-msgid "dynamic string table"
-msgstr "dynamisk strängtabell"
-
-#
-#: readelf.c:4303
-msgid "symbol information"
-msgstr "symbolinformation"
-
-#
-#: readelf.c:4327
-#, c-format
-msgid ""
-"\n"
-"Dynamic segment at offset 0x%x contains %ld entries:\n"
-msgstr ""
-"\n"
-"Dynamiskt segment på offset 0x%x innehåller %ld poster:\n"
-
-#
-#: readelf.c:4330
-msgid " Tag Type Name/Value\n"
-msgstr " Tagg Typ Namn/Värde\n"
-
-#
-#: readelf.c:4366
-msgid "Auxiliary library"
-msgstr "yttre bibliotek"
-
-#
-#: readelf.c:4370
-msgid "Filter library"
-msgstr "filterbibliotek"
-
-#
-#: readelf.c:4374
-msgid "Configuration file"
-msgstr "konfigurationsfil"
-
-#
-#: readelf.c:4378
-msgid "Dependency audit library"
-msgstr "beroendövervakningsbibliotek"
-
-#
-#: readelf.c:4382
-msgid "Audit library"
-msgstr "övervakningsbibliotek"
-
-#
-#: readelf.c:4400 readelf.c:4426 readelf.c:4452
-msgid "Flags:"
-msgstr "flaggor:"
-
-#
-#: readelf.c:4402 readelf.c:4428 readelf.c:4454
-msgid " None\n"
-msgstr " inga\n"
-
-#
-#: readelf.c:4573
-#, c-format
-msgid "Shared library: [%s]"
-msgstr "delat bibliotek: [%s]"
-
-#
-#: readelf.c:4576
-msgid " program interpreter"
-msgstr " programtolk"
-
-#
-#: readelf.c:4580
-#, c-format
-msgid "Library soname: [%s]"
-msgstr "biblioteks so-namn: [%s]"
-
-#
-#: readelf.c:4584
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr "bibliotekets rpath: [%s]"
-
-#
-#: readelf.c:4588
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr "bibliotekets runpath: [%s]"
-
-#
-#: readelf.c:4649
-#, c-format
-msgid "Not needed object: [%s]\n"
-msgstr "onödigt objekt: [%s]\n"
-
-#
-#: readelf.c:4746
-#, c-format
-msgid ""
-"\n"
-"Version definition section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Versiondefinitionssektion \"%s\" innehåller %ld poster:\n"
-
-#
-#: readelf.c:4749
-msgid " Addr: 0x"
-msgstr " Adr: 0x"
-
-#
-#: readelf.c:4751 readelf.c:4946
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr " Offset: %#08lx Länk: %lx (%s)\n"
-
-#
-#: readelf.c:4758
-msgid "version definition section"
-msgstr "versiondefinitionssektion"
-
-#
-#: readelf.c:4784
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr " %#06x: Rev: %d Flaggor: %s"
-
-#
-#: readelf.c:4787
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr " Index: %d Ant: %d "
-
-#
-#: readelf.c:4798
-#, c-format
-msgid "Name: %s\n"
-msgstr "Namn: %s\n"
-
-#
-#: readelf.c:4800
-#, c-format
-msgid "Name index: %ld\n"
-msgstr "Namnindex: %ld\n"
-
-#
-#: readelf.c:4815
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr " %#06x: Förälder %d: %s\n"
-
-#
-#: readelf.c:4818
-#, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr " %#06x: Förälder %d, namnindex: %ld\n"
-
-#
-#: readelf.c:4837
-#, c-format
-msgid ""
-"\n"
-"Version needs section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Versionbehovssektion \"%s\" innehåller %ld poster:\n"
-
-#
-#: readelf.c:4840
-msgid " Addr: 0x"
-msgstr " Adr: 0x"
-
-#
-#: readelf.c:4842
-#, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr " Offset: %#08lx Länk till sektion: %ld (%s)\n"
-
-#
-#: readelf.c:4848
-msgid "version need section"
-msgstr "versionsbehovssektion"
-
-#
-#: readelf.c:4870
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr " %#06x: Version: %d"
-
-#
-#: readelf.c:4873
-#, c-format
-msgid " File: %s"
-msgstr " Fil: %s"
-
-#
-#: readelf.c:4875
-#, c-format
-msgid " File: %lx"
-msgstr " Fil: %lx"
-
-#
-#: readelf.c:4877
-#, c-format
-msgid " Cnt: %d\n"
-msgstr " Ant: %d\n"
-
-#
-#: readelf.c:4895
-#, c-format
-msgid " %#06x: Name: %s"
-msgstr " %#06x: Namn: %s"
-
-#
-#: readelf.c:4898
-#, c-format
-msgid " %#06x: Name index: %lx"
-msgstr " %#06x: Namnindex: %lx"
-
-#
-#: readelf.c:4901
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr " Flaggor: %s Version: %d\n"
-
-#
-#: readelf.c:4937
-msgid "version string table"
-msgstr "versionssträngtabell"
-
-#
-#: readelf.c:4941
-#, c-format
-msgid ""
-"\n"
-"Version symbols section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"Versionsymbolssektion \"%s\" innehåller %d poster:\n"
-
-#
-#: readelf.c:4944
-msgid " Addr: "
-msgstr " Adr: "
-
-#
-#: readelf.c:4954
-msgid "version symbol data"
-msgstr "versionsymbolsdata"
-
-#
-#: readelf.c:4981
-msgid " 0 (*local*) "
-msgstr " 0 (*lokal*) "
-
-#
-#: readelf.c:4985
-msgid " 1 (*global*) "
-msgstr " 1 (*global*) "
-
-#
-#: readelf.c:5020 readelf.c:5454
-msgid "version need"
-msgstr "versionsbehov"
-
-#
-#: readelf.c:5030
-msgid "version need aux (2)"
-msgstr "yttre versionsbehov (2)"
-
-#
-#: readelf.c:5071 readelf.c:5516
-msgid "version def"
-msgstr "versionsdef."
-
-#
-#: readelf.c:5090 readelf.c:5531
-msgid "version def aux"
-msgstr "yttre versionsdef."
-
-#
-#: readelf.c:5121
-msgid ""
-"\n"
-"No version information found in this file.\n"
-msgstr ""
-"\n"
-"Det fanns ingen versionsinformation i denna fil.\n"
-
-#
-#: readelf.c:5139 readelf.c:5174
-#, c-format
-msgid "<processor specific>: %d"
-msgstr "<processorspecifik>: %d"
-
-#
-#: readelf.c:5141 readelf.c:5186
-#, c-format
-msgid "<OS specific>: %d"
-msgstr "<OS-specifik>: %d"
-
-#
-#: readelf.c:5143 readelf.c:5189
-#, c-format
-msgid "<unknown>: %d"
-msgstr "<okänd>: %d"
-
-#
-#: readelf.c:5252
-msgid "Unable to read in dynamic data\n"
-msgstr "Kan inte läsa in dynamisk data\n"
-
-#
-#: readelf.c:5294
-msgid "Unable to seek to start of dynamic information"
-msgstr "Kan inte uppsöka början av den dynamiska informationen"
-
-#
-#: readelf.c:5300
-msgid "Failed to read in number of buckets\n"
-msgstr "Misslyckades läsa in antalet hinkar\n"
-
-#
-#: readelf.c:5306
-msgid "Failed to read in number of chains\n"
-msgstr "Misslyckades Läsa in antalet kedjor\n"
-
-#
-#: readelf.c:5326
-msgid ""
-"\n"
-"Symbol table for image:\n"
-msgstr ""
-"\n"
-"Symboltabell för filbilden:\n"
-
-#
-#: readelf.c:5328
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nr Hin: Värde Strl Typ Bind Synl Idx Namn\n"
-
-#
-#: readelf.c:5330
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nr Hin: Värde Strl Typ Bind Synl Idx Namn\n"
-
-#
-#: readelf.c:5375
-#, c-format
-msgid ""
-"\n"
-"Symbol table '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"Symboltabell \"%s\" innehåller %lu poster:\n"
-
-#
-#: readelf.c:5379
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nr: Värde Strl Typ Bind Synl Idx Namn\n"
-
-#
-#: readelf.c:5381
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nr: Värde Strl Typ Bind Synl Idx Namn\n"
-
-#
-#: readelf.c:5427
-msgid "version data"
-msgstr "versionsdata"
-
-#
-#: readelf.c:5467
-msgid "version need aux (3)"
-msgstr "yttre versionsbehov (3)"
-
-#
-#: readelf.c:5492
-msgid "bad dynamic symbol"
-msgstr "felaktig dynamisk symbol"
-
-#
-#: readelf.c:5554
-msgid ""
-"\n"
-"Dynamic symbol information is not available for displaying symbols.\n"
-msgstr ""
-"\n"
-"Informationen om dynamiska symboler är inte tillgänglig för att visa symboler.\n"
-
-#
-#: readelf.c:5566
-#, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length (total of %d buckets):\n"
-msgstr ""
-"\n"
-"Histogram över hinkarnas listlängd (totalt %d hinkar):\n"
-
-#
-#: readelf.c:5568
-#, c-format
-msgid " Length Number %% of total Coverage\n"
-msgstr " Längd Nummer %% av alla Täckning\n"
-
-#
-#: readelf.c:5573 readelf.c:5592 readelf.c:8825 readelf.c:9017
-msgid "Out of memory"
-msgstr "Slut på minne"
-
-#
-#: readelf.c:5641
-#, c-format
-msgid ""
-"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr ""
-"\n"
-"Dynamiskt info-segment på offset 0x%lx innehåller %d poster:\n"
-
-#
-#: readelf.c:5644
-msgid " Num: Name BoundTo Flags\n"
-msgstr " Nr: Namn BundenTill Flaggor\n"
-
-#
-#: readelf.c:5696
-#, c-format
-msgid ""
-"\n"
-"Assembly dump of section %s\n"
-msgstr ""
-"\n"
-"Disassembleringsutskrift av sektion %s\n"
-
-#
-#: readelf.c:5719
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no data to dump.\n"
-msgstr ""
-"\n"
-"Sektion \"%s\" har ingen data att skriva ut.\n"
-
-#
-#: readelf.c:5724
-#, c-format
-msgid ""
-"\n"
-"Hex dump of section '%s':\n"
-msgstr ""
-"\n"
-"Hexadecimal utskrift av sektion \"%s\":\n"
-
-#
-#: readelf.c:5729
-msgid "section data"
-msgstr "sektionsdata"
-
-#
-#: readelf.c:5878
-msgid "badly formed extended line op encountered!\n"
-msgstr "felaktigt utformad utökad rad-op påträffades!\n"
-
-#
-#: readelf.c:5885
-#, c-format
-msgid " Extended opcode %d: "
-msgstr " Utökad op-kod %d: "
-
-#
-#: readelf.c:5890
-msgid ""
-"End of Sequence\n"
-"\n"
-msgstr ""
-"Slut på sekvensen\n"
-"\n"
-
-#
-#: readelf.c:5896
-#, c-format
-msgid "set Address to 0x%lx\n"
-msgstr "sätt Adress till 0x%lx\n"
-
-#
-#: readelf.c:5901
-msgid " define new File Table entry\n"
-msgstr " definiera ny filtabellspost\n"
-
-#
-#: readelf.c:5902 readelf.c:6031
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr " Post\tKatalog\tTid\tStorl.\tNamn\n"
-
-#
-#: readelf.c:5904
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#
-#: readelf.c:5907 readelf.c:5909 readelf.c:5911 readelf.c:6043 readelf.c:6045
-#: readelf.c:6047
-#, c-format
-msgid "%lu\t"
-msgstr "%lu\t"
-
-#
-#: readelf.c:5912
-#, c-format
-msgid ""
-"%s\n"
-"\n"
-msgstr ""
-"%s\n"
-"\n"
-
-#
-#: readelf.c:5916
-#, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr "OKÄND: längd %d\n"
-
-#
-#: readelf.c:5942
-#, c-format
-msgid ""
-"\n"
-"Dump of debug contents of section %s:\n"
-"\n"
-msgstr ""
-"\n"
-"Utskrift av felsökningsinnehåll i sektion %s:\n"
-"\n"
-
-#
-#: readelf.c:5954
-msgid "64-bit DWARF line info is not supported yet.\n"
-msgstr "64-bitars DWARF-radinformation stöds inte än.\n"
-
-#
-#: readelf.c:5961
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr "Radinformationen verkar vara trasig - sektionen är för liten\n"
-
-#
-#: readelf.c:5969
-msgid "Only DWARF version 2 line info is currently supported.\n"
-msgstr "Endast DWARF version 2:s radinfo stöds för närvarande.\n"
-
-#
-#: readelf.c:5984
-#, c-format
-msgid " Length: %ld\n"
-msgstr " längd: %ld\n"
-
-#
-#: readelf.c:5985
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr " DWARF version: %d\n"
-
-#
-#: readelf.c:5986
-#, c-format
-msgid " Prologue Length: %d\n"
-msgstr " prologlängd: %d\n"
-
-#
-#: readelf.c:5987
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr " minsta instruktionslängd: %d\n"
-
-#
-# BUGG: Ska det inte vara `' på engelska?
-#: readelf.c:5988
-#, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr " initialvärde på \"is_stmt\": %d\n"
-
-#
-#: readelf.c:5989
-#, c-format
-msgid " Line Base: %d\n"
-msgstr " radbas: %d\n"
-
-#
-#: readelf.c:5990
-#, c-format
-msgid " Line Range: %d\n"
-msgstr " radintervall: %d\n"
-
-#
-#: readelf.c:5991
-#, c-format
-msgid " Opcode Base: %d\n"
-msgstr " op-kodbas: %d\n"
-
-#
-#: readelf.c:6000
-msgid ""
-"\n"
-" Opcodes:\n"
-msgstr ""
-"\n"
-" Op-koder:\n"
-
-#
-#: readelf.c:6003
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr " Op-kod %d har %d argument\n"
-
-#
-#: readelf.c:6009
-msgid ""
-"\n"
-" The Directory Table is empty.\n"
-msgstr ""
-"\n"
-" Katalogtabellen är tom.\n"
-
-#
-#: readelf.c:6012
-msgid ""
-"\n"
-" The Directory Table:\n"
-msgstr ""
-"\n"
-" Katalogtabellen:\n"
-
-#
-#: readelf.c:6016
-#, c-format
-msgid " %s\n"
-msgstr " %s\n"
-
-#
-#: readelf.c:6027
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr ""
-"\n"
-" Filnamnstabellen är tom.\n"
-
-#
-#: readelf.c:6030
-msgid ""
-"\n"
-" The File Name Table:\n"
-msgstr ""
-"\n"
-" Filnamnstabellen:\n"
-
-#
-#: readelf.c:6038
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#
-#: readelf.c:6049
-#, c-format
-msgid "%s\n"
-msgstr "%s\n"
-
-#
-#. Now display the statements.
-#: readelf.c:6057
-msgid ""
-"\n"
-" Line Number Statements:\n"
-msgstr ""
-"\n"
-" Radnummersatser:\n"
-
-#
-#: readelf.c:6073
-#, c-format
-msgid " Special opcode %d: advance Address by %d to 0x%lx"
-msgstr " Särskild op-kod %d: öka adressen med %d till 0x%lx"
-
-#
-#: readelf.c:6077
-#, c-format
-msgid " and Line by %d to %d\n"
-msgstr " och radnumret med %d till %d\n"
-
-#
-#: readelf.c:6088
-msgid " Copy\n"
-msgstr " Kopiera\n"
-
-#
-#: readelf.c:6095
-#, c-format
-msgid " Advance PC by %d to %lx\n"
-msgstr " Öka PC med %d till %lx\n"
-
-#
-#: readelf.c:6103
-#, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr " Öka radnumret med %d till %d\n"
-
-#
-#: readelf.c:6110
-#, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr " Sätt filnamnet till post %d i filnamnstabellen\n"
-
-#
-#: readelf.c:6118
-#, c-format
-msgid " Set column to %d\n"
-msgstr " Sätt kolumnen till %d\n"
-
-#
-#: readelf.c:6125
-#, c-format
-msgid " Set is_stmt to %d\n"
-msgstr " Sätt is_stmt till %d\n"
-
-#
-#: readelf.c:6130
-msgid " Set basic block\n"
-msgstr " Sätt basblocket\n"
-
-#
-#: readelf.c:6138
-#, c-format
-msgid " Advance PC by constant %d to 0x%lx\n"
-msgstr " Öka PC med konstant %d till 0x%lx\n"
-
-#
-#: readelf.c:6146
-#, c-format
-msgid " Advance PC by fixed size amount %d to 0x%lx\n"
-msgstr " Öka PC med fastlängdsantal %d till 0x%lx\n"
-
-#
-#: readelf.c:6151
-msgid " Set prologue_end to true\n"
-msgstr " Sätt prologue_end till sannt\n"
-
-#
-#: readelf.c:6155
-msgid " Set epilogue_begin to true\n"
-msgstr " Sätt epilogue_begin till sannt\n"
-
-#
-#: readelf.c:6161
-#, c-format
-msgid " Set ISA to %d\n"
-msgstr " Sätt ISA till %d\n"
-
-#
-#: readelf.c:6165
-#, c-format
-msgid " Unknown opcode %d with operands: "
-msgstr " Okänd op-kod %d med operand: "
-
-#
-#: readelf.c:6197 readelf.c:6658 readelf.c:6730
-#, c-format
-msgid ""
-"Contents of the %s section:\n"
-"\n"
-msgstr ""
-"%s-sektionens innehåll:\n"
-"\n"
-
-#
-#: readelf.c:6216
-msgid "64-bit DWARF pubnames are not supported yet.\n"
-msgstr "64-bitars publika DWARF-namn stöds inte än.\n"
-
-#
-#: readelf.c:6226
-msgid "Only DWARF 2 pubnames are currently supported\n"
-msgstr "Endast publika DWARF 2-namn stöds för närvarande\n"
-
-#
-#: readelf.c:6233
-#, c-format
-msgid " Length: %ld\n"
-msgstr " längd: %ld\n"
-
-#
-#: readelf.c:6235
-#, c-format
-msgid " Version: %d\n"
-msgstr " version: %d\n"
-
-#
-#: readelf.c:6237
-#, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr " offset i .debug_info-sektionen: %ld\n"
-
-#
-#: readelf.c:6239
-#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr " storl. på omr. i .debug_info-sekt.: %ld\n"
-
-#
-#: readelf.c:6242
-msgid ""
-"\n"
-" Offset\tName\n"
-msgstr ""
-"\n"
-" Offset\tNamn\n"
-
-#
-#: readelf.c:6333
-#, c-format
-msgid "Unknown TAG value: %lx"
-msgstr "Okänt TAG-värde: %lx"
-
-#
-#: readelf.c:6443
-#, c-format
-msgid "Unknown AT value: %lx"
-msgstr "Okänt AT-värde: %lx"
-
-#
-#: readelf.c:6480
-#, c-format
-msgid "Unknown FORM value: %lx"
-msgstr "Okänt FORM-värde: %lx"
-
-#
-#: readelf.c:6679
-#, c-format
-msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr " DW_MACINFO_start_file - rad: %d filnummer: %d\n"
-
-#
-#: readelf.c:6684
-msgid " DW_MACINFO_end_file\n"
-msgstr " DW_MACINFO_end_file\n"
-
-#
-#: readelf.c:6692
-#, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_define - rad: %d makro: %s\n"
-
-#
-#: readelf.c:6700
-#, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_undef - rad: %d makro: %s\n"
-
-#
-#: readelf.c:6711
-#, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr " DW_MACINFO_vendor_ext - konstant: %d sträng: %s\n"
-
-#
-# Detta är ett tabellhuvud med två kolumner.
-#: readelf.c:6739
-msgid " Number TAG\n"
-msgstr " Nummer TAGG\n"
-
-#
-#: readelf.c:6745
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr " %ld %s [%s]\n"
-
-#
-#: readelf.c:6748
-msgid "has children"
-msgstr "har barn"
-
-#
-#: readelf.c:6748
-msgid "no children"
-msgstr "inga barn"
-
-#
-#: readelf.c:6752
-#, c-format
-msgid " %-18s %s\n"
-msgstr " %-18s %s\n"
-
-#
-#: readelf.c:6773
-#, c-format
-msgid " %lu byte block: "
-msgstr " %lu byte-block: "
-
-#
-#: readelf.c:7096
-msgid "(User defined location op)"
-msgstr "(användardefinierad plats-op)"
-
-#
-#: readelf.c:7098
-msgid "(Unknown location op)"
-msgstr "(okänd plats-op)"
-
-#
-#: readelf.c:7137
-msgid "debug_str section data"
-msgstr "debug_str sektionsdata"
-
-#
-#: readelf.c:7156
-msgid "<no .debug_str section>"
-msgstr "<ingen .debug_str-sektion>"
-
-#
-#: readelf.c:7159
-msgid "<offset is too big>"
-msgstr "<offseten är för stor>"
-
-#
-#: readelf.c:7179
-msgid ""
-"\n"
-"The .debug_str section is empty.\n"
-msgstr ""
-"\n"
-".debug_str-sektionen är tom.\n"
-
-#
-#: readelf.c:7183
-msgid ""
-"Contents of the .debug_str section:\n"
-"\n"
-msgstr ""
-"Innehåll i .debug_str-sektionen:\n"
-"\n"
-
-#
-#: readelf.c:7354
-#, c-format
-msgid " (indirect string, offset: 0x%lx): "
-msgstr " (indirekt sträng, offset: 0x%lx): "
-
-#
-#: readelf.c:7363
-#, c-format
-msgid "Unrecognised form: %d\n"
-msgstr "Okänt formulär: %d\n"
-
-#
-#: readelf.c:7376
-msgid "(not inlined)"
-msgstr "(inte inlajnad)"
-
-#
-#: readelf.c:7377
-msgid "(inlined)"
-msgstr "(inlajnad)"
-
-#
-#: readelf.c:7378
-msgid "(declared as inline but ignored)"
-msgstr "(deklarerad som inlajn men ignorerad)"
-
-#
-#: readelf.c:7379
-msgid "(declared as inline and inlined)"
-msgstr "(deklarerad som inlajn och inlajnad)"
-
-#
-#: readelf.c:7380
-#, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr " (okänt inlajnattributvärde: %lx)"
-
-#
-#: readelf.c:7545 readelf.c:7746
-#, c-format
-msgid ""
-"The section %s contains:\n"
-"\n"
-msgstr ""
-"Sektion %s innehåller:\n"
-"\n"
-
-#
-#: readelf.c:7568
-msgid "64-bit DWARF debug info is not supported yet.\n"
-msgstr "64-bitars DWARF-felsökningsinfo stöds inte än.\n"
-
-#
-#: readelf.c:7637
-#, c-format
-msgid " Compilation Unit @ %lx:\n"
-msgstr " Kompileringsenhet @ %lx:\n"
-
-#
-#: readelf.c:7638
-#, c-format
-msgid " Length: %ld\n"
-msgstr " längd: %ld\n"
-
-#
-#: readelf.c:7639
-#, c-format
-msgid " Version: %d\n"
-msgstr " version: %d\n"
-
-#
-#: readelf.c:7640
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr " förk.-offset: %ld\n"
-
-#
-#: readelf.c:7641
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " pekarstorlek: %d\n"
-
-#
-#: readelf.c:7645
-msgid "Only version 2 DWARF debug information is currently supported.\n"
-msgstr "Endast version 2 av DWARF-felsökningsinformation stöds för närvarande.\n"
-
-#
-#: readelf.c:7666
-msgid "Unable to locate .debug_abbrev section!\n"
-msgstr "Kan inte hitta någon .debug_abbrev-sektion!\n"
-
-#
-#: readelf.c:7672
-msgid "debug_abbrev section data"
-msgstr "debug_abbrev-sektionsdata"
-
-#
-#: readelf.c:7709
-#, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr "Kan inte hitta post %lu i förkortningstabellen\n"
-
-#
-#: readelf.c:7714
-#, c-format
-msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
-msgstr " <%d><%lx>: Förkortningsnummer: %lu (%s)\n"
-
-#
-#: readelf.c:7767
-msgid "64-bit DWARF aranges are not supported yet.\n"
-msgstr "64-bitars DWARF-a-intervall stöds inte än.\n"
-
-#
-#: readelf.c:7773
-msgid "Only DWARF 2 aranges are currently supported.\n"
-msgstr "Endast DWARF2:s a-intervall stöds för närvarande.\n"
-
-#
-#: readelf.c:7777
-#, c-format
-msgid " Length: %ld\n"
-msgstr " längd: %ld\n"
-
-#
-#: readelf.c:7778
-#, c-format
-msgid " Version: %d\n"
-msgstr " version: %d\n"
-
-#
-#: readelf.c:7779
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr " offset i .debug_info: %lx\n"
-
-#
-#: readelf.c:7780
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " pekarstorlek: %d\n"
-
-#
-#: readelf.c:7781
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr " segmentstorlek: %d\n"
-
-#
-#: readelf.c:7783
-msgid ""
-"\n"
-" Address Length\n"
-msgstr ""
-"\n"
-" adresslängd\n"
-
-#
-#: readelf.c:7965
-#, c-format
-msgid "The section %s contains:\n"
-msgstr "Sektion %s innehåller:\n"
-
-#
-#: readelf.c:7988
-msgid "64-bit DWARF format frames are not supported yet.\n"
-msgstr "64-bitars DWARF-formatmallar stöds inte än.\n"
-
-#
-#: readelf.c:8499
-#, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr "Visa felsökningsinnehållet i sektion %s stöds inte än.\n"
-
-#
-#: readelf.c:8565
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no debugging data.\n"
-msgstr ""
-"\n"
-"Sektion \"%s\" innehåller ingen felsökningsdata.\n"
-
-#
-#: readelf.c:8570 readelf.c:8632
-msgid "debug section data"
-msgstr "felsökningssektionsdata"
-
-#
-#: readelf.c:8586
-#, c-format
-msgid "Unrecognised debug section: %s\n"
-msgstr "Okänd felsökningssektion: %s\n"
-
-#
-#: readelf.c:8660
-msgid "Some sections were not dumped because they do not exist!\n"
-msgstr "Några sektioner skrevs inte ut eftersom de inte existerar!\n"
-
-#
-#: readelf.c:8733
-msgid "liblist"
-msgstr "bibliotekslista"
-
-#
-#: readelf.c:8818
-msgid "options"
-msgstr "flaggor"
-
-#
-#: readelf.c:8849
-#, c-format
-msgid ""
-"\n"
-"Section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"Sektion \"%s\" innehåller %d poster:\n"
-
-#
-# BUGG: Fel i originalet?
-#: readelf.c:9010
-msgid "conflict list with without table"
-msgstr "konfliktlista utan tabell"
-
-#
-#: readelf.c:9028 readelf.c:9044
-msgid "conflict"
-msgstr "konflikt"
-
-#
-#: readelf.c:9054
-#, c-format
-msgid ""
-"\n"
-"Section '.conflict' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Sektion \".conflict\" innehåller %ld poster:\n"
-
-#
-#: readelf.c:9056
-msgid " Num: Index Value Name"
-msgstr " Num: Index Värde Namn"
-
-#
-#: readelf.c:9083
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr "NT_PRSTATUS (prstatus-struktur)"
-
-#
-#: readelf.c:9084
-msgid "NT_FPREGSET (floating point registers)"
-msgstr "NT_FPREGSET (flyttalsregister)"
-
-#
-#: readelf.c:9085
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr "NT_PRPSINFO (prpsinfo-struktur)"
-
-#
-#: readelf.c:9086
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr "NT_TASKSTRUCT (uppgiftsstruktur)"
-
-#
-#: readelf.c:9087
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr "NT_PRXFPREG (user_xfpregs-struktur)"
-
-#
-#: readelf.c:9088
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr "NT_PSTATUS (pstatus-struktur)"
-
-#
-#: readelf.c:9089
-msgid "NT_FPREGS (floating point registers)"
-msgstr "NT_FPREGS (flyttalsregister)"
-
-#
-#: readelf.c:9090
-msgid "NT_PSINFO (psinfo structure)"
-msgstr "NT_PSINFO (psinfo-struktur)"
-
-#
-#: readelf.c:9091
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr "NT_LWPSTATUS (lwpstatus_t-struktur)"
-
-#
-#: readelf.c:9092
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr "NT_LWPSINFO (lwpsinfo_t-struktur)"
-
-#
-# BUGG: Stavfel i originalet (str>uc<ture)
-#: readelf.c:9093
-msgid "NT_WIN32PSTATUS (win32_pstatus strcuture)"
-msgstr "NT_WIN32PSTATUS (win32_pstatus-struktur)"
-
-#
-#: readelf.c:9095 readelf.c:9119
-#, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr "Okänd kommentarstyp: (0x%08x)"
-
-#
-#. NetBSD core "procinfo" structure.
-#: readelf.c:9109
-msgid "NetBSD procinfo structure"
-msgstr "NetBSD processinfo-struktur"
-
-#
-# FIXME
-#: readelf.c:9136 readelf.c:9150
-msgid "PT_GETREGS (reg structure)"
-msgstr "PT_GETREGS (registerstruktur)"
-
-#
-# FIXME
-#: readelf.c:9138 readelf.c:9152
-msgid "PT_GETFPREGS (fpreg structure)"
-msgstr "PT_GETFPREGS (fpreg-struktur)"
-
-#
-# FIXME
-#: readelf.c:9158
-#, c-format
-msgid "PT_FIRSTMACH+%d"
-msgstr "PT_FIRSTMACH+%d"
-
-#
-#: readelf.c:9212
-msgid "notes"
-msgstr "kommentarer"
-
-#
-#: readelf.c:9218
-#, c-format
-msgid ""
-"\n"
-"Notes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr ""
-"\n"
-"Kommentarer på offset 0x%08lx av längd 0x%08lx:\n"
-
-#
-#: readelf.c:9220
-msgid " Owner\t\tData size\tDescription\n"
-msgstr " Ägare\t\tData-storlek\tBeskrivning\n"
-
-#
-#: readelf.c:9331
-msgid "No note segments present in the core file.\n"
-msgstr "Det finns inga kommentarer i minnesfilen.\n"
-
-#
-#: readelf.c:9409
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr ""
-"Den här binären av readelf har byggts utan stöd för en 64-bitars\n"
-"datatyp och kan därför inte läsa 64-bitars ELF-filer.\n"
-
-#
-#: readelf.c:9452
-#, c-format
-msgid "Cannot stat input file %s.\n"
-msgstr "Kan inte ta status för indatafil %s.\n"
-
-#
-#: readelf.c:9459
-#, c-format
-msgid "Input file %s not found.\n"
-msgstr "Indatafil %s finns inte.\n"
-
-#
-#: readelf.c:9465
-#, c-format
-msgid "%s: Failed to read file header\n"
-msgstr "%s: Misslyckades läsa filhuvud\n"
-
-#
-#: readelf.c:9479
-#, c-format
-msgid ""
-"\n"
-"File: %s\n"
-msgstr ""
-"\n"
-"Fil: %s\n"
-
-#
-#: rename.c:131
-#, c-format
-msgid "%s: cannot set time: %s"
-msgstr "%s: kan inte sätta tiden: %s"
-
-#
-#. We have to clean up here.
-#: rename.c:170 rename.c:203
-#, c-format
-msgid "%s: rename: %s"
-msgstr "%s: kan inte byta namn: %s"
-
-#
-#: rename.c:211
-#, c-format
-msgid "%s: simple_copy: %s"
-msgstr "%s: kopieringsfel: %s"
-
-#
-#: resbin.c:130
-#, c-format
-msgid "%s: not enough binary data"
-msgstr "%s: inte tillräckligt med binärdata"
-
-#
-#: resbin.c:149
-msgid "null terminated unicode string"
-msgstr "nollterminerad unicode-sträng"
-
-#
-#: resbin.c:179 resbin.c:185
-msgid "resource ID"
-msgstr "resurs-ID"
-
-#
-#: resbin.c:229
-msgid "cursor"
-msgstr "markör"
-
-#
-#: resbin.c:263 resbin.c:270
-msgid "menu header"
-msgstr "menyhuvud"
-
-#
-#: resbin.c:280
-msgid "menuex header"
-msgstr "meny-ext.-huvud"
-
-#
-#: resbin.c:284
-msgid "menuex offset"
-msgstr "meny-ext.-offset"
-
-#
-#: resbin.c:291
-#, c-format
-msgid "unsupported menu version %d"
-msgstr "menyversion %d stöds inte"
-
-#
-#: resbin.c:319 resbin.c:334 resbin.c:400
-msgid "menuitem header"
-msgstr "menyobjektshuvud"
-
-#
-#: resbin.c:430
-msgid "menuitem"
-msgstr "menyobjekt"
-
-#
-#: resbin.c:471 resbin.c:499
-msgid "dialog header"
-msgstr "dialoghuvud"
-
-#
-#: resbin.c:489
-#, c-format
-msgid "unexpected dialog signature %d"
-msgstr "oväntad dialogsignatur %d"
-
-#
-#: resbin.c:531
-msgid "dialog font point size"
-msgstr "dialogtypsnittsstorlek"
-
-#
-#: resbin.c:539
-msgid "dialogex font information"
-msgstr "dialog-ext.-typsnittsinformation"
-
-#
-#: resbin.c:564 resbin.c:582
-msgid "dialog control"
-msgstr "dialogkontroll"
-
-#
-#: resbin.c:574
-msgid "dialogex control"
-msgstr "dioalog-ext.kontroll"
-
-#
-#: resbin.c:603
-msgid "dialog control end"
-msgstr "dialogkontrollsslut"
-
-#
-#: resbin.c:615
-msgid "dialog control data"
-msgstr "dialogkontrollsdata"
-
-#
-#: resbin.c:658
-msgid "stringtable string length"
-msgstr "strängtabellsstränglängd"
-
-#
-#: resbin.c:668
-msgid "stringtable string"
-msgstr "strängtabellssträng"
-
-#
-#: resbin.c:701
-msgid "fontdir header"
-msgstr "typsnittskatalogshuvud"
-
-#
-#: resbin.c:714
-msgid "fontdir"
-msgstr "typsnittskatalog"
-
-#
-#: resbin.c:730
-msgid "fontdir device name"
-msgstr "typsnittskatalogsenhetsnamn"
-
-#
-#: resbin.c:736
-msgid "fontdir face name"
-msgstr "typsnittskatalogstypsnittsnamn"
-
-#
-#: resbin.c:779
-msgid "accelerator"
-msgstr "accelererare"
-
-#
-#: resbin.c:843
-msgid "group cursor header"
-msgstr "gruppmarkörshuvud"
-
-#
-#: resbin.c:847
-#, c-format
-msgid "unexpected group cursor type %d"
-msgstr "oväntad gruppmarkörstyp %d"
-
-#
-#: resbin.c:862
-msgid "group cursor"
-msgstr "gruppmarkör"
-
-#
-#: resbin.c:901
-msgid "group icon header"
-msgstr "gruppikonshuvud"
-
-#
-#: resbin.c:905
-#, c-format
-msgid "unexpected group icon type %d"
-msgstr "oväntad gruppikonstyp %d"
-
-#
-#: resbin.c:920
-msgid "group icon"
-msgstr "gruppikon"
-
-#
-#: resbin.c:991 resbin.c:1210
-msgid "unexpected version string"
-msgstr "oväntad versionssträng"
-
-#
-#: resbin.c:1025
-#, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr "versionslängd %d passar inte med resurslängd %lu"
-
-#
-#: resbin.c:1029
-#, c-format
-msgid "unexpected version type %d"
-msgstr "oväntad versionstyp %d"
-
-#
-#: resbin.c:1041
-#, c-format
-msgid "unexpected fixed version information length %d"
-msgstr "oväntad längd %d på fast versionsinformation"
-
-#
-#: resbin.c:1044
-msgid "fixed version info"
-msgstr "fast versionsinfo"
-
-#
-#: resbin.c:1048
-#, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr "oväntad fast versionssignatur %lu"
-
-#
-#: resbin.c:1052
-#, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr "oväntad version %lu av fast versionsinformation"
-
-#
-#: resbin.c:1081
-msgid "version var info"
-msgstr "variabel versionsinfo"
-
-#
-#: resbin.c:1098
-#, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr "oväntad längd %d på värde för strängfilsinfo"
-
-#
-#: resbin.c:1108
-#, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr "oväntad längd %d på värde för versionssträngtabell"
-
-#
-#: resbin.c:1142
-#, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr "oväntad längd %d != %d + %d på versionssträng"
-
-#
-#: resbin.c:1153
-#, c-format
-msgid "unexpected version string length %d < %d"
-msgstr "oväntad längd %d < %d på versionssträng"
-
-#
-#: resbin.c:1170
-#, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr "oväntad längd %d på värde för var.filinfo"
-
-#
-#: resbin.c:1189
-msgid "version varfileinfo"
-msgstr "versionsvar.filinfo"
-
-#
-#: resbin.c:1204
-#, c-format
-msgid "unexpected version value length %d"
-msgstr "oväntad längd %d på värde för version"
-
-#
-#: rescoff.c:128
-msgid "filename required for COFF input"
-msgstr "filnamn krävs för COFF-indata"
-
-#
-#: rescoff.c:145
-#, c-format
-msgid "%s: no resource section"
-msgstr "%s: ingen resurssektion"
-
-#
-#: rescoff.c:152
-msgid "can't read resource section"
-msgstr "kan inte läsa resurssektionen"
-
-#
-#: rescoff.c:178
-#, c-format
-msgid "%s: %s: address out of bounds"
-msgstr "%s: %s: adress utanför begränsningen"
-
-#
-#: rescoff.c:197
-msgid "directory"
-msgstr "katalog"
-
-#
-#: rescoff.c:225
-msgid "named directory entry"
-msgstr "namngiven katalogpost"
-
-#
-#: rescoff.c:234
-msgid "directory entry name"
-msgstr "katalogpostnamn"
-
-#
-#: rescoff.c:254
-msgid "named subdirectory"
-msgstr "namngiven underkatalog"
-
-#
-#: rescoff.c:262
-msgid "named resource"
-msgstr "namngiven resurs"
-
-#
-#: rescoff.c:277
-msgid "ID directory entry"
-msgstr "ID-katalogpost"
-
-#
-#: rescoff.c:294
-msgid "ID subdirectory"
-msgstr "ID-underkatalog"
-
-#
-#: rescoff.c:302
-msgid "ID resource"
-msgstr "ID-resurs"
-
-#
-#: rescoff.c:328
-msgid "resource type unknown"
-msgstr "okänd resurstyp"
-
-#
-#: rescoff.c:331
-msgid "data entry"
-msgstr "datapost"
-
-#
-#: rescoff.c:339
-msgid "resource data"
-msgstr "resursdata"
-
-#
-#: rescoff.c:344
-msgid "resource data size"
-msgstr "storlek på resursdata"
-
-#
-#: rescoff.c:439
-msgid "filename required for COFF output"
-msgstr "filnamn krävs för COFF-utdata"
-
-#
-#: rescoff.c:738
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr "kan inte ta fram BFD_RELOC_RVA-relokeringstyp"
-
-#
-#: resrc.c:240 resrc.c:312
-#, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr "kan inte öppna temporärfil \"%s\": %s"
-
-#
-#: resrc.c:246
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr "kan inte omdirigera standard ut: \"%s\": %s"
-
-#
-#: resrc.c:262
-#, c-format
-msgid "%s %s: %s"
-msgstr "%s %s: %s"
-
-#
-#: resrc.c:308
-#, c-format
-msgid "can't execute `%s': %s"
-msgstr "kan inte exekvera \"%s\": %s"
-
-#
-#: resrc.c:317
-#, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr "Utnyttjar temporärfil \"%s\" till att läsa preprocessorutdata\n"
-
-#
-#: resrc.c:324
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr "kan inte anropa popen \"%s\": %s"
-
-#
-#: resrc.c:326
-msgid "Using popen to read preprocessor output\n"
-msgstr "Använder popen för att läsa utdata från preprocessorn\n"
-
-#
-#: resrc.c:369
-#, c-format
-msgid "Tried `%s'\n"
-msgstr "Provade \"%s\"\n"
-
-#
-#: resrc.c:380
-#, c-format
-msgid "Using `%s'\n"
-msgstr "Använder \"%s\"\n"
-
-#
-#: resrc.c:541
-#, c-format
-msgid "%s:%d: %s\n"
-msgstr "%s:%d: %s\n"
-
-#
-#: resrc.c:550
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr "%s: oväntat filslut"
-
-#
-#: resrc.c:607
-#, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr "%s: läsning av %lu byte gav %lu"
-
-#
-#: resrc.c:649 resrc.c:903 resrc.c:1176 resrc.c:1330
-#, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr "stat misslyckades på bildfil \"%s\": %s"
-
-#
-#: resrc.c:702
-#, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr "markörfil \"%s\" innehåller inte markördata"
-
-#
-#: resrc.c:734 resrc.c:1047
-#, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr "%s: fseek till %lu misslyckades: %s"
-
-#
-#: resrc.c:871
-msgid "help ID requires DIALOGEX"
-msgstr "hjälp-ID kräver DIALOGEX"
-
-#
-#: resrc.c:873
-msgid "control data requires DIALOGEX"
-msgstr "kontrolldata kräver DIALOGEX"
-
-#
-#: resrc.c:1016
-#, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr "ikonfil \"%s\" innehåller inte ikondata"
-
-#
-#: resrc.c:1535
-#, c-format
-msgid "can't open `%s' for output: %s"
-msgstr "kan inte öppna \"%s\" för utmatning: %s"
-
-#
-#: size.c:79
-#, c-format
-msgid ""
-"Usage: %s [-A | --format=sysv | -B | --format=berkeley]\n"
-" [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n"
-" [-V | --version] [--target=bfdname] [--help] [file...]\n"
-msgstr ""
-"Användning: %s [-A | --format=sysv | -B | --format=berkeley]\n"
-" [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n"
-" [-V | --version] [--target=bfdnamn] [--help] [fil...]\n"
-
-#
-#: size.c:85
-msgid "default is --format=berkeley\n"
-msgstr "standardvärdet är --format=berkeley\n"
-
-#
-#: size.c:87
-msgid "default is --format=sysv\n"
-msgstr "standardvärdet är --format=sysv\n"
-
-#
-#: size.c:146
-#, c-format
-msgid "invalid argument to --format: %s"
-msgstr "ogiltigt argument till --format: %s"
-
-#
-#: size.c:173
-#, c-format
-msgid "Invalid radix: %s\n"
-msgstr "Ogiltig talbas: %s\n"
-
-#
-#: srconv.c:1931
-#, c-format
-msgid "Usage: %s [-dhVq] in-file [out-file]\n"
-msgstr "Användning: %s [-dhVq] infil [utfil]\n"
-
-#
-#: srconv.c:1938
-#, c-format
-msgid "%s: Convert a COFF object file into a SYSROFF object file\n"
-msgstr "%s: Konverterar en COFF-objektfil till en SYSROFF-objektfil\n"
-
-#
-#: srconv.c:2074
-#, c-format
-msgid "unable to open output file %s"
-msgstr "kan inte öppna utdatafil %s"
-
-#
-#: stabs.c:343 stabs.c:1760
-msgid "numeric overflow"
-msgstr "numeriskt överspill"
-
-#
-# FIXME
-#: stabs.c:354
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr "Felaktig stab: %s\n"
-
-#
-#: stabs.c:364
-#, c-format
-msgid "Warning: %s: %s\n"
-msgstr "Varning: %s: %s\n"
-
-#
-#: stabs.c:486
-msgid "N_LBRAC not within function\n"
-msgstr "N_LBRAC inte inuti funktion\n"
-
-#
-#: stabs.c:525
-msgid "Too many N_RBRACs\n"
-msgstr "För många N_RBRAC:s\n"
-
-#
-#: stabs.c:770
-msgid "unknown C++ encoded name"
-msgstr "okänt C++-kodat namn"
-
-#
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1297
-msgid "unrecognized cross reference type"
-msgstr "okänd korsreferenstyp"
-
-#
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1852
-msgid "missing index type"
-msgstr "utebliven indextyp"
-
-#
-#: stabs.c:2179
-msgid "unknown virtual character for baseclass"
-msgstr "okänt virtuellt tecken för basklass"
-
-#
-# FIXME
-#: stabs.c:2197
-msgid "unknown visibility character for baseclass"
-msgstr "okänd synlighetstecken för basklass"
-
-#
-#: stabs.c:2389
-msgid "unnamed $vb type"
-msgstr "$vb-typ utan namn"
-
-#
-#: stabs.c:2395
-msgid "unrecognized C++ abbreviation"
-msgstr "okänd C++-förkortning"
-
-#
-# FIXME
-#: stabs.c:2475
-msgid "unknown visibility character for field"
-msgstr "okänd synlighetstecken för fält"
-
-#
-#: stabs.c:2731
-msgid "const/volatile indicator missing"
-msgstr "const/volatile-indikator saknas"
-
-#
-#: stabs.c:2971
-#, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr "Ingen kodning av \"%s\"\n"
-
-#
-#: stabs.c:3284
-msgid "Undefined N_EXCL"
-msgstr "Odefinierad N_EXCL"
-
-#
-#: stabs.c:3372
-#, c-format
-msgid "Type file number %d out of range\n"
-msgstr "Typens filnummer %d utanför sitt intervall\n"
-
-#
-#: stabs.c:3377
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr "Typens indexnummer %d utanför sitt intervall\n"
-
-#
-#: stabs.c:3464
-#, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr "Okänd XCOFF-typ %d\n"
-
-#
-#: stabs.c:3763
-#, c-format
-msgid "bad mangled name `%s'\n"
-msgstr "felaktigt kodat namn \"%s\"\n"
-
-#
-#: stabs.c:3859
-msgid "no argument types in mangled string\n"
-msgstr "ingen argumenttyp i kodad sträng\n"
-
-#
-#: strings.c:199
-#, c-format
-msgid "invalid number %s"
-msgstr "ogiltigt tal %s"
-
-#
-#: strings.c:638
-#, c-format
-msgid "invalid integer argument %s"
-msgstr "ogiltigt heltalsargument %s"
-
-#
-#: strings.c:648
-#, c-format
-msgid ""
-"Usage: %s [-afov] [-n min-len] [-min-len] [-t {o,x,d}] [-e {s,b,l,B,L}]\n"
-" [-] [--all] [--print-file-name] [--bytes=min-len] [--radix={o,x,d}]\n"
-" [--target=bfdname] [--encoding {s,b,l,B,L}] [--help] [--version] file...\n"
-msgstr ""
-"Användning: %s [-afov] [-n min-längd] [-min-len] [-t {o,x,d}] [-e {s,b,l,B,L}]\n"
-" [-] [--all] [--print-file-name] [--bytes=min-längd] [--radix={o,x,d}]\n"
-" [--target=bfdnamn] [--encoding {s,b,l,B,L}] [--help] [--version] fil...\n"
-
-#
-#: sysdump.c:733
-#, c-format
-msgid "Usage: %s [-hV] in-file\n"
-msgstr "Användning: %s [-hV] infil\n"
-
-#
-#: sysdump.c:805
-#, c-format
-msgid "cannot open input file %s"
-msgstr "kan inte öppna indatafil %s"
-
-#
-#: version.c:35
-msgid "Copyright 2001 Free Software Foundation, Inc.\n"
-msgstr "Copyright 2001 Free Software Foundation, Inc.\n"
-
-#
-#: version.c:36
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr ""
-"Detta program är fri programvara; du kan sprida det vidare under villkoren\n"
-"i GNU General Public License. Detta program har inga som helst garantier.\n"
-
-#
-#: windres.c:237
-#, c-format
-msgid "can't open %s `%s': %s"
-msgstr "kan inte öppna %s \"%s\": %s"
-
-#
-#: windres.c:416
-msgid ": expected to be a directory\n"
-msgstr ": förväntades vara en katalog\n"
-
-#
-#: windres.c:428
-msgid ": expected to be a leaf\n"
-msgstr ": förväntades vara ett löv\n"
-
-#
-#: windres.c:437
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: varning: "
-
-#
-#: windres.c:439
-msgid ": duplicate value\n"
-msgstr ": dublett av värdet\n"
-
-#
-#: windres.c:602
-#, c-format
-msgid "unknown format type `%s'"
-msgstr "okänd formattyp \"%s\""
-
-#
-#: windres.c:603
-#, c-format
-msgid "%s: supported formats:"
-msgstr "%s: format som hanteras:"
-
-#
-#. Otherwise, we give up.
-#: windres.c:690
-#, c-format
-msgid "can not determine type of file `%s'; use the -I option"
-msgstr "kan inte fastställa filtyp på fil \"%s\"; använd flagga -I"
-
-#
-#: windres.c:704
-#, c-format
-msgid "Usage: %s [options] [input-file] [output-file]\n"
-msgstr "Användning: %s [flaggor] [infil] [utfil]\n"
-
-#
-#: windres.c:706
-msgid ""
-"Options:\n"
-" -i FILE, --input FILE Name input file\n"
-" -o FILE, --output FILE Name output file\n"
-" -I FORMAT, --input-format FORMAT\n"
-" Specify input format\n"
-" -O FORMAT, --output-format FORMAT\n"
-" Specify output format\n"
-" -F TARGET, --target TARGET Specify COFF target\n"
-" --preprocessor PROGRAM Program to use to preprocess rc file\n"
-" --include-dir DIR Include directory when preprocessing rc file\n"
-" -DSYM[=VAL], --define SYM[=VAL]\n"
-" Define SYM when preprocessing rc file\n"
-" -v Verbose - tells you what it's doing\n"
-" --language VAL Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr ""
-"Flaggor:\n"
-" -i FIL, --input FIL Namnge indatafilen\n"
-" -o FIL, --output FIL Namnge utdatafilen\n"
-" -I FORMAT, --input-format FORMAT\n"
-" Ange indataformatet\n"
-" -O FORMAT, --output-format FORMAT\n"
-" Ange utdataformatet\n"
-" -F MÅL, --target MÅL Ange COFF-målet\n"
-" --preprocessor PROGRAM Program att använda som preprocessor på rc-filen\n"
-" --include-dir KATALOG Inkludera katalog när rc-filen preprocessas\n"
-" -DSYM[=VÄRDE], --define SYM[=VÄRDE]\n"
-" Definiera SYM när rc-filen preporocessas\n"
-" -v Mångordig - berättar vad den gör\n"
-" --language SPRÅK Sätt språket när rc-filen läses\n"
-" --use-temp-file Använd en tem.fil istället för popen vid läsning\n"
-" av utdata från preprocessorn\n"
-" --no-use-temp-file Använd popen (förval)\n"
-
-#
-#: windres.c:725
-msgid " --yydebug Turn on parser debugging\n"
-msgstr " --yydebug Slå på tolkens felsökning\n"
-
-#
-#: windres.c:728
-msgid ""
-" --help Print this help message\n"
-" --version Print version information\n"
-msgstr ""
-" --help Visa denna hjälp\n"
-" --version Visa versionsinformation\n"
-
-#
-#: windres.c:731
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr ""
-"FORMAT är någon av rc, res eller coff, och härleds från filnamnsändelsen\n"
-"om det inte anges. Ett ensamt filnamn är en indatafil. Ingen indatafil\n"
-"betyder standard in, med format rc. Ingen utdatafil betyder standard ut,\n"
-"med format rc.\n"
-
-#
-#: windres.c:983
-msgid "no resources"
-msgstr "inga resurser"
-
-#
-#: wrstabs.c:366 wrstabs.c:2027
-#, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr "string_hash_lookup misslyckades: %s"
-
-#
-#: wrstabs.c:666
-#, c-format
-msgid "stab_int_type: bad size %u"
-msgstr "stab_int_type: felaktig storlek %u"
-
-#
-#: wrstabs.c:1467
-#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr "%s: varning: okänd storleken på fält \"%s\" i strukturen"
diff --git a/binutils-2.17/binutils/po/tr.gmo b/binutils-2.17/binutils/po/tr.gmo
deleted file mode 100644
index 71904464..00000000
--- a/binutils-2.17/binutils/po/tr.gmo
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/po/tr.po b/binutils-2.17/binutils/po/tr.po
deleted file mode 100644
index 61a51e6c..00000000
--- a/binutils-2.17/binutils/po/tr.po
+++ /dev/null
@@ -1,5790 +0,0 @@
-# translation of binutils-2.15.96.tr.po to Turkish
-# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
-# Deniz Akkus Kanca <deniz@arayan.com>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: binutils 2.15.96\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-03 21:03+1030\n"
-"PO-Revision-Date: 2005-03-13 09:19+0200\n"
-"Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n"
-"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
-
-#: addr2line.c:73
-#, c-format
-msgid "Usage: %s [option(s)] [addr(s)]\n"
-msgstr "Kullanım: %s [seçenekler] [adresler]\n"
-
-#: addr2line.c:74
-#, c-format
-msgid " Convert addresses into line number/file name pairs.\n"
-msgstr " adresleri satır numarası/dosya adı çiftlerine çevirir.\n"
-
-#: addr2line.c:75
-#, c-format
-msgid " If no addresses are specified on the command line, they will be read from stdin\n"
-msgstr " Eğer komut satırında adres belirtilmezse, standart girdiden okunur\n"
-
-#: addr2line.c:76
-#, c-format
-msgid ""
-" The options are:\n"
-" -b --target=<bfdname> Set the binary file format\n"
-" -e --exe=<executable> Set the input file name (default is a.out)\n"
-" -s --basenames Strip directory names\n"
-" -f --functions Show function names\n"
-" -C --demangle[=style] Demangle function names\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Seçenekler:\n"
-" -b --target=<bfdadı> İkilik dosya biçemini belirtir\n"
-" -e --exe=<çalıştırılabilir dosya> Girdi adını belirtir (öntanımlı: a.out)\n"
-" -s --basenames Dizin adlarını soyar\n"
-" -f --functions İşlev adlarını gösterir\n"
-" -C --demangle[=tarz] İşlev adlarını düzeltir\n"
-" -h --help Bu bilgiyi gösterir\n"
-" -v --version Program sürüm no'sunu gösterir\n"
-"\n"
-
-#: addr2line.c:88 ar.c:263 coffdump.c:467 nlmconv.c:1110 objcopy.c:478
-#: objcopy.c:512 readelf.c:2631 size.c:99 srconv.c:1731 strings.c:667
-#: sysdump.c:655 windres.c:672
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr ""
-"Yazılım hatalarını %s adresine, \n"
-"çeviri hatalarını <gnu-tr@belgeler.org> adresine gönderin\n"
-
-#: addr2line.c:241
-#, c-format
-msgid "%s: can not get addresses from archive"
-msgstr "%s: arşivden adresler alınamadı"
-
-#: addr2line.c:311 nm.c:1519 objdump.c:2848
-#, c-format
-msgid "unknown demangling style `%s'"
-msgstr "bilinmeyen düzeltme tarzı '%s'"
-
-#: ar.c:205
-#, c-format
-msgid "no entry %s in archive\n"
-msgstr "arÅŸivde %s girdisi yok\n"
-
-#: ar.c:221
-#, c-format
-msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"
-msgstr "Kullanım: %s [öykünüm seçenekleri] [-]{dmpqrstx}[abcfilNoPsSuvV] [üye-adı] [sayı] arşiv-dosyası dosya...\n"
-
-#: ar.c:224
-#, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr " %s -M [<mri-betiÄŸi]\n"
-
-#: ar.c:225
-#, c-format
-msgid " commands:\n"
-msgstr " komutlar:\n"
-
-#: ar.c:226
-#, c-format
-msgid " d - delete file(s) from the archive\n"
-msgstr " d - arÅŸivden dosya(lar) siler\n"
-
-#: ar.c:227
-#, c-format
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr " m[ab] - arşivde dosya(ları) taşır\n"
-
-#: ar.c:228
-#, c-format
-msgid " p - print file(s) found in the archive\n"
-msgstr " p - arşivde bulunan dosya(ları) yazdırır\n"
-
-#: ar.c:229
-#, c-format
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr " q[f] - dosya(ları) arşivin sonuna çabucak ekler\n"
-
-#: ar.c:230
-#, c-format
-msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr " r[ab][f][u] - arşivde olan bir dosyanın yerine yenisi koyar veya arşive yeni dosya(lar) ekler\n"
-
-#: ar.c:231
-#, c-format
-msgid " t - display contents of archive\n"
-msgstr " t - arşivin içeriğini gösterir\n"
-
-#: ar.c:232
-#, c-format
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr " x[o] - arşivdeki dosya(ları) açar\n"
-
-#: ar.c:233
-#, c-format
-msgid " command specific modifiers:\n"
-msgstr " komuta özgü değiştiriciler:\n"
-
-#: ar.c:234
-#, c-format
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr " [a] - dosyaları [üye-adı]'ndan sonra ekler\n"
-
-#: ar.c:235
-#, c-format
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr " [b] - dosya(ları) [üye-adı]'ndan önce ekler ([i] ile aynı)\n"
-
-#: ar.c:236
-#, c-format
-msgid " [N] - use instance [count] of name\n"
-msgstr " [N] - adın [sayı] numaralı geçişini kullanır\n"
-
-#: ar.c:237
-#, c-format
-msgid " [f] - truncate inserted file names\n"
-msgstr " [f] - eklenen dosya adlarını kırpar\n"
-
-#: ar.c:238
-#, c-format
-msgid " [P] - use full path names when matching\n"
-msgstr " [P] - eşleştirmede tam yol adlarını kullanır\n"
-
-#: ar.c:239
-#, c-format
-msgid " [o] - preserve original dates\n"
-msgstr " [o] - orjinal zaman damgalarını korur\n"
-
-#: ar.c:240
-#, c-format
-msgid " [u] - only replace files that are newer than current archive contents\n"
-msgstr " [u] - yalnızca şimdiki arşiv içeriğinden daha yeni olan dosyaları değiştirir\n"
-
-#: ar.c:241
-#, c-format
-msgid " generic modifiers:\n"
-msgstr " genel deÄŸiÅŸtiriciler:\n"
-
-#: ar.c:242
-#, c-format
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr " [c] - eğer kitaplık oluşturulmak zorunda kalınırsa, uyarı vermez\n"
-
-#: ar.c:243
-#, c-format
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr " [s] - arÅŸiv endeksi oluÅŸturur (ranlib)\n"
-
-#: ar.c:244
-#, c-format
-msgid " [S] - do not build a symbol table\n"
-msgstr " [S] - sembol tablosu oluÅŸturmaz\n"
-
-#: ar.c:245
-#, c-format
-msgid " [v] - be verbose\n"
-msgstr " [v] - açıklama verir\n"
-
-#: ar.c:246
-#, c-format
-msgid " [V] - display the version number\n"
-msgstr " [V] - sürüm numarasını gösterir\n"
-
-#: ar.c:253
-#, c-format
-msgid "Usage: %s [options] archive\n"
-msgstr "Kullanım: %s [seçenekler] arşiv\n"
-
-#: ar.c:254
-#, c-format
-msgid " Generate an index to speed access to archives\n"
-msgstr " Arşiv erişimini hızlandırmak için indeks üretir\n"
-
-#: ar.c:255
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" Seçenekler:\n"
-" -h --help Bu yardımı gösterir\n"
-" -V --version Sürüm bilgisini gösterir\n"
-
-#: ar.c:483
-msgid "two different operation options specified"
-msgstr "iki farklı işlev seçeneği belirtilmiş"
-
-#: ar.c:558
-#, c-format
-msgid "illegal option -- %c"
-msgstr "geçersiz seçenek -- %c"
-
-#: ar.c:604
-msgid "no operation specified"
-msgstr "iÅŸlev belirtilmemiÅŸ"
-
-#: ar.c:607
-msgid "`u' is only meaningful with the `r' option."
-msgstr "`u' yalnızca `r' seçeneği ile anlamlıdır."
-
-#: ar.c:615
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr "`N' yalnızca `x' ve `d' seçenekleri ile anlamlıdır."
-
-#: ar.c:618
-msgid "Value for `N' must be positive."
-msgstr "`N' değeri pozitif olmalı."
-
-#: ar.c:668
-#, c-format
-msgid "internal error -- this option not implemented"
-msgstr "iç hata -- bu seçenek henüz yazılmadı"
-
-#: ar.c:737
-#, c-format
-msgid "creating %s"
-msgstr "%s oluÅŸturuluyor"
-
-#: ar.c:786 ar.c:836 ar.c:1154 objcopy.c:1603
-#, c-format
-msgid "internal stat error on %s"
-msgstr "%s üzerinde iç durumlama hatası"
-
-#: ar.c:790
-#, c-format
-msgid ""
-"\n"
-"<%s>\n"
-"\n"
-msgstr ""
-"\n"
-"<%s>\n"
-"\n"
-
-#: ar.c:806 ar.c:873
-#, c-format
-msgid "%s is not a valid archive"
-msgstr "%s geçerli bir arşiv değil"
-
-#: ar.c:841
-#, c-format
-msgid "stat returns negative size for %s"
-msgstr "stat komutu, %s için negatif büyüklük gösteriyor"
-
-#: ar.c:1059
-#, c-format
-msgid "No member named `%s'\n"
-msgstr "`%s' adında bir üye yok\n"
-
-#: ar.c:1109
-#, c-format
-msgid "no entry %s in archive %s!"
-msgstr "arşiv %2$s içerisinde %1$s girdisi yok!"
-
-#: ar.c:1246
-#, c-format
-msgid "%s: no archive map to update"
-msgstr "%s: güncellenecek arşiv eşlemesi yok"
-
-#: arsup.c:83
-#, c-format
-msgid "No entry %s in archive.\n"
-msgstr "Arşiv içinde %s girdisi yok.\n"
-
-#: arsup.c:109
-#, c-format
-msgid "Can't open file %s\n"
-msgstr "%s dosyası açılamadı\n"
-
-#: arsup.c:162
-#, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr "%s: Çıktı arşivi %s açılamadı\n"
-
-#: arsup.c:179
-#, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr "%s: Girdi arşivi %s açılamadı\n"
-
-#: arsup.c:188
-#, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr "%s: %s dosyası bir arşiv değil\n"
-
-#: arsup.c:227
-#, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr "%s: henüz bir çıktı arşivi belirtilmedi\n"
-
-#: arsup.c:247 arsup.c:285 arsup.c:327 arsup.c:347 arsup.c:413
-#, c-format
-msgid "%s: no open output archive\n"
-msgstr "%s: açık çıktı arşivi yok\n"
-
-#: arsup.c:258 arsup.c:368 arsup.c:394
-#, c-format
-msgid "%s: can't open file %s\n"
-msgstr "%s: %s dosyası açılamadı\n"
-
-#: arsup.c:312 arsup.c:390 arsup.c:471
-#, c-format
-msgid "%s: can't find module file %s\n"
-msgstr "%s: modül dosyası %s bulunamadı\n"
-
-#: arsup.c:422
-#, c-format
-msgid "Current open archive is %s\n"
-msgstr "Şimdiki açık arşiv %s\n"
-
-#: arsup.c:446
-#, c-format
-msgid "%s: no open archive\n"
-msgstr "%s: açık arşiv yok\n"
-
-#: binemul.c:37
-#, c-format
-msgid " No emulation specific options\n"
-msgstr " Öykünüme özgü seçenekler yok\n"
-
-#. Macros for common output.
-#: binemul.h:42
-#, c-format
-msgid " emulation options: \n"
-msgstr " öykünüm seçenekleri: \n"
-
-#: bucomm.c:109
-#, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr "BFD öntanımlı hedef `%s' olarak atanamadı: %s"
-
-#: bucomm.c:120
-#, c-format
-msgid "%s: Matching formats:"
-msgstr "%s: Eşleşen biçemler:"
-
-#: bucomm.c:135
-#, c-format
-msgid "Supported targets:"
-msgstr "Desteklenen hedefler:"
-
-#: bucomm.c:137
-#, c-format
-msgid "%s: supported targets:"
-msgstr "%s: desteklenen hedefler:"
-
-#: bucomm.c:153
-#, c-format
-msgid "Supported architectures:"
-msgstr "Desteklenen platformlar:"
-
-#: bucomm.c:155
-#, c-format
-msgid "%s: supported architectures:"
-msgstr "%s: desteklenen platformlar:"
-
-#: bucomm.c:348
-#, c-format
-msgid "BFD header file version %s\n"
-msgstr "BFD başlık dosyası sürümü %s\n"
-
-#: bucomm.c:449
-#, c-format
-msgid "%s: bad number: %s"
-msgstr "%s: hatalı sayı: %s"
-
-#: bucomm.c:466 strings.c:386
-#, c-format
-msgid "'%s': No such file"
-msgstr "'%s': Böyle bir dosya yok"
-
-#: bucomm.c:468 strings.c:388
-#, c-format
-msgid "Warning: could not locate '%s'. reason: %s"
-msgstr "Uyarı: '%s' bulunamadı. Sebep: %s"
-
-#: bucomm.c:472
-#, c-format
-msgid "Warning: '%s' is not an ordinary file"
-msgstr "Uyarı: '%s' normal bir dosya değil"
-
-#: coffdump.c:105
-#, c-format
-msgid "#lines %d "
-msgstr "#satırlar %d "
-
-#: coffdump.c:459 sysdump.c:648
-#, c-format
-msgid "Usage: %s [option(s)] in-file\n"
-msgstr "Kullanım: %s [seçenek(ler)] girdi-dosyası\n"
-
-#: coffdump.c:460
-#, c-format
-msgid " Print a human readable interpretation of a SYSROFF object file\n"
-msgstr " SYSROFF nesne dosyasını insan tarafından okunabilir biçemde yazdırır\n"
-
-#: coffdump.c:461
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Seçenekler:\n"
-" -h --help Bu bilgiyi gösterir\n"
-" -v --version Program sürüm no'sunu gösterir\n"
-"\n"
-
-#: coffdump.c:527 srconv.c:1819 sysdump.c:710
-msgid "no input file specified"
-msgstr "girdi dosyası belirtilmedi"
-
-#: debug.c:648
-msgid "debug_add_to_current_namespace: no current file"
-msgstr "hata_ayıkla_mevcut_isim_uzayına_ekle: mevcut dosya yok"
-
-#: debug.c:727
-msgid "debug_start_source: no debug_set_filename call"
-msgstr "hata_ayıkla_kaynak: hata_ayıkla_dosya_adı_ata çağrılmadı"
-
-#: debug.c:783
-msgid "debug_record_function: no debug_set_filename call"
-msgstr "hata_ayıkla_kayıt_işlevi: hata_ayıkla_dosya_adı_ata çağrılmadı"
-
-#: debug.c:835
-msgid "debug_record_parameter: no current function"
-msgstr "hata_ayıkla_kayıt_parametresi: mevcut işlev yok"
-
-#: debug.c:867
-msgid "debug_end_function: no current function"
-msgstr "hata_ayıkla_son_işlev: mevcut işlev yok"
-
-#: debug.c:873
-msgid "debug_end_function: some blocks were not closed"
-msgstr "hata_ayıkla_son_işlev: bazı bloklar kapatılmamış"
-
-#: debug.c:901
-msgid "debug_start_block: no current block"
-msgstr "hata_ayıkla_başla_blok: mevcut blok yok"
-
-#: debug.c:937
-msgid "debug_end_block: no current block"
-msgstr "hata_ayıkla_son_blok: mevcut blok yok"
-
-#: debug.c:944
-msgid "debug_end_block: attempt to close top level block"
-msgstr "hata_ayıkla_son_blok: tepe seviye bloğu kapama denemesi"
-
-#: debug.c:967
-msgid "debug_record_line: no current unit"
-msgstr "hata_ayıkla_kayıt_satır: mevcut birim yok"
-
-#. FIXME
-#: debug.c:1020
-msgid "debug_start_common_block: not implemented"
-msgstr "hata_ayıkla_ortak_blok_başla: henüz tamamlanmamış"
-
-#. FIXME
-#: debug.c:1031
-msgid "debug_end_common_block: not implemented"
-msgstr "hata_ayıkla_ortak_blok_son: henüz tamamlanmamış"
-
-#. FIXME.
-#: debug.c:1115
-msgid "debug_record_label: not implemented"
-msgstr "hata_ayıkla_kayıt_etiket: henüz tamamlanmamış"
-
-#: debug.c:1137
-msgid "debug_record_variable: no current file"
-msgstr "hata_ayıkla_kayıt_değişken: mevcut dosya yok"
-
-#: debug.c:1665
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr "hata_ayıkla_tanımlanmamış_tip: desteklenmeyen tip"
-
-#: debug.c:1842
-msgid "debug_name_type: no current file"
-msgstr "hata_ayıkla_isim_tipi: mevcut dosya yok"
-
-#: debug.c:1887
-msgid "debug_tag_type: no current file"
-msgstr "hata_ayıkla_etiket_tipi: mevcut dosya yok"
-
-#: debug.c:1895
-msgid "debug_tag_type: extra tag attempted"
-msgstr "hata_ayıkla_etiket_tipi: fazla etiketleme denendi"
-
-#: debug.c:1932
-#, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr "Uyarı: tip boyutu %d'den %d'ye değiştirildi\n"
-
-#: debug.c:1954
-msgid "debug_find_named_type: no current compilation unit"
-msgstr "hata_ayıkla_isimli_tipi_bul: mevcut derleme birimi yok"
-
-#: debug.c:2057
-#, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr "hata_ayıkla_gerçek_tipi_al: %s için çevrimsel hata ayıklama bilgisi\n"
-
-#: debug.c:2484
-msgid "debug_write_type: illegal type encountered"
-msgstr "hata_ayıkla_yaz_tipi: geçersiz tip bulundu"
-
-#: dlltool.c:773 dlltool.c:797 dlltool.c:826
-#, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr "İç hata: Bilinmeyen makine tipi: %d"
-
-#: dlltool.c:862
-#, c-format
-msgid "Can't open def file: %s"
-msgstr "Tanım dosyası açılamadı: %s"
-
-#: dlltool.c:867
-#, c-format
-msgid "Processing def file: %s"
-msgstr "Tanım dosyası işleniyor: %s"
-
-#: dlltool.c:871
-msgid "Processed def file"
-msgstr "Tanım dosyası işlendi"
-
-#: dlltool.c:895
-#, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr "Tanım dosyası %s'nda sözdizim hatası:%d"
-
-#: dlltool.c:930
-#, c-format
-msgid "%s: Path components stripped from image name, '%s'."
-msgstr "%s: İmaj ismi '%s' içinden yol dizgeleri çıkarıldı."
-
-#: dlltool.c:939
-#, c-format
-msgid "NAME: %s base: %x"
-msgstr "Ä°SÄ°M: %s temel: %x"
-
-#: dlltool.c:942 dlltool.c:958
-msgid "Can't have LIBRARY and NAME"
-msgstr "KÄ°TAPLIK ve Ä°SÄ°M beraber olamaz"
-
-#: dlltool.c:955
-#, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr "KÄ°TAPLIK: %s temel: %x"
-
-#: dlltool.c:1191 resrc.c:269
-#, c-format
-msgid "wait: %s"
-msgstr "bekle: %s"
-
-#: dlltool.c:1196 dllwrap.c:418 resrc.c:274
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr "Ast-işlem %d ölümcül sinyalini aldı"
-
-#: dlltool.c:1202 dllwrap.c:425 resrc.c:281
-#, c-format
-msgid "%s exited with status %d"
-msgstr "%s %d durumu ile çıktı"
-
-#: dlltool.c:1233
-#, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr "%2$s'in %1$s bölümünden bilgi emiliyor"
-
-#: dlltool.c:1358
-#, c-format
-msgid "Excluding symbol: %s"
-msgstr "Sembol dışlandı: %s"
-
-#: dlltool.c:1447 dlltool.c:1458 nm.c:998 nm.c:1009
-#, c-format
-msgid "%s: no symbols"
-msgstr "%s: sembol yok"
-
-#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1484
-#, c-format
-msgid "Done reading %s"
-msgstr "%s okundu"
-
-#: dlltool.c:1494
-#, c-format
-msgid "Unable to open object file: %s"
-msgstr "Nesne dosyası açılamadı: %s"
-
-#: dlltool.c:1497
-#, c-format
-msgid "Scanning object file %s"
-msgstr "Nesne dosyası %s taranıyor"
-
-#: dlltool.c:1512
-#, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr "Arşiv dosyasından mcore-elf dll oluşturulamadı: %s"
-
-#: dlltool.c:1598
-msgid "Adding exports to output file"
-msgstr "Çıktı dosyasına ihraçlar ekleniyor"
-
-#: dlltool.c:1646
-msgid "Added exports to output file"
-msgstr "Çıktı dosyasına ihraçlar eklendi"
-
-#: dlltool.c:1767
-#, c-format
-msgid "Generating export file: %s"
-msgstr "İhraç dosyası oluşturuluyor: %s"
-
-#: dlltool.c:1772
-#, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr "Geçiçi üretici dosyası açılamadı: %s"
-
-#: dlltool.c:1775
-#, c-format
-msgid "Opened temporary file: %s"
-msgstr "Geçici dosya açıldı: %s"
-
-#: dlltool.c:1997
-msgid "Generated exports file"
-msgstr "İhraç dosyası oluşturuldu"
-
-#: dlltool.c:2203
-#, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr "koçan dosyası bfd_open ile açılamadı: %s"
-
-#: dlltool.c:2206
-#, c-format
-msgid "Creating stub file: %s"
-msgstr "Koçan dosyası oluşturuluyor: %s"
-
-#: dlltool.c:2588
-#, c-format
-msgid "failed to open temporary head file: %s"
-msgstr "geçici başlık dosyası açılamadı: %s"
-
-#: dlltool.c:2647
-#, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr "geçici kuyruk dosyası açılamadı: %s"
-
-#: dlltool.c:2714
-#, c-format
-msgid "Can't open .lib file: %s"
-msgstr ".lib dosyası açılamadı: %s"
-
-#: dlltool.c:2717
-#, c-format
-msgid "Creating library file: %s"
-msgstr "Kitaplık dosyası açılamadı: %s"
-
-#: dlltool.c:2800 dlltool.c:2806
-#, c-format
-msgid "cannot delete %s: %s"
-msgstr "%s silinemedi: %s"
-
-#: dlltool.c:2811
-msgid "Created lib file"
-msgstr "Lib dosyası oluşturuldu"
-
-#: dlltool.c:2904
-#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr "Uyarı, EXPORT tekrarı %s %d,%d yoksayıldı"
-
-#: dlltool.c:2910
-#, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr "Hata, orjinal hali ile EXPORT tekrarı: %s"
-
-#: dlltool.c:3026
-msgid "Processing definitions"
-msgstr "Tanımlar işleniyor"
-
-#: dlltool.c:3058
-msgid "Processed definitions"
-msgstr "Tanımlar işlendi"
-
-#. xgetext:c-format
-#: dlltool.c:3065 dllwrap.c:479
-#, c-format
-msgid "Usage %s <option(s)> <object-file(s)>\n"
-msgstr "Kullanım %s <seçenekler> <nesne-dosyaları>\n"
-
-#. xgetext:c-format
-#: dlltool.c:3067
-#, c-format
-msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr " -m --machine <makine> <makine> için DLL olarak oluştur. [öntanımlı: %s]\n"
-
-#: dlltool.c:3068
-#, c-format
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-msgstr " tanımlı <makine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-
-#: dlltool.c:3069
-#, c-format
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr " -e --output-exp <çıktıadı> İhraç dosyası oluşturur.\n"
-
-#: dlltool.c:3070
-#, c-format
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr " -l --output-lib <çıktıadı> Arayüz kitaplığı oluşturur.\n"
-
-#: dlltool.c:3071
-#, c-format
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr " -a --add-indirect İhraç dosyasına dll yönlendirmelerini ekler.\n"
-
-#: dlltool.c:3072
-#, c-format
-msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr " -D --dllname <isim> Arayüz kitaplığına eklenecek girdi dll adı.\n"
-
-#: dlltool.c:3073
-#, c-format
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr " -d --input-def <tanım_dosyası> Okunacak .def dosyasının adı.\n"
-
-#: dlltool.c:3074
-#, c-format
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr " -z --output-def <tanım_dosyası> Oluşturulacak .def dosyasının adı.\n"
-
-#: dlltool.c:3075
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols Bütün sembolleri .def'e ihraç eder\n"
-
-#: dlltool.c:3076
-#, c-format
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr " --no-export-all-symbols Yalnızca listelenmiş sembolleri ihraç eder\n"
-
-#: dlltool.c:3077
-#, c-format
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr " --exclude-symbols <liste> <liste>'yi ihraç etmez\n"
-
-#: dlltool.c:3078
-#, c-format
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr " --no-default-excludes Öntanımlı ihraç edilmeyecek sembol listesini boşaltır\n"
-
-#: dlltool.c:3079
-#, c-format
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr " -b --base-file <temel_dosyası> Bağlayıcının oluşturduğu temel dosyayı okur.\n"
-
-#: dlltool.c:3080
-#, c-format
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr " -x --no-idata4 idata$4 bölümü oluşturmaz.\n"
-
-#: dlltool.c:3081
-#, c-format
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr " -c --no-idata5 idata$5 bölümü oluşturmaz.\n"
-
-#: dlltool.c:3082
-#, c-format
-msgid " -U --add-underscore Add underscores to symbols in interface library.\n"
-msgstr " -U --add-underscore Arayüz kitaplığındaki sembollere alt-tire ekler.\n"
-
-#: dlltool.c:3083
-#, c-format
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr " -k --kill-at İhraç edilmiş isimlerden @<n>'da öldürür.\n"
-
-#: dlltool.c:3084
-#, c-format
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr " -A --add-stdcall-alias Rumuzları @<n> içermeksizin ekler.\n"
-
-#: dlltool.c:3085
-#, c-format
-msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
-msgstr " -p --ext-prefix-alias <önek> Rumuzları <önek> öneki ile ekler.\n"
-
-#: dlltool.c:3086
-#, c-format
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr " -S --as <isim> Üretici olarak <isim> kullanır.\n"
-
-#: dlltool.c:3087
-#, c-format
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr " -f --as-flags <seçenekler> Üreticiye <seçenekler>i geçirir.\n"
-
-#: dlltool.c:3088
-#, c-format
-msgid " -C --compat-implib Create backward compatible import library.\n"
-msgstr " -C --compat-implib Geçmişe uyumlu ithal kitaplığı oluşturur.\n"
-
-#: dlltool.c:3089
-#, c-format
-msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
-msgstr " -n --no-delete Geçici dosyaları tutar (daha da koruyucu olması için tekrarlanabilir).\n"
-
-#: dlltool.c:3090
-#, c-format
-msgid " -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
-msgstr " -t --temp-prefix <önek> <önek> kullanılarak geçici dosya ismi oluşturur.\n"
-
-#: dlltool.c:3091
-#, c-format
-msgid " -v --verbose Be verbose.\n"
-msgstr " -v --verbose Açıklama verir.\n"
-
-#: dlltool.c:3092
-#, c-format
-msgid " -V --version Display the program version.\n"
-msgstr " -V --version Sürüm bilgilerini gösterir.\n"
-
-#: dlltool.c:3093
-#, c-format
-msgid " -h --help Display this information.\n"
-msgstr " -h --help Bu yardımı gösterir.\n"
-
-#: dlltool.c:3095
-#, c-format
-msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr " -M --mcore-elf <çıktı_adı> mcore-elf nesne dosyalarını <çıktı_adı>'na işler.\n"
-
-#: dlltool.c:3096
-#, c-format
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr " -L --linker <isim> Bağlayıcı olarak <isim> kullanır.\n"
-
-#: dlltool.c:3097
-#, c-format
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr " -F --linker-flags <seçenekler> <seçenekler>i bağlayıcıya geçirir.\n"
-
-#: dlltool.c:3211
-#, c-format
-msgid "Path components stripped from dllname, '%s'."
-msgstr "Dll ismi '%s' içinden yol dizgeleri çıkarıldı."
-
-#: dlltool.c:3256
-#, c-format
-msgid "Unable to open base-file: %s"
-msgstr "Temel-dosyası açılamadı: %s"
-
-#: dlltool.c:3288
-#, c-format
-msgid "Machine '%s' not supported"
-msgstr "'%s' makinesi desteklenmiyor"
-
-#: dlltool.c:3392 dllwrap.c:209
-#, c-format
-msgid "Tried file: %s"
-msgstr "Dosya denendi: %s"
-
-#: dlltool.c:3399 dllwrap.c:216
-#, c-format
-msgid "Using file: %s"
-msgstr "Dosya kullanılıyor: %s"
-
-#: dllwrap.c:299
-#, c-format
-msgid "Keeping temporary base file %s"
-msgstr "Geçici temel dosya %s tutuldu"
-
-#: dllwrap.c:301
-#, c-format
-msgid "Deleting temporary base file %s"
-msgstr "Geçici temel dosya %s silindi"
-
-#: dllwrap.c:315
-#, c-format
-msgid "Keeping temporary exp file %s"
-msgstr "Geçici ihraç dosyası %s tutuldu"
-
-#: dllwrap.c:317
-#, c-format
-msgid "Deleting temporary exp file %s"
-msgstr "Geçici ihraç dosyası %s silindi"
-
-#: dllwrap.c:330
-#, c-format
-msgid "Keeping temporary def file %s"
-msgstr "Geçici tanım dosyası %s tutuldu"
-
-#: dllwrap.c:332
-#, c-format
-msgid "Deleting temporary def file %s"
-msgstr "Geçici tanım dosyası %s silindi"
-
-#: dllwrap.c:480
-#, c-format
-msgid " Generic options:\n"
-msgstr " Genel seçenekler: \n"
-
-#: dllwrap.c:481
-#, c-format
-msgid " --quiet, -q Work quietly\n"
-msgstr " --quiet, -q Sessiz çalışır\n"
-
-#: dllwrap.c:482
-#, c-format
-msgid " --verbose, -v Verbose\n"
-msgstr " --verbose, -v Açıklamalı\n"
-
-#: dllwrap.c:483
-#, c-format
-msgid " --version Print dllwrap version\n"
-msgstr " --version dllwrap sürümünü yazdırır\n"
-
-#: dllwrap.c:484
-#, c-format
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr " --implib <çıktı_adı> --output-lib ile eşanlamlı\n"
-
-#: dllwrap.c:485
-#, c-format
-msgid " Options for %s:\n"
-msgstr " %s için seçenekler:\n"
-
-#: dllwrap.c:486
-#, c-format
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr " --driver-name <sürücü> \"gcc\"ye öntanımlı\n"
-
-#: dllwrap.c:487
-#, c-format
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr " --driver-flags <seçenekler> Öntanımlı ld seçeneklerinin yerine geçer\n"
-
-#: dllwrap.c:488
-#, c-format
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr " --dlltool-name <dll_aracı> \"dlltool\"a öntanımlı\n"
-
-#: dllwrap.c:489
-#, c-format
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr " --entry <giriş> Alternatif DLL giriş noktası belirtir\n"
-
-#: dllwrap.c:490
-#, c-format
-msgid " --image-base <base> Specify image base address\n"
-msgstr " --image-base <temel> Ä°maj temel adresini belirtir\n"
-
-#: dllwrap.c:491
-#, c-format
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr " --target <makine> hedef makine, i386-cygwin32 veya i386-mingw32\n"
-
-#: dllwrap.c:492
-#, c-format
-msgid " --dry-run Show what needs to be run\n"
-msgstr " --dry-run Çalıştırılması gerekenleri gösterir\n"
-
-#: dllwrap.c:493
-#, c-format
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr " --mno-cygwin Mingw DLL oluÅŸturur\n"
-
-#: dllwrap.c:494
-#, c-format
-msgid " Options passed to DLLTOOL:\n"
-msgstr " DLLTOOL'a geçirilen seçenekler:\n"
-
-#: dllwrap.c:495
-#, c-format
-msgid " --machine <machine>\n"
-msgstr " --machine <makine>\n"
-
-#: dllwrap.c:496
-#, c-format
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr " --output-exp <çıktı_adı> İhraç dosyası oluşturur.\n"
-
-#: dllwrap.c:497
-#, c-format
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr " --output-lib <çıktı_adı> Girdi kitaplığı oluşturur.\n"
-
-#: dllwrap.c:498
-#, c-format
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr " --add-indirect Dll yönlendirmelerini ihraç dosyasına ekler.\n"
-
-#: dllwrap.c:499
-#, c-format
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr " --dllname <isim> Çıktı kitaplığına konulacak girdi dll adı.\n"
-
-#: dllwrap.c:500
-#, c-format
-msgid " --def <deffile> Name input .def file\n"
-msgstr " --def <tanım_dosyası> Girdi .def dosyası adı\n"
-
-#: dllwrap.c:501
-#, c-format
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr " --output-def <tanım_dosyası> Çıktı .def dosyasının adı\n"
-
-#: dllwrap.c:502
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols Bütün sembolleri .def'e ihraç eder\n"
-
-#: dllwrap.c:503
-#, c-format
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr " --no-export-all-symbols Yalnızca .drectve sembollerini ihraç eder\n"
-
-#: dllwrap.c:504
-#, c-format
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr " --exclude-symbols <liste> <liste>deki sembolleri .def'e ihraç etmez\n"
-
-#: dllwrap.c:505
-#, c-format
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr " --no-default-excludes Dışlanacak sembol öntanımlarını boşaltır\n"
-
-#: dllwrap.c:506
-#, c-format
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr " --base-file <temel_dosya> Bağlayıcı tarafından oluşturulan temel dosyayı okur\n"
-
-#: dllwrap.c:507
-#, c-format
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr " --no-idata4 idata$4 bölümünü oluşturmaz\n"
-
-#: dllwrap.c:508
-#, c-format
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr " --no-idata5 idata$5 bölümünü oluşturmaz\n"
-
-#: dllwrap.c:509
-#, c-format
-msgid " -U Add underscores to .lib\n"
-msgstr " -U .lib'e alt-tire ekler\n"
-
-#: dllwrap.c:510
-#, c-format
-msgid " -k Kill @<n> from exported names\n"
-msgstr " -k @<n>'i ihraç edilmiş isimlerden çıkartır\n"
-
-#: dllwrap.c:511
-#, c-format
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr " --add-stdcall-alias Rumuzları @<n> olmaksızın ekler\n"
-
-#: dllwrap.c:512
-#, c-format
-msgid " --as <name> Use <name> for assembler\n"
-msgstr " --as <isim> Üretici olarak <isim>'i kullanır\n"
-
-#: dllwrap.c:513
-#, c-format
-msgid " --nodelete Keep temp files.\n"
-msgstr " --nodelete Geçici dosyaları tutar.\n"
-
-#: dllwrap.c:514
-#, c-format
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr " Kalanlar dil sürücüsüne değiştirilmeksizin geçirilir\n"
-
-#: dllwrap.c:784
-msgid "Must provide at least one of -o or --dllname options"
-msgstr "-o veya --dllname (dll adı) seçeneklerinin en azından bir tanesi belirtilmelidir"
-
-#: dllwrap.c:813
-msgid ""
-"no export definition file provided.\n"
-"Creating one, but that may not be what you want"
-msgstr ""
-"ihraç tanım dosyası verilmemiş.\n"
-"Bir tane oluÅŸturuluyor fakat istediÄŸiniz bu olmayabilir"
-
-#: dllwrap.c:972
-#, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr "DLLTOOL adı : %s\n"
-
-#: dllwrap.c:973
-#, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr "DLLTOOL seçenekleri : %s\n"
-
-#: dllwrap.c:974
-#, c-format
-msgid "DRIVER name : %s\n"
-msgstr "SÜRÜCÜ adı : %s\n"
-
-#: dllwrap.c:975
-#, c-format
-msgid "DRIVER options : %s\n"
-msgstr "SÜRÜCÜ seçenekleri : %s\n"
-
-#: emul_aix.c:51
-#, c-format
-msgid " [-g] - 32 bit small archive\n"
-msgstr " [-g] - 32 bitlik küçük arşiv\n"
-
-#: emul_aix.c:52
-#, c-format
-msgid " [-X32] - ignores 64 bit objects\n"
-msgstr " [-X32] - 64 bitlik nesneleri yok sayar\n"
-
-#: emul_aix.c:53
-#, c-format
-msgid " [-X64] - ignores 32 bit objects\n"
-msgstr " [-X64] - 32 bitlik nesneleri yok sayar\n"
-
-#: emul_aix.c:54
-#, c-format
-msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
-msgstr " [-X32_64] - 32 ve 64 bitlik nesneleri kabul eder\n"
-
-#: ieee.c:311
-msgid "unexpected end of debugging information"
-msgstr "hata ayıklama bilgilerinde beklenmeyen son"
-
-#: ieee.c:398
-msgid "invalid number"
-msgstr "geçersiz sayı"
-
-#: ieee.c:451
-msgid "invalid string length"
-msgstr "geçersiz dizge uzunluğu"
-
-#: ieee.c:506 ieee.c:547
-msgid "expression stack overflow"
-msgstr "ifade yığıtında taşma"
-
-#: ieee.c:526
-msgid "unsupported IEEE expression operator"
-msgstr "desteklenmeyen IEEE ifade iÅŸlemimi"
-
-#: ieee.c:541
-msgid "unknown section"
-msgstr "bilinmeyen bölüm"
-
-#: ieee.c:562
-msgid "expression stack underflow"
-msgstr "ifade yığıt taşması"
-
-#: ieee.c:576
-msgid "expression stack mismatch"
-msgstr "ifade yığıtı uyumsuzluğu"
-
-#: ieee.c:613
-msgid "unknown builtin type"
-msgstr "bilinmeyen oluşumiçi tip"
-
-#: ieee.c:758
-msgid "BCD float type not supported"
-msgstr "BCD gerçel tipi desteklenmiyor"
-
-#: ieee.c:895
-msgid "unexpected number"
-msgstr "beklenmeyen sayı"
-
-#: ieee.c:902
-msgid "unexpected record type"
-msgstr "beklenmeyen kayıt tipi"
-
-#: ieee.c:935
-msgid "blocks left on stack at end"
-msgstr "yığıt üzerinde bloklar kaldı"
-
-#: ieee.c:1198
-msgid "unknown BB type"
-msgstr "bilinmeyen BB tipi"
-
-#: ieee.c:1207
-msgid "stack overflow"
-msgstr "yığıt taşması"
-
-#: ieee.c:1230
-msgid "stack underflow"
-msgstr "yığıt alt taşması"
-
-#: ieee.c:1342 ieee.c:1412 ieee.c:2109
-msgid "illegal variable index"
-msgstr "geçersiz değişken endeksi"
-
-#: ieee.c:1390
-msgid "illegal type index"
-msgstr "geçersiz tip endeksi"
-
-#: ieee.c:1400 ieee.c:1437
-msgid "unknown TY code"
-msgstr "bilinmeyen TY kodu"
-
-#: ieee.c:1419
-msgid "undefined variable in TY"
-msgstr "TY'de tanımsız değişken"
-
-#. Pascal file name. FIXME.
-#: ieee.c:1830
-msgid "Pascal file name not supported"
-msgstr "Pascal dosya adı desteklenmiyor"
-
-#: ieee.c:1878
-msgid "unsupported qualifier"
-msgstr "desteklenmeyen niteleyici"
-
-#: ieee.c:2147
-msgid "undefined variable in ATN"
-msgstr "ATN'de tanımsız değişken"
-
-#: ieee.c:2190
-msgid "unknown ATN type"
-msgstr "bilinmeyen ATN tipi"
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2312
-msgid "unsupported ATN11"
-msgstr "desteklenmeyen ATN11"
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2339
-msgid "unsupported ATN12"
-msgstr "desteklenmeyen ATN12"
-
-#: ieee.c:2399
-msgid "unexpected string in C++ misc"
-msgstr "C++ misc içinde beklenmeyen dizge"
-
-#: ieee.c:2412
-msgid "bad misc record"
-msgstr "hatalı misc kaydı"
-
-#: ieee.c:2453
-msgid "unrecognized C++ misc record"
-msgstr "bilinmeyen C++ misc kaydı"
-
-#: ieee.c:2568
-msgid "undefined C++ object"
-msgstr "tanımlanmamış C++ nesnesi"
-
-#: ieee.c:2602
-msgid "unrecognized C++ object spec"
-msgstr "bilinmeyen C++ nesne tanımı"
-
-#: ieee.c:2638
-msgid "unsupported C++ object type"
-msgstr "desteklenmeyen C++ nesne tipi"
-
-#: ieee.c:2648
-msgid "C++ base class not defined"
-msgstr "C++ temel sınıfı tanımlanmamış"
-
-#: ieee.c:2660 ieee.c:2765
-msgid "C++ object has no fields"
-msgstr "C++ nesnesinde hiç alan yok"
-
-#: ieee.c:2679
-msgid "C++ base class not found in container"
-msgstr "C++ temel sınıfı taşıyıcı içinde bulunamadı"
-
-#: ieee.c:2786
-msgid "C++ data member not found in container"
-msgstr "C++ veri üyesi taşıyıcı içinde bulunamadı"
-
-#: ieee.c:2827 ieee.c:2977
-msgid "unknown C++ visibility"
-msgstr "bilinmeyen C++ görünürlüğü"
-
-#: ieee.c:2861
-msgid "bad C++ field bit pos or size"
-msgstr "hatalı C++ alan biti konum veya boyu"
-
-#: ieee.c:2953
-msgid "bad type for C++ method function"
-msgstr "C++ yöntem işlevi için hatalı tip"
-
-#: ieee.c:2963
-msgid "no type information for C++ method function"
-msgstr "C++ yöntem işlevi için tip bilgisi yok"
-
-#: ieee.c:3002
-msgid "C++ static virtual method"
-msgstr "C++ statik sanal yöntem"
-
-#: ieee.c:3097
-msgid "unrecognized C++ object overhead spec"
-msgstr "bilinmeyen C++ nesne masraf tanımı"
-
-#: ieee.c:3136
-msgid "undefined C++ vtable"
-msgstr "tanımlanmamış C++ vtablosu"
-
-#: ieee.c:3205
-msgid "C++ default values not in a function"
-msgstr "C++ öntanımlı değerleri işlev içerisinde değil"
-
-#: ieee.c:3245
-msgid "unrecognized C++ default type"
-msgstr "bilinmeyen öntanımlı C++ tipi"
-
-#: ieee.c:3276
-msgid "reference parameter is not a pointer"
-msgstr "referans parametresi imleyici deÄŸil"
-
-#: ieee.c:3359
-msgid "unrecognized C++ reference type"
-msgstr "bilinmeyen C++ referans tipi"
-
-#: ieee.c:3441
-msgid "C++ reference not found"
-msgstr "C++ referansı bulunamadı"
-
-#: ieee.c:3449
-msgid "C++ reference is not pointer"
-msgstr "C++ referansı imleyici değil"
-
-#: ieee.c:3475 ieee.c:3483
-msgid "missing required ASN"
-msgstr "Gerekli ASN yok"
-
-#: ieee.c:3510 ieee.c:3518
-msgid "missing required ATN65"
-msgstr "Gerekli ATN65 yok"
-
-#: ieee.c:3532
-msgid "bad ATN65 record"
-msgstr "hatalı ATN65 kaydı"
-
-#: ieee.c:4160
-#, c-format
-msgid "IEEE numeric overflow: 0x"
-msgstr "IEEE sayısal taşma: 0x"
-
-#: ieee.c:4204
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr "IEEE dizge uzunluk taşması: %u\n"
-
-#: ieee.c:5203
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr "IEEE desteklenmeyen tamsayı tip boyu %u\n"
-
-#: ieee.c:5237
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr "IEEE desteklenmeyen gerçel tip boyu %u\n"
-
-#: ieee.c:5271
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr "IEEE desteklenmeyen karmaşık tip boyu %u\n"
-
-#: nlmconv.c:267 srconv.c:1810
-msgid "input and output files must be different"
-msgstr "girdi ve çıktı dosyaları farklı olmalı"
-
-#: nlmconv.c:314
-msgid "input file named both on command line and with INPUT"
-msgstr "girdi dosyası ismi hem komut satırında hem INPUT olarak verilmiş"
-
-#: nlmconv.c:323
-msgid "no input file"
-msgstr "girdi dosyası yok"
-
-#: nlmconv.c:353
-msgid "no name for output file"
-msgstr "çıktı dosyası için isim yok"
-
-#: nlmconv.c:367
-msgid "warning: input and output formats are not compatible"
-msgstr "uyarı: girdi ve çıktı biçemleri uyumlu değil"
-
-#: nlmconv.c:396
-msgid "make .bss section"
-msgstr ".bss bölümü oluştur"
-
-#: nlmconv.c:405
-msgid "make .nlmsections section"
-msgstr ".nlmsections bölümü oluştur"
-
-#: nlmconv.c:407
-msgid "set .nlmsections flags"
-msgstr ".nlmsections seçenekleri atar"
-
-#: nlmconv.c:435
-msgid "set .bss vma"
-msgstr ".bss vma atar"
-
-#: nlmconv.c:442
-msgid "set .data size"
-msgstr ".data boyu atar"
-
-#: nlmconv.c:622
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr "uyarı: %s sembolü ithal edildi ama ithal listesinde değil"
-
-#: nlmconv.c:642
-msgid "set start address"
-msgstr "başlangıç adresini atar"
-
-#: nlmconv.c:691
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr "uyarı: START altyordamı %s tanımsız"
-
-#: nlmconv.c:693
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr "uyarı: EXIT altyordamı %s tanımsız"
-
-#: nlmconv.c:695
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr "warning: CHECK altyordamı %s tanımsız"
-
-#: nlmconv.c:716 nlmconv.c:905
-msgid "custom section"
-msgstr "özel bölüm"
-
-#: nlmconv.c:737 nlmconv.c:934
-msgid "help section"
-msgstr "yardım bölümü"
-
-#: nlmconv.c:759 nlmconv.c:952
-msgid "message section"
-msgstr "ileti bölümü"
-
-#: nlmconv.c:775 nlmconv.c:985
-msgid "module section"
-msgstr "modül bölümü"
-
-#: nlmconv.c:795 nlmconv.c:1001
-msgid "rpc section"
-msgstr "rpc bölümü"
-
-#. There is no place to record this information.
-#: nlmconv.c:831
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr "%s: uyarı: paylaşımlı kitaplıklar öndeğer atanmamış veri kapsayamaz"
-
-#: nlmconv.c:852 nlmconv.c:1020
-msgid "shared section"
-msgstr "paylaşımlı bölüm"
-
-#: nlmconv.c:860
-msgid "warning: No version number given"
-msgstr "uyarı: Sürüm numarası verilmemiş"
-
-#: nlmconv.c:900 nlmconv.c:929 nlmconv.c:947 nlmconv.c:996 nlmconv.c:1015
-#, c-format
-msgid "%s: read: %s"
-msgstr "%s: okundu: %s"
-
-#: nlmconv.c:922
-msgid "warning: FULLMAP is not supported; try ld -M"
-msgstr "uyarı: FULLMAP desteklenmiyor; ld -M komutunu deneyin"
-
-#: nlmconv.c:1098
-#, c-format
-msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
-msgstr "Kullanım: %s [seçenekler] [girdi-dosyası [çıktı-dosyası]]\n"
-
-#: nlmconv.c:1099
-#, c-format
-msgid " Convert an object file into a NetWare Loadable Module\n"
-msgstr " Bir nesne dosyasını NetWare Yüklenebilir Modül haline getirir\n"
-
-#: nlmconv.c:1100
-#, c-format
-msgid ""
-" The options are:\n"
-" -I --input-target=<bfdname> Set the input binary file format\n"
-" -O --output-target=<bfdname> Set the output binary file format\n"
-" -T --header-file=<file> Read <file> for NLM header information\n"
-" -l --linker=<linker> Use <linker> for any linking\n"
-" -d --debug Display on stderr the linker command line\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-msgstr ""
-" Seçenekler:\n"
-" -I --input-target=<bfdadı > Girdi ikilik dosya biçemini belirler\n"
-" -O --output-target=<bfdadı> Çıktı ikilik dosya biçemini belirler\n"
-" -T --header-file=<dosya> NLM başlık bilgilerini <dosya>dan okur\n"
-" -l --linker=<bağlayıcı> Bağlama işlemi için <bağlayıcı>yı kullanır\n"
-" -d --debug Standart hatada bağlayıcı komut satırını gösterir\n"
-" -h --help Bu bilgiyi gösterir\n"
-" -v --version Program sürüm no'sunu gösterir\n"
-
-#: nlmconv.c:1140
-#, c-format
-msgid "support not compiled in for %s"
-msgstr "%s için destek derlenmemiş"
-
-#: nlmconv.c:1177
-msgid "make section"
-msgstr "bölüm oluştur"
-
-#: nlmconv.c:1191
-msgid "set section size"
-msgstr "bölüm boyu belirtir"
-
-#: nlmconv.c:1197
-msgid "set section alignment"
-msgstr "bölüm hizalanması atar"
-
-#: nlmconv.c:1201
-msgid "set section flags"
-msgstr "bölüm seçeneklerini atar"
-
-#: nlmconv.c:1212
-msgid "set .nlmsections size"
-msgstr ".nlmsections boyunu atar"
-
-#: nlmconv.c:1293 nlmconv.c:1301 nlmconv.c:1310 nlmconv.c:1315
-msgid "set .nlmsection contents"
-msgstr ".nlmsection içeriğini atar"
-
-#: nlmconv.c:1794
-msgid "stub section sizes"
-msgstr "koçan bölüm boyları"
-
-#: nlmconv.c:1841
-msgid "writing stub"
-msgstr "koçan yazılıyor"
-
-#: nlmconv.c:1925
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr "%s'e göreli PC yer değiştirme çözümlenemedi"
-
-#: nlmconv.c:1989
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr "%s'e göreli yer değiştirme ayarlanırken taşma oluştu"
-
-#: nlmconv.c:2116
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr "%s: %s'in çalıştırılması başarısız oldu: "
-
-#: nlmconv.c:2131
-#, c-format
-msgid "Execution of %s failed"
-msgstr "%s'in çalıştırılması başarısız oldu"
-
-#: nm.c:224 size.c:80 strings.c:651
-#, c-format
-msgid "Usage: %s [option(s)] [file(s)]\n"
-msgstr "Kullanım: %s [seçenekler] [dosya(lar)]\n"
-
-#: nm.c:225
-#, c-format
-msgid " List symbols in [file(s)] (a.out by default).\n"
-msgstr " [dosya(lar)]daki sembolleri listeler (öntanımlı a.out).\n"
-
-#: nm.c:226
-#, c-format
-msgid ""
-" The options are:\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -S, --print-size Print size of defined symbols\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" --special-syms Include special symbols in the output\n"
-" --synthetic Display synthetic symbols as well\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -X 32_64 (ignored)\n"
-" -h, --help Display this information\n"
-" -V, --version Display this program's version number\n"
-"\n"
-msgstr ""
-" Seçenekler:\n"
-" -a, --debug-syms Yalnızca hata ayıklamaya dair sembolleri gösterir\n"
-" -A, --print-file-name Her sembolden önce girdi dosyasının adını yazdırır\n"
-" -B --format=bsd ile aynı\n"
-" -C, --demangle[=TARZ] Alt düzey sembol adlarını kullanıcı seviyesinde adlara çevirir\n"
-" TARZ, eğer belirtilirse, 'auto' (öntanımlı),\n"
-" `gnu', 'lucid', 'arm', 'hp', 'edg' 'gnu-v3',\n"
-" 'java' veya 'gnat' olabilir\n"
-" --no-demangle Alt düzey sembol adlarını çevirmez\n"
-" -D, --dynamic Normal semboller yerine dinamik sembolleri gösterir\n"
-" --defined-only Yalnızca tanımlanmış sembolleri gösterir\n"
-" -e (yoksayılır)\n"
-" -f, --format=BİÇEM Çıktı biçemi için BİÇEM'i kullanır.\n"
-" BİÇEM, 'bsd' (öntanımlı), `sysv' veya\n"
-" `posix' olabilir\n"
-" -g, --extern-only Yalnızca harici sembolleri gösterir\n"
-" -l, --line-numbers Hata ayıklama bilgisini kullanarak her sembol için bir\n"
-" satır numarası ve dosya adı bulur.\n"
-" -n, --numeric-sort Sembolleri adres numarasına göre sıralar\n"
-" -o -A ile aynı\n"
-" -p, --no-sort Sembolleri sıralamaz\n"
-" -P, --portability --format=posix ile aynı\n"
-" -r, --reverse-sort Ters sıralar\n"
-" -S, --print-size Tanımlı sembollerin boyunu gösterir\n"
-" -s, --print-armap Arşiv üyelerinden gelen semboller için endeks içerir\n"
-" --size-sort Sembolleri büyüklüğe göre sıralar\n"
-" --special-syms Çıktıda özel sembolleri de gösterir\n"
-" --synthetic Sentetik sembolleri de gösterir\n"
-" -t, --radix=RADIX Sembol değerlerini yazdırmak için RADIX kullanır\n"
-" --target=BFD_ADI Hedef nesne biçemini BFD_ADI olarak belirler\n"
-" -u, --undefined-only Yalnızca tanımlanmamış sembolleri gösterir\n"
-" -X 32_64 (yok sayılır)\n"
-" -h, --help Bu bilgiyi gösterir\n"
-" -V, --version Sürüm bilgilerini gösterir\n"
-"\n"
-
-#: nm.c:262 objdump.c:232
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr ""
-"Hataları %s adresine, \n"
-"çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
-
-#: nm.c:294
-#, c-format
-msgid "%s: invalid radix"
-msgstr "%s: geçersiz radix"
-
-#: nm.c:318
-#, c-format
-msgid "%s: invalid output format"
-msgstr "%s: geçersiz çıktı biçemi"
-
-#: nm.c:339 readelf.c:6342 readelf.c:6378
-#, c-format
-msgid "<processor specific>: %d"
-msgstr "<işlemciye özel>: %d"
-
-#: nm.c:341 readelf.c:6345 readelf.c:6390
-#, c-format
-msgid "<OS specific>: %d"
-msgstr "<İS'e özel>: %d"
-
-#: nm.c:343 readelf.c:6347 readelf.c:6393
-#, c-format
-msgid "<unknown>: %d"
-msgstr "<bilinmeyen>: %d"
-
-#: nm.c:380
-#, c-format
-msgid ""
-"\n"
-"Archive index:\n"
-msgstr ""
-"\n"
-"ArÅŸiv endeksi:\n"
-
-#: nm.c:1225
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"%s'de tanımlanmamış semboller:\n"
-"\n"
-
-#: nm.c:1227
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"%s'de semboller:\n"
-"\n"
-
-#: nm.c:1229 nm.c:1280
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"İsim Değer Sınıf Tip Boy Satır Bölüm\n"
-"\n"
-
-#: nm.c:1232 nm.c:1283
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"İsim Değer Sınıf Tip Boy Satır Bölüm\n"
-"\n"
-
-#: nm.c:1276
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"%s[%s]'de tanımlanmamış semboller:\n"
-"\n"
-
-#: nm.c:1278
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"%s[%s]'de semboller:\n"
-"\n"
-
-#: nm.c:1580
-msgid "Only -X 32_64 is supported"
-msgstr "Yalnız -X 32_64 destekleniyor"
-
-#: nm.c:1600
-msgid "Using the --size-sort and --undefined-only options together"
-msgstr "--size-sort ve --undefined-only seçenekleri beraber kullanılıyor"
-
-#: nm.c:1601
-msgid "will produce no output, since undefined symbols have no size."
-msgstr "tanımsız sembollerin boyları olmadığından çıktı üretilmeyecek."
-
-#: nm.c:1629
-#, c-format
-msgid "data size %ld"
-msgstr "veri büyüklüğü %ld"
-
-#: objcopy.c:396 srconv.c:1721
-#, c-format
-msgid "Usage: %s [option(s)] in-file [out-file]\n"
-msgstr "Kullanım: %s [seçenekler] girdi-dosyası [çıktı-dosyası]\n"
-
-#: objcopy.c:397
-#, c-format
-msgid " Copies a binary file, possibly transforming it in the process\n"
-msgstr " İkilik dosyayı, muhtemelen değiştirerek kopyalar\n"
-
-#: objcopy.c:398 objcopy.c:487
-#, c-format
-msgid " The options are:\n"
-msgstr " Seçenekler:\n"
-
-#: objcopy.c:399
-#, c-format
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -B --binary-architecture <arch> Set arch of output file, when input is binary\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" --debugging Convert debugging information, if possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation information\n"
-" -g --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" --strip-unneeded-symbol <name>\n"
-" Do not copy symbol <name> unless needed by\n"
-" relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -K --keep-symbol <name> Only copy symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-" --weaken Force all global symbols to be marked as weak\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address <addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to <flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to output\n"
-" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-" --change-leading-char Force output format's leading character style\n"
-" --remove-leading-char Remove leading character from global symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --redefine-syms <file> --redefine-sym for all symbol pairs \n"
-" listed in <file>\n"
-" --srec-len <number> Restrict the length of generated Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-" --strip-symbols <file> -N for all symbols listed in <file>\n"
-" --strip-unneeded-symbols <file>\n"
-" --strip-unneeded-symbol for all symbols listed\n"
-" in <file>\n"
-" --keep-symbols <file> -K for all symbols listed in <file>\n"
-" --localize-symbols <file> -L for all symbols listed in <file>\n"
-" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-" --weaken-symbols <file> -W for all symbols listed in <file>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" --writable-text Mark the output text as writable\n"
-" --readonly-text Make the output text write protected\n"
-" --pure Mark the output file as demand paged\n"
-" --impure Mark the output file as impure\n"
-" --prefix-symbols <prefix> Add <prefix> to start of every symbol name\n"
-" --prefix-sections <prefix> Add <prefix> to start of every section name\n"
-" --prefix-alloc-sections <prefix>\n"
-" Add <prefix> to start of every allocatable\n"
-" section name\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-msgstr ""
-" -I --input-target <bfd_adı> Girdi dosyasının <bfd_adı> biçeminde\n"
-" olduÄŸunu varsayar\n"
-" -O --output-target <bfd_adı> Çıktı dosyasını <bfd_adı> biçeminde\n"
-" oluÅŸturur\n"
-" -B --binary-architecture <plat> Girdi ikilik biçeminde olduğu zaman çıktı\n"
-" dosyasının platformunu belirler.\n"
-" -F --target <bfd_adı> Hem girdi, hem de çıktı biçemini <bfd_adı>\n"
-" olarak atar\n"
-" --debugging Mümkün olduğu kadar hata ayıklama\n"
-" bilgisini dönüştürür\n"
-" -p --preserve-dates Çıktıya değişim/erişim zaman damgalarını\n"
-" kopyalar\n"
-" -j --only-section <isim> Çıktıya yalnızca <isim> bölümünü kopyalar\n"
-" --add-gnu-debuglink=<dosya>....gnu_debuglink bölümünü <dosya>'ya ekler\n"
-" -R --remove-section <isim> Çıktıdan <isim> bölümünü çıkarır\n"
-" -S --strip-all Bütün sembol ve yer değiştirme bilgisini\n"
-" siler\n"
-" -g --strip-debug Bütün hata ayıklama sembollerini siler\n"
-" --strip-unneeded Yer değiştirmeler için gerekmeyen bütün\n"
-" sembolleri siler\n"
-" -N --strip-symbol <isim> <isim> sembolünü kopyalamaz\n"
-" --strip-unneeded-symbol <isim>\n"
-" <isim> sembolünü, yer değiştirme için\n"
-" gerekmiyorsa kopyalamaz\n"
-" --only-keep-debug Hata ayıklama bilgisi dışında bütün\n"
-" bilgileri siler\n"
-" -K --keep-symbol <isim> Yalnızca <isim> sembolünü kopyalar\n"
-" -L --localize-symbol <isim> <isim> sembolünün yerel olarak\n"
-" tanımlanmasını sağlar\n"
-" -G --keep-global-symbol <isim> <isim> haricindeki bütün sembolleri\n"
-" yerelleÅŸtirir.\n"
-" -W --weaken-symbol <isim> <isim> sembolünün zayıf olarak\n"
-" tanımlanmasını sağlar\n"
-" --weaken Bütün evrensel sembollerin zayıf olarak\n"
-" tanımlanmasını sağlar\n"
-" -w --wildcard Sembol karşılaştırmada şablon kullanımına\n"
-" izin verir\n"
-" -x --discard-all Evrensel olmayan bütün sembolleri siler\n"
-" -X --discard-locals Derleyici tarafından oluşturulan bütün\n"
-" sembolleri siler\n"
-" -i --interleave <sayı> Her <sayı> bayttan yalnız birini kopyalar\n"
-" -b --byte <sayı> Her serpiştirilmiş bloktan <sayı> numaralı\n"
-" baytı seçer\n"
-" --gap-fill <değer> Bölümler arası boşlukları <değer> ile\n"
-" doldurur\n"
-" --pad-to <adres> Son bölümü <adres>e kadar boşlukla doldurur\n"
-" --set-start <adres> Başlangıç adresini <adres> olarak belirtir\n"
-" {--change-start|--adjust-start} <basamak>\n"
-" Başlangıç adresine <basamak> ekler\n"
-" {--change-addresses|--adjust-vma} <basamak>\n"
-" LMA, VMA ve başlangıç adreslerine <basamak>\n"
-" ekler\n"
-" {--change-section-address|--adjust-section-vma} <isim>{=|+|-}<deÄŸer>\n"
-" <isim> bölümünün LMA ve VMA'sını <değer>\n"
-" kadar deÄŸiÅŸtirir\n"
-" --change-section-lma <isim>{=|+|-}<deÄŸer>\n"
-" <isim> bölümünün LMA'sını <değer> kadar\n"
-" deÄŸiÅŸtirir\n"
-" --change-section-vma <isim>{=|+|-}<deÄŸer>\n"
-" <isim> bölümünün VMA'sını <değer> kadar\n"
-" deÄŸiÅŸtirir\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Eğer isimli bir bölüm yok ise uyarı verir\n"
-" --set-section-flags <isim>=<seçenekler>\n"
-" <isim> bölümünün özniteliklerini\n"
-" <seçenekler>e ayarlar\n"
-" --add-section <isim>=<dosya> <dosya> içinde bulunan <isim> bölümünü\n"
-" çıktıya ekler\n"
-" --rename-section <eski>=<yeni>[,<bayrak>] <eski> bölümünü <yeni> olarak\n"
-" yeniden adlandırır\n"
-" --change-leading-char Çıktı biçeminin başlangıç karakter tipini\n"
-" deÄŸiÅŸtirir\n"
-" --remove-leading-char Evrensel sembollerden başlangıç\n"
-" karakterini çıkarır\n"
-" --redefine-sym <eski>=<yeni> <eski> isimli sembolü <yeni> isimli olarak\n"
-" yeniden tanımlar\n"
-" --redefine-syms <dosya> <dosya> içinde tanımlı bütün sembol\n"
-" çiftleri için --redefine-sym uygular\n"
-" --srec-len <sayı> Oluşturulan S kayıtlarının boyutunu\n"
-" kısıtlar\n"
-" --srec-forceS3 Oluşturulan S kayıtları tipini S3 olarak\n"
-" kısıtlar\n"
-" --strip-symbols <dosya> <dosya>daki bütün semboller için -N uygular\n"
-" --strip-unneeded-symbols <dosya>\n"
-" <dosya>daki bütün semboller için\n"
-" --strip-unneeded-symbol uygular\n"
-" --keep-symbols <dosya> <dosya>daki bütün semboller için -K uygular\n"
-" --localize-symbols <dosya> <dosya>daki bütün semboller için -L uygular\n"
-" --keep-global-symbols <dosya> <dosya>daki bütün semboller için -G uygular\n"
-" --weaken-symbols <dosya> <dosya>daki bütün semboller için -W uygular\n"
-" --alt-machine-code <indeks> Çıktı için alternatif makine kodu kullanır\n"
-" --writable-text Çıktı metnini yazılabilir olarak imler\n"
-" --readonly-text Çıktı metnini salt-okunur olarak imler\n"
-" --pure Çıktı metnini istek üzerine sayfalanan\n"
-" olarak imler\n"
-" --impure Çıktı metnini saf değil olarak imler\n"
-" --prefix-symbols <önek> Her sembol adına <önek> ekler\n"
-" --prefix-sections <önek> Her bölüm adına <önek> ekler\n"
-" --prefix-alloc-sections <önek>\n"
-" Her ayrılabilir bölüm adına <önek> ekler\n"
-" -v --verbose Değiştirilen tüm nesne dosyalarını listeler\n"
-" -V --version Bu yazılımın sürüm bilgilerini gösterir\n"
-" -h --help Bu çıktıyı gösterir\n"
-" --info Desteklenen nesne biçemlerini ve mimarileri\n"
-" gösterir\n"
-
-#: objcopy.c:485
-#, c-format
-msgid "Usage: %s <option(s)> in-file(s)\n"
-msgstr "Kullanım: %s <seçenekler> girdi-dosya(ları)\n"
-
-#: objcopy.c:486
-#, c-format
-msgid " Removes symbols and sections from files\n"
-msgstr " Dosyalardan sembol ve bölümleri çıkarır\n"
-
-#: objcopy.c:488
-#, c-format
-msgid ""
-" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target=<bfdname> Create an output file in format <bfdname>\n"
-" -F --target=<bfdname> Set both input and output format to <bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -R --remove-section=<name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation information\n"
-" -g -S -d --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -N --strip-symbol=<name> Do not copy symbol <name>\n"
-" -K --keep-symbol=<name> Only copy symbol <name>\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr ""
-" -I --input-target=<bfd_adı> Girdi dosyasının <bfd_adı> biçeminde \n"
-" olduÄŸunu varsayar\n"
-" -O --output-target=<bfd_adı> Çıktı dosyasını <bfd_adı> biçeminde \n"
-" oluÅŸturur\n"
-" -F --target=<bfd_adı> Girdi ve çıktı biçemlerini <bfd_adı> olarak\n"
-" atar\n"
-" -p --preserve-dates Çıktıya değişim/erişim zaman damgalarını \n"
-" kopyalar\n"
-" -R --remove-section=<isim> Çıktıdan <isim> bölümünü çıkarır\n"
-" -s --strip-all Bütün sembol ve yer değiştirme bilgisini\n"
-" siler\n"
-" -g -S -d --strip-debug Bütün hata ayıklama sembollerini ve\n"
-" bölümlerini siler\n"
-" --strip-unneeded Yer değiştirmeler için gerekmeyen bütün\n"
-" sembolleri siler\n"
-" --only-keep-debug Hata ayıklama için gerekmeyen bütün\n"
-" sembolleri siler\n"
-" -N --strip-symbol=<isim> <isim> sembolünü kopyalamaz\n"
-" -K --keep-symbol=<isim> Yalnızca <isim> sembolünü kopyalar\n"
-" -w --wildcard Sembol karşılaştırmada şablon kullanımına\n"
-" izin verir\n"
-" -x --discard-all Evrensel olmayan bütün sembolleri siler\n"
-" -X --discard-locals Derleyici tarafından oluşturulan bütün\n"
-" sembolleri siler\n"
-" -v --verbose Değiştirilen tüm nesne dosyalarını listeler\n"
-" -V --version Bu yazılımın sürüm bilgilerini gösterir\n"
-" -h --help Bu çıktıyı gösterir\n"
-" --info Desteklenen nesne biçemlerini ve\n"
-" mimarileri gösterir\n"
-" -o <dosya> Sembolleri silinmiş çıktıyı <dosya>ya \n"
-" yerleÅŸtirir\n"
-
-#: objcopy.c:560
-#, c-format
-msgid "unrecognized section flag `%s'"
-msgstr "bilinmeyen bölüm seçeneği `%s'"
-
-#: objcopy.c:561
-#, c-format
-msgid "supported flags: %s"
-msgstr "desteklenen seçenekler: %s"
-
-#: objcopy.c:638
-#, c-format
-msgid "cannot open '%s': %s"
-msgstr "'%s' açılamadı: %s"
-
-#: objcopy.c:641 objcopy.c:2629
-#, c-format
-msgid "%s: fread failed"
-msgstr "%s: fread başarısız"
-
-#: objcopy.c:714
-#, c-format
-msgid "%s:%d: Ignoring rubbish found on this line"
-msgstr "%s:%d: Bu satırda bulunan bozukluk yoksayıldı"
-
-#: objcopy.c:976
-#, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr "%s: \"%s\" sembolü tekrar tanımlanmış"
-
-#: objcopy.c:980
-#, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr "%s: \"%s\" sembolü birden fazla yeniden tanımlamanın hedefi"
-
-#: objcopy.c:1008
-#, c-format
-msgid "couldn't open symbol redefinition file %s (error: %s)"
-msgstr "sembol yeniden tanımlama dosyası %s açılamadı (hata: %s)"
-
-#: objcopy.c:1086
-#, c-format
-msgid "%s:%d: garbage found at end of line"
-msgstr "%s:%d: satırın sonu bozuk"
-
-#: objcopy.c:1089
-#, c-format
-msgid "%s:%d: missing new symbol name"
-msgstr "%s:%d: yeni sembol adı eksik"
-
-#: objcopy.c:1099
-#, c-format
-msgid "%s:%d: premature end of file"
-msgstr "%s:%d: erken sonlanmış dosya"
-
-#: objcopy.c:1124
-msgid "Unable to change endianness of input file(s)"
-msgstr "Girdi dosyanın küçük/büyük sonluluğu değiştirilemedi"
-
-#: objcopy.c:1133
-#, c-format
-msgid "copy from %s(%s) to %s(%s)\n"
-msgstr "%s(%s)'dan %s(%s)'a kopyalar\n"
-
-#: objcopy.c:1170
-#, c-format
-msgid "Unable to recognise the format of the input file %s"
-msgstr "%s girdi dosyasının biçemi tanınmadı"
-
-#: objcopy.c:1174
-#, c-format
-msgid "Warning: Output file cannot represent architecture %s"
-msgstr "Uyarı: Çıktı dosyası %s mimarisini temsil edemez"
-
-#: objcopy.c:1211
-#, c-format
-msgid "can't create section `%s': %s"
-msgstr "`%s' bölümü oluşturulamadı: %s"
-
-#: objcopy.c:1277
-msgid "there are no sections to be copied!"
-msgstr "kopyalanacak bölüm yok!"
-
-#: objcopy.c:1323
-#, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr "%s'den sonraki boşluk doldurulamadı: %s"
-
-#: objcopy.c:1348
-#, c-format
-msgid "Can't add padding to %s: %s"
-msgstr "%s'ye dolgu eklenemedi: %s"
-
-#: objcopy.c:1514
-#, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr "%s: özel BFD verisi kopyalanırken hata: %s"
-
-#: objcopy.c:1525
-msgid "unknown alternate machine code, ignored"
-msgstr "bilinmeyen alternatif makine kodu, yoksayıldı"
-
-#: objcopy.c:1555 objcopy.c:1585
-#, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr "arşiv kopyalaması için mkdir %s başarılı olamadı (hata: %s)"
-
-#: objcopy.c:1790
-#, c-format
-msgid "Multiple renames of section %s"
-msgstr "%s bölümünde birden fazla yeniden isimleme"
-
-#: objcopy.c:1841
-msgid "private header data"
-msgstr "özel başlık verisi"
-
-#: objcopy.c:1849
-#, c-format
-msgid "%s: error in %s: %s"
-msgstr "%s: %s içinde hata: %s"
-
-#: objcopy.c:1903
-msgid "making"
-msgstr "oluÅŸturuluyor"
-
-#: objcopy.c:1912
-msgid "size"
-msgstr "boyut"
-
-#: objcopy.c:1926
-msgid "vma"
-msgstr "vma"
-
-#: objcopy.c:1951
-msgid "alignment"
-msgstr "hizalama"
-
-#: objcopy.c:1966
-msgid "flags"
-msgstr "seçenekler"
-
-#: objcopy.c:1988
-msgid "private data"
-msgstr "özel veri"
-
-#: objcopy.c:1996
-#, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr "%s: bölüm `%s': %s'da hata: %s"
-
-#: objcopy.c:2274
-#, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr "%s: hata ayıklama bölümü oluşturulamadı: %s"
-
-#: objcopy.c:2288
-#, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr "%s: hata ayıklama bölüm içeriği atanamadı: %s"
-
-#: objcopy.c:2297
-#, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr "%s: %s için hata ayıklama bilgisinin nasıl yazılacağı bilinmiyor"
-
-#: objcopy.c:2472
-msgid "byte number must be non-negative"
-msgstr "bayt numarası negatif olmamalı"
-
-#: objcopy.c:2482
-msgid "interleave must be positive"
-msgstr "serpiştirme pozitif olmalı"
-
-#: objcopy.c:2502 objcopy.c:2510
-#, c-format
-msgid "%s both copied and removed"
-msgstr "%s hem kopyalandı hem silindi"
-
-#: objcopy.c:2603 objcopy.c:2674 objcopy.c:2774 objcopy.c:2805 objcopy.c:2829
-#: objcopy.c:2833 objcopy.c:2853
-#, c-format
-msgid "bad format for %s"
-msgstr "%s için hatalı biçem"
-
-#: objcopy.c:2624
-#, c-format
-msgid "cannot open: %s: %s"
-msgstr "açılamadı: %s: %s"
-
-#: objcopy.c:2743
-#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "Uyarı: dolgu, 0x%s'dan 0x%x'ya kırpıldı"
-
-#: objcopy.c:2903
-msgid "alternate machine code index must be positive"
-msgstr "alternatif makine kodu indeksi pozitif olmalı"
-
-#: objcopy.c:2961
-msgid "byte number must be less than interleave"
-msgstr "bayt numarası serpiştirmeden daha küçük olmalı"
-
-#: objcopy.c:2991
-#, c-format
-msgid "architecture %s unknown"
-msgstr "%s platformu bilinmiyor"
-
-#: objcopy.c:2995
-msgid "Warning: input target 'binary' required for binary architecture parameter."
-msgstr "Uyarı: ikilik platform parametresi için ikilik (`binary') girdi hedefi gerekli."
-
-#: objcopy.c:2996
-#, c-format
-msgid " Argument %s ignored"
-msgstr " %s argümanı yoksayıldı"
-
-#: objcopy.c:3002
-#, c-format
-msgid "warning: could not locate '%s'. System error message: %s"
-msgstr "uyarı: '%s' bulunamadı. Sistem hata iletisi: %s"
-
-#: objcopy.c:3042 objcopy.c:3056
-#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr "%s %s%c0x%s hiç kullanılmadı"
-
-#: objdump.c:176
-#, c-format
-msgid "Usage: %s <option(s)> <file(s)>\n"
-msgstr "Kullanım: %s <seçenekler> <girdi-dosya(ları)>\n"
-
-#: objdump.c:177
-#, c-format
-msgid " Display information from object <file(s)>.\n"
-msgstr "Nesne <dosya>'sından bilgi gösterir.\n"
-
-#: objdump.c:178
-#, c-format
-msgid " At least one of the following switches must be given:\n"
-msgstr " En azından aşağıdaki seçeneklerin biri verilmelidir:\n"
-
-#: objdump.c:179
-#, c-format
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -e, --debugging-tags Display debug information using ctags style\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" -v, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-" -a, --archive-headers Arşiv başlık bilgilerini gösterir\n"
-" -f, --file-headers Dosya başlık bilgilerini gösterir\n"
-" -p, --private-headers Nesne biçemine özgü dosya başlık bilgilerini gösterir\n"
-" -h, --[section-]headers Bölüm başlıklarını gösterir\n"
-" -x, --all-headers Bütün başlıkları gösterir\n"
-" -d, --disassemble Uygulama bölümlerinin üretici içeriğini gösterir\n"
-" -D, --disassemble-all Bütün bölümlerin üretici içeriklerini gösterir\n"
-" -S, --source Üretici içerikleri ile kaynak kodunu bir arada gösterir\n"
-" -s, --full-contents İstenen bütün bölümlerin bütün içeriğini gösterir\n"
-" -g, --debugging Nesne dosyasındaki hata ayıklama bilgilerini gösterir\n"
-" -e, --debugging-tags Hata ayıklama bilgilerini ctags tarzında gösterir\n"
-" -G, --stabs Dosyadaki STABS bilgisini (ham hali ile) gösterir\n"
-" -t, --syms Sembol tablolarının içeriğini gösterir\n"
-" -T, --dynamic-syms Dinamik sembol tablolarının içeriğini gösterir\n"
-" -r, --reloc Dosyadaki yer değiştirme girdilerini gösterir\n"
-" -R, --dynamic-reloc Dosyadaki dinamik yer değiştirme bilgilerini gösterir\n"
-" -v, --version Bu yazılımın sürüm bilgilerini gösterir\n"
-" -i, --info Desteklenen biçem ve mimarileri gösterir\n"
-" -H, --help Bu bilgiyi gösterir\n"
-
-#: objdump.c:202
-#, c-format
-msgid ""
-"\n"
-" The following switches are optional:\n"
-msgstr ""
-"\n"
-" Aşağıdaki seçenekler isteğe bağlı:\n"
-
-#: objdump.c:203
-#, c-format
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -I, --include=DIR Add DIR to search list for source files\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', `gnu',\n"
-" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whose address is >= ADDR\n"
-" --stop-address=ADDR Only process data whose address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-" --special-syms Include special symbols in symbol dumps\n"
-"\n"
-msgstr ""
-" -b, --target=BFD_ADI Hedef nesne biçemini BFD_ADI olarak belirtir\n"
-" -m, --architecture=MAKÄ°NE Hedef mimariyi MAKÄ°NE olarak belirtir\n"
-" -j, --section=İSİM Yalnızca İSİM bölümü için bilgi gösterir\n"
-" -M, --disassembler-options=SEÇ Karşıt-çeviriciye metin SEÇeneklerini geçirir\n"
-" -EB --endian=big Karşıt-çevirim esnasında big-endian biçemini\n"
-" varsayar\n"
-" -EL --endian=little Karşıt-çevirim esnasında little-endian\n"
-" biçemini varsayar\n"
-" --file-start-context Dosyanın başlangıcından itibaren bağlamı\n"
-" içerir (-S ile)\n"
-" -I, --include=DÄ°Z Kaynak dosya arama listesine DÄ°Z'i ekler\n"
-" -l, --line-numbers Çıktıda dosya isimleri ve satır numaraları\n"
-" gösterir\n"
-" -C, --demangle[=TARZ] Karıştırılmış/işlenmiş sembol isimlerini\n"
-" çözümler.\n"
-" Tarz, eÄŸer belirtilmiÅŸse, `auto', 'gnu',\n"
-" 'lucid', 'arm', 'hp', 'edg', 'gnu-v3', \n"
-" 'java' veya 'gnat' olabilir\n"
-" -w, --wide Çıktıyı 80 sütundan daha geniş olarak biçemler\n"
-" -z, --disassemble-zeroes Karşıt-çevirim esnasında sıfır bloklarını \n"
-" atlamaz\n"
-" --start-address=ADRES Yalnızca adresi >= ADRES olan verileri işler\n"
-" --stop-address=ADRES Yalnızca adresi <= ADRES olan verileri işler\n"
-" --prefix-addresses Tam adresi karşıt çevirim ile birlikte\n"
-" yazdırır\n"
-" --[no-]show-raw-insn Onaltılık bilgi ile sembolik karşıt-çevrimi\n"
-" birlikte yazdırır\n"
-" --adjust-vma=BASAMAK Bütün gösterilen bölüm adreslerine BASAMAK \n"
-" ekler\n"
-" --special-syms Sembol yığıt çıktılarına özel sembolleri de\n"
-" ekler\n"
-"\n"
-
-#: objdump.c:378
-#, c-format
-msgid "Sections:\n"
-msgstr "Bölümler:\n"
-
-#: objdump.c:381 objdump.c:385
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idx Adı Boy VMA LMA Dosya of Hiza"
-
-#: objdump.c:387
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idx Adı Boy VMA LMA Dosya of Hiza"
-
-#: objdump.c:391
-#, c-format
-msgid " Flags"
-msgstr " Seçenekler"
-
-#: objdump.c:393
-#, c-format
-msgid " Pg"
-msgstr " Pg"
-
-#: objdump.c:436
-#, c-format
-msgid "%s: not a dynamic object"
-msgstr "%s: dinamik nesne deÄŸil"
-
-#: objdump.c:1722
-#, c-format
-msgid "Disassembly of section %s:\n"
-msgstr "%s bölümünün karşıt çevrimi:\n"
-
-#: objdump.c:1884
-#, c-format
-msgid "Can't use supplied machine %s"
-msgstr "Verilen makine %s kullanılamadı"
-
-#: objdump.c:1903
-#, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr "%s mimarisi için karşıt çevirim yapılamadı\n"
-
-#: objdump.c:1973
-#, c-format
-msgid ""
-"No %s section present\n"
-"\n"
-msgstr ""
-"%s bölümü yok\n"
-"\n"
-
-#: objdump.c:1982
-#, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr "%2$s'nin %1$s bölümünün okunması başarısız: %3$s"
-
-#: objdump.c:2026
-#, c-format
-msgid ""
-"Contents of %s section:\n"
-"\n"
-msgstr ""
-"%s bölümünün içeriği:\n"
-"\n"
-
-#: objdump.c:2153
-#, c-format
-msgid "architecture: %s, "
-msgstr "mimari: %s,"
-
-#: objdump.c:2156
-#, c-format
-msgid "flags 0x%08x:\n"
-msgstr "seçenekler 0x%08x:\n"
-
-#: objdump.c:2170
-#, c-format
-msgid ""
-"\n"
-"start address 0x"
-msgstr ""
-"\n"
-"başlangıç adresi 0x"
-
-#: objdump.c:2210
-#, c-format
-msgid "Contents of section %s:\n"
-msgstr "%s bölümünün içeriği:\n"
-
-#: objdump.c:2335
-#, c-format
-msgid "no symbols\n"
-msgstr "sembol yok\n"
-
-#: objdump.c:2342
-#, c-format
-msgid "no information for symbol number %ld\n"
-msgstr "%ld numaralı sembol için bilgi yok\n"
-
-#: objdump.c:2345
-#, c-format
-msgid "could not determine the type of symbol number %ld\n"
-msgstr "%ld numaralı sembolün türü belirlenemedi\n"
-
-#: objdump.c:2611
-#, c-format
-msgid ""
-"\n"
-"%s: file format %s\n"
-msgstr ""
-"\n"
-"%s: %s dosya biçemi\n"
-
-#: objdump.c:2662
-#, c-format
-msgid "%s: printing debugging information failed"
-msgstr "%s: hata ayıklama bilgisinin yazdırılması başarısız"
-
-#: objdump.c:2753
-#, c-format
-msgid "In archive %s:\n"
-msgstr "%s arşivi içinde:\n"
-
-#: objdump.c:2873
-msgid "unrecognized -E option"
-msgstr "tanınmayan -E seçeneği"
-
-#: objdump.c:2884
-#, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr "tanınmayan --endian tipi `%s'"
-
-#: rdcoff.c:196
-#, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr "parse_coff_type: Kötü tip kodu 0x%x"
-
-#: rdcoff.c:404 rdcoff.c:509 rdcoff.c:697
-#, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr "bfd_coff_get_syment başarısız: %s"
-
-#: rdcoff.c:420 rdcoff.c:717
-#, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr "bfd_coff_get_auxent başarısız: %s"
-
-#: rdcoff.c:784
-#, c-format
-msgid "%ld: .bf without preceding function"
-msgstr "%ld: öncesinde işlev olmadan .bf"
-
-#: rdcoff.c:834
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr "%ld: beklenmeyen .ef\n"
-
-#: rddbg.c:85
-#, c-format
-msgid "%s: no recognized debugging information"
-msgstr "%s: tanınan hata ayıklama bilgisi yok"
-
-#: rddbg.c:394
-#, c-format
-msgid "Last stabs entries before error:\n"
-msgstr "Hata öncesi son stabs girdileri:\n"
-
-#: readelf.c:272
-#, c-format
-msgid "%s: Error: "
-msgstr "%s: Hata: "
-
-#: readelf.c:283
-#, c-format
-msgid "%s: Warning: "
-msgstr "%s: Uyarı: "
-
-#: readelf.c:298
-#, c-format
-msgid "Unable to seek to 0x%x for %s\n"
-msgstr "%2$s için 0x%1$x'e kadar arama yapılamadı\n"
-
-#: readelf.c:310
-#, c-format
-msgid "Out of memory allocating 0x%x bytes for %s\n"
-msgstr "%2$s için 0x%1$x bayt ayrılırken bellek tükendi\n"
-
-#: readelf.c:318
-#, c-format
-msgid "Unable to read in 0x%x bytes of %s\n"
-msgstr "%2$s'in 0x%1$x baytı okunamadı\n"
-
-#: readelf.c:364 readelf.c:412 readelf.c:615 readelf.c:647
-#, c-format
-msgid "Unhandled data length: %d\n"
-msgstr "Desteklenmeyen veri uzunluÄŸu: %d\n"
-
-#: readelf.c:752
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr "Bu makine mimarisi üzerinde yer değiştirmeler konusunda bilgi yok\n"
-
-#: readelf.c:772 readelf.c:799 readelf.c:842 readelf.c:869
-msgid "relocs"
-msgstr "yerdeÄŸiÅŸimler"
-
-#: readelf.c:782 readelf.c:809 readelf.c:852 readelf.c:879
-msgid "out of memory parsing relocs"
-msgstr "yer değiştirmeleri tararken bellek tükendi"
-
-#: readelf.c:933
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
-msgstr " Görece Bilgi Tür Sembol Değeri Sembol Adı + Sonekleme\n"
-
-#: readelf.c:935
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
-msgstr " Görece Bilgi Tür Sembol Değeri Sembol Adı + Sonekleme\n"
-
-#: readelf.c:940
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name\n"
-msgstr " Görece Bilgi Tür Sembol Değeri Sembol Adı\n"
-
-#: readelf.c:942
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name\n"
-msgstr " Görece Bilgi Tür Sembol Değeri Sembol Adı\n"
-
-#: readelf.c:950
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
-msgstr " Görece Bilgi Tür Sembol Değeri Sembol Adı + Sonek\n"
-
-#: readelf.c:952
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
-msgstr " Görece Bilgi Tür Sembol Değeri Sembol Adı + Sonekleme\n"
-
-#: readelf.c:957
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr " Görece Bilgi Tür Sembol Değeri Sembol Adı\n"
-
-#: readelf.c:959
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name\n"
-msgstr " Görece Bilgi Tür Sembol Değeri Sembol Adı\n"
-
-#: readelf.c:1239 readelf.c:1241 readelf.c:1324 readelf.c:1326 readelf.c:1335
-#: readelf.c:1337
-#, c-format
-msgid "unrecognized: %-7lx"
-msgstr "bilinmeyen: %-7lx"
-
-#: readelf.c:1295
-#, c-format
-msgid "<string table index: %3ld>"
-msgstr "<dizge tablo endeksi: %3ld>"
-
-#: readelf.c:1297
-#, c-format
-msgid "<corrupt string table index: %3ld>"
-msgstr "<bozuk dizge tablo endeksi: %3ld>"
-
-#: readelf.c:1569
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr "İşlemciye Özel: %lx"
-
-#: readelf.c:1588
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr "İşletim Sistemine Özel: %lx"
-
-#: readelf.c:1592 readelf.c:2370
-#, c-format
-msgid "<unknown>: %lx"
-msgstr "<bilinmeyen>: %lx"
-
-#: readelf.c:1605
-msgid "NONE (None)"
-msgstr "HİÇBİRİ (Hiçbiri)"
-
-#: readelf.c:1606
-msgid "REL (Relocatable file)"
-msgstr "YER (Yer deÄŸiÅŸtirebilen dosya)"
-
-#: readelf.c:1607
-msgid "EXEC (Executable file)"
-msgstr "UYGU (Uygulama dosyası)"
-
-#: readelf.c:1608
-msgid "DYN (Shared object file)"
-msgstr "DİN (Paylaşımlı nesne dosyası)"
-
-#: readelf.c:1609
-msgid "CORE (Core file)"
-msgstr "CORE (Core dosyası)"
-
-#: readelf.c:1613
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr "İşlemciye Özel: (%x)"
-
-#: readelf.c:1615
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr "İşletim Sistemine Özel: (%x)"
-
-#: readelf.c:1617 readelf.c:1724 readelf.c:2554
-#, c-format
-msgid "<unknown>: %x"
-msgstr "<bilinmeyen>: %x"
-
-#: readelf.c:1629
-msgid "None"
-msgstr "Hiçbiri"
-
-#: readelf.c:2229
-msgid "Standalone App"
-msgstr "Tekbaşına Uygulama"
-
-#: readelf.c:2232 readelf.c:2952 readelf.c:2968
-#, c-format
-msgid "<unknown: %x>"
-msgstr "<bilinmeyen: %x>"
-
-#: readelf.c:2597
-#, c-format
-msgid "Usage: readelf <option(s)> elf-file(s)\n"
-msgstr "Kullanım: readelf <seçenekler> elf-dosya(ları)\n"
-
-#: readelf.c:2598
-#, c-format
-msgid " Display information about the contents of ELF format files\n"
-msgstr " ELF biçem dosyalarının içeriği hakkında bilgi gösterir\n"
-
-#: readelf.c:2599
-#, c-format
-msgid ""
-" Options are:\n"
-" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Display the ELF file header\n"
-" -l --program-headers Display the program headers\n"
-" --segments An alias for --program-headers\n"
-" -S --section-headers Display the sections' header\n"
-" --sections An alias for --section-headers\n"
-" -g --section-groups Display the section groups\n"
-" -e --headers Equivalent to: -h -l -S\n"
-" -s --syms Display the symbol table\n"
-" --symbols An alias for --syms\n"
-" -n --notes Display the core notes (if present)\n"
-" -r --relocs Display the relocations (if present)\n"
-" -u --unwind Display the unwind info (if present)\n"
-" -d --dynamic Display the dynamic section (if present)\n"
-" -V --version-info Display the version sections (if present)\n"
-" -A --arch-specific Display architecture specific information (if any).\n"
-" -D --use-dynamic Use the dynamic section info when displaying symbols\n"
-" -x --hex-dump=<number> Dump the contents of section <number>\n"
-" -w[liaprmfFsoR] or\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n"
-" Display the contents of DWARF2 debug sections\n"
-msgstr ""
-" Seçenekler:\n"
-" -a --all -h -l -S -s -r -d -V -A -I ile aynı\n"
-" -h --file-header ELF dosya başlığını gösterir\n"
-" -l --program-headers Yazılım başlıklarını gösterir\n"
-" --segments --program-headers ile aynı\n"
-" -S --section-headers Bölüm başlıklarını gösterir\n"
-" --sections --section-headers ile aynı\n"
-" -g --section-groups Bölüm gruplarını gösterir\n"
-" -e --headers -h -l -S ile aynı\n"
-" -s --syms Sembol tablosunu gösterir\n"
-" --symbols --syms ile aynı\n"
-" -n --notes Eğer varsa, 'core' açıklamalarını gösterir\n"
-" -r --relocs Eğer varsa, yerdeğişimleri gösterir\n"
-" -u --unwind Eğer varsa, geri dönüşümleri gösterir\n"
-" -d --dynamic Eğer varsa, dinamik bölümleri gösterir\n"
-" -V --version-info Eğer varsa, sürüm bölümlerini gösterir\n"
-" -A --arch-specific Eğer varsa, platforma özgü bilgileri gösterir\n"
-" -D --use-dynamic Sembolleri gösterirken dinamik bölümleri kullanır\n"
-" -x --hex-dump=<sayı> <sayı> no'lu bölümün içeriğini gösterir\n"
-" -w[liaprmfFsoR] veya\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n"
-" DWARF2 hata ayıklama bölümlerinin içeriğini gösterir\n"
-
-#: readelf.c:2622
-#, c-format
-msgid ""
-" -i --instruction-dump=<number>\n"
-" Disassemble the contents of section <number>\n"
-msgstr ""
-" -i --instruction-dump=<sayı>\n"
-" <sayı> bölümünün içeriğini karşıt-çevirir\n"
-
-#: readelf.c:2626
-#, c-format
-msgid ""
-" -I --histogram Display histogram of bucket list lengths\n"
-" -W --wide Allow output width to exceed 80 characters\n"
-" -H --help Display this information\n"
-" -v --version Display the version number of readelf\n"
-msgstr ""
-" -I --histogram Küme listesi uzunluklarının geçmiş grafiğini gösterir\n"
-" -W --wide Çıktı genişliğinin 80 karakteri geçmesine izin verir\n"
-" -H --help Bu bilgiyi gösterir\n"
-" -v --version readelf'in sürüm no'sunu gösterir\n"
-
-#: readelf.c:2651 readelf.c:12118
-msgid "Out of memory allocating dump request table."
-msgstr "Döküm istek tablosu ayrılırken bellek tükendi."
-
-#: readelf.c:2820 readelf.c:2888
-#, c-format
-msgid "Unrecognized debug option '%s'\n"
-msgstr "Tanınmayan hata ayıklama seçeneği '%s'\n"
-
-#: readelf.c:2922
-#, c-format
-msgid "Invalid option '-%c'\n"
-msgstr "Geçersiz seçenek '-%c'\n"
-
-#: readelf.c:2936
-msgid "Nothing to do.\n"
-msgstr "Yapılacak bir şey yok.\n"
-
-#: readelf.c:2948 readelf.c:2964 readelf.c:5906
-msgid "none"
-msgstr "yok"
-
-#: readelf.c:2965
-msgid "2's complement, little endian"
-msgstr "2's complement, little endian"
-
-#: readelf.c:2966
-msgid "2's complement, big endian"
-msgstr "2's complement, big endian"
-
-#: readelf.c:2984
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr "ELF dosyası değil - başlangıçta yanlış sihirli baytlar var\n"
-
-#: readelf.c:2992
-#, c-format
-msgid "ELF Header:\n"
-msgstr "ELF Başlığı:\n"
-
-#: readelf.c:2993
-#, c-format
-msgid " Magic: "
-msgstr " Sihir: "
-
-#: readelf.c:2997
-#, c-format
-msgid " Class: %s\n"
-msgstr " Sınıf: %s\n"
-
-#: readelf.c:2999
-#, c-format
-msgid " Data: %s\n"
-msgstr " Veri: %s\n"
-
-#: readelf.c:3001
-#, c-format
-msgid " Version: %d %s\n"
-msgstr " Sürüm: %d %s\n"
-
-#: readelf.c:3008
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr " OS/ABI: %s\n"
-
-#: readelf.c:3010
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr " ABI Sürümü: %d\n"
-
-#: readelf.c:3012
-#, c-format
-msgid " Type: %s\n"
-msgstr " Tip: %s\n"
-
-#: readelf.c:3014
-#, c-format
-msgid " Machine: %s\n"
-msgstr " Makine: %s\n"
-
-#: readelf.c:3016
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr " Sürüm: 0x%lx\n"
-
-#: readelf.c:3019
-#, c-format
-msgid " Entry point address: "
-msgstr " Girdi noktası adresi: "
-
-#: readelf.c:3021
-#, c-format
-msgid ""
-"\n"
-" Start of program headers: "
-msgstr ""
-"\n"
-" Yazılım başlıkları başlangıcı: "
-
-#: readelf.c:3023
-#, c-format
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr ""
-" (bayt dosya içinde)\n"
-" Bölüm başlıkları başlangıcı: "
-
-#: readelf.c:3025
-#, c-format
-msgid " (bytes into file)\n"
-msgstr " (bayt dosya içinde)\n"
-
-#: readelf.c:3027
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr " Seçenekler: 0x%lx%s\n"
-
-#: readelf.c:3030
-#, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr " Bu başlığın boyu: %ld (bayt)\n"
-
-#: readelf.c:3032
-#, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr " Yazılım başlık boyu: %ld (bayt)\n"
-
-#: readelf.c:3034
-#, c-format
-msgid " Number of program headers: %ld\n"
-msgstr " Yazılım başlık sayısı: %ld\n"
-
-#: readelf.c:3036
-#, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr " Bölüm başlık boyu: %ld (bayt)\n"
-
-#: readelf.c:3038
-#, c-format
-msgid " Number of section headers: %ld"
-msgstr " Bölüm başlıkları sayısı: %ld"
-
-#: readelf.c:3043
-#, c-format
-msgid " Section header string table index: %ld"
-msgstr " Bölüm başlığı dizge tablo endeksi: %ld"
-
-#: readelf.c:3074 readelf.c:3107
-msgid "program headers"
-msgstr "Yazılım Başlıkları"
-
-#: readelf.c:3145 readelf.c:3446 readelf.c:3487 readelf.c:3546 readelf.c:3609
-#: readelf.c:3993 readelf.c:4017 readelf.c:5247 readelf.c:5291 readelf.c:5489
-#: readelf.c:6450 readelf.c:6464 readelf.c:11493 readelf.c:11912
-#: readelf.c:11979
-msgid "Out of memory\n"
-msgstr "Bellek tükendi\n"
-
-#: readelf.c:3172
-#, c-format
-msgid ""
-"\n"
-"There are no program headers in this file.\n"
-msgstr ""
-"\n"
-"Bu dosyada yazılım başlığı yok.\n"
-
-#: readelf.c:3178
-#, c-format
-msgid ""
-"\n"
-"Elf file type is %s\n"
-msgstr ""
-"\n"
-"Elf dosya tipi: %s\n"
-
-#: readelf.c:3179
-#, c-format
-msgid "Entry point "
-msgstr "Giriş noktası "
-
-#: readelf.c:3181
-#, c-format
-msgid ""
-"\n"
-"There are %d program headers, starting at offset "
-msgstr ""
-"\n"
-"%d adet yazılım başlığı var, göreli konumdan başlanıyor"
-
-#: readelf.c:3193 readelf.c:3195
-#, c-format
-msgid ""
-"\n"
-"Program Headers:\n"
-msgstr ""
-"\n"
-"Yazılım Başlıkları:\n"
-
-#: readelf.c:3199
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Tip Basamak SanalAdr GerçAdrs DosyaBoyBelBoy Seç Hiza\n"
-
-#: readelf.c:3202
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Tür Görece SanalAdr GerçAdrs DosyaBoy BelBoy Seç Hiza\n"
-
-#: readelf.c:3206
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr " Tip Basamak SanalAdres GerçekAdres\n"
-
-#: readelf.c:3208
-#, c-format
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr " DosyaBoyu BellekBoyu Seç Hiza\n"
-
-#: readelf.c:3301
-msgid "more than one dynamic segment\n"
-msgstr "bir dinamik parçadan fazla\n"
-
-#: readelf.c:3312
-msgid "no .dynamic section in the dynamic segment"
-msgstr "dinamik bölüm içinde dinamik alt bölüm yok"
-
-#: readelf.c:3321
-msgid "the .dynamic section is not contained within the dynamic segment"
-msgstr "dinamik alt bölüm, dinamik bölüm içinde değil"
-
-#: readelf.c:3323
-msgid "the .dynamic section is not the first section in the dynamic segment."
-msgstr "dinamik alt bölüm, dinamik bölüm içindeki ilk alt bölüm değil."
-
-#: readelf.c:3337
-msgid "Unable to find program interpreter name\n"
-msgstr "Yazılım yorumlayıcısı adı bulunamadı\n"
-
-#: readelf.c:3344
-#, c-format
-msgid ""
-"\n"
-" [Requesting program interpreter: %s]"
-msgstr ""
-"\n"
-" [Yazılım yorumlayıcısı isteniyor: %s]"
-
-#: readelf.c:3356
-#, c-format
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-msgstr ""
-"\n"
-" Bölümden parçaya eşleşme:\n"
-
-#: readelf.c:3357
-#, c-format
-msgid " Segment Sections...\n"
-msgstr " Parça Bölümleri...\n"
-
-#: readelf.c:3408
-msgid "Cannot interpret virtual addresses without program headers.\n"
-msgstr "Yazılım başlıkları olmadan sanal adresler yorumlanamaz. \n"
-
-#: readelf.c:3424
-#, c-format
-msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
-msgstr "0x%lx sanal adresi hiç bir PT_LOAD bölümünde bulunamadı.\n"
-
-#: readelf.c:3438 readelf.c:3479
-msgid "section headers"
-msgstr "Bölüm Başlıkları"
-
-#: readelf.c:3523 readelf.c:3586
-msgid "symbols"
-msgstr "semboller"
-
-#: readelf.c:3533 readelf.c:3596
-msgid "symtab shndx"
-msgstr "symtab shndx"
-
-#: readelf.c:3697 readelf.c:3977
-#, c-format
-msgid ""
-"\n"
-"There are no sections in this file.\n"
-msgstr ""
-"\n"
-"Bu dosyada bölüm yok.\n"
-
-#: readelf.c:3703
-#, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr "%d adet bölüm başlığı mevcut, göreli konum 0x%lx'dan başlanıyor:\n"
-
-#: readelf.c:3720 readelf.c:4079 readelf.c:4290 readelf.c:4591 readelf.c:5011
-#: readelf.c:6618
-msgid "string table"
-msgstr "dizge tablosu"
-
-#: readelf.c:3765
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr "Dosyada birden fazla dinamik sembol tablosu var\n"
-
-#: readelf.c:3777
-msgid "File contains multiple dynamic string tables\n"
-msgstr "Dosyada birden fazla dinamik dizge tablosu var\n"
-
-#: readelf.c:3782
-msgid "dynamic strings"
-msgstr "dinamik dizgeler"
-
-#: readelf.c:3789
-msgid "File contains multiple symtab shndx tables\n"
-msgstr "Dosyada birden fazla symtab shndx tablosu var\n"
-
-#: readelf.c:3828
-#, c-format
-msgid ""
-"\n"
-"Section Headers:\n"
-msgstr ""
-"\n"
-"Bölüm Başlıkları:\n"
-
-#: readelf.c:3830
-#, c-format
-msgid ""
-"\n"
-"Section Header:\n"
-msgstr ""
-"\n"
-"Bölüm Başlığı:\n"
-
-#: readelf.c:3834
-#, c-format
-msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] İsim Tip Adres Bas Boy ES Seç Lk Inf Al\n"
-
-#: readelf.c:3837
-#, c-format
-msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] İsim Tür Adres Görece Boy ES Seç Lk Inf Al\n"
-
-#: readelf.c:3840
-#, c-format
-msgid " [Nr] Name Type Address Offset\n"
-msgstr " [Nr] Ä°sim Tip Adres Basamak\n"
-
-#: readelf.c:3841
-#, c-format
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr " Boy EntBoy Seç Bağ Bilgi Hiza\n"
-
-#: readelf.c:3936
-#, c-format
-msgid ""
-"Key to Flags:\n"
-" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-" I (info), L (link order), G (group), x (unknown)\n"
-" O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr ""
-"Seçenekler:\n"
-" W (yazdırır), A (ayırır), X (uygular), M (birleştirir), S (dizgeler)\n"
-" I (bilgi), L (bağ sırası), G (grup), x (bilinmeyen)\n"
-" O (daha fazla OS işlemesi gerekli) o (OS'e özgü), p (işlemciye özgü)\n"
-
-#: readelf.c:3954
-#, c-format
-msgid "[<unknown>: 0x%x]"
-msgstr "<bilinmeyen>: 0x%x"
-
-#: readelf.c:3984
-msgid "Section headers are not available!\n"
-msgstr "Alt bölüm başlıkları yok!\n"
-
-#: readelf.c:4008
-#, c-format
-msgid ""
-"\n"
-"There are no section groups in this file.\n"
-msgstr ""
-"\n"
-"Bu dosyada alt bölüm grupları yok.\n"
-
-#: readelf.c:4042
-#, c-format
-msgid "Bad sh_link in group section `%s'\n"
-msgstr "Grup alt bölümü `%s' içinde hatalı sh_link\n"
-
-#: readelf.c:4061
-#, c-format
-msgid "Bad sh_info in group section `%s'\n"
-msgstr "Grup alt bölümü `%s' içinde hatalı sh_info\n"
-
-#: readelf.c:4085 readelf.c:6947
-msgid "section data"
-msgstr "bölüm verisi"
-
-#: readelf.c:4097
-#, c-format
-msgid " [Index] Name\n"
-msgstr " [Ä°ndeks] Ä°sim\n"
-
-#: readelf.c:4114
-#, c-format
-msgid "section [%5u] already in group section [%5u]\n"
-msgstr "alt bölüm [%5u] zaten alt bölüm grubu [%5u] içinde\n"
-
-#: readelf.c:4127
-#, c-format
-msgid "section 0 in group section [%5u]\n"
-msgstr "alt bölüm 0 alt bölüm grubu [%5u] içinde\n"
-
-#: readelf.c:4224
-#, c-format
-msgid ""
-"\n"
-"'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr ""
-"\n"
-"Göreli konum 0x%2$lx'da bulunan `%1$s' yer değiştirme bölümü %3$ld bayt içeriyor:\n"
-
-#: readelf.c:4236
-#, c-format
-msgid ""
-"\n"
-"There are no dynamic relocations in this file.\n"
-msgstr ""
-"\n"
-"Bu dosyada dinamik yer deÄŸiÅŸtirmeler yok.\n"
-
-#: readelf.c:4260
-#, c-format
-msgid ""
-"\n"
-"Relocation section "
-msgstr ""
-"\n"
-"Yer değiştirme bölümü "
-
-#: readelf.c:4265 readelf.c:4666 readelf.c:4680 readelf.c:5025
-#, c-format
-msgid "'%s'"
-msgstr "'%s'"
-
-#: readelf.c:4267 readelf.c:4682 readelf.c:5027
-#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr "göreli konum 0x%lx %lu girdi içeriyor:\n"
-
-#: readelf.c:4308
-#, c-format
-msgid ""
-"\n"
-"There are no relocations in this file.\n"
-msgstr ""
-"\n"
-"Bu dosyada yer deÄŸiÅŸtirmeler yok.\n"
-
-#: readelf.c:4482 readelf.c:4862
-msgid "unwind table"
-msgstr "geri alma tablosu"
-
-#: readelf.c:4540 readelf.c:4959
-#, c-format
-msgid "Skipping unexpected relocation type %s\n"
-msgstr "beklenmeyen yerdeğişim türü %s atlanıyor\n"
-
-#: readelf.c:4598 readelf.c:5018 readelf.c:5069
-#, c-format
-msgid ""
-"\n"
-"There are no unwind sections in this file.\n"
-msgstr ""
-"\n"
-"Bu dosyada geri alma bölümü yok.\n"
-
-#: readelf.c:4661
-#, c-format
-msgid ""
-"\n"
-"Could not find unwind info section for "
-msgstr ""
-"\n"
-"Geri alma bilgi bölümü bulunamadı "
-
-#: readelf.c:4673
-msgid "unwind info"
-msgstr "geri alma bilgisi"
-
-#: readelf.c:4675 readelf.c:5024
-#, c-format
-msgid ""
-"\n"
-"Unwind section "
-msgstr ""
-"\n"
-"Geri alma bölümü "
-
-#: readelf.c:5228 readelf.c:5272
-msgid "dynamic section"
-msgstr "dinamik alt bölüm"
-
-#: readelf.c:5349
-#, c-format
-msgid ""
-"\n"
-"There is no dynamic section in this file.\n"
-msgstr ""
-"\n"
-"Bu dosyada dinamik alt bölüm yok.\n"
-
-#: readelf.c:5387
-msgid "Unable to seek to end of file!"
-msgstr "Dosya sonuna kadar aranamıyor!"
-
-#: readelf.c:5400
-msgid "Unable to determine the number of symbols to load\n"
-msgstr "Yüklenecek sembol sayısı belirlenemedi\n"
-
-#: readelf.c:5435
-msgid "Unable to seek to end of file\n"
-msgstr "Dosyanın sonuna kadar aranamadı\n"
-
-#: readelf.c:5442
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr "Dinamik dizge tablosunun uzunluÄŸu belirlenemedi\n"
-
-#: readelf.c:5447
-msgid "dynamic string table"
-msgstr "dinamik dizge tablosu"
-
-#: readelf.c:5482
-msgid "symbol information"
-msgstr "sembol bilgisi"
-
-#: readelf.c:5507
-#, c-format
-msgid ""
-"\n"
-"Dynamic section at offset 0x%lx contains %u entries:\n"
-msgstr ""
-"\n"
-"Göreli konum 0x%lx'deki dinamik alt bölüm %u girdi içeriyor:\n"
-
-#: readelf.c:5510
-#, c-format
-msgid " Tag Type Name/Value\n"
-msgstr " Etiket Tip Ä°sim/DeÄŸer\n"
-
-#: readelf.c:5546
-#, c-format
-msgid "Auxiliary library"
-msgstr "Yardımcı kitaplık"
-
-#: readelf.c:5550
-#, c-format
-msgid "Filter library"
-msgstr "Filtre kitaplığı"
-
-#: readelf.c:5554
-#, c-format
-msgid "Configuration file"
-msgstr "Ayar dosyası"
-
-#: readelf.c:5558
-#, c-format
-msgid "Dependency audit library"
-msgstr "Bağımlılık denetim kitaplığı"
-
-#: readelf.c:5562
-#, c-format
-msgid "Audit library"
-msgstr "Denetim kitaplığı"
-
-#: readelf.c:5580 readelf.c:5608 readelf.c:5636
-#, c-format
-msgid "Flags:"
-msgstr "Seçenekler:"
-
-#: readelf.c:5583 readelf.c:5611 readelf.c:5638
-#, c-format
-msgid " None\n"
-msgstr " Hiçbiri\n"
-
-#: readelf.c:5759
-#, c-format
-msgid "Shared library: [%s]"
-msgstr "Paylaşımlı kitaplık: [%s]"
-
-#: readelf.c:5762
-#, c-format
-msgid " program interpreter"
-msgstr " yazılım yorumlayıcısı"
-
-#: readelf.c:5766
-#, c-format
-msgid "Library soname: [%s]"
-msgstr "Kitaplık so_adı: [%s]"
-
-#: readelf.c:5770
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr "Kitaplık r_yolu: [%s]"
-
-#: readelf.c:5774
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr "Kitaplık çalışım yolu: [%s]"
-
-#: readelf.c:5837
-#, c-format
-msgid "Not needed object: [%s]\n"
-msgstr "Gereksiz nesne: [%s]\n"
-
-#: readelf.c:5951
-#, c-format
-msgid ""
-"\n"
-"Version definition section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Sürüm tanımı bölümü '%s' %ld girdi içeriyor:\n"
-
-#: readelf.c:5954
-#, c-format
-msgid " Addr: 0x"
-msgstr " Adres: 0x"
-
-#: readelf.c:5956 readelf.c:6148
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr " Basamak: %#08lx BaÄŸ: %lx (%s)\n"
-
-#: readelf.c:5961
-msgid "version definition section"
-msgstr "sürüm tanımı bölümü"
-
-#: readelf.c:5987
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr " %#06x: Sür: %d Seçenek: %s"
-
-#: readelf.c:5990
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr " Endeks: %d Sayı: %d "
-
-#: readelf.c:6001
-#, c-format
-msgid "Name: %s\n"
-msgstr "Ä°sim: %s\n"
-
-#: readelf.c:6003
-#, c-format
-msgid "Name index: %ld\n"
-msgstr "Ä°sim Endeksi: %ld\n"
-
-#: readelf.c:6018
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr " %#06x: Ãœst %d: %s\n"
-
-#: readelf.c:6021
-#, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr " %#06x: Ãœst %d, isim endeksi: %ld\n"
-
-#: readelf.c:6040
-#, c-format
-msgid ""
-"\n"
-"Version needs section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Sürüm gereksinimleri bölümü '%s' %ld girdi içeriyor:\n"
-
-#: readelf.c:6043
-#, c-format
-msgid " Addr: 0x"
-msgstr " Adres: 0x"
-
-#: readelf.c:6045
-#, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr " Basamak: %#08lx Bölüme bağ: %ld (%s)\n"
-
-#: readelf.c:6050
-msgid "version need section"
-msgstr "Sürüm Gereksinim Bölüm"
-
-#: readelf.c:6072
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr " %#06x: Sürüm: %d"
-
-#: readelf.c:6075
-#, c-format
-msgid " File: %s"
-msgstr " Dosya: %s"
-
-#: readelf.c:6077
-#, c-format
-msgid " File: %lx"
-msgstr " Dosya: %lx"
-
-#: readelf.c:6079
-#, c-format
-msgid " Cnt: %d\n"
-msgstr " Sayı: %d\n"
-
-#: readelf.c:6097
-#, c-format
-msgid " %#06x: Name: %s"
-msgstr " %#06x: Ä°sim: %s"
-
-#: readelf.c:6100
-#, c-format
-msgid " %#06x: Name index: %lx"
-msgstr " %#06x: Ä°sim endeksi: %lx"
-
-#: readelf.c:6103
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr " Seçenekler: %s Sürüm: %d\n"
-
-#: readelf.c:6139
-msgid "version string table"
-msgstr "Sürüm Dizge Tablo"
-
-#: readelf.c:6143
-#, c-format
-msgid ""
-"\n"
-"Version symbols section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"Sürüm sembolleri bölümü '%s' %d girdi içeriyor:\n"
-
-#: readelf.c:6146
-#, c-format
-msgid " Addr: "
-msgstr " Adres: "
-
-#: readelf.c:6156
-msgid "version symbol data"
-msgstr "Sürüm Sembol Veri"
-
-#: readelf.c:6183
-msgid " 0 (*local*) "
-msgstr " 0 (*yerel*) "
-
-#: readelf.c:6187
-msgid " 1 (*global*) "
-msgstr " 1 (*evrensel*) "
-
-#: readelf.c:6223 readelf.c:6677
-msgid "version need"
-msgstr "Sürüm Gereksinim"
-
-#: readelf.c:6233
-msgid "version need aux (2)"
-msgstr "Sürüm Gereksinim Yardımcı (2)"
-
-#: readelf.c:6275 readelf.c:6740
-msgid "version def"
-msgstr "sürüm tanımı"
-
-#: readelf.c:6294 readelf.c:6755
-msgid "version def aux"
-msgstr "Sürüm yardımcı tanımı"
-
-#: readelf.c:6325
-#, c-format
-msgid ""
-"\n"
-"No version information found in this file.\n"
-msgstr ""
-"\n"
-"Bu dosyada sürüm bilgisi yok.\n"
-
-#: readelf.c:6456
-msgid "Unable to read in dynamic data\n"
-msgstr "Dinamik veri okunamadı\n"
-
-#: readelf.c:6509
-msgid "Unable to seek to start of dynamic information"
-msgstr "Dinamik bilginin başlangıcına kadar aranamadı"
-
-#: readelf.c:6515
-msgid "Failed to read in number of buckets\n"
-msgstr "Küme sayısı okunamadı\n"
-
-#: readelf.c:6521
-msgid "Failed to read in number of chains\n"
-msgstr "Zincir sayısı okunamadı\n"
-
-#: readelf.c:6541
-#, c-format
-msgid ""
-"\n"
-"Symbol table for image:\n"
-msgstr ""
-"\n"
-"İmaj için sembol tablosu:\n"
-
-#: readelf.c:6543
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Küme Num: Değer Boy Tip Bağ Gör Ndx İsim\n"
-
-#: readelf.c:6545
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Küme Num: Değer Boy Tip Bağ Gör Ndx İsim\n"
-
-#: readelf.c:6597
-#, c-format
-msgid ""
-"\n"
-"Symbol table '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"'%s' sembol tablosu %lu girdi içeriyor:\n"
-
-#: readelf.c:6601
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Num: Değer Boy Tip Bağ Gör Ndx İsim\n"
-
-#: readelf.c:6603
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Num: Değer Boy Tip Bağ Gör Ndx İsim\n"
-
-#: readelf.c:6649
-msgid "version data"
-msgstr "sürüm verisi"
-
-#: readelf.c:6690
-msgid "version need aux (3)"
-msgstr "Sürüm Gereksinim Yardımcı (3)"
-
-#: readelf.c:6715
-msgid "bad dynamic symbol"
-msgstr "hatalı dinamik sembol"
-
-#: readelf.c:6778
-#, c-format
-msgid ""
-"\n"
-"Dynamic symbol information is not available for displaying symbols.\n"
-msgstr ""
-"\n"
-"Dinamik sembolleri göstermek için dinamik sembol bilgisi mevcut değil.\n"
-
-#: readelf.c:6790
-#, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length (total of %lu buckets):\n"
-msgstr ""
-"\n"
-"Küme liste boyu (toplam %lu küme) geçmiş grafiği:\n"
-
-#: readelf.c:6792
-#, c-format
-msgid " Length Number %% of total Coverage\n"
-msgstr ""
-" Length Number %% of total Coverage\n"
-" Boy Numara toplam kapsamın %%\n"
-
-#: readelf.c:6797 readelf.c:6813 readelf.c:10967 readelf.c:11159
-msgid "Out of memory"
-msgstr "Bellek yetersiz"
-
-#: readelf.c:6862
-#, c-format
-msgid ""
-"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr ""
-"\n"
-"Göreli konum 0x%lx'de yer alan dinamik bilgi parçası %d girdi içeriyor:\n"
-
-#: readelf.c:6865
-#, c-format
-msgid " Num: Name BoundTo Flags\n"
-msgstr " Num: İsim Bağlı Seçenekler\n"
-
-#: readelf.c:6917
-#, c-format
-msgid ""
-"\n"
-"Assembly dump of section %s\n"
-msgstr ""
-"\n"
-"%s bölümünün üretici dökümü\n"
-
-#: readelf.c:6938
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no data to dump.\n"
-msgstr ""
-"\n"
-"'%s' bölümünde dökülecek veri yok.\n"
-
-#: readelf.c:6943
-#, c-format
-msgid ""
-"\n"
-"Hex dump of section '%s':\n"
-msgstr ""
-"\n"
-"'%s' bölümünün onaltılık dökümü:\n"
-
-#: readelf.c:7090
-msgid "badly formed extended line op encountered!\n"
-msgstr "hatalı oluşturulmuş uzun satır işlevi bulundu!\n"
-
-#: readelf.c:7097
-#, c-format
-msgid " Extended opcode %d: "
-msgstr " Ek opkod %d: "
-
-#: readelf.c:7102
-#, c-format
-msgid ""
-"End of Sequence\n"
-"\n"
-msgstr ""
-"Dizi Sonu\n"
-"\n"
-
-#: readelf.c:7108
-#, c-format
-msgid "set Address to 0x%lx\n"
-msgstr "Adresi 0x%lx olarak atar\n"
-
-#: readelf.c:7113
-#, c-format
-msgid " define new File Table entry\n"
-msgstr " yeni Dosya Tablosu girdisi tanımlar\n"
-
-#: readelf.c:7114 readelf.c:9032
-#, c-format
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr " Girdi\tDizin\tZaman\tBoy\tÄ°sim\n"
-
-#: readelf.c:7116
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: readelf.c:7119 readelf.c:7121 readelf.c:7123 readelf.c:9044 readelf.c:9046
-#: readelf.c:9048
-#, c-format
-msgid "%lu\t"
-msgstr "%lu\t"
-
-#: readelf.c:7124
-#, c-format
-msgid ""
-"%s\n"
-"\n"
-msgstr ""
-"%s\n"
-"\n"
-
-#: readelf.c:7128
-#, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr "TANIMSIZ: uzunluk %d\n"
-
-#: readelf.c:7155
-msgid "debug_str section data"
-msgstr "debug_str bölüm verisi"
-
-#: readelf.c:7173
-msgid "<no .debug_str section>"
-msgstr "<.debug_str bölümü yok>"
-
-#: readelf.c:7176
-msgid "<offset is too big>"
-msgstr "<görece fazla büyük>"
-
-#: readelf.c:7201
-msgid "debug_loc section data"
-msgstr "hata ayıklama bölüm verisi"
-
-#: readelf.c:7235
-msgid "debug_range section data"
-msgstr "debug_range alt bölüm verisi"
-
-#: readelf.c:7307
-#, c-format
-msgid "%s: skipping unexpected symbol type %s in relocation in section .rela%s\n"
-msgstr "%s: beklenmeyen sembol türü %s, yerdeğişim esnasında atlanıyor .rela%s\n"
-
-#: readelf.c:7321
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela.%s\n"
-msgstr "beklenmeyen sembol türü %s, yerdeğişim esnasında atlanıyor .rela.%s\n"
-
-#: readelf.c:7565
-#, c-format
-msgid "Unknown TAG value: %lx"
-msgstr "Bilinmeyen TAG deÄŸeri: %lx"
-
-#: readelf.c:7601
-#, c-format
-msgid "Unknown FORM value: %lx"
-msgstr "Bilinmeyen FORM deÄŸeri: %lx"
-
-#: readelf.c:7610
-#, c-format
-msgid " %lu byte block: "
-msgstr " %lu baytlık blok: "
-
-#: readelf.c:7944
-#, c-format
-msgid "(User defined location op)"
-msgstr "(Kullanıcı tanımlı yer yönergesi)"
-
-#: readelf.c:7946
-#, c-format
-msgid "(Unknown location op)"
-msgstr "(Bilinmeyen yer yönergesi)"
-
-#: readelf.c:8015
-msgid "Internal error: DWARF version is not 2 or 3.\n"
-msgstr "İç hata: DWARF sürümü 2 veya 3 değil.\n"
-
-#: readelf.c:8113
-msgid "DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n"
-msgstr "DW_FORM_data8, sizeof (unsigned long) != 8 durumunda desteklenmez\n"
-
-#: readelf.c:8162
-#, c-format
-msgid " (indirect string, offset: 0x%lx): %s"
-msgstr " (dolaylı dizge, görece: 0x%lx): %s"
-
-#: readelf.c:8171
-#, c-format
-msgid "Unrecognized form: %d\n"
-msgstr "Bilinmeyen form: %d\n"
-
-#: readelf.c:8256
-#, c-format
-msgid "(not inlined)"
-msgstr "(inline'lanamadı)"
-
-#: readelf.c:8259
-#, c-format
-msgid "(inlined)"
-msgstr "(inline'landı)"
-
-#: readelf.c:8262
-#, c-format
-msgid "(declared as inline but ignored)"
-msgstr "(inline olarak tanımlandı ama yoksayıldı)"
-
-#: readelf.c:8265
-#, c-format
-msgid "(declared as inline and inlined)"
-msgstr "(inline olarak tanımlandı ve inline'landı)"
-
-#: readelf.c:8268
-#, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr " (Bilinmeyen inline öznitelik değeri: %lx)"
-
-#: readelf.c:8413 readelf.c:9537
-#, c-format
-msgid " [without DW_AT_frame_base]"
-msgstr " [DW_AT_frame_base yok]"
-
-#: readelf.c:8416
-#, c-format
-msgid "(location list)"
-msgstr "(yer listesi)"
-
-#: readelf.c:8534
-#, c-format
-msgid "Unknown AT value: %lx"
-msgstr "Bilinmeyen AT deÄŸeri: %lx"
-
-#: readelf.c:8602
-msgid "No comp units in .debug_info section ?"
-msgstr ".debug_info alt bölümünde comp birimi yok mu?"
-
-#: readelf.c:8611
-#, c-format
-msgid "Not enough memory for a debug info array of %u entries"
-msgstr "%u girdilik bir hata ayıklama bilgi dizgisi için yeterli bellek yok"
-
-#: readelf.c:8619 readelf.c:9630
-#, c-format
-msgid ""
-"The section %s contains:\n"
-"\n"
-msgstr ""
-"%s bölümü içeriyor:\n"
-"\n"
-
-#: readelf.c:8693
-#, c-format
-msgid " Compilation Unit @ %lx:\n"
-msgstr " Derleme Birimi @ %lx:\n"
-
-#: readelf.c:8694
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Uzunluk: %ld\n"
-
-#: readelf.c:8695
-#, c-format
-msgid " Version: %d\n"
-msgstr " Sürüm: %d\n"
-
-#: readelf.c:8696
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr " Kısaltma Basamağı: %ld\n"
-
-#: readelf.c:8697
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " Ä°mleyici Boyu: %d\n"
-
-#: readelf.c:8702
-msgid "Only version 2 and 3 DWARF debug information is currently supported.\n"
-msgstr "Şimdilik yalnızca DWARF Sürüm 2 ve 3 hata ayıklama bilgisi destekleniyor.\n"
-
-#: readelf.c:8717
-msgid "Unable to locate .debug_abbrev section!\n"
-msgstr ".debug_abbrev bölümü bulunamadı!\n"
-
-#: readelf.c:8722
-msgid "debug_abbrev section data"
-msgstr "debug_abbrev bölüm verisi"
-
-#: readelf.c:8759
-#, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr "Kısaltma tablosunda %lu girdisi bulunamadı\n"
-
-#: readelf.c:8765
-#, c-format
-msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
-msgstr " <%d><%lx>: Kısaltma Numarası: %lu (%s)\n"
-
-#: readelf.c:8838
-#, c-format
-msgid "%s section needs a populated .debug_info section\n"
-msgstr "%s alt bölümü içi doldurulmuş .debug_info alt bölümünü gerektirir\n"
-
-#: readelf.c:8845
-#, c-format
-msgid "%s section has more comp units than .debug_info section\n"
-msgstr "%s alt bölümü,.debug_info alt bölümünden daha fazla comp birimi içeriyor\n"
-
-#: readelf.c:8847
-#, c-format
-msgid ""
-"assuming that the pointer size is %d, from the last comp unit in .debug_info\n"
-"\n"
-msgstr ""
-".debug_info içindeki son comp biriminden, imleyici boyunun %d olduğu çıkarıldı\n"
-"\n"
-
-#: readelf.c:8891
-msgid "extracting information from .debug_info section"
-msgstr ".debug_info alt bölümünden bilgi alınıyor"
-
-#: readelf.c:8909
-#, c-format
-msgid ""
-"\n"
-"Dump of debug contents of section %s:\n"
-"\n"
-msgstr ""
-"\n"
-"%s bölümünün hata ayıklama içeriği dökümü:\n"
-"\n"
-
-#: readelf.c:8948
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr "Satır bilgisi bozuk - bölüm çok küçük\n"
-
-#: readelf.c:8957
-msgid "Only DWARF version 2 and 3 line info is currently supported.\n"
-msgstr "Şimdilik yalnızca DWARF sürüm 2 ve 3 satır bilgisi destekleniyor.\n"
-
-#: readelf.c:8984
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Uzunluk: %ld\n"
-
-#: readelf.c:8985
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr " DWARF Sürümü: %d\n"
-
-#: readelf.c:8986
-#, c-format
-msgid " Prologue Length: %d\n"
-msgstr " GiriÅŸ UzunluÄŸu: %d\n"
-
-#: readelf.c:8987
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr " Minimum Ä°ÅŸlem UzunluÄŸu: %d\n"
-
-#: readelf.c:8988
-#, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr " 'is_stmt' başlangıç değeri: %d\n"
-
-#: readelf.c:8989
-#, c-format
-msgid " Line Base: %d\n"
-msgstr " Satır Temeli: %d\n"
-
-#: readelf.c:8990
-#, c-format
-msgid " Line Range: %d\n"
-msgstr " Satır Aralığı: %d\n"
-
-#: readelf.c:8991
-#, c-format
-msgid " Opcode Base: %d\n"
-msgstr " Opkod Temeli: %d\n"
-
-#: readelf.c:8992
-#, c-format
-msgid " (Pointer size: %u)\n"
-msgstr " (Ä°mleyici boyu: %u)\n"
-
-#: readelf.c:9001
-#, c-format
-msgid ""
-"\n"
-" Opcodes:\n"
-msgstr ""
-"\n"
-" Opkodlar:\n"
-
-#: readelf.c:9004
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr " %d opkodunun %d seçeneği var\n"
-
-#: readelf.c:9010
-#, c-format
-msgid ""
-"\n"
-" The Directory Table is empty.\n"
-msgstr ""
-"\n"
-" Dizin Tablosu boÅŸ.\n"
-
-#: readelf.c:9013
-#, c-format
-msgid ""
-"\n"
-" The Directory Table:\n"
-msgstr ""
-"\n"
-" Dizin Tablosu:\n"
-
-#: readelf.c:9017
-#, c-format
-msgid " %s\n"
-msgstr " %s\n"
-
-#: readelf.c:9028
-#, c-format
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr ""
-"\n"
-" Dosya Adı Tablosu boş.\n"
-
-#: readelf.c:9031
-#, c-format
-msgid ""
-"\n"
-" The File Name Table:\n"
-msgstr ""
-"\n"
-" Dosya Adı Tablosu:\n"
-
-#: readelf.c:9039
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: readelf.c:9050
-#, c-format
-msgid "%s\n"
-msgstr "%s\n"
-
-#. Now display the statements.
-#: readelf.c:9058
-#, c-format
-msgid ""
-"\n"
-" Line Number Statements:\n"
-msgstr ""
-"\n"
-" Satır Numarası Deyimleri:\n"
-
-#: readelf.c:9073
-#, c-format
-msgid " Special opcode %d: advance Address by %d to 0x%lx"
-msgstr " Özel opkod %1$d: Adresi 0x%3$lx'e kadar %2$d ilerletir"
-
-#: readelf.c:9077
-#, c-format
-msgid " and Line by %d to %d\n"
-msgstr " ve Satır'ı %2$d'ye kadar %1$d\n"
-
-#: readelf.c:9088
-#, c-format
-msgid " Copy\n"
-msgstr " Kopyalar\n"
-
-#: readelf.c:9095
-#, c-format
-msgid " Advance PC by %d to %lx\n"
-msgstr " PC'yi %2$lx'ye kadar, %1$d ilerletir\n"
-
-#: readelf.c:9103
-#, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr " Satırı %2$d'ye kadar %1$d ilerletir\n"
-
-#: readelf.c:9110
-#, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr " Dosya Adını, Dosya İsim Tablosunda, %d numaralı girdi olarak atar\n"
-
-#: readelf.c:9118
-#, c-format
-msgid " Set column to %d\n"
-msgstr " Sütunu %d olarak atar\n"
-
-#: readelf.c:9125
-#, c-format
-msgid " Set is_stmt to %d\n"
-msgstr " is_stmt'i %d olarak atar\n"
-
-#: readelf.c:9130
-#, c-format
-msgid " Set basic block\n"
-msgstr " Temel bloÄŸu atar\n"
-
-#: readelf.c:9138
-#, c-format
-msgid " Advance PC by constant %d to 0x%lx\n"
-msgstr " PC'yi 0x%2$lx'e kadar %1$d ilerletir\n"
-
-#: readelf.c:9146
-#, c-format
-msgid " Advance PC by fixed size amount %d to 0x%lx\n"
-msgstr " PC'yi 0x%2$lx'e kadar %1$d ilerletir\n"
-
-#: readelf.c:9151
-#, c-format
-msgid " Set prologue_end to true\n"
-msgstr " Prologue_end'i doÄŸru (true) olarak atar\n"
-
-#: readelf.c:9155
-#, c-format
-msgid " Set epilogue_begin to true\n"
-msgstr " Epilogue_begin'i doÄŸru (true) olarak atar\n"
-
-#: readelf.c:9161
-#, c-format
-msgid " Set ISA to %d\n"
-msgstr " ISA'yı %d olarak atar\n"
-
-#: readelf.c:9165
-#, c-format
-msgid " Unknown opcode %d with operands: "
-msgstr " Bilinmeyen %d opkodu ve iÅŸlenenleri: "
-
-#: readelf.c:9193 readelf.c:9279 readelf.c:9354
-#, c-format
-msgid ""
-"Contents of the %s section:\n"
-"\n"
-msgstr ""
-"%s bölümünün içeriği:\n"
-"\n"
-
-#: readelf.c:9233
-msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
-msgstr "Şimdilik yalnız DWARF 2 ve 3 genel isimleri destekleniyor\n"
-
-#: readelf.c:9240
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Uzunluk: %ld\n"
-
-#: readelf.c:9242
-#, c-format
-msgid " Version: %d\n"
-msgstr " Sürüm: %d\n"
-
-#: readelf.c:9244
-#, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr ".debug_info bölümünün içine göreli konum: %ld\n"
-
-#: readelf.c:9246
-#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr ".debug_info bölümünde alan büyüklüğü: %ld\n"
-
-#: readelf.c:9249
-#, c-format
-msgid ""
-"\n"
-" Offset\tName\n"
-msgstr ""
-"\n"
-" Basamak\tÄ°sim\n"
-
-#: readelf.c:9300
-#, c-format
-msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr " DW_MACINFO_start_file - satır no: %d dosya no: %d\n"
-
-#: readelf.c:9306
-#, c-format
-msgid " DW_MACINFO_end_file\n"
-msgstr " DW_MACINFO_end_file\n"
-
-#: readelf.c:9314
-#, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_define - satır no : %d makro : %s\n"
-
-#: readelf.c:9323
-#, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_undef - satır no : %d makro : %s\n"
-
-#: readelf.c:9335
-#, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr " DW_MACINFO_vendor_ext - sabit : %d dizge : %s\n"
-
-#: readelf.c:9363
-#, c-format
-msgid " Number TAG\n"
-msgstr " Sayı TAG\n"
-
-#: readelf.c:9369
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr " %ld %s [%s]\n"
-
-#: readelf.c:9372
-msgid "has children"
-msgstr "astları var"
-
-#: readelf.c:9372
-msgid "no children"
-msgstr "astları yok"
-
-#: readelf.c:9375
-#, c-format
-msgid " %-18s %s\n"
-msgstr " %-18s %s\n"
-
-#: readelf.c:9410
-#, c-format
-msgid ""
-"\n"
-"The .debug_loc section is empty.\n"
-msgstr ""
-"\n"
-".debug_loc bölümü boş.\n"
-
-#. FIXME: Should we handle this case?
-#: readelf.c:9455
-msgid "Location lists in .debug_info section aren't in ascending order!\n"
-msgstr ".debug_info alt bölümündeki yer listeleri artan sırada değil!\n"
-
-#: readelf.c:9458
-msgid "No location lists in .debug_info section!\n"
-msgstr ".debug_info alt bölümünde yer listesi yok!\n"
-
-#: readelf.c:9461
-#, c-format
-msgid "Location lists in .debug_loc section start at 0x%lx\n"
-msgstr ".debug_loc alt bölümünde yer listeleri başlangıç konumu 0x%lx\n"
-
-#: readelf.c:9464
-#, c-format
-msgid ""
-"Contents of the .debug_loc section:\n"
-"\n"
-msgstr ""
-".debug_loc bölümünün içeriği:\n"
-"\n"
-
-#: readelf.c:9465
-#, c-format
-msgid " Offset Begin End Expression\n"
-msgstr " Görece Başlan. Son İfade\n"
-
-#: readelf.c:9495
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr ".debug_loc alt bölümünde [0x%lx - 0x%lx] deliği mevcut.\n"
-
-#: readelf.c:9498
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr ".debug_loc alt bölümünde [0x%lx - 0x%lx] örtüşmesi var.\n"
-
-#: readelf.c:9512 readelf.c:9837
-#, c-format
-msgid " %8.8lx <End of list>\n"
-msgstr " %8.8lx <Liste sonu>\n"
-
-#: readelf.c:9540 readelf.c:9854
-msgid " (start == end)"
-msgstr " (başlangıç == son)"
-
-#: readelf.c:9542 readelf.c:9856
-msgid " (start > end)"
-msgstr " (başlangıç > son)"
-
-#: readelf.c:9566
-#, c-format
-msgid ""
-"\n"
-"The .debug_str section is empty.\n"
-msgstr ""
-"\n"
-".debug_str bölümü boş.\n"
-
-#: readelf.c:9570
-#, c-format
-msgid ""
-"Contents of the .debug_str section:\n"
-"\n"
-msgstr ""
-".debug_str bölümünün içeriği:\n"
-"\n"
-
-#: readelf.c:9675
-msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
-msgstr "Şimdilik yalnızca DWARF 2 ve 3 a-aralıkları destekleniyor.\n"
-
-#: readelf.c:9679
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Uzunluk: %ld\n"
-
-#: readelf.c:9680
-#, c-format
-msgid " Version: %d\n"
-msgstr " Sürüm: %d\n"
-
-#: readelf.c:9681
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr " .debug_info'nun içine göreli konum: %lx\n"
-
-#: readelf.c:9682
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " Ä°mleyici Boyu: %d\n"
-
-#: readelf.c:9683
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr " Parça Boyu: %d\n"
-
-#: readelf.c:9685
-#, c-format
-msgid ""
-"\n"
-" Address Length\n"
-msgstr ""
-"\n"
-" Adres Uzunluk\n"
-
-#: readelf.c:9741
-#, c-format
-msgid ""
-"\n"
-"The .debug_ranges section is empty.\n"
-msgstr ""
-"\n"
-".debug_ranges alt bölümü boş.\n"
-
-#. FIXME: Should we handle this case?
-#: readelf.c:9786
-msgid "Range lists in .debug_info section aren't in ascending order!\n"
-msgstr ".debug_info alt bölümündeki aralık listeleri artan sıralı değil!\n"
-
-#: readelf.c:9789
-msgid "No range lists in .debug_info section!\n"
-msgstr ".debug_info alt bölümünde aralık listesi yok!\n"
-
-#: readelf.c:9792
-#, c-format
-msgid "Range lists in .debug_ranges section start at 0x%lx\n"
-msgstr ".debug_ranges alt bölümünde aralık listeleri 0x%lx konumunda başlıyor\n"
-
-#: readelf.c:9795
-#, c-format
-msgid ""
-"Contents of the .debug_ranges section:\n"
-"\n"
-msgstr ""
-".debug_ranges alt bölümünün içeriği:\n"
-"\n"
-
-#: readelf.c:9796
-#, c-format
-msgid " Offset Begin End\n"
-msgstr " Görece Başlan. Son\n"
-
-#: readelf.c:9820
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_ranges section.\n"
-msgstr ".debug_ranges alt bölümünde [0x%lx - 0x%lx] deliği mevcut.\n"
-
-#: readelf.c:9823
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_ranges section.\n"
-msgstr ".debug_ranges alt bölümünde [0x%lx - 0x%lx] örtüşmesi var.\n"
-
-#: readelf.c:10017
-#, c-format
-msgid "The section %s contains:\n"
-msgstr "%s bölümü içeriyor:\n"
-
-#: readelf.c:10663
-#, c-format
-msgid "unsupported or unknown DW_CFA_%d\n"
-msgstr "desteklenmeyen veya bilinmeyen DW_CFA_%d\n"
-
-#: readelf.c:10688
-#, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr "%s bölümünün hata ayıklama içerik bilgilerini göstermek henüz desteklenmiyor.\n"
-
-#: readelf.c:10732
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no debugging data.\n"
-msgstr ""
-"\n"
-"'%s' bölümünde hata ayıklama bilgisi yok.\n"
-
-#: readelf.c:10746
-msgid "debug section data"
-msgstr "hata ayıklama bölüm verisi"
-
-#: readelf.c:10765
-#, c-format
-msgid "Unrecognized debug section: %s\n"
-msgstr "Tanınmayan hata ayıklama bölümü: %s\n"
-
-#: readelf.c:10800
-#, c-format
-msgid "Section %d was not dumped because it does not exist!\n"
-msgstr "%d alt bölümü dökülmedi çünkü mevcut değil!\n"
-
-#: readelf.c:10872 readelf.c:11236
-msgid "liblist"
-msgstr "liblist"
-
-#: readelf.c:10961
-msgid "options"
-msgstr "seçenekler"
-
-#: readelf.c:10991
-#, c-format
-msgid ""
-"\n"
-"Section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"'%s' bölümü %d girdi içeriyor:\n"
-
-#: readelf.c:11152
-msgid "conflict list found without a dynamic symbol table"
-msgstr "dinamik sembol tablosu olmayan çelişki listesi bulundu"
-
-#: readelf.c:11168 readelf.c:11182
-msgid "conflict"
-msgstr "çakışma"
-
-#: readelf.c:11192
-#, c-format
-msgid ""
-"\n"
-"Section '.conflict' contains %lu entries:\n"
-msgstr ""
-"\n"
-"'.conflict' alt bölümü %lu girdi içeriyor:\n"
-
-#: readelf.c:11194
-msgid " Num: Index Value Name"
-msgstr " Num: Endeks DeÄŸer Ä°sim"
-
-#: readelf.c:11243
-msgid "liblist string table"
-msgstr "liblist dizge tablosu"
-
-#: readelf.c:11252
-#, c-format
-msgid ""
-"\n"
-"Library list section '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"Kitaplık liste bölümü '%s', %lu girdi içeriyor:\n"
-
-#: readelf.c:11303
-msgid "NT_AUXV (auxiliary vector)"
-msgstr "NT_AUXV (yardımcı vektör)"
-
-#: readelf.c:11305
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr "NT_PRSTATUS (prstatus yapısı)"
-
-#: readelf.c:11307
-msgid "NT_FPREGSET (floating point registers)"
-msgstr "NT_FPREGSET (kayan nokta yazmaçları)"
-
-#: readelf.c:11309
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr "NT_PRPSINFO (prpsinfo yapısı)"
-
-#: readelf.c:11311
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr "NT_TASKSTRUCT (görev yapısı)"
-
-#: readelf.c:11313
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr "NT_PRXFPREG (user_xfpregs yapısı)"
-
-#: readelf.c:11315
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr "NT_PSTATUS (pstatus yapısı)"
-
-#: readelf.c:11317
-msgid "NT_FPREGS (floating point registers)"
-msgstr "NT_FPREGS (kayan nokta yazmaçları)"
-
-#: readelf.c:11319
-msgid "NT_PSINFO (psinfo structure)"
-msgstr "NT_PSINFO (psinfo yapısı)"
-
-#: readelf.c:11321
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr "NT_LWPSTATUS (lwpstatus_t yapısı)"
-
-#: readelf.c:11323
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr "NT_LWPSINFO (lwpsinfo_t yapısı)"
-
-#: readelf.c:11325
-msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
-msgstr "NT_WIN32PSTATUS (win32_pstatus yapısı)"
-
-#: readelf.c:11333
-msgid "NT_VERSION (version)"
-msgstr "NT_VERSION (sürüm)"
-
-#: readelf.c:11335
-msgid "NT_ARCH (architecture)"
-msgstr "NT_ARCH (mimari)"
-
-#: readelf.c:11340 readelf.c:11362
-#, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr "Bilinmeyen not tipi: (0x%08x)"
-
-#. NetBSD core "procinfo" structure.
-#: readelf.c:11352
-msgid "NetBSD procinfo structure"
-msgstr "NetBSD procinfo yapısı"
-
-#: readelf.c:11379 readelf.c:11393
-msgid "PT_GETREGS (reg structure)"
-msgstr "PT_GETREGS (yazmaç yapısı)"
-
-#: readelf.c:11381 readelf.c:11395
-msgid "PT_GETFPREGS (fpreg structure)"
-msgstr "PT_GETFPREGS (kayan nokta yazmaç yapısı)"
-
-#: readelf.c:11401
-#, c-format
-msgid "PT_FIRSTMACH+%d"
-msgstr "PT_FIRSTMACH+%d"
-
-#: readelf.c:11447
-msgid "notes"
-msgstr "notlar"
-
-#: readelf.c:11453
-#, c-format
-msgid ""
-"\n"
-"Notes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr ""
-"\n"
-"0x%08lx göreli konumunda, 0x%08lx uzunluğunda notlar:\n"
-
-#: readelf.c:11455
-#, c-format
-msgid " Owner\t\tData size\tDescription\n"
-msgstr " Sahip\t\tVeri Boyu\tAçıklama\n"
-
-#: readelf.c:11474
-#, c-format
-msgid "corrupt note found at offset %x into core notes\n"
-msgstr "'core' notlarının içinde, %x görecesinde bozuk not bulundu\n"
-
-#: readelf.c:11476
-#, c-format
-msgid " type: %x, namesize: %08lx, descsize: %08lx\n"
-msgstr " tür: %x, isimboyu: %08lx, tanımboyu: %08lx\n"
-
-#: readelf.c:11574
-#, c-format
-msgid "No note segments present in the core file.\n"
-msgstr "Core dosyasında not parçaları yok.\n"
-
-#: readelf.c:11653
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr ""
-"Bu readelf, 64 bitlik veri türü desteği olmaksızın derlenmiştir ve\n"
-"64 bitlik ELF dosyalarını okuyamaz.\n"
-
-#: readelf.c:11700 readelf.c:12059
-#, c-format
-msgid "%s: Failed to read file header\n"
-msgstr "%s: Dosya başlığı okunamadı\n"
-
-#: readelf.c:11713
-#, c-format
-msgid ""
-"\n"
-"File: %s\n"
-msgstr ""
-"\n"
-"Dosya: %s\n"
-
-#: readelf.c:11876 readelf.c:11897 readelf.c:11934 readelf.c:12014
-#, c-format
-msgid "%s: failed to read archive header\n"
-msgstr "%s: arşiv başlığı okunamadı\n"
-
-#: readelf.c:11887
-#, c-format
-msgid "%s: failed to skip archive symbol table\n"
-msgstr "%s: arşiv sembol tablosu atlanamadı\n"
-
-#: readelf.c:11919
-#, c-format
-msgid "%s: failed to read string table\n"
-msgstr "%s: dizge tablosu okunamadı\n"
-
-#: readelf.c:11955
-#, c-format
-msgid "%s: invalid archive string table offset %lu\n"
-msgstr "%s: geçersiz arşiv dizge tablo görecesi %lu\n"
-
-#: readelf.c:11971
-#, c-format
-msgid "%s: bad archive file name\n"
-msgstr "%s: hatalı arşiv dosya adı\n"
-
-#: readelf.c:12003
-#, c-format
-msgid "%s: failed to seek to next archive header\n"
-msgstr "%s: sonraki arşiv başlığına geçilemedi\n"
-
-#: readelf.c:12037
-#, c-format
-msgid "'%s': No such file\n"
-msgstr "'%s': Böyle bir dosya yok\n"
-
-#: readelf.c:12039
-#, c-format
-msgid "Could not locate '%s'. System error message: %s\n"
-msgstr "'%s' bulunamadı. Sistem hata iletisi: %s\n"
-
-#: readelf.c:12046
-#, c-format
-msgid "'%s' is not an ordinary file\n"
-msgstr "'%s' normal bir dosya deÄŸil\n"
-
-#: readelf.c:12053
-#, c-format
-msgid "Input file '%s' is not readable.\n"
-msgstr "Girdi dosyası '%s' okunamaz.\n"
-
-#: rename.c:127
-#, c-format
-msgid "%s: cannot set time: %s"
-msgstr "%s: zaman atanamadı: %s"
-
-#. We have to clean up here.
-#: rename.c:162 rename.c:200
-#, c-format
-msgid "unable to rename '%s' reason: %s"
-msgstr "'%s' yeniden adlandırılamadı sebep: %s"
-
-#: rename.c:208
-#, c-format
-msgid "unable to copy file '%s' reason: %s"
-msgstr "'%s' dosyası kopyalanamadı sebep: %s"
-
-#: resbin.c:132
-#, c-format
-msgid "%s: not enough binary data"
-msgstr "%s: yeterli ikilik veri yok"
-
-#: resbin.c:148
-msgid "null terminated unicode string"
-msgstr "boş değerle sonlanmış unicode dizgesi"
-
-#: resbin.c:175 resbin.c:181
-msgid "resource ID"
-msgstr "kaynak ID"
-
-#: resbin.c:221
-msgid "cursor"
-msgstr "gösterge"
-
-#: resbin.c:253 resbin.c:260
-msgid "menu header"
-msgstr "menü başlığı"
-
-#: resbin.c:270
-msgid "menuex header"
-msgstr "menuex başlığı"
-
-#: resbin.c:274
-msgid "menuex offset"
-msgstr "menuex basamağı"
-
-#: resbin.c:281
-#, c-format
-msgid "unsupported menu version %d"
-msgstr "desteklenmeyen menü sürümü %d"
-
-#: resbin.c:306 resbin.c:321 resbin.c:384
-msgid "menuitem header"
-msgstr "menü üyesi başlığı"
-
-#: resbin.c:414
-msgid "menuitem"
-msgstr "menü üyesi"
-
-#: resbin.c:453 resbin.c:481
-msgid "dialog header"
-msgstr "diyalog başlığı"
-
-#: resbin.c:471
-#, c-format
-msgid "unexpected DIALOGEX version %d"
-msgstr "beklenmeyen DIALOGEX sürümü %d"
-
-#: resbin.c:516
-msgid "dialog font point size"
-msgstr "diyalog yazıtipi büyüklüğü"
-
-#: resbin.c:524
-msgid "dialogex font information"
-msgstr "dialogex yazıtipi bilgisi"
-
-#: resbin.c:550 resbin.c:568
-msgid "dialog control"
-msgstr "diyalog kontrolü"
-
-#: resbin.c:560
-msgid "dialogex control"
-msgstr "dialogex kontrolü"
-
-#: resbin.c:589
-msgid "dialog control end"
-msgstr "diyalog kontrol sonu"
-
-#: resbin.c:601
-msgid "dialog control data"
-msgstr "diyalog kontrol verisi"
-
-#: resbin.c:642
-msgid "stringtable string length"
-msgstr "dizgetablosu dizge uzunluÄŸu"
-
-#: resbin.c:652
-msgid "stringtable string"
-msgstr "dizgetablosu dizgesi"
-
-#: resbin.c:683
-msgid "fontdir header"
-msgstr "yazıtipi dizin başlığı"
-
-#: resbin.c:696
-msgid "fontdir"
-msgstr "yazıtipi dizini"
-
-#: resbin.c:712
-msgid "fontdir device name"
-msgstr "yazıtipi aygıt adı"
-
-#: resbin.c:718
-msgid "fontdir face name"
-msgstr "yazıtipi dizini aile ismi"
-
-#: resbin.c:759
-msgid "accelerator"
-msgstr "hızlandırıcı"
-
-#: resbin.c:819
-msgid "group cursor header"
-msgstr "grup gösterge başlığı"
-
-#: resbin.c:823
-#, c-format
-msgid "unexpected group cursor type %d"
-msgstr "beklenmeyen grup gösterge tipi %d"
-
-#: resbin.c:838
-msgid "group cursor"
-msgstr "grup göstergesi"
-
-#: resbin.c:875
-msgid "group icon header"
-msgstr "grup ikon başlığı"
-
-#: resbin.c:879
-#, c-format
-msgid "unexpected group icon type %d"
-msgstr "beklenmeyen grup ikon tipi %d"
-
-#: resbin.c:894
-msgid "group icon"
-msgstr "grup ikonu"
-
-#: resbin.c:957 resbin.c:1174
-msgid "unexpected version string"
-msgstr "dizgenin beklenmeyen sürümü"
-
-#: resbin.c:989
-#, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr "sürüm uzunluğu %d, kaynak uzunluğu %lu ile eşleşmiyor"
-
-#: resbin.c:993
-#, c-format
-msgid "unexpected version type %d"
-msgstr "beklenmeyen sürüm tipi %d"
-
-#: resbin.c:1005
-#, c-format
-msgid "unexpected fixed version information length %d"
-msgstr "beklenmeyen sabit sürüm bilgi uzunluğu %d"
-
-#: resbin.c:1008
-msgid "fixed version info"
-msgstr "sabit sürüm bilgisi"
-
-#: resbin.c:1012
-#, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr "beklenmeyen sabit sürüm imzası %lu"
-
-#: resbin.c:1016
-#, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr "beklenmeyen sabit sürüm bilgisi sürümü %lu"
-
-#: resbin.c:1045
-msgid "version var info"
-msgstr "sürüm değişken bilgisi"
-
-#: resbin.c:1062
-#, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr "beklenmeyen dizge dosya bilgi deÄŸer uzunluÄŸu %d"
-
-#: resbin.c:1072
-#, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr "beklenmeyen sürüm dizge tablo değer uzunluğu %d"
-
-#: resbin.c:1106
-#, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr "beklenmeyen sürüm dizge uzunluğu %d != %d + %d"
-
-#: resbin.c:1117
-#, c-format
-msgid "unexpected version string length %d < %d"
-msgstr "beklenmeyen sürüm dizge uzunluğu %d < %d"
-
-#: resbin.c:1134
-#, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr "beklenmeyen deÄŸiÅŸken dosya bilgi deÄŸer uzunluÄŸu %d"
-
-#: resbin.c:1153
-msgid "version varfileinfo"
-msgstr "değişken dosya bilgi sürümü"
-
-#: resbin.c:1168
-#, c-format
-msgid "unexpected version value length %d"
-msgstr "beklenmeyen sürüm değer uzunluğu %d"
-
-#: rescoff.c:126
-msgid "filename required for COFF input"
-msgstr "COFF girdisi için dosya adı gerekli"
-
-#: rescoff.c:143
-#, c-format
-msgid "%s: no resource section"
-msgstr "%s: kaynak bölümü yok"
-
-#: rescoff.c:150
-msgid "can't read resource section"
-msgstr "kaynak bölümü okunamıyor"
-
-#: rescoff.c:174
-#, c-format
-msgid "%s: %s: address out of bounds"
-msgstr "%s: %s: adres sınırların dışında"
-
-#: rescoff.c:190
-msgid "directory"
-msgstr "dizin"
-
-#: rescoff.c:218
-msgid "named directory entry"
-msgstr "isimli dizin girdisi"
-
-#: rescoff.c:227
-msgid "directory entry name"
-msgstr "dizin girdi ismi"
-
-#: rescoff.c:247
-msgid "named subdirectory"
-msgstr "isimli altdizin"
-
-#: rescoff.c:255
-msgid "named resource"
-msgstr "isimli kaynak"
-
-#: rescoff.c:270
-msgid "ID directory entry"
-msgstr "ID dizin girdisi"
-
-#: rescoff.c:287
-msgid "ID subdirectory"
-msgstr "ID altdizini"
-
-#: rescoff.c:295
-msgid "ID resource"
-msgstr "ID kaynağı"
-
-#: rescoff.c:318
-msgid "resource type unknown"
-msgstr "kaynak tipi bilinmiyor"
-
-#: rescoff.c:321
-msgid "data entry"
-msgstr "veri girdisi"
-
-#: rescoff.c:329
-msgid "resource data"
-msgstr "kaynak verisi"
-
-#: rescoff.c:334
-msgid "resource data size"
-msgstr "kaynak veri boyu"
-
-#: rescoff.c:427
-msgid "filename required for COFF output"
-msgstr "COFF çıktı için dosya adı gerekli"
-
-#: rescoff.c:719
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr "BFD_RELOC_RVA yer değiştirme tipi alınamıyor"
-
-#: resrc.c:238 resrc.c:309
-#, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr "`%s' geçici dosyası açılamıyor: %s"
-
-#: resrc.c:244
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr "standart çıktı yönlendirilemiyor: `%s': %s"
-
-#: resrc.c:260
-#, c-format
-msgid "%s %s: %s"
-msgstr "%s %s: %s"
-
-#: resrc.c:305
-#, c-format
-msgid "can't execute `%s': %s"
-msgstr "`%s' çalıştırılamıyor: %s"
-
-#: resrc.c:314
-#, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr "`%s' geçici dosyası önişlemci çıktısını okumak için kullanılıyor\n"
-
-#: resrc.c:321
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr "`%s' popen yapılamıyor: %s"
-
-#: resrc.c:323
-#, c-format
-msgid "Using popen to read preprocessor output\n"
-msgstr "Önişlemci çıktısı popen ile okunuyor\n"
-
-#: resrc.c:362
-#, c-format
-msgid "Tried `%s'\n"
-msgstr "`%s' denendi\n"
-
-#: resrc.c:373
-#, c-format
-msgid "Using `%s'\n"
-msgstr "`%s' kullanılıyor\n"
-
-#: resrc.c:529
-#, c-format
-msgid "%s:%d: %s\n"
-msgstr "%s:%d: %s\n"
-
-#: resrc.c:537
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr "%s: beklenmeyen dosya sonu"
-
-#: resrc.c:586
-#, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr "%s: %lu'nun okunması %lu döndürdü"
-
-#: resrc.c:624 resrc.c:1134
-#, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr "`%s' bitmap dosyası durumlanamadı: %s"
-
-#: resrc.c:675
-#, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr "gösterge dosyası '%s' gösterge verisi içermiyor"
-
-#: resrc.c:707 resrc.c:1003
-#, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr "%s: %lu'ya fseek başarısız: %s"
-
-#: resrc.c:831
-msgid "help ID requires DIALOGEX"
-msgstr "yardım ID için DIALOGEX gerekli"
-
-#: resrc.c:833
-msgid "control data requires DIALOGEX"
-msgstr "kontrol verisi için DIALOGEX gerekli"
-
-#: resrc.c:861
-#, c-format
-msgid "stat failed on font file `%s': %s"
-msgstr "`%s' yazıtipi dosyası durumlanamadı: %s"
-
-#: resrc.c:972
-#, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr "ikon dosyası '%s' ikon verisi içermiyor"
-
-#: resrc.c:1273 resrc.c:1308
-#, c-format
-msgid "stat failed on file `%s': %s"
-msgstr "`%s' dosyası durumlanamadı: %s"
-
-#: resrc.c:1494
-#, c-format
-msgid "can't open `%s' for output: %s"
-msgstr "'%s' çıktı için açılamadı: %s"
-
-#: size.c:81
-#, c-format
-msgid " Displays the sizes of sections inside binary files\n"
-msgstr " İkilik dosyalar içinde bölüm boylarını gösterir\n"
-
-#: size.c:82
-#, c-format
-msgid " If no input file(s) are specified, a.out is assumed\n"
-msgstr " Eğer girdi dosyası belirtilmezse, a.out varsayılır\n"
-
-#: size.c:83
-#, c-format
-msgid ""
-" The options are:\n"
-" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
-" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n"
-" -t --totals Display the total sizes (Berkeley only)\n"
-" --target=<bfdname> Set the binary file format\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Seçenekler:\n"
-" -A|-B --format={sysv|berkeley} Çıktı tarzını belirler (%s öntanımlı)\n"
-" -o|-d|-x --radix={8|10|16} Rakamları sekizlik, onluk, onaltılık\n"
-" olarak gösterir\n"
-" -t --totals Toplam boyları gösterir (yalnız\n"
-" Berkeley'de)\n"
-" --target=<bfdadı> İkilik dosya biçemini belirler\n"
-" -h --help Bu bilgileri gösterir\n"
-" -v --version Sürüm bilgilerini gösterir\n"
-"\n"
-
-#: size.c:153
-#, c-format
-msgid "invalid argument to --format: %s"
-msgstr "--format'a geçersiz seçenek: %s"
-
-#: size.c:180
-#, c-format
-msgid "Invalid radix: %s\n"
-msgstr "Geçersiz radix: %s\n"
-
-#: srconv.c:1722
-#, c-format
-msgid "Convert a COFF object file into a SYSROFF object file\n"
-msgstr "Bir COFF nesne dosyasını SYSROFF nesne dosyasına çevirir\n"
-
-#: srconv.c:1723
-#, c-format
-msgid ""
-" The options are:\n"
-" -q --quick (Obsolete - ignored)\n"
-" -n --noprescan Do not perform a scan to convert commons into defs\n"
-" -d --debug Display information about what is being done\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Seçenekler:\n"
-" -q --quick (Eski - yoksayılır)\n"
-" -n --noprescan common'ları def'lere çevirmek için taramaz\n"
-" -d --debug Ne yapıldığı hakkında bilgi verir\n"
-" -h --help Bu bilgiyi gösterir\n"
-" -v --version Sürüm numarasını gösterir\n"
-
-#: srconv.c:1866
-#, c-format
-msgid "unable to open output file %s"
-msgstr "çıktı dosyası %s açılamadı"
-
-#: stabs.c:330 stabs.c:1708
-msgid "numeric overflow"
-msgstr "sayısal taşma"
-
-#: stabs.c:340
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr "Kötü stab: %s\n"
-
-#: stabs.c:348
-#, c-format
-msgid "Warning: %s: %s\n"
-msgstr "Uyarı: %s: %s\n"
-
-#: stabs.c:458
-#, c-format
-msgid "N_LBRAC not within function\n"
-msgstr "N_LBRAC işlev içerisinde değil\n"
-
-#: stabs.c:497
-#, c-format
-msgid "Too many N_RBRACs\n"
-msgstr "Fazla sayıda N_RBRAC\n"
-
-#: stabs.c:738
-msgid "unknown C++ encoded name"
-msgstr "Bilinmeyen C++ ÅŸifreli ismi"
-
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1253
-msgid "unrecognized cross reference type"
-msgstr "tanınmayan çapraz başvuru tipi"
-
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1800
-msgid "missing index type"
-msgstr "eksik endeks tipi"
-
-#: stabs.c:2114
-msgid "unknown virtual character for baseclass"
-msgstr "temel sınıf için bilinmeyen sanal karakter"
-
-#: stabs.c:2132
-msgid "unknown visibility character for baseclass"
-msgstr "temel sınıf için bilinmeyen görünebilirlik karakteri"
-
-#: stabs.c:2318
-msgid "unnamed $vb type"
-msgstr "isimlenmemiÅŸ $vb tipi"
-
-#: stabs.c:2324
-msgid "unrecognized C++ abbreviation"
-msgstr "tanınmayan C++ kısaltması"
-
-#: stabs.c:2400
-msgid "unknown visibility character for field"
-msgstr "alan için bilinmeyen görünürlük karakteri"
-
-#: stabs.c:2652
-msgid "const/volatile indicator missing"
-msgstr "sabit/deÄŸiÅŸken belirteci eksik"
-
-#: stabs.c:2888
-#, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr "\"%s\" için karıştırma yok\n"
-
-#: stabs.c:3188
-msgid "Undefined N_EXCL"
-msgstr "N_EXCL tanımsız"
-
-#: stabs.c:3268
-#, c-format
-msgid "Type file number %d out of range\n"
-msgstr "Tip dosya numarası %d aralık dışı\n"
-
-#: stabs.c:3273
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr "Tip endeks numarası %d aralık dışı\n"
-
-#: stabs.c:3352
-#, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr "Bilinmeyen XCOFF tipi %d\n"
-
-#: stabs.c:3644
-#, c-format
-msgid "bad mangled name `%s'\n"
-msgstr "kötü karıştırılmış isim '%s'\n"
-
-#: stabs.c:3739
-#, c-format
-msgid "no argument types in mangled string\n"
-msgstr "karıştırılmış dizgede argüman tipi yok\n"
-
-#: stabs.c:5093
-#, c-format
-msgid "Demangled name is not a function\n"
-msgstr "Düzeltilmiş isim bir işlev değil\n"
-
-#: stabs.c:5135
-#, c-format
-msgid "Unexpected type in v3 arglist demangling\n"
-msgstr "v3 argüman listesi düzeltme işleminde beklenmeyen tür\n"
-
-#: stabs.c:5202
-#, c-format
-msgid "Unrecognized demangle component %d\n"
-msgstr "Tanınmayan düzeltme bileşeni %d\n"
-
-#: stabs.c:5254
-#, c-format
-msgid "Failed to print demangled template\n"
-msgstr "Düzeltilmiş şablon yazdırılamadı\n"
-
-#: stabs.c:5334
-#, c-format
-msgid "Couldn't get demangled builtin type\n"
-msgstr "Düzeltilmiş oluşumiçi tür alınamadı\n"
-
-#: stabs.c:5383
-#, c-format
-msgid "Unexpected demangled varargs\n"
-msgstr "Beklenmeyen düzeltilmiş değişken argümanlar\n"
-
-#: stabs.c:5390
-#, c-format
-msgid "Unrecognized demangled builtin type\n"
-msgstr "Bilinmeyen düzeltilmiş çevrimiçi tür\n"
-
-#: strings.c:206
-#, c-format
-msgid "invalid number %s"
-msgstr "geçersiz sayı %s"
-
-#: strings.c:643
-#, c-format
-msgid "invalid integer argument %s"
-msgstr "geçersiz tamsayı argümanı %s"
-
-#: strings.c:652
-#, c-format
-msgid " Display printable strings in [file(s)] (stdin by default)\n"
-msgstr " [dosya(lar)]daki yazdırılabilir dizgeleri gösterir (öntanımlı standart girdi)\n"
-
-#: strings.c:653
-#, c-format
-msgid ""
-" The options are:\n"
-" -a - --all Scan the entire file, not just the data section\n"
-" -f --print-file-name Print the name of the file before each string\n"
-" -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n"
-" -<number> least [number] characters (default 4).\n"
-" -t --radix={o,d,x} Print the location of the string in base 8, 10 or 16\n"
-" -o An alias for --radix=o\n"
-" -T --target=<BFDNAME> Specify the binary file format\n"
-" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
-" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Seçenekler:\n"
-" -a - --all Yalnız veri bölümünü değil, bütün dosyayı tarar\n"
-" -f --print-file-name Her dizgeden önce dosya adını yazdırır\n"
-" -n --bytes=[sayı] En az [sayı] karakterde ve NUL ile sonlanmış olan\n"
-" -<sayı> bütün dizgeleri yazdırır (öntanımlı 4)\n"
-" -t --radix={o,d,x} Dizgenin yerini 8'lik, 10'luk veya 16'lık düzende\n"
-" yazdırır\n"
-" -o --radix=o ile aynı\n"
-" -T --target=<BFDADI> İkilik dosya biçemini belirtir\n"
-" -e --encoding={s,S,b,l,B,L} Karakter boyu ve sonlamayı seçtirir:\n"
-" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" -h --help Bu bilgiyi gösterir\n"
-" -v --version Yazılımın sürüm no'sunu gösterir\n"
-
-#: sysdump.c:649
-#, c-format
-msgid "Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "SYSROFF nesne dosyasını insan tarafından okunabilir biçemde yazdırır\n"
-
-#: sysdump.c:650
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Seçenekler:\n"
-" -h --help Bu bilgiyi gösterir\n"
-" -v --version Yazılımın sürüm no'sunu gösterir\n"
-
-#: sysdump.c:715
-#, c-format
-msgid "cannot open input file %s"
-msgstr "%s girdi dosyası açılamadı"
-
-#: version.c:35
-#, c-format
-msgid "Copyright 2005 Free Software Foundation, Inc.\n"
-msgstr "Telif Hakkı (c) 2005 Free Software Foundation, Inc.\n"
-
-#: version.c:36
-#, c-format
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr ""
-"Bu, bir serbest yazılımdır; GNU Genel Kamu Lisansı koşulları altında değişiklik \n"
-"yapabilir ve/veya yeniden dağıtabilirsiniz. \n"
-"Bu yazılımın herhangi bir garantisi yoktur.\n"
-
-#: windres.c:204
-#, c-format
-msgid "can't open %s `%s': %s"
-msgstr "%s `%s' açılamadı: %s"
-
-#: windres.c:370
-#, c-format
-msgid ": expected to be a directory\n"
-msgstr ": dizin beklendi\n"
-
-#: windres.c:382
-#, c-format
-msgid ": expected to be a leaf\n"
-msgstr ": yaprak beklendi\n"
-
-#: windres.c:391
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: uyarı: "
-
-#: windres.c:393
-#, c-format
-msgid ": duplicate value\n"
-msgstr ": çift değer\n"
-
-#: windres.c:543
-#, c-format
-msgid "unknown format type `%s'"
-msgstr "bilinmeyen biçem tipi `%s'"
-
-#: windres.c:544
-#, c-format
-msgid "%s: supported formats:"
-msgstr "%s: desteklenen biçemler:"
-
-#. Otherwise, we give up.
-#: windres.c:627
-#, c-format
-msgid "can not determine type of file `%s'; use the -J option"
-msgstr "`%s' dosyasının türü belirlenemedi; -J seçeneğini kullanın"
-
-#: windres.c:639
-#, c-format
-msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
-msgstr "Kullanım: %s [seçenekler] [girdi-dosyası] [çıktı-dosyası]\n"
-
-#: windres.c:641
-#, c-format
-msgid ""
-" The options are:\n"
-" -i --input=<file> Name input file\n"
-" -o --output=<file> Name output file\n"
-" -J --input-format=<format> Specify input format\n"
-" -O --output-format=<format> Specify output format\n"
-" -F --target=<target> Specify COFF target\n"
-" --preprocessor=<program> Program to use to preprocess rc file\n"
-" -I --include-dir=<dir> Include directory when preprocessing rc file\n"
-" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
-" -U --undefine <sym> Undefine SYM when preprocessing rc file\n"
-" -v --verbose Verbose - tells you what it's doing\n"
-" -l --language=<val> Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr ""
-"Seçenekler:\n"
-" -i --input=<DOSYA> Girdi dosyası ismi\n"
-" -o --output=<DOSYA> Çıktı dosyası ismi\n"
-" -J --input-format=<BİÇEM> Girdi biçemini belirtir\n"
-" -O --output-format=<BİÇEM> Çıktı biçemini belirtir\n"
-" -F --target=<HEDEF> COFF hedefini belirtir\n"
-" --preprocessor=<YAZILIM> rc dosyasını önişlemek için kullanılacak yazılım\n"
-" -I --include-dir=<DİZİN> rc dosyası önişlenirken dizini dahil et\n"
-" -D --define SYM[=DEĞER] rc dosyası önişlenirken SYM'i tanımlar\n"
-" -v --verbose Açıklamalı - ne yapıldığını anlatır\n"
-" -l --language=<DEĞER> rc dosyası okunurken dili belirtir\n"
-" --use-temp-file Önişlemci çıktısını okumak için popen yerine\n"
-" geçici dosya kullanır\n"
-" --no-use-temp-file (öntanımlı) popen kullanır\n"
-
-#: windres.c:657
-#, c-format
-msgid " --yydebug Turn on parser debugging\n"
-msgstr " --yydebug Tarayıcıda hata ayıklamayı etkinleştirir\n"
-
-#: windres.c:660
-#, c-format
-msgid ""
-" -r Ignored for compatibility with rc\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" -r rc ile uyumluluk için yok sayılır\n"
-" -h --help Bu yardımı gösterir\n"
-" -V --version Sürüm bilgisini gösterir\n"
-
-#: windres.c:664
-#, c-format
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr ""
-"BİÇEM rc, res, veya coff değerlerinden biri olup, eğer belirtilmezse dosya ismi sonekinden bulunur. Tek bir dosya ismi bir girdi dosyası kabul edilir\n"
-"Girdi dosya ismi verilmezse standart girdi, öntanımlı rc okunur. \n"
-"Çıktı dosya ismi verilmezse standart çıktı, öntanımlı rc okunur.\n"
-
-#: windres.c:800
-msgid "invalid option -f\n"
-msgstr "Geçersiz seçenek -f\n"
-
-#: windres.c:805
-msgid "No filename following the -fo option.\n"
-msgstr "-fo seçeneğinden sonra dosya adı verilmemiş.\n"
-
-#: windres.c:863
-#, c-format
-msgid "Option -I is deprecated for setting the input format, please use -J instead.\n"
-msgstr "Girdi biçemini belirlemek için -I seçeneği artık kullanılmıyor, -J kullanın.\n"
-
-#: windres.c:981
-msgid "no resources"
-msgstr "kaynak yok"
-
-#: wrstabs.c:354 wrstabs.c:1915
-#, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr "string_hash_lookup başarısız: %s"
-
-#: wrstabs.c:635
-#, c-format
-msgid "stab_int_type: bad size %u"
-msgstr "stab_int_type: hatalı boy %u"
-
-#: wrstabs.c:1393
-#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr "%s: uyarı: Yapı içinde `%s' alanı için bilinmeyen boy"
-
-#~ msgid ""
-#~ "\n"
-#~ "<member %s>\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "<üye %s>\n"
-#~ "\n"
-
-#~ msgid "cannot stat: %s: %s"
-#~ msgstr "durumlanamadı: %s: %s"
-
-#~ msgid "%s: cannot stat: %s"
-#~ msgstr "%s: durumlanamadı: %s"
-
-#~ msgid "Cannot stat: %s: %s"
-#~ msgstr "Durumlanamadı: %s: %s"
-
-#~ msgid "Out of virtual memory"
-#~ msgstr "Sanal bellek tükendi"
-
-#~ msgid "%s has no %s section"
-#~ msgstr "%s %s bölümü yok"
-
-#~ msgid "Reading %s section of %s failed: %s\n"
-#~ msgstr "%2$s'nin %1$s bölümünün okunması başarısız: %3$s\n"
-
-#~ msgid "Skipping unexpected symbol type %u\n"
-#~ msgstr "beklenmeyen sembol türü %u atlanıyor\n"
-
-#~ msgid "dynamic segment"
-#~ msgstr "dinamik bölüm"
-
-#~ msgid "Cannot stat input file %s.\n"
-#~ msgstr "%s girdi dosyası durumlanamadı.\n"
-
-#~ msgid "%s: rename: %s"
-#~ msgstr "%s: yeniden adlandırma: %s"
-
-#~ msgid "%s: simple_copy: %s"
-#~ msgstr "%s: simple_copy: %s"
-
-#~ msgid "debug_record_variable: no current block"
-#~ msgstr "hata_ayıkla_kayıt_değişken: mevcut blok yok"
-
-#~ msgid "%s: No dynamic symbols"
-#~ msgstr "%s: Dinamik sembol yok"
-
-#~ msgid "64-bit DWARF line info is not supported yet.\n"
-#~ msgstr "64 bitlik DWARF satır bilgisi henüz desteklenmiyor.\n"
-
-#~ msgid "64-bit DWARF pubnames are not supported yet.\n"
-#~ msgstr "64 bitlik DWARF genel isimleri henüz desteklenmiyor\n"
-
-#~ msgid "64-bit DWARF debug info is not supported yet.\n"
-#~ msgstr "64 bitlik DWARF hata ayıklama bilgisi henüz desteklenmiyor.\n"
-
-#~ msgid "64-bit DWARF aranges are not supported yet.\n"
-#~ msgstr "64 bitlik DWARF a-aralıkları henüz desteklenmiyor.\n"
-
-#~ msgid "64-bit DWARF format frames are not supported yet.\n"
-#~ msgstr "64 bitlik DWARF biçem çerçeveleri henüz desteklenmiyor.\n"
-
-#~ msgid ""
-#~ " -h --help Print this help message\n"
-#~ " -V --version Print version information\n"
-#~ msgstr ""
-#~ " -h --help Bu yardımı gösterir\n"
-#~ " -V --version Bu sürüm bilgisini gösterir\n"
-
-#~ msgid ""
-#~ "Usage: %s [-CfsHV] [-b bfdname] [--target=bfdname]\n"
-#~ " [-e executable] [--exe=executable] [--demangle[=style]]\n"
-#~ " [--basenames] [--functions] [addr addr ...]\n"
-#~ msgstr ""
-#~ "Kullanım: %s [-CfsHV] [-b bfd_adı] \n"
-#~ " [--target=bfd_adı] hedef\n"
-#~ " [-e uygulama] [--exe=uygulama] \n"
-#~ " [--demangle[=tarz]] düzeltme tarzı\n"
-#~ " [--basenames] temel isimler\n"
-#~ " [--functions] [adres adres ...] iÅŸlevler\n"
-
-#~ msgid ""
-#~ "Usage: %s [-dhV] [-I bfdname] [-O bfdname] [-T header-file] [-l linker]\n"
-#~ " [--input-target=bfdname] [--output-target=bfdname]\n"
-#~ " [--header-file=file] [--linker=linker] [--debug]\n"
-#~ " [--help] [--version]\n"
-#~ " [in-file [out-file]]\n"
-#~ msgstr ""
-#~ "Kullanım: %s [-dhV] [-I bfd_adı] [-O bfd_adı] [-T başlık-dosyası]\n"
-#~ " [-l bağlayıcı]\n"
-#~ " [--input-target=bfd_adı] girdi dosyası adı\n"
-#~ " [--output-target=bfd_adı] çıktı dosyası adı\n"
-#~ " [--header-file=dosya] başlık dosyası adı\n"
-#~ " [--linker=bağlayıcı] bağlayıcı yazılım adı\n"
-#~ " [--debug] hata ayıklama kipi\n"
-#~ " [--help] bu yardımı gösterir\n"
-#~ " [--version] sürüm bilgisini gösterir\n"
-#~ " [girdi-dosyası [çıktı-dosyası]]\n"
-
-#~ msgid "Usage: %s [OPTION]... [FILE]...\n"
-#~ msgstr "Kullanım: %s [SEÇENEK]... [DOSYA]...\n"
-
-#~ msgid "Usage: %s OPTION... FILE...\n"
-#~ msgstr "Kullanım: %s SEÇENEK... DOSYA...\n"
-
-#~ msgid " Options are:\n"
-#~ msgstr " Seçenekler:\n"
-
-#~ msgid " -a or --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-#~ msgstr " -a veya --all Buna eÅŸit: -h -l -S -s -r -d -V -A -I\n"
-
-#~ msgid " -h or --file-header Display the ELF file header\n"
-#~ msgstr " -h veya --file-header ELF dosyası başlığını gösterir\n"
-
-#~ msgid " -l or --program-headers or --segments\n"
-#~ msgstr " -l veya --program-headers veya --segments\n"
-
-#~ msgid " Display the program headers\n"
-#~ msgstr " Yazılım başlıklarını gösterir\n"
-
-#~ msgid " -S or --section-headers or --sections\n"
-#~ msgstr " -S veya --section-headers veya --sections\n"
-
-#~ msgid " Display the sections' header\n"
-#~ msgstr " Bölüm başlıklarını gösterir\n"
-
-#~ msgid " -e or --headers Equivalent to: -h -l -S\n"
-#~ msgstr " -e veya --headers Buna eÅŸit: -h -l -S\n"
-
-#~ msgid " -s or --syms or --symbols Display the symbol table\n"
-#~ msgstr " -s veya --syms veya --symbols Sembol tablosunu gösterir\n"
-
-#~ msgid " -n or --notes Display the core notes (if present)\n"
-#~ msgstr " -n veya --notes (Eğer varsa) core notlarını gösterir\n"
-
-#~ msgid " -r or --relocs Display the relocations (if present)\n"
-#~ msgstr " -r veya --relocs (Eğer varsa) yer değiştirmeleri gösterir\n"
-
-#~ msgid " -u or --unwind Display the unwind info (if present)\n"
-#~ msgstr " -u veya --unwind (Eğer varsa) geri alma bilgisini gösterir\n"
-
-#~ msgid " -d or --dynamic Display the dynamic segment (if present)\n"
-#~ msgstr " -d veya --dynamic (Eğer varsa) dinamik bölümü gösterir\n"
-
-#~ msgid " -V or --version-info Display the version sections (if present)\n"
-#~ msgstr " -V veya --version-info (Eğer varsa) sürüm bölümlerini gösterir\n"
-
-#~ msgid " -A or --arch-specific Display architecture specific information (if any).\n"
-#~ msgstr " -A veya --arch-specific (Eğer varsa) mimariye özel bilgiyi gösterir.\n"
-
-#~ msgid " -D or --use-dynamic Use the dynamic section info when displaying symbols\n"
-#~ msgstr " -D veya --use-dynamic Sembolleri gösterirken dinamik bölüm bilgisini kullanır\n"
-
-#~ msgid " -x <number> or --hex-dump=<number>\n"
-#~ msgstr " -x <sayı> veya --hex-dump=<sayı>\n"
-
-#~ msgid " Dump the contents of section <number>\n"
-#~ msgstr " <sayı> bölümünün içeriğini gösterir\n"
-
-#~ msgid " -w[liaprmfs] or --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]\n"
-#~ msgstr " -w[liaprmfs] veya --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str]\n"
-
-#~ msgid " Display the contents of DWARF2 debug sections\n"
-#~ msgstr " DWARF2 hata ayıklama bölümlerinin içeriğini gösterir\n"
-
-#~ msgid " -i <number> or --instruction-dump=<number>\n"
-#~ msgstr " -i <sayı> veya --instruction-dump=<sayı>\n"
-
-#~ msgid " -I or --histogram Display histogram of bucket list lengths\n"
-#~ msgstr " -I veya --histogram Küme liste uzunluğu geçmiş grafiğini gösterir\n"
-
-#~ msgid " -v or --version Display the version number of readelf\n"
-#~ msgstr " -v veya --version readelf'in sürüm numarasını gösterir\n"
-
-#~ msgid " -W or --wide Don't split lines or truncate symbols to fit into 80 columns\n"
-#~ msgstr " -W veya --wide 80 sütuna sığdırmak için satırları bölmez veya kesmez\n"
-
-#~ msgid " -H or --help Display this information\n"
-#~ msgstr " -H veya --help Bu bilgiyi gösterir\n"
-
-#~ msgid "unexpected dialog signature %d"
-#~ msgstr "beklenmeyen diyalog imzası %d"
-
-#~ msgid ""
-#~ "Usage: %s [-A | --format=sysv | -B | --format=berkeley]\n"
-#~ " [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n"
-#~ " [-V | --version] [--target=bfdname] [--help] [file...]\n"
-#~ msgstr ""
-#~ "Kullanım: %s [-A | --format=sysv | -B | --format=berkeley] Biçem\n"
-#~ " [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n"
-#~ " [-V | --version] Sürüm\n"
-#~ " [--target=bfd_adı] Hedef\n"
-#~ " [--help] Yardım\n"
-#~ " [dosya...] [dosya]\n"
-
-#~ msgid "default is --format=berkeley\n"
-#~ msgstr "--format=berkeley öntanımlı\n"
-
-#~ msgid "default is --format=sysv\n"
-#~ msgstr "--format=sysv öntanımlı\n"
-
-#~ msgid "Usage: %s [-dhVq] in-file [out-file]\n"
-#~ msgstr "Kullanım: %s [-dhVq] girdi-dosyası [çıktı-dosyası]\n"
-
-#~ msgid ""
-#~ "Usage: %s [-afov] [-n min-len] [-min-len] [-t {o,x,d}] [-e {s,b,l,B,L}]\n"
-#~ " [-] [--all] [--print-file-name] [--bytes=min-len] [--radix={o,x,d}]\n"
-#~ " [--target=bfdname] [--encoding {s,b,l,B,L}] [--help] [--version] file...\n"
-#~ msgstr ""
-#~ "Kullanım: %s [-afov] [-n min-uzun] [-min-len] En az uzunluk\n"
-#~ " [-t {o,x,d}] [-e {s,b,l,B,L}] [-]\n"
-#~ " [--all] Hepsi\n"
-#~ " [--print-file-name] Dosya adını yazdırır\n"
-#~ " [--bytes=min-uzun] En az bayt\n"
-#~ " [--radix={o,x,d}]\n"
-#~ " [--target=bfd_adı] Hedef\n"
-#~ " [--encoding {s,b,l,B,L}] Kodlama\n"
-#~ " [--help] Yardım\n"
-#~ " [--version] Sürüm bilgisi\n"
-#~ " dosya... \n"
-
-#~ msgid "Usage: %s [-hV] in-file\n"
-#~ msgstr "Kullanım: %s [-hV] girdi-dosyası\n"
diff --git a/binutils-2.17/binutils/po/vi.gmo b/binutils-2.17/binutils/po/vi.gmo
deleted file mode 100644
index c63cb5d0..00000000
--- a/binutils-2.17/binutils/po/vi.gmo
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/po/vi.po b/binutils-2.17/binutils/po/vi.po
deleted file mode 100644
index df512f86..00000000
--- a/binutils-2.17/binutils/po/vi.po
+++ /dev/null
@@ -1,5871 +0,0 @@
-# Vietnamese translation for BinUtils.
-# Copyright © 2006 Free Software Foundation, Inc.
-# Clytie Siddall <clytie@riverland.net.au>, 2006.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: binutils-2.16.93\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-25 09:14+0930\n"
-"PO-Revision-Date: 2006-05-23 17:58+0930\n"
-"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
-"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0\n"
-"X-Generator: LocFactoryEditor 1.6b31\n"
-
-#: addr2line.c:76
-#, c-format
-msgid "Usage: %s [option(s)] [addr(s)]\n"
-msgstr "Cách sá»­ dụng: %s [tùy_chá»n...] [địa_chỉ...)]\n"
-
-#: addr2line.c:77
-#, c-format
-msgid " Convert addresses into line number/file name pairs.\n"
-msgstr " Chuyển đổi địa chỉ sang cặp số thứ tự dòng/tên tập tin.\n"
-
-#: addr2line.c:78
-#, c-format
-msgid " If no addresses are specified on the command line, they will be read from stdin\n"
-msgstr " Nếu chÆ°a ghi rõ địa chỉ trên dòng lệnh, sẽ Ä‘á»c chúng từ thiết bị nhập chuẩn\n"
-
-#: addr2line.c:79
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -b --target=<bfdname> Set the binary file format\n"
-" -e --exe=<executable> Set the input file name (default is a.out)\n"
-" -i --inlines\t\t Unwind inlined functions\n"
-" -s --basenames Strip directory names\n"
-" -f --functions Show function names\n"
-" -C --demangle[=style] Demangle function names\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Tùy chá»n:\n"
-" @<tập_tin>\t\t\tÄ‘á»c các tùy chá»n từ tập tin đó\n"
-" -b --target=<khuôn_dạng> \tLập khuôn dạng tập tin nhị phân (_đích_)\n"
-" -e --exe=<chương_trình> \tLập tên tập tin nhập (mặc định là <a.out>)\n"
-"\t\t\t\t\t\t\t\t(_chương trình chạy được_)\n"
-" -i --inlines\t\t\tTháo ra các hàm trực tiếp\n"
-" -s --basenames\t\tTước các tên thư mục (_các tên cơ bản_)\n"
-" -f --functions \tHiện tên _các chức năng_\n"
-" -C --demangle[=kiểu_dáng] \t_Tháo gỡ_ tên chức năng\n"
-" -h --help \tHiện thông tin _trợ giúp_ này\n"
-" -v --version \tHiện _phiên bản_ của chương trình\n"
-"\n"
-
-#: addr2line.c:93 ar.c:263 coffdump.c:466 nlmconv.c:1113 objcopy.c:486
-#: objcopy.c:520 readelf.c:2622 size.c:102 srconv.c:1732 strings.c:725
-#: sysdump.c:648 windres.c:673
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr "Hãy trình báo lỗi nào cho %s\n"
-
-#: addr2line.c:253
-#, c-format
-msgid "%s: can not get addresses from archive"
-msgstr "%s: không thể lấy địa chỉ từ kho"
-
-#: addr2line.c:325 nm.c:1523 objdump.c:3033
-#, c-format
-msgid "unknown demangling style `%s'"
-msgstr "không biết kiểu dáng tháo gõ « %s »"
-
-#: ar.c:203
-#, c-format
-msgid "no entry %s in archive\n"
-msgstr "không có mục nhập %s trong kho\n"
-
-#: ar.c:219
-#, c-format
-msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"
-msgstr "Cách sá»­ dụng: %s [tùy chá»n mô phá»ng] [-]{dmpqrstx}[abcfilNoPsSuvV] [tên thành viên] [số đếm] tập_tin_kho tập_tin...\n"
-
-#: ar.c:222
-#, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr " %s -M [<tập_lệnh-mri]\n"
-
-#: ar.c:223
-#, c-format
-msgid " commands:\n"
-msgstr " lệnh:\n"
-
-#: ar.c:224
-#, c-format
-msgid " d - delete file(s) from the archive\n"
-msgstr " d • _xóa bá»_ tập tin ra kho\n"
-
-#: ar.c:225
-#, c-format
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr " m[ab] • _di chuyển_ tập tin trong kho\n"
-
-#: ar.c:226
-#, c-format
-msgid " p - print file(s) found in the archive\n"
-msgstr " p • _in_ tập tin được tìm trong kho\n"
-
-#: ar.c:227
-#, c-format
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr " q[f] • phụ thêm _nhanh_ tập tin vào kho\n"
-
-#: ar.c:228
-#, c-format
-msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr " r[ab][f][u] • _thay thế_ tập tin đã có, hoặc chèn tập tin mới vào kho\n"
-
-#: ar.c:229
-#, c-format
-msgid " t - display contents of archive\n"
-msgstr " t • hiển thị nội dung kho\n"
-
-#: ar.c:230
-#, c-format
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr " x[o] • trích tập tin ra kho\n"
-
-#: ar.c:231
-#, c-format
-msgid " command specific modifiers:\n"
-msgstr " bộ sửa đổi đặc trưng cho lệnh:\n"
-
-#: ar.c:232
-#, c-format
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr " [a] • để tập tin _sau_ [tên thành viên]\n"
-
-#: ar.c:233
-#, c-format
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr " [b] • để tập tin _trước_ [tên thành viên] (bằng [i])\n"
-
-#: ar.c:234
-#, c-format
-msgid " [N] - use instance [count] of name\n"
-msgstr " [N] • dùng lần [số đếm] gặp _tên_\n"
-
-#: ar.c:235
-#, c-format
-msgid " [f] - truncate inserted file names\n"
-msgstr " [f] • cắt bớt tên _tập tin_ đã chèn\n"
-
-#: ar.c:236
-#, c-format
-msgid " [P] - use full path names when matching\n"
-msgstr " [P] • dùng tên _Ä‘Æ°á»ng dẫn_ đầy đủ khi khá»›p\n"
-
-#: ar.c:237
-#, c-format
-msgid " [o] - preserve original dates\n"
-msgstr " [o] • bảo tồn các ngày _gốc_\n"
-
-#: ar.c:238
-#, c-format
-msgid " [u] - only replace files that are newer than current archive contents\n"
-msgstr " [u] • thay thế chỉ những tập tin má»›i hÆ¡n ná»™i dung kho hiện thá»i\n"
-
-#: ar.c:239
-#, c-format
-msgid " generic modifiers:\n"
-msgstr " bộ sửa đổi chung:\n"
-
-#: ar.c:240
-#, c-format
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr " [c] • đừng cảnh báo nếu thư viên phải được _tạo_\n"
-
-#: ar.c:241
-#, c-format
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr " [s] • tạo chỉ mục kho (như ranlib)\n"
-
-#: ar.c:242
-#, c-format
-msgid " [S] - do not build a symbol table\n"
-msgstr " [S] • đừng xây dụng bảng _ký hiệu_\n"
-
-#: ar.c:243
-#, c-format
-msgid " [v] - be verbose\n"
-msgstr " [v] • _xuất chi tiết_\n"
-
-#: ar.c:244
-#, c-format
-msgid " [V] - display the version number\n"
-msgstr " [V] • hiển thị số thứ tự _phiên bản_\n"
-
-#: ar.c:245
-#, c-format
-msgid " @<file> - read options from <file>\n"
-msgstr " @<tập_tin>\t\tÄ‘á»c các tùy chá»n từ tập tin đó\n"
-
-#: ar.c:252
-#, c-format
-msgid "Usage: %s [options] archive\n"
-msgstr "Cách sá»­ dụng: %s [tùy_chá»n] kho\n"
-
-#: ar.c:253
-#, c-format
-msgid " Generate an index to speed access to archives\n"
-msgstr " Tạo ra chỉ mục để tăng tốc độ truy cập kho\n"
-
-#: ar.c:254
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-"Tùy chá»n:\n"
-" @<tập_tin>\t\t\tÄ‘á»c các tùy chá»n từ tập tin đó\n"
-" -h, --help \thiển thị _trợ giúp_ này\n"
-" -V, --version \txuất thông tin _phiên bản_\n"
-
-#: ar.c:485
-msgid "two different operation options specified"
-msgstr "hai tùy chá»n thao tác khác đã xác định"
-
-#: ar.c:560
-#, c-format
-msgid "illegal option -- %c"
-msgstr "không cho phép tùy chá»n « -- %c »"
-
-#: ar.c:606
-msgid "no operation specified"
-msgstr "chÆ°a ghi rõ tùy chá»n."
-
-#: ar.c:609
-msgid "`u' is only meaningful with the `r' option."
-msgstr "« u » có nghÄ©a chỉ cùng vá»›i tùy chá»n « r »."
-
-#: ar.c:617
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr "« N » có nghÄ©a chỉ cùng vá»›i tùy chá»n « x » và « d »."
-
-#: ar.c:620
-msgid "Value for `N' must be positive."
-msgstr "Giá trị cho « N » phải là số dương."
-
-#: ar.c:670
-#, c-format
-msgid "internal error -- this option not implemented"
-msgstr "lá»—i ná»™i bá»™: chÆ°a thá»±c hiện tùy chá»n này"
-
-#: ar.c:739
-#, c-format
-msgid "creating %s"
-msgstr "đang tạo %s..."
-
-#: ar.c:788 ar.c:838 ar.c:1156 objcopy.c:1683
-#, c-format
-msgid "internal stat error on %s"
-msgstr "lỗi stat nôi bộ trên %s"
-
-# Variable: do not translate/ biến: đừng dịch
-#: ar.c:792
-#, c-format
-msgid ""
-"\n"
-"<%s>\n"
-"\n"
-msgstr ""
-"\n"
-"<%s>\n"
-"\n"
-
-#: ar.c:808 ar.c:875
-#, c-format
-msgid "%s is not a valid archive"
-msgstr "%s không phải là một kho hợp lệ"
-
-#: ar.c:843
-#, c-format
-msgid "stat returns negative size for %s"
-msgstr "việc stat (lấy các thông tin) trả gởi kích cỡ âm cho %s"
-
-#: ar.c:1061
-#, c-format
-msgid "No member named `%s'\n"
-msgstr "Không có thành viên tên « %s »\n"
-
-#: ar.c:1111
-#, c-format
-msgid "no entry %s in archive %s!"
-msgstr "không có mục nhập %s trong kho %s."
-
-#: ar.c:1248
-#, c-format
-msgid "%s: no archive map to update"
-msgstr "%s: không có ánh xạ kho cần cập nhật"
-
-#: arsup.c:87
-#, c-format
-msgid "No entry %s in archive.\n"
-msgstr "Không có mục nhập %s trong kho.\n"
-
-#: arsup.c:112
-#, c-format
-msgid "Can't open file %s\n"
-msgstr "Không thể mở tập tin %s\n"
-
-#: arsup.c:162
-#, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr "%s: Không thể mở kho xuất %s\n"
-
-#: arsup.c:179
-#, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr "%s: Không thể mở kho nhập %s\n"
-
-#: arsup.c:188
-#, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr "%s: tập tin %s không phải là kho\n"
-
-#: arsup.c:227
-#, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr "%s: chưa ghi rõ kho xuất\n"
-
-#: arsup.c:247 arsup.c:285 arsup.c:327 arsup.c:347 arsup.c:413
-#, c-format
-msgid "%s: no open output archive\n"
-msgstr "%s: không có kho xuất đã mở\n"
-
-#: arsup.c:258 arsup.c:368 arsup.c:394
-#, c-format
-msgid "%s: can't open file %s\n"
-msgstr "%s: không thể mở tập tin %s\n"
-
-#: arsup.c:312 arsup.c:390 arsup.c:471
-#, c-format
-msgid "%s: can't find module file %s\n"
-msgstr "%s: không tìm thấy tập tin mô-đun %s\n"
-
-#: arsup.c:422
-#, c-format
-msgid "Current open archive is %s\n"
-msgstr "Kho đã mở hiện thá»i là %s\n"
-
-#: arsup.c:446
-#, c-format
-msgid "%s: no open archive\n"
-msgstr "%s: không có kho đã mở\n"
-
-#: binemul.c:37
-#, c-format
-msgid " No emulation specific options\n"
-msgstr " Không có tùy chá»n đặc trÆ°ng cho mô phá»ng\n"
-
-#. Macros for common output.
-#: binemul.h:40
-#, c-format
-msgid " emulation options: \n"
-msgstr " tùy chá»n mô phá»ng:\n"
-
-#: bucomm.c:110
-#, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr "không thể lập đích mặc định BFD thành « %s »: %s"
-
-#: bucomm.c:121
-#, c-format
-msgid "%s: Matching formats:"
-msgstr "%s: khuôn dạng khớp:"
-
-#: bucomm.c:136
-#, c-format
-msgid "Supported targets:"
-msgstr "Äích há»— trợ :"
-
-#: bucomm.c:138
-#, c-format
-msgid "%s: supported targets:"
-msgstr "%s: đích hỗ trợ :"
-
-#: bucomm.c:154
-#, c-format
-msgid "Supported architectures:"
-msgstr "Kiến trúc hỗ trợ :"
-
-#: bucomm.c:156
-#, c-format
-msgid "%s: supported architectures:"
-msgstr "%s: kiến trúc hỗ trợ :"
-
-#: bucomm.c:349
-#, c-format
-msgid "BFD header file version %s\n"
-msgstr "Phiên bản tập tin đầu BFD %s\n"
-
-#: bucomm.c:450
-#, c-format
-msgid "%s: bad number: %s"
-msgstr "%s: số sai: %s"
-
-#: bucomm.c:467 strings.c:438
-#, c-format
-msgid "'%s': No such file"
-msgstr "« %s »: không có tập tin như vậy"
-
-#: bucomm.c:469 strings.c:440
-#, c-format
-msgid "Warning: could not locate '%s'. reason: %s"
-msgstr "Cảnh báo : không thể định vị « %s ». Lý do : %s"
-
-#: bucomm.c:473
-#, c-format
-msgid "Warning: '%s' is not an ordinary file"
-msgstr "Cảnh báo : « %s » không phải là một tập tin chuẩn"
-
-#: coffdump.c:103
-#, c-format
-msgid "#lines %d "
-msgstr "#dòng %d "
-
-#: coffdump.c:457 sysdump.c:641
-#, c-format
-msgid "Usage: %s [option(s)] in-file\n"
-msgstr "Cách sá»­ dụng: %s [tùy_chá»n...] tập_tin_nhập\n"
-
-#: coffdump.c:458
-#, c-format
-msgid " Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "In ra lá»i thông dịch cho phép ngÆ°á»i Ä‘á»c của tập tin đối tượng SYSROFF\n"
-
-#: coffdump.c:459
-#, c-format
-msgid ""
-" The options are:\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-"Tùy chá»n:\n"
-" @<tập_tin>\t\tÄ‘á»c các tùy chá»n từ tập tin đó\n"
-" -h, --help hiển thị _trợ giúp_ này\n"
-" -v --version hiển thị _phiên bản_ của chương trình\n"
-
-#: coffdump.c:528 srconv.c:1822 sysdump.c:705
-msgid "no input file specified"
-msgstr "chưa ghi rõ tập tin nhập"
-
-#: debug.c:648
-msgid "debug_add_to_current_namespace: no current file"
-msgstr "debug_add_to_current_namespace: (gỡ lá»—i thêm vào vùng tên hiện có) không có tập tin hiện thá»i"
-
-#: debug.c:727
-msgid "debug_start_source: no debug_set_filename call"
-msgstr "debug_start_source: (gỡ lá»—i bắt đầu nguồn) không có cuá»™c gá»i kiểu « debug_set_filename » (gỡ lá»—i lập tên tập tin)"
-
-#: debug.c:783
-msgid "debug_record_function: no debug_set_filename call"
-msgstr "debug_record_function: (gỡ lá»—i ghi lÆ°u chứa năng) không có cuá»™c gá»i kiểu « debug_set_filename » (gỡ lá»—i lập tên tập tin)"
-
-#: debug.c:835
-msgid "debug_record_parameter: no current function"
-msgstr "debug_record_parameter: (gỡ lá»—i ghi lÆ°u tham số) không có chức năng hiện thá»i"
-
-#: debug.c:867
-msgid "debug_end_function: no current function"
-msgstr "debug_end_function: (gỡ lá»—i kết thúc chức năng) không có chức năng hiện thá»i"
-
-#: debug.c:873
-msgid "debug_end_function: some blocks were not closed"
-msgstr "debug_end_function: (gỡ lỗi kết thúc chức năng) một số khối chưa được đóng"
-
-#: debug.c:901
-msgid "debug_start_block: no current block"
-msgstr "debug_start_block: (gỡ lá»—i bắt đầu khối) không có khối hiện thá»i"
-
-#: debug.c:937
-msgid "debug_end_block: no current block"
-msgstr "debug_end_block: (gỡ lá»—i kết thúc khối) không có khối hiện thá»i"
-
-#: debug.c:944
-msgid "debug_end_block: attempt to close top level block"
-msgstr "debug_end_block: (gỡ lỗi kết thúc khối) cố đóng khối cấp đầu"
-
-#: debug.c:967
-msgid "debug_record_line: no current unit"
-msgstr "debug_record_line: (gỡ lá»—i ghi lÆ°u dòng) không có Ä‘Æ¡n vị hiện thá»i"
-
-#. FIXME
-#: debug.c:1020
-msgid "debug_start_common_block: not implemented"
-msgstr "debug_start_common_block: not implemented"
-
-#. FIXME
-#: debug.c:1031
-msgid "debug_end_common_block: not implemented"
-msgstr "debug_end_common_block: not implemented"
-
-#. FIXME.
-#: debug.c:1115
-msgid "debug_record_label: not implemented"
-msgstr "debug_record_label: not implemented"
-
-#: debug.c:1137
-msgid "debug_record_variable: no current file"
-msgstr "debug_record_variable: (gỡ lá»—i ghi lÆ°u biến) không có tập tin hiện thá»ino current file"
-
-#: debug.c:1665
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr "debug_make_undefined_type: (gỡ lỗi tạo kiểu chưa được định nghĩa) kiểu chưa được hỗ trợ"
-
-#: debug.c:1842
-msgid "debug_name_type: no current file"
-msgstr "debug_name_type: no current file"
-
-#: debug.c:1887
-msgid "debug_tag_type: no current file"
-msgstr "debug_tag_type: (gỡ lá»—i kiểu thẻ) không có tập tin hiện thá»iLÆ°u tập tin hiện"
-
-#: debug.c:1895
-msgid "debug_tag_type: extra tag attempted"
-msgstr "debug_tag_type: (gỡ lỗi kiểu thẻ) đã cố thẻ thêm"
-
-#: debug.c:1932
-#, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr "Cảnh báo : đang thay đổi kích cỡ kiểu từ %d đến %d\n"
-
-#: debug.c:1954
-msgid "debug_find_named_type: no current compilation unit"
-msgstr "debug_find_named_type: (gỡ lá»—i tìm kiểu tên đã cho) không có Ä‘Æ¡n vị biên dịch hiện thá»i"
-
-#: debug.c:2057
-#, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr "debug_get_real_type: (gỡ lỗi lấy kiểu thật) thông tin gỡ lỗi vòng cho %s\n"
-
-#: debug.c:2484
-msgid "debug_write_type: illegal type encountered"
-msgstr "debug_write_type: (gỡ lỗi ghi kiểu) gặp kiểu không được phép"
-
-#: dlltool.c:765 dlltool.c:789 dlltool.c:818
-#, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr "Lỗi nội bộ : không biết kiểu máy: %d"
-
-#: dlltool.c:854
-#, c-format
-msgid "Can't open def file: %s"
-msgstr "Không thể mở tập tin định nghĩa: %s"
-
-#: dlltool.c:859
-#, c-format
-msgid "Processing def file: %s"
-msgstr "Äang xá»­ lý tập tin định nghÄ©a: %s"
-
-#: dlltool.c:863
-msgid "Processed def file"
-msgstr "Äã xá»­ lý tập tin định nghÄ©a"
-
-#: dlltool.c:887
-#, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr "Gặp lỗi cú pháp trong tập tin định nghĩa %s:%d"
-
-#: dlltool.c:922
-#, c-format
-msgid "%s: Path components stripped from image name, '%s'."
-msgstr "%s: các thành phần Ä‘Æ°á»ng dẫn bị tÆ°á»›c ra tên ảnh, « %s »."
-
-#: dlltool.c:931
-#, c-format
-msgid "NAME: %s base: %x"
-msgstr "TÊN: %s cơ bản: %x"
-
-#: dlltool.c:934 dlltool.c:950
-msgid "Can't have LIBRARY and NAME"
-msgstr "Không cho phép dùng cả THƯ VIÊN lẫn TÊN Ä‘á»u"
-
-#: dlltool.c:947
-#, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr "THƯ VIÊN: %s cơ bản: %x"
-
-#: dlltool.c:1183 resrc.c:269
-#, c-format
-msgid "wait: %s"
-msgstr "đợi: %s"
-
-#: dlltool.c:1188 dllwrap.c:413 resrc.c:274
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr "tiến trình con đã nhận tín hiệu nghiệm trá»ng %d"
-
-#: dlltool.c:1194 dllwrap.c:420 resrc.c:281
-#, c-format
-msgid "%s exited with status %d"
-msgstr "%s đã thoát với trạng thái %d"
-
-#: dlltool.c:1225
-#, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr "Äang kéo vào thông tin từ phần %s trong %s..."
-
-#: dlltool.c:1350
-#, c-format
-msgid "Excluding symbol: %s"
-msgstr "Äang loại trừ ký hiệu : %s"
-
-#: dlltool.c:1439 dlltool.c:1450 nm.c:1000 nm.c:1011
-#, c-format
-msgid "%s: no symbols"
-msgstr "%s: không có ký hiệu"
-
-#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1476
-#, c-format
-msgid "Done reading %s"
-msgstr "Äã Ä‘á»c xong %s"
-
-#: dlltool.c:1486
-#, c-format
-msgid "Unable to open object file: %s"
-msgstr "Không thể mở tập tin đối tượng: %s"
-
-#: dlltool.c:1489
-#, c-format
-msgid "Scanning object file %s"
-msgstr "Äang quét tập tin đối tượng %s..."
-
-#: dlltool.c:1504
-#, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr "Không thể cung cấp « mcore-elf dll » từ tập tin kho: %s"
-
-#: dlltool.c:1590
-msgid "Adding exports to output file"
-msgstr "Äang thêm các việc xuất vào nhóm kết xuất..."
-
-#: dlltool.c:1638
-msgid "Added exports to output file"
-msgstr "Äã thêm các việc xuất vào nhóm kết xuất"
-
-#: dlltool.c:1759
-#, c-format
-msgid "Generating export file: %s"
-msgstr "Äang tạo ra tập tin xuất: %s"
-
-#: dlltool.c:1764
-#, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr "Không thể mở tập tin dịch mã số tạm thá»i: %s"
-
-#: dlltool.c:1767
-#, c-format
-msgid "Opened temporary file: %s"
-msgstr "Äã mở tập tin tạm thá»i: %s"
-
-#: dlltool.c:1989
-msgid "Generated exports file"
-msgstr "Äã tạo ra tập tin xuất"
-
-#: dlltool.c:2195
-#, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr "bfd_open không mở được tập tin stub: %s"
-
-#: dlltool.c:2198
-#, c-format
-msgid "Creating stub file: %s"
-msgstr "Äang tạo tập tin stub: %s"
-
-#: dlltool.c:2580
-#, c-format
-msgid "failed to open temporary head file: %s"
-msgstr "lỗi mở tập tin đầu tạm: %s"
-
-#: dlltool.c:2639
-#, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr "lỗi mở tập tin đuôi tạm: %s"
-
-#: dlltool.c:2706
-#, c-format
-msgid "Can't open .lib file: %s"
-msgstr "Không thể mở tập tin « .lib » (thư viên): %s"
-
-#: dlltool.c:2709
-#, c-format
-msgid "Creating library file: %s"
-msgstr "Äang tạo tập tin thÆ° viên: %s"
-
-#: dlltool.c:2792 dlltool.c:2798
-#, c-format
-msgid "cannot delete %s: %s"
-msgstr "không thể xóa bỠ%s: %s"
-
-#: dlltool.c:2803
-msgid "Created lib file"
-msgstr "Äã tạo tập tin thÆ° viên"
-
-#: dlltool.c:2882
-#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr "Cảnh báo, đang bỠqua XUẤT trùng %s %d,%d"
-
-#: dlltool.c:2888
-#, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr "Lá»—i: XUẤT trùng vá»›i Ä‘iá»u thứ tá»± : %s"
-
-#: dlltool.c:2993
-msgid "Processing definitions"
-msgstr "Äang xá»­ lý các lá»i định nghÄ©a..."
-
-#: dlltool.c:3025
-msgid "Processed definitions"
-msgstr "Äã xá»­ lý các lá»i định nghÄ©a"
-
-#. xgetext:c-format
-#: dlltool.c:3032 dllwrap.c:474
-#, c-format
-msgid "Usage %s <option(s)> <object-file(s)>\n"
-msgstr "Cách sá»­ dụng %s <tùy_chá»n...> <tập_tin_đối_tượng...>\n"
-
-#. xgetext:c-format
-#: dlltool.c:3034
-#, c-format
-msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr " -m --machine <máy> Tạo dạng DLL cho <máy>. [mặc định: %s]\n"
-
-#: dlltool.c:3035
-#, c-format
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-msgstr " <máy> có thể: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-
-#: dlltool.c:3036
-#, c-format
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr " -e --output-exp <tên_tập_tin> \tTạo ra tập tin _xuất_.\n"
-
-#: dlltool.c:3037
-#, c-format
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr " -l --output-lib <tên_tập_tin> \tTạo _ra thư viên_ giao diện.\n"
-
-#: dlltool.c:3038
-#, c-format
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr " -a --add-indirect _Thêm lá»i gián tiếp_dạng dll vào tập tin xuất\n"
-
-#: dlltool.c:3039
-#, c-format
-msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr " -D --dllname <tên> _Tên dll_ nhập cần để vào thư viên giao diện.\n"
-
-#: dlltool.c:3040
-#, c-format
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr " -d --input-def <tên_tập_tin> \tTên tập tin _định nghÄ©a_ cần Ä‘á»c _vào_.\n"
-
-#: dlltool.c:3041
-#, c-format
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr " -z --output-def <tên_tập_tin> Tên tập tin _định nghĩa_ cần tạo (_ra_).\n"
-
-#: dlltool.c:3042
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols Tá»± Ä‘á»™ng _xuất má»i ký hiệu_ vào tập tin định nghÄ©a\n"
-
-#: dlltool.c:3043
-#, c-format
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr ""
-" --no-export-all-symbols \tXuất chỉ những ký hiệu đã liệt kê\n"
-"\t\t\t\t\t\t\t\t(_không xuất má»i ký hiệu_)\n"
-
-#: dlltool.c:3044
-#, c-format
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr ""
-" --exclude-symbols <danh_sách> Äừng xuất danh sách này\n"
-"\t\t\t\t\t\t\t\t(_loại trừ ký hiệu_)\n"
-
-#: dlltool.c:3045
-#, c-format
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr ""
-" --no-default-excludes Xóa các ký hiệu cần loại trừ theo mặc định\n"
-"\t\t\t\t\t\t\t\t(không loại trừ mặc định)\n"
-
-#: dlltool.c:3046
-#, c-format
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr " -b --base-file <tên_tập_tin> Äá»c _tập tin cÆ¡ bản_ do bá»™ liên kết tạo ra.\n"
-
-#: dlltool.c:3047
-#, c-format
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr " -x --no-idata4 Äừng tạo ra phần « idata$4 ».\n"
-
-#: dlltool.c:3048
-#, c-format
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr " -c --no-idata5 Äừng tạo ra phần « idata$5 ».\n"
-
-#: dlltool.c:3049
-#, c-format
-msgid " -U --add-underscore Add underscores to symbols in interface library.\n"
-msgstr ""
-" -U --add-underscore \t_Thêm dấu gạch dưới_ vào\n"
-"\t\t\t\t\t\tcác ký hiệu trong thư viên giao diện.\n"
-
-#: dlltool.c:3050
-#, c-format
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr ""
-" -k --kill-at Xóa bỠ« @<n> » ra các tên đã xuất.\n"
-"\t\t\t\t\t\t(_buộc kết thúc tại_)\n"
-
-#: dlltool.c:3051
-#, c-format
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr ""
-" -A --add-stdcall-alias \tThêm biệt hiệu không có « @<n> ».\n"
-"\t\t\t\t\t\t(_thêm biệt hiệu gá»i chuẩn_)\n"
-
-#: dlltool.c:3052
-#, c-format
-msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
-msgstr ""
-" -p --ext-prefix-alias <tiá»n_tố> \tThêm các biệt hiệu có tiá»n tố này.\n"
-"\t\t\t\t\t\t(_biệt hiệu tiá»n tố thêm_)\n"
-
-#: dlltool.c:3053
-#, c-format
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr " -S --as <tên> \tDùng tên này cho chương trình dịch mã số.\n"
-
-#: dlltool.c:3054
-#, c-format
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr ""
-" -f --as-flags <các_cá»> Gởi các cá» này qua cho chÆ°Æ¡ng trình dịch mã số.\n"
-"\t\t\t\t\t\t\t(_dạng cá»_)\n"
-
-#: dlltool.c:3055
-#, c-format
-msgid " -C --compat-implib Create backward compatible import library.\n"
-msgstr " -C --compat-implib \tTạo _thư viên nhập tương thích_ ngược.\n"
-
-#: dlltool.c:3056
-#, c-format
-msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
-msgstr ""
-" -n --no-delete \t\tGiữ lại các tập tin tạm thá»i (lặp lại để bảo tồn thêm)\n"
-"\t\t\t\t\t\t(_không xóa bá»_)\n"
-
-#: dlltool.c:3057
-#, c-format
-msgid " -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
-msgstr " -t --temp-prefix <tiá»n_tố>\tDùng _tiá»n tố_ này để tạo tên tập tin _tạm_.\n"
-
-#: dlltool.c:3058
-#, c-format
-msgid " -v --verbose Be verbose.\n"
-msgstr " -v --verbose Xuất _chi tiết_.\n"
-
-#: dlltool.c:3059
-#, c-format
-msgid " -V --version Display the program version.\n"
-msgstr " -V --version \tHiển thị phiên bản chương trình.\n"
-
-#: dlltool.c:3060
-#, c-format
-msgid " -h --help Display this information.\n"
-msgstr " -h --help \tHiển thị _trợ giúp_ này.\n"
-
-#: dlltool.c:3061
-#, c-format
-msgid " @<file> Read options from <file>.\n"
-msgstr " @<tập_tin>\t\tÄ‘á»c các tùy chá»n từ tập tin đó\n"
-
-#: dlltool.c:3063
-#, c-format
-msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr ""
-" -M --mcore-elf <tên_tập_tin>\n"
-"\t\tXử lý các tập tin đối tượng kiểu « mcore-elf » vào tập tin tên này.\n"
-
-#: dlltool.c:3064
-#, c-format
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr " -L --linker <tên> \t\tDùng tên này là _bộ liên kết_.\n"
-
-#: dlltool.c:3065
-#, c-format
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr " -F --linker-flags <các_cá»> \tGởi _các cá»_ này qua cho _bá»™ liên kết_.\n"
-
-#: dlltool.c:3181
-#, c-format
-msgid "Path components stripped from dllname, '%s'."
-msgstr "Các thành phần Ä‘Æ°á»ng dẫn bị tÆ°á»›c ra tên dll, « %s »."
-
-#: dlltool.c:3226
-#, c-format
-msgid "Unable to open base-file: %s"
-msgstr "Không thể mở tập tin cơ sở: %s"
-
-#: dlltool.c:3258
-#, c-format
-msgid "Machine '%s' not supported"
-msgstr "Không hỗ trợ máy « %s »"
-
-#: dlltool.c:3362 dllwrap.c:204
-#, c-format
-msgid "Tried file: %s"
-msgstr "Äã thá»­ tập tin: %s"
-
-#: dlltool.c:3369 dllwrap.c:211
-#, c-format
-msgid "Using file: %s"
-msgstr "Äang dùng tập tin: %s"
-
-#: dllwrap.c:294
-#, c-format
-msgid "Keeping temporary base file %s"
-msgstr "Äang giữ tập tin cÆ¡ bản tạm thá»i %s"
-
-#: dllwrap.c:296
-#, c-format
-msgid "Deleting temporary base file %s"
-msgstr "Äang xóa bá» tập tin cÆ¡ bản tạm thá»i %s..."
-
-#: dllwrap.c:310
-#, c-format
-msgid "Keeping temporary exp file %s"
-msgstr "Äang giữ tập tin xuất tạm thá»i %s"
-
-#: dllwrap.c:312
-#, c-format
-msgid "Deleting temporary exp file %s"
-msgstr "Äang xóa bá» tập tin xuất tạm thá»i %s..."
-
-#: dllwrap.c:325
-#, c-format
-msgid "Keeping temporary def file %s"
-msgstr "Äang giữ tập tin định nghÄ©a tạm thá»i %s"
-
-#: dllwrap.c:327
-#, c-format
-msgid "Deleting temporary def file %s"
-msgstr "Äang xóa bá» tập tin định nghÄ©a tạm thá»i %s..."
-
-#: dllwrap.c:475
-#, c-format
-msgid " Generic options:\n"
-msgstr " Tùy chá»n chung:\n"
-
-#: dllwrap.c:476
-#, c-format
-msgid " @<file> Read options from <file>\n"
-msgstr " @<tập_tin>\t\tÄ‘á»c các tùy chá»n từ tập tin đó\n"
-
-#: dllwrap.c:477
-#, c-format
-msgid " --quiet, -q Work quietly\n"
-msgstr " --quiet, -q Không xuất chi tiết (_im_)\n"
-
-#: dllwrap.c:478
-#, c-format
-msgid " --verbose, -v Verbose\n"
-msgstr " --verbose, -v Xuất _chi tiết_\n"
-
-#: dllwrap.c:479
-#, c-format
-msgid " --version Print dllwrap version\n"
-msgstr " --version In ra phiên bản dllwrap\n"
-
-#: dllwrap.c:480
-#, c-format
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr " --implib <tên_tập_tin> Bằng « --output-lib »\n"
-
-#: dllwrap.c:481
-#, c-format
-msgid " Options for %s:\n"
-msgstr " Tùy chá»n cho %s:\n"
-
-#: dllwrap.c:482
-#, c-format
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr ""
-" --driver-name <trình_Ä‘iá»u_khiển> \t Mặc định là « gcc »\n"
-"\t\t\t\t\t\t\t\t(_tên trình Ä‘iá»u khiển_)\n"
-
-#: dllwrap.c:483
-#, c-format
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr ""
-" --driver-flags <các_cá»> \t\tCó quyá»n cao hÆ¡n các cá» ld mặc định\n"
-"\t\t\t\t\t\t\t\t(_các cá» trình Ä‘iá»u khiển_)\n"
-
-#: dllwrap.c:484
-#, c-format
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr ""
-" --dlltool-name <dlltool> \t\tMặc định là « dlltool »\n"
-"\t\t\t\t\t\t\t\t(_tên công cụ dlltool_)\n"
-
-#: dllwrap.c:485
-#, c-format
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr " --entry <điểm_vào> \t\tGhi rõ điểm _vào_ DLL xen kẽ\n"
-
-#: dllwrap.c:486
-#, c-format
-msgid " --image-base <base> Specify image base address\n"
-msgstr " --image-base <cơ_bản> \tGhi rõ địa chỉ _cơ bản ảnh_\n"
-
-#: dllwrap.c:487
-#, c-format
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr " --target <máy> i386-cygwin32 hay i386-mingw32\n"
-
-#: dllwrap.c:488
-#, c-format
-msgid " --dry-run Show what needs to be run\n"
-msgstr " --dry-run \tHiển thị các Ä‘iá»u cần chạy (_chạy thá»±c hành_)\n"
-
-#: dllwrap.c:489
-#, c-format
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr " --mno-cygwin \tTạo DLL dạng Mingw\n"
-
-#: dllwrap.c:490
-#, c-format
-msgid " Options passed to DLLTOOL:\n"
-msgstr " Các tùy chá»n được gởi qua cho DLLTOOL:\n"
-
-#: dllwrap.c:491
-#, c-format
-msgid " --machine <machine>\n"
-msgstr " --machine <máy>\n"
-
-#: dllwrap.c:492
-#, c-format
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr " --output-exp <tên_tập_tin> \t\tTạo ra tập tin _xuất_.\n"
-
-#: dllwrap.c:493
-#, c-format
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr " --output-lib <tên_tập_tin> \t\tTạo _ra thư viên_ nhập.\n"
-
-#: dllwrap.c:494
-#, c-format
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr " --add-indirect \t\t_Thêm_ các lá»i _gián tiếp_ vào tập tin xuất.\n"
-
-#: dllwrap.c:495
-#, c-format
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr " --dllname <tên> \t\t_Tên dll_ nhập cần để vào thư viên xuất.\n"
-
-#: dllwrap.c:496
-#, c-format
-msgid " --def <deffile> Name input .def file\n"
-msgstr " --def <tên_tập_tin> \tTên tập tin _định nghĩa_ nhập\n"
-
-#: dllwrap.c:497
-#, c-format
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr " --output-def <tên_tập_tin>\tTên _tập tin định nghĩa xuất_\n"
-
-#: dllwrap.c:498
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols _Xuất má»i ký hiệu_ vào tập tin định nghÄ©a\n"
-
-#: dllwrap.c:499
-#, c-format
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr ""
-" --no-export-all-symbols \tXuất chỉ ký hiệu kiểu « .drectve ».\n"
-"\t\t\t\t\t\t\t\t(_không xuất má»i ký hiệu_)\n"
-
-#: dllwrap.c:500
-#, c-format
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr ""
-" --exclude-symbols <danh sách>\n"
-"\t\t\t\t\tLoại trừ danh sách này ra tập tin định nghĩa.\n"
-"\t\t\t\t\t\t\t\t(_loại trừ các ký hiệu_)\n"
-
-#: dllwrap.c:501
-#, c-format
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr ""
-" --no-default-excludes \t\tSá»­a má»i ký hiệu loại trừ mặc định.\n"
-"\t\t\t\t\t\t\t\t(_không loại trừ mặc định_)\n"
-
-#: dllwrap.c:502
-#, c-format
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr " --base-file <tên_tập_tin> Äá»c _tập tin cÆ¡ bản_ do bá»™ liên kết tạo ra.\n"
-
-#: dllwrap.c:503
-#, c-format
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr " --no-idata4 Äừng tạo ra phần « idata$4 ».\n"
-
-#: dllwrap.c:504
-#, c-format
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr " --no-idata5 Äừng tạo ra phần « idata$5 ».\n"
-
-#: dllwrap.c:505
-#, c-format
-msgid " -U Add underscores to .lib\n"
-msgstr " -U Thêm dấu gạch _dưới_ vào thư viên\n"
-
-#: dllwrap.c:506
-#, c-format
-msgid " -k Kill @<n> from exported names\n"
-msgstr ""
-" -k Xóa bỠ« @<n> » ra các tên đã xuất\n"
-"\t\t\t\t\t(_buộc kết thúc_)\n"
-
-#: dllwrap.c:507
-#, c-format
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr ""
-" --add-stdcall-alias \tThêm biệt hiệu không có « @<n> ».\n"
-"\t\t\t\t\t\t\t(_thêm biệt hiệu gá»i chuẩn_)\n"
-
-#: dllwrap.c:508
-#, c-format
-msgid " --as <name> Use <name> for assembler\n"
-msgstr " --as <tên> Dùng tên này cho chương trình dịch mã số (_dạng_)\n"
-
-#: dllwrap.c:509
-#, c-format
-msgid " --nodelete Keep temp files.\n"
-msgstr " --nodelete Giữ các tập tin tạm (_không xóa bá»_)\n"
-
-#: dllwrap.c:510
-#, c-format
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr " Các Ä‘iá»u còn lại được gởi dạng chÆ°a được sá»­a đổi qua cho trình Ä‘iá»u khiển ngôn ngữ\n"
-
-#: dllwrap.c:782
-msgid "Must provide at least one of -o or --dllname options"
-msgstr "Phải cung cấp ít nhất má»™t của hai tùy chá»n « -o » hay « -dllname »"
-
-#: dllwrap.c:811
-msgid ""
-"no export definition file provided.\n"
-"Creating one, but that may not be what you want"
-msgstr ""
-"chưa cung cấp tập tin định nghĩa xuất.\n"
-"Äang tạo má»™t Ä‘iá»u, mà có lẽ không phải là Ä‘iá»u bạn muốn"
-
-#: dllwrap.c:970
-#, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr "Tên công cụ DLLTOOL : %s\n"
-
-#: dllwrap.c:971
-#, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr "Tùy chá»n DLLTOOL: %s\n"
-
-#: dllwrap.c:972
-#, c-format
-msgid "DRIVER name : %s\n"
-msgstr "Tên TRÃŒNH ÄIỀU KHIỀN : %s\n"
-
-#: dllwrap.c:973
-#, c-format
-msgid "DRIVER options : %s\n"
-msgstr "Tùy chá»n TRÃŒNH ÄIỀU KHIỂN : %s\n"
-
-#: dwarf.c:93 dwarf.c:137 readelf.c:322 readelf.c:515
-#, c-format
-msgid "Unhandled data length: %d\n"
-msgstr "Äá»™ dài dữ liệu không được quản lý: %d\n"
-
-#: dwarf.c:237
-msgid "badly formed extended line op encountered!\n"
-msgstr "gặp thao tác dòng đã mở rộng dạng sai.\n"
-
-#: dwarf.c:244
-#, c-format
-msgid " Extended opcode %d: "
-msgstr " Opcode (mã thao tác) đã mở rộng %d: "
-
-#: dwarf.c:249
-#, c-format
-msgid ""
-"End of Sequence\n"
-"\n"
-msgstr ""
-"Kết thúc dãy\n"
-"\n"
-
-#: dwarf.c:255
-#, c-format
-msgid "set Address to 0x%lx\n"
-msgstr "đặt Äịa chỉ là 0x%lx\n"
-
-#: dwarf.c:260
-#, c-format
-msgid " define new File Table entry\n"
-msgstr " định nghĩa mục nhập Bảng Tập tin mới\n"
-
-#: dwarf.c:261 dwarf.c:1944
-#, c-format
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr " Mục\tTMục\tGiá»\tCỡ\tTên\n"
-
-# Variable: don't translate / Biến: đừng dịch
-#: dwarf.c:263
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-# Variable: don't translate / Biến: đừng dịch
-#: dwarf.c:266 dwarf.c:268 dwarf.c:270 dwarf.c:1956 dwarf.c:1958 dwarf.c:1960
-#, c-format
-msgid "%lu\t"
-msgstr "%lu\t"
-
-# Variable: do not translate/ biến: đừng dịch
-#: dwarf.c:271
-#, c-format
-msgid ""
-"%s\n"
-"\n"
-msgstr ""
-"%s\n"
-"\n"
-
-#: dwarf.c:275
-#, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr "KHÔNG RÕ: độ dài %d\n"
-
-#: dwarf.c:288
-msgid "<no .debug_str section>"
-msgstr "<no .debug_str section>"
-
-#: dwarf.c:294
-#, c-format
-msgid "DW_FORM_strp offset too big: %lx\n"
-msgstr "DW_FORM_strp hiệu số quá lớn: %lx\n"
-
-#: dwarf.c:295
-msgid "<offset is too big>"
-msgstr "<offset is too big>"
-
-#: dwarf.c:528
-#, c-format
-msgid "Unknown TAG value: %lx"
-msgstr "Giá trị TAG (thẻ) không rõ : %lx"
-
-#: dwarf.c:564
-#, c-format
-msgid "Unknown FORM value: %lx"
-msgstr "Giá trị FORM (dạng) không rõ : %lx"
-
-#: dwarf.c:573
-#, c-format
-msgid " %lu byte block: "
-msgstr " Khối %lu byte: "
-
-#: dwarf.c:907
-#, c-format
-msgid "(User defined location op)"
-msgstr "(Thao tác định vị do ngÆ°á»i dùng định nghÄ©a)"
-
-#: dwarf.c:909
-#, c-format
-msgid "(Unknown location op)"
-msgstr "(Thao tác định vị không rõ)"
-
-#: dwarf.c:955
-msgid "Internal error: DWARF version is not 2 or 3.\n"
-msgstr "Lỗi nội bộ: phiên bản DWARF không phải là 2 hay 3.\n"
-
-#: dwarf.c:1053
-msgid "DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n"
-msgstr "Không hỗ trợ « DW_FORM_data8 » khi « sizeof (unsigned long) != 8 » [kích cỡ của (dài không ký)]\n"
-
-#: dwarf.c:1102
-#, c-format
-msgid " (indirect string, offset: 0x%lx): %s"
-msgstr " (chuỗi gián tiếp, hiệu số: 0x%lx): %s"
-
-#: dwarf.c:1111
-#, c-format
-msgid "Unrecognized form: %lu\n"
-msgstr "Không nhận diện dạng: %lu\n"
-
-#: dwarf.c:1196
-#, c-format
-msgid "(not inlined)"
-msgstr "(không đặt trực tiếp)"
-
-#: dwarf.c:1199
-#, c-format
-msgid "(inlined)"
-msgstr "(đặt trực tiếp)"
-
-#: dwarf.c:1202
-#, c-format
-msgid "(declared as inline but ignored)"
-msgstr "(khai báo là trực tiếp mà bị bỠqua)"
-
-#: dwarf.c:1205
-#, c-format
-msgid "(declared as inline and inlined)"
-msgstr "(khai báo là trực tiếp và đặt trực tiếp)"
-
-#: dwarf.c:1208
-#, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr " (Không biết giá trị thuộc tính trực tiếp: %lx)"
-
-#: dwarf.c:1354 dwarf.c:2484
-#, c-format
-msgid " [without DW_AT_frame_base]"
-msgstr " [không có DW_AT_frame_base (cơ bản khung)]"
-
-#: dwarf.c:1357
-#, c-format
-msgid "(location list)"
-msgstr "(danh sách địa điểm)"
-
-#: dwarf.c:1475
-#, c-format
-msgid "Unknown AT value: %lx"
-msgstr "Không biết giá trị AT: %lx"
-
-#: dwarf.c:1544
-#, c-format
-msgid "No comp units in %s section ?"
-msgstr "Không có đơn vị biên dịch trong phần %s ?"
-
-#: dwarf.c:1553
-#, c-format
-msgid "Not enough memory for a debug info array of %u entries"
-msgstr "Không đủ bộ nhớ cho mảng thông tin gỡ lỗi có mục nhập %u"
-
-#: dwarf.c:1561 dwarf.c:2573
-#, c-format
-msgid ""
-"The section %s contains:\n"
-"\n"
-msgstr ""
-"Phần %s chứa:\n"
-"\n"
-
-#: dwarf.c:1569
-#, c-format
-msgid "Unable to locate %s section!\n"
-msgstr "Không thể định vị phần %s !\n"
-
-#: dwarf.c:1635
-#, c-format
-msgid " Compilation Unit @ offset 0x%lx:\n"
-msgstr " ÄÆ¡n vị biên dịch @ hiệu số 0x%lx:\n"
-
-#: dwarf.c:1636
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Dài: %ld\n"
-
-#: dwarf.c:1637
-#, c-format
-msgid " Version: %d\n"
-msgstr " Phiên bản: %d\n"
-
-#: dwarf.c:1638
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr " Hiệu số tắt: %ld\n"
-
-#: dwarf.c:1639
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " Cỡ con trỠ: %d\n"
-
-#: dwarf.c:1644
-msgid "Only version 2 and 3 DWARF debug information is currently supported.\n"
-msgstr "Hỗ trợ chỉ thông tin gỡ lỗi phiên bản DWARF 2 và 3 thôi.\n"
-
-#: dwarf.c:1685
-#, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr "Không thể định vị mục nhâp %lu trong bảng viết tắt\n"
-
-#: dwarf.c:1691
-#, c-format
-msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
-msgstr " <%d><%lx>: Số viết tắt: %lu (%s)\n"
-
-#: dwarf.c:1785
-#, c-format
-msgid "%s section needs a populated .debug_info section\n"
-msgstr "Phần %s cần phần « .debug_info » (thông tin gỡ lỗi) có dữ liệu\n"
-
-#: dwarf.c:1792
-#, c-format
-msgid "%s section has more comp units than .debug_info section\n"
-msgstr "Phần %s có nhiá»u Ä‘Æ¡n vị biên dịch hÆ¡n phần « .debug_info » (thông tin gỡ lá»—i)\n"
-
-#: dwarf.c:1794
-#, c-format
-msgid ""
-"assuming that the pointer size is %d, from the last comp unit in .debug_info\n"
-"\n"
-msgstr ""
-"giả sử kích cỡ con trỠlà %d, từ đơn vị biên dịch cuối cùng trong « .debug_info » (thông tin gỡ lỗi)\n"
-"\n"
-
-#: dwarf.c:1819
-#, c-format
-msgid ""
-"\n"
-"Dump of debug contents of section %s:\n"
-"\n"
-msgstr ""
-"\n"
-"Việc đổ nội dung gỡ lỗi của phần %s:\n"
-
-#: dwarf.c:1858
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr "Hình nhÆ° dòng bị há»ng — phần quá nhá»\n"
-
-#: dwarf.c:1867
-msgid "Only DWARF version 2 and 3 line info is currently supported.\n"
-msgstr "Há»— trợ hiện thá»i chỉ thông tin dòng DWARF phiên bản 2 và 3.\n"
-
-#: dwarf.c:1894
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Dài: %ld\n"
-
-#: dwarf.c:1895
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr " Phiên bản DWARF: %d\n"
-
-#: dwarf.c:1896
-#, c-format
-msgid " Prologue Length: %d\n"
-msgstr " Dài đoạn mở đầu : %d\n"
-
-#: dwarf.c:1897
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr " Dài câu lệnh tối thiểu : %d\n"
-
-#: dwarf.c:1898
-#, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr " Giá trị đầu của « is_stmt »: %d\n"
-
-#: dwarf.c:1899
-#, c-format
-msgid " Line Base: %d\n"
-msgstr " Cơ bản dòng: %d\n"
-
-#: dwarf.c:1900
-#, c-format
-msgid " Line Range: %d\n"
-msgstr " Phạm vị dòng: %d\n"
-
-#: dwarf.c:1901
-#, c-format
-msgid " Opcode Base: %d\n"
-msgstr " Cơ bản mã thao tác: %d\n"
-
-#: dwarf.c:1902
-#, c-format
-msgid " (Pointer size: %u)%s\n"
-msgstr " (Cỡ con trỠ:\t\t\t%u)%s\n"
-
-#: dwarf.c:1913
-#, c-format
-msgid ""
-"\n"
-" Opcodes:\n"
-msgstr ""
-"\n"
-" Mã thao tác:\n"
-
-#: dwarf.c:1916
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr " Mã thao tác %d có %d đối số\n"
-
-#: dwarf.c:1922
-#, c-format
-msgid ""
-"\n"
-" The Directory Table is empty.\n"
-msgstr ""
-"\n"
-" Bảng Thư mục rỗng\n"
-
-#: dwarf.c:1925
-#, c-format
-msgid ""
-"\n"
-" The Directory Table:\n"
-msgstr ""
-"\n"
-" Bảng Thư mục:\n"
-
-# Variable: don't translate / Biến: đừng dịch
-#: dwarf.c:1929
-#, c-format
-msgid " %s\n"
-msgstr " %s\n"
-
-#: dwarf.c:1940
-#, c-format
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr ""
-"\n"
-" Bảng Tên Tập tin rỗng:\n"
-
-#: dwarf.c:1943
-#, c-format
-msgid ""
-"\n"
-" The File Name Table:\n"
-msgstr ""
-"\n"
-" Bảng Tên Tập tin:\n"
-
-# Variable: don't translate / Biến: đừng dịch
-#: dwarf.c:1951
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-# Variable: do not translate/ biến: đừng dịch
-#: dwarf.c:1962
-#, c-format
-msgid "%s\n"
-msgstr "%s\n"
-
-#. Now display the statements.
-#: dwarf.c:1970
-#, c-format
-msgid ""
-"\n"
-" Line Number Statements:\n"
-msgstr ""
-"\n"
-" Câu Số thứ tự Dòng:\n"
-
-#: dwarf.c:1986
-#, c-format
-msgid " Special opcode %d: advance Address by %lu to 0x%lx"
-msgstr " Mã thao tác đặc biệt %d: nâng cao Äịa chỉ bÆ°á»›c %lu tá»›i 0x%lx"
-
-#: dwarf.c:1990
-#, c-format
-msgid " and Line by %d to %d\n"
-msgstr " và Dòng bước %d tới %d\n"
-
-#: dwarf.c:1998
-msgid "Extend line ops need a valid pointer size, guessing at 4\n"
-msgstr "Thao tác kéo dài Ä‘Æ°á»ng cần thiết kích cỡ con trá» hợp lệ, Ä‘ang Ä‘oán nó là 4\n"
-
-#: dwarf.c:2007
-#, c-format
-msgid " Copy\n"
-msgstr " Chép\n"
-
-#: dwarf.c:2015
-#, c-format
-msgid " Advance PC by %lu to 0x%lx\n"
-msgstr " Nâng cao PC bước %lu tới %lx\n"
-
-#: dwarf.c:2023
-#, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr " Nâng cao dòng bước %d tới %d\n"
-
-#: dwarf.c:2030
-#, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr " Lập Tên Tập tin là mục nhập %d trong Bảng Tên Tập tin\n"
-
-#: dwarf.c:2038
-#, c-format
-msgid " Set column to %lu\n"
-msgstr " Lập cột thành %lu\n"
-
-#: dwarf.c:2045
-#, c-format
-msgid " Set is_stmt to %d\n"
-msgstr " Lập « is_stmt » (là câu) là %d\n"
-
-#: dwarf.c:2050
-#, c-format
-msgid " Set basic block\n"
-msgstr " Lập khối cơ bản\n"
-
-#: dwarf.c:2058
-#, c-format
-msgid " Advance PC by constant %lu to 0x%lx\n"
-msgstr " Nâng cao PC bước hằng số %lu tới 0x%lx\n"
-
-#: dwarf.c:2066
-#, c-format
-msgid " Advance PC by fixed size amount %lu to 0x%lx\n"
-msgstr " Nâng cao PC bước kích cỡ cố định %lu tới 0x%lx\n"
-
-#: dwarf.c:2071
-#, c-format
-msgid " Set prologue_end to true\n"
-msgstr " Lập « prologue_end » (kết thúc đoạn mở đầu) là true (đúng)\n"
-
-#: dwarf.c:2075
-#, c-format
-msgid " Set epilogue_begin to true\n"
-msgstr " Lập « epilogue_begin » (đầu phần kết) là true (đúng)\n"
-
-#: dwarf.c:2081
-#, c-format
-msgid " Set ISA to %lu\n"
-msgstr " Lập ISA thành %lu\n"
-
-#: dwarf.c:2085
-#, c-format
-msgid " Unknown opcode %d with operands: "
-msgstr " Gặp opcode (mã thao tác) không rõ %d với tác tử : "
-
-#: dwarf.c:2111 dwarf.c:2197 dwarf.c:2271 dwarf.c:2382 dwarf.c:2514
-#: dwarf.c:2739
-#, c-format
-msgid ""
-"Contents of the %s section:\n"
-"\n"
-msgstr ""
-"Nội dung của phần %s:\n"
-"\n"
-
-#: dwarf.c:2151
-msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
-msgstr "Há»— trợ hiện thá»i chỉ pubnames (tên công) DWARF phiên bản 2 và 3 thôi\n"
-
-#: dwarf.c:2158
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Length: %ld\n"
-
-#: dwarf.c:2160
-#, c-format
-msgid " Version: %d\n"
-msgstr " Version: %d\n"
-
-#: dwarf.c:2162
-#, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr " Hiệu số vào phầnO« ffset into .» (thông tin gỡ lỗi)nfo section: %ld\n"
-
-#: dwarf.c:2164
-#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr " Kích cỡ của vùng trong phần « .debug_info » (thông tin gỡ lỗi): %ld\n"
-
-#: dwarf.c:2167
-#, c-format
-msgid ""
-"\n"
-" Offset\tName\n"
-msgstr ""
-"\n"
-" Hiệu\tTên\n"
-
-#: dwarf.c:2218
-#, c-format
-msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr " DW_MACINFO_start_file (bắt đầu tập tin) — số_dòng: %d số_tập_tin: %d\n"
-
-#: dwarf.c:2224
-#, c-format
-msgid " DW_MACINFO_end_file\n"
-msgstr " DW_MACINFO_end_file (kết thúc tập tin)\n"
-
-#: dwarf.c:2232
-#, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_define (định nghĩa) — số_dòng : %d bộ_lệnh : %s\n"
-
-#: dwarf.c:2241
-#, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_undef (chưa định nghĩa) — số_dòng : %d bộ_lệnh : %s\n"
-
-#: dwarf.c:2253
-#, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr " DW_MACINFO_vendor_ext (phần mở rộng nhà bán) — hằng số : %d chuối : %s\n"
-
-#: dwarf.c:2282
-#, c-format
-msgid " Number TAG\n"
-msgstr " Số THẺ\n"
-
-# Variable: don't translate / Biến: đừng dịch
-#: dwarf.c:2288
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr " %ld %s [%s]\n"
-
-#: dwarf.c:2291
-msgid "has children"
-msgstr "có Ä‘iá»u con"
-
-#: dwarf.c:2291
-msgid "no children"
-msgstr "không có con"
-
-# Variable: don't translate / Biến: đừng dịch
-#: dwarf.c:2294
-#, c-format
-msgid " %-18s %s\n"
-msgstr " %-18s %s\n"
-
-#: dwarf.c:2327 dwarf.c:2510 dwarf.c:2684
-#, c-format
-msgid ""
-"\n"
-"The %s section is empty.\n"
-msgstr ""
-"\n"
-"Phần %s là rỗng.\n"
-
-#. FIXME: Should we handle this case?
-#: dwarf.c:2372
-msgid "Location lists in .debug_info section aren't in ascending order!\n"
-msgstr "• Các danh sách địa điểm trong phần « .debug_info » (thông tin gỡ lỗi) không phải theo thứ tự dần. •\n"
-
-#: dwarf.c:2375
-msgid "No location lists in .debug_info section!\n"
-msgstr "• Không có danh sách địa điểm trong phần « .debug_info » (thông tin gỡ lỗi). •\n"
-
-#: dwarf.c:2379
-#, c-format
-msgid "Location lists in %s section start at 0x%lx\n"
-msgstr "Danh sách địa điểm trong phần %s bắt đầu tại 0x%lx\n"
-
-#: dwarf.c:2383
-#, c-format
-msgid " Offset Begin End Expression\n"
-msgstr " HIệu Äầu Cuối Biểu thức\n"
-
-#: dwarf.c:2414
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "Có một lỗ [0x%lx - 0x%lx] trong phần « .debug_info » (thông tin gỡ lỗi).\n"
-
-#: dwarf.c:2417
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "Có một nơi chồng lấp [0x%lx - 0x%lx] trong phần « .debug_info » (thông tin gỡ lỗi).\n"
-
-#: dwarf.c:2424
-#, c-format
-msgid "Offset 0x%lx is bigger than .debug_loc section size.\n"
-msgstr "Có hiệu số 0x%lx lớn hơn kích cỡ của phần « .debug_loc » (địa điểm gỡ lỗi).\n"
-
-#: dwarf.c:2433 dwarf.c:2460 dwarf.c:2470
-#, c-format
-msgid "Location list starting at offset 0x%lx is not terminated.\n"
-msgstr "Danh sách địa điểm mà bắt đầu tại hiệu số 0x%lx chưa được kết thúc.\n"
-
-#: dwarf.c:2445 dwarf.c:2784
-#, c-format
-msgid " %8.8lx <End of list>\n"
-msgstr " %8.8lx <Kết thúc danh sách>\n"
-
-#: dwarf.c:2453
-#, c-format
-msgid " %8.8lx %8.8lx %8.8lx (base address)\n"
-msgstr " %8.8lx %8.8lx %8.8lx (địa chỉ cơ bản)\n"
-
-#: dwarf.c:2487 dwarf.c:2801
-msgid " (start == end)"
-msgstr " (start == end)"
-
-#: dwarf.c:2489 dwarf.c:2803
-msgid " (start > end)"
-msgstr " (start > end)"
-
-#: dwarf.c:2618
-msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
-msgstr "Há»— trợ hiện thá»i chỉ arange (phạm vị a) DWARF phiên bản 2 và 3 thôi.\n"
-
-#: dwarf.c:2622
-#, c-format
-msgid " Length: %ld\n"
-msgstr " Dài: %ld\n"
-
-#: dwarf.c:2623
-#, c-format
-msgid " Version: %d\n"
-msgstr " Phiên bản: %d\n"
-
-#: dwarf.c:2624
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr " Hiệu số vào « .debug_info » (thông tin gỡ lỗi): %lx\n"
-
-#: dwarf.c:2625
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " Kích cỡ con trỠ: %d\n"
-
-#: dwarf.c:2626
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr " Kích cỡ phân đoạn: %d\n"
-
-#: dwarf.c:2628
-#, c-format
-msgid ""
-"\n"
-" Address Length\n"
-msgstr ""
-"\n"
-" Äá»™ dài địa chỉ\n"
-
-#. FIXME: Should we handle this case?
-#: dwarf.c:2729
-msgid "Range lists in .debug_info section aren't in ascending order!\n"
-msgstr "• Các danh sách phạm vị trong phần « .debug_info » (thông tin gỡ lỗi) không phải theo thứ tự dần. •\n"
-
-#: dwarf.c:2732
-msgid "No range lists in .debug_info section!\n"
-msgstr "• Không có danh sách phạm vị trong phần « .debug_info » (thông tin gỡ lỗi). •\n"
-
-#: dwarf.c:2736
-#, c-format
-msgid "Range lists in %s section start at 0x%lx\n"
-msgstr "Danh sách phạm vị trong phần %s bắt đầu tại 0x%lx\n"
-
-#: dwarf.c:2740
-#, c-format
-msgid " Offset Begin End\n"
-msgstr " HIệu Äầu Cuối\n"
-
-#: dwarf.c:2765
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in %s section.\n"
-msgstr "Có một lỗ [0x%lx - 0x%lx] trong phần %s.\n"
-
-#: dwarf.c:2769
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in %s section.\n"
-msgstr "Có một nơi chồng lấp [0x%lx - 0x%lx] trong phần %s.\n"
-
-#: dwarf.c:2964
-#, c-format
-msgid "The section %s contains:\n"
-msgstr "Phần %s chứa:\n"
-
-#: dwarf.c:3608
-#, c-format
-msgid "unsupported or unknown DW_CFA_%d\n"
-msgstr "« DW_CFA_%d » không được hỗ trợ, hay không rõ\n"
-
-#: dwarf.c:3632
-#, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr "Chưa hỗ trợ khả năng hiển thị nội dung phần %s.\n"
-
-#: dwarf.c:3674
-#, c-format
-msgid "%s: Error: "
-msgstr "%s: Lá»—i: "
-
-#: dwarf.c:3685
-#, c-format
-msgid "%s: Warning: "
-msgstr "%s: Cảnh báo : "
-
-#: emul_aix.c:51
-#, c-format
-msgid " [-g] - 32 bit small archive\n"
-msgstr " [-g] • kho nhỠ32-bit\n"
-
-#: emul_aix.c:52
-#, c-format
-msgid " [-X32] - ignores 64 bit objects\n"
-msgstr " [-X32] • bỠqua các đối tượng kiểu 64 bit\n"
-
-#: emul_aix.c:53
-#, c-format
-msgid " [-X64] - ignores 32 bit objects\n"
-msgstr " [-X64] • bỠqua các đối tượng kiểu 32 bit\n"
-
-#: emul_aix.c:54
-#, c-format
-msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
-msgstr " [-X32_64] • chấp nhận các đối tượng kiểu cả 32 bit lẫn 64 bit Ä‘á»u\n"
-
-#: ieee.c:311
-msgid "unexpected end of debugging information"
-msgstr "gặp kết thúc thông tin gỡ lá»—i bất ngá»"
-
-#: ieee.c:398
-msgid "invalid number"
-msgstr "số không hợp lệ"
-
-#: ieee.c:451
-msgid "invalid string length"
-msgstr "độ dài chuỗi không hợp lệ"
-
-#: ieee.c:506 ieee.c:547
-msgid "expression stack overflow"
-msgstr "trán đống biểu thức"
-
-#: ieee.c:526
-msgid "unsupported IEEE expression operator"
-msgstr "toán tử biểu thức IEE không được hỗ trợ"
-
-#: ieee.c:541
-msgid "unknown section"
-msgstr "không biết phần"
-
-#: ieee.c:562
-msgid "expression stack underflow"
-msgstr "trán ngược đống biểu thức"
-
-#: ieee.c:576
-msgid "expression stack mismatch"
-msgstr "đống biểu thức không khớp với nhau"
-
-#: ieee.c:613
-msgid "unknown builtin type"
-msgstr "không biết kiểu builtin"
-
-#: ieee.c:758
-msgid "BCD float type not supported"
-msgstr "Kiểu nổi BDC không được hỗ trợ"
-
-#: ieee.c:895
-msgid "unexpected number"
-msgstr "số bất ngá»"
-
-#: ieee.c:902
-msgid "unexpected record type"
-msgstr "kiểu mục ghi bất ngá»"
-
-#: ieee.c:935
-msgid "blocks left on stack at end"
-msgstr "có một số khối còn lại trên đống khi kết thúc"
-
-#: ieee.c:1198
-msgid "unknown BB type"
-msgstr "không biết kiểu BB"
-
-#: ieee.c:1207
-msgid "stack overflow"
-msgstr "trán đống"
-
-#: ieee.c:1230
-msgid "stack underflow"
-msgstr "trán ngược đống"
-
-#: ieee.c:1342 ieee.c:1412 ieee.c:2109
-msgid "illegal variable index"
-msgstr "chỉ mục biến không được phép"
-
-#: ieee.c:1390
-msgid "illegal type index"
-msgstr "chỉ mục kiểu không được phép"
-
-#: ieee.c:1400 ieee.c:1437
-msgid "unknown TY code"
-msgstr "không biết mã TY"
-
-#: ieee.c:1419
-msgid "undefined variable in TY"
-msgstr "gặp biến chưa được định nghĩa trong TY"
-
-#. Pascal file name. FIXME.
-#: ieee.c:1830
-msgid "Pascal file name not supported"
-msgstr "Chưa hỗ trợ tên tập tin kiểu Pascal"
-
-#: ieee.c:1878
-msgid "unsupported qualifier"
-msgstr "bộ dè dặt chưa được hỗ trợ"
-
-#: ieee.c:2147
-msgid "undefined variable in ATN"
-msgstr "gặp biến chưa định nghĩa trong ATN"
-
-#: ieee.c:2190
-msgid "unknown ATN type"
-msgstr "không biết kiểu ATN"
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2312
-msgid "unsupported ATN11"
-msgstr "ATN11 không được hỗ trơ"
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2339
-msgid "unsupported ATN12"
-msgstr "ATN12 không được hỗ trơ"
-
-#: ieee.c:2399
-msgid "unexpected string in C++ misc"
-msgstr "gặp chuỗi không được hỗ trơ trong C++ lặt vặt"
-
-#: ieee.c:2412
-msgid "bad misc record"
-msgstr "mục ghi lặt vặt sai"
-
-#: ieee.c:2453
-msgid "unrecognized C++ misc record"
-msgstr "không chấp nhận mục ghi C++ lặt vặt"
-
-#: ieee.c:2568
-msgid "undefined C++ object"
-msgstr "đối tượng C++ chưa được định nghĩa"
-
-#: ieee.c:2602
-msgid "unrecognized C++ object spec"
-msgstr "chưa chấp nhận đặc tả đối tượng C++"
-
-#: ieee.c:2638
-msgid "unsupported C++ object type"
-msgstr "kiểu đối tượng C++ chưa được hỗ trợ"
-
-#: ieee.c:2648
-msgid "C++ base class not defined"
-msgstr "chưa định nghĩa hạng cơ bản C++"
-
-#: ieee.c:2660 ieee.c:2765
-msgid "C++ object has no fields"
-msgstr "Äối tượng C++ không có trÆ°á»ng nào"
-
-#: ieee.c:2679
-msgid "C++ base class not found in container"
-msgstr "Không tìm thấy hạng cơ bản C++ trong bộ chứa"
-
-#: ieee.c:2786
-msgid "C++ data member not found in container"
-msgstr "Không tìm thấy bộ phạn dữ liệu C++ trong bộ chứa"
-
-#: ieee.c:2827 ieee.c:2977
-msgid "unknown C++ visibility"
-msgstr "không biết độ thấy rõ C++"
-
-#: ieee.c:2861
-msgid "bad C++ field bit pos or size"
-msgstr "vị trí bit hay kích cỡ trÆ°á»ng C++ sai"
-
-#: ieee.c:2953
-msgid "bad type for C++ method function"
-msgstr "kiểu sai cho hàm phương pháp C++"
-
-#: ieee.c:2963
-msgid "no type information for C++ method function"
-msgstr "không có thông tin kiểu cho hàm phương pháp C++"
-
-#: ieee.c:3002
-msgid "C++ static virtual method"
-msgstr "phương pháp ảo tĩnh C++"
-
-#: ieee.c:3097
-msgid "unrecognized C++ object overhead spec"
-msgstr "chưa chấp nhận đặc tả duy tu đối tượng C++"
-
-#: ieee.c:3136
-msgid "undefined C++ vtable"
-msgstr "chưa định nghĩa vtable C++"
-
-#: ieee.c:3205
-msgid "C++ default values not in a function"
-msgstr "Giá trị C++ mặc định không phải trong hàm"
-
-#: ieee.c:3245
-msgid "unrecognized C++ default type"
-msgstr "chưa chấp nhận kiểu C++ mặc định"
-
-#: ieee.c:3276
-msgid "reference parameter is not a pointer"
-msgstr "tham số tham chiếu không phải là con trá»"
-
-#: ieee.c:3359
-msgid "unrecognized C++ reference type"
-msgstr "chưa chấp nhận kiểu tham chiếu C++"
-
-#: ieee.c:3441
-msgid "C++ reference not found"
-msgstr "Không tìm thấy tham chiếu C++"
-
-#: ieee.c:3449
-msgid "C++ reference is not pointer"
-msgstr "Tham chiếu C++ không phải là con trá»"
-
-#: ieee.c:3475 ieee.c:3483
-msgid "missing required ASN"
-msgstr "thiếu ASN cần thiết"
-
-#: ieee.c:3510 ieee.c:3518
-msgid "missing required ATN65"
-msgstr "thiếu ATN65 cần thiết"
-
-#: ieee.c:3532
-msgid "bad ATN65 record"
-msgstr "mục ghi ATN65 sai"
-
-#: ieee.c:4160
-#, c-format
-msgid "IEEE numeric overflow: 0x"
-msgstr "trán thuộc số IEEE: 0x"
-
-#: ieee.c:4204
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr "Trán độ dài chuỗi IEEE: %u\n"
-
-#: ieee.c:5203
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr "Kích cỡ kiểu số nguyên không được hỗ trợ IEEE %u\n"
-
-#: ieee.c:5237
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr "Kích cỡ kiểu nổi không được hỗ trợ IEEE %u\n"
-
-#: ieee.c:5271
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr "Kích cỡ kiểu phức tạp không được hỗ trợ IEEE %u\n"
-
-#: nlmconv.c:269 srconv.c:1813
-msgid "input and output files must be different"
-msgstr "tập tin nhập và xuất phải là khác nhau"
-
-#: nlmconv.c:316
-msgid "input file named both on command line and with INPUT"
-msgstr "tên tập tin được lập cả trên dòng lệnh lẫn bằng INPUT Ä‘á»u"
-
-#: nlmconv.c:325
-msgid "no input file"
-msgstr "không có tập tin nhập nào"
-
-#: nlmconv.c:355
-msgid "no name for output file"
-msgstr "không có tên cho tập tin nhập"
-
-#: nlmconv.c:369
-msgid "warning: input and output formats are not compatible"
-msgstr "cảnh báo : khuôn dạng nhập và xuất không tương thích với nhau"
-
-#: nlmconv.c:398
-msgid "make .bss section"
-msgstr "tạo phần « .bss »"
-
-#: nlmconv.c:407
-msgid "make .nlmsections section"
-msgstr "tạo phần « .nlmsections »"
-
-#: nlmconv.c:409
-msgid "set .nlmsections flags"
-msgstr "đặt các cỠ« .nlmsections »"
-
-#: nlmconv.c:437
-msgid "set .bss vma"
-msgstr "đặt vma .bss"
-
-#: nlmconv.c:444
-msgid "set .data size"
-msgstr "đặt kích cỡ dữ liệu .data"
-
-#: nlmconv.c:624
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr "cảnh báo : ký hiệu %s được nhập mà không phải trong danh sách nhập"
-
-#: nlmconv.c:644
-msgid "set start address"
-msgstr "đặt địa chỉ bắt đầu"
-
-#: nlmconv.c:693
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr "cảnh báo : thủ tục START (bắt đầu) %s chưa được định nghĩa"
-
-#: nlmconv.c:695
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr "cảnh báo : thủ tục EXIT (thoát) %s chưa được định nghĩa"
-
-#: nlmconv.c:697
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr "cảnh báo : thủ tục CHECK (kiểm tra) %s chưa được định nghĩa"
-
-#: nlmconv.c:718 nlmconv.c:907
-msgid "custom section"
-msgstr "phần tá»± chá»n"
-
-#: nlmconv.c:739 nlmconv.c:936
-msgid "help section"
-msgstr "phần trợ giúp"
-
-#: nlmconv.c:761 nlmconv.c:954
-msgid "message section"
-msgstr "phần thông điệp"
-
-#: nlmconv.c:777 nlmconv.c:987
-msgid "module section"
-msgstr "phần mô-đun"
-
-#: nlmconv.c:797 nlmconv.c:1003
-msgid "rpc section"
-msgstr "phần rpc"
-
-#. There is no place to record this information.
-#: nlmconv.c:833
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr "%s: cảnh báo : thư viên dùng chung không thể chứa dữ liệu chưa được sở khởi"
-
-#: nlmconv.c:854 nlmconv.c:1022
-msgid "shared section"
-msgstr "phần dùng chung"
-
-#: nlmconv.c:862
-msgid "warning: No version number given"
-msgstr "cảnh báo : chưa đưa ra số thứ tự phiên bản"
-
-#: nlmconv.c:902 nlmconv.c:931 nlmconv.c:949 nlmconv.c:998 nlmconv.c:1017
-#, c-format
-msgid "%s: read: %s"
-msgstr "%s: Ä‘á»c: %s"
-
-#: nlmconv.c:924
-msgid "warning: FULLMAP is not supported; try ld -M"
-msgstr "cảnh báo : chưa hỗ trợ FULLMAP; hãy thử « ld -M »"
-
-#: nlmconv.c:1100
-#, c-format
-msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
-msgstr "Cách sá»­ dụng: %s [tùy_chá»n...] [tập_tin_nhập [tập_tin_xuất]]\n"
-
-#: nlmconv.c:1101
-#, c-format
-msgid " Convert an object file into a NetWare Loadable Module\n"
-msgstr " Chuyển đổi tập tin đối tượng sang Mô-đun Tải được NetWare (NetWare Loadable Module)\n"
-
-#: nlmconv.c:1102
-#, c-format
-msgid ""
-" The options are:\n"
-" -I --input-target=<bfdname> Set the input binary file format\n"
-" -O --output-target=<bfdname> Set the output binary file format\n"
-" -T --header-file=<file> Read <file> for NLM header information\n"
-" -l --linker=<linker> Use <linker> for any linking\n"
-" -d --debug Display on stderr the linker command line\n"
-" @<file> Read options from <file>.\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-msgstr ""
-" Tùy chá»n:\n"
-" -I --input-target=<tên_bfd>\t Lập dạng thức tập tin nhị phân nhập\n"
-"\t\t\t\t\t\t\t\t (_đích nhập_)\n"
-" -O --output-target=<tên_bfd>\t Lập dạng thức tập tin nhị phân xuất\n"
-"\t\t\t\t\t\t\t\t (_đích xuất_)\n"
-" -T --header-file=<tập_tin>\n"
-"\t\tÄá»c tập tin này để tìm thông tin phần đầu NLM (_tập tin phần đầu_)\n"
-" -l --linker=<bộ_liên_kết> \t Dùng _bộ liên kết_ này khi liên kết\n"
-" -d --debug\n"
-"\tHiển thị trên thiết bị lỗi chuẩn dòng lệnh của bộ liên kết (_gỡ lỗi_)\n"
-" @<file> \t\t\t\t\t Äá»c các tùy chá»n từ tập tin đó\n"
-" -h --help \t\t Hiển thị _trợ giúp_ này\n"
-" -v --version \t\t Hiển thị _phiên bản_ chương trình\n"
-
-#: nlmconv.c:1143
-#, c-format
-msgid "support not compiled in for %s"
-msgstr "chưa biên dịch cách hỗ trợ %s"
-
-#: nlmconv.c:1180
-msgid "make section"
-msgstr "tạo phần"
-
-#: nlmconv.c:1194
-msgid "set section size"
-msgstr "lập kích cỡ phần"
-
-#: nlmconv.c:1200
-msgid "set section alignment"
-msgstr "lập canh lỠphần"
-
-#: nlmconv.c:1204
-msgid "set section flags"
-msgstr "lập các cỠphân"
-
-#: nlmconv.c:1215
-msgid "set .nlmsections size"
-msgstr "lập kích cỡ « .nlmsections »"
-
-#: nlmconv.c:1296 nlmconv.c:1304 nlmconv.c:1313 nlmconv.c:1318
-msgid "set .nlmsection contents"
-msgstr "lập nội dung « .nlmsections »"
-
-#: nlmconv.c:1797
-msgid "stub section sizes"
-msgstr "kích cỡ phần stub"
-
-#: nlmconv.c:1844
-msgid "writing stub"
-msgstr "Ä‘ang ghi stub..."
-
-#: nlmconv.c:1928
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr "có việc định vị lại liên quan đến PC chưa tháo gỡ đối với %s"
-
-#: nlmconv.c:1992
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr "trán khi Ä‘iá»u chỉnh việc định vị lại đối vá»›i %s"
-
-#: nlmconv.c:2119
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr "%s: việc thực hiện %s bị lỗi: "
-
-#: nlmconv.c:2134
-#, c-format
-msgid "Execution of %s failed"
-msgstr "Việc thực hiện %s bị lỗi"
-
-#: nm.c:224 size.c:82 strings.c:708
-#, c-format
-msgid "Usage: %s [option(s)] [file(s)]\n"
-msgstr "Cách sá»­ dụng: %s [tùy_chá»n...] [tập_tin...]\n"
-
-#: nm.c:225
-#, c-format
-msgid " List symbols in [file(s)] (a.out by default).\n"
-msgstr " Liệt kê các ký hiệu trong những tập tin này (mặc định là <a.out>).\n"
-
-#: nm.c:226
-#, c-format
-msgid ""
-" The options are:\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -S, --print-size Print size of defined symbols\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" --special-syms Include special symbols in the output\n"
-" --synthetic Display synthetic symbols as well\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -X 32_64 (ignored)\n"
-" @FILE Read options from FILE\n"
-" -h, --help Display this information\n"
-" -V, --version Display this program's version number\n"
-"\n"
-msgstr ""
-" Tùy chá»n:\n"
-" -a, --debug-syms \tHiển thị _ký hiệu_ chỉ kiểu bộ _gỡ lỗi_ thôi\n"
-" -A, --print-file-name \t_In ra tên tập tin_ nhập trước mỗi ký hiệu\n"
-" -B \t\t\tBằng « --format=bsd »\n"
-" -C, --demangle[=KIỂU_DÃNG]\n"
-"\tGiải mã các tên ký hiệu cấp thấp thành tên cấp ngÆ°á»i dùng (_tháo gỡ_)\n"
-" Kiểu dáng này, nếu được ghi rõ, có thể là « auto » (tự động: mặc định)\n"
-"\t« gnu », « lucid », « arm », « hp », « edg », « gnu-v3 », « java » hay « gnat ».\n"
-" --no-demangle \t\t_Äừng tháo gỡ_ tên ký hiệu cấp thấp\n"
-" -D, --dynamic \t\tHiển thị ký hiệu _động_ thay vào ký hiệu chuẩn\n"
-" --defined-only \t\tHiển thị _chỉ_ ký hiệu _được định nghĩa_\n"
-" -e \t\t\t(bị bỠqua)\n"
-" -f, --format=DẠNG_THỨC \tDùng _dạng thức_ xuất này, một của\n"
-"\t\t\t\t\t\t\t« bsd » (mặc định), « sysv » hay « posix »\n"
-" -g, --extern-only \t\tHiển thị _chỉ_ ký hiệu _bên ngoài_\n"
-" -l, --line-numbers \t\tDùng thông tin gỡ lỗi để tìm tên tập tin\n"
-"\t\t\t\t\t\tvà _số thứ tự dòng_ cho mỗi ký hiệu\n"
-" -n, --numeric-sort \t\t_Sắp xếp_ ký hiệu một cách _thuộc số_ theo địa chỉ\n"
-" -o \t\t\tBằng « -A »\n"
-" -p, --no-sort \t\t_Äừng sắp xếp_ ký hiệu\n"
-" -P, --portability \t\tBằng « --format=posix »\n"
-" -r, --reverse-sort \t\t_Sắp xếp ngược_\n"
-" -S, --print-size \t\tIn ra kích cỡ của các ký hiệu được định nghĩa\n"
-" -s, --print-armap \t\tGồm chỉ mục cho ký hiệu từ bộ phạn kho\n"
-" --size-sort \t\t_Sắp xếp_ ký hiệu theo _kích cỡ_\n"
-" --special-syms \t\tGồm _ký hiệu đặc biệt_ trong dữ liệu xuất\n"
-" --synthetic \t\tCũng hiển thị ký hiệu _tổng hợp_\n"
-" -t, --radix=CƠ_SỞ \tDùng _cơ sở_ này để in ra giá trị ký hiệu\n"
-" --target=TÊN_BFD \tGhi rõ dạng thức đối tượng _đích_ là tên BFD này\n"
-" -u, --undefined-only \tHiển thị _chỉ_ ký hiệu _chưa được định nghĩa_\n"
-" -X 32_64 \t\t(bị bỠqua)\n"
-" @<file> \t\t\t\t\t Äá»c các tùy chá»n từ tập tin đó\n"
-" -h, --help \t\tHiển thị _trợ giúp_ này\n"
-" -V, --version \t\tHiển thị số thứ tự _phiên bản_ của chương trình này\n"
-"\n"
-
-#: nm.c:263 objdump.c:236
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr "Hãy trình báo lỗi nào cho %s\n"
-
-#: nm.c:295
-#, c-format
-msgid "%s: invalid radix"
-msgstr "%s: cơ sở không hợp lệ"
-
-#: nm.c:319
-#, c-format
-msgid "%s: invalid output format"
-msgstr "%s: dạng thức xuất không hợp lệ"
-
-#: nm.c:340 readelf.c:6623 readelf.c:6659
-#, c-format
-msgid "<processor specific>: %d"
-msgstr "<đặc trưng cho bộ xử lý>: %d"
-
-#: nm.c:342 readelf.c:6626 readelf.c:6671
-#, c-format
-msgid "<OS specific>: %d"
-msgstr "<đặc trÆ°ng cho hệ Ä‘iá»u hành>: %d"
-
-#: nm.c:344 readelf.c:6628 readelf.c:6674
-#, c-format
-msgid "<unknown>: %d"
-msgstr "<không biết>: %d"
-
-#: nm.c:381
-#, c-format
-msgid ""
-"\n"
-"Archive index:\n"
-msgstr ""
-"\n"
-"Chỉ mục kho:\n"
-
-#: nm.c:1227
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Ký hiệu chưa được định nghĩa từ %s:\n"
-"\n"
-
-#: nm.c:1229
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Ký hiệu từ %s:\n"
-"\n"
-
-#: nm.c:1231 nm.c:1282
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"Tên Giá trị Hạng Kiểu Cỡ Dòng Phần\n"
-"\n"
-
-#: nm.c:1234 nm.c:1285
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-
-#: nm.c:1278
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Ký hiệu chưa được định nghĩa từUndefined symbols from %s[%s]:\n"
-"\n"
-
-#: nm.c:1280
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"Ký hiệu từ %s[%s]:\n"
-"\n"
-
-#: nm.c:1584
-msgid "Only -X 32_64 is supported"
-msgstr "Chỉ hỗ trợ « -X 32_64 »"
-
-#: nm.c:1604
-msgid "Using the --size-sort and --undefined-only options together"
-msgstr "Dùng tùy chá»n cả « --size-sort » lẫn « --undefined-only » Ä‘á»u"
-
-#: nm.c:1605
-msgid "will produce no output, since undefined symbols have no size."
-msgstr "sẽ không xuất gì, vì ký hiệu chưa được định nghĩa không có kích cỡ nào."
-
-#: nm.c:1633
-#, c-format
-msgid "data size %ld"
-msgstr "cỡ dữ liệu %ld"
-
-#: objcopy.c:401 srconv.c:1721
-#, c-format
-msgid "Usage: %s [option(s)] in-file [out-file]\n"
-msgstr "Cách sá»­ dụng: %s [tùy_chá»n...] tập_tin_nhập [tập_tin_xuất]\n"
-
-#: objcopy.c:402
-#, c-format
-msgid " Copies a binary file, possibly transforming it in the process\n"
-msgstr " Sao chép tập tin nhị phân, cũng có thể chuyển đổi nó\n"
-
-#: objcopy.c:403 objcopy.c:495
-#, c-format
-msgid " The options are:\n"
-msgstr " Tùy chá»n:\n"
-
-#: objcopy.c:404
-#, c-format
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -B --binary-architecture <arch> Set arch of output file, when input is binary\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" --debugging Convert debugging information, if possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation information\n"
-" -g --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" --strip-unneeded-symbol <name>\n"
-" Do not copy symbol <name> unless needed by\n"
-" relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -K --keep-symbol <name> Do not strip symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-" --globalize-symbol <name> Force symbol <name> to be marked as a global\n"
-" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-" --weaken Force all global symbols to be marked as weak\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address <addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to <flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to output\n"
-" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-" --change-leading-char Force output format's leading character style\n"
-" --remove-leading-char Remove leading character from global symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --redefine-syms <file> --redefine-sym for all symbol pairs \n"
-" listed in <file>\n"
-" --srec-len <number> Restrict the length of generated Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-" --strip-symbols <file> -N for all symbols listed in <file>\n"
-" --strip-unneeded-symbols <file>\n"
-" --strip-unneeded-symbol for all symbols listed\n"
-" in <file>\n"
-" --keep-symbols <file> -K for all symbols listed in <file>\n"
-" --localize-symbols <file> -L for all symbols listed in <file>\n"
-" --globalize-symbols <file> --globalize-symbol for all in <file>\n"
-" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-" --weaken-symbols <file> -W for all symbols listed in <file>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" --writable-text Mark the output text as writable\n"
-" --readonly-text Make the output text write protected\n"
-" --pure Mark the output file as demand paged\n"
-" --impure Mark the output file as impure\n"
-" --prefix-symbols <prefix> Add <prefix> to start of every symbol name\n"
-" --prefix-sections <prefix> Add <prefix> to start of every section name\n"
-" --prefix-alloc-sections <prefix>\n"
-" Add <prefix> to start of every allocatable\n"
-" section name\n"
-" -v --verbose List all object files modified\n"
-" @<file> Read options from <file>\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-msgstr ""
-" -I --input-target <tên_bfd>\t\tGiả sử tập tin nhập có dạng <tên_bfd>\n"
-"\t\t\t\t\t\t\t\t (_đích nhập_)\n"
-" -O --output-target <tên_bfd> \tTạo tập tin dạng <tên_bfd>\n"
-"\t\t\t\t\t\t\t\t (_đích xuất_)\n"
-" -B --binary-architecture <kiến_trúc>\n"
-"\t\t\tLập _kiến trúc_ của tập tin xuất, khi tập tin nhập là _nhị phân_\n"
-" -F --target <tên_bfd>\n"
-"\t\t\tLập dạng thức cả nhập lẫn xuất Ä‘á»u thành <tên_bfd> (_đích_)\n"
-" --debugging \t\t\tChuyển đổi thông tin _gỡ lỗi_, nếu có thể\n"
-" -p --preserve-dates\n"
-"\tSao chép nhãn thá»i gian truy cập/sá»­a đổi vào kết xuất (_bảo tồn các ngày_)\n"
-" -j --only-section <tên> \t_Chỉ_ sao chép <tên> _phần_ vào kết xuất\n"
-" --add-gnu-debuglink=<tập_tin>\n"
-"\t\t_Thêm_ khả năng liên kết phần « .gnu_debuglink » vào <tập_tin>\n"
-" -R --remove-section <tên> \t_Gỡ bỠphần_ <tên> ra kết xuất\n"
-" -S --strip-all \t\t\tGỡ bá» má»i thông tin ký hiệu và định vị lại\n"
-"\t\t\t\t\t\t\t\t (_tước hết_)\n"
-" -g --strip-debug \t\tGỡ bá» má»i ký hiệu và phần kiểu gỡ lá»—i\n"
-"\t\t\t\t\t\t\t\t (_tước gỡ lỗi_)\n"
-" --strip-unneeded \tGỡ bá» má»i ký hiệu không cần thiết để định vị lại\n"
-"\t\t\t\t\t\t\t\t (_tước không cần thiết_)\n"
-" -N --strip-symbol <tên> \t\t Äừng sao chép ký hiệu <tên>\n"
-"\t\t\t\t\t\t\t\t (_tước ký hiệu_)\n"
-" --strip-unneeded-symbol <tên>\n"
-"\tÄừng sao chép ký hiệu trừ cần thiết để định vị lại (_tÆ°á»›c không cần thiết_)\n"
-" --only-keep-debug\t\t\t\tTước hết, trừ thông tin gỡ lỗi\n"
-"\t\t\t\t\t\t\t\t (_chỉ giữ gỡ lỗi_)\n"
-" -K --keep-symbol <tên> \tChỉ sao chép ký hiệu <tên>\n"
-"\t\t\t\t\t\t\t\t (_giữ ký hiệu_)\n"
-" -L --localize-symbol <tên>\n"
-"\t\t\t\tBuá»™c ký hiệu <tên>có nhãn Ä‘iá»u cục bá»™ (_địa phÆ°Æ¡ng hóa_)\n"
-" -G --keep-global-symbol <tên> \tÄịa phÆ°Æ¡ng hóa má»i ký hiệu trừ <name>\n"
-"\t\t\t\t\t\t\t\t (_giữ ký hiệu toàn cục_)\n"
-" -W --weaken-symbol <tên> \tBuá»™c ký hiệu <name> có nhãn Ä‘iá»u yếu\n"
-"\t\t\t\t\t\t\t\t (_làm yếu ký hiệu_)\n"
-" --weaken \t\tBuá»™c má»i ký hiệu toàn cục có nhãn Ä‘iá»u yếu\n"
-"\t\t\t\t\t\t\t\t (_làm yếu đi_)\n"
-" -w --wildcard \t\tCho phép _ký tự đại diện_ trong sự so sánh ký hiệu\n"
-" -x --discard-all \t\t\tGỡ bá» má»i ký hiệu không toàn cục\n"
-"\t\t\t\t\t\t\t\t (_hủy hết_)\n"
-" -X --discard-locals Gỡ bỠký hiệu nào được tạo ra bởi bộ biên dịch\n"
-"\t\t\t\t\t\t\t\t (_hủy các Ä‘iá»u cục bá»™_)\n"
-" -i --interleave <số> \t\t\tChỉ sao chép một của mỗi <số> byte\n"
-"\t\t\t\t\t\t\t\t (_chen vào_)\n"
-" -b --byte <số>\n"
-"\t\t\t\tChá»n byte số thứ tá»± <số> trong má»—i khối tin đã chen vào\n"
-" --gap-fill <giá_trị> \t_Äiá»n vào khe_ giữa hai phần bằng <giá_trị>\n"
-" --pad-to <địa_chỉ>\t\t_Äệm_ phần cuối cùng _đế_n địa chỉ <địa_chỉ>\n"
-" --set-start <địa_chỉ> \t\t_Lập_ địa chỉ _đầu_ thành <địa_chỉ>\n"
-" {--change-start|--adjust-start} <tăng>\n"
-"\t\tThêm <tăng> vào địa chỉ đầu (_thay đổi đầu, Ä‘iá»u chỉnh đầu_)\n"
-" {--change-addresses|--adjust-vma} <tang>\n"
-" \t\t\t\t\t\t\tThêm <tang> vào địa chỉ đầu, LMA và VMA\n"
-"\t\t\t\t\t\t\t (_thay đổi địa chỉ, Ä‘iá»u chỉnh vma_)\n"
-" {--change-section-address|--adjust-section-vma} <tên>{=|+|-}<giá_trị>\n"
-"\t\t\t\t\tThay đổi LMA và VMA của phần <tên> bằng <giá_trị>\n"
-"\t\t\t\t\t\t(_thay đổi địa chỉ phần, Ä‘iá»u chỉnh vma phần_)\n"
-" --change-section-lma <tên>{=|+|-}<giá_trị>\n"
-" \tThay đổi LMA của phần <tên> bằng <giá_trị> (_thay đổi LMA của phần_)\n"
-" --change-section-vma <tên>{=|+|-}<giá_trị>\n"
-" \tThay đổi VMA của phần <tên> bằng <giá_trị> (_thay đổi VMA của phần_)\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" \t\t\t\t\t\t\t\tCảnh báo nếu không có phần có tên\n"
-"\t\t(_[không] thay đổi các cảnh báo, [không] Ä‘iá»u chỉnh các cảnh báo_)\n"
-" --set-section-flags <tên>=<cỠ...>\n"
-" \t\tLập thuộc tính của phần <tên> thành <cỠ...>\n"
-"\t\t\t\t\t\t\t\t (_lập các cỠphần_)\n"
-" --add-section <tên>=<tập_tin>\n"
-"\t\t\t\t_Thêm phần_ <tên> được tìm trong <tập_tin> vào kết xuất\n"
-" --rename-section <cũ>=<mới>[,<cỠ...>]\n"
-"\t\t\t\t\t\t\t\t_Thay đổi phần_ <cũ> thành <mới>\n"
-" --change-leading-char\n"
-"\t\t\t\t\tBuộc kiểu dáng của ký tự đi trước của dạng thức xuất\n"
-"\t\t\t\t\t\t\t\t (_thay đổi ký tự đi trước_)\n"
-" --remove-leading-char\t\t_Gỡ bỠký tự đi trước_ ra các ký hiệu toàn cục\n"
-" --redefine-sym <cũ>=<mới>\n"
-"\t\t\t\t\t\t_Äịnh nghÄ©a lại_ tên _ký hiệu_ <cÅ©> thành <má»›i>\n"
-" --redefine-syms <tập_tin>\n"
-"\t\t« --redefine-sym » cho má»i cặp ký hiệu được liệt kê trong <tập_tin>\n"
-" --srec-len <số> \t\tGiới hạn _độ dài_ của các Srecords đã tạo ra\n"
-" --srec-forceS3 \tGiới hạn kiểu Srecords thành S3 (_buộc_)\n"
-" --strip-symbols <tập_tin>\n"
-"\t« -N » cho má»i ký hiệu được liệt kê trong <tập_tin> (_tÆ°á»›c các ký hiệu_)\n"
-" --strip-unneeded-symbols <tập_tin>\n"
-" \t\t\t\t\t\t\t« --strip-unneeded-symbol » cho má»i ký hiệu\n"
-"\t\t\t\t\t\t\t\tđược liệt kê trong <tập_tin>\n"
-" --keep-symbols <tập_tin>\n"
-"\t\t\t\t\t« -K » cho má»i ký hiệu được liệt kê trong <tập_tin>\n"
-"\t\t\t\t\t\t\t\t (_giữ các ký hiệu_)\n"
-" --localize-symbols <tập_tin>\n"
-"\t\t\t\t\t« -L » cho má»i ký hiệu được liệt kê trong <tập_tin>\n"
-"\t\t\t\t\t\t\t\t (_địa phương hóa các ký hiệu_)\n"
-" --keep-global-symbols <tập_tin>\n"
-"\t\t\t\t\t« -G » cho má»i ký hiệu được liệt kê trong <tập_tin>\n"
-"\t\t\t\t\t\t\t\t (_giữ các ký hiệu toàn cục_)\n"
-" --weaken-symbols <tập_tin>\n"
-"\t\t\t\t\t« -W » cho má»i ký hiệu được liệt kê trong <tập_tin>\n"
-"\t\t\t\t\t\t\t\t (_làm yếu các ký hiệu_)\n"
-" --alt-machine-code <chỉ_mục> Dùng _mã máy xen kẽ_ cho kết xuất\n"
-" --writable-text \t\tÄánh dấu _văn bản_ xuất _có khả năng ghi_\n"
-" --readonly-text \tLàm cho vân bản xuất được bảo vậ chống ghi\n"
-"\t\t\t\t\t\t\t\t (_văn bản chỉ có khả năng Ä‘á»c_)\n"
-" --pure\n"
-"\t\t\tÄánh dấu tập tin xuất sẽ có trang được sắp xếp theo yêu cầu\n"
-"\t\t\t\t\t\t\t\t (_tinh khiết_)\n"
-" --impure \t\tÄánh dấu tập tin xuất _không tinh khiết_\n"
-" --prefix-symbols <tiá»n_tố>\n"
-"\t\tThêm <tiá»n_tố> vào đầu của má»i tên ký hiệu (_tiá»n tố các ký hiệu_)\n"
-" --prefix-sections <tiá»n_tố>\n"
-"\t\tThêm <tiá»n_tố> vào đầu của má»i tên phần (_tiá»n tố các phần_)\n"
-" --prefix-alloc-sections <tiá»n_tố>\n"
-"\t\tThêm <tiá»n_tố> vào đầu của má»i tên phần có thể cấp phát\n"
-"\t\t\t\t\t\t\t\t(_tiá»n tố các phần có thể cấp phát_)\n"
-" -v --verbose \t\tLiệt kê má»i tập tin đối tượng đã được sá»­a đổi\n"
-"\t\t\t\t\t\t\t\t (_chi tiết_)\n"
-" @<file> \t\t\t\t\t Äá»c các tùy chá»n từ tập tin đó\n"
-" -V --version Hiển thị số thứ tự _phiên bản_ của chương trình này\n"
-" -h --help \t\t\tHiển thị _trợ giúp_ này\n"
-" --info \t\tLiệt kê các dạng thức và kiến trúc được hỗ trợ\n"
-"\t\t\t\t\t\t\t\t (_thông tin_)\n"
-
-#: objcopy.c:493
-#, c-format
-msgid "Usage: %s <option(s)> in-file(s)\n"
-msgstr "Cách sá»­ dụng: %s <tùy_chá»n> tập_tin_nhập...\n"
-
-#: objcopy.c:494
-#, c-format
-msgid " Removes symbols and sections from files\n"
-msgstr " Gỡ bỠký hiệu và phần ra tập tin\n"
-
-#: objcopy.c:496
-#, c-format
-msgid ""
-" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target=<bfdname> Create an output file in format <bfdname>\n"
-" -F --target=<bfdname> Set both input and output format to <bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -R --remove-section=<name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation information\n"
-" -g -S -d --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -N --strip-symbol=<name> Do not copy symbol <name>\n"
-" -K --keep-symbol=<name> Do not strip symbol <name>\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr ""
-" -I --input-target=<tên_bfd> Giả sử tập tin nhập có dạng thức <tên_bfd>\n"
-"\t\t(đích nhập)\n"
-" -O --output-target=<tên_bfd> Tạo một tập tin xuất có dạng thức <tên_bfd>\n"
-"\t\t(đích xuất)\n"
-" -F --target=<tên_bfd> Äặt dạng thức cả nhập lẫn xuất Ä‘á»u thành <tên_bfd>\n"
-"\t\t(đích)\n"
-" -p --preserve-dates\n"
-"\t\tSao chép các nhãn thá»i gian truy cập/đã sá»­a đổi vào kết xuất\n"
-"\t\t(bảo tồn các ngày)\n"
-" -R --remove-section=<tên> \t_Gỡ bỠphần_ <name> ra dữ liệu xuất\n"
-" -s --strip-all \t\tGỡ bá» má»i thông tin kiểu ký hiệu và định vị lại\n"
-"\t\t(tước hết)\n"
-" -g -S -d --strip-debug \tGỡ bá» má»i ký hiệu và phần kiểu gỡ lá»—i\n"
-"\t\t(tước gỡ lỗi)\n"
-" --strip-unneeded Gỡ bá» má»i ký hiệu không cần thiết khi định vị lại\n"
-"\t\t(tước không cần thiết)\n"
-" --only-keep-debug \tTước hết, trừ thông tin gỡ lỗi\n"
-"\t\t(chỉ giữ gỡ lỗi)\n"
-" -N --strip-symbol=<tên> \tÄừng sao chép ký hiệu <tên>\n"
-"\t\t(tước ký hiệu)\n"
-" -K --keep-symbol=<tên> \tSao chép chỉ ký hiệu <tên>\n"
-"\t\t(giữ ký hiệu)\n"
-" -w --wildcard Cho phép _ký tự đại diện_ trong chuỗi so sánh ký hiệu\n"
-" -x --discard-all \t\tGỡ bá» má»i ký hiệu không toàn cục\n"
-"\t\t(hủy hết)\n"
-" -X --discard-locals \tGỡ bo ký hiệu nào do bộ biên dịch tạo ra\n"
-"\t\t(hủy các Ä‘iá»u cục bá»™)\n"
-" -v --verbose \t\tLiệt kê má»i tập tin đối tượng đã sá»­a đổi\n"
-"\t\t(chi tiết)\n"
-" -V --version Hiển thị số thứ tự _phiên bản_ của chương trình này\n"
-" -h --help \t\tHiển thị _trợ giúp_ này\n"
-" --info Liệt kê các dạng thức đối tượng và kiến trúc được hỗ trợ\n"
-"\t\t(thông tin) -o <tập_tin> \tÄể kết _xuất_ đã tÆ°á»›ng vào <tập_tin>\n"
-" @<file> \t\t\t\t\t Äể dữ liệu xuất đã gỡ bá» vào tập tin đó\n"
-
-#: objcopy.c:568
-#, c-format
-msgid "unrecognized section flag `%s'"
-msgstr "không nhận ra cỠphần « %s »"
-
-#: objcopy.c:569
-#, c-format
-msgid "supported flags: %s"
-msgstr "các cỠđã hỗ trợ : %s"
-
-#: objcopy.c:646
-#, c-format
-msgid "cannot open '%s': %s"
-msgstr "không thể mở « %s »: %s"
-
-#: objcopy.c:649 objcopy.c:2722
-#, c-format
-msgid "%s: fread failed"
-msgstr "%s: việc fread (Ä‘á»c f) bị lá»—i"
-
-#: objcopy.c:722
-#, c-format
-msgid "%s:%d: Ignoring rubbish found on this line"
-msgstr "%s:%d: Äang bá» qua rác được gặp trên dòng này"
-
-#: objcopy.c:996
-#, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr "%s: Ký hiệu « %s » đã được định nghÄ©a lại nhiá»u lần"
-
-#: objcopy.c:1000
-#, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr "%s: Ký hiệu « %s » là đích của nhiá»u lá»i định nghÄ©a lại"
-
-#: objcopy.c:1028
-#, c-format
-msgid "couldn't open symbol redefinition file %s (error: %s)"
-msgstr "không thể mở tập tin định nghĩa lại ký hiệu %s (lỗi: %s)"
-
-#: objcopy.c:1106
-#, c-format
-msgid "%s:%d: garbage found at end of line"
-msgstr "%s:%d: gặp rác tại kết thúc dòng"
-
-#: objcopy.c:1109
-#, c-format
-msgid "%s:%d: missing new symbol name"
-msgstr "%s:%d: thiếu tên ký hiệu mới"
-
-#: objcopy.c:1119
-#, c-format
-msgid "%s:%d: premature end of file"
-msgstr "%s:%d: gặp kết thúc tập tin quá sớm"
-
-#: objcopy.c:1145
-#, c-format
-msgid "stat returns negative size for `%s'"
-msgstr "việc stat (lấy các thông tin) trả gởi kích cỡ âm cho « %s »"
-
-#: objcopy.c:1157
-#, c-format
-msgid "copy from `%s' [unknown] to `%s' [unknown]\n"
-msgstr "chép từ « %s » [không rõ] sang « %s » [không rõ]\n"
-
-#: objcopy.c:1212
-msgid "Unable to change endianness of input file(s)"
-msgstr "Không thể thay đổi tính trạng cuối (endian) của (các) tập tin nhập"
-
-#: objcopy.c:1221
-#, c-format
-msgid "copy from `%s' [%s] to `%s' [%s]\n"
-msgstr "chép từ « %s » [%s] sang « %s » [%s]\n"
-
-#: objcopy.c:1258 objcopy.c:1715
-#, c-format
-msgid "Unable to recognise the format of the input file `%s'"
-msgstr "Không thể nhận diện dạng thức của tập tin nhập « %s »"
-
-#: objcopy.c:1261
-#, c-format
-msgid "Warning: Output file cannot represent architecture `%s'"
-msgstr "Cảnh báo : tập tin xuất không thể tiêu biểu kiến trúc « %s »"
-
-#: objcopy.c:1305
-#, c-format
-msgid "can't create section `%s': %s"
-msgstr "không thể tạo phần « %s »: %s"
-
-#: objcopy.c:1356
-msgid "there are no sections to be copied!"
-msgstr "• Không có phần cần sao chép. •"
-
-#: objcopy.c:1402
-#, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr "Không thể Ä‘iá»n vào khe sau : %s: %s"
-
-#: objcopy.c:1427
-#, c-format
-msgid "Can't add padding to %s: %s"
-msgstr "Không thể thêm đệm vào %s: %s"
-
-#: objcopy.c:1594
-#, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr "%s: gặp lỗi khi sao chép dữ liệu BFD riêng : %s"
-
-#: objcopy.c:1605
-msgid "unknown alternate machine code, ignored"
-msgstr "không biết mã máy xen kẽ nên bỠqua nó"
-
-#: objcopy.c:1635 objcopy.c:1665
-#, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr "không thể mkdir (tạo thư mục) %s để sao chép kho (lỗi: %s)"
-
-#: objcopy.c:1787
-#, c-format
-msgid "error: the input file '%s' is empty"
-msgstr "lỗi : tập tin nhập « %s » là rỗng"
-
-#: objcopy.c:1889
-#, c-format
-msgid "Multiple renames of section %s"
-msgstr "Äã thay đổi tên phần %s nhiá»u lần"
-
-#: objcopy.c:1940
-msgid "private header data"
-msgstr "dữ liệu dòng đầu riêng"
-
-#: objcopy.c:1948
-#, c-format
-msgid "%s: error in %s: %s"
-msgstr "%s: lá»—i trong %s: %s"
-
-#: objcopy.c:2007
-msgid "making"
-msgstr "làm"
-
-#: objcopy.c:2022
-msgid "size"
-msgstr "cỡ"
-
-#: objcopy.c:2036
-msgid "vma"
-msgstr "vma"
-
-#: objcopy.c:2061
-msgid "alignment"
-msgstr "canh lá»"
-
-#: objcopy.c:2083
-msgid "private data"
-msgstr "dữ liệu riêng"
-
-#: objcopy.c:2091
-#, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr "%s: phần « %s »: lỗi trong %s: %s"
-
-#: objcopy.c:2363
-#, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr "%s: không thể tạo phần gỡ lỗi: %s"
-
-#: objcopy.c:2377
-#, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr "%s: không thể đặt nội dung phần gỡ lỗi: %s"
-
-#: objcopy.c:2386
-#, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr "%s: không biết cách ghi thông tin gỡ lỗi cho %s"
-
-#: objcopy.c:2561
-msgid "byte number must be non-negative"
-msgstr "số byte phải là không âm"
-
-#: objcopy.c:2571
-msgid "interleave must be positive"
-msgstr "chen vào phải là dương"
-
-#: objcopy.c:2591 objcopy.c:2599
-#, c-format
-msgid "%s both copied and removed"
-msgstr "%s cả được sao chép lẫn bị gỡ bá» Ä‘á»u"
-
-#: objcopy.c:2696 objcopy.c:2767 objcopy.c:2867 objcopy.c:2898 objcopy.c:2922
-#: objcopy.c:2926 objcopy.c:2946
-#, c-format
-msgid "bad format for %s"
-msgstr "dạng thức sai cho %s"
-
-#: objcopy.c:2717
-#, c-format
-msgid "cannot open: %s: %s"
-msgstr "không thể mở : %s: %s"
-
-#: objcopy.c:2836
-#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "Cảnh báo : Ä‘ang cắt xén Ä‘iá»n-khe từ 0x%s thành 0x%x"
-
-#: objcopy.c:3000
-msgid "alternate machine code index must be positive"
-msgstr "chỉ mục mã máy xen kẽ phải là dương"
-
-#: objcopy.c:3058
-msgid "byte number must be less than interleave"
-msgstr "số byte phải là ít hơn chen vào"
-
-#: objcopy.c:3088
-#, c-format
-msgid "architecture %s unknown"
-msgstr "không biết kiến trúc %s"
-
-#: objcopy.c:3092
-msgid "Warning: input target 'binary' required for binary architecture parameter."
-msgstr "Cảnh báo : đích nhập « binary » (nhị phân) cần thiết cho tham số kiến trúc nhị phân."
-
-#: objcopy.c:3093
-#, c-format
-msgid " Argument %s ignored"
-msgstr " Äối số %s bị bá» qua"
-
-#: objcopy.c:3099
-#, c-format
-msgid "warning: could not locate '%s'. System error message: %s"
-msgstr "cảnh báo : không thể định vị « %s ». Thông điệp lỗi hệ thống: %s"
-
-#: objcopy.c:3141 objcopy.c:3155
-#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr "%s %s%c0x%s chưa bao giỠdùng"
-
-#: objdump.c:178
-#, c-format
-msgid "Usage: %s <option(s)> <file(s)>\n"
-msgstr "Cách sá»­ dụng: %s <tùy_chá»n...> <tập_tin...>\n"
-
-#: objdump.c:179
-#, c-format
-msgid " Display information from object <file(s)>.\n"
-msgstr " Hiển thị thông tin từ <tập_tin...> đối tượng.\n"
-
-#: objdump.c:180
-#, c-format
-msgid " At least one of the following switches must be given:\n"
-msgstr " Phải đưa ra ít nhất một của những cái chuyển theo sau :\n"
-
-#: objdump.c:181
-#, c-format
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -e, --debugging-tags Display debug information using ctags style\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -W, --dwarf Display DWARF info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" @<file> Read options from <file>\n"
-" -v, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-" -a, --archive-headers \t\tHiển thị thông tin vỠ_các phần đầu kho_\n"
-" -f, --file-headers Hiển thị nội dung của _toàn bộ phần đầu tập tin_\n"
-" -p, --private-headers\n"
-"\t\tHiển thị nội dung của phần đầu tập tin đặc trưng cho đối tượng\n"
-"\t\t(các phần đầu riêng)\n"
-" -h, --[section-]headers Hiển thị nội dung của _các phần đầu của phần_\n"
-" -x, --all-headers \t\t Hiển thị ná»™i dung của _má»i phần đầu_\n"
-" -d, --disassemble\n"
-"\t\tHiển thị nội dung của các phần có khả năng thực hiện\n"
-"\t\t(rã)\n"
-" -D, --disassemble-all \t Hiển thị ná»™i dung dịch mã số của má»i phần\n"
-"\t\t(rã hết)\n"
-" -S, --source \t\t\t\t Trộn lẫn mã _nguồn_ với việc rã\n"
-" -s, --full-contents Hiển thị _ná»™i dung đầy đủ_ của má»i phần đã yêu cầu\n"
-" -g, --debugging Hiển thị thông tin _gỡ lỗi_ trong tập tin đối tượng\n"
-" -e, --debugging-tags Hiển thị thông tin gỡ lỗi, dùng kiểu dáng ctags\n"
-"\t\t(các thẻ gỡ lỗi)\n"
-" -G, --stabs Hiển thị (dạng thô) thông tin STABS nào trong thông tin\n"
-" -t, --syms \t\t\t Hiển thị nội dung của các bảng ký hiệu\n"
-"\t\t(các ký hiệu [viết tắt])\n"
-" -T, --dynamic-syms \t\tHiển thị nội dung của bảng ký hiệu động\n"
-"\t\t(các ký hiệu động [viết tắt])\n"
-" -r, --reloc \t\tHiển thị các mục nhập định vị lại trong tập tin\n"
-"\t\t(định vị lại [viết tắt])\n"
-" -R, --dynamic-reloc\n"
-"\t\t\t\t Hiển thị các mục nhập định vị lại động trong tập tin\n"
-"\t\t(định vị lại động [viết tắt])\n"
-" @<file> \t\t\t\t\t Äá»c các tùy chá»n từ tập tin đó\n"
-" -v, --version Hiển thị số thự tự _phiên bản_ của chương trình này\n"
-" -i, --info Liệt kê các dạng thức đối tượng và kiến trúc được hỗ trợ\n"
-"\t\t(thông tin [viết tắt])\n"
-" -H, --help \tHiển thị _trợ giúp_ này\n"
-
-#: objdump.c:206
-#, c-format
-msgid ""
-"\n"
-" The following switches are optional:\n"
-msgstr ""
-"\n"
-" Những cái chuyển theo đây là tùy chá»n:\n"
-
-#: objdump.c:207
-#, c-format
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -I, --include=DIR Add DIR to search list for source files\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', `gnu',\n"
-" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whose address is >= ADDR\n"
-" --stop-address=ADDR Only process data whose address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-" --special-syms Include special symbols in symbol dumps\n"
-"\n"
-msgstr ""
-" -b, --target=TÊN_BFD \tGhi rõ dạng thức đối tượng _đích_ là TÊN_BFD\n"
-" -m, --architecture=MÃY \t\t Ghi rõ _kiến trúc_ đích là MÃY\n"
-" -j, --section=TÊN \t\t Hiển thị thông tin chỉ cho _phần_ TÊN\n"
-" -M, --disassembler-options=TÙY_CHỌN\n"
-"\t\tGởi chuỗi TÙY_CHỌN qua cho _bộ rã_\n"
-"\t\t(các tùy chá»n bá»™ rã)\n"
-" -EB --endian=big\n"
-"\t\tGiả sử dạng thức tính trạng cuối lớn (big-endian) khi rã\n"
-" -EL --endian=little\n"
-"\t\tGiả sử dạng thức tính trạng cuối nhỠ(little-endian) khi rã\n"
-" --file-start-context \tGồm _ngữ cảnh_ từ _đầu tập tin_ (bằng « -S »)\n"
-" -I, --include=THƯ_MỤC\n"
-"\t\tThêm THƯ_MỤC vào danh sách tìm kiếm tập tin nguồn\n"
-"\t\t(bao gồm)\n"
-" -l, --line-numbers\n"
-"\t\tGồm các _số thứ tự dòng_ và tên tập tin trong kết xuất\n"
-" -C, --demangle[=KIỂU_DÃNG] giải mã các tên ký hiệu đã rối/xá»­ lý\n"
-"\t\t(tháo gỡ)\n"
-"\t\tKIỂU_DÃNG, nếu đã ghi rõ, có thể là:\n"
-"\t\t • auto\t\ttự động\n"
-"\t\t • gnu\n"
-" \t • lucid\t\trõ ràng\n"
-"\t\t • arm\n"
-"\t\t • hp\n"
-"\t\t • edg\n"
-"\t\t • gnu-v3\n"
-" \t\t • java\n"
-" \t • gnat\n"
-" -w, --wide \t\tÄịnh dạng dữ liệu xuất chiếm hÆ¡n 80 cá»™t\n"
-"\t\t(rá»™ng)\n"
-" -z, --disassemble-zeroes \t\tÄừng nhảy qua khối ố không khi rã\n"
-"\t\t(rã các số không)\n"
-" --start-address=ÄỊA_CHỈ Xá»­ lý chỉ dữ liệu có địa chỉ ≥ ÄỊA_CHỈ\n"
-" --stop-address=ÄỊA_CHỈ Xá»­ lý chỉ dữ liệu có địa chỉ ≤ ÄỊA_CHỈ\n"
-" --prefix-addresses \t\tIn ra địa chỉ hoàn toàn ở b việc rã\n"
-"\t\t(thêm vào đầu các địa chỉ)\n"
-" --[no-]show-raw-insn\n"
-"\t\tHiển thị thập lục phân ở bên việc rã kiểu ký hiệu\n"
-"hông] hiển thị câu lệnh thô)\n"
-" --adjust-vma=HIỆU_Sá»\n"
-"\t\tThêm HIỆU_Sá» vào má»i địa chỉ phần đã hiển thị\n"
-"\t\t(Ä‘iá»u chỉnh vma) --special-syms Gồm _các ký hiệu đặc biệt_ trong việc đổ ký hiệu\n"
-"\n"
-
-#: objdump.c:389
-#, c-format
-msgid "Sections:\n"
-msgstr "Phần:\n"
-
-#: objdump.c:392 objdump.c:396
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idx Name Size VMA LMA File off Algn"
-
-#: objdump.c:398
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "Idx Name Size VMA LMA File off Algn"
-
-#: objdump.c:402
-#, c-format
-msgid " Flags"
-msgstr " Cá»"
-
-#: objdump.c:404
-#, c-format
-msgid " Pg"
-msgstr " Tr"
-
-#: objdump.c:447
-#, c-format
-msgid "%s: not a dynamic object"
-msgstr "%s không phải là môt đối tượng động"
-
-#: objdump.c:1735
-#, c-format
-msgid "Disassembly of section %s:\n"
-msgstr "Việc rã phần %s:\n"
-
-#: objdump.c:1897
-#, c-format
-msgid "Can't use supplied machine %s"
-msgstr "Không thể sử dụng máy đã cung cấp %s"
-
-#: objdump.c:1916
-#, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr "Không thể rã cho kiến trúc %s\n"
-
-#: objdump.c:2006
-#, c-format
-msgid ""
-"\n"
-"Can't get contents for section '%s'.\n"
-msgstr ""
-"\n"
-"Không thể lấy nội dung cho phần « %s ».\n"
-
-#: objdump.c:2143
-#, c-format
-msgid ""
-"No %s section present\n"
-"\n"
-msgstr ""
-"Không có phần %s ở\n"
-"\n"
-
-#: objdump.c:2152
-#, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr "Việc Ä‘á»c phần %s của %s bị lá»—i: %s"
-
-#: objdump.c:2196
-#, c-format
-msgid ""
-"Contents of %s section:\n"
-"\n"
-msgstr ""
-"Nội dung phần %s\n"
-"\n"
-
-#: objdump.c:2323
-#, c-format
-msgid "architecture: %s, "
-msgstr "kiến trúc: %s, "
-
-#: objdump.c:2326
-#, c-format
-msgid "flags 0x%08x:\n"
-msgstr "cá» 0x%08x:\n"
-
-#: objdump.c:2340
-#, c-format
-msgid ""
-"\n"
-"start address 0x"
-msgstr ""
-"\n"
-"địa chỉ đầu 0x"
-
-#: objdump.c:2380
-#, c-format
-msgid "Contents of section %s:\n"
-msgstr "Nội dung phần %s:\n"
-
-#: objdump.c:2505
-#, c-format
-msgid "no symbols\n"
-msgstr "không có ký hiệu\n"
-
-#: objdump.c:2512
-#, c-format
-msgid "no information for symbol number %ld\n"
-msgstr "không có thông tin cho ký hiệu số %ld\n"
-
-#: objdump.c:2515
-#, c-format
-msgid "could not determine the type of symbol number %ld\n"
-msgstr "không thể quyết định kiểu ký hiệu số %ld\n"
-
-#: objdump.c:2788
-#, c-format
-msgid ""
-"\n"
-"%s: file format %s\n"
-msgstr ""
-"\n"
-"%s: dạng thức tập tin %s\n"
-
-#: objdump.c:2845
-#, c-format
-msgid "%s: printing debugging information failed"
-msgstr "%s: việc in ra thông tin gỡ lỗi bị lỗi"
-
-#: objdump.c:2936
-#, c-format
-msgid "In archive %s:\n"
-msgstr "Trong kho %s\n"
-
-#: objdump.c:3058
-msgid "unrecognized -E option"
-msgstr "không nhận ra tùy chá»n « -E »"
-
-#: objdump.c:3069
-#, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr "không nhận ra kiểu tính trạng cuối (endian) « %s »"
-
-#: rdcoff.c:196
-#, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr "parse_coff_type: (phân tách kiểu coff) Mã kiểu sai 0x%x"
-
-#: rdcoff.c:404 rdcoff.c:509 rdcoff.c:697
-#, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr "« bfd_coff_get_syment » bị lỗi: %s"
-
-#: rdcoff.c:420 rdcoff.c:717
-#, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr "« bfd_coff_get_auxent » bị lỗi: %s"
-
-#: rdcoff.c:784
-#, c-format
-msgid "%ld: .bf without preceding function"
-msgstr "%ld: « .bf » không có hàm đi trước"
-
-#: rdcoff.c:834
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr "%ld: « .ef » bất ngá»\n"
-
-#: rddbg.c:85
-#, c-format
-msgid "%s: no recognized debugging information"
-msgstr "%s: không có thông tin gỡ lỗi đã nhận ra"
-
-#: rddbg.c:394
-#, c-format
-msgid "Last stabs entries before error:\n"
-msgstr "Những mục nhập stabs cuối cùng trước lỗi:\n"
-
-#: readelf.c:264
-#, c-format
-msgid "Unable to seek to 0x%lx for %s\n"
-msgstr "Không thể nhảy tới 0x%lx tìm %s\n"
-
-#: readelf.c:279
-#, c-format
-msgid "Out of memory allocating 0x%lx bytes for %s\n"
-msgstr "Hết bộ nhớ khi cấp phát 0x%lx byte cho %s\n"
-
-#: readelf.c:289
-#, c-format
-msgid "Unable to read in 0x%lx bytes of %s\n"
-msgstr "Không thể Ä‘á»c nhập 0x%lx byte của %s\n"
-
-#: readelf.c:623
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr "Không biết vỠviệc định vị lại trên kiến trúc máy này\n"
-
-#: readelf.c:643 readelf.c:671 readelf.c:715 readelf.c:743
-msgid "relocs"
-msgstr "đ.v. lại"
-
-#: readelf.c:654 readelf.c:682 readelf.c:726 readelf.c:754
-msgid "out of memory parsing relocs"
-msgstr "hết bộ nhớ khi phân tách việc định vị lại"
-
-#: readelf.c:808
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
-msgstr " Hiệu Tin Kiểu Giá trị ký hiệu Tên ký hiệu + gì thêm\n"
-
-#: readelf.c:810
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
-msgstr " HIệu Tin Kiểu Giá trị ký hiệu Tên ký hiệu + gì thêm\n"
-
-#: readelf.c:815
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name\n"
-msgstr " HIệu Tin Kiểu Giá trị ký hiệu Tên ký hiệu\n"
-
-#: readelf.c:817
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name\n"
-msgstr " Hiệu Tin Kiểu Giá trị ký hiệu Tên ký hiệu\n"
-
-#: readelf.c:825
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
-msgstr " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
-
-#: readelf.c:827
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
-msgstr " Hiệu Tin Kiểu Giá trị ký hiệu Tên ký hiệu + gì thêm\n"
-
-#: readelf.c:832
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr " Offset Info Type Symbol's Value Symbol's Name\n"
-
-#: readelf.c:834
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name\n"
-msgstr " HIệu Tin Kiểu Giá trị ký hiệu Tên ký hiệu\n"
-
-#: readelf.c:1127 readelf.c:1129 readelf.c:1238 readelf.c:1240 readelf.c:1249
-#: readelf.c:1251
-#, c-format
-msgid "unrecognized: %-7lx"
-msgstr "không nhận ra: %-7lx"
-
-#: readelf.c:1154
-#, c-format
-msgid "<unknown addend: %lx>"
-msgstr "<số thêm vào không rõ : %lx>"
-
-#: readelf.c:1210
-#, c-format
-msgid "<string table index: %3ld>"
-msgstr "<chỉ mục bảng chuỗi: %3ld>"
-
-#: readelf.c:1212
-#, c-format
-msgid "<corrupt string table index: %3ld>"
-msgstr "<chỉ mục bảng chuá»—i bị há»ng: %3ld>"
-
-#: readelf.c:1522
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr "Äặc trÆ°ng cho bá»™ xá»­ lý: %lx"
-
-#: readelf.c:1543
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr "Äặc trÆ°ng cho Hệ Ä‘iá»u hành: %lx"
-
-#: readelf.c:1547 readelf.c:2349
-#, c-format
-msgid "<unknown>: %lx"
-msgstr "<không rõ>: %lx"
-
-#: readelf.c:1560
-msgid "NONE (None)"
-msgstr "KHÔNG CÓ (Không có)"
-
-#: readelf.c:1561
-msgid "REL (Relocatable file)"
-msgstr "REL (Tập tin có thể _định vị lại_)"
-
-#: readelf.c:1562
-msgid "EXEC (Executable file)"
-msgstr "EXEC (Executable file)"
-
-#: readelf.c:1563
-msgid "DYN (Shared object file)"
-msgstr "DYN (Shared object file)"
-
-#: readelf.c:1564
-msgid "CORE (Core file)"
-msgstr "CORE (Core file)"
-
-#: readelf.c:1568
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr "Äặc trÆ°ng cho bá»™ xá»­ lý: (%x)"
-
-#: readelf.c:1570
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr "Äặc trÆ°ng cho HÄH: (%x)"
-
-#: readelf.c:1572 readelf.c:1681 readelf.c:2541
-#, c-format
-msgid "<unknown>: %x"
-msgstr "<không rõ>: %x"
-
-#: readelf.c:1584
-msgid "None"
-msgstr "Không có"
-
-#: readelf.c:2186
-msgid "Standalone App"
-msgstr "Ứng dụng Äá»™c lập"
-
-#: readelf.c:2189 readelf.c:2948 readelf.c:2964
-#, c-format
-msgid "<unknown: %x>"
-msgstr "<không rõ : %x>"
-
-#: readelf.c:2586
-#, c-format
-msgid "Usage: readelf <option(s)> elf-file(s)\n"
-msgstr "Cách sá»­ dụng: readelf <tùy_chá»n...> tập_tin_elf...\n"
-
-#: readelf.c:2587
-#, c-format
-msgid " Display information about the contents of ELF format files\n"
-msgstr " Hiển thị thông tin vỠnội dung tập tin dạng thức ELF\n"
-
-#: readelf.c:2588
-#, c-format
-msgid ""
-" Options are:\n"
-" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Display the ELF file header\n"
-" -l --program-headers Display the program headers\n"
-" --segments An alias for --program-headers\n"
-" -S --section-headers Display the sections' header\n"
-" --sections An alias for --section-headers\n"
-" -g --section-groups Display the section groups\n"
-" -t --section-details Display the section details\n"
-" -e --headers Equivalent to: -h -l -S\n"
-" -s --syms Display the symbol table\n"
-" --symbols An alias for --syms\n"
-" -n --notes Display the core notes (if present)\n"
-" -r --relocs Display the relocations (if present)\n"
-" -u --unwind Display the unwind info (if present)\n"
-" -d --dynamic Display the dynamic section (if present)\n"
-" -V --version-info Display the version sections (if present)\n"
-" -A --arch-specific Display architecture specific information (if any).\n"
-" -D --use-dynamic Use the dynamic section info when displaying symbols\n"
-" -x --hex-dump=<number> Dump the contents of section <number>\n"
-" -w[liaprmfFsoR] or\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n"
-" Display the contents of DWARF2 debug sections\n"
-msgstr ""
-" Tùy chá»n:\n"
-" -a --all \t\t\t\t\tBằng: -h -l -S -s -r -d -V -A -I\n"
-"\t(hết)\n"
-" -h --file-header \t\t\t\tHiển thị _dòng đầu tập tin_ ELF\n"
-" -l --program-headers \t\tHiển thị _các dòng đầu chương trình_\n"
-" --segments \t\t\tBiệt hiệu cho « --program-headers »\n"
-"\t(các phân đoạn)\n"
-" -S --section-headers \t\t\tHiển thị dòng đầu của các phần\n"
-"\t(các dòng đầu phần)\n"
-" --sections \t\t\tBiệt hiệu cho « --section-headers »\n"
-"\t(các phần)\n"
-" -g --section-groups \t\t\t Hiển thị _các nhóm phần_\n"
-" -t --section-details\t\t\tHiển thị _chi tiết vỠphần_\n"
-" -e --headers \t\t\t\tBằng: -h -l -S\n"
-"\t(các dòng đầu)\n"
-" -s --syms \t\t\tHiển thị bảng _ký hiệu_\n"
-" --symbols \t\t\tBiệt hiệu cho « --syms »\n"
-"\t(các ký hiệu [« syms » là viết tắt])\n"
-" -n --notes \t\t\tHiển thị _các ghi chú_ lõi (nếu có)\n"
-" -r --relocs \t\tHiển thị _các việc định vị lại_ (nếu có)\n"
-" -u --unwind \t\tHiển thị thông tin _tri ra_ (nếu có)\n"
-" -d --dynamic \t\tHiển thị phần _động_ (nếu có)\n"
-" -V --version-info \t\tHiển thị các phần phiên bản (nếu có)\n"
-"\t(thông tin phiên bản)\n"
-" -A --arch-specific Hiển thị thông tin _đặc trưng cho kiến trúc_ (nếu có)\n"
-" -D --use-dynamic _Dùng_ thông tin phần _động_ khi hiển thị ký hiệu\n"
-" -x --hex-dump=<số> \t\t\tÄổ ná»™i dung phần <số>\n"
-"\t(đổ thập lục)\n"
-" -w[liaprmfFsoR] or\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n"
-"\t[line\t\t\tdòng\n"
-"\tinfo\t\t\tthông tin\n"
-"\tabbrev.\t\tviết tắt\n"
-"\tpubnames\tcác tên công\n"
-"\taranges\t\tcác phạm vị a\n"
-"\tmacro\t\tbộ lệnh\n"
-"\tframes\t\tcác khung\n"
-"\tstr\t\t\tchuá»—i\n"
-"\tloc\t\t\tđịnh vị\n"
-"\tRanges\t\tCác phạm vị]\n"
-" Hiển thị nội dung các phần gỡ lỗi kiểu DWARF2\n"
-
-#: readelf.c:2612
-#, c-format
-msgid ""
-" -i --instruction-dump=<number>\n"
-" Disassemble the contents of section <number>\n"
-msgstr ""
-" -i --instruction-dump=<số>\t\tTháo ra nội dung phần <số>\n"
-"\t(đổ câu lệnh)\n"
-
-#: readelf.c:2616
-#, c-format
-msgid ""
-" -I --histogram Display histogram of bucket list lengths\n"
-" -W --wide Allow output width to exceed 80 characters\n"
-" @<file> Read options from <file>\n"
-" -H --help Display this information\n"
-" -v --version Display the version number of readelf\n"
-msgstr ""
-" -I --histogram\n"
-"\tHiển thị _biểu đồ tần xuất_ của các độ dài danh sách xô\n"
-" -W --wide Cho phép độ _rộng_ kết xuất vượt qua 80 ký tự\n"
-" @<file> \t\tÄá»c các tùy chá»n từ tập tin đó\n"
-" -H --help \tHiển thị _trợ giúp_ này\n"
-" -v --version \tHiển thị số thứ tự _phiên bản_ của readelf\n"
-
-#: readelf.c:2642 readelf.c:9180
-msgid "Out of memory allocating dump request table."
-msgstr "Hết bộ nhớ khi cấp phát bảng yêu cầu đổ."
-
-#: readelf.c:2816 readelf.c:2884
-#, c-format
-msgid "Unrecognized debug option '%s'\n"
-msgstr "Không nhận diện tùy chá»n gỡ lá»—i « %s »\n"
-
-#: readelf.c:2918
-#, c-format
-msgid "Invalid option '-%c'\n"
-msgstr "Tùy chá»n không hợp lệ « -%c »\n"
-
-#: readelf.c:2932
-msgid "Nothing to do.\n"
-msgstr "Không có gì cần làm.\n"
-
-#: readelf.c:2944 readelf.c:2960 readelf.c:6169
-msgid "none"
-msgstr "không có"
-
-#: readelf.c:2961
-msgid "2's complement, little endian"
-msgstr "phần bù của 2, tính trạng cuối nhá»"
-
-#: readelf.c:2962
-msgid "2's complement, big endian"
-msgstr "phần bù của 2, tính trạng cuối lớn"
-
-#: readelf.c:2980
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr "Không phải là tập tin ELF — có những byte ma thuật không đúng tại đầu nó.\n"
-
-#: readelf.c:2988
-#, c-format
-msgid "ELF Header:\n"
-msgstr "Dòng đầu ELF:\n"
-
-#: readelf.c:2989
-#, c-format
-msgid " Magic: "
-msgstr " Ma thuật: "
-
-#: readelf.c:2993
-#, c-format
-msgid " Class: %s\n"
-msgstr " Class: %s\n"
-
-#: readelf.c:2995
-#, c-format
-msgid " Data: %s\n"
-msgstr " Data: %s\n"
-
-#: readelf.c:2997
-#, c-format
-msgid " Version: %d %s\n"
-msgstr " Version: %d %s\n"
-
-#: readelf.c:3004
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr " OS/ABI: %s\n"
-
-#: readelf.c:3006
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr " Phiên bản ABI: %d\n"
-
-#: readelf.c:3008
-#, c-format
-msgid " Type: %s\n"
-msgstr " Type: %s\n"
-
-#: readelf.c:3010
-#, c-format
-msgid " Machine: %s\n"
-msgstr " Machine: %s\n"
-
-#: readelf.c:3012
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr " Version: 0x%lx\n"
-
-#: readelf.c:3015
-#, c-format
-msgid " Entry point address: "
-msgstr " Äịa chỉ Ä‘iểm vào : "
-
-#: readelf.c:3017
-#, c-format
-msgid ""
-"\n"
-" Start of program headers: "
-msgstr ""
-"\n"
-" Äiểm đầu các dòng đầu chÆ°Æ¡ng trình: "
-
-#: readelf.c:3019
-#, c-format
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr ""
-" (byte vào tập tin)\n"
-" Äầu các dòng đầu phần: "
-
-#: readelf.c:3021
-#, c-format
-msgid " (bytes into file)\n"
-msgstr " (byte vào tập tin)\n"
-
-#: readelf.c:3023
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr " Flags: 0x%lx%s\n"
-
-#: readelf.c:3026
-#, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr " Cỡ phần này: %ld (byte)\n"
-
-#: readelf.c:3028
-#, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr " Cỡ các dòng đầu chương trình: %ld (byte)\n"
-
-#: readelf.c:3030
-#, c-format
-msgid " Number of program headers: %ld\n"
-msgstr " Số dòng đầu chương trình: %ld\n"
-
-#: readelf.c:3032
-#, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr " Cỡ các dòng đầu phần: %ld (byte)\n"
-
-#: readelf.c:3034
-#, c-format
-msgid " Number of section headers: %ld"
-msgstr " Số dòng đầu phần: %ld"
-
-#: readelf.c:3039
-#, c-format
-msgid " Section header string table index: %ld"
-msgstr " Chỉ mục bảng chuỗi dòng đầu phần: %ld"
-
-#: readelf.c:3070 readelf.c:3103
-msgid "program headers"
-msgstr "các dòng đầu chương trình"
-
-#: readelf.c:3141 readelf.c:3440 readelf.c:3481 readelf.c:3540 readelf.c:3603
-#: readelf.c:4208 readelf.c:4232 readelf.c:5510 readelf.c:5554 readelf.c:5752
-#: readelf.c:6734 readelf.c:6748 readelf.c:8564 readelf.c:8972 readelf.c:9039
-msgid "Out of memory\n"
-msgstr "Hết bộ nhớ\n"
-
-#: readelf.c:3168
-#, c-format
-msgid ""
-"\n"
-"There are no program headers in this file.\n"
-msgstr ""
-"\n"
-"Không có dòng đầu chương trình nào trong tập tin này.\n"
-
-#: readelf.c:3174
-#, c-format
-msgid ""
-"\n"
-"Elf file type is %s\n"
-msgstr ""
-"\n"
-"Kiểu tập tin Elf là %s\n"
-
-#: readelf.c:3175
-#, c-format
-msgid "Entry point "
-msgstr "Äiểm vào "
-
-#: readelf.c:3177
-#, c-format
-msgid ""
-"\n"
-"There are %d program headers, starting at offset "
-msgstr ""
-"\n"
-"Có %d dòng đầu chương trình, bắt đầu tại hiệu số"
-
-#: readelf.c:3189 readelf.c:3191
-#, c-format
-msgid ""
-"\n"
-"Program Headers:\n"
-msgstr ""
-"\n"
-"Dòng đầu chương trình:\n"
-
-#: readelf.c:3195
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Kiểu HIệu ÄChỉẢo ÄChỉVật CỡTập CỡNhá»› Cá» Cạnh lá»\n"
-
-#: readelf.c:3198
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " Kiểu HIệu Äịa Chỉ Ảo Äịa Chỉ Vật lý CỡTập CỡNhá»› Cá» Cạnh lá»\n"
-
-#: readelf.c:3202
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr " Kiểu HIệu Äịa Chỉ Ảo Äịa Chỉ Vật lý\n"
-
-#: readelf.c:3204
-#, c-format
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr " FileSiz MemSiz Flags Align\n"
-
-#: readelf.c:3297
-msgid "more than one dynamic segment\n"
-msgstr "hơn một phân đoạn động\n"
-
-#: readelf.c:3308
-msgid "no .dynamic section in the dynamic segment"
-msgstr "không có phân đoạn « .dynamic » (động) trong phân đoạn động"
-
-#: readelf.c:3317
-msgid "the .dynamic section is not contained within the dynamic segment"
-msgstr "phần « .dynamic » (động) không có được chứa ở trong phân đoạn động"
-
-#: readelf.c:3319
-msgid "the .dynamic section is not the first section in the dynamic segment."
-msgstr "phần « .dynamic » (động) không phải là phần thứ nhất trong phân đoạn động."
-
-#: readelf.c:3333
-msgid "Unable to find program interpreter name\n"
-msgstr "Không tìm thấy tên bộ giải dịch chương trình\n"
-
-#: readelf.c:3340
-#, c-format
-msgid ""
-"\n"
-" [Requesting program interpreter: %s]"
-msgstr ""
-"\n"
-" [Äang yêu cầu bá»™ giải dịch chÆ°Æ¡ng trình: %s]"
-
-#: readelf.c:3352
-#, c-format
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-msgstr ""
-"\n"
-" Ãnh xạ Phần đến Phân Ä‘oạn:\n"
-
-#: readelf.c:3353
-#, c-format
-msgid " Segment Sections...\n"
-msgstr " Các phần phân đoạn...\n"
-
-#: readelf.c:3402
-msgid "Cannot interpret virtual addresses without program headers.\n"
-msgstr "Không thể giải dịch địa chỉ ảo khi không có dòng đầu chương trình.\n"
-
-#: readelf.c:3418
-#, c-format
-msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
-msgstr "Äịa chỉ ảo 0x%lx không được định vị trong phân Ä‘oạn kiểu « PT_LOAD » nào.\n"
-
-#: readelf.c:3432 readelf.c:3473
-msgid "section headers"
-msgstr "dòng đầu phần"
-
-#: readelf.c:3517 readelf.c:3580
-msgid "symbols"
-msgstr "ký hiệu"
-
-#: readelf.c:3527 readelf.c:3590
-msgid "symtab shndx"
-msgstr "symtab shndx"
-
-#: readelf.c:3817 readelf.c:4192
-#, c-format
-msgid ""
-"\n"
-"There are no sections in this file.\n"
-msgstr ""
-"\n"
-"Không có phần nào trong tập tin này.\n"
-
-#: readelf.c:3823
-#, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr "Có %d dòng đầu phần, bắt đầu tại hiệu số 0x%lx:\n"
-
-#: readelf.c:3842 readelf.c:4309 readelf.c:4544 readelf.c:4852 readelf.c:5267
-#: readelf.c:6906
-msgid "string table"
-msgstr "bảng chuỗi"
-
-#: readelf.c:3881
-#, c-format
-msgid "Section %d has invalid sh_entsize %lx (expected %lx)\n"
-msgstr "Phần %d có kích cỡ sh_entsize không hợp lệ %lx (ngỠ%lx)\n"
-
-#: readelf.c:3901
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr "Tập tin chứa nhiá»u bảng ký hiệu Ä‘á»™ng\n"
-
-# Type: text
-# Description
-#: readelf.c:3914
-msgid "File contains multiple dynamic string tables\n"
-msgstr "Tập tin chứa nhiá»u bảng chuá»—i Ä‘á»™ng\n"
-
-#: readelf.c:3919
-msgid "dynamic strings"
-msgstr "chuá»—i Ä‘á»™ng"
-
-#: readelf.c:3926
-msgid "File contains multiple symtab shndx tables\n"
-msgstr "Tập tin chứa nhiá»u bảng symtab shndx\n"
-
-#: readelf.c:3973
-#, c-format
-msgid ""
-"\n"
-"Section Headers:\n"
-msgstr ""
-"\n"
-"Dòng đầu phần:\n"
-
-#: readelf.c:3975
-#, c-format
-msgid ""
-"\n"
-"Section Header:\n"
-msgstr ""
-"\n"
-"Dòng đầu phần:\n"
-
-#: readelf.c:3981 readelf.c:3992 readelf.c:4003
-#, c-format
-msgid " [Nr] Name\n"
-msgstr " [Nr] Tên\n"
-
-#: readelf.c:3982
-#, c-format
-msgid " Type Addr Off Size ES Lk Inf Al\n"
-msgstr " Kiểu ÄChỉ Hiệu Cỡ ES Lk Tin Cl\n"
-
-#: readelf.c:3986
-#, c-format
-msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-
-#: readelf.c:3993
-#, c-format
-msgid " Type Address Off Size ES Lk Inf Al\n"
-msgstr " Kiểu Äịa chỉ Hiệu Cỡ ES Lk Tin Cl\n"
-
-#: readelf.c:3997
-#, c-format
-msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
-msgstr " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
-
-#: readelf.c:4004
-#, c-format
-msgid " Type Address Offset Link\n"
-msgstr " Kiểu Äịa chỉ Hiệu số Liên kết\n"
-
-#: readelf.c:4005
-#, c-format
-msgid " Size EntSize Info Align\n"
-msgstr " Cỡ CỡEnt TTin Canh lá»\n"
-
-#: readelf.c:4009
-#, c-format
-msgid " [Nr] Name Type Address Offset\n"
-msgstr " [Nr] Name Type Address Offset\n"
-
-#: readelf.c:4010
-#, c-format
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr " Size EntSize Flags Link Info Align\n"
-
-#: readelf.c:4015
-#, c-format
-msgid " Flags\n"
-msgstr " Cá»\n"
-
-#: readelf.c:4150
-#, c-format
-msgid ""
-"Key to Flags:\n"
-" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-" I (info), L (link order), G (group), x (unknown)\n"
-" O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr ""
-"Cá» ey \tW\tghi\n"
-" \tA\tcấp phát\n"
-"\tX\tthực hiện\n"
-"\tM\ttrá»™n\n"
-"\tS\tcác chuỗi\n"
-"\tI\tthông tin\n"
-"\tL\tthứ tự liên kết\n"
-"\tG\tnhóm\n"
-"\tO\tcần thiết xá»­ lý hệ Ä‘iá»u hành thêm\n"
-"\to \tđặc trÆ°ng cho hệ Ä‘iá»u hành\n"
-"\ts\tđặc trưng cho bộ xử lý\n"
-
-#: readelf.c:4168
-#, c-format
-msgid "[<unknown>: 0x%x]"
-msgstr "[<không rõ>: 0x%x]"
-
-#: readelf.c:4199
-msgid "Section headers are not available!\n"
-msgstr "Dòng đầu phần không sẵn sàng.\n"
-
-#: readelf.c:4223
-#, c-format
-msgid ""
-"\n"
-"There are no section groups in this file.\n"
-msgstr ""
-"\n"
-"Không có nhóm phần nào trong tập tin này.\n"
-
-#: readelf.c:4259
-#, c-format
-msgid "Bad sh_link in group section `%s'\n"
-msgstr "Có liên kết « sh_link » sai trong phần nhóm « %s »\n"
-
-#: readelf.c:4278
-#, c-format
-msgid "Bad sh_info in group section `%s'\n"
-msgstr "Có thông tin « sh_info » sai trong phần nhóm « %s »\n"
-
-#: readelf.c:4317 readelf.c:7243
-msgid "section data"
-msgstr "dữ liệu phần"
-
-#: readelf.c:4329
-#, c-format
-msgid " [Index] Name\n"
-msgstr " [Chỉ mục] Tên\n"
-
-#: readelf.c:4343
-#, c-format
-msgid "section [%5u] in group section [%5u] > maximum section [%5u]\n"
-msgstr "phần [%5u] trong phần nhóm [%5u]>phần tối đa [%5u]\n"
-
-#: readelf.c:4349
-#, c-format
-msgid "invalid section [%5u] in group section [%5u]\n"
-msgstr "phần không hợp lệ [%5u] trong phần nhóm [%5u]\n"
-
-#: readelf.c:4359
-#, c-format
-msgid "section [%5u] in group section [%5u] already in group section [%5u]\n"
-msgstr "phần [%5u] trong phần nhóm [%5u] đã có trong phần nhóm [%5u]\n"
-
-#: readelf.c:4372
-#, c-format
-msgid "section 0 in group section [%5u]\n"
-msgstr "phần 0 trong phần nhóm [%5u]\n"
-
-#: readelf.c:4468
-#, c-format
-msgid ""
-"\n"
-"'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr ""
-"\n"
-"phần định vị lại « %s » tại hiệu số 0x%lx chứa %ld byte:\n"
-
-#: readelf.c:4480
-#, c-format
-msgid ""
-"\n"
-"There are no dynamic relocations in this file.\n"
-msgstr ""
-"\n"
-"Không có việc định vị lại động nào trong tập tin này.\n"
-
-#: readelf.c:4504
-#, c-format
-msgid ""
-"\n"
-"Relocation section "
-msgstr ""
-"\n"
-"Phần định vị lại"
-
-#: readelf.c:4509 readelf.c:4928 readelf.c:4942 readelf.c:5282
-#, c-format
-msgid "'%s'"
-msgstr "« %s »"
-
-#: readelf.c:4511 readelf.c:4944 readelf.c:5284
-#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr " tại hiệu số 0x%lx chứa %lu mục nhập:\n"
-
-#: readelf.c:4563
-#, c-format
-msgid ""
-"\n"
-"There are no relocations in this file.\n"
-msgstr ""
-"\n"
-"Không có việc định vị lại nào trong tập tin này.\n"
-
-#: readelf.c:4742 readelf.c:5124
-msgid "unwind table"
-msgstr "tri ra bảng"
-
-#: readelf.c:4801 readelf.c:5214
-#, c-format
-msgid "Skipping unexpected relocation type %s\n"
-msgstr "Äang nhảy kiểu định vị lại bất ngá» %s\n"
-
-#: readelf.c:4860 readelf.c:5275 readelf.c:5326
-#, c-format
-msgid ""
-"\n"
-"There are no unwind sections in this file.\n"
-msgstr ""
-"\n"
-"Không có phần tri ra nào trong tập tin này.\n"
-
-#: readelf.c:4923
-#, c-format
-msgid ""
-"\n"
-"Could not find unwind info section for "
-msgstr ""
-"\n"
-"Không thể tìm thấy phần thông tin tri ra cho "
-
-#: readelf.c:4935
-msgid "unwind info"
-msgstr "thông tin tri ra"
-
-#: readelf.c:4937 readelf.c:5281
-#, c-format
-msgid ""
-"\n"
-"Unwind section "
-msgstr ""
-"\n"
-"Phần tri ra "
-
-#: readelf.c:5491 readelf.c:5535
-msgid "dynamic section"
-msgstr "phần động"
-
-#: readelf.c:5612
-#, c-format
-msgid ""
-"\n"
-"There is no dynamic section in this file.\n"
-msgstr ""
-"\n"
-"Không có phần động nào trong tập tin này.\n"
-
-#: readelf.c:5650
-msgid "Unable to seek to end of file!"
-msgstr "• Không thể tìm tới kết thúc tập tin. •"
-
-#: readelf.c:5663
-msgid "Unable to determine the number of symbols to load\n"
-msgstr "Không thể quyết định số ký hiệu cần tải\n"
-
-#: readelf.c:5698
-msgid "Unable to seek to end of file\n"
-msgstr "Không thể tìm tới kết thúc tập tin\n"
-
-#: readelf.c:5705
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr "Không thể quyết định độ dài của bảng chuỗi động\n"
-
-#: readelf.c:5710
-msgid "dynamic string table"
-msgstr "bảng chuỗi động"
-
-#: readelf.c:5745
-msgid "symbol information"
-msgstr "thông tin ký hiệu"
-
-#: readelf.c:5770
-#, c-format
-msgid ""
-"\n"
-"Dynamic section at offset 0x%lx contains %u entries:\n"
-msgstr ""
-"\n"
-"Phần động tại hiệu số 0x%lx chứa %u mục nhập:\n"
-
-#: readelf.c:5773
-#, c-format
-msgid " Tag Type Name/Value\n"
-msgstr " Thẻ Kiểu Tên/Giá trị\n"
-
-#: readelf.c:5809
-#, c-format
-msgid "Auxiliary library"
-msgstr "Thư viên phụ"
-
-#: readelf.c:5813
-#, c-format
-msgid "Filter library"
-msgstr "ThÆ° viên lá»c"
-
-#: readelf.c:5817
-#, c-format
-msgid "Configuration file"
-msgstr "Tập tin cấu hình"
-
-#: readelf.c:5821
-#, c-format
-msgid "Dependency audit library"
-msgstr "Thư viên kiểm tra cách phụ thuộc"
-
-#: readelf.c:5825
-#, c-format
-msgid "Audit library"
-msgstr "Thư viên kiểm tra"
-
-#: readelf.c:5843 readelf.c:5871 readelf.c:5899
-#, c-format
-msgid "Flags:"
-msgstr "Cá» :"
-
-#: readelf.c:5846 readelf.c:5874 readelf.c:5901
-#, c-format
-msgid " None\n"
-msgstr " Không có\n"
-
-#: readelf.c:6022
-#, c-format
-msgid "Shared library: [%s]"
-msgstr "Thư viện dùng chung: [%s]"
-
-#: readelf.c:6025
-#, c-format
-msgid " program interpreter"
-msgstr " bộ giải dịch chương trình"
-
-#: readelf.c:6029
-#, c-format
-msgid "Library soname: [%s]"
-msgstr "soname (tên so) thư viên: [%s]"
-
-#: readelf.c:6033
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr "rpath (Ä‘Æ°á»ng dẫn r) thÆ° viên: [%s]"
-
-#: readelf.c:6037
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr "runpath (Ä‘Æ°á»ng dẫn chạy) thÆ° viên: [%s]"
-
-#: readelf.c:6100
-#, c-format
-msgid "Not needed object: [%s]\n"
-msgstr "Äối tượng không cần thiết: [%s]\n"
-
-#: readelf.c:6214
-#, c-format
-msgid ""
-"\n"
-"Version definition section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Phần định nghĩa phiên bản « %s » chứa %ld mục nhập:\n"
-
-#: readelf.c:6217
-#, c-format
-msgid " Addr: 0x"
-msgstr " ÄChỉ: 0x"
-
-#: readelf.c:6219 readelf.c:6426
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr " HIệu: %#08lx LKết: %lx (%s)\n"
-
-#: readelf.c:6228
-msgid "version definition section"
-msgstr "phần định nghĩa phiên bản"
-
-#: readelf.c:6254
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr " %#06x: Bản: %d Cá»: %s"
-
-#: readelf.c:6257
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr " Chỉ mục: %d Äếm: %d "
-
-#: readelf.c:6268
-#, c-format
-msgid "Name: %s\n"
-msgstr "Tên: %s\n"
-
-#: readelf.c:6270
-#, c-format
-msgid "Name index: %ld\n"
-msgstr "Chỉ mục tên: %ld\n"
-
-#: readelf.c:6285
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr " %#06x: Mẹ %d: %s\n"
-
-#: readelf.c:6288
-#, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr " %#06x: Mẹ %d, chỉ mục tên: %ld\n"
-
-#: readelf.c:6307
-#, c-format
-msgid ""
-"\n"
-"Version needs section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"Phần cần thiết phiên bản « %s » chứa %ld mục nhập:\n"
-
-#: readelf.c:6310
-#, c-format
-msgid " Addr: 0x"
-msgstr " ÄChỉ: 0x"
-
-#: readelf.c:6312
-#, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr " HIệu: %#08lx Liên kết đến phần: %ld (%s)\n"
-
-#: readelf.c:6321
-msgid "version need section"
-msgstr "phần cần phiên bản"
-
-#: readelf.c:6343
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr " %#06x: PhBản: %d"
-
-#: readelf.c:6346
-#, c-format
-msgid " File: %s"
-msgstr " Tập tin: %s"
-
-#: readelf.c:6348
-#, c-format
-msgid " File: %lx"
-msgstr " Tập tin: %lx"
-
-#: readelf.c:6350
-#, c-format
-msgid " Cnt: %d\n"
-msgstr " Äếm: %d\n"
-
-#: readelf.c:6368
-#, c-format
-msgid " %#06x: Name: %s"
-msgstr " %#06x: Tên: %s"
-
-#: readelf.c:6371
-#, c-format
-msgid " %#06x: Name index: %lx"
-msgstr " %#06x: Chỉ mục tên: %lx"
-
-#: readelf.c:6374
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr " Cá»: %s Phiên bản: %d\n"
-
-#: readelf.c:6417
-msgid "version string table"
-msgstr "bảng chuỗi phiên bản"
-
-#: readelf.c:6421
-#, c-format
-msgid ""
-"\n"
-"Version symbols section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"Phần ký hiệu phiên bản « %s » chứa %d mục nhập:\n"
-
-#: readelf.c:6424
-#, c-format
-msgid " Addr: "
-msgstr " ÄChỉ: "
-
-#: readelf.c:6434
-msgid "version symbol data"
-msgstr "dữ liệu ký hiệu phiên bản"
-
-#: readelf.c:6461
-msgid " 0 (*local*) "
-msgstr " 0 (*local*) "
-
-#: readelf.c:6465
-msgid " 1 (*global*) "
-msgstr " 1 (*toàn cụcglobal*) "
-
-#: readelf.c:6503 readelf.c:6969
-msgid "version need"
-msgstr "phiên bản cần"
-
-#: readelf.c:6513
-msgid "version need aux (2)"
-msgstr "phiên bản cần phụ (2)"
-
-#: readelf.c:6555 readelf.c:7034
-msgid "version def"
-msgstr "phbản đ.nghĩa"
-
-#: readelf.c:6575 readelf.c:7049
-msgid "version def aux"
-msgstr "phbản đ.nghĩa phụ"
-
-#: readelf.c:6606
-#, c-format
-msgid ""
-"\n"
-"No version information found in this file.\n"
-msgstr ""
-"\n"
-"Không tìm thấy thông tin phiên bản trong tập tin này.\n"
-
-#: readelf.c:6740
-msgid "Unable to read in dynamic data\n"
-msgstr "Không thể Ä‘á»c vào dữ liệu Ä‘á»™ng\n"
-
-#: readelf.c:6793
-msgid "Unable to seek to start of dynamic information"
-msgstr "Không thể tìm tới đầu thông tin động"
-
-#: readelf.c:6799
-msgid "Failed to read in number of buckets\n"
-msgstr "Việc Ä‘á»c vào số xô bị lá»—i\n"
-
-#: readelf.c:6805
-msgid "Failed to read in number of chains\n"
-msgstr "Việc Ä‘á»c vào số dây bị lá»—i\n"
-
-#: readelf.c:6825
-#, c-format
-msgid ""
-"\n"
-"Symbol table for image:\n"
-msgstr ""
-"\n"
-"Bảng ký hiệu cho ảnh:\n"
-
-#: readelf.c:6827
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Số xô : Giá trị Cỡ Kiểu Trộn Hiện Ndx Tên\n"
-
-#: readelf.c:6829
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Số xô : Giá trị Cỡ Kiểu Trộn Hiện Ndx Tên\n"
-
-#: readelf.c:6882
-#, c-format
-msgid ""
-"\n"
-"Symbol table '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"Bảng ký hiệu « %s » chứa %lu mục nhập:\n"
-
-#: readelf.c:6886
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Số : Giá trị Cỡ Kiểu Trộn Hiện Ndx Tên\n"
-
-#: readelf.c:6888
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Số : Giá trị Cỡ Kiểu Trộn Hiện Ndx Tên\n"
-
-#: readelf.c:6939
-msgid "version data"
-msgstr "dữ liệu phiên bản"
-
-#: readelf.c:6982
-msgid "version need aux (3)"
-msgstr "phiên bản cần phụ (3)"
-
-#: readelf.c:7009
-msgid "bad dynamic symbol"
-msgstr "ký hiệu động sai"
-
-#: readelf.c:7073
-#, c-format
-msgid ""
-"\n"
-"Dynamic symbol information is not available for displaying symbols.\n"
-msgstr ""
-"\n"
-"Không có thông tin ký hiệu động để hiển thị ký hiệu.\n"
-
-#: readelf.c:7085
-#, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length (total of %lu buckets):\n"
-msgstr ""
-"\n"
-"Biểu đồ tần xuất cho độ dài danh sách xô (tổng số %lu xô):\n"
-
-#: readelf.c:7087
-#, c-format
-msgid " Length Number %% of total Coverage\n"
-msgstr " Dài Số %% tổng phạm vị\n"
-
-#: readelf.c:7092 readelf.c:7108 readelf.c:8031 readelf.c:8223
-msgid "Out of memory"
-msgstr "Hết bộ nhớ"
-
-#: readelf.c:7157
-#, c-format
-msgid ""
-"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr ""
-"\n"
-"Phân đoạn thông tin động tại hiệu số 0x%lx chứa %d mục nhập:\n"
-
-#: readelf.c:7160
-#, c-format
-msgid " Num: Name BoundTo Flags\n"
-msgstr " Số : Tên ÄóngVá»›i Cá»\n"
-
-#: readelf.c:7212
-#, c-format
-msgid ""
-"\n"
-"Assembly dump of section %s\n"
-msgstr ""
-"\n"
-"Việc đổ thanh ghi của phần %s\n"
-
-#: readelf.c:7233
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no data to dump.\n"
-msgstr ""
-"\n"
-"Phần « %s » không có dữ liệu cần đổ.\n"
-
-#: readelf.c:7238
-#, c-format
-msgid ""
-"\n"
-"Hex dump of section '%s':\n"
-msgstr ""
-"\n"
-"Việc đổ thập lục của phần « %s »:\n"
-
-#: readelf.c:7359
-#, c-format
-msgid "skipping invalid relocation offset 0x%lx in section %s\n"
-msgstr "đang bỠqua hiệu số định vị lại không hợp lệ 0x%lx trong phần %s\n"
-
-#: readelf.c:7376
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela%s\n"
-msgstr "đang bỠqua kiểu ký hiệu bất ngỠ%s trong việc định vị lại trong phần .rela%s\n"
-
-#: readelf.c:7402
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela.%s\n"
-msgstr "đang nhảy qua kiểu ký hiệu bất ngỠ%s trong việc định vị lại trong phần .rela%s\n"
-
-#: readelf.c:7435
-#, c-format
-msgid "%s section data"
-msgstr "dữ liệu phần %s"
-
-#: readelf.c:7472
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no debugging data.\n"
-msgstr ""
-"\n"
-"Phần « %s » không có dữ liệu gỡ lỗi nào.\n"
-
-#: readelf.c:7498
-#, c-format
-msgid "Unrecognized debug section: %s\n"
-msgstr "Không nhận diện phần gỡ lỗi: %s\n"
-
-#: readelf.c:7533
-#, c-format
-msgid "Section %d was not dumped because it does not exist!\n"
-msgstr "• Phần %d không được đổ vì nó không tồn tại. •\n"
-
-#: readelf.c:7791
-msgid "attributes"
-msgstr "thuộc tính"
-
-#: readelf.c:7809
-#, c-format
-msgid "ERROR: Bad section length (%d > %d)\n"
-msgstr "LỖI : độ dài phần sai (%d > %d)\n"
-
-#: readelf.c:7830
-#, c-format
-msgid "ERROR: Bad subsection length (%d > %d)\n"
-msgstr "LỖI : độ dài phần phụ sai (%d > %d)\n"
-
-#: readelf.c:7880
-#, c-format
-msgid "Unknown format '%c'\n"
-msgstr "Không biết dạng thức %c\n"
-
-#: readelf.c:7936 readelf.c:8304
-msgid "liblist"
-msgstr "danh sách thư viên"
-
-#: readelf.c:8025
-msgid "options"
-msgstr "tùy chá»n"
-
-#: readelf.c:8055
-#, c-format
-msgid ""
-"\n"
-"Section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"Phần « %s » chứa %d mục nhập:\n"
-
-#: readelf.c:8216
-msgid "conflict list found without a dynamic symbol table"
-msgstr "tìm danh sách xung đột không có bảng ký hiệu động"
-
-#: readelf.c:8232 readelf.c:8246
-msgid "conflict"
-msgstr "xung Ä‘á»™t"
-
-#: readelf.c:8256
-#, c-format
-msgid ""
-"\n"
-"Section '.conflict' contains %lu entries:\n"
-msgstr ""
-"\n"
-"Phần « .conflict » (xung đột) chứa %lu mục nhập:\n"
-
-#: readelf.c:8258
-msgid " Num: Index Value Name"
-msgstr " Số : CMục Giá trị Tên"
-
-#: readelf.c:8311
-msgid "liblist string table"
-msgstr "bảng chuỗi danh sách thư viên"
-
-#: readelf.c:8321
-#, c-format
-msgid ""
-"\n"
-"Library list section '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"Phần danh sách thư viên « %s » chứa %lu mục nhập:\n"
-
-#: readelf.c:8374
-msgid "NT_AUXV (auxiliary vector)"
-msgstr "NT_AUXV (véc-tơ phụ)"
-
-#: readelf.c:8376
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr "NT_PRSTATUS (cấu trúc trạng thái prstatus)"
-
-#: readelf.c:8378
-msgid "NT_FPREGSET (floating point registers)"
-msgstr "NT_FPREGSET (thanh ghi điểm phù động)"
-
-#: readelf.c:8380
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr "NT_PRPSINFO (cấu trúc thông tin prpsinfo)"
-
-#: readelf.c:8382
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr "NT_TASKSTRUCT (cấu trúc tác vụ)"
-
-#: readelf.c:8384
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr "NT_PRXFPREG (cấu trúc « user_xfpregs »)"
-
-#: readelf.c:8386
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr "NT_PSTATUS (cấu trúc trạng thái pstatus)"
-
-#: readelf.c:8388
-msgid "NT_FPREGS (floating point registers)"
-msgstr "NT_FPREGS (thanh ghi điểm phù động)"
-
-#: readelf.c:8390
-msgid "NT_PSINFO (psinfo structure)"
-msgstr "NT_PSINFO (cấu trúc thông tin psinfo)"
-
-#: readelf.c:8392
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr "NT_LWPSTATUS (cấu trúc trạng thái « lwpstatus_t »)"
-
-#: readelf.c:8394
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr "NT_LWPSINFO (cấu trúc thông tin « lwpsinfo_t »)"
-
-#: readelf.c:8396
-msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
-msgstr "NT_WIN32PSTATUS (cấu trúc trạng thái « win32_pstatus »)"
-
-#: readelf.c:8404
-msgid "NT_VERSION (version)"
-msgstr "NT_VERSION (phiên bản)"
-
-#: readelf.c:8406
-msgid "NT_ARCH (architecture)"
-msgstr "NT_ARCH (architecture)"
-
-#: readelf.c:8411 readelf.c:8433
-#, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr "Không biết kiểu ghi chú : (0x%08x)"
-
-#. NetBSD core "procinfo" structure.
-#: readelf.c:8423
-msgid "NetBSD procinfo structure"
-msgstr "Cấu trúc thông tin tiến trình procinfo NetBSD"
-
-#: readelf.c:8450 readelf.c:8464
-msgid "PT_GETREGS (reg structure)"
-msgstr "PT_GETREGS (cấu trúc thanh ghi)"
-
-#: readelf.c:8452 readelf.c:8466
-msgid "PT_GETFPREGS (fpreg structure)"
-msgstr "PT_GETFPREGS (cấu trúc thanh ghi « fpreg »)"
-
-# Name: don't translate / Tên: đừng dịch
-#: readelf.c:8472
-#, c-format
-msgid "PT_FIRSTMACH+%d"
-msgstr "PT_FIRSTMACH+%d"
-
-#: readelf.c:8518
-msgid "notes"
-msgstr "ghi chú"
-
-#: readelf.c:8524
-#, c-format
-msgid ""
-"\n"
-"Notes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr ""
-"\n"
-"Gặp ghi chú tại hiệu số 0x%08lx có độ dài 0x%08lx:\n"
-
-#: readelf.c:8526
-#, c-format
-msgid " Owner\t\tData size\tDescription\n"
-msgstr " Chủ\t\tCỡ dữ liệu\tMô tả\n"
-
-#: readelf.c:8545
-#, c-format
-msgid "corrupt note found at offset %lx into core notes\n"
-msgstr "tìm ghi chú bị há»ng tại hiệu số %lx vào ghi chú lõi\n"
-
-#: readelf.c:8547
-#, c-format
-msgid " type: %lx, namesize: %08lx, descsize: %08lx\n"
-msgstr " kiểu: %lx, cỡ_tên: %08lx, cỡ_mô_tả: %08lx\n"
-
-#: readelf.c:8645
-#, c-format
-msgid "No note segments present in the core file.\n"
-msgstr "Không có phân đoạn ghi chú trong tập tin lõi.\n"
-
-#: readelf.c:8726
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr ""
-"Tức thá»i readelf này đã được xây dụng\n"
-"không có hỗ trợ kiểu dữ liệu 64-bit\n"
-"nên không thể Ä‘á»c tập tin ELF kiểu 64-bit.\n"
-
-#: readelf.c:8775 readelf.c:9119
-#, c-format
-msgid "%s: Failed to read file header\n"
-msgstr "%s: việc Ä‘á»c dòng đầu tập tin bị lá»—i\n"
-
-#: readelf.c:8788
-#, c-format
-msgid ""
-"\n"
-"File: %s\n"
-msgstr ""
-"\n"
-"Tập tin: %s\n"
-
-#: readelf.c:8936 readelf.c:8957 readelf.c:8994 readelf.c:9074
-#, c-format
-msgid "%s: failed to read archive header\n"
-msgstr "%s: việc Ä‘á»c dòng đầu kho bị lá»—i\n"
-
-# Type: error
-# Description
-#: readelf.c:8947
-#, c-format
-msgid "%s: failed to skip archive symbol table\n"
-msgstr "%s: việc nhảy qua bảng ký hiệu kho bị lỗi\n"
-
-# Type: error
-# Description
-#: readelf.c:8979
-#, c-format
-msgid "%s: failed to read string table\n"
-msgstr "%s: việc Ä‘á»c bảng chuá»—i bị lá»—i\n"
-
-#: readelf.c:9015
-#, c-format
-msgid "%s: invalid archive string table offset %lu\n"
-msgstr "%s: hiệu số bảng chuỗi kho không hợp lệ %lu\n"
-
-#: readelf.c:9031
-#, c-format
-msgid "%s: bad archive file name\n"
-msgstr "%s: tên tập tin kho sai\n"
-
-#: readelf.c:9063
-#, c-format
-msgid "%s: failed to seek to next archive header\n"
-msgstr "%s: việc tìm tới dòng đầu kho kế tiếp bị lỗi\n"
-
-#: readelf.c:9097
-#, c-format
-msgid "'%s': No such file\n"
-msgstr "« %s »: không có tập tin như vậy\n"
-
-#: readelf.c:9099
-#, c-format
-msgid "Could not locate '%s'. System error message: %s\n"
-msgstr "Không thể định vị « %s ». Thông điệp lỗi hệ thống: %s\n"
-
-#: readelf.c:9106
-#, c-format
-msgid "'%s' is not an ordinary file\n"
-msgstr "« %s » không phải là tập tin chuẩn\n"
-
-#: readelf.c:9113
-#, c-format
-msgid "Input file '%s' is not readable.\n"
-msgstr "Tập tin nhập « %s » không có khả năng Ä‘á»c.\n"
-
-#: rename.c:129
-#, c-format
-msgid "%s: cannot set time: %s"
-msgstr "%s: không thể lập thá»i gian: %s"
-
-#. We have to clean up here.
-#: rename.c:164 rename.c:202
-#, c-format
-msgid "unable to rename '%s' reason: %s"
-msgstr "không thể đổi tên %s vì lý do : %s"
-
-#: rename.c:210
-#, c-format
-msgid "unable to copy file '%s' reason: %s"
-msgstr "không thể sao chép tập tin « %s » vì lý do : %s"
-
-#: resbin.c:132
-#, c-format
-msgid "%s: not enough binary data"
-msgstr "%s: không đủ dữ liệu nhị phân"
-
-#: resbin.c:148
-msgid "null terminated unicode string"
-msgstr "chuỗi Unicode không được chấm dứt rỗng"
-
-#: resbin.c:175 resbin.c:181
-msgid "resource ID"
-msgstr "ID tài nguyên"
-
-#: resbin.c:221
-msgid "cursor"
-msgstr "con chạy"
-
-#: resbin.c:253 resbin.c:260
-msgid "menu header"
-msgstr "dòng đầu trình đơn"
-
-#: resbin.c:270
-msgid "menuex header"
-msgstr "dòng đầu trình đơn menuex"
-
-#: resbin.c:274
-msgid "menuex offset"
-msgstr "hiệu số trình đơn menuex"
-
-#: resbin.c:281
-#, c-format
-msgid "unsupported menu version %d"
-msgstr "phiên bản trình đơn không được hỗ trợ %d"
-
-#: resbin.c:306 resbin.c:321 resbin.c:384
-msgid "menuitem header"
-msgstr "dòng đầu mục trình đơn"
-
-#: resbin.c:414
-msgid "menuitem"
-msgstr "mục trình đơn"
-
-#: resbin.c:453 resbin.c:481
-msgid "dialog header"
-msgstr "dòng đầu đối thoại"
-
-#: resbin.c:471
-#, c-format
-msgid "unexpected DIALOGEX version %d"
-msgstr "ngỠđối thoại DIALOGEX phiên bản %d"
-
-#: resbin.c:516
-msgid "dialog font point size"
-msgstr "kích cỡ điểm phông chữ đối thoại"
-
-#: resbin.c:524
-msgid "dialogex font information"
-msgstr "thông tin phông chữ đối thoại dialogex"
-
-#: resbin.c:550 resbin.c:568
-msgid "dialog control"
-msgstr "Ä‘iá»u kiện đối thoại"
-
-#: resbin.c:560
-msgid "dialogex control"
-msgstr "Ä‘iá»u kiện đối thoại dialogex"
-
-#: resbin.c:589
-msgid "dialog control end"
-msgstr "kết thúc Ä‘iá»u khiển đối thoại"
-
-#: resbin.c:601
-msgid "dialog control data"
-msgstr "dữ liệu Ä‘iá»u khiển đối thoại"
-
-#: resbin.c:642
-msgid "stringtable string length"
-msgstr "độ dài bảng chuỗi"
-
-#: resbin.c:652
-msgid "stringtable string"
-msgstr "chuỗi bảng chuỗi"
-
-#: resbin.c:683
-msgid "fontdir header"
-msgstr "dòng đầu thư mục phông chữ"
-
-#: resbin.c:696
-msgid "fontdir"
-msgstr "thư mục phông chữ"
-
-#: resbin.c:712
-msgid "fontdir device name"
-msgstr "tên thiết bị thư mục phông chữ"
-
-#: resbin.c:718
-msgid "fontdir face name"
-msgstr "tên mặt thư mục phông chữ"
-
-#: resbin.c:759
-msgid "accelerator"
-msgstr "phím tắt"
-
-#: resbin.c:819
-msgid "group cursor header"
-msgstr "dòng đầu con chạy nhóm"
-
-#: resbin.c:823
-#, c-format
-msgid "unexpected group cursor type %d"
-msgstr "kiểu con chạy nhóm bất ngỠ%d"
-
-#: resbin.c:838
-msgid "group cursor"
-msgstr "con chạy nhóm"
-
-#: resbin.c:875
-msgid "group icon header"
-msgstr "dòng đầu biểu tượng nhóm"
-
-#: resbin.c:879
-#, c-format
-msgid "unexpected group icon type %d"
-msgstr "kiểu biểu tượng nhóm bất ngỠ%d"
-
-#: resbin.c:894
-msgid "group icon"
-msgstr "biểu tượng nhóm"
-
-#: resbin.c:957 resbin.c:1174
-msgid "unexpected version string"
-msgstr "chuá»—i phiên bản bất ngá»"
-
-#: resbin.c:989
-#, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr "độ dài phiên bản %d không khớp độ dài tài nguyên %lu."
-
-#: resbin.c:993
-#, c-format
-msgid "unexpected version type %d"
-msgstr "kiểu phiên bản bất ngỠ%d"
-
-#: resbin.c:1005
-#, c-format
-msgid "unexpected fixed version information length %d"
-msgstr "độ dài thông tin phiên bản cố định bất ngỠ%d"
-
-#: resbin.c:1008
-msgid "fixed version info"
-msgstr "thông tin phiên bản cố định"
-
-#: resbin.c:1012
-#, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr "chữ ký phiên bản cố định bất ngỠ%lu"
-
-#: resbin.c:1016
-#, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr "phiên bản thông tin phiên bản cố định %lu"
-
-#: resbin.c:1045
-msgid "version var info"
-msgstr "hông tin tạm phiên bản"
-
-#: resbin.c:1062
-#, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr "độ dài giá trị thông tin tập tin chuỗi bất ngỠ%d"
-
-#: resbin.c:1072
-#, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr "độ dài giá trị bảng chuỗi phiên bản bất ngỠ%d"
-
-#: resbin.c:1106
-#, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr "độ dài chuỗi phiên bản bất ngỠ%d != %d + %d"
-
-#: resbin.c:1117
-#, c-format
-msgid "unexpected version string length %d < %d"
-msgstr "độ dài chuỗi phiên bản bất ngỠ%d < %d"
-
-#: resbin.c:1134
-#, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr "độ dài giá trị thông tin tập tin tạm bất ngỠ%d"
-
-#: resbin.c:1153
-msgid "version varfileinfo"
-msgstr "thông tin tập tin tạm phiên bản"
-
-#: resbin.c:1168
-#, c-format
-msgid "unexpected version value length %d"
-msgstr "nđộ dài giá trị phiên bản bất ngỠ%d"
-
-#: rescoff.c:126
-msgid "filename required for COFF input"
-msgstr "tên tập tin cần thiết cho dữ liệu nhập COFF"
-
-#: rescoff.c:143
-#, c-format
-msgid "%s: no resource section"
-msgstr "%s: không có phần tài nguyên"
-
-#: rescoff.c:150
-msgid "can't read resource section"
-msgstr "không thể Ä‘á»c phần tài nguyên"
-
-#: rescoff.c:174
-#, c-format
-msgid "%s: %s: address out of bounds"
-msgstr "%s: %s: địa chỉ ở ngoại phạm vị"
-
-#: rescoff.c:190
-msgid "directory"
-msgstr "thư mục"
-
-#: rescoff.c:218
-msgid "named directory entry"
-msgstr "mục nhập thư mục có tên"
-
-#: rescoff.c:227
-msgid "directory entry name"
-msgstr "tên mục nhập thư mục"
-
-#: rescoff.c:247
-msgid "named subdirectory"
-msgstr "thư mục con có tên"
-
-#: rescoff.c:255
-msgid "named resource"
-msgstr "tài nguyên có tên"
-
-#: rescoff.c:270
-msgid "ID directory entry"
-msgstr "mục nhập thư mục ID"
-
-#: rescoff.c:287
-msgid "ID subdirectory"
-msgstr "thư mục con ID"
-
-#: rescoff.c:295
-msgid "ID resource"
-msgstr "tài nguyên ID"
-
-#: rescoff.c:318
-msgid "resource type unknown"
-msgstr "không biết kiểu tài nguyên"
-
-#: rescoff.c:321
-msgid "data entry"
-msgstr "mục nhập dữ liệu"
-
-#: rescoff.c:329
-msgid "resource data"
-msgstr "dữ liệu tài nguyên"
-
-#: rescoff.c:334
-msgid "resource data size"
-msgstr "kích cỡ dữ liệu tài nguyên"
-
-#: rescoff.c:427
-msgid "filename required for COFF output"
-msgstr "tên tập tin cần thiết cho kết xuất COFF"
-
-#: rescoff.c:719
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr "không thể lấy kiểu việc định vị lại « BFD_RELOC_RVA »"
-
-#: resrc.c:238 resrc.c:309
-#, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr "không thể mở tập tin tạm thá»i « %s »: %s"
-
-#: resrc.c:244
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr "không thể chuyển hướng thiết bị xuất chuẩn « %s »: %s"
-
-# Variable: don't translate / Biến: đừng dịch
-#: resrc.c:260
-#, c-format
-msgid "%s %s: %s"
-msgstr "%s %s: %s"
-
-#: resrc.c:305
-#, c-format
-msgid "can't execute `%s': %s"
-msgstr "không thể thực hiện « %s »: %s"
-
-#: resrc.c:314
-#, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr "Äang dùng tập tin tạm thá»i « %s » để Ä‘á»c dữ liệu xuất bá»™ tiá»n xá»­ lý\n"
-
-#: resrc.c:321
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr "Không thể popen (mở p) « %s »: %s"
-
-#: resrc.c:323
-#, c-format
-msgid "Using popen to read preprocessor output\n"
-msgstr "Äang dùng popen để Ä‘á»c dữ liệu xuất bá»™ tiá»n xá»­ lý\n"
-
-#: resrc.c:362
-#, c-format
-msgid "Tried `%s'\n"
-msgstr "Äã thá»­ « %s »\n"
-
-#: resrc.c:373
-#, c-format
-msgid "Using `%s'\n"
-msgstr "Äang dùng « %s »\n"
-
-# Variable: don't translate / Biến: đừng dịch
-#: resrc.c:529
-#, c-format
-msgid "%s:%d: %s\n"
-msgstr "%s:%d: %s\n"
-
-#: resrc.c:537
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr "%s: gặp kết thúc tập tin bất ngá»"
-
-#: resrc.c:586
-#, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr "%s: việc Ä‘á»c %lu đã trả gởi %lu"
-
-#: resrc.c:624 resrc.c:1134
-#, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr "việc lấy các thông tin bị lỗi trên tập tin bitmap « %s »: %s"
-
-#: resrc.c:675
-#, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr "tập tin con chạy « %s » không chứa dữ liệu con chạy"
-
-#: resrc.c:707 resrc.c:1003
-#, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr "%s: việc fseek (tìm f) tới %lu bị lỗi: %s"
-
-#: resrc.c:831
-msgid "help ID requires DIALOGEX"
-msgstr "ID trợ giúp cần thiết DIALOGEX (đối thoại)"
-
-#: resrc.c:833
-msgid "control data requires DIALOGEX"
-msgstr "dữ liệu Ä‘iá»u khiển cần thiết DIALOGEX (đối thoại)"
-
-#: resrc.c:861
-#, c-format
-msgid "stat failed on font file `%s': %s"
-msgstr "việc lấy các thông tin bị lỗi trên tập tin phông chữ « %s »: %s"
-
-#: resrc.c:972
-#, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr "tập tin biểu tượng « %s » không chứa dữ liệu biểu tượng"
-
-#: resrc.c:1273 resrc.c:1308
-#, c-format
-msgid "stat failed on file `%s': %s"
-msgstr "việc lấy các thông tin bị lỗi trên tập tin « %s »: %s"
-
-#: resrc.c:1494
-#, c-format
-msgid "can't open `%s' for output: %s"
-msgstr "không thể mở « %s » để xuất: %s"
-
-#: size.c:83
-#, c-format
-msgid " Displays the sizes of sections inside binary files\n"
-msgstr " Hiển thị kích cỡ của các phần ở trong tập tin nhị phân\n"
-
-#: size.c:84
-#, c-format
-msgid " If no input file(s) are specified, a.out is assumed\n"
-msgstr " Nếu chưa ghi rõ tập tin nhập, giả sử <a.out>\n"
-
-#: size.c:85
-#, c-format
-msgid ""
-" The options are:\n"
-" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
-" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n"
-" -t --totals Display the total sizes (Berkeley only)\n"
-" --target=<bfdname> Set the binary file format\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Tùy chá»n:\n"
-" -A|-B --format={sysv|berkeley}\n"
-"\t\t\tChá»n kiểu dáng xuất (mặc định là %s)\n"
-"\t\t\t(dạng thức)\n"
-" -o|-d|-x --radix={8|10|16}\n"
-"\t\t\tHiển thị số dạng bát phân, thập phân hay thập lục\n"
-"\t\t\t(cơ sở)\n"
-" -t --totals Hiển thị các kích cỡ _tổng cổng_ (chỉ Berkeley)\n"
-" --target=<tên_bfd> \tLập dạng thức tập tin nhị phân\n"
-"\t\t\t(đích)\n"
-" @<file> Äá»c các tùy chá»n từ tập tin đó\n"
-" -h --help Hiển thị _trợ giúp_ này\n"
-" -v --version Hiển thị _phiên bản_ của chương trình này\n"
-"\n"
-
-#: size.c:158
-#, c-format
-msgid "invalid argument to --format: %s"
-msgstr "đối sô không hợp lệ tới « --format » (dạng thức): %s"
-
-#: size.c:185
-#, c-format
-msgid "Invalid radix: %s\n"
-msgstr "Cơ sở không hợp lệ: %s\n"
-
-#: srconv.c:1722
-#, c-format
-msgid "Convert a COFF object file into a SYSROFF object file\n"
-msgstr "Chuyển đổi một tập tin đối tượng COFF thành một tập tin đối tượng SYSROFF\n"
-
-#: srconv.c:1723
-#, c-format
-msgid ""
-" The options are:\n"
-" -q --quick (Obsolete - ignored)\n"
-" -n --noprescan Do not perform a scan to convert commons into defs\n"
-" -d --debug Display information about what is being done\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Tùy chá»n:\n"
-" -q --quick \t(Cũ nên bị bỠqua)\n"
-" -n --noprescan\n"
-"\t\tÄừng quét để chuyển đổi các Ä‘iá»u dùng chung (common)\n"
-"\t\tthành lá»i định nghÄ©a (def)\n"
-"\t\t(không quét trước)\n"
-" -d --debug \t\t\tHiển thị thông tin vá» hành Ä‘á»™ng hiện thá»i\n"
-"\t\t(gỡ lỗi)\n"
-" @<file> Äá»c các tùy chá»n từ tập tin đó\n"
-" -h --help \t\t\tHiển thị _trợ giúp_ này\n"
-" -v --version \t\tIn ra số thứ tự _phiên bản_ của chương trình\n"
-
-#: srconv.c:1869
-#, c-format
-msgid "unable to open output file %s"
-msgstr "không thể mở tập tin kết xuất %s"
-
-#: stabs.c:330 stabs.c:1708
-msgid "numeric overflow"
-msgstr "tràn thuộc số"
-
-#: stabs.c:340
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr "stab sai: %s\n"
-
-#: stabs.c:348
-#, c-format
-msgid "Warning: %s: %s\n"
-msgstr "Cảnh báo : %s: %s\n"
-
-#: stabs.c:458
-#, c-format
-msgid "N_LBRAC not within function\n"
-msgstr "« N_LBRAC » không phải ở trong hàm\n"
-
-#: stabs.c:497
-#, c-format
-msgid "Too many N_RBRACs\n"
-msgstr "Quá nhiá»u « N_RBRAC »\n"
-
-#: stabs.c:738
-msgid "unknown C++ encoded name"
-msgstr "không biết tên mã C++"
-
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1253
-msgid "unrecognized cross reference type"
-msgstr "không nhận diện kiểu tham chiếu chéo"
-
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1800
-msgid "missing index type"
-msgstr "thiếu kiểu chỉ mục"
-
-#: stabs.c:2114
-msgid "unknown virtual character for baseclass"
-msgstr "không biết ký tự ảo cho hạng cơ bản"
-
-#: stabs.c:2132
-msgid "unknown visibility character for baseclass"
-msgstr "không biết ký tự tính trạng hiển thị cho hạng cơ bản"
-
-#: stabs.c:2318
-msgid "unnamed $vb type"
-msgstr "kiểu $vb chưa có tên"
-
-#: stabs.c:2324
-msgid "unrecognized C++ abbreviation"
-msgstr "không nhận biết viết tắt C++"
-
-#: stabs.c:2400
-msgid "unknown visibility character for field"
-msgstr "không biết ký tá»± tính trạng hiển thị cho trÆ°á»ng"
-
-#: stabs.c:2652
-msgid "const/volatile indicator missing"
-msgstr "thiếu chỉ thị bất biến/hay thay đổi"
-
-#: stabs.c:2888
-#, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr "Không có việc tháo gỡ cho « %s »\n"
-
-#: stabs.c:3188
-msgid "Undefined N_EXCL"
-msgstr "Chưa định nghĩa « N_EXCL »"
-
-#: stabs.c:3268
-#, c-format
-msgid "Type file number %d out of range\n"
-msgstr "Số kiểu tập tin %d ở ngoài phạm vi\n"
-
-#: stabs.c:3273
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr "Số kiểu chỉ mục %d ở ngoài phạm vi\n"
-
-#: stabs.c:3352
-#, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr "Không nhận diện kiểu XCOFF %d\n"
-
-#: stabs.c:3644
-#, c-format
-msgid "bad mangled name `%s'\n"
-msgstr "tên đã rối sai « %s »\n"
-
-#: stabs.c:3739
-#, c-format
-msgid "no argument types in mangled string\n"
-msgstr "không có kiểu đối số nào trong chuỗi đã rối\n"
-
-#: stabs.c:5093
-#, c-format
-msgid "Demangled name is not a function\n"
-msgstr "Tên đã tháo gỡ không phải là hàm\n"
-
-#: stabs.c:5135
-#, c-format
-msgid "Unexpected type in v3 arglist demangling\n"
-msgstr "Gặp kiểu bất ngỠtrong việc tháo gỡ danh sách đối số v3\n"
-
-#: stabs.c:5202
-#, c-format
-msgid "Unrecognized demangle component %d\n"
-msgstr "Không nhận diện thành phần tháo gỡ %d\n"
-
-#: stabs.c:5254
-#, c-format
-msgid "Failed to print demangled template\n"
-msgstr "Việc in ra biểu mẫu đã tháo gỡ bị lỗi\n"
-
-#: stabs.c:5334
-#, c-format
-msgid "Couldn't get demangled builtin type\n"
-msgstr "Không thể lấy kiểu builtin (Ä‘iá»u có sẵn) đã tháo gỡ\n"
-
-#: stabs.c:5383
-#, c-format
-msgid "Unexpected demangled varargs\n"
-msgstr "Gặp má»™t số varargs (đối số biến) đã tháo gỡ bất ngá»\n"
-
-#: stabs.c:5390
-#, c-format
-msgid "Unrecognized demangled builtin type\n"
-msgstr "Không nhận diện kiểu builtin (Ä‘iá»u có sẵn) đã tháo gỡ\n"
-
-#: strings.c:218
-#, c-format
-msgid "invalid number %s"
-msgstr "số không hợp lệ %s"
-
-#: strings.c:700
-#, c-format
-msgid "invalid integer argument %s"
-msgstr "đối số số nguyên không hợp lệ %s"
-
-#: strings.c:709
-#, c-format
-msgid " Display printable strings in [file(s)] (stdin by default)\n"
-msgstr " Hiển thị các chuỗi có khả năng in trong [tập tin...] (mặc định là thiết bị nhập chuẩn)\n"
-
-#: strings.c:710
-#, c-format
-msgid ""
-" The options are:\n"
-" -a - --all Scan the entire file, not just the data section\n"
-" -f --print-file-name Print the name of the file before each string\n"
-" -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n"
-" -<number> least [number] characters (default 4).\n"
-" -t --radix={o,d,x} Print the location of the string in base 8, 10 or 16\n"
-" -o An alias for --radix=o\n"
-" -T --target=<BFDNAME> Specify the binary file format\n"
-" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
-" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Tùy chá»n:\n"
-" -a - --all \t\tQuét toàn bộ tập tin, không chỉ phần dữ liệu\n"
-"\t\t(hết)\n"
-" -f --print-file-name \t\t\t _In ra tên tập tin_ trước mỗi chuỗi\n"
-" -n --bytes=[số]\n"
-"\t\tÄịnh vị và in ra dãy đã chấm dứt Rá»–NG nào tại số byte này\n"
-" -<số> số ký tự tối thiểu (mặc định là 4).\n"
-" -t --radix={o,d,x}\n"
-"\t\tIn ra địa điểm của chuỗi dạng bát phân, thập phân hay thập lục\n"
-"\t\t(cơ sở)\n"
-" -o \t\tBiệt hiệu cho « --radix=o » \n"
-" -T --target=<TÊN_BFD> \t\tGhi rõ dạng thức tập tin nhị phân\n"
-"\t\t(đích)\n"
-" -e --encoding={s,S,b,l,B,L}\n"
-"\t\tChá»n kích cỡ ký tá»± và tính trạng cuối (endian):\n"
-" \ts = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" @<file> Äá»c các tùy chá»n từ tập tin đó\n"
-" -h --help \t\tHiển thị _trợ giúp_ này\n"
-" -v --version \t\tIn ra số thứ tự _phiên bản_ của chương trình\n"
-
-#: sysdump.c:642
-#, c-format
-msgid "Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "In ra lá»i giải dịch tập tin đối tượng SYSROFF cho ngÆ°á»i Ä‘á»c\n"
-
-#: sysdump.c:643
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Tùy chá»n:\n"
-" -h --help \t\tHiển thị _trợ giúp_ này\n"
-" -v --version \t\tIn ra số thứ tự _phiên bản_ của chương trình\n"
-
-#: sysdump.c:710
-#, c-format
-msgid "cannot open input file %s"
-msgstr "không thể mở tập tin nhập %s"
-
-#: version.c:35
-#, c-format
-msgid "Copyright 2005 Free Software Foundation, Inc.\n"
-msgstr "Bản quyá»n © năm 2005 Tổ chức Phần má»m Tá»± do.\n"
-
-#: version.c:36
-#, c-format
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr ""
-"ChÆ°Æ¡ng trình này là phần má»m tá»± do; bạn có thể phát hành lại\n"
-"nó vá»›i Ä‘iá»u kiện của Quyá»n Công Chung GNU (GPL).\n"
-"Chương trình này không bảo đảm gì cả.\n"
-
-#: windres.c:204
-#, c-format
-msgid "can't open %s `%s': %s"
-msgstr "Không thể mở %s « %s »: %s"
-
-#: windres.c:370
-#, c-format
-msgid ": expected to be a directory\n"
-msgstr ": ngỠlà thư mục\n"
-
-#: windres.c:382
-#, c-format
-msgid ": expected to be a leaf\n"
-msgstr ": ngỠlà lá\n"
-
-#: windres.c:391
-#, c-format
-msgid "%s: warning: "
-msgstr "%s: cảnh báo : "
-
-#: windres.c:393
-#, c-format
-msgid ": duplicate value\n"
-msgstr ": giá trị trùng\n"
-
-#: windres.c:543
-#, c-format
-msgid "unknown format type `%s'"
-msgstr "không biết kiểu dạng thức « %s »"
-
-#: windres.c:544
-#, c-format
-msgid "%s: supported formats:"
-msgstr "%s: dạng thức hỗ trợ :"
-
-#. Otherwise, we give up.
-#: windres.c:627
-#, c-format
-msgid "can not determine type of file `%s'; use the -J option"
-msgstr "không thể quyết định kiểu tập tin « %s »: hãy sá»­ dụng tùy chá»n « -J »"
-
-#: windres.c:639
-#, c-format
-msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
-msgstr "Usage: %s [tùy_chá»n...] [tập_tin_nhập] [tập_tin_xuất]\n"
-
-#: windres.c:641
-#, c-format
-msgid ""
-" The options are:\n"
-" -i --input=<file> Name input file\n"
-" -o --output=<file> Name output file\n"
-" -J --input-format=<format> Specify input format\n"
-" -O --output-format=<format> Specify output format\n"
-" -F --target=<target> Specify COFF target\n"
-" --preprocessor=<program> Program to use to preprocess rc file\n"
-" -I --include-dir=<dir> Include directory when preprocessing rc file\n"
-" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
-" -U --undefine <sym> Undefine SYM when preprocessing rc file\n"
-" -v --verbose Verbose - tells you what it's doing\n"
-" -l --language=<val> Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr ""
-" Tùy chá»n:\n"
-" -i --input=<tập_tin> \t\t Lập tập tin _nhập_\n"
-" -o --output=<tập_tin> \t\t Lập tập tin _xuất_\n"
-" -J --input-format=<dạng_thức> \t Ghi rõ _dạng thức nhập_\n"
-" -O --output-format=<dạng_thức> \t Ghi rõ _dạng thức xuất_\n"
-" -F --target=<đích> \t\t\t Ghi rõ _đích_ COFF\n"
-" --preprocessor=<chương_trình>\n"
-"\t\tChÆ°Æ¡ng trình cần dùng để tiá»n xá»­ lý tập tin rc (tài nguyên)\n"
-"\t\t(bá»™ tiá»n xá»­ lý)\n"
-" -I --include-dir=<thư_mục>\n"
-"\t\t_Gồm thÆ° mục_ khi tiá»n xá»­ lý tập tin rc (tài nguyên)\n"
-" -D --define <ký_hiệu>[=<giá_trị>]\n"
-"\t\t_Äịnh nghÄ©a_ ký hiệu khi tiá»n xá»­ lý tập tin rc (tài nguyên)\n"
-" -U --undefine <ký_hiệu>\n"
-"\t\t_Hủy định nghÄ©a_ ký hiệu khi tiá»n xá»­ lý tập tin rc (tài nguyên)\n"
-" -v --verbose _Chi tiết_: xuất thông tin vá» hành Ä‘á»™ng hiện thá»i\n"
-" -l --language=<giá_trị> Lập _ngôn ngữ_ để Ä‘á»c tập tin rc (tài nguyên)\n"
-" --use-temp-file\n"
-"\t\t_Dùng tập tin tạm thá»i_ thay vào popen để Ä‘á»c kết xuất tiá»n xá»­ lý\n"
-" --no-use-temp-file \t\t\t Dùng popen (mặc định)\n"
-"\t\t(không dùng tập tin tạm thá»i)\n"
-
-#: windres.c:657
-#, c-format
-msgid " --yydebug Turn on parser debugging\n"
-msgstr " --yydebug Bật khả năng gỡ lỗi kiểu bộ phân tách\n"
-
-#: windres.c:660
-#, c-format
-msgid ""
-" -r Ignored for compatibility with rc\n"
-" @<file> Read options from <file>\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" -r\t\t\t\t\t \t \t\t Bị bỠqua để tương thích với rc (tài nguyên)\n"
-" @<file> Äá»c các tùy chá»n từ tập tin đó\n"
-" -h, --help \t\t\t\t rctrợ giúp_ này\n"
-" -V, --version \t\t\t\t In ra thông tin _phiên bản_\n"
-
-#: windres.c:665
-#, c-format
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr ""
-"DẠNG THỨC là một của rc, res hay coff, và được quyết định\n"
-"từ phần mở rộng tên tập tin nếu chưa ghi rõ.\n"
-"Một tên tập tin đơn là tập tin nhập. Không có tập tin nhập thì\n"
-"thiết bị nhập chuẩn, mặc định là rc. Không có tập tin xuất thì\n"
-"thiết bị xuất chuẩn, mặc định là rc.\n"
-
-#: windres.c:803
-msgid "invalid option -f\n"
-msgstr "tùy chá»n không hợp lệ « -f »\n"
-
-#: windres.c:808
-msgid "No filename following the -fo option.\n"
-msgstr "Không có tên tập tin Ä‘i sau tùy chá»n « -fo ».\n"
-
-#: windres.c:866
-#, c-format
-msgid "Option -I is deprecated for setting the input format, please use -J instead.\n"
-msgstr "Tùy chá»n « -l » bị phản đối để lập dạng thức nhập, hãy dùng « -J » thay thế.\n"
-
-#: windres.c:984
-msgid "no resources"
-msgstr "không có tài nguyên nào"
-
-#: wrstabs.c:354 wrstabs.c:1915
-#, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr "việc « string_hash_lookup » (tra tìm băm chuỗi) bị lỗi: %s"
-
-#: wrstabs.c:635
-#, c-format
-msgid "stab_int_type: bad size %u"
-msgstr "stab_int_type: (kiểu số nguyên stab) kích cỡ sai %u"
-
-#: wrstabs.c:1393
-#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr "%s: cảnh báo : không biết kích cỡ cho trÆ°á»ng « %s » trong cấu trúc"
-
-#~ msgid "flags"
-#~ msgstr "cá»"
-
-#~ msgid "debug_str section data"
-#~ msgstr "debug_str section data"
-
-#~ msgid "debug_loc section data"
-#~ msgstr "dữ liệu phần « debug_loc » (định vị gỡ lỗi)"
-
-#~ msgid "debug_range section data"
-#~ msgstr "dữ liệu phần « debug_range » (phạm vị gỡ lỗi)"
-
-#~ msgid "%s: skipping unexpected symbol type %s in relocation in section .rela%s\n"
-#~ msgstr "%s: đang nhảy qua kiểu ký hiệu bất ngỠ%s trong việc định vị lại trong phần .rela%s\n"
-
-#~ msgid "debug_abbrev section data"
-#~ msgstr "dữ liệu phần « .debug_abbrev » (gỡ lỗi viết tắt)"
-
-#~ msgid "extracting information from .debug_info section"
-#~ msgstr "đang trích thông tin ra phần « .debug_info » (thông tin gỡ lỗi)"
-
-#~ msgid ""
-#~ "\n"
-#~ "The .debug_loc section is empty.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Phần « .debug_loc » (gỡ lỗi định vị) rỗng:\n"
-
-#~ msgid ""
-#~ "Contents of the .debug_loc section:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Nội dung của phần « .debug_info » (thông tin gỡ lỗi):\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Contents of the .debug_str section:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Nội dung của phần « .debug_str » (chuỗi gỡ lỗi):\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "The .debug_ranges section is empty.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Phần « .debug_ranges » (các phạm vị gỡ lỗi) rỗng.\n"
-
-#~ msgid ""
-#~ "Contents of the .debug_ranges section:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Nội dung của phần « .debug_ranges » (các phạm vị gỡ lỗi):\n"
-#~ "\n"
-
-#~ msgid "There is a hole [0x%lx - 0x%lx] in .debug_ranges section.\n"
-#~ msgstr "Có một lỗ [0x%lx - 0x%lx] trong phần « .debug_ranges » (các phạm vị gỡ lỗi).\n"
-
-#~ msgid "There is an overlap [0x%lx - 0x%lx] in .debug_ranges section.\n"
-#~ msgstr "Có một chồng lấp [0x%lx - 0x%lx] trong phần « .debug_ranges » (các phạm vị gỡ lỗi).\n"
-
-#~ msgid "debug section data"
-#~ msgstr "dữ liệu phần gỡ lỗi"
diff --git a/binutils-2.17/binutils/po/zh_CN.gmo b/binutils-2.17/binutils/po/zh_CN.gmo
deleted file mode 100644
index 04e985e3..00000000
--- a/binutils-2.17/binutils/po/zh_CN.gmo
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/po/zh_CN.po b/binutils-2.17/binutils/po/zh_CN.po
deleted file mode 100644
index cf858982..00000000
--- a/binutils-2.17/binutils/po/zh_CN.po
+++ /dev/null
@@ -1,4742 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# Wang Li <charles@linux.net.cn>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: binutils 2.12.91\n"
-"POT-Creation-Date: 2002-07-23 15:55-0400\n"
-"PO-Revision-Date: 2003-05-09 17:28+0800\n"
-"Last-Translator: Wang Li <charles@linux.net.cn>\n"
-"Language-Team: Chinese (simplified) <i18n-translation@lists.linux.net.cn>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=gb2312\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: addr2line.c:74
-#, c-format
-msgid "Usage: %s [option(s)] [addr(s)]\n"
-msgstr "Ó÷¨£º%s [Ñ¡Ïî] [µØÖ·]\n"
-
-#: addr2line.c:75
-msgid " Convert addresses into line number/file name pairs.\n"
-msgstr " ½«µØַת»»³ÉÎļþÃû/ÐкŶԡ£\n"
-
-#: addr2line.c:76
-msgid " If no addresses are specified on the command line, they will be read from stdin\n"
-msgstr " Èç¹ûûÓÐÔÚÃüÁîÐÐÖиø³öµØÖ·£¬¾Í´Ó±ê×¼ÊäÈëÖжÁÈ¡ËüÃÇ\n"
-
-#: addr2line.c:77
-msgid ""
-" The options are:\n"
-" -b --target=<bfdname> Set the binary file format\n"
-" -e --exe=<executable> Set the input file name (default is a.out)\n"
-" -s --basenames Strip directory names\n"
-" -f --functions Show function names\n"
-" -C --demangle[=style] Demangle function names\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Ñ¡ÏîΪ£º\n"
-" -b --target=<bfdname> É趨¶þ½øÖÆÎļþ¸ñʽ\n"
-" -e --exe=<executable> É趨ÊäÈëÎļþÃû (ĬÈÏΪ a.out)\n"
-" -s --basenames È¥³ýĿ¼Ãû\n"
-" -f --functions ÏÔʾº¯ÊýÃû\n"
-" -C --demangle[=style] ½âÂ뺯ÊýÃû\n"
-" -h --help ÏÔʾ±¾ÐÅÏ¢\n"
-" -v --version ÏÔʾ³ÌÐòµÄ°æ±¾ºÅ\n"
-"\n"
-
-#: addr2line.c:89 ar.c:297 coffdump.c:479 nlmconv.c:1119 objcopy.c:424
-#: objcopy.c:457 readelf.c:2310 size.c:104 srconv.c:1962 strings.c:666
-#: sysdump.c:774 windres.c:733
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr "½« bug ±¨¸æµ½ %s\n"
-
-#: addr2line.c:248
-#, c-format
-msgid "%s: can not get addresses from archive"
-msgstr "%s£ºÎÞ·¨´Ó¹éµµÎļþÖеõ½µØÖ·"
-
-#: addr2line.c:320 nm.c:395 objdump.c:2782
-#, c-format
-msgid "unknown demangling style `%s'"
-msgstr "δ֪µÄ½âÂë(demangle)·ç¸ñ¡°%s¡±"
-
-#: ar.c:238
-#, c-format
-msgid "no entry %s in archive\n"
-msgstr "¹éµµÎļþÖÐûÓÐÌõÄ¿ %s\n"
-
-#: ar.c:255
-#, c-format
-msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"
-msgstr "Ó÷¨£º%s [·ÂÕæÑ¡Ïî] [-]{dmpqrstx}[abcfilNoPsSuvV] [³ÉÔ±Ãû] [¼ÆÊý] ¹éµµÎļþ Îļþ...\n"
-
-#: ar.c:258
-#, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr " %s -M [<mri-½Å±¾]\n"
-
-#: ar.c:259
-msgid " commands:\n"
-msgstr " ÃüÁ\n"
-
-#: ar.c:260
-msgid " d - delete file(s) from the archive\n"
-msgstr " d - ´Ó¹éµµÎļþÖÐɾ³ýÎļþ\n"
-
-#: ar.c:261
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr " m[ab] - Ôڹ鵵ÎļþÖÐÒƶ¯Îļþ\n"
-
-#: ar.c:262
-msgid " p - print file(s) found in the archive\n"
-msgstr " p - ´òÓ¡Ôڹ鵵ÎļþÖÐÕÒµ½µÄÎļþ\n"
-
-#: ar.c:263
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr " q[f] - ½«Îļþ¿ìËÙ×·¼Óµ½¹éµµÎļþÖÐ\n"
-
-#: ar.c:264
-msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr " r[ab][f][u] - Ìæ»»¹éµµÎļþÖÐÒÑÓеÄÎļþ»ò¼ÓÈëÐÂÎļþ\n"
-
-#: ar.c:265
-msgid " t - display contents of archive\n"
-msgstr " t - ÏÔʾ¹éµµÎļþµÄÄÚÈÝ\n"
-
-#: ar.c:266
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr " x[o] - ´Ó¹éµµÎļþÖзֽâÎļþ\n"
-
-#: ar.c:267
-msgid " command specific modifiers:\n"
-msgstr " Ìض¨ÃüÁîÐÞÊηû£º\n"
-
-#: ar.c:268
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr " [a] - ½«ÎļþÖÃÓÚ [³ÉÔ±Ãû] Ö®ºó\n"
-
-#: ar.c:269
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr " [b] - ½«ÎļþÖÃÓÚ [³ÉÔ±Ãû] ֮ǰ (ÓÚ [i] Ïàͬ)\n"
-
-#: ar.c:270
-msgid " [N] - use instance [count] of name\n"
-msgstr ""
-
-#: ar.c:271
-msgid " [f] - truncate inserted file names\n"
-msgstr ""
-
-#: ar.c:272
-msgid " [P] - use full path names when matching\n"
-msgstr " [P] - ÔÚÆ¥ÅäʱʹÓÃÍêÕûµÄ·¾¶Ãû\n"
-
-#: ar.c:273
-msgid " [o] - preserve original dates\n"
-msgstr " [o] - ±£ÁôÔ­À´µÄÈÕÆÚ\n"
-
-#: ar.c:274
-msgid " [u] - only replace files that are newer than current archive contents\n"
-msgstr " [u] - Ö»Ìæ»»±Èµ±Ç°¹éµµÄÚÈݸüеÄÎļþ\n"
-
-#: ar.c:275
-msgid " generic modifiers:\n"
-msgstr " ͨÓÃÐÞÊηû£º\n"
-
-#: ar.c:276
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr " [c] - ²»ÔÚ±ØÐë´´½¨¿âµÄʱºò¸ø³ö¾¯¸æ\n"
-
-#: ar.c:277
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr " [s] - ´´½¨¹éµµË÷Òý (cf. ranlib)\n"
-
-#: ar.c:278
-msgid " [S] - do not build a symbol table\n"
-msgstr " [S] - ²»Òª´´½¨·ûºÅ±í\n"
-
-#: ar.c:279
-msgid " [v] - be verbose\n"
-msgstr " [v] - Êä³ö½Ï¶àÐÅÏ¢\n"
-
-#: ar.c:280
-msgid " [V] - display the version number\n"
-msgstr " [V] - ÏÔʾ°æ±¾ºÅ\n"
-
-#: ar.c:287
-#, c-format
-msgid "Usage: %s [options] archive\n"
-msgstr "Ó÷¨£º%s [Ñ¡Ïî] ¹éµµÎļþ\n"
-
-#: ar.c:288
-msgid " Generate an index to speed access to archives\n"
-msgstr " Éú³ÉË÷ÒýÒÔ¼Ó¿ì¶Ô¹éµµÎļþµÄ·ÃÎÊ\n"
-
-#: ar.c:289
-msgid ""
-" The options are:\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" Ñ¡ÏîΪ£º\n"
-" -h --help ´òÓ¡±¾ÇóÖúÐÅÏ¢\n"
-" -V --version ´òÓ¡°æ±¾ÐÅÏ¢\n"
-
-#: ar.c:512
-msgid "two different operation options specified"
-msgstr "¸ø³öÁËÁ½¸ö²»Í¬µÄ²Ù×÷Ñ¡Ïî"
-
-#: ar.c:587
-#, c-format
-msgid "illegal option -- %c"
-msgstr "·Ç·¨Ñ¡Ïî -- %c"
-
-#: ar.c:619
-msgid "no operation specified"
-msgstr "ûÓÐÖ¸¶¨²Ù×÷"
-
-#: ar.c:622
-msgid "`u' is only meaningful with the `r' option."
-msgstr "¡°u¡±Ö»ÔÚʹÓá°r¡±Ñ¡ÏîµÄʱºò²ÅÓÐÒâÒå¡£"
-
-#: ar.c:632
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr "¡°N¡±Ö»ÔÚʹÓá°x¡±ºÍ¡°d¡±Ñ¡ÏîµÄʱºò²ÅÓÐÒâÒå¡£"
-
-#: ar.c:635
-msgid "Value for `N' must be positive."
-msgstr "¡°N¡±µÄÖµ±ØÐëÊÇÕýÊý¡£"
-
-#: ar.c:718
-#, c-format
-msgid "internal error -- this option not implemented"
-msgstr "ÄÚ²¿´íÎó -- ¸ÃÑ¡ÏîÉÐδʵÏÖ"
-
-#: ar.c:837 ar.c:888 ar.c:1333 objcopy.c:1348
-#, c-format
-msgid "internal stat error on %s"
-msgstr ""
-
-#: ar.c:841
-#, c-format
-msgid ""
-"\n"
-"<member %s>\n"
-"\n"
-msgstr ""
-"\n"
-"<³ÉÔ± %s>\n"
-"\n"
-
-#: ar.c:857 ar.c:925
-#, c-format
-msgid "%s is not a valid archive"
-msgstr "%s ²»ÊÇÓÐЧµÄ¹éµµÎļþ"
-
-#: ar.c:893
-#, c-format
-msgid "stat returns negative size for %s"
-msgstr "stat %s ·µ»Ø¸ºÊý´óС"
-
-#: ar.c:1020
-#, c-format
-msgid "%s is not an archive"
-msgstr "%s ²»Êǹ鵵Îļþ"
-
-#: ar.c:1027
-#, c-format
-msgid "creating %s"
-msgstr "ÕýÔÚ´´½¨ %s"
-
-#: ar.c:1233
-#, c-format
-msgid "No member named `%s'\n"
-msgstr "ûÓÐÃûΪ¡°%s¡±µÄ³ÉÔ±\n"
-
-#: ar.c:1285
-#, c-format
-msgid "no entry %s in archive %s!"
-msgstr "¹éµµÎļþ %2$s ÖÐûÓÐÌõÄ¿ %1$s£¡"
-
-#: ar.c:1422
-#, c-format
-msgid "%s: no archive map to update"
-msgstr "%s£ºÃ»ÓÐÒª¸üеĹ鵵ӳÉä"
-
-#: arsup.c:86
-#, c-format
-msgid "No entry %s in archive.\n"
-msgstr "¹éµµÎļþÖÐûÓÐÌõÄ¿ %s¡£\n"
-
-#: arsup.c:117
-#, c-format
-msgid "Can't open file %s\n"
-msgstr "ÎÞ·¨´ò¿ªÎļþ %s\n"
-
-#: arsup.c:172
-#, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr "%s£ºÎÞ·¨´ò¿ªÊä³ö¹éµµ %s\n"
-
-#: arsup.c:189
-#, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr "%s£ºÎÞ·¨´ò¿ªÊäÈë¹éµµ %s\n"
-
-#: arsup.c:198
-#, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr "%s£ºÎļþ %s ²»Êǹ鵵Îļþ\n"
-
-#: arsup.c:241
-#, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr "%s£ºÉÐδָ¶¨Êä³ö¹éµµÎļþ\n"
-
-#: arsup.c:262 arsup.c:301 arsup.c:343 arsup.c:364 arsup.c:430
-#, c-format
-msgid "%s: no open output archive\n"
-msgstr "%s£ºÎ´´ò¿ªÊä³ö¹éµµÎļþ\n"
-
-#: arsup.c:273 arsup.c:385 arsup.c:411
-#, c-format
-msgid "%s: can't open file %s\n"
-msgstr "%s£ºÎÞ·¨´ò¿ªÎļþ %s\n"
-
-#: arsup.c:328 arsup.c:407 arsup.c:489
-#, c-format
-msgid "%s: can't find module file %s\n"
-msgstr "%s£ºÎÞ·¨ÕÒµ½Ä£¿éÎļþ %s\n"
-
-#: arsup.c:439
-#, c-format
-msgid "Current open archive is %s\n"
-msgstr "µ±Ç°´ò¿ªµÄ¹éµµÎļþÊÇ %s\n"
-
-#: arsup.c:464
-#, c-format
-msgid "%s: no open archive\n"
-msgstr "%s£ºÎ´´ò¿ª¹éµµÎļþ\n"
-
-#: binemul.c:39
-#, c-format
-msgid " No emulation specific options\n"
-msgstr " ûÓзÂÕæÌØÓеÄÑ¡Ïî\n"
-
-#. Macros for common output.
-#: binemul.h:42
-#, c-format
-msgid " emulation options: \n"
-msgstr " ·ÂÕæÑ¡Ï\n"
-
-#: bucomm.c:106
-#, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr "ÎÞ·¨½« BFD ĬÈϱêµÄÉèÖÃΪ¡°%s¡±£º%s"
-
-#: bucomm.c:118
-#, c-format
-msgid "%s: Matching formats:"
-msgstr "%s£ºÆ¥Åä¸ñʽ£º"
-
-#: bucomm.c:135
-msgid "Supported targets:"
-msgstr "Ö§³ÖµÄÄ¿±ê£º"
-
-#: bucomm.c:137
-#, c-format
-msgid "%s: supported targets:"
-msgstr "%s£ºÖ§³ÖµÄÄ¿±ê£º"
-
-#: bucomm.c:153
-msgid "Supported architectures:"
-msgstr "Ö§³ÖµÄÌåϵ½á¹¹£º"
-
-#: bucomm.c:155
-#, c-format
-msgid "%s: supported architectures:"
-msgstr "%s£ºÖ§³ÖµÄÌåϵ½á¹¹£º"
-
-#: bucomm.c:262
-#, c-format
-msgid "%s: bad number: %s"
-msgstr "%s£º´íÎóµÄ±àºÅ£º%s"
-
-#: coffdump.c:107
-#, c-format
-msgid "#lines %d "
-msgstr "#ÐкŠ%d "
-
-#: coffdump.c:471 sysdump.c:767
-#, c-format
-msgid "Usage: %s [option(s)] in-file\n"
-msgstr "Ó÷¨£º%s [Ñ¡Ïî] ÊäÈëÎļþ\n"
-
-#: coffdump.c:472
-msgid " Print a human readable interpretation of a SYSROFF object file\n"
-msgstr " ´òÓ¡ÊÊÓÚÔĶÁµÄ¶Ô SYSROFF Ä¿±êÎļþµÄ½âÊÍ\n"
-
-#: coffdump.c:473
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Ñ¡ÏîΪ£º\n"
-" -h --help ÏÔʾ±¾ÇóÖúÐÅÏ¢\n"
-" -v --version ÏÔʾ³ÌÐòµÄ°æ±¾ºÅ\n"
-"\n"
-
-#: coffdump.c:541 srconv.c:2052 sysdump.c:831
-msgid "no input file specified"
-msgstr "δָ¶¨ÊäÈëÎļþ"
-
-#: debug.c:653
-msgid "debug_add_to_current_namespace: no current file"
-msgstr "debug_add_to_current_namespace£ºÃ»Óе±Ç°Îļþ"
-
-#: debug.c:736
-msgid "debug_start_source: no debug_set_filename call"
-msgstr "debug_start_source£ºÃ»ÓÐ debug_set_filename µ÷ÓÃ"
-
-#: debug.c:795
-msgid "debug_record_function: no debug_set_filename call"
-msgstr "debug_record_function£ºÃ»ÓÐ debug_set_filename µ÷ÓÃ"
-
-#: debug.c:851
-msgid "debug_record_parameter: no current function"
-msgstr "debug_record_parameter£ºÃ»Óе±Ç°º¯Êý"
-
-#: debug.c:885
-msgid "debug_end_function: no current function"
-msgstr "debug_end_function£ºÃ»Óе±Ç°º¯Êý"
-
-#: debug.c:891
-msgid "debug_end_function: some blocks were not closed"
-msgstr "debug_end_function£ºÄ³Ð©¿éûÓйرÕ"
-
-#: debug.c:921
-msgid "debug_start_block: no current block"
-msgstr "debug_start_block£ºÃ»Óе±Ç°¿é"
-
-#: debug.c:959
-msgid "debug_end_block: no current block"
-msgstr "debug_end_block£ºÃ»Óе±Ç°¿é"
-
-#: debug.c:966
-msgid "debug_end_block: attempt to close top level block"
-msgstr "debug_end_block£ºÊÔͼ¹Ø±Õ¶¥²ã¿é"
-
-#: debug.c:992
-msgid "debug_record_line: no current unit"
-msgstr "debug_record_line£ºÃ»Óе±Ç°µ¥Ôª"
-
-#. FIXME
-#: debug.c:1046
-msgid "debug_start_common_block: not implemented"
-msgstr "debug_start_common_block£ºÎ´ÊµÏÖ"
-
-#. FIXME
-#: debug.c:1058
-msgid "debug_end_common_block: not implemented"
-msgstr "debug_end_common_block£ºÎ´ÊµÏÖ"
-
-#. FIXME.
-#: debug.c:1152
-msgid "debug_record_label: not implemented"
-msgstr "debug_record_label£ºÎ´ÊµÏÖ"
-
-#: debug.c:1178
-msgid "debug_record_variable: no current file"
-msgstr "debug_record_variable£ºÃ»Óе±Ç°Îļþ"
-
-#: debug.c:1194
-msgid "debug_record_variable: no current block"
-msgstr "debug_record_variable£ºÃ»Óе±Ç°¿é"
-
-#: debug.c:1763
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr "debug_make_undefined_type£º²»Ö§³ÖµÄÖÖÀà"
-
-#: debug.c:1964
-msgid "debug_name_type: no current file"
-msgstr "debug_name_type£ºÃ»Óе±Ç°Îļþ"
-
-#: debug.c:2012
-msgid "debug_tag_type: no current file"
-msgstr "debug_tag_type£ºÃ»Óе±Ç°Îļþ"
-
-#: debug.c:2020
-msgid "debug_tag_type: extra tag attempted"
-msgstr "debug_tag_type£ºÒѳ¢ÊÔ¸ü¶àµÄ±ê¼Ç"
-
-#: debug.c:2059
-#, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr "¾¯¸æ£ºÀàÐÍ´óСÓÉ %d ¸ÄΪ %d\n"
-
-#: debug.c:2083
-msgid "debug_find_named_type: no current compilation unit"
-msgstr "debug_find_named_type£ºÃ»Óе±Ç°±àÒëµ¥Ôª"
-
-#: debug.c:2190
-#, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr "debug_get_real_type£º¹ØÓÚ %s µÄÑ­»·µ÷ÊÔÐÅÏ¢\n"
-
-#: debug.c:2650
-msgid "debug_write_type: illegal type encountered"
-msgstr "debug_write_type£ºÓöµ½·Ç·¨ÀàÐÍ"
-
-#: dlltool.c:735 dlltool.c:760 dlltool.c:786
-#, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr "ÄÚ²¿´íÎó£ºÎ´ÖªµÄ»úÆ÷ÀàÐÍ£º%d"
-
-#: dlltool.c:823
-#, c-format
-msgid "Can't open def file: %s"
-msgstr "ÎÞ·¨´ò¿ª def Îļþ£º%s"
-
-#: dlltool.c:828
-#, c-format
-msgid "Processing def file: %s"
-msgstr "´¦Àí def Îļþ£º%s"
-
-#: dlltool.c:832
-msgid "Processed def file"
-msgstr "ÒÑ´¦ÀíµÄ def Îļþ"
-
-#: dlltool.c:858
-#, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr "def ÎļþÖÐÓï·¨´íÎó %s£º%d"
-
-#: dlltool.c:897
-#, c-format
-msgid "NAME: %s base: %x"
-msgstr ""
-
-#: dlltool.c:900 dlltool.c:919
-msgid "Can't have LIBRARY and NAME"
-msgstr ""
-
-#: dlltool.c:916
-#, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr ""
-
-#: dlltool.c:1174 resrc.c:271
-#, c-format
-msgid "wait: %s"
-msgstr "µÈ´ý£º%s"
-
-#: dlltool.c:1179 dllwrap.c:430 resrc.c:276
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr "×Ó½ø³ÌÊÕµ½ÖÂÃüÐźŠ%d"
-
-#: dlltool.c:1185 dllwrap.c:437 resrc.c:283
-#, c-format
-msgid "%s exited with status %d"
-msgstr "%s ÒÔ״̬ %d Í˳ö"
-
-#: dlltool.c:1217
-#, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr "´Ó %2$s ÖÐµÄ %1$s ½Ú»ñÈ¡ÐÅÏ¢"
-
-#: dlltool.c:1341
-#, c-format
-msgid "Excluding symbol: %s"
-msgstr ""
-
-#: dlltool.c:1436 dlltool.c:1447 nm.c:959 nm.c:970 objdump.c:386 objdump.c:401
-#, c-format
-msgid "%s: no symbols"
-msgstr "%s£ºÎÞ·ûºÅ"
-
-#. FIXME: we ought to read in and block out the base relocations
-#: dlltool.c:1474
-#, c-format
-msgid "Done reading %s"
-msgstr "¶ÁÈë %s Íê³É"
-
-#: dlltool.c:1485
-#, c-format
-msgid "Unable to open object file: %s"
-msgstr "ÎÞ·¨´ò¿ªÄ¿±êÎļþ£º%s"
-
-#: dlltool.c:1488
-#, c-format
-msgid "Scanning object file %s"
-msgstr "ÕýÔÚɨÃèÄ¿±êÎļþ %s"
-
-#: dlltool.c:1503
-#, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr "ÎÞ·¨´Ó¹éµµÎļþÖÐÉú³É mcore-elf ¶¯Ì¬Á¬½Ó¿â£º%s"
-
-#: dlltool.c:1595
-msgid "Adding exports to output file"
-msgstr ""
-
-#: dlltool.c:1640
-msgid "Added exports to output file"
-msgstr ""
-
-#: dlltool.c:1764
-#, c-format
-msgid "Generating export file: %s"
-msgstr "ÕýÔÚÉú³Éµ¼³öÎļþ£º%s"
-
-#: dlltool.c:1769
-#, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr "ÎÞ·¨´ò¿ªÁÙʱ»ã±àÎļþ£º%s"
-
-#: dlltool.c:1772
-#, c-format
-msgid "Opened temporary file: %s"
-msgstr "ÒÑ´ò¿ªµÄÁÙʱÎļþ£º%s"
-
-#: dlltool.c:1996
-msgid "Generated exports file"
-msgstr "ÒÑÉú³ÉµÄµ¼³öÎļþ"
-
-#: dlltool.c:2258
-#, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr ""
-
-#: dlltool.c:2261
-#, c-format
-msgid "Creating stub file: %s"
-msgstr ""
-
-#: dlltool.c:2650
-#, c-format
-msgid "failed to open temporary head file: %s"
-msgstr "´ò¿ªÁÙʱͷÎļþʧ°Ü£º%s"
-
-#: dlltool.c:2709
-#, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr "´ò¿ªÁÙʱβÎļþʧ°Ü£º%s"
-
-#: dlltool.c:2777
-#, c-format
-msgid "Can't open .lib file: %s"
-msgstr "ÎÞ·¨´ò¿ª .lib Îļþ£º%s"
-
-#: dlltool.c:2780
-#, c-format
-msgid "Creating library file: %s"
-msgstr "ÕýÔÚ´´½¨¿âÎļþ£º%s"
-
-#: dlltool.c:2839
-#, c-format
-msgid "cannot delete %s: %s"
-msgstr "ÎÞ·¨É¾³ý %s£º%s"
-
-#: dlltool.c:2843
-msgid "Created lib file"
-msgstr "ÒÑ´´½¨µÄ lib Îļþ"
-
-#: dlltool.c:2948
-#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr ""
-
-#: dlltool.c:2954
-#, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr ""
-
-#: dlltool.c:3081
-msgid "Processing definitions"
-msgstr "ÕýÔÚ´¦Àí¶¨Òå"
-
-#: dlltool.c:3119
-msgid "Processed definitions"
-msgstr "ÒÑ´¦Àí¶¨Òå"
-
-#. xgetext:c-format
-#: dlltool.c:3130 dllwrap.c:495
-#, c-format
-msgid "Usage %s <option(s)> <object-file(s)>\n"
-msgstr "Ó÷¨ %s <Ñ¡Ïî> <Ä¿±êÎļþ>\n"
-
-#. xgetext:c-format
-#: dlltool.c:3132
-#, c-format
-msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr " -m --machine <machine> Ϊ <machine> ´´½¨ DLL¡£[ĬÈÏ£º%s]\n"
-
-#: dlltool.c:3133
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-msgstr " ¿ÉÄÜµÄ <machine>£ºarm[_interwork]¡¢i386¡¢mcore[-elf]{-le|-be}¡¢ppc¡¢thumb\n"
-
-#: dlltool.c:3134
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr " -e --output-exp <outname> Éú³Éµ¼³öÎļþ¡£\n"
-
-#: dlltool.c:3135
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr " -l --output-lib <outname> Éú³É½çÃæ¿â¡£\n"
-
-#: dlltool.c:3136
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr ""
-
-#: dlltool.c:3137
-msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr ""
-
-#: dlltool.c:3138
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr " -d --input-def <deffile> Ðè¶ÁÈëµÄ .def ÎļþÃû¡£\n"
-
-#: dlltool.c:3139
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr " -z --output-def <deffile> Ðè´´½¨µÄ .def ÎļþÃû¡£\n"
-
-#: dlltool.c:3140
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols ½«ËùÓзûºÅµ¼³öµ½ .def\n"
-
-#: dlltool.c:3141
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr " --no-export-all-symbols Ö»µ¼³öÁоٵķûºÅ\n"
-
-#: dlltool.c:3142
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr " --exclude-symbols <list> ²»Òªµ¼³ö <list>\n"
-
-#: dlltool.c:3143
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr ""
-
-#: dlltool.c:3144
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr ""
-
-#: dlltool.c:3145
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr " -x --no-idata4 ²»Éú³É idata$4 ½Ú¡£\n"
-
-#: dlltool.c:3146
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr " -c --no-idata5 ²»Éú³É idata$5 ½Ú¡£\n"
-
-#: dlltool.c:3147
-msgid " -U --add-underscore Add underscores to symbols in interface library.\n"
-msgstr ""
-
-#: dlltool.c:3148
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr ""
-
-#: dlltool.c:3149
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr " -A --add-stdcall-alias Ìí¼Ó²»´ø @<n> µÄ±ðÃû¡£\n"
-
-#: dlltool.c:3150
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr " -S --as <name> ½« <name> ÓÃ×÷»ã±à³ÌÐò¡£\n"
-
-#: dlltool.c:3151
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr " -f --as-flags <flags> °Ñ <flags> ´«µÝ¸ø»ã±à³ÌÐò¡£\n"
-
-#: dlltool.c:3152
-msgid " -C --compat-implib Create backward compatible import library.\n"
-msgstr " -C --compat-implib ´´½¨Ïòºó¼æÈݵĵ¼Èë¿â¡£\n"
-
-#: dlltool.c:3153
-msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
-msgstr ""
-
-#: dlltool.c:3154
-msgid " -v --verbose Be verbose.\n"
-msgstr " -v --verbose Êä³ö¸ü¶àÐÅÏ¢¡£\n"
-
-#: dlltool.c:3155
-msgid " -V --version Display the program version.\n"
-msgstr " -V --version ÏÔʾ³ÌÐò°æ±¾ºÅ¡£\n"
-
-#: dlltool.c:3156
-msgid " -h --help Display this information.\n"
-msgstr " -h --help ÏÔʾ±¾ÐÅÏ¢¡£\n"
-
-#: dlltool.c:3158
-msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr ""
-
-#: dlltool.c:3159
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr " -L --linker <name> ½« <name> ÓÃ×÷Á¬½ÓÆ÷¡£\n"
-
-#: dlltool.c:3160
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr " -F --linker-flags <flags> °Ñ <flags> ´«µÝ¸øÁ¬½ÓÆ÷¡£\n"
-
-#: dlltool.c:3310
-#, c-format
-msgid "Unable to open base-file: %s"
-msgstr ""
-
-#: dlltool.c:3339
-#, c-format
-msgid "Machine '%s' not supported"
-msgstr "²»Ö§³Ö»úÆ÷¡°%s¡±"
-
-#: dlltool.c:3442 dllwrap.c:214
-#, c-format
-msgid "Tried file: %s"
-msgstr ""
-
-#: dlltool.c:3449 dllwrap.c:221
-#, c-format
-msgid "Using file: %s"
-msgstr ""
-
-#: dllwrap.c:308
-#, c-format
-msgid "Keeping temporary base file %s"
-msgstr ""
-
-#: dllwrap.c:310
-#, c-format
-msgid "Deleting temporary base file %s"
-msgstr ""
-
-#: dllwrap.c:324
-#, c-format
-msgid "Keeping temporary exp file %s"
-msgstr ""
-
-#: dllwrap.c:326
-#, c-format
-msgid "Deleting temporary exp file %s"
-msgstr ""
-
-#: dllwrap.c:339
-#, c-format
-msgid "Keeping temporary def file %s"
-msgstr "±£ÁôÁÙʱ def Îļþ %s"
-
-#: dllwrap.c:341
-#, c-format
-msgid "Deleting temporary def file %s"
-msgstr "ɾ³ýÁÙʱ def Îļþ %s"
-
-#: dllwrap.c:496
-msgid " Generic options:\n"
-msgstr " ͨÓÃÑ¡Ï\n"
-
-#: dllwrap.c:497
-msgid " --quiet, -q Work quietly\n"
-msgstr " --quiet, -q °²¾²µØ¹¤×÷\n"
-
-#: dllwrap.c:498
-msgid " --verbose, -v Verbose\n"
-msgstr " --verbose, -v Êä³ö½Ï¶àÐÅÏ¢\n"
-
-#: dllwrap.c:499
-msgid " --version Print dllwrap version\n"
-msgstr " --version ´òÓ¡ dllwrap µÄ°æ±¾ºÅ\n"
-
-#: dllwrap.c:500
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr " --implib <outname> --output-lib µÄͬÒåÓï\n"
-
-#: dllwrap.c:501
-#, c-format
-msgid " Options for %s:\n"
-msgstr " %s µÄÑ¡Ï\n"
-
-#: dllwrap.c:502
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr " --driver-name <driver> ĬÈÏΪ¡°gcc¡±\n"
-
-#: dllwrap.c:503
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr " --driver-flags <flags> ¸²¸ÇĬÈ쵀 ld ±êÖ¾\n"
-
-#: dllwrap.c:504
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr " --dlltool-name <dlltool> ĬÈÏΪ¡°dlltool¡±\n"
-
-#: dllwrap.c:505
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr ""
-
-#: dllwrap.c:506
-msgid " --image-base <base> Specify image base address\n"
-msgstr ""
-
-#: dllwrap.c:507
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr " --target <machine> i386-cygwin32 »ò i386-mingw32\n"
-
-#: dllwrap.c:508
-msgid " --dry-run Show what needs to be run\n"
-msgstr " --dry-run Ö»ÏÔʾÐèÒªÔËÐÐÄÇЩ¶¯×÷\n"
-
-#: dllwrap.c:509
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr " --mno-cygwin ´´½¨ Mingw DLL\n"
-
-#: dllwrap.c:510
-msgid " Options passed to DLLTOOL:\n"
-msgstr " ´«µÝ¸ø DLLTOOL µÄÑ¡Ï\n"
-
-#: dllwrap.c:511
-msgid " --machine <machine>\n"
-msgstr " --machine <machine>\n"
-
-#: dllwrap.c:512
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr " --output-exp <outname> Éú³Éµ¼³öÎļþ¡£\n"
-
-#: dllwrap.c:513
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr " --output-lib <outname> Éú³ÉÊäÈë¿â¡£\n"
-
-#: dllwrap.c:514
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr ""
-
-#: dllwrap.c:515
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr ""
-
-#: dllwrap.c:516
-msgid " --def <deffile> Name input .def file\n"
-msgstr " --def <deffile> ÊäÈë .def ÎļþµÄÎļþÃû\n"
-
-#: dllwrap.c:517
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr " --output-def <deffile> Êä³ö .def ÎļþµÄÎļþÃû\n"
-
-#: dllwrap.c:518
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols ½«ËùÓзûºÅµ¼³öµ½ .def ÖÐ\n"
-
-#: dllwrap.c:519
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr " --no-export-all-symbols Ö»µ¼³ö·ûºÅ .drectve\n"
-
-#: dllwrap.c:520
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr " --exclude-symbols <list> ´Ó .def ÖÐÅųý <list>\n"
-
-#: dllwrap.c:521
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr " --no-default-excludes Çå¿ÕĬÈÏÅųý·ûºÅ\n"
-
-#: dllwrap.c:522
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr ""
-
-#: dllwrap.c:523
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr " --no-idata4 ²»Éú³É idata$4 ½Ú\n"
-
-#: dllwrap.c:524
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr " --no-idata5 ²»Éú³É idata$5 ½Ú\n"
-
-#: dllwrap.c:525
-msgid " -U Add underscores to .lib\n"
-msgstr " -U Ϊ .lib Ìí¼ÓÏ»®Ïß\n"
-
-#: dllwrap.c:526
-msgid " -k Kill @<n> from exported names\n"
-msgstr " -k ɾȥµ¼³öÃû×ÖÖÐµÄ @<n>\n"
-
-#: dllwrap.c:527
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr " --add-stdcall-alias Ìí¼Ó²»´ø @<n> µÄ±ðÃû\n"
-
-#: dllwrap.c:528
-msgid " --as <name> Use <name> for assembler\n"
-msgstr " --as <name> ½« <name> ÓÃ×÷»ã±à³ÌÐò\n"
-
-#: dllwrap.c:529
-msgid " --nodelete Keep temp files.\n"
-msgstr " --nodelete ±£ÁôÁÙʱÎļþ¡£\n"
-
-#: dllwrap.c:530
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr " ÆäÓàµÄ¶¼²»¼ÓÈκÎÐ޸ĵڴ«µÝ¸øÓïÑÔÇý¶¯Æ÷\n"
-
-#: dllwrap.c:802
-msgid "Must provide at least one of -o or --dllname options"
-msgstr "±ØÐëÌṩÖÁÉÙÒ»¸ö -o »ò --dllname Ñ¡Ïî"
-
-#: dllwrap.c:830
-msgid ""
-"no export definition file provided.\n"
-"Creating one, but that may not be what you want"
-msgstr ""
-"δÌṩµ¼³ö¶¨ÒåÎļþ¡£\n"
-"´´½¨Ò»¸ö£¬µ«¿ÉÄܲ»ÊÇÄúËùÒªµÄ"
-
-#: dllwrap.c:992
-#, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr "DLLTOOL Ãû³Æ £º%s\n"
-
-#: dllwrap.c:993
-#, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr "DLLTOOL Ñ¡Ïî £º%s\n"
-
-#: dllwrap.c:994
-#, c-format
-msgid "DRIVER name : %s\n"
-msgstr "Çý¶¯Æ÷Ãû³Æ £º%s\n"
-
-#: dllwrap.c:995
-#, c-format
-msgid "DRIVER options : %s\n"
-msgstr "Çý¶¯Æ÷Ñ¡Ïî £º%s\n"
-
-#: emul_aix.c:52
-#, c-format
-msgid " [-g] - 32 bit small archive\n"
-msgstr " [-g] - 32 λС¹éµµÎļþ\n"
-
-#: emul_aix.c:53
-msgid " [-X32] - ignores 64 bit objects\n"
-msgstr " [-X32] - ºöÂÔ 64 λ¶ÔÏó\n"
-
-#: emul_aix.c:54
-msgid " [-X64] - ignores 32 bit objects\n"
-msgstr " [-X64] - ºöÂÔ 32 λ¶ÔÏó\n"
-
-#: emul_aix.c:55
-msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
-msgstr " [-X32_64] - ½ÓÊÜ 32 λºÍ 64 λ¶ÔÏó\n"
-
-#: ieee.c:317
-msgid "unexpected end of debugging information"
-msgstr "µ÷ÊÔÐÅÏ¢ÒâÍâ½áÊø"
-
-#: ieee.c:412
-msgid "invalid number"
-msgstr "ÎÞЧ±àºÅ"
-
-#: ieee.c:471
-msgid "invalid string length"
-msgstr "ÎÞЧµÄ×Ö·û´®³¤¶È"
-
-#: ieee.c:528 ieee.c:569
-msgid "expression stack overflow"
-msgstr "±í´ïʽջÒç³ö"
-
-#: ieee.c:548
-msgid "unsupported IEEE expression operator"
-msgstr "²»Ö§³ÖµÄ IEEE ±í´ïʽ²Ù×÷·û"
-
-#: ieee.c:563
-msgid "unknown section"
-msgstr "δ֪µÄ½Ú"
-
-#: ieee.c:584
-msgid "expression stack underflow"
-msgstr "±í´ïʽջÏÂÒç³ö"
-
-#: ieee.c:598
-msgid "expression stack mismatch"
-msgstr "±í´ïʽջ²»Æ¥Åä"
-
-#: ieee.c:637
-msgid "unknown builtin type"
-msgstr "δ֪µÄÄÚÖÃÀàÐÍ"
-
-#: ieee.c:782
-msgid "BCD float type not supported"
-msgstr "²»Ö§³ÖµÄ BCD ¸¡µãÀàÐÍ"
-
-#: ieee.c:928
-msgid "unexpected number"
-msgstr "ÒâÍâµÄ±àºÅ"
-
-#: ieee.c:935
-msgid "unexpected record type"
-msgstr "ÒâÍâµÄ¼Ç¼ÀàÐÍ"
-
-#: ieee.c:968
-msgid "blocks left on stack at end"
-msgstr "½áÊøʱÈÔÁôÔÚÕ»ÖеĿé"
-
-#: ieee.c:1233
-msgid "unknown BB type"
-msgstr "δ֪µÄ BB ÀàÐÍ"
-
-#: ieee.c:1242
-msgid "stack overflow"
-msgstr "Õ»ÉÏÒç³ö"
-
-#: ieee.c:1267
-msgid "stack underflow"
-msgstr "Õ»ÏÂÒç³ö"
-
-#: ieee.c:1381 ieee.c:1453 ieee.c:2152
-msgid "illegal variable index"
-msgstr "·Ç·¨µÄ±äÁ¿Ë÷Òý"
-
-#: ieee.c:1431
-msgid "illegal type index"
-msgstr "·Ç·¨µÄÀàÐÍË÷Òý"
-
-#: ieee.c:1441 ieee.c:1478
-msgid "unknown TY code"
-msgstr "δ֪µÄ TY ´úÂë"
-
-#: ieee.c:1460
-msgid "undefined variable in TY"
-msgstr "TY ÖÐ䶨ÒåµÄ±äÁ¿"
-
-#. Pascal file name. FIXME.
-#: ieee.c:1871
-msgid "Pascal file name not supported"
-msgstr "²»Ö§³Ö Pascal ÎļþÃû"
-
-#: ieee.c:1919
-msgid "unsupported qualifier"
-msgstr "²»Ö§³ÖµÄÏÞ¶¨·û"
-
-#: ieee.c:2190
-msgid "undefined variable in ATN"
-msgstr "ATN ÖÐ䶨ÒåµÄ±äÁ¿"
-
-#: ieee.c:2233
-msgid "unknown ATN type"
-msgstr "δ֪µÄ ATN ÀàÐÍ"
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2355
-msgid "unsupported ATN11"
-msgstr "²»Ö§³Ö ATN11"
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2382
-msgid "unsupported ATN12"
-msgstr "²»Ö§³Ö ATN12"
-
-#: ieee.c:2442
-msgid "unexpected string in C++ misc"
-msgstr ""
-
-#: ieee.c:2455
-msgid "bad misc record"
-msgstr ""
-
-#: ieee.c:2498
-msgid "unrecognized C++ misc record"
-msgstr ""
-
-#: ieee.c:2615
-msgid "undefined C++ object"
-msgstr "䶨ÒåµÄ C++ ¶ÔÏó"
-
-#: ieee.c:2649
-msgid "unrecognized C++ object spec"
-msgstr ""
-
-#: ieee.c:2685
-msgid "unsupported C++ object type"
-msgstr "²»Ö§³ÖµÄ C++ ¶ÔÏóÀàÐÍ"
-
-#: ieee.c:2695
-msgid "C++ base class not defined"
-msgstr "䶨Òå C++ »ùÀà"
-
-#: ieee.c:2707 ieee.c:2812
-msgid "C++ object has no fields"
-msgstr "C++ ¶ÔÏóûÓÐÓò"
-
-#: ieee.c:2726
-msgid "C++ base class not found in container"
-msgstr ""
-
-#: ieee.c:2833
-msgid "C++ data member not found in container"
-msgstr ""
-
-#: ieee.c:2874 ieee.c:3024
-msgid "unknown C++ visibility"
-msgstr ""
-
-#: ieee.c:2908
-msgid "bad C++ field bit pos or size"
-msgstr ""
-
-#: ieee.c:3000
-msgid "bad type for C++ method function"
-msgstr ""
-
-#: ieee.c:3010
-msgid "no type information for C++ method function"
-msgstr ""
-
-#: ieee.c:3049
-msgid "C++ static virtual method"
-msgstr "C++ ¾²Ì¬ÐéÄâ·½·¨"
-
-#: ieee.c:3144
-msgid "unrecognized C++ object overhead spec"
-msgstr ""
-
-#: ieee.c:3183
-msgid "undefined C++ vtable"
-msgstr "䶨ÒåµÄ C++ vtable"
-
-#: ieee.c:3254
-msgid "C++ default values not in a function"
-msgstr ""
-
-#: ieee.c:3294
-msgid "unrecognized C++ default type"
-msgstr "ÎÞ·¨Ê¶±ðµÄ C++ ĬÈÏÀàÐÍ"
-
-#: ieee.c:3325
-msgid "reference parameter is not a pointer"
-msgstr "ÒýÓòÎÊý²»ÊÇÖ¸Õë"
-
-#: ieee.c:3410
-msgid "unrecognized C++ reference type"
-msgstr "ÎÞ·¨Ê¶±ðµÄ C++ ÒýÓÃÀàÐÍ"
-
-#: ieee.c:3492
-msgid "C++ reference not found"
-msgstr "ÕÒ²»µ½ C++ ÒýÓÃ"
-
-#: ieee.c:3500
-msgid "C++ reference is not pointer"
-msgstr "C++ ÒýÓò»ÊÇÖ¸Õë"
-
-#: ieee.c:3529 ieee.c:3537
-msgid "missing required ASN"
-msgstr "ÒÅʧ±ØÐëµÄ ASN"
-
-#: ieee.c:3567 ieee.c:3575
-msgid "missing required ATN65"
-msgstr "ÒÅʧ±ØÐëµÄ ATN65"
-
-#: ieee.c:3589
-msgid "bad ATN65 record"
-msgstr "´íÎóµÄ ATN65 ¼Ç¼"
-
-#: ieee.c:4234
-msgid "IEEE numeric overflow: 0x"
-msgstr "IEEE ÊýÖµÒç³ö£º0x"
-
-#: ieee.c:4280
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr "IEEE ×Ö·û´®³¤¶ÈÒç³ö£º%u\n"
-
-#: ieee.c:5330
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr "IEEE ²»Ö§³ÖµÄÕûÊýÀàÐÍ´óС %u\n"
-
-#: ieee.c:5366
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr "IEEE ²»Ö§³ÖµÄ¸¡µãÀàÐÍ´óС %u\n"
-
-#: ieee.c:5402
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr "IEEE ²»Ö§³ÖµÄ¸ºÔØÀàÐÍ´óС %u\n"
-
-#: nlmconv.c:281 srconv.c:2043
-msgid "input and output files must be different"
-msgstr "ÊäÈëÊä³öÎļþ±ØÐ벻ͬ"
-
-#: nlmconv.c:328
-msgid "input file named both on command line and with INPUT"
-msgstr "ͬʱÔÚÃüÁîÐÐºÍ INPU ÖÐÃüÃûÊäÈëÎļþ"
-
-#: nlmconv.c:337
-msgid "no input file"
-msgstr "ûÓÐÊäÈëÎļþ"
-
-#: nlmconv.c:367
-msgid "no name for output file"
-msgstr "Êä³öÎļþûÓÐÃû³Æ"
-
-#: nlmconv.c:380
-msgid "warning: input and output formats are not compatible"
-msgstr "¾¯¸æ£ºÊäÈëºÍÊä³ö¸ñʽ²»¼æÈÝ"
-
-#: nlmconv.c:409
-msgid "make .bss section"
-msgstr "Éú³É .bss ½Ú"
-
-#: nlmconv.c:418
-msgid "make .nlmsections section"
-msgstr "Éú³É .nlmsections ½Ú"
-
-#: nlmconv.c:420
-msgid "set .nlmsections flags"
-msgstr "É趨 .nlmsections ±êÖ¾"
-
-#: nlmconv.c:448
-msgid "set .bss vma"
-msgstr "É趨 .bss vma"
-
-#: nlmconv.c:455
-msgid "set .data size"
-msgstr "É趨 .data µÄ´óС"
-
-#: nlmconv.c:635
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr "¾¯¸æ£ºµ¼ÈëµÄ·ûºÅ %s ²»ÔÚµ¼ÈëÁбíÖÐ"
-
-#: nlmconv.c:655
-msgid "set start address"
-msgstr "É趨ÆðʼµØÖ·"
-
-#: nlmconv.c:704
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr "¾¯¸æ£ºÎ´¶¨Òå START ×Ó³ÌÐò %s"
-
-#: nlmconv.c:706
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr "¾¯¸æ£ºÎ´¶¨Òå×Ó³ÌÐò %s"
-
-#: nlmconv.c:708
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr "¾¯¸æ£ºÎ´¶¨Òå×Ó³ÌÐò %s"
-
-#: nlmconv.c:729 nlmconv.c:918
-msgid "custom section"
-msgstr "¶¨ÖƽÚ"
-
-#: nlmconv.c:750 nlmconv.c:947
-msgid "help section"
-msgstr "ÇóÖú½Ú"
-
-#: nlmconv.c:772 nlmconv.c:965
-msgid "message section"
-msgstr "ÏûÏ¢½Ú"
-
-#: nlmconv.c:788 nlmconv.c:998
-msgid "module section"
-msgstr "Ä£¿é½Ú"
-
-#: nlmconv.c:808 nlmconv.c:1014
-msgid "rpc section"
-msgstr "rpc ½Ú"
-
-#. There is no place to record this information.
-#: nlmconv.c:844
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr "%s£º¾¯¸æ£º¹²Ïí¿â²»Äܺ¬ÓÐδ³õʼ»¯µÄÊý¾Ý"
-
-#: nlmconv.c:865 nlmconv.c:1033
-msgid "shared section"
-msgstr "¹²Ïí½Ú"
-
-#: nlmconv.c:873
-msgid "warning: No version number given"
-msgstr "¾¯¸æ£ºÎ´¸ø³ö°æ±¾ºÅ"
-
-#: nlmconv.c:913 nlmconv.c:942 nlmconv.c:960 nlmconv.c:1009 nlmconv.c:1028
-#, c-format
-msgid "%s: read: %s"
-msgstr "%s£º¶ÁÈ¡£º%s"
-
-#: nlmconv.c:935
-msgid "warning: MAP and FULLMAP are not supported; try ld -M"
-msgstr "¾¯¸æ£º²»Ö§³Ö MAP ºÍ FULLMAP£»ÇëÊÔÓà ld -M"
-
-#: nlmconv.c:1107
-#, c-format
-msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
-msgstr "Ó÷¨£º%s [Ñ¡Ïî] [ÊäÈëÎļþ [Êä³öÎļþ]]\n"
-
-#: nlmconv.c:1108
-msgid " Convert an object file into a NetWare Loadable Module\n"
-msgstr " ½«¶ÔÏóÎļþת»»Îª NetWare ¿ÉÔØÈëÄ£¿é\n"
-
-#: nlmconv.c:1109
-msgid ""
-" The options are:\n"
-" -I --input-target=<bfdname> Set the input binary file format\n"
-" -O --output-target=<bfdname> Set the output binary file format\n"
-" -T --header-file=<file> Read <file> for NLM header information\n"
-" -l --linker=<linker> Use <linker> for any linking\n"
-" -d --debug Display on stderr the linker command line\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-msgstr ""
-" Ñ¡ÏîΪ£º\n"
-" -I --input-target=<bfdname> É趨ÊäÈë¶þ½øÖÆÎļþ¸ñʽ\n"
-" -O --output-target=<bfdname> É趨Êä³ö¶þ½øÖÆÎļþ¸ñʽ\n"
-" -T --header-file=<file> ´Ó <file> ÖжÁÈë NLM Í·ÐÅÏ¢\n"
-" -l --linker=<linker> ÔÚËùÓÐÁ¬½ÓÖÐʹÓà <linker>\n"
-" -d --debug ÔÚ±ê×¼´íÎóÊä³öÖÐÏÔʾÁ¬½ÓÆ÷ÃüÁîÐÐ\n"
-" -h --help ÏÔʾ±¾ÐÅÏ¢\n"
-" -v --version ÏÔʾ³ÌÐòµÄ°æ±¾ºÅ\n"
-
-#: nlmconv.c:1151
-#, c-format
-msgid "support not compiled in for %s"
-msgstr ""
-
-#: nlmconv.c:1191
-msgid "make section"
-msgstr ""
-
-#: nlmconv.c:1205
-msgid "set section size"
-msgstr "É趨½Ú´óС"
-
-#: nlmconv.c:1211
-msgid "set section alignment"
-msgstr "É趨½Ú¶ÔÆë"
-
-#: nlmconv.c:1215
-msgid "set section flags"
-msgstr "É趨½Ú±êÖ¾"
-
-#: nlmconv.c:1226
-msgid "set .nlmsections size"
-msgstr "É趨 .nlmsections ´óС"
-
-#: nlmconv.c:1314 nlmconv.c:1322 nlmconv.c:1331 nlmconv.c:1336
-msgid "set .nlmsection contents"
-msgstr "É趨 .nlmsection µÄÄÚÈÝ"
-
-#: nlmconv.c:1837
-msgid "stub section sizes"
-msgstr "ռλ½Ú´óС"
-
-#: nlmconv.c:1886
-msgid "writing stub"
-msgstr "ÕýÔÚдÈëռλ½Ú"
-
-#: nlmconv.c:1975
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr ""
-
-#: nlmconv.c:2039
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr ""
-
-#: nlmconv.c:2156
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr "%s£ºÖ´ÐÐ %s ʧ°Ü£º"
-
-#: nlmconv.c:2171
-#, c-format
-msgid "Execution of %s failed"
-msgstr "Ö´ÐÐ %s ʧ°Ü"
-
-#: nm.c:246 size.c:85 strings.c:650
-#, c-format
-msgid "Usage: %s [option(s)] [file(s)]\n"
-msgstr "Ó÷¨£º%s [Ñ¡Ïî] [Îļþ]\n"
-
-#: nm.c:247
-msgid " List symbols in [file(s)] (a.out by default).\n"
-msgstr "Áо٠[Îļþ] ÖеķûºÅ (ĬÈÏΪ a.out)¡£\n"
-
-#: nm.c:248
-msgid ""
-" The options are:\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', 'lucid', 'arm', 'hp', 'edg' or 'gnu-new-abi'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -S, --print-size Print size of defined symbols\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -X 32_64 (ignored)\n"
-" -h, --help Display this information\n"
-" -V, --version Display this program's version number\n"
-"\n"
-msgstr ""
-" Ñ¡ÏîΪ£º\n"
-" -a, --debug-syms ÏÔʾֻÓÃÓÚµ÷ÊԵķûºÅ\n"
-" -A, --print-file-name ÔÚÿ¸ö·ûºÅÇ°´òÓ¡ÊäÈëÎļþÃû\n"
-" -B ÓÚ --format=bsd Ïàͬ\n"
-" -C, --demangle[=STYLE] ½«µ×²ã·ûºÅÃû½âÂëΪÓû§¼¶Ãû³Æ\n"
-" Èç¹û¸ø³ö STYLE£¬STYLE ¿ÉÄÜΪ¡°auto¡± (ĬÈÏ)¡¢\n"
-" ¡°gnu¡±¡¢¡°lucid¡±¡¢¡°arm¡±¡¢¡°hp¡±¡¢¡°edg¡±»ò¡°gnu-new-abi¡±\n"
-" --no-demangle ²»Òª½âÂëµ×²ã·ûºÅÃû\n"
-" -D, --dynamic ÏÔʾ¶¯Ì¬·ûºÅ¶ø²»ÊÇÆÕͨ·ûºÅ\n"
-" --defined-only Ö»ÏÔʾÒѶ¨ÒåµÄ·ûºÅ\n"
-" -e (ºöÂÔ)\n"
-" -f, --format=FORMAT ʹÓÃÊä³ö¸ñʽ FORMAT¡£FORMAT ¿ÉÄÜÊÇ¡°bsd¡±¡¢\n"
-" ¡°sysv¡±»ò¡°posix¡±¡£Ä¬ÈÏΪ¡°bsd¡±\n"
-" -g, --extern-only Ö»ÏÔʾÍⲿ·ûºÅ\n"
-" -l, --line-numbers ʹÓõ÷ÊÔÐÅÏ¢ÒÔ±ãΪÿ¸ö·ûºÅÑ°ÕÒÎļþÃûºÍÐкÅ\n"
-" -n, --numeric-sort °´µØÖ·ÅÅÐò·ûºÅ\n"
-" -o ÓÚ -A Ïàͬ\n"
-" -p, --no-sort ²»Òª¶Ô·ûºÅ½øÐÐÅÅÐò\n"
-" -P, --portability ÓÚ --format=posix Ïàͬ\n"
-" -r, --reverse-sort ·´×ªÅÅÐò˳Ðò\n"
-" -S, --print-size ´òÓ¡¶¨ÒåÁ˵ķûºÅµÄ´óС\n"
-" -s, --print-armap ´òÓ¡¹éµµÎļþ³ÉÔ±ÖзûºÅµÄË÷Òý\n"
-" --size-sort °´´óСÅÅÐò·ûºÅ\n"
-" -t, --radix=RADIX ½« RADIX ÓÃÓÚ´òÓ¡·ûºÅÖµ\n"
-" --target=BFDNAME ½«±êµÄÄ¿±ê¸ñʽָ¶¨Îª BFDNAME\n"
-" -u, --undefined-only Ö»ÏÔʾ䶨ÒåµÄ·ûºÅ\n"
-" -X 32_64 (ºöÂÔ)\n"
-" -h, --help ÏÔʾ±¾ÐÅÏ¢\n"
-" -V, --version ÏÔʾ±¾³ÌÐòµÄ°æ±¾ºÅ\n"
-"\n"
-
-#: nm.c:281 objdump.c:217
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr "½« bug ±¨¸æµ½ %s¡£\n"
-
-#: nm.c:314
-#, c-format
-msgid "%s: invalid radix"
-msgstr "%s£ºÎÞЧµÄ»ùÊý"
-
-#: nm.c:339
-#, c-format
-msgid "%s: invalid output format"
-msgstr "%s£ºÎÞЧµÄÊä³ö¸ñʽ"
-
-#: nm.c:456
-msgid "Only -X 32_64 is supported"
-msgstr "Ö»Ö§³Ö -X 32_64"
-
-#: nm.c:498
-#, c-format
-msgid "data size %ld"
-msgstr "Êý¾Ý´óС %ld"
-
-#: nm.c:523 readelf.c:5306 readelf.c:5342
-#, c-format
-msgid "<processor specific>: %d"
-msgstr "<´¦ÀíÆ÷רÓÃ>£º%d"
-
-#: nm.c:525 readelf.c:5308 readelf.c:5354
-#, c-format
-msgid "<OS specific>: %d"
-msgstr "<²Ù×÷ϵͳרÓÃ>£º%d"
-
-#: nm.c:527 readelf.c:5310 readelf.c:5357
-#, c-format
-msgid "<unknown>: %d"
-msgstr "<δ֪>£º%d"
-
-#: nm.c:1339
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"À´×Ô %s µÄ䶨Òå·ûºÅ£º\n"
-"\n"
-
-#: nm.c:1341
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"À´×Ô %s µÄ·ûºÅ£º\n"
-"\n"
-
-#: nm.c:1343 nm.c:1401
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-
-#: nm.c:1346 nm.c:1404
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-
-#: nm.c:1397
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"À´×Ô %s[%s] µÄ䶨ÒåµÄ·ûºÅ£º\n"
-"\n"
-
-#: nm.c:1399
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"À´×Ô %s[%s] µÄ·ûºÅ£º\n"
-"\n"
-
-#: nm.c:1614
-msgid ""
-"\n"
-"Archive index:\n"
-msgstr ""
-"\n"
-"¹éµµË÷Òý£º\n"
-
-#: objcopy.c:363 srconv.c:1952
-#, c-format
-msgid "Usage: %s [option(s)] in-file [out-file]\n"
-msgstr "Ó÷¨£º%s [Ñ¡Ïî] ÊäÈëÎļþ [Êä³öÎļþ]\n"
-
-#: objcopy.c:364
-msgid " Copies a binary file, possibly transforming it in the process\n"
-msgstr " ¸´Öƶþ½øÖÆÎļþ£¬¿ÉÄÜÔڴ˹ý³ÌÖнøÐб任\n"
-
-#: objcopy.c:365 objcopy.c:435
-msgid " The options are:\n"
-msgstr " Ñ¡ÏîΪ£º\n"
-
-#: objcopy.c:366
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -B --binary-architecture <arch> Set arch of output file, when input is binary\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" --debugging Convert debugging information, if possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation information\n"
-" -g --strip-debug Remove all debugging symbols\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" -K --keep-symbol <name> Only copy symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-" --weaken Force all global symbols to be marked as weak\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address <addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to <flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to output\n"
-" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-" --change-leading-char Force output format's leading character style\n"
-" --remove-leading-char Remove leading character from global symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --srec-len <number> Restrict the length of generated Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-" --strip-symbols <file> -N for all symbols listed in <file>\n"
-" --keep-symbols <file> -K for all symbols listed in <file>\n"
-" --localize-symbols <file> -L for all symbols listed in <file>\n"
-" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-" --weaken-symbols <file> -W for all symbols listed in <file>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-msgstr ""
-" -I --input-target <bfdname> ¼Ù¶¨ÊäÈëÎļþµÄ¸ñʽΪ <bfdname>\n"
-" -O --output-target <bfdname> ´´½¨¸ñʽΪ <bfdname> µÄÊä³öÎļþ\n"
-" -B --binary-architecture <arch> µ±ÊäÈëÎļþΪ¶þ½øÖÆÎļþʱ£¬É趨Êä³öÎļþµÄÌåϵ½á¹¹\n"
-" -F --target <bfdname> ½«ÊäÈëÊä³ö¸ñʽÉ趨Ϊ <bfdname>\n"
-" --debugging Èç¹û¿ÉÄÜ£¬×ª»»µ÷ÊÔÐÅÏ¢\n"
-" -p --preserve-dates ½«ÐÞ¸Ä/·ÃÎÊʱ¼ä´Á¸´ÖƵ½Êä³öÎļþ\n"
-" -j --only-section <name> Ö»½« <name> ½Ú¸´ÖƵ½Êä³öÎļþÖÐ\n"
-" -R --remove-section <name> ´ÓÊä³öÖÐɾ³ý <name> ½Ú\n"
-" -S --strip-all ɾ³ýËùÓзûºÅºÍÖض¨Î»ÐÅÏ¢\n"
-" -g --strip-debug ɾ³ýËùÓе÷ÊÔ·ûºÅ\n"
-" --strip-unneeded ɾ³ýËùÓÐÖض¨Î»²»ÐèÒªµÄ·ûºÅ\n"
-" -N --strip-symbol <name> ²»Òª¸´ÖÆ·ûºÅ <name>\n"
-" -K --keep-symbol <name> Ö»¸´ÖÆ·ûºÅ <name>\n"
-" -L --localize-symbol <name> ½«·ûºÅ <name> Ç¿ÖƱêʶΪ±¾µØ·ûºÅ\n"
-" -G --keep-global-symbol <name> ½«³ýÁË·ûºÅ <name> ÒÔÍâµÄËùÓзûºÅ±êʶΪ±¾µØ·ûºÅ\n"
-" -W --weaken-symbol <name> ½«·ûºÅ <name> Ç¿ÖƱêʶΪÈõ·ûºÅ\n"
-" --weaken ½«ËùÓÐÈ«¾Ö·ûºÅ±êʶΪÈõ·ûºÅ\n"
-" -x --discard-all ɾ³ýËùÓзÇÈ«¾Ö·ûºÅ\n"
-" -X --discard-locals ɾ³ýËùÓбàÒëÆ÷Éú³ÉµÄ·ûºÅ\n"
-" -i --interleave <number> Ö»ÔÚÿ <number> ¸ö×Ö½ÚÖи´ÖÆÒ»¸ö\n"
-" -b --byte <num> ÔÚÿ¸ö²åÈë¿éÖÐÑ¡Ôñ×Ö½Ú <num>\n"
-" --gap-fill <val> ÔÚ½Ú¿Õ϶ÖÐÒÔ <val> Ìî³ä\n"
-" --pad-to <addr> ²¹³ä×îºóÒ»½ÚÖ±µ½µØÖ· <addr>\n"
-" --set-start <addr> ½«ÆðʼµØÖ·ÉèÖÃΪ <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" ½« <incr> Ôö¼Óµ½ÆðʼµØÖ·\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" ½« <incr> Ôö¼Óµ½ LMA¡¢VMA ºÍÆðʼµØÖ·\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" ÒÔ <val> ÐÞ¸Ä <name> ½ÚµÄ LMA ºÍ VMA\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" ÒÔ <val> ÐÞ¸Ä <name> ½ÚµÄ LMA\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" ÒÔ <val> ÐÞ¸Ä <name> ½ÚµÄ VMA\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Èç¹ûÃüÃû½Ú²»´æÔھ͸ø³ö¾¯¸æ\n"
-" --set-section-flags <name>=<flags>\n"
-" ½« <name> ½ÚµÄÊôÐÔÉèÖÃΪ <flags>\n"
-" --add-section <name>=<file> ½« <file> ÖÐµÄ <name> ½ÚÌí¼Óµ½Êä³öÖÐ\n"
-" --rename-section <old>=<new>[,<flags>] ½«½ÚÓÉ <old> ¸ÄÃûΪ <new>\n"
-" --change-leading-char Ç¿ÐÐÉ趨Êä³ö¸ñʽµÄÇ°µ¼×Ö·û·ç¸ñ\n"
-" --remove-leading-char ɾ³ýÈ«¾Ö·ûºÅµÄÇ°µ¼×Ö·û\n"
-" --redefine-sym <old>=<new> ½«·ûºÅÓÉ <old> ¸ÄÃûΪ <new>\n"
-" --srec-len <number> ÏÞÖÆÉú³ÉµÄ Srecords µÄ³¤¶È\n"
-" --srec-forceS3 ½«Éú³ÉµÄ Srecords µÄÀàÐÍÏÞÖÆΪ S3\n"
-" --strip-symbols <file> ¶ÔÁоÙÔÚ <file> ÖеÄËùÓзûºÅÖ´ÐÐ -N\n"
-" --keep-symbols <file> ¶ÔÁоÙÔÚ <file> ÖеÄËùÓзûºÅÖ´ÐÐ -K\n"
-" --localize-symbols <file> ¶ÔÁоÙÔÚ <file> ÖеÄËùÓзûºÅÖ´ÐÐ -L\n"
-" --keep-global-symbols <file> ¶ÔÁоÙÔÚ <file> ÖеÄËùÓзûºÅÖ´ÐÐ -G\n"
-" --weaken-symbols <file> ¶ÔÁоÙÔÚ <file> ÖеÄËùÓзûºÅÖ´ÐÐ -W\n"
-" --alt-machine-code <index> Êä³öʹÓÃÌæ´úµÄ»úÆ÷Âë\n"
-" -v --verbose ÁгöËùÓÐÐ޸ĵÄÄ¿±êÎļþ\n"
-" -V --version ÏÔʾ±¾³ÌÐòµÄ°æ±¾ºÅ\n"
-" -h --help ÏÔʾ±¾Êä³ö\n"
-
-#: objcopy.c:433
-#, c-format
-msgid "Usage: %s <option(s)> in-file(s)\n"
-msgstr "Ó÷¨£º%s <Ñ¡Ïî> ÊäÈëÎļþ\n"
-
-#: objcopy.c:434
-msgid " Removes symbols and sections from files\n"
-msgstr "´ÓÎļþÖÐɾ³ý·ûºÅºÍ½Ú\n"
-
-#: objcopy.c:436
-msgid ""
-" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target=<bfdname> Create an output file in format <bfdname>\n"
-" -F --target=<bfdname> Set both input and output format to <bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -R --remove-section=<name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation information\n"
-" -g -S -d --strip-debug Remove all debugging symbols\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol=<name> Do not copy symbol <name>\n"
-" -K --keep-symbol=<name> Only copy symbol <name>\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr ""
-" -I --input-target=<bfdname> ¼Ù¶¨ÊäÈëÎļþµÄ¸ñʽΪ <bfdname>\n"
-" -O --output-target=<bfdname> ´´½¨¸ñʽΪ <bfdname> µÄÊä³öÎļþ\n"
-" -F --target=<bfdname> ½«ÊäÈëºÍÊä³öµÄ¸ñʽÉ趨Ϊ <bfdname>\n"
-" -p --preserve-dates ½« ÐÞ¸Ä/·ÃÎÊ Ê±¼ä´Á¸´ÖƵ½Êä³öÎļþ\n"
-" -R --remove-section=<name> ´ÓÊä³öÖÐɾ³ý <name> ½Ú\n"
-" -s --strip-all ɾ³ýËùÓзûºÅºÍÖض¨Î»ÐÅÏ¢\n"
-" -g -S -d --strip-debug ɾ³ýËùÓе÷ÊÔ·ûºÅ\n"
-" --strip-unneeded ɾ³ýËùÓÐÖض¨Î»²»ÐèÒªµÄ·ûºÅ\n"
-" -N --strip-symbol=<name> ²»Òª¸´ÖÆ·ûºÅ <name>\n"
-" -K --keep-symbol=<name> Ö»¸´ÖÆ·ûºÅ <name>\n"
-" -x --discard-all ɾ³ýËùÓзÇÈ«¾Ö·ûºÅ\n"
-" -X --discard-locals ɾ³ýËùÓбàÒëÆ÷Éú³ÉµÄ·ûºÅ\n"
-" -v --verbose ÁгöËùÓÐÐÞ¸ÄÁ˵ÄÄ¿±êÎļþ\n"
-" -V --version ÏÔʾ±¾³ÌÐòµÄ°æ±¾ºÅ\n"
-" -h --help ÏÔʾ±¾Êä³ö\n"
-" -o <file> ½« strip ¹ýµÄÊä³ö±£´æµ½ <file>\n"
-
-#: objcopy.c:506
-#, c-format
-msgid "unrecognized section flag `%s'"
-msgstr "²»ÄÜʶ±ðµÄ½Ú±êÖ¾¡°%s¡±"
-
-#: objcopy.c:507
-#, c-format
-msgid "supported flags: %s"
-msgstr "Ö§³ÖµÄ±êÖ¾£º%s"
-
-#: objcopy.c:584 objcopy.c:2243
-#, c-format
-msgid "cannot stat: %s: %s"
-msgstr "ÎÞ·¨ stat£º%s£º%s"
-
-#: objcopy.c:591 objcopy.c:2261
-#, c-format
-msgid "cannot open: %s: %s"
-msgstr "ÎÞ·¨´ò¿ª£º%s£º%s"
-
-#: objcopy.c:594 objcopy.c:2265
-#, c-format
-msgid "%s: fread failed"
-msgstr "%s£ºfread ʧ°Ü"
-
-#: objcopy.c:667
-#, c-format
-msgid "Ignoring rubbish found on line %d of %s"
-msgstr ""
-
-#: objcopy.c:888
-#, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr "%s£º¶à´ÎÖظ´¶¨Òå·ûºÅ¡°%s¡±"
-
-#: objcopy.c:893
-#, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr "%s£º·ûºÅ¡°%s¡±ÊǶà´ÎÖظ´¶¨ÒåµÄ±êµÄ"
-
-#: objcopy.c:945
-msgid "Unable to change endianness of input file(s)"
-msgstr ""
-
-#: objcopy.c:953
-#, c-format
-msgid "copy from %s(%s) to %s(%s)\n"
-msgstr "´Ó %s(%s) ¸´ÖƵ½ %s(%s)\n"
-
-#: objcopy.c:977
-#, c-format
-msgid "Warning: Output file cannot represent architecture %s"
-msgstr "¾¯¸æ£ºÊä³öÎļþÎÞ·¨±í´ïÌåϵ½á¹¹ %s"
-
-#: objcopy.c:1004
-#, c-format
-msgid "can't create section `%s': %s"
-msgstr "ÎÞ·¨´´½¨½Ú¡°%s¡±£º%s"
-
-#: objcopy.c:1090
-#, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr "ÎÞ·¨Ìî³ä %s Ö®ºóµÄ¿Õ϶£º%s"
-
-#: objcopy.c:1115
-#, c-format
-msgid "Can't add padding to %s: %s"
-msgstr ""
-
-#: objcopy.c:1254
-#, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr "%s£º¸´ÖÆ BFD ˽ÓÐÊý¾Ý³ö´í£º%s"
-
-#: objcopy.c:1267
-msgid "unknown alternate machine code, ignored"
-msgstr ""
-
-#: objcopy.c:1300 objcopy.c:1330
-#, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr "ÎÞ·¨Îª¹éµµ¸´ÖÆ´´½¨Ä¿Â¼ %s (´íÎó£º%s)"
-
-#: objcopy.c:1497
-#, c-format
-msgid "Multiple renames of section %s"
-msgstr "¶à´Î¸ÄÃû½Ú %s"
-
-#: objcopy.c:1581
-msgid "making"
-msgstr ""
-
-#: objcopy.c:1590
-msgid "size"
-msgstr "´óС"
-
-#: objcopy.c:1604
-msgid "vma"
-msgstr "vma"
-
-#: objcopy.c:1630
-msgid "alignment"
-msgstr "¶ÔÆë"
-
-#: objcopy.c:1638
-msgid "flags"
-msgstr "±êÖ¾"
-
-#: objcopy.c:1655
-msgid "private data"
-msgstr "˽ÓÐÊý¾Ý"
-
-#: objcopy.c:1663
-#, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr "%s£º½Ú¡°%s¡±£º%s Öгö´í£º%s"
-
-#: objcopy.c:1946
-#, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr "%s£ºÎÞ·¨´´½¨µ÷ÊÔ½Ú£º%s"
-
-#: objcopy.c:1961
-#, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr "%s£ºÎÞ·¨É趨µ÷ÊÔ½ÚÄÚÈÝ£º%s"
-
-#: objcopy.c:1970
-#, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr "%s£º²»ÖªµÀÈçºÎΪ %s дÈëµ÷ÊÔÐÅÏ¢"
-
-#: objcopy.c:2078
-#, c-format
-msgid "%s: cannot stat: %s"
-msgstr "%s£ºÎÞ·¨ stat£º%s"
-
-#: objcopy.c:2129
-msgid "byte number must be non-negative"
-msgstr "×Ö½Ú±àºÅ±ØÐëÊǷǸºÊý"
-
-#: objcopy.c:2139
-msgid "interleave must be positive"
-msgstr ""
-
-#: objcopy.c:2159 objcopy.c:2167
-#, c-format
-msgid "%s both copied and removed"
-msgstr "¼´Òª¸´ÖÆ %s ÓÖҪɾ³ýËü"
-
-#: objcopy.c:2240 objcopy.c:2310 objcopy.c:2410 objcopy.c:2437 objcopy.c:2461
-#: objcopy.c:2465 objcopy.c:2485
-#, c-format
-msgid "bad format for %s"
-msgstr "%s ¸ñʽ´íÎó"
-
-#: objcopy.c:2379
-#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "¾¯¸æ£º½«¼ä϶Ìî³äÓÉ 0x%s ½Ø¶Ìµ½ 0x%x"
-
-#: objcopy.c:2531
-msgid "alternate machine code index must be positive"
-msgstr ""
-
-#: objcopy.c:2550
-msgid "byte number must be less than interleave"
-msgstr ""
-
-#: objcopy.c:2577
-#, c-format
-msgid "architecture %s unknown"
-msgstr "δ֪µÄÌåϵ½á¹¹ %s"
-
-#: objcopy.c:2581
-msgid "Warning: input target 'binary' required for binary architecture parameter."
-msgstr ""
-
-#: objcopy.c:2582
-#, c-format
-msgid " Argument %s ignored"
-msgstr " ºöÂÔ²ÎÊý %s"
-
-#: objcopy.c:2588
-#, c-format
-msgid "Cannot stat: %s: %s"
-msgstr "ÎÞ·¨ stat£º%s£º%s"
-
-#: objcopy.c:2628 objcopy.c:2642
-#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr ""
-
-#: objdump.c:165
-#, c-format
-msgid "Usage: %s <option(s)> <file(s)>\n"
-msgstr "Ó÷¨£º%s <Ñ¡Ïî> <Îļþ>\n"
-
-#: objdump.c:166
-msgid " Display information from object <file(s)>.\n"
-msgstr " ÏÔʾÀ´×ÔÄ¿±ê <Îļþ> µÄÐÅÏ¢¡£\n"
-
-#: objdump.c:167
-msgid " At least one of the following switches must be given:\n"
-msgstr " ÖÁÉÙ±ØÐë¸ø³öÒÔÏÂÑ¡ÏîÖ®Ò»£º\n"
-
-#: objdump.c:168
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" -v, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-" -a, --archive-headers ÏÔʾ¹éµµÎļþÍ·ÐÅÏ¢\n"
-" -f, --file-headers ÏÔʾÕûÌåÎļþÍ·µÄÄÚÈÝ\n"
-" -p, --private-headers ÏÔʾĿ±ê¸ñʽÌØÓеÄÎļþÍ·ÄÚÈÝ\n"
-" -h, --[section-]headers ÏÔʾ½ÚÍ·µÄÄÚÈÝ\n"
-" -x, --all-headers ÏÔʾËùÓÐÍ·µÄÄÚÈÝ\n"
-" -d, --disassemble ÏÔʾ¿ÉÖ´ÐнڵĻã±àÄÚÈÝ\n"
-" -D, --disassemble-all ÏÔʾËùÓнڵĻã±àÄÚÈÝ\n"
-" -S, --source ½«Ô´´úÂëºÍ·´»ã±à»ìºÏÆðÀ´\n"
-" -s, --full-contents ÏÔʾËùÓÐÇëÇó½ÚµÄÍêÕûÄÚÈÝ\n"
-" -g, --debugging ÏÔʾĿ±êÎļþµÄµ÷ÊÔÐÅÏ¢\n"
-" -G, --stabs ÒÔԭʼÐÎʽÏÔʾÎļþÖÐËùÓÐµÄ STABS ÐÅÏ¢\n"
-" -t, --syms ÏÔʾ·ûºÅ±íµÄÄÚÈÝ\n"
-" -T, --dynamic-syms ÏÔʾ¶¯Ì¬·ûºÅ±íµÄÄÚÈÝ\n"
-" -r, --reloc ÏÔʾÎļþÖеÄÖض¨Î»ÌõÄ¿\n"
-" -R, --dynamic-reloc ÏÔʾÎļþÖеĶ¯Ì¬Öض¨Î»ÌõÄ¿\n"
-" -v, --version ÏÔʾ±¾³ÌÐòµÄ°æ±¾ºÅ\n"
-" -i, --info ÁоÙÖ§³ÖµÄÄ¿±ê¸ñʽºÍÌåϵ½á¹¹\n"
-" -H, --help ÏÔʾ±¾ÐÅÏ¢\n"
-
-#: objdump.c:190
-msgid ""
-"\n"
-" The following switches are optional:\n"
-msgstr ""
-"\n"
-" ÒÔÏÂÑ¡ÏîÊÇ¿ÉÑ¡µÄ£º\n"
-
-#: objdump.c:191
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', 'gnu',\n"
-" 'lucid', 'arm', 'hp', 'edg', or 'gnu-new-abi'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whoes address is >= ADDR\n"
-" --stop-address=ADDR Only process data whoes address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-"\n"
-msgstr ""
-" -b, --target=BFDNAME ½«±êµÄÄ¿±êÎļþ¸ñʽָ¶¨Îª BFDNAME\n"
-" -m, --architecture=MACHINE ½«±êµÄÌåϵ½á¹¹Ö¸¶¨Îª MACHINE\n"
-" -j, --section=NAME Ö»ÏÔʾ NAME ½ÚµÄÐÅÏ¢\n"
-" -M, --disassembler-options=OPT ½«Îı¾´«µÝµ½ OPT ·´»ã±à³ÌÐò\n"
-" -EB --endian=big ·´»ã±àʱ¼Ù¶¨¸ßλ×Ö½ÚÔÚÇ°\n"
-" -EL --endian=little ·´»ã±àʱ¼Ù¶¨µÍλ×Ö½ÚÔÚÇ°\n"
-" --file-start-context ´ÓÎļþµÄÆðµãÒýÈëÉÏÏÂÎÄ (´øÓÐ -S)\n"
-" -l, --line-numbers ÔÚÊä³öÖиø³öÐкźÍÎļþÃû\n"
-" -C, --demangle[=STYLE] ¶Ô mangled/´¦Àí¹ýµÄ·ûºÅÃû½øÐнâÂë\n"
-" Èç¹û¸ø³öÁË STYLE£¬STYLE ¿ÉÄÜΪ¡°auto¡±¡¢¡°gnu¡±¡¢\n"
-" ¡°lucid¡±¡¢¡°arm¡±¡¢¡°hp¡±¡¢¡°edg¡±»ò¡°gnu-new-abi¡±\n"
-" -w, --wide ÒÔ¶àÓÚ 80 ÁеĿí¶È¶ÔÊä³ö½øÐиñʽ»¯\n"
-" -z, --disassemble-zeroes ·´»ã±àʱ²»ÒªÌø¹ýΪÁãµÄ¿é\n"
-" --start-address=ADDR Ö»Óнø³ÌÊý¾ÝµÄµØÖ· >= ADDR\n"
-" --stop-address=ADDR Ö»Óнø³ÌÊý¾ÝµÄµØÖ· <= ADDR\n"
-" --prefix-addresses ͬ·´»ã±à´úÂë²¢ÁÐÏÔʾÍêÕûµÄµØÖ·\n"
-" --[no-]show-raw-insn ͬ·ûºÅ·´»ã±à²¢ÁÐÏÔʾʮÁù½øÖÆÖµ\n"
-" --adjust-vma=OFFSET ΪËùÓÐÏÔʾµÄ½ÚµØÖ·Ôö¼Ó OFFSET\n"
-"\n"
-
-#: objdump.c:358
-msgid "Sections:\n"
-msgstr "½Ú£º\n"
-
-#: objdump.c:361 objdump.c:365
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr ""
-
-#: objdump.c:367
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr ""
-
-#: objdump.c:371
-msgid " Flags"
-msgstr " ±êÖ¾"
-
-#: objdump.c:419
-#, c-format
-msgid "%s: not a dynamic object"
-msgstr "%s£º²»ÊǶ¯Ì¬¶ÔÏó"
-
-#: objdump.c:433
-#, c-format
-msgid "%s: No dynamic symbols"
-msgstr "%s£ºÃ»Óж¯Ì¬·ûºÅ"
-
-#: objdump.c:1114
-msgid "Out of virtual memory"
-msgstr "Ðé´æ²»×ã"
-
-#: objdump.c:1543
-#, c-format
-msgid "Can't use supplied machine %s"
-msgstr "ÎÞ·¨Ê¹ÓÃÖ§³ÖµÄ»úÆ÷ %s"
-
-#: objdump.c:1561
-#, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr "ÎÞ·¨·´»ã±àÌåϵ½á¹¹ %s\n"
-
-#: objdump.c:1643
-#, c-format
-msgid "Disassembly of section %s:\n"
-msgstr "·´»ã±à %s ½Ú£º\n"
-
-#: objdump.c:1818
-#, c-format
-msgid ""
-"No %s section present\n"
-"\n"
-msgstr ""
-"%s ½Ú²»´æÔÚ\n"
-"\n"
-
-#: objdump.c:1825
-#, c-format
-msgid "%s has no %s section"
-msgstr "%s ûÓÐ %s ½Ú"
-
-#: objdump.c:1839
-#, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr "¶ÁÈë %2$s µÄ %1$s ½Úʧ°Ü£º%3$s"
-
-#: objdump.c:1851
-#, c-format
-msgid "Reading %s section of %s failed: %s\n"
-msgstr "¶ÁÈë %2$s µÄ %1$s ½Úʧ°Ü£º%3$s\n"
-
-#: objdump.c:1894
-#, c-format
-msgid ""
-"Contents of %s section:\n"
-"\n"
-msgstr ""
-"%s ½ÚµÄÄÚÈÝ£º\n"
-"\n"
-
-#: objdump.c:1994
-#, c-format
-msgid "architecture: %s, "
-msgstr "Ìåϵ½á¹¹£º%s£¬"
-
-#: objdump.c:1997
-#, c-format
-msgid "flags 0x%08x:\n"
-msgstr "±êÖ¾ 0x%08x£º\n"
-
-#: objdump.c:2010
-msgid ""
-"\n"
-"start address 0x"
-msgstr ""
-"\n"
-"ÆðʼµØÖ· 0x"
-
-#: objdump.c:2042
-#, c-format
-msgid ""
-"\n"
-"%s: file format %s\n"
-msgstr ""
-"\n"
-"%s£º Îļþ¸ñʽ %s\n"
-
-#: objdump.c:2084
-#, c-format
-msgid "%s: printing debugging information failed"
-msgstr "%s£º´òÓ¡µ÷ÊÔÐÅϢʧ°Ü"
-
-#: objdump.c:2161
-#, c-format
-msgid "In archive %s:\n"
-msgstr "Ôڹ鵵Îļþ %s ÖУº\n"
-
-#: objdump.c:2213
-#, c-format
-msgid "Contents of section %s:\n"
-msgstr "%s ½ÚµÄÄÚÈÝ£º\n"
-
-#: objdump.c:2718
-#, c-format
-msgid "BFD header file version %s\n"
-msgstr "BFD Í·Îļþ°æ±¾ %s\n"
-
-#: objdump.c:2807
-msgid "unrecognized -E option"
-msgstr "ÎÞ·¨Ê¶±ðµÄ -E Ñ¡Ïî"
-
-#: objdump.c:2818
-#, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr "ÎÞ·¨Ê¶±ðµÄ --endian ÀàÐÍ¡°%s¡±"
-
-#: rdcoff.c:204
-#, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr "parse_coff_type£º´íÎóµÄÀàÐÍÂë 0x%x"
-
-#: rdcoff.c:422 rdcoff.c:530 rdcoff.c:729
-#, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr "bfd_coff_get_syment ʧ°Ü£º%s"
-
-#: rdcoff.c:438 rdcoff.c:749
-#, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr "bfd_coff_get_auxent ʧ°Ü£º%s"
-
-#: rdcoff.c:816
-#, c-format
-msgid "%ld: .bf without preceding function"
-msgstr ""
-
-#: rdcoff.c:866
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr "%ld£ºÒâÍâµÄ .ef\n"
-
-#: rddbg.c:87
-#, c-format
-msgid "%s: no recognized debugging information"
-msgstr "%s£ºÎ´Ê¶±ðµÄµ÷ÊÔÐÅÏ¢"
-
-#: rddbg.c:410
-msgid "Last stabs entries before error:\n"
-msgstr ""
-
-#: readelf.c:328
-#, c-format
-msgid "%s: Error: "
-msgstr "%s£º´íÎó£º"
-
-#: readelf.c:339
-#, c-format
-msgid "%s: Warning: "
-msgstr "%s£º¾¯¸æ£º"
-
-#: readelf.c:361
-#, c-format
-msgid "Unable to seek to %x for %s\n"
-msgstr ""
-
-#: readelf.c:372
-#, c-format
-msgid "Out of memory allocating %d bytes for %s\n"
-msgstr ""
-
-#: readelf.c:380
-#, c-format
-msgid "Unable to read in %d bytes of %s\n"
-msgstr ""
-
-#: readelf.c:433 readelf.c:591
-#, c-format
-msgid "Unhandled data length: %d\n"
-msgstr "δ´¦ÀíµÄÊý¾Ý³¤¶È£º%d\n"
-
-#: readelf.c:675
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr "²»ÖªµÀ¹ØÓÚ±¾»úÆ÷Ìåϵ½á¹¹ÖÐÖض¨Î»µÄÇé¿ö\n"
-
-#: readelf.c:697 readelf.c:726 readelf.c:772 readelf.c:799
-msgid "relocs"
-msgstr "Öض¨Î»"
-
-#: readelf.c:708 readelf.c:737 readelf.c:782 readelf.c:809
-msgid "out of memory parsing relocs"
-msgstr "½âÎöÖض¨Î»ÄÚ´æ²»×ã"
-
-#: readelf.c:861
-msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
-msgstr ""
-
-#: readelf.c:863
-msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
-msgstr ""
-
-#: readelf.c:868
-msgid " Offset Info Type Sym. Value Symbol's Name\n"
-msgstr ""
-
-#: readelf.c:870
-msgid " Offset Info Type Sym.Value Sym. Name\n"
-msgstr ""
-
-#: readelf.c:878
-msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
-msgstr ""
-
-#: readelf.c:880
-msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
-msgstr ""
-
-#: readelf.c:885
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr ""
-
-#: readelf.c:887
-msgid " Offset Info Type Sym. Value Sym. Name\n"
-msgstr ""
-
-#: readelf.c:1134 readelf.c:1136 readelf.c:1184 readelf.c:1186 readelf.c:1195
-#: readelf.c:1197
-#, c-format
-msgid "unrecognized: %-7lx"
-msgstr "²»ÄÜʶ±ðµÄ£º%-7lx"
-
-#: readelf.c:1158
-#, c-format
-msgid "<string table index %3ld>"
-msgstr "<×Ö·û´®±íË÷Òý %3ld>"
-
-#: readelf.c:1423
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr "´¦ÀíÆ÷ÌØÓУº%lx"
-
-#: readelf.c:1442
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr "²Ù×÷ϵͳÌØÓУº%lx"
-
-#: readelf.c:1445 readelf.c:2086
-#, c-format
-msgid "<unknown>: %lx"
-msgstr "<δ֪>£º%lx"
-
-#: readelf.c:1459
-msgid "NONE (None)"
-msgstr "NONE (ÎÞ)"
-
-#: readelf.c:1460
-msgid "REL (Relocatable file)"
-msgstr "REL (¿ÉÖض¨Î»Îļþ)"
-
-#: readelf.c:1461
-msgid "EXEC (Executable file)"
-msgstr "EXEC (¿ÉÖ´ÐÐÎļþ)"
-
-#: readelf.c:1462
-msgid "DYN (Shared object file)"
-msgstr "DYN (¹²ÏíÄ¿±êÎļþ)"
-
-#: readelf.c:1463
-msgid "CORE (Core file)"
-msgstr "CORE (Core Îļþ)"
-
-#: readelf.c:1467
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr "´¦ÀíÆ÷ÌØÓУº(%x)"
-
-#: readelf.c:1469
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr "²Ù×÷ϵͳÌØÓУº(%x)"
-
-#: readelf.c:1471 readelf.c:1573 readelf.c:2238
-#, c-format
-msgid "<unknown>: %x"
-msgstr "<δ֪>£º%x"
-
-#: readelf.c:1484
-msgid "None"
-msgstr "ÎÞ"
-
-#: readelf.c:2278
-msgid "Usage: readelf <option(s)> elf-file(s)\n"
-msgstr "Ó÷¨£ºreadelf <Ñ¡Ïî> elf-Îļþ\n"
-
-#: readelf.c:2279
-msgid " Display information about the contents of ELF format files\n"
-msgstr " ÏÔʾ¹ØÓÚ ELF ¸ñʽÎļþÄÚÈݵÄÐÅÏ¢\n"
-
-#: readelf.c:2280
-msgid ""
-" Options are:\n"
-" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Display the ELF file header\n"
-" -l --program-headers Display the program headers\n"
-" --segments An alias for --program-headers\n"
-" -S --section-headers Display the sections' header\n"
-" --sections An alias for --section-headers\n"
-" -e --headers Equivalent to: -h -l -S\n"
-" -s --syms Display the symbol table\n"
-" --symbols An alias for --syms\n"
-" -n --notes Display the core notes (if present)\n"
-" -r --relocs Display the relocations (if present)\n"
-" -u --unwind Display the unwind info (if present)\n"
-" -d --dynamic Display the dynamic segment (if present)\n"
-" -V --version-info Display the version sections (if present)\n"
-" -A --arch-specific Display architecture specific information (if any).\n"
-" -D --use-dynamic Use the dynamic section info when displaying symbols\n"
-" -x --hex-dump=<number> Dump the contents of section <number>\n"
-" -w --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]\n"
-" Display the contents of DWARF2 debug sections\n"
-msgstr ""
-" Ñ¡ÏîΪ£º\n"
-" -a --all µÈ¼ÛÓÚ£º-h -l -S -s -r -d -V -A -I\n"
-" -h --file-header ÏÔʾ ELF ÎļþÍ·\n"
-" -l --program-headers ÏÔʾ³ÌÐòÍ·\n"
-" --segments --program-headers µÄ±ðÃû\n"
-" -S --section-headers ÏÔʾ½ÚÍ·\n"
-" --sections --section-headers µÄ±ðÃû\n"
-" -e --headers µÈ¼ÛÓÚ£º-h -l -S\n"
-" -s --syms ÏÔʾ·ûºÅ±í\n"
-" --symbols --syms µÄ±ðÃû\n"
-" -n --notes ÏÔʾºËÐÄ×¢ÊÍ (Èç¹ûÓеĻ°)\n"
-" -r --relocs ÏÔʾÖض¨Î» (Èç¹ûÓеĻ°)\n"
-" -u --unwind ÏÔʾչ¿ª(unwind)ÐÅÏ¢ (Èç¹ûÓеĻ°)\n"
-" -d --dynamic ÏÔʾ¶¯Ì¬½Ú (Èç¹ûÓеĻ°)\n"
-" -V --version-info ÏÔʾ°æ±¾½Ú (Èç¹ûÓеĻ°)\n"
-" -A --arch-specific ÏÔʾÌåϵ½á¹¹ÌØÓеÄÐÅÏ¢ (Èç¹ûÓеĻ°).\n"
-" -D --use-dynamic ÏÔʾ·ûºÅµÄʱºòʹÓö¯Ì¬½ÚÐÅÏ¢\n"
-" -x --hex-dump=<±àºÅ> Êä³ö <±àºÅ> ½ÚµÄÄÚÈÝ\n"
-" -w --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=macro,=frames,=str,=loc]\n"
-" ÏÔʾ DWARF2 µ÷ÊÔ½ÚµÄÄÚÈÝ\n"
-
-#: readelf.c:2301
-msgid ""
-" -i --instruction-dump=<number>\n"
-" Disassemble the contents of section <number>\n"
-msgstr ""
-" -i --instruction-dump=<񅧏>\n"
-" ·´»ã±à½Ú <±àºÅ> µÄÄÚÈÝ\n"
-
-#: readelf.c:2305
-msgid ""
-" -I --histogram Display histogram of bucket list lengths\n"
-" -W --wide Allow output width to exceed 80 characters\n"
-" -H --help Display this information\n"
-" -v --version Display the version number of readelf\n"
-msgstr ""
-
-#: readelf.c:2327
-msgid "Out of memory allocating dump request table."
-msgstr ""
-
-#: readelf.c:2491
-#, c-format
-msgid "Unrecognized debug option '%s'\n"
-msgstr "ÎÞ·¨Ê¶±ðµÄµ÷ÊÔÑ¡Ïî¡°%s¡±\n"
-
-#: readelf.c:2519
-#, c-format
-msgid "Invalid option '-%c'\n"
-msgstr "ÎÞЧµÄÑ¡Ïî¡°-%c¡±\n"
-
-#: readelf.c:2532
-msgid "Nothing to do.\n"
-msgstr "ÎÞÊ¿É×ö¡£\n"
-
-#: readelf.c:2545 readelf.c:2562 readelf.c:4867
-msgid "none"
-msgstr "ÎÞ"
-
-#: readelf.c:2549 readelf.c:2566 readelf.c:2594
-#, c-format
-msgid "<unknown: %x>"
-msgstr "<δ֪£º%x>"
-
-#: readelf.c:2563
-msgid "2's complement, little endian"
-msgstr ""
-
-#: readelf.c:2564
-msgid "2's complement, big endian"
-msgstr ""
-
-#: readelf.c:2591
-msgid "Standalone App"
-msgstr "¶ÀÁ¢Ó¦ÓóÌÐò"
-
-#: readelf.c:2609
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr "²»ÊÇ ELF Îļþ - Ëü¿ªÍ·µÄ magic ×Ö½Ú´íÎó\n"
-
-#: readelf.c:2617
-msgid "ELF Header:\n"
-msgstr "ELF Í·£º\n"
-
-#: readelf.c:2618
-msgid " Magic: "
-msgstr " Magic£º "
-
-#: readelf.c:2622
-#, c-format
-msgid " Class: %s\n"
-msgstr ""
-
-#: readelf.c:2624
-#, c-format
-msgid " Data: %s\n"
-msgstr ""
-
-#: readelf.c:2626
-#, c-format
-msgid " Version: %d %s\n"
-msgstr ""
-
-#: readelf.c:2633
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr ""
-
-#: readelf.c:2635
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr ""
-
-#: readelf.c:2637
-#, c-format
-msgid " Type: %s\n"
-msgstr ""
-
-#: readelf.c:2639
-#, c-format
-msgid " Machine: %s\n"
-msgstr ""
-
-#: readelf.c:2641
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr ""
-
-#: readelf.c:2644
-msgid " Entry point address: "
-msgstr " Èë¿ÚµãµØÖ·£º "
-
-#: readelf.c:2646
-msgid ""
-"\n"
-" Start of program headers: "
-msgstr ""
-"\n"
-" ³ÌÐòÍ·Æðµã£º "
-
-#: readelf.c:2648
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr ""
-
-#: readelf.c:2650
-msgid " (bytes into file)\n"
-msgstr ""
-
-#: readelf.c:2652
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr " ±êÖ¾£º 0x%lx%s\n"
-
-#: readelf.c:2655
-#, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr " ±¾Í·µÄ´óС£º %ld (×Ö½Ú)\n"
-
-#: readelf.c:2657
-#, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr " ³ÌÐòÍ·´óС£º %ld (×Ö½Ú)\n"
-
-#: readelf.c:2659
-#, c-format
-msgid " Number of program headers: %ld\n"
-msgstr " ³ÌÐòÍ·ÊýÁ¿£º %ld\n"
-
-#: readelf.c:2661
-#, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr " ½ÚÍ·´óС£º %ld (×Ö½Ú)\n"
-
-#: readelf.c:2663
-#, c-format
-msgid " Number of section headers: %ld"
-msgstr " ½ÚÍ·ÊýÁ¿£º %ld"
-
-#: readelf.c:2668
-#, c-format
-msgid " Section header string table index: %ld"
-msgstr " ×Ö·û´®±íË÷Òý½ÚÍ·£º %ld"
-
-#: readelf.c:2702 readelf.c:2738
-msgid "program headers"
-msgstr "³ÌÐòÍ·"
-
-#: readelf.c:2772
-msgid ""
-"\n"
-"There are no program headers in this file.\n"
-msgstr ""
-"\n"
-"±¾ÎļþÖÐûÓгÌÐòÍ·¡£\n"
-
-#: readelf.c:2778
-#, c-format
-msgid ""
-"\n"
-"Elf file type is %s\n"
-msgstr ""
-"\n"
-"Elf ÎļþÀàÐÍΪ %s\n"
-
-#: readelf.c:2779
-msgid "Entry point "
-msgstr "Èë¿Úµã "
-
-#: readelf.c:2781
-#, c-format
-msgid ""
-"\n"
-"There are %d program headers, starting at offset "
-msgstr ""
-"\n"
-"¹²ÓÐ %d ¸ö³ÌÐòÍ·£¬¿ªÊ¼ÓÚÆ«ÒÆÁ¿"
-
-#: readelf.c:2792 readelf.c:3019 readelf.c:3065 readelf.c:3128 readelf.c:3195
-#: readelf.c:4229 readelf.c:4272 readelf.c:4461 readelf.c:5414 readelf.c:5428
-#: readelf.c:9659 readelf.c:9699
-msgid "Out of memory\n"
-msgstr "ÄÚ´æ²»×ã\n"
-
-#: readelf.c:2810 readelf.c:2812
-msgid ""
-"\n"
-"Program Headers:\n"
-msgstr ""
-"\n"
-"³ÌÐòÍ·£º\n"
-
-#: readelf.c:2816
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr ""
-
-#: readelf.c:2819
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr ""
-
-#: readelf.c:2823
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr ""
-
-#: readelf.c:2825
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr ""
-
-#: readelf.c:2925
-msgid "more than one dynamic segment\n"
-msgstr "¶àÓÚÒ»¸ö¶¯Ì¬¶Î\n"
-
-#: readelf.c:2933
-msgid "Unable to find program interpreter name\n"
-msgstr "ÎÞ·¨ÕÒµ½³ÌÐò½âÊÍÆ÷Ãû³Æ\n"
-
-#: readelf.c:2940
-#, c-format
-msgid ""
-"\n"
-" [Requesting program interpreter: %s]"
-msgstr ""
-"\n"
-" [ÕýÔÚÇëÇó³ÌÐò½âÊÍÆ÷£º%s]"
-
-#: readelf.c:2958
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-msgstr ""
-
-#: readelf.c:2959
-msgid " Segment Sections...\n"
-msgstr " ¶Î½Ú...\n"
-
-#: readelf.c:3010 readelf.c:3056
-msgid "section headers"
-msgstr "½ÚÍ·"
-
-#: readelf.c:3104 readelf.c:3171
-msgid "symbols"
-msgstr "·ûºÅ"
-
-#: readelf.c:3115 readelf.c:3182
-msgid "symtab shndx"
-msgstr ""
-
-#: readelf.c:3284
-msgid ""
-"\n"
-"There are no sections in this file.\n"
-msgstr ""
-"\n"
-"±¾ÎļþÖÐûÓнڡ£\n"
-
-#: readelf.c:3290
-#, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr "¹²ÓÐ %d ¸ö½ÚÍ·£¬´ÓÆ«ÒÆÁ¿ 0x%lx ¿ªÊ¼£º\n"
-
-#: readelf.c:3307 readelf.c:3621 readelf.c:3968 readelf.c:5565
-msgid "string table"
-msgstr "×Ö·û´®±í"
-
-#: readelf.c:3328
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr "Îļþº¬Óжà¸ö¶¯Ì¬·ûºÅ±í\n"
-
-#: readelf.c:3340
-msgid "File contains multiple dynamic string tables\n"
-msgstr "Îļþº¬Óжà¸ö¶¯Ì¬×Ö·û´®±í\n"
-
-#: readelf.c:3346
-msgid "dynamic strings"
-msgstr "¶¯Ì¬×Ö·û´®"
-
-#: readelf.c:3352
-msgid "File contains multiple symtab shndx tables\n"
-msgstr ""
-
-#: readelf.c:3390
-msgid ""
-"\n"
-"Section Headers:\n"
-msgstr ""
-"\n"
-"½ÚÍ·£º\n"
-
-#: readelf.c:3392
-msgid ""
-"\n"
-"Section Header:\n"
-msgstr ""
-"\n"
-"½ÚÍ·£º\n"
-
-#: readelf.c:3396
-msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-msgstr ""
-
-#: readelf.c:3399
-msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
-msgstr ""
-
-#: readelf.c:3402
-msgid " [Nr] Name Type Address Offset\n"
-msgstr ""
-
-#: readelf.c:3403
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr ""
-
-#: readelf.c:3498
-msgid ""
-"Key to Flags:\n"
-" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-" I (info), L (link order), G (group), x (unknown)\n"
-" O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr ""
-
-#: readelf.c:3559
-#, c-format
-msgid ""
-"\n"
-"Relocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr ""
-"\n"
-"λÓÚÆ«ÒÆÁ¿ 0x%lx µÄÖض¨Î»½Úº¬ÓÐ %ld ¸ö×Ö½Ú£º\n"
-
-#: readelf.c:3566
-msgid ""
-"\n"
-"There are no dynamic relocations in this file.\n"
-msgstr ""
-"\n"
-"±¾ÎļþÖÐûÓж¯Ì¬Öض¨Î»¡£\n"
-
-#: readelf.c:3593
-msgid ""
-"\n"
-"Relocation section "
-msgstr ""
-"\n"
-"Öض¨Î»½Ú "
-
-#: readelf.c:3598 readelf.c:4031 readelf.c:4045
-#, c-format
-msgid "'%s'"
-msgstr "¡°%s¡±"
-
-#: readelf.c:3600 readelf.c:4047
-#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr " λÓÚÆ«ÒÆÁ¿ 0x%lx º¬ÓÐ %lu ¸öÌõÄ¿£º\n"
-
-#: readelf.c:3638
-msgid ""
-"\n"
-"There are no relocations in this file.\n"
-msgstr ""
-"\n"
-"¸ÃÎļþÖÐûÓÐÖض¨Î»ÐÅÏ¢¡£\n"
-
-#: readelf.c:3834
-msgid "unwind table"
-msgstr ""
-
-#: readelf.c:3885 readelf.c:3897 readelf.c:7890 readelf.c:7901
-#, c-format
-msgid "Skipping unexpected symbol type %u\n"
-msgstr "Ìø¹ýÒâÍâµÄ·ûºÅÀàÐÍ %u\n"
-
-#: readelf.c:3905
-#, c-format
-msgid "Skipping unexpected relocation type %s\n"
-msgstr "Ìø¹ýÒâÍâµÄÖض¨Î»ÀàÐÍ %s\n"
-
-#: readelf.c:3950 readelf.c:3975
-msgid ""
-"\n"
-"There are no unwind sections in this file.\n"
-msgstr ""
-
-#: readelf.c:4026
-msgid ""
-"\n"
-"Could not find unwind info section for "
-msgstr ""
-
-#: readelf.c:4038
-msgid "unwind info"
-msgstr ""
-
-#: readelf.c:4040
-msgid ""
-"\n"
-"Unwind section "
-msgstr ""
-
-#: readelf.c:4213 readelf.c:4256
-msgid "dynamic segment"
-msgstr "¶¯Ì¬½Ú"
-
-#: readelf.c:4334
-msgid ""
-"\n"
-"There is no dynamic segment in this file.\n"
-msgstr ""
-"\n"
-"±¾ÎļþûÓж¯Ì¬½Ú¡£\n"
-
-#: readelf.c:4368
-msgid "Unable to seek to end of file!"
-msgstr "ÎÞ·¨¶¨Î»µÄÎļþĩβ£¡"
-
-#: readelf.c:4379
-msgid "Unable to determine the number of symbols to load\n"
-msgstr "ÎÞ·¨È·¶¨Òª¶ÁÈëµÄ·ûºÅÊýÁ¿\n"
-
-#: readelf.c:4409
-msgid "Unable to seek to end of file\n"
-msgstr "ÎÞ·¨¶¨Î»µ½Îļþĩβ\n"
-
-#: readelf.c:4415
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr "ÎÞ·¨È·¶¨¶¯Ì¬×Ö·û´®±íµÄ³¤¶È\n"
-
-#: readelf.c:4420
-msgid "dynamic string table"
-msgstr "¶¯Ì¬×Ö·û´®±í"
-
-#: readelf.c:4454
-msgid "symbol information"
-msgstr "·ûºÅÐÅÏ¢"
-
-#: readelf.c:4478
-#, c-format
-msgid ""
-"\n"
-"Dynamic segment at offset 0x%x contains %ld entries:\n"
-msgstr ""
-"\n"
-"λÓÚÆ«ÒÆÁ¿ 0x%x ´¦µÄ¶¯Ì¬½Úº¬ÓÐ %ld ¸öÌõÄ¿£º\n"
-
-#: readelf.c:4481
-msgid " Tag Type Name/Value\n"
-msgstr " ±ê¼Ç ÀàÐÍ Ãû³Æ/Öµ\n"
-
-#: readelf.c:4517
-msgid "Auxiliary library"
-msgstr "¸½¼Ó¿â"
-
-#: readelf.c:4521
-msgid "Filter library"
-msgstr "¹ýÂËÆ÷¿â"
-
-#: readelf.c:4525
-msgid "Configuration file"
-msgstr "ÅäÖÃÎļþ"
-
-#: readelf.c:4529
-msgid "Dependency audit library"
-msgstr ""
-
-#: readelf.c:4533
-msgid "Audit library"
-msgstr ""
-
-#: readelf.c:4551 readelf.c:4577 readelf.c:4603
-msgid "Flags:"
-msgstr "±êÖ¾£º"
-
-#: readelf.c:4553 readelf.c:4579 readelf.c:4605
-msgid " None\n"
-msgstr " ÎÞ\n"
-
-#: readelf.c:4724
-#, c-format
-msgid "Shared library: [%s]"
-msgstr "¹²Ïí¿â£º[%s]"
-
-#: readelf.c:4727
-msgid " program interpreter"
-msgstr " ³ÌÐò½âÊÍÆ÷"
-
-#: readelf.c:4731
-#, c-format
-msgid "Library soname: [%s]"
-msgstr ""
-
-#: readelf.c:4735
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr ""
-
-#: readelf.c:4739
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr ""
-
-#: readelf.c:4802
-#, c-format
-msgid "Not needed object: [%s]\n"
-msgstr "²»ÐèÒªµÄÄ¿±ê£º[%s]\n"
-
-#: readelf.c:4913
-#, c-format
-msgid ""
-"\n"
-"Version definition section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"°æ±¾¶¨Òå½Ú¡°%s¡±º¬ÓÐ %ld ¸öÌõÄ¿£º\n"
-
-#: readelf.c:4916
-msgid " Addr: 0x"
-msgstr " µØÖ·£º0x"
-
-#: readelf.c:4918 readelf.c:5113
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr " Æ«ÒÆÁ¿£º%#08lx Á¬½Ó£º%lx (%s)\n"
-
-#: readelf.c:4925
-msgid "version definition section"
-msgstr "°æ±¾¶¨Òå½Ú"
-
-#: readelf.c:4951
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr ""
-
-#: readelf.c:4954
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr ""
-
-#: readelf.c:4965
-#, c-format
-msgid "Name: %s\n"
-msgstr "Ãû³Æ£º%s\n"
-
-#: readelf.c:4967
-#, c-format
-msgid "Name index: %ld\n"
-msgstr "Ãû³ÆË÷Òý£º%ld\n"
-
-#: readelf.c:4982
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr ""
-
-#: readelf.c:4985
-#, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr ""
-
-#: readelf.c:5004
-#, c-format
-msgid ""
-"\n"
-"Version needs section '%s' contains %ld entries:\n"
-msgstr ""
-
-#: readelf.c:5007
-msgid " Addr: 0x"
-msgstr " µØÖ·£º0x"
-
-#: readelf.c:5009
-#, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr ""
-
-#: readelf.c:5015
-msgid "version need section"
-msgstr "°æ±¾ÐèÒª½Ú"
-
-#: readelf.c:5037
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr ""
-
-#: readelf.c:5040
-#, c-format
-msgid " File: %s"
-msgstr " Îļþ£º%s"
-
-#: readelf.c:5042
-#, c-format
-msgid " File: %lx"
-msgstr " Îļþ£º%lx"
-
-#: readelf.c:5044
-#, c-format
-msgid " Cnt: %d\n"
-msgstr " ¼ÆÊý£º%d\n"
-
-#: readelf.c:5062
-#, c-format
-msgid " %#06x: Name: %s"
-msgstr " %#06x£ºÃû³Æ£º%s"
-
-#: readelf.c:5065
-#, c-format
-msgid " %#06x: Name index: %lx"
-msgstr " %#06x£ºÃû³ÆË÷Òý£º%lx"
-
-#: readelf.c:5068
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr " ±êÖ¾£º%s °æ±¾£º%d\n"
-
-#: readelf.c:5104
-msgid "version string table"
-msgstr "°æ±¾×Ö·û´®±í"
-
-#: readelf.c:5108
-#, c-format
-msgid ""
-"\n"
-"Version symbols section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"°æ±¾·ûºÅ½Ú¡°%s¡±º¬ÓÐ %d ¸öÌõÄ¿£º\n"
-
-#: readelf.c:5111
-msgid " Addr: "
-msgstr " µØÖ·£º"
-
-#: readelf.c:5121
-msgid "version symbol data"
-msgstr "°æ±¾·ûºÅÊý¾Ý"
-
-#: readelf.c:5148
-msgid " 0 (*local*) "
-msgstr " 0 (*±¾µØ*) "
-
-#: readelf.c:5152
-msgid " 1 (*global*) "
-msgstr " 1 (*È«¾Ö*) "
-
-#: readelf.c:5187 readelf.c:5622
-msgid "version need"
-msgstr ""
-
-#: readelf.c:5197
-msgid "version need aux (2)"
-msgstr ""
-
-#: readelf.c:5238 readelf.c:5684
-msgid "version def"
-msgstr ""
-
-#: readelf.c:5257 readelf.c:5699
-msgid "version def aux"
-msgstr ""
-
-#: readelf.c:5288
-msgid ""
-"\n"
-"No version information found in this file.\n"
-msgstr ""
-
-#: readelf.c:5420
-msgid "Unable to read in dynamic data\n"
-msgstr "ÎÞ·¨¶ÁÈ붯̬Êý¾Ý\n"
-
-#: readelf.c:5462
-msgid "Unable to seek to start of dynamic information"
-msgstr "ÎÞ·¨¶¨Î»µ½¶¯Ì¬ÐÅÏ¢µÄÆðµã"
-
-#: readelf.c:5468
-msgid "Failed to read in number of buckets\n"
-msgstr ""
-
-#: readelf.c:5474
-msgid "Failed to read in number of chains\n"
-msgstr ""
-
-#: readelf.c:5494
-msgid ""
-"\n"
-"Symbol table for image:\n"
-msgstr ""
-
-#: readelf.c:5496
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:5498
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:5543
-#, c-format
-msgid ""
-"\n"
-"Symbol table '%s' contains %lu entries:\n"
-msgstr ""
-
-#: readelf.c:5547
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:5549
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr ""
-
-#: readelf.c:5595
-msgid "version data"
-msgstr "°æ±¾Êý¾Ý"
-
-#: readelf.c:5635
-msgid "version need aux (3)"
-msgstr ""
-
-#: readelf.c:5660
-msgid "bad dynamic symbol"
-msgstr "´íÎóµÄ¶¯Ì¬·ûºÅ"
-
-#: readelf.c:5722
-msgid ""
-"\n"
-"Dynamic symbol information is not available for displaying symbols.\n"
-msgstr ""
-
-#: readelf.c:5734
-#, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length (total of %d buckets):\n"
-msgstr ""
-
-#: readelf.c:5736
-#, c-format
-msgid " Length Number %% of total Coverage\n"
-msgstr ""
-
-#: readelf.c:5741 readelf.c:5760 readelf.c:9146 readelf.c:9338
-msgid "Out of memory"
-msgstr "ÄÚ´æ²»×ã"
-
-#: readelf.c:5809
-#, c-format
-msgid ""
-"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr ""
-"\n"
-"λÓÚÆ«ÒÆÁ¿ 0x%lx µÄ¶¯Ì¬ÐÅÏ¢½Úº¬ÓÐ %d ¸öÌõÄ¿£º\n"
-
-#: readelf.c:5812
-msgid " Num: Name BoundTo Flags\n"
-msgstr ""
-
-#: readelf.c:5864
-#, c-format
-msgid ""
-"\n"
-"Assembly dump of section %s\n"
-msgstr ""
-
-#: readelf.c:5887
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no data to dump.\n"
-msgstr ""
-"\n"
-"¡°%s¡±½ÚûÓпÉÊä³öµÄÊý¾Ý¡£\n"
-
-#: readelf.c:5892
-#, c-format
-msgid ""
-"\n"
-"Hex dump of section '%s':\n"
-msgstr ""
-"\n"
-"¡°%s¡±½ÚµÄÊ®Áù½øÖÆÊä³ö£º\n"
-
-#: readelf.c:5897
-msgid "section data"
-msgstr "½ÚÊä³ö"
-
-#: readelf.c:6046
-msgid "badly formed extended line op encountered!\n"
-msgstr ""
-
-#: readelf.c:6053
-#, c-format
-msgid " Extended opcode %d: "
-msgstr ""
-
-#: readelf.c:6058
-msgid ""
-"End of Sequence\n"
-"\n"
-msgstr ""
-"ÐòÁнáÊø\n"
-"\n"
-
-#: readelf.c:6064
-#, c-format
-msgid "set Address to 0x%lx\n"
-msgstr ""
-
-#: readelf.c:6069
-msgid " define new File Table entry\n"
-msgstr " ¶¨ÒåÐÂÎļþ±íÌõÄ¿\n"
-
-#: readelf.c:6070 readelf.c:6199
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr " ÌõÄ¿\tĿ¼\tʱ¼ä\t´óС\tÃû³Æ\n"
-
-#: readelf.c:6072
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: readelf.c:6075 readelf.c:6077 readelf.c:6079 readelf.c:6211 readelf.c:6213
-#: readelf.c:6215
-#, c-format
-msgid "%lu\t"
-msgstr "%lu\t"
-
-#: readelf.c:6080
-#, c-format
-msgid ""
-"%s\n"
-"\n"
-msgstr ""
-"%s\n"
-"\n"
-
-#: readelf.c:6084
-#, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr "δ֪£º³¤¶È %d\n"
-
-#: readelf.c:6110
-#, c-format
-msgid ""
-"\n"
-"Dump of debug contents of section %s:\n"
-"\n"
-msgstr ""
-"\n"
-"Êä³ö %s ½ÚµÄµ÷ÊÔÄÚÈÝ£º\n"
-"\n"
-
-#: readelf.c:6122
-msgid "64-bit DWARF line info is not supported yet.\n"
-msgstr "Éв»Ö§³Ö 64-λ DWARF ÐÐÐÅÏ¢¡£\n"
-
-#: readelf.c:6129
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr "ÐÐÐÅÏ¢ËƺõÒÑË𻵠- ½Ú¹ýС\n"
-
-#: readelf.c:6137
-msgid "Only DWARF version 2 line info is currently supported.\n"
-msgstr "Ä¿Ç°Ö»Ö§³ÖµÚ¶þ°æ DWARF ÐÐÐÅÏ¢¡£\n"
-
-#: readelf.c:6152
-#, c-format
-msgid " Length: %ld\n"
-msgstr " ³¤¶È£º %ld\n"
-
-#: readelf.c:6153
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr " DWARF °æ±¾£º %d\n"
-
-#: readelf.c:6154
-#, c-format
-msgid " Prologue Length: %d\n"
-msgstr ""
-
-#: readelf.c:6155
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr " ×îСָÁ¶È£º %d\n"
-
-#: readelf.c:6156
-#, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr " ¡°is_stmt¡±µÄ³õʼֵ£º %d\n"
-
-#: readelf.c:6157
-#, c-format
-msgid " Line Base: %d\n"
-msgstr ""
-
-#: readelf.c:6158
-#, c-format
-msgid " Line Range: %d\n"
-msgstr ""
-
-#: readelf.c:6159
-#, c-format
-msgid " Opcode Base: %d\n"
-msgstr ""
-
-#: readelf.c:6168
-msgid ""
-"\n"
-" Opcodes:\n"
-msgstr ""
-
-#: readelf.c:6171
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr ""
-
-#: readelf.c:6177
-msgid ""
-"\n"
-" The Directory Table is empty.\n"
-msgstr ""
-"\n"
-" Ŀ¼±íΪ¿Õ¡£\n"
-
-#: readelf.c:6180
-msgid ""
-"\n"
-" The Directory Table:\n"
-msgstr ""
-"\n"
-" Ŀ¼±í£º\n"
-
-#: readelf.c:6184
-#, c-format
-msgid " %s\n"
-msgstr " %s\n"
-
-#: readelf.c:6195
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr ""
-"\n"
-" ÎļþÃû±íΪ¿Õ¡£\n"
-
-#: readelf.c:6198
-msgid ""
-"\n"
-" The File Name Table:\n"
-msgstr ""
-"\n"
-" ÎļþÃû±í£º\n"
-
-#: readelf.c:6206
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: readelf.c:6217
-#, c-format
-msgid "%s\n"
-msgstr "%s\n"
-
-#. Now display the statements.
-#: readelf.c:6225
-msgid ""
-"\n"
-" Line Number Statements:\n"
-msgstr ""
-"\n"
-" ÐкÅÓï¾ä£º\n"
-
-#: readelf.c:6241
-#, c-format
-msgid " Special opcode %d: advance Address by %d to 0x%lx"
-msgstr ""
-
-#: readelf.c:6245
-#, c-format
-msgid " and Line by %d to %d\n"
-msgstr ""
-
-#: readelf.c:6256
-msgid " Copy\n"
-msgstr " ¸´ÖÆ\n"
-
-#: readelf.c:6263
-#, c-format
-msgid " Advance PC by %d to %lx\n"
-msgstr ""
-
-#: readelf.c:6271
-#, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr ""
-
-#: readelf.c:6278
-#, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr ""
-
-#: readelf.c:6286
-#, c-format
-msgid " Set column to %d\n"
-msgstr " ½«ÁÐÉ趨Ϊ %d\n"
-
-#: readelf.c:6293
-#, c-format
-msgid " Set is_stmt to %d\n"
-msgstr " ½« is_stmt É趨Ϊ %d\n"
-
-#: readelf.c:6298
-msgid " Set basic block\n"
-msgstr " É趨»ù±¾¿é\n"
-
-#: readelf.c:6306
-#, c-format
-msgid " Advance PC by constant %d to 0x%lx\n"
-msgstr ""
-
-#: readelf.c:6314
-#, c-format
-msgid " Advance PC by fixed size amount %d to 0x%lx\n"
-msgstr ""
-
-#: readelf.c:6319
-msgid " Set prologue_end to true\n"
-msgstr ""
-
-#: readelf.c:6323
-msgid " Set epilogue_begin to true\n"
-msgstr ""
-
-#: readelf.c:6329
-#, c-format
-msgid " Set ISA to %d\n"
-msgstr ""
-
-#: readelf.c:6333
-#, c-format
-msgid " Unknown opcode %d with operands: "
-msgstr ""
-
-#: readelf.c:6365 readelf.c:6827 readelf.c:6899
-#, c-format
-msgid ""
-"Contents of the %s section:\n"
-"\n"
-msgstr ""
-
-#: readelf.c:6384
-msgid "64-bit DWARF pubnames are not supported yet.\n"
-msgstr ""
-
-#: readelf.c:6394
-msgid "Only DWARF 2 pubnames are currently supported\n"
-msgstr ""
-
-#: readelf.c:6401
-#, c-format
-msgid " Length: %ld\n"
-msgstr " ³¤¶È£º %ld\n"
-
-#: readelf.c:6403
-#, c-format
-msgid " Version: %d\n"
-msgstr " °æ±¾£º %d\n"
-
-#: readelf.c:6405
-#, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr " ÔÚ .debug_info ½ÚÖеÄÆ«ÒÆÁ¿£º %ld\n"
-
-#: readelf.c:6407
-#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr " ÔÚ .debug_info ½ÚÖÐÇøÓòµÄ´óС£º %ld\n"
-
-#: readelf.c:6410
-msgid ""
-"\n"
-" Offset\tName\n"
-msgstr ""
-"\n"
-" Æ«ÒÆÁ¿\tÃû³Æ\n"
-
-#: readelf.c:6501
-#, c-format
-msgid "Unknown TAG value: %lx"
-msgstr "δ֪µÄ TAG Öµ£º%lx"
-
-#: readelf.c:6612
-#, c-format
-msgid "Unknown AT value: %lx"
-msgstr "δ֪µÄ AT Öµ£º%lx"
-
-#: readelf.c:6649
-#, c-format
-msgid "Unknown FORM value: %lx"
-msgstr "δ֪µÄ FORM Öµ£º%lx"
-
-#: readelf.c:6848
-#, c-format
-msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr " DW_MACINFO_start_file - Ðкţº%d Îļþ±àºÅ£º%d\n"
-
-#: readelf.c:6853
-msgid " DW_MACINFO_end_file\n"
-msgstr " DW_MACINFO_end_file\n"
-
-#: readelf.c:6861
-#, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_define - Ðкţº%d ºê£º%s\n"
-
-#: readelf.c:6869
-#, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_undef - Ðкţº%d ºê£º%s\n"
-
-#: readelf.c:6880
-#, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr " DW_MACINFO_vendor_ext - ³£Á¿£º%d ×Ö·û´®£º%s\n"
-
-#: readelf.c:6908
-msgid " Number TAG\n"
-msgstr ""
-
-#: readelf.c:6914
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr ""
-
-#: readelf.c:6917
-msgid "has children"
-msgstr ""
-
-#: readelf.c:6917
-msgid "no children"
-msgstr ""
-
-#: readelf.c:6921
-#, c-format
-msgid " %-18s %s\n"
-msgstr " %-18s %s\n"
-
-#: readelf.c:6942
-#, c-format
-msgid " %lu byte block: "
-msgstr " %lu ×ֽڵĿ飺"
-
-#: readelf.c:7265
-msgid "(User defined location op)"
-msgstr ""
-
-#: readelf.c:7267
-msgid "(Unknown location op)"
-msgstr ""
-
-#: readelf.c:7305
-msgid "debug_loc section data"
-msgstr "debug_loc ½ÚÊý¾Ý"
-
-#: readelf.c:7336
-msgid ""
-"\n"
-"The .debug_loc section is empty.\n"
-msgstr ""
-"\n"
-".debug_loc ½ÚΪ¿Õ¡£\n"
-
-#: readelf.c:7339
-msgid ""
-"Contents of the .debug_loc section:\n"
-"\n"
-msgstr ""
-".debug_loc ½ÚµÄÄÚÈÝ£º\n"
-"\n"
-
-#: readelf.c:7340
-msgid ""
-"\n"
-" Offset Begin End Expression\n"
-msgstr ""
-
-#: readelf.c:7412
-msgid "debug_str section data"
-msgstr "debug_str ½ÚÊý¾Ý"
-
-#: readelf.c:7431
-msgid "<no .debug_str section>"
-msgstr "<ûÓÐ .debug_str ½Ú>"
-
-#: readelf.c:7434
-msgid "<offset is too big>"
-msgstr "<Æ«ÒÆÁ¿¹ý´ó>"
-
-#: readelf.c:7454
-msgid ""
-"\n"
-"The .debug_str section is empty.\n"
-msgstr ""
-"\n"
-".debug_str ½ÚΪ¿Õ¡£\n"
-
-#: readelf.c:7458
-msgid ""
-"Contents of the .debug_str section:\n"
-"\n"
-msgstr ""
-".debug_str ½ÚµÄÄÚÈÝ£º\n"
-"\n"
-
-#: readelf.c:7629
-#, c-format
-msgid " (indirect string, offset: 0x%lx): "
-msgstr " (¼ä½Ó×Ö·û´®£¬Æ«ÒÆÁ¿£º0x%lx)£º"
-
-#: readelf.c:7638
-#, c-format
-msgid "Unrecognized form: %d\n"
-msgstr "ÎÞ·¨Ê¶±ðµÄÐÎʽ£º%d\n"
-
-#: readelf.c:7651
-msgid "(not inlined)"
-msgstr "(δÄÚÁ¬)"
-
-#: readelf.c:7652
-msgid "(inlined)"
-msgstr "(ÒÑÄÚÁ¬)"
-
-#: readelf.c:7653
-msgid "(declared as inline but ignored)"
-msgstr "(ÉùÃ÷ΪÄÚÁ¬µ«±»ºöÂÔ)"
-
-#: readelf.c:7654
-msgid "(declared as inline and inlined)"
-msgstr "(ÉùÃ÷ΪÄÚÁ¬²¢ÒÑÄÚÁ¬)"
-
-#: readelf.c:7655
-#, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr " (δ֪µÄÄÚÁ¬ÊôÐÔÖµ£º%lx)"
-
-#: readelf.c:7826 readelf.c:8029
-#, c-format
-msgid ""
-"The section %s contains:\n"
-"\n"
-msgstr ""
-"%s ½Úº¬ÓУº\n"
-"\n"
-
-#: readelf.c:7850
-msgid "64-bit DWARF debug info is not supported yet.\n"
-msgstr "Éв»Ö§³Ö 64-λ DWARF µ÷ÊÔÐÅÏ¢¡£\n"
-
-#: readelf.c:7919
-#, c-format
-msgid " Compilation Unit @ %lx:\n"
-msgstr " ±àÒëµ¥Ôª @ %lx£º\n"
-
-#: readelf.c:7920
-#, c-format
-msgid " Length: %ld\n"
-msgstr " ³¤¶È£º %ld\n"
-
-#: readelf.c:7921
-#, c-format
-msgid " Version: %d\n"
-msgstr " °æ±¾£º %d\n"
-
-#: readelf.c:7922
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr " ËõдƫÒÆÁ¿£º %ld\n"
-
-#: readelf.c:7923
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " Ö¸Õë´óС£º %d\n"
-
-#: readelf.c:7927
-msgid "Only version 2 DWARF debug information is currently supported.\n"
-msgstr "Ö»Ö§³ÖµÚ¶þ°æ DWARF µ÷ÊÔÐÅÏ¢¡£\n"
-
-#: readelf.c:7948
-msgid "Unable to locate .debug_abbrev section!\n"
-msgstr "ÎÞ·¨¶¨Î» .debug_abbrev ½Ú£¡\n"
-
-#: readelf.c:7954
-msgid "debug_abbrev section data"
-msgstr "debug_abbrev ½ÚÊý¾Ý"
-
-#: readelf.c:7991
-#, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr "ÎÞ·¨ÔÚËõд±íÖж¨Î»ÌõÄ¿ %lu\n"
-
-#: readelf.c:7996
-#, c-format
-msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
-msgstr " <%d><%lx>£ºËõд±àºÅ£º%lu (%s)\n"
-
-#: readelf.c:8050
-msgid "64-bit DWARF aranges are not supported yet.\n"
-msgstr ""
-
-#: readelf.c:8056
-msgid "Only DWARF 2 aranges are currently supported.\n"
-msgstr ""
-
-#: readelf.c:8060
-#, c-format
-msgid " Length: %ld\n"
-msgstr ""
-
-#: readelf.c:8061
-#, c-format
-msgid " Version: %d\n"
-msgstr ""
-
-#: readelf.c:8062
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr ""
-
-#: readelf.c:8063
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr ""
-
-#: readelf.c:8064
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr ""
-
-#: readelf.c:8066
-msgid ""
-"\n"
-" Address Length\n"
-msgstr ""
-
-#: readelf.c:8248
-#, c-format
-msgid "The section %s contains:\n"
-msgstr "%s ½Úº¬ÓУº\n"
-
-#: readelf.c:8271
-msgid "64-bit DWARF format frames are not supported yet.\n"
-msgstr ""
-
-#: readelf.c:8820
-#, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr "Éв»Ö§³ÖÏÔʾ %s ½ÚµÄµ÷ÊÔÄÚÈÝ¡£\n"
-
-#: readelf.c:8886
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no debugging data.\n"
-msgstr ""
-
-#: readelf.c:8891 readelf.c:8953
-msgid "debug section data"
-msgstr "µ÷ÊÔ½ÚÊý¾Ý"
-
-#: readelf.c:8907
-#, c-format
-msgid "Unrecognized debug section: %s\n"
-msgstr "ÎÞ·¨Ê¶±ðµÄµ÷ÊÔ½Ú£º%s\n"
-
-#: readelf.c:8981
-msgid "Some sections were not dumped because they do not exist!\n"
-msgstr "ûÓÐÊä³öijЩ½ÚÊÇÒòΪËüÃDz¢²»´æÔÚ£¡\n"
-
-#: readelf.c:9054 readelf.c:9418
-msgid "liblist"
-msgstr ""
-
-#: readelf.c:9139
-msgid "options"
-msgstr "Ñ¡Ïî"
-
-#: readelf.c:9170
-#, c-format
-msgid ""
-"\n"
-"Section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"¡°%s¡±½Úº¬ÓÐ %d ¸öÌõÄ¿£º\n"
-
-#: readelf.c:9331
-msgid "conflict list found without a dynamic symbol table"
-msgstr ""
-
-#: readelf.c:9349 readelf.c:9365
-msgid "conflict"
-msgstr "³åÍ»"
-
-#: readelf.c:9375
-#, c-format
-msgid ""
-"\n"
-"Section '.conflict' contains %ld entries:\n"
-msgstr ""
-
-#: readelf.c:9377
-msgid " Num: Index Value Name"
-msgstr ""
-
-#: readelf.c:9426
-msgid "liblist string table"
-msgstr ""
-
-#: readelf.c:9435
-#, c-format
-msgid ""
-"\n"
-"Library list section '%s' contains %lu entries:\n"
-msgstr ""
-
-#: readelf.c:9484
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr "NT_PRSTATUS (prstatus ½á¹¹)"
-
-#: readelf.c:9485
-msgid "NT_FPREGSET (floating point registers)"
-msgstr "NT_FPREGSET (¸¡µã¼Ä´æÆ÷)"
-
-#: readelf.c:9486
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr "NT_PRPSINFO (prpsinfo ½á¹¹)"
-
-#: readelf.c:9487
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr "NT_TASKSTRUCT (ÈÎÎñ½á¹¹)"
-
-#: readelf.c:9488
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr "NT_PRXFPREG (user_xfpregs ½á¹¹)"
-
-#: readelf.c:9489
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr "NT_PSTATUS (pstatus ½á¹¹)"
-
-#: readelf.c:9490
-msgid "NT_FPREGS (floating point registers)"
-msgstr "NT_FPREGS (¸¡µãÊý¼Ä´æÆ÷)"
-
-#: readelf.c:9491
-msgid "NT_PSINFO (psinfo structure)"
-msgstr "NT_PSINFO (psinfo ½á¹¹)"
-
-#: readelf.c:9492
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr "NT_LWPSTATUS (lwpstatus_t ½á¹¹)"
-
-#: readelf.c:9493
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr "NT_LWPSINFO (lwpsinfo_t ½á¹¹)"
-
-#: readelf.c:9494
-msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
-msgstr "NT_WIN32PSTATUS (win32_pstatus ½á¹¹)"
-
-#: readelf.c:9496 readelf.c:9520
-#, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr "δ֪µÄ×¢ÊÍÀàÐÍ£º(0x%08x)"
-
-#. NetBSD core "procinfo" structure.
-#: readelf.c:9510
-msgid "NetBSD procinfo structure"
-msgstr "NetBSD procinfo ½á¹¹"
-
-#: readelf.c:9537 readelf.c:9551
-msgid "PT_GETREGS (reg structure)"
-msgstr "PT_GETREGS (reg ½á¹¹)"
-
-#: readelf.c:9539 readelf.c:9553
-msgid "PT_GETFPREGS (fpreg structure)"
-msgstr "PT_GETFPREGS (fpreg ½á¹¹)"
-
-#: readelf.c:9559
-#, c-format
-msgid "PT_FIRSTMACH+%d"
-msgstr ""
-
-#: readelf.c:9613
-msgid "notes"
-msgstr "×¢ÊÍ"
-
-#: readelf.c:9619
-#, c-format
-msgid ""
-"\n"
-"Notes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr ""
-"\n"
-"×¢ÊÍλÓÚÆ«ÒÆÁ¿ 0x%08lx ³¤¶ÈΪ 0x%08lx£º\n"
-
-#: readelf.c:9621
-msgid " Owner\t\tData size\tDescription\n"
-msgstr " ËùÓÐÕß\t\tÊý¾Ý´óС\tÃèÊö\n"
-
-#: readelf.c:9640
-#, c-format
-msgid "corrupt note found at offset %x into core notes\n"
-msgstr ""
-
-#: readelf.c:9642
-#, c-format
-msgid " type: %x, namesize: %08lx, descsize: %08lx\n"
-msgstr " ÀàÐÍ£º%x£¬Ãû³Æ´óС£º%08lx£¬ÃèÊö´óС£º%08lx\n"
-
-#: readelf.c:9744
-msgid "No note segments present in the core file.\n"
-msgstr "core ÎļþÖÐûÓÐ×¢ÊͶΡ£\n"
-
-#: readelf.c:9822
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr ""
-"±¾ readelf ʵÀý±àÒëʱδ¼ÓÈë 64 λÊý¾ÝÀàÐÍÖ§³Ö£¬\n"
-"Òò¶øÎÞ·¨¶ÁÈë 64 λ ELF Îļþ¡£\n"
-
-#: readelf.c:9868
-#, c-format
-msgid "Cannot stat input file %s.\n"
-msgstr "ÎÞ·¨¶ÔÊäÈëÎļþ %s Ö´ÐÐ stat ²Ù×÷¡£\n"
-
-#: readelf.c:9875
-#, c-format
-msgid "Input file %s not found.\n"
-msgstr "ÕÒ²»µ½ÊäÈëÎļþ %s¡£\n"
-
-#: readelf.c:9881
-#, c-format
-msgid "%s: Failed to read file header\n"
-msgstr "%s£º¶ÁÈëÎļþͷʧ°Ü\n"
-
-#: readelf.c:9895
-#, c-format
-msgid ""
-"\n"
-"File: %s\n"
-msgstr ""
-"\n"
-"Îļþ£º%s\n"
-
-#: rename.c:131
-#, c-format
-msgid "%s: cannot set time: %s"
-msgstr "%s£ºÎÞ·¨ÉèÖÃʱ¼ä£º%s"
-
-#. We have to clean up here.
-#: rename.c:170 rename.c:203
-#, c-format
-msgid "%s: rename: %s"
-msgstr "%s£ºÖØÃüÃû£º%s"
-
-#: rename.c:211
-#, c-format
-msgid "%s: simple_copy: %s"
-msgstr ""
-
-#: resbin.c:134
-#, c-format
-msgid "%s: not enough binary data"
-msgstr ""
-
-#: resbin.c:153
-msgid "null terminated unicode string"
-msgstr "ÒÔ null ÖÕÖ¹µÄ unicode ×Ö·û´®"
-
-#: resbin.c:183 resbin.c:189
-msgid "resource ID"
-msgstr "×ÊÔ´ ID"
-
-#: resbin.c:233
-msgid "cursor"
-msgstr "¹â±ê"
-
-#: resbin.c:267 resbin.c:274
-msgid "menu header"
-msgstr "²Ëµ¥Í·"
-
-#: resbin.c:284
-msgid "menuex header"
-msgstr "À©Õ¹²Ëµ¥Í·"
-
-#: resbin.c:288
-msgid "menuex offset"
-msgstr "À©Õ¹²Ëµ¥Æ«ÒÆÁ¿"
-
-#: resbin.c:295
-#, c-format
-msgid "unsupported menu version %d"
-msgstr "²»Ö§³ÖµÄ²Ëµ¥°æ±¾ %d"
-
-#: resbin.c:323 resbin.c:338 resbin.c:404
-msgid "menuitem header"
-msgstr "²Ëµ¥ÏîÍ·"
-
-#: resbin.c:434
-msgid "menuitem"
-msgstr "²Ëµ¥Ïî"
-
-#: resbin.c:475 resbin.c:503
-msgid "dialog header"
-msgstr "¶Ô»°¿òÍ·"
-
-#: resbin.c:493
-#, c-format
-msgid "unexpected DIALOGEX version %d"
-msgstr "ÒâÍâµÄÀ©Õ¹¶Ô»°¿ò°æ±¾ %d"
-
-#: resbin.c:538
-msgid "dialog font point size"
-msgstr ""
-
-#: resbin.c:546
-msgid "dialogex font information"
-msgstr ""
-
-#: resbin.c:572 resbin.c:590
-msgid "dialog control"
-msgstr "¶Ô»°¿ò¿ØÖÆ"
-
-#: resbin.c:582
-msgid "dialogex control"
-msgstr "¶Ô»°¿òÀ©Õ¹¿ØÖÆ"
-
-#: resbin.c:611
-msgid "dialog control end"
-msgstr "¶Ô»°¿ò¿ØÖƽáÊø"
-
-#: resbin.c:623
-msgid "dialog control data"
-msgstr "¶Ô»°¿ò¿ØÖÆÊý¾Ý"
-
-#: resbin.c:666
-msgid "stringtable string length"
-msgstr "×Ö·û´®±í×Ö·û´®³¤¶È"
-
-#: resbin.c:676
-msgid "stringtable string"
-msgstr "×Ö·û´®±í×Ö·û´®"
-
-#: resbin.c:709
-msgid "fontdir header"
-msgstr "×ÖÌåĿ¼ͷ"
-
-#: resbin.c:722
-msgid "fontdir"
-msgstr "×ÖÌåĿ¼"
-
-#: resbin.c:738
-msgid "fontdir device name"
-msgstr "×ÖÌåĿ¼É豸Ãû"
-
-#: resbin.c:744
-msgid "fontdir face name"
-msgstr ""
-
-#: resbin.c:787
-msgid "accelerator"
-msgstr "¼ÓËÙ¼ü"
-
-#: resbin.c:851
-msgid "group cursor header"
-msgstr "×é¹â±êÍ·"
-
-#: resbin.c:855
-#, c-format
-msgid "unexpected group cursor type %d"
-msgstr "ÒâÍâµÄ×é¹â±êÀàÐÍ %d"
-
-#: resbin.c:870
-msgid "group cursor"
-msgstr "×é¹â±ê"
-
-#: resbin.c:909
-msgid "group icon header"
-msgstr "×éͼ±êÍ·"
-
-#: resbin.c:913
-#, c-format
-msgid "unexpected group icon type %d"
-msgstr "ÒâÍâµÄ×éͼ±êÀàÐÍ %d"
-
-#: resbin.c:928
-msgid "group icon"
-msgstr "×éͼ±ê"
-
-#: resbin.c:999 resbin.c:1218
-msgid "unexpected version string"
-msgstr "ÒâÍâµÄ°æ±¾×Ö·û´®"
-
-#: resbin.c:1033
-#, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr "°æ±¾³¤¶È %d ²»Æ¥Åä×ÊÔ´³¤¶È %lu"
-
-#: resbin.c:1037
-#, c-format
-msgid "unexpected version type %d"
-msgstr "ÒâÍâµÄ°æ±¾ÀàÐÍ %d"
-
-#: resbin.c:1049
-#, c-format
-msgid "unexpected fixed version information length %d"
-msgstr ""
-
-#: resbin.c:1052
-msgid "fixed version info"
-msgstr ""
-
-#: resbin.c:1056
-#, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr "ÒâÍâµÄ¹Ì¶¨°æ±¾Ç©Ãû %lu"
-
-#: resbin.c:1060
-#, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr "ÒâÍâµÄ¹Ì¶¨°æ±¾ÐÅÏ¢°æ±¾ %lu"
-
-#: resbin.c:1089
-msgid "version var info"
-msgstr ""
-
-#: resbin.c:1106
-#, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr ""
-
-#: resbin.c:1116
-#, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr ""
-
-#: resbin.c:1150
-#, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr "ÒâÍâµÄ°æ±¾×Ö·û´®³¤¶È %d != %d + %d"
-
-#: resbin.c:1161
-#, c-format
-msgid "unexpected version string length %d < %d"
-msgstr "ÒâÍâµÄ°æ±¾×Ö·û´®³¤¶È %d < %d"
-
-#: resbin.c:1178
-#, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr ""
-
-#: resbin.c:1197
-msgid "version varfileinfo"
-msgstr ""
-
-#: resbin.c:1212
-#, c-format
-msgid "unexpected version value length %d"
-msgstr "ÒâÍâµÄ°æ±¾Öµ³¤¶È %d"
-
-#: rescoff.c:128
-msgid "filename required for COFF input"
-msgstr "COFF ÊäÈëÐèÒªÎļþÃû"
-
-#: rescoff.c:145
-#, c-format
-msgid "%s: no resource section"
-msgstr "%s£ºÃ»ÓÐ×ÊÔ´½Ú"
-
-#: rescoff.c:152
-msgid "can't read resource section"
-msgstr "ÎÞ·¨¶ÁÈë×ÊÔ´½Ú"
-
-#: rescoff.c:178
-#, c-format
-msgid "%s: %s: address out of bounds"
-msgstr "%s£º%s£ºµØÖ·³¬³ö½çÏÞ"
-
-#: rescoff.c:197
-msgid "directory"
-msgstr "Ŀ¼"
-
-#: rescoff.c:225
-msgid "named directory entry"
-msgstr "ÒÑÃüÃûµÄĿ¼ÌõÄ¿"
-
-#: rescoff.c:234
-msgid "directory entry name"
-msgstr "Ŀ¼ÌõÄ¿Ãû"
-
-#: rescoff.c:254
-msgid "named subdirectory"
-msgstr "ÒÑÃüÃûµÄ×ÓĿ¼"
-
-#: rescoff.c:262
-msgid "named resource"
-msgstr "ÒÑÃüÃûµÄ×ÊÔ´"
-
-#: rescoff.c:277
-msgid "ID directory entry"
-msgstr ""
-
-#: rescoff.c:294
-msgid "ID subdirectory"
-msgstr ""
-
-#: rescoff.c:302
-msgid "ID resource"
-msgstr ""
-
-#: rescoff.c:328
-msgid "resource type unknown"
-msgstr "×ÊÔ´ÀàÐÍδ֪"
-
-#: rescoff.c:331
-msgid "data entry"
-msgstr "Êý¾ÝÌõÄ¿"
-
-#: rescoff.c:339
-msgid "resource data"
-msgstr "×ÊÔ´Êý¾Ý"
-
-#: rescoff.c:344
-msgid "resource data size"
-msgstr "×ÊÔ´Êý¾Ý´óС"
-
-#: rescoff.c:439
-msgid "filename required for COFF output"
-msgstr "COFF Êä³öÐèÒªÎļþÃû"
-
-#: rescoff.c:738
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr "ÎÞ·¨µÃµ½ BFD_RELOC_RVA Öض¨ÏòÀàÐÍ"
-
-#: resrc.c:240 resrc.c:312
-#, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr "ÎÞ·¨´ò¿ªÁÙʱÎļþ¡°%s¡±£º%s"
-
-#: resrc.c:246
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr "ÎÞ·¨Öض¨Ïò±ê×¼Êä³ö£º¡°%s¡±£º%s"
-
-#: resrc.c:262
-#, c-format
-msgid "%s %s: %s"
-msgstr "%s %s£º%s"
-
-#: resrc.c:308
-#, c-format
-msgid "can't execute `%s': %s"
-msgstr "ÎÞ·¨Ö´ÐС°%s¡±£º%s"
-
-#: resrc.c:317
-#, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr "ʹÓÃÁÙʱÎļþ¡°%s¡±ÒÔ¶ÁÈëÔ¤´¦ÀíÆ÷Êä³ö\n"
-
-#: resrc.c:324
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr "ÎÞ·¨ popen ¡°%s¡±£º%s"
-
-#: resrc.c:326
-msgid "Using popen to read preprocessor output\n"
-msgstr "ʹÓà popen ¶ÁÈëÔ¤´¦ÀíÆ÷Êä³ö\n"
-
-#: resrc.c:369
-#, c-format
-msgid "Tried `%s'\n"
-msgstr ""
-
-#: resrc.c:380
-#, c-format
-msgid "Using `%s'\n"
-msgstr "ʹÓá°%s¡±\n"
-
-#: resrc.c:542
-#, c-format
-msgid "%s:%d: %s\n"
-msgstr "%s£º%d£º%s\n"
-
-#: resrc.c:551
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr "%s£ºÎļþÒâÍâ½áÊø"
-
-#: resrc.c:608
-#, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr "%s£º¶ÁÈ¡ %lu ·µ»Ø %lu"
-
-#: resrc.c:650 resrc.c:904 resrc.c:1177 resrc.c:1331
-#, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr "¶ÔλͼÎļþ¡°%s¡±½øÐÐ stat ²Ù×÷ʧ°Ü£º%s"
-
-#: resrc.c:703
-#, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr "¹â±êÎļþ¡°%s¡±²»º¬Óйâ±êÊý¾Ý"
-
-#: resrc.c:735 resrc.c:1048
-#, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr ""
-
-#: resrc.c:872
-msgid "help ID requires DIALOGEX"
-msgstr ""
-
-#: resrc.c:874
-msgid "control data requires DIALOGEX"
-msgstr ""
-
-#: resrc.c:1017
-#, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr "ͼ±êÎļþ¡°%s¡±²»º¬ÓÐͼ±êÊý¾Ý"
-
-#: resrc.c:1536
-#, c-format
-msgid "can't open `%s' for output: %s"
-msgstr "ÎÞ·¨ÎªÊä³ö´ò¿ª¡°%s¡±£º%s"
-
-#: size.c:86
-msgid " Displays the sizes of sections inside binary files\n"
-msgstr " ÏÔʾ¶þ½øÖÆÎļþÖнڵĴóС\n"
-
-#: size.c:87
-msgid " If no input file(s) are specified, a.out is assumed\n"
-msgstr " ûÓиø³öÊäÈëÎļþ£¬Ä¬ÈÏΪ a.out\n"
-
-#: size.c:88
-#, c-format
-msgid ""
-" The options are:\n"
-" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
-" -o|-d|-h --radix={8|10|16} Display numbers in octal, decimal or hex\n"
-" -t --totals Display the total sizes (Berkeley only)\n"
-" --target=<bfdname> Set the binary file format\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" Ñ¡ÏîΪ£º\n"
-" -A|-B --format={sysv|berkeley} Ñ¡ÔñÊä³ö·ç¸ñ (ĬÈÏΪ %s)\n"
-" -o|-d|-h --radix={8|10|16} Ò԰˽øÖÆ¡¢Ê®½øÖÆ»òÊ®Áù½øÖÆÏÔʾÊýÖµ\n"
-" -t --totals ÏÔʾ×Ü´óС (Ö»ÓÃÓÚ Berkeley ·ç¸ñ)\n"
-" --target=<bfdname> É趨¶þ½øÖÆÎļþ¸ñʽ\n"
-" -h --help ÏÔʾ±¾ÐÅÏ¢\n"
-" -v --version ÏÔʾ³ÌÐòµÄ°æ±¾ºÅ\n"
-"\n"
-
-#: size.c:160
-#, c-format
-msgid "invalid argument to --format: %s"
-msgstr "--format µÄÎÞЧ²ÎÊý£º%s"
-
-#: size.c:187
-#, c-format
-msgid "Invalid radix: %s\n"
-msgstr ""
-
-#: srconv.c:1953
-msgid "Convert a COFF object file into a SYSROFF object file\n"
-msgstr "½« COFF Ä¿±êÎļþת»»Îª SYSROFF Ä¿±êÎļþ\n"
-
-#: srconv.c:1954
-msgid ""
-" The options are:\n"
-" -q --quick (Obsolete - ignoerd)\n"
-" -n --noprescan Do not perform a scan to convert commons into defs\n"
-" -d --debug Display information about what is being done\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Ñ¡ÏîΪ£º\n"
-" -q --quick (¹ýÆÚ - ºöÂÔ)\n"
-" -n --noprescan ²»Ö´ÐÐɨÃèÒÔ½« commons ת»»Îª defs\n"
-" -d --debug ÏÔʾ¹ØÓÚÒÑÍê³ÉÊÂÎñµÄÐÅÏ¢\n"
-" -h --help ÏÔʾ±¾ÐÅÏ¢\n"
-" -v --version ´òÓ¡³ÌÐòµÄ°æ±¾ºÅ\n"
-
-#: srconv.c:2099
-#, c-format
-msgid "unable to open output file %s"
-msgstr "ÎÞ·¨´ò¿ªÊä³öÎļþ %s"
-
-#: stabs.c:343 stabs.c:1759
-msgid "numeric overflow"
-msgstr "ÊýÖµÒç³ö"
-
-#: stabs.c:354
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr ""
-
-#: stabs.c:364
-#, c-format
-msgid "Warning: %s: %s\n"
-msgstr "¾¯¸æ£º%s£º%s\n"
-
-#: stabs.c:485
-msgid "N_LBRAC not within function\n"
-msgstr "N_LBRAC ²»ÔÚº¯ÊýÖÐ\n"
-
-#: stabs.c:524
-msgid "Too many N_RBRACs\n"
-msgstr "¹ý¶àµÄ N_RBRAC\n"
-
-#: stabs.c:769
-msgid "unknown C++ encoded name"
-msgstr "δ֪µÄ C++ ±àÂëÃû³Æ"
-
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1296
-msgid "unrecognized cross reference type"
-msgstr "ÎÞ·¨Ê¶±ðµÄ½»²æÒýÓÃÀàÐÍ"
-
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1851
-msgid "missing index type"
-msgstr "ÒÅ©µÄË÷ÒýÀàÐÍ"
-
-#: stabs.c:2178
-msgid "unknown virtual character for baseclass"
-msgstr ""
-
-#: stabs.c:2196
-msgid "unknown visibility character for baseclass"
-msgstr ""
-
-#: stabs.c:2388
-msgid "unnamed $vb type"
-msgstr ""
-
-#: stabs.c:2394
-msgid "unrecognized C++ abbreviation"
-msgstr "ÎÞ·¨Ê¶±ðµÄ C++ Ëõд"
-
-#: stabs.c:2474
-msgid "unknown visibility character for field"
-msgstr ""
-
-#: stabs.c:2730
-msgid "const/volatile indicator missing"
-msgstr "ÒÅ© const/volatile ָʾ·û"
-
-#: stabs.c:2970
-#, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr ""
-
-#: stabs.c:3283
-msgid "Undefined N_EXCL"
-msgstr "䶨Òå N_EXCL"
-
-#: stabs.c:3371
-#, c-format
-msgid "Type file number %d out of range\n"
-msgstr "ÀàÐÍÎļþ±àºÅ %d ³¬³ö·¶Î§\n"
-
-#: stabs.c:3376
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr "ÀàÐÍË÷Òý±àºÅ %d ³¬³ö·¶Î§\n"
-
-#: stabs.c:3463
-#, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr "ÎÞ·¨Ê¶±ðµÄ XCOFF ÀàÐÍ %d\n"
-
-#: stabs.c:3762
-#, c-format
-msgid "bad mangled name `%s'\n"
-msgstr ""
-
-#: stabs.c:3858
-msgid "no argument types in mangled string\n"
-msgstr ""
-
-#: strings.c:200
-#, c-format
-msgid "invalid number %s"
-msgstr "ÎÞЧµÄ±àºÅ %s"
-
-#: strings.c:640
-#, c-format
-msgid "invalid integer argument %s"
-msgstr "ÎÞЧµÄÕûÊý²ÎÊý %s"
-
-#: strings.c:651
-msgid " Display printable strings in [file(s)] (stdin by default)\n"
-msgstr " ´òÓ¡ [Îļþ] (ĬÈÏΪ±ê×¼ÊäÈë) ÖпɴòÓ¡µÄ×Ö·û´®\n"
-
-#: strings.c:652
-msgid ""
-" The options are:\n"
-" -a - --all Scan the entire file, not just the data section\n"
-" -f --print-file-name Print the name of the file before each string\n"
-" -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n"
-" -<number> least [number] characters (default 4).\n"
-" -t --radix={o,x,d} Print the location of the string in base 8, 10 or 16\n"
-" -o An alias for --radix=o\n"
-" -T --target=<BFDNAME> Specify the binary file format\n"
-" -e --encoding={s,b,l,B,L} Select character size and endianness:\n"
-" s = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-
-#: sysdump.c:768
-msgid "Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "´òÓ¡ÊÊÓÚÔĶÁµÄ SYSROFF Ä¿±êÎļþµÄ½âÊÍ\n"
-
-#: sysdump.c:769
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" Ñ¡ÏîΪ£º\n"
-" -h --help ÏÔʾ±¾ÐÅÏ¢\n"
-" -v --version ´òÓ¡³ÌÐòµÄ°æ±¾ºÅ\n"
-
-#: sysdump.c:836
-#, c-format
-msgid "cannot open input file %s"
-msgstr "ÎÞ·¨´ò¿ªÊäÈëÎļþ %s"
-
-#: version.c:35
-msgid "Copyright 2002 Free Software Foundation, Inc.\n"
-msgstr "°æȨËùÓÐ 2002 ×ÔÓÉÈí¼þ»ù½ð»á¡£\n"
-
-#: version.c:36
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr ""
-"±¾³ÌÐòÊÇ×ÔÓÉÈí¼þ£»Äú¿ÉÒÔ°´ÕÕ GNU ͨÓù«¹²Ðí¿ÉÖ¤\n"
-"µÄÌõ¿î¶ÔÆä½øÐÐÔÙ·¢ÐС£±¾³ÌÐòûÓÐÈκε£±£¡£\n"
-
-#: windres.c:239
-#, c-format
-msgid "can't open %s `%s': %s"
-msgstr "ÎÞ·¨´ò¿ª %s¡°%s¡±£º%s"
-
-#: windres.c:418
-msgid ": expected to be a directory\n"
-msgstr "£ºÓ¦ÎªÄ¿Â¼\n"
-
-#: windres.c:430
-msgid ": expected to be a leaf\n"
-msgstr ""
-
-#: windres.c:439
-#, c-format
-msgid "%s: warning: "
-msgstr "%s£º¾¯¸æ£º"
-
-#: windres.c:441
-msgid ": duplicate value\n"
-msgstr ""
-
-#: windres.c:602
-#, c-format
-msgid "unknown format type `%s'"
-msgstr "δ֪µÄ¸ñʽÀàÐÍ¡°%s¡±"
-
-#: windres.c:603
-#, c-format
-msgid "%s: supported formats:"
-msgstr "%s£ºÖ§³ÖµÄ¸ñʽ£º"
-
-#. Otherwise, we give up.
-#: windres.c:688
-#, c-format
-msgid "can not determine type of file `%s'; use the -I option"
-msgstr "ÎÞ·¨È·¶¨Îļþ¡°%s¡±µÄÀàÐÍ£»ÇëʹÓà -I Ñ¡Ïî"
-
-#: windres.c:702
-#, c-format
-msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
-msgstr "Ó÷¨£º%s [Ñ¡Ïî] [ÊäÈëÎļþ] [Êä³öÎļþ]\n"
-
-#: windres.c:704
-msgid ""
-" The options are:\n"
-" -i --input=<file> Name input file\n"
-" -o --output=<file> Name output file\n"
-" -I --input-format=<format> Specify input format\n"
-" -O --output-format=<format> Specify output format\n"
-" -F --target=<target> Specify COFF target\n"
-" --preprocessor=<program> Program to use to preprocess rc file\n"
-" --include-dir=<dir> Include directory when preprocessing rc file\n"
-" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
-" -v --verbose Verbose - tells you what it's doing\n"
-" --language=<val> Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr ""
-
-#: windres.c:719
-msgid " --yydebug Turn on parser debugging\n"
-msgstr " --yydebug ´ò¿ª½âÎöÆ÷µ÷ÊÔ\n"
-
-#: windres.c:722
-msgid ""
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" -h --help ´òÓ¡±¾ÇóÖúÐÅÏ¢\n"
-" -V --version ´òÓ¡°æ±¾ÐÅÏ¢\n"
-
-#: windres.c:725
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr ""
-"FORMAT ÊÇ rc¡¢res »ò coff Ö®Ò»£¬ÔÚδָ¶¨Ê±¸ù¾ÝÎļþµÄÀ©Õ¹Ãû½øÐÐÅжϡ£\n"
-"µ¥¸öÎļþÃû±»ÈÏΪÊÇÊäÈëÎļþ¡£Ã»ÓÐÊäÈëÎļþʱ¾ÍʹÓñê×¼ÊäÈ룬ĬÈϸñʽ\n"
-"Ϊ rc¡£Ã»ÓÐÊä³öÎļþʱ¾ÍʹÓñê×¼Êä³ö£¬Ä¬ÈϸñʽΪ rc¡£\n"
-
-#: windres.c:988
-msgid "no resources"
-msgstr "ûÓÐ×ÊÔ´"
-
-#: wrstabs.c:366 wrstabs.c:2026
-#, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr "string_hash_lookup ʧ°Ü£º%s"
-
-#: wrstabs.c:666
-#, c-format
-msgid "stab_int_type: bad size %u"
-msgstr "stab_int_type£º´íÎó´óС %u"
-
-#: wrstabs.c:1466
-#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr "%s£º¾¯¸æ£º½á¹¹µÄ¡°%s¡±ÓòµÄ´óСδ֪"
diff --git a/binutils-2.17/binutils/po/zh_TW.gmo b/binutils-2.17/binutils/po/zh_TW.gmo
deleted file mode 100644
index b02a71ee..00000000
--- a/binutils-2.17/binutils/po/zh_TW.gmo
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/po/zh_TW.po b/binutils-2.17/binutils/po/zh_TW.po
deleted file mode 100644
index 0e02eed1..00000000
--- a/binutils-2.17/binutils/po/zh_TW.po
+++ /dev/null
@@ -1,5497 +0,0 @@
-# Traditional Chinese Messages for binutils
-# Copyright (C) 2003, 05 Free Software Foundation, Inc.
-# Wang Li <charles@linux.net.cn>, 2003
-# Wei-Lun Chao <chaoweilun@pcmail.com.tw>, 2005
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: binutils 2.15.96\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-03 21:03+1030\n"
-"PO-Revision-Date: 2005-06-02 09:05+0800\n"
-"Last-Translator: Wei-Lun Chao <chaoweilun@pcmail.com.tw>\n"
-"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-#: addr2line.c:73
-#, c-format
-msgid "Usage: %s [option(s)] [addr(s)]\n"
-msgstr "用法:%s [é¸é …] [ä½å€]\n"
-
-#: addr2line.c:74
-#, c-format
-msgid " Convert addresses into line number/file name pairs.\n"
-msgstr " å°‡ä½å€è½‰æ›æˆæª”案å/列號å°ã€‚\n"
-
-#: addr2line.c:75
-#, c-format
-msgid " If no addresses are specified on the command line, they will be read from stdin\n"
-msgstr " 如果沒有在命令列中指定ä½å€ï¼Œå°±å¾žæ¨™æº–輸入中讀å–它們\n"
-
-#: addr2line.c:76
-#, c-format
-msgid ""
-" The options are:\n"
-" -b --target=<bfdname> Set the binary file format\n"
-" -e --exe=<executable> Set the input file name (default is a.out)\n"
-" -s --basenames Strip directory names\n"
-" -f --functions Show function names\n"
-" -C --demangle[=style] Demangle function names\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" é¸é …為:\n"
-" -b --target=<bfdname> 設定二進制檔案格å¼\n"
-" -e --exe=<executable> 設定輸入檔案å (é è¨­ç‚º a.out)\n"
-" -s --basenames 去除目錄å\n"
-" -f --functions 顯示函數å\n"
-" -C --demangle[=style] 解碼函數å\n"
-" -h --help 顯示本資訊\n"
-" -v --version 顯示程åºçš„版本號\n"
-"\n"
-
-#: addr2line.c:88 ar.c:263 coffdump.c:467 nlmconv.c:1110 objcopy.c:478
-#: objcopy.c:512 readelf.c:2631 size.c:99 srconv.c:1731 strings.c:667
-#: sysdump.c:655 windres.c:672
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr "將 bug 報告到 %s\n"
-
-#: addr2line.c:241
-#, c-format
-msgid "%s: can not get addresses from archive"
-msgstr "%s:無法從ä¿å­˜æª”中得到ä½å€"
-
-#: addr2line.c:311 nm.c:1519 objdump.c:2848
-#, c-format
-msgid "unknown demangling style `%s'"
-msgstr "未知的解碼(demangle)風格「%sã€"
-
-#: ar.c:205
-#, c-format
-msgid "no entry %s in archive\n"
-msgstr "ä¿å­˜æª”中沒有æ¢ç›® %s\n"
-
-#: ar.c:221
-#, c-format
-msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...\n"
-msgstr "用法:%s [模擬é¸é …] [-]{dmpqrstx}[abcfilNoPsSuvV] [æˆå“¡å] [計數] ä¿å­˜æª” 文件...\n"
-
-#: ar.c:224
-#, c-format
-msgid " %s -M [<mri-script]\n"
-msgstr " %s -M [<mri-命令稿]\n"
-
-#: ar.c:225
-#, c-format
-msgid " commands:\n"
-msgstr " 命令:\n"
-
-#: ar.c:226
-#, c-format
-msgid " d - delete file(s) from the archive\n"
-msgstr " d - 從ä¿å­˜æª”中刪除檔案\n"
-
-#: ar.c:227
-#, c-format
-msgid " m[ab] - move file(s) in the archive\n"
-msgstr " m[ab] - 在ä¿å­˜æª”中移動檔案\n"
-
-#: ar.c:228
-#, c-format
-msgid " p - print file(s) found in the archive\n"
-msgstr " p - 列å°åœ¨ä¿å­˜æª”中找到的檔案\n"
-
-#: ar.c:229
-#, c-format
-msgid " q[f] - quick append file(s) to the archive\n"
-msgstr " q[f] - 將檔案快速追加到ä¿å­˜æª”中\n"
-
-#: ar.c:230
-#, c-format
-msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
-msgstr " r[ab][f][u] - 替æ›ä¿å­˜æª”中已有的檔案或加入新檔案\n"
-
-#: ar.c:231
-#, c-format
-msgid " t - display contents of archive\n"
-msgstr " t - 顯示ä¿å­˜æª”的內容\n"
-
-#: ar.c:232
-#, c-format
-msgid " x[o] - extract file(s) from the archive\n"
-msgstr " x[o] - 從ä¿å­˜æª”中分解檔案\n"
-
-#: ar.c:233
-#, c-format
-msgid " command specific modifiers:\n"
-msgstr " 特定命令修飾符:\n"
-
-#: ar.c:234
-#, c-format
-msgid " [a] - put file(s) after [member-name]\n"
-msgstr " [a] - 將檔案置於 [æˆå“¡å] 之後\n"
-
-#: ar.c:235
-#, c-format
-msgid " [b] - put file(s) before [member-name] (same as [i])\n"
-msgstr " [b] - 將檔案置於 [æˆå“¡å] ä¹‹å‰ (æ–¼ [i] 相åŒ)\n"
-
-#: ar.c:236
-#, c-format
-msgid " [N] - use instance [count] of name\n"
-msgstr " [N] - 使用å稱的實例 [數é‡]\n"
-
-#: ar.c:237
-#, c-format
-msgid " [f] - truncate inserted file names\n"
-msgstr " [f] - 截去æ’入的檔案å稱\n"
-
-#: ar.c:238
-#, c-format
-msgid " [P] - use full path names when matching\n"
-msgstr " [P] - 在匹é…時使用完整的路徑å\n"
-
-#: ar.c:239
-#, c-format
-msgid " [o] - preserve original dates\n"
-msgstr " [o] - ä¿ç•™åŽŸä¾†çš„日期\n"
-
-#: ar.c:240
-#, c-format
-msgid " [u] - only replace files that are newer than current archive contents\n"
-msgstr " [u] - åªæ›¿æ›æ¯”ç›®å‰ä¿å­˜æª”內容更新的檔案\n"
-
-#: ar.c:241
-#, c-format
-msgid " generic modifiers:\n"
-msgstr " 通用修飾符:\n"
-
-#: ar.c:242
-#, c-format
-msgid " [c] - do not warn if the library had to be created\n"
-msgstr " [c] - ä¸åœ¨å¿…須建立函å¼åº«çš„時候æ出警告\n"
-
-#: ar.c:243
-#, c-format
-msgid " [s] - create an archive index (cf. ranlib)\n"
-msgstr " [s] - 建立ä¿å­˜æª”索引 (cf. ranlib)\n"
-
-#: ar.c:244
-#, c-format
-msgid " [S] - do not build a symbol table\n"
-msgstr " [S] - ä¸è¦å»ºç«‹ç¬¦è™Ÿè¡¨\n"
-
-#: ar.c:245
-#, c-format
-msgid " [v] - be verbose\n"
-msgstr " [v] - 輸出較多資訊\n"
-
-#: ar.c:246
-#, c-format
-msgid " [V] - display the version number\n"
-msgstr " [V] - 顯示版本號\n"
-
-#: ar.c:253
-#, c-format
-msgid "Usage: %s [options] archive\n"
-msgstr "用法:%s [é¸é …] ä¿å­˜æª”\n"
-
-#: ar.c:254
-#, c-format
-msgid " Generate an index to speed access to archives\n"
-msgstr " 產生索引以加快å°ä¿å­˜æª”çš„å­˜å–\n"
-
-#: ar.c:255
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" é¸é …為:\n"
-" -h --help 列å°æœ¬æ±‚助資訊\n"
-" -V --version 列å°ç‰ˆæœ¬è³‡è¨Š\n"
-
-#: ar.c:483
-msgid "two different operation options specified"
-msgstr "指定了兩個ä¸åŒçš„æ“作é¸é …"
-
-#: ar.c:558
-#, c-format
-msgid "illegal option -- %c"
-msgstr "ä¸æ­£ç¢ºé¸é … -- %c"
-
-#: ar.c:604
-msgid "no operation specified"
-msgstr "沒有指定æ“作"
-
-#: ar.c:607
-msgid "`u' is only meaningful with the `r' option."
-msgstr "「uã€åªåœ¨ä½¿ç”¨ã€Œrã€é¸é …的時候æ‰æœ‰æ„義。"
-
-#: ar.c:615
-msgid "`N' is only meaningful with the `x' and `d' options."
-msgstr "「Nã€åªåœ¨ä½¿ç”¨ã€Œxã€å’Œã€Œdã€é¸é …的時候æ‰æœ‰æ„義。"
-
-#: ar.c:618
-msgid "Value for `N' must be positive."
-msgstr "「Nã€çš„值必須是正數。"
-
-#: ar.c:668
-#, c-format
-msgid "internal error -- this option not implemented"
-msgstr "內部錯誤 -- 該é¸é …尚未實ç¾"
-
-#: ar.c:737
-#, c-format
-msgid "creating %s"
-msgstr "正在建立 %s"
-
-#: ar.c:786 ar.c:836 ar.c:1154 objcopy.c:1603
-#, c-format
-msgid "internal stat error on %s"
-msgstr "在 %s 內部狀態錯誤"
-
-#: ar.c:790
-#, c-format
-msgid ""
-"\n"
-"<%s>\n"
-"\n"
-msgstr ""
-"\n"
-"<%s>\n"
-"\n"
-
-#: ar.c:806 ar.c:873
-#, c-format
-msgid "%s is not a valid archive"
-msgstr "%s ä¸æ˜¯æœ‰æ•ˆçš„ä¿å­˜æª”"
-
-#: ar.c:841
-#, c-format
-msgid "stat returns negative size for %s"
-msgstr "stat 回傳 %s 的大å°ç‚ºè² æ•¸"
-
-#: ar.c:1059
-#, c-format
-msgid "No member named `%s'\n"
-msgstr "沒有å為「%sã€çš„æˆå“¡\n"
-
-#: ar.c:1109
-#, c-format
-msgid "no entry %s in archive %s!"
-msgstr "ä¿å­˜æª” %2$s 中沒有æ¢ç›® %1$sï¼"
-
-#: ar.c:1246
-#, c-format
-msgid "%s: no archive map to update"
-msgstr "%s:沒有è¦æ›´æ–°çš„ä¿å­˜æª”映射"
-
-#: arsup.c:83
-#, c-format
-msgid "No entry %s in archive.\n"
-msgstr "ä¿å­˜æª”中沒有æ¢ç›® %s。\n"
-
-#: arsup.c:109
-#, c-format
-msgid "Can't open file %s\n"
-msgstr "無法打開檔案 %s\n"
-
-#: arsup.c:162
-#, c-format
-msgid "%s: Can't open output archive %s\n"
-msgstr "%s:無法打開輸出ä¿å­˜æª” %s\n"
-
-#: arsup.c:179
-#, c-format
-msgid "%s: Can't open input archive %s\n"
-msgstr "%s:無法打開輸入ä¿å­˜æª” %s\n"
-
-#: arsup.c:188
-#, c-format
-msgid "%s: file %s is not an archive\n"
-msgstr "%s:檔案 %s ä¸æ˜¯ä¿å­˜æª”\n"
-
-#: arsup.c:227
-#, c-format
-msgid "%s: no output archive specified yet\n"
-msgstr "%s:尚未指定輸出ä¿å­˜æª”\n"
-
-#: arsup.c:247 arsup.c:285 arsup.c:327 arsup.c:347 arsup.c:413
-#, c-format
-msgid "%s: no open output archive\n"
-msgstr "%s:未打開輸出ä¿å­˜æª”\n"
-
-#: arsup.c:258 arsup.c:368 arsup.c:394
-#, c-format
-msgid "%s: can't open file %s\n"
-msgstr "%s:無法打開檔案 %s\n"
-
-#: arsup.c:312 arsup.c:390 arsup.c:471
-#, c-format
-msgid "%s: can't find module file %s\n"
-msgstr "%s:無法找到模組檔案 %s\n"
-
-#: arsup.c:422
-#, c-format
-msgid "Current open archive is %s\n"
-msgstr "ç›®å‰æ‰“é–‹çš„ä¿å­˜æª”是 %s\n"
-
-#: arsup.c:446
-#, c-format
-msgid "%s: no open archive\n"
-msgstr "%s:未打開ä¿å­˜æª”\n"
-
-#: binemul.c:37
-#, c-format
-msgid " No emulation specific options\n"
-msgstr " 沒有模擬特有的é¸é …\n"
-
-#. Macros for common output.
-#: binemul.h:42
-#, c-format
-msgid " emulation options: \n"
-msgstr " 模擬é¸é …:\n"
-
-#: bucomm.c:109
-#, c-format
-msgid "can't set BFD default target to `%s': %s"
-msgstr "無法將 BFD é è¨­æ¨™çš„設置為「%sã€ï¼š%s"
-
-#: bucomm.c:120
-#, c-format
-msgid "%s: Matching formats:"
-msgstr "%s:匹é…æ ¼å¼ï¼š"
-
-#: bucomm.c:135
-#, c-format
-msgid "Supported targets:"
-msgstr "支æ´çš„目標:"
-
-#: bucomm.c:137
-#, c-format
-msgid "%s: supported targets:"
-msgstr "%s:支æ´çš„目標:"
-
-#: bucomm.c:153
-#, c-format
-msgid "Supported architectures:"
-msgstr "支æ´çš„系統架構:"
-
-#: bucomm.c:155
-#, c-format
-msgid "%s: supported architectures:"
-msgstr "%s:支æ´çš„系統架構:"
-
-#: bucomm.c:348
-#, c-format
-msgid "BFD header file version %s\n"
-msgstr "BFD 標頭檔案版本 %s\n"
-
-#: bucomm.c:449
-#, c-format
-msgid "%s: bad number: %s"
-msgstr "%s:錯誤的編號:%s"
-
-#: bucomm.c:466 strings.c:386
-#, c-format
-msgid "'%s': No such file"
-msgstr "%s:無此檔案"
-
-#: bucomm.c:468 strings.c:388
-#, c-format
-msgid "Warning: could not locate '%s'. reason: %s"
-msgstr "警告:無法找到 %s çš„ä½ç½®ã€‚原因:%s"
-
-#: bucomm.c:472
-#, c-format
-msgid "Warning: '%s' is not an ordinary file"
-msgstr "警告:'%s' ä¸æ˜¯ä¸€èˆ¬æª”案"
-
-#: coffdump.c:105
-#, c-format
-msgid "#lines %d "
-msgstr "#列號 %d "
-
-#: coffdump.c:459 sysdump.c:648
-#, c-format
-msgid "Usage: %s [option(s)] in-file\n"
-msgstr "用法:%s [é¸é …] 輸入檔案\n"
-
-#: coffdump.c:460
-#, c-format
-msgid " Print a human readable interpretation of a SYSROFF object file\n"
-msgstr " 列å°é©æ–¼é–±è®€çš„å° SYSROFF 目標檔案的解釋\n"
-
-#: coffdump.c:461
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" é¸é …為:\n"
-" -h --help 顯示本求助資訊\n"
-" -v --version 顯示程åºçš„版本號\n"
-"\n"
-
-#: coffdump.c:527 srconv.c:1819 sysdump.c:710
-msgid "no input file specified"
-msgstr "未指定輸入檔案"
-
-#: debug.c:648
-msgid "debug_add_to_current_namespace: no current file"
-msgstr "debug_add_to_current_namespace:沒有目å‰æª”案"
-
-#: debug.c:727
-msgid "debug_start_source: no debug_set_filename call"
-msgstr "debug_start_source:沒有 debug_set_filename 呼å«"
-
-#: debug.c:783
-msgid "debug_record_function: no debug_set_filename call"
-msgstr "debug_record_function:沒有 debug_set_filename 呼å«"
-
-#: debug.c:835
-msgid "debug_record_parameter: no current function"
-msgstr "debug_record_parameter:沒有目å‰å‡½æ•¸"
-
-#: debug.c:867
-msgid "debug_end_function: no current function"
-msgstr "debug_end_function:沒有目å‰å‡½æ•¸"
-
-#: debug.c:873
-msgid "debug_end_function: some blocks were not closed"
-msgstr "debug_end_function:æŸäº›å€å¡Šæ²’有關閉"
-
-#: debug.c:901
-msgid "debug_start_block: no current block"
-msgstr "debug_start_block:沒有目å‰å€å¡Š"
-
-#: debug.c:937
-msgid "debug_end_block: no current block"
-msgstr "debug_end_block:沒有目å‰å€å¡Š"
-
-#: debug.c:944
-msgid "debug_end_block: attempt to close top level block"
-msgstr "debug_end_block:試圖關閉頂層å€å¡Š"
-
-#: debug.c:967
-msgid "debug_record_line: no current unit"
-msgstr "debug_record_line:沒有目å‰å–®å…ƒ"
-
-#. FIXME
-#: debug.c:1020
-msgid "debug_start_common_block: not implemented"
-msgstr "debug_start_common_block:未實作"
-
-#. FIXME
-#: debug.c:1031
-msgid "debug_end_common_block: not implemented"
-msgstr "debug_end_common_block:未實作"
-
-#. FIXME.
-#: debug.c:1115
-msgid "debug_record_label: not implemented"
-msgstr "debug_record_label:未實作"
-
-#: debug.c:1137
-msgid "debug_record_variable: no current file"
-msgstr "debug_record_variable:沒有目å‰æª”案"
-
-#: debug.c:1665
-msgid "debug_make_undefined_type: unsupported kind"
-msgstr "debug_make_undefined_type:ä¸æ”¯æ´çš„種類"
-
-#: debug.c:1842
-msgid "debug_name_type: no current file"
-msgstr "debug_name_type:沒有目å‰æª”案"
-
-#: debug.c:1887
-msgid "debug_tag_type: no current file"
-msgstr "debug_tag_type:沒有目å‰æª”案"
-
-#: debug.c:1895
-msgid "debug_tag_type: extra tag attempted"
-msgstr "debug_tag_type:已嘗試更多的標記"
-
-#: debug.c:1932
-#, c-format
-msgid "Warning: changing type size from %d to %d\n"
-msgstr "警告:類型大å°ç”± %d 改為 %d\n"
-
-#: debug.c:1954
-msgid "debug_find_named_type: no current compilation unit"
-msgstr "debug_find_named_type:沒有目å‰ç·¨è­¯å–®å…ƒ"
-
-#: debug.c:2057
-#, c-format
-msgid "debug_get_real_type: circular debug information for %s\n"
-msgstr "debug_get_real_type:關於 %s 的循環除錯資訊\n"
-
-#: debug.c:2484
-msgid "debug_write_type: illegal type encountered"
-msgstr "debug_write_type:é‡åˆ°ä¸æ­£ç¢ºé¡žåž‹"
-
-#: dlltool.c:773 dlltool.c:797 dlltool.c:826
-#, c-format
-msgid "Internal error: Unknown machine type: %d"
-msgstr "內部錯誤:未知的機器類型:%d"
-
-#: dlltool.c:862
-#, c-format
-msgid "Can't open def file: %s"
-msgstr "無法打開 def 檔案:%s"
-
-#: dlltool.c:867
-#, c-format
-msgid "Processing def file: %s"
-msgstr "è™•ç† def 檔案:%s"
-
-#: dlltool.c:871
-msgid "Processed def file"
-msgstr "已處ç†çš„ def 檔案"
-
-#: dlltool.c:895
-#, c-format
-msgid "Syntax error in def file %s:%d"
-msgstr "def 檔案中語法錯誤 %s:%d"
-
-#: dlltool.c:930
-#, c-format
-msgid "%s: Path components stripped from image name, '%s'."
-msgstr "%s:從映åƒæª” '%s' 中截去路徑æˆåˆ†ã€‚"
-
-#: dlltool.c:939
-#, c-format
-msgid "NAME: %s base: %x"
-msgstr "å稱:%s 基於:%x"
-
-#: dlltool.c:942 dlltool.c:958
-msgid "Can't have LIBRARY and NAME"
-msgstr "ä¸å…·æœ‰ LIBRARY 與 NAME"
-
-#: dlltool.c:955
-#, c-format
-msgid "LIBRARY: %s base: %x"
-msgstr "LIBRARY:%s 基於:%x"
-
-#: dlltool.c:1191 resrc.c:269
-#, c-format
-msgid "wait: %s"
-msgstr "等待:%s"
-
-#: dlltool.c:1196 dllwrap.c:418 resrc.c:274
-#, c-format
-msgid "subprocess got fatal signal %d"
-msgstr "å­è¡Œç¨‹æ”¶åˆ°è‡´å‘½ä¿¡è™Ÿ %d"
-
-#: dlltool.c:1202 dllwrap.c:425 resrc.c:281
-#, c-format
-msgid "%s exited with status %d"
-msgstr "%s 以狀態 %d 離開"
-
-#: dlltool.c:1233
-#, c-format
-msgid "Sucking in info from %s section in %s"
-msgstr "從 %2$s 中的 %1$s å€æ®µç²å–資訊"
-
-#: dlltool.c:1358
-#, c-format
-msgid "Excluding symbol: %s"
-msgstr "排除符號:%s"
-
-#: dlltool.c:1447 dlltool.c:1458 nm.c:998 nm.c:1009
-#, c-format
-msgid "%s: no symbols"
-msgstr "%s:沒有符號"
-
-#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1484
-#, c-format
-msgid "Done reading %s"
-msgstr "讀入 %s 完æˆ"
-
-#: dlltool.c:1494
-#, c-format
-msgid "Unable to open object file: %s"
-msgstr "無法打開目標檔案:%s"
-
-#: dlltool.c:1497
-#, c-format
-msgid "Scanning object file %s"
-msgstr "正在掃瞄目標檔案 %s"
-
-#: dlltool.c:1512
-#, c-format
-msgid "Cannot produce mcore-elf dll from archive file: %s"
-msgstr "無法從ä¿å­˜æª”中產生 mcore-elf 動態連接庫:%s"
-
-#: dlltool.c:1598
-msgid "Adding exports to output file"
-msgstr "正在加入導出至輸出檔案"
-
-#: dlltool.c:1646
-msgid "Added exports to output file"
-msgstr "已加入導出至輸出檔案"
-
-#: dlltool.c:1767
-#, c-format
-msgid "Generating export file: %s"
-msgstr "正在產生導出檔案:%s"
-
-#: dlltool.c:1772
-#, c-format
-msgid "Unable to open temporary assembler file: %s"
-msgstr "無法打開臨時組譯檔案:%s"
-
-#: dlltool.c:1775
-#, c-format
-msgid "Opened temporary file: %s"
-msgstr "已打開的臨時檔案:%s"
-
-#: dlltool.c:1997
-msgid "Generated exports file"
-msgstr "已產生的導出檔案"
-
-#: dlltool.c:2203
-#, c-format
-msgid "bfd_open failed open stub file: %s"
-msgstr "無法打開輸出檔案 %s"
-
-#: dlltool.c:2206
-#, c-format
-msgid "Creating stub file: %s"
-msgstr "正在建立佔ä½æª”案:%s"
-
-#: dlltool.c:2588
-#, c-format
-msgid "failed to open temporary head file: %s"
-msgstr "打開臨時標頭檔案失敗:%s"
-
-#: dlltool.c:2647
-#, c-format
-msgid "failed to open temporary tail file: %s"
-msgstr "打開臨時標尾檔案失敗:%s"
-
-#: dlltool.c:2714
-#, c-format
-msgid "Can't open .lib file: %s"
-msgstr "無法打開 .lib 檔案:%s"
-
-#: dlltool.c:2717
-#, c-format
-msgid "Creating library file: %s"
-msgstr "正在建立函å¼åº«æª”案:%s"
-
-#: dlltool.c:2800 dlltool.c:2806
-#, c-format
-msgid "cannot delete %s: %s"
-msgstr "無法刪除 %s:%s"
-
-#: dlltool.c:2811
-msgid "Created lib file"
-msgstr "已建立的 lib 檔案"
-
-#: dlltool.c:2904
-#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
-msgstr "警告,正在忽略é‡è¦†çš„ EXPORT %s %d,%d"
-
-#: dlltool.c:2910
-#, c-format
-msgid "Error, duplicate EXPORT with oridinals: %s"
-msgstr "錯誤,é‡è¦†çš„ EXPORT 以åŠåŽŸå§‹å‡ºè™•: %s"
-
-#: dlltool.c:3026
-msgid "Processing definitions"
-msgstr "正在處ç†å®šç¾©"
-
-#: dlltool.c:3058
-msgid "Processed definitions"
-msgstr "已處ç†å®šç¾©"
-
-#. xgetext:c-format
-#: dlltool.c:3065 dllwrap.c:479
-#, c-format
-msgid "Usage %s <option(s)> <object-file(s)>\n"
-msgstr "用法: %s <é¸é …> <目標檔案>\n"
-
-#. xgetext:c-format
-#: dlltool.c:3067
-#, c-format
-msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
-msgstr " -m --machine <架構> 為 <架構> 建立 DLL。[é è¨­ï¼š%s]\n"
-
-#: dlltool.c:3068
-#, c-format
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-msgstr " å¯èƒ½çš„ <架構>:arm[_interwork]ã€i386ã€mcore[-elf]{-le|-be}ã€ppcã€thumb\n"
-
-#: dlltool.c:3069
-#, c-format
-msgid " -e --output-exp <outname> Generate an export file.\n"
-msgstr " -e --output-exp <導出檔> 產生導出檔案。\n"
-
-#: dlltool.c:3070
-#, c-format
-msgid " -l --output-lib <outname> Generate an interface library.\n"
-msgstr " -l --output-lib <導出檔> 產生介é¢å‡½å¼åº«ã€‚\n"
-
-#: dlltool.c:3071
-#, c-format
-msgid " -a --add-indirect Add dll indirects to export file.\n"
-msgstr " -a --add-indirect 間接添加 dll 至導出檔案。\n"
-
-#: dlltool.c:3072
-#, c-format
-msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
-msgstr " -D --dllname <å稱> è¦ç½®å…¥ä»‹é¢å‡½å¼åº«çš„輸入 dll å稱。\n"
-
-#: dlltool.c:3073
-#, c-format
-msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
-msgstr " -d --input-def <定義檔> å°‡è¦è®€å…¥çš„ .def 檔案å。\n"
-
-#: dlltool.c:3074
-#, c-format
-msgid " -z --output-def <deffile> Name of .def file to be created.\n"
-msgstr " -z --output-def <定義檔> å°‡è¦å»ºç«‹çš„ .def 檔案å。\n"
-
-#: dlltool.c:3075
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols 將所有符號導出到 .def\n"
-
-#: dlltool.c:3076
-#, c-format
-msgid " --no-export-all-symbols Only export listed symbols\n"
-msgstr " --no-export-all-symbols åªå°Žå‡ºåˆ—舉的符號\n"
-
-#: dlltool.c:3077
-#, c-format
-msgid " --exclude-symbols <list> Don't export <list>\n"
-msgstr " --exclude-symbols <列表> ä¸è¦å°Žå‡º <列表>\n"
-
-#: dlltool.c:3078
-#, c-format
-msgid " --no-default-excludes Clear default exclude symbols\n"
-msgstr " --no-default-excludes 清空é è¨­æŽ’除的符號\n"
-
-#: dlltool.c:3079
-#, c-format
-msgid " -b --base-file <basefile> Read linker generated base file.\n"
-msgstr " -b --base-file <基本檔> 讀å–連接程å¼æ‰€ç”¢ç”Ÿçš„ base 檔案。\n"
-
-#: dlltool.c:3080
-#, c-format
-msgid " -x --no-idata4 Don't generate idata$4 section.\n"
-msgstr " -x --no-idata4 ä¸ç”¢ç”Ÿ idata$4 å€æ®µã€‚\n"
-
-#: dlltool.c:3081
-#, c-format
-msgid " -c --no-idata5 Don't generate idata$5 section.\n"
-msgstr " -c --no-idata5 ä¸ç”¢ç”Ÿ idata$5 å€æ®µã€‚\n"
-
-#: dlltool.c:3082
-#, c-format
-msgid " -U --add-underscore Add underscores to symbols in interface library.\n"
-msgstr " -U --add-underscore 於介é¢ä¸­çš„符號添加底線。\n"
-
-#: dlltool.c:3083
-#, c-format
-msgid " -k --kill-at Kill @<n> from exported names.\n"
-msgstr " -k --kill-at 刪去導出å稱中的 @<n>。\n"
-
-#: dlltool.c:3084
-#, c-format
-msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
-msgstr " -A --add-stdcall-alias 添加ä¸å¸¶ @<n> 的別å。\n"
-
-#: dlltool.c:3085
-#, c-format
-msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
-msgstr " -p --ext-prefix-alias <å‰ç½®> 添加附帶 <å‰ç½®> 的別å。\n"
-
-#: dlltool.c:3086
-#, c-format
-msgid " -S --as <name> Use <name> for assembler.\n"
-msgstr " -S --as <å稱> 用 <å稱> åšç‚ºçµ„譯程å¼ã€‚\n"
-
-#: dlltool.c:3087
-#, c-format
-msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
-msgstr " -f --as-flags <旗標> 把 <旗標> 傳éžçµ¦çµ„譯程å¼ã€‚\n"
-
-#: dlltool.c:3088
-#, c-format
-msgid " -C --compat-implib Create backward compatible import library.\n"
-msgstr " -C --compat-implib 建立å‘後相容的導入函å¼åº«ã€‚\n"
-
-#: dlltool.c:3089
-#, c-format
-msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
-msgstr " -n --no-delete ä¿ç•™è‡¨æ™‚檔案 (é‡è¦†ä»¥é”到é¡å¤–çš„ä¿ç•™)。\n"
-
-#: dlltool.c:3090
-#, c-format
-msgid " -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
-msgstr " -t --temp-prefix <å‰ç½®> 使用 <å‰ç½®> 來建構臨時檔案å稱。\n"
-
-#: dlltool.c:3091
-#, c-format
-msgid " -v --verbose Be verbose.\n"
-msgstr " -v --verbose 輸出更多資訊。\n"
-
-#: dlltool.c:3092
-#, c-format
-msgid " -V --version Display the program version.\n"
-msgstr " -V --version 顯示程å¼ç‰ˆæœ¬è™Ÿç¢¼ã€‚\n"
-
-#: dlltool.c:3093
-#, c-format
-msgid " -h --help Display this information.\n"
-msgstr " -h --help 顯示本資訊。\n"
-
-#: dlltool.c:3095
-#, c-format
-msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
-msgstr " -M --mcore-elf <輸出å稱> è™•ç† mcore-elf 物件檔案進入 <輸出å稱>。\n"
-
-#: dlltool.c:3096
-#, c-format
-msgid " -L --linker <name> Use <name> as the linker.\n"
-msgstr " -L --linker <å稱> 以 <å稱> åšç‚ºé€£æŽ¥ç¨‹å¼ã€‚\n"
-
-#: dlltool.c:3097
-#, c-format
-msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
-msgstr " -F --linker-flags <旗標> 把 <旗標> 傳éžçµ¦é€£æŽ¥ç¨‹å¼ã€‚\n"
-
-#: dlltool.c:3211
-#, c-format
-msgid "Path components stripped from dllname, '%s'."
-msgstr "已從 dll å稱 '%s' 中截去路徑部分。"
-
-#: dlltool.c:3256
-#, c-format
-msgid "Unable to open base-file: %s"
-msgstr "無法開啟基本檔案:%s"
-
-#: dlltool.c:3288
-#, c-format
-msgid "Machine '%s' not supported"
-msgstr "ä¸æ”¯æ´æž¶æ§‹ã€Œ%sã€"
-
-#: dlltool.c:3392 dllwrap.c:209
-#, c-format
-msgid "Tried file: %s"
-msgstr "已試檔案:%s"
-
-#: dlltool.c:3399 dllwrap.c:216
-#, c-format
-msgid "Using file: %s"
-msgstr "正在處ç†æª”案:%s"
-
-#: dllwrap.c:299
-#, c-format
-msgid "Keeping temporary base file %s"
-msgstr "ä¿ç•™è‡¨æ™‚ base 檔案 %s"
-
-#: dllwrap.c:301
-#, c-format
-msgid "Deleting temporary base file %s"
-msgstr "刪除臨時 base 檔案 %s"
-
-#: dllwrap.c:315
-#, c-format
-msgid "Keeping temporary exp file %s"
-msgstr "ä¿ç•™è‡¨æ™‚ exp 檔案 %s"
-
-#: dllwrap.c:317
-#, c-format
-msgid "Deleting temporary exp file %s"
-msgstr "刪除臨時 exp 檔案 %s"
-
-#: dllwrap.c:330
-#, c-format
-msgid "Keeping temporary def file %s"
-msgstr "ä¿ç•™è‡¨æ™‚ def 檔案 %s"
-
-#: dllwrap.c:332
-#, c-format
-msgid "Deleting temporary def file %s"
-msgstr "刪除臨時 def 檔案 %s"
-
-#: dllwrap.c:480
-#, c-format
-msgid " Generic options:\n"
-msgstr " 通用é¸é …:\n"
-
-#: dllwrap.c:481
-#, c-format
-msgid " --quiet, -q Work quietly\n"
-msgstr " --quiet, -q 安éœåœ°å·¥ä½œ\n"
-
-#: dllwrap.c:482
-#, c-format
-msgid " --verbose, -v Verbose\n"
-msgstr " --verbose, -v 輸出較多資訊\n"
-
-#: dllwrap.c:483
-#, c-format
-msgid " --version Print dllwrap version\n"
-msgstr " --version åˆ—å° dllwrap 的版本號\n"
-
-#: dllwrap.c:484
-#, c-format
-msgid " --implib <outname> Synonym for --output-lib\n"
-msgstr " --implib <outname> --output-lib çš„åŒç¾©èªž\n"
-
-#: dllwrap.c:485
-#, c-format
-msgid " Options for %s:\n"
-msgstr " %s çš„é¸é …:\n"
-
-#: dllwrap.c:486
-#, c-format
-msgid " --driver-name <driver> Defaults to \"gcc\"\n"
-msgstr " --driver-name <驅動器> é è¨­ç‚ºã€Œgccã€\n"
-
-#: dllwrap.c:487
-#, c-format
-msgid " --driver-flags <flags> Override default ld flags\n"
-msgstr " --driver-flags <旗標> 覆蓋é è¨­çš„ ld 旗標\n"
-
-#: dllwrap.c:488
-#, c-format
-msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
-msgstr " --dlltool-name <dlltool> é è¨­ç‚ºã€Œdlltoolã€\n"
-
-#: dllwrap.c:489
-#, c-format
-msgid " --entry <entry> Specify alternate DLL entry point\n"
-msgstr " --entry <å…¥å£> 指定é¡å¤–çš„ DLL 進入點\n"
-
-#: dllwrap.c:490
-#, c-format
-msgid " --image-base <base> Specify image base address\n"
-msgstr " --image-base <基å€> 指定映åƒçš„基本ä½å€\n"
-
-#: dllwrap.c:491
-#, c-format
-msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
-msgstr " --target <架構> i386-cygwin32 或 i386-mingw32\n"
-
-#: dllwrap.c:492
-#, c-format
-msgid " --dry-run Show what needs to be run\n"
-msgstr " --dry-run åªé¡¯ç¤ºéœ€è¦åŸ·è¡Œé‚£äº›å‹•ä½œ\n"
-
-#: dllwrap.c:493
-#, c-format
-msgid " --mno-cygwin Create Mingw DLL\n"
-msgstr " --mno-cygwin 建立 Mingw DLL\n"
-
-#: dllwrap.c:494
-#, c-format
-msgid " Options passed to DLLTOOL:\n"
-msgstr " 傳éžçµ¦ DLLTOOL çš„é¸é …:\n"
-
-#: dllwrap.c:495
-#, c-format
-msgid " --machine <machine>\n"
-msgstr " --machine <架構>\n"
-
-#: dllwrap.c:496
-#, c-format
-msgid " --output-exp <outname> Generate export file.\n"
-msgstr " --output-exp <導出å> 產生導出檔案。\n"
-
-#: dllwrap.c:497
-#, c-format
-msgid " --output-lib <outname> Generate input library.\n"
-msgstr " --output-lib <導出å> 產生輸入函å¼åº«ã€‚\n"
-
-#: dllwrap.c:498
-#, c-format
-msgid " --add-indirect Add dll indirects to export file.\n"
-msgstr " --add-indirect 間接添加 dll 至導出檔案。\n"
-
-#: dllwrap.c:499
-#, c-format
-msgid " --dllname <name> Name of input dll to put into output lib.\n"
-msgstr " --dllname <å稱> è¦ç½®å…¥è¼¸å‡ºå‡½å¼åº«çš„輸入 dll å稱。\n"
-
-#: dllwrap.c:500
-#, c-format
-msgid " --def <deffile> Name input .def file\n"
-msgstr " --def <deffile> 輸入 .def 檔案的å稱\n"
-
-#: dllwrap.c:501
-#, c-format
-msgid " --output-def <deffile> Name output .def file\n"
-msgstr " --output-def <deffile> 輸出 .def 檔案的å稱\n"
-
-#: dllwrap.c:502
-#, c-format
-msgid " --export-all-symbols Export all symbols to .def\n"
-msgstr " --export-all-symbols 將所有符號導出到 .def 中\n"
-
-#: dllwrap.c:503
-#, c-format
-msgid " --no-export-all-symbols Only export .drectve symbols\n"
-msgstr " --no-export-all-symbols åªå°Žå‡ºç¬¦è™Ÿ .drectve\n"
-
-#: dllwrap.c:504
-#, c-format
-msgid " --exclude-symbols <list> Exclude <list> from .def\n"
-msgstr " --exclude-symbols <列表> 從 .def 中排除 <列表>\n"
-
-#: dllwrap.c:505
-#, c-format
-msgid " --no-default-excludes Zap default exclude symbols\n"
-msgstr " --no-default-excludes 清空é è¨­æŽ’除的符號\n"
-
-#: dllwrap.c:506
-#, c-format
-msgid " --base-file <basefile> Read linker generated base file\n"
-msgstr " --base-file <basefile> Read linker generated base file\n"
-
-#: dllwrap.c:507
-#, c-format
-msgid " --no-idata4 Don't generate idata$4 section\n"
-msgstr " --no-idata4 ä¸ç”¢ç”Ÿ idata$4 å€æ®µ\n"
-
-#: dllwrap.c:508
-#, c-format
-msgid " --no-idata5 Don't generate idata$5 section\n"
-msgstr " --no-idata5 ä¸ç”¢ç”Ÿ idata$5 å€æ®µ\n"
-
-#: dllwrap.c:509
-#, c-format
-msgid " -U Add underscores to .lib\n"
-msgstr " -U 為 .lib 添加底線\n"
-
-#: dllwrap.c:510
-#, c-format
-msgid " -k Kill @<n> from exported names\n"
-msgstr " -k 刪去導出å字中的 @<n>\n"
-
-#: dllwrap.c:511
-#, c-format
-msgid " --add-stdcall-alias Add aliases without @<n>\n"
-msgstr " --add-stdcall-alias 添加ä¸å¸¶ @<n> 的別å\n"
-
-#: dllwrap.c:512
-#, c-format
-msgid " --as <name> Use <name> for assembler\n"
-msgstr " --as <å稱> 以 <å稱> åšç‚ºçµ„譯程å¼\n"
-
-#: dllwrap.c:513
-#, c-format
-msgid " --nodelete Keep temp files.\n"
-msgstr " --nodelete ä¿ç•™è‡¨æ™‚檔案。\n"
-
-#: dllwrap.c:514
-#, c-format
-msgid " Rest are passed unmodified to the language driver\n"
-msgstr " 其餘的都ä¸åŠ ä»»ä½•ä¿®æ”¹åœ°å‚³éžçµ¦èªžè¨€é©…動器\n"
-
-#: dllwrap.c:784
-msgid "Must provide at least one of -o or --dllname options"
-msgstr "å¿…é ˆæ供至少一個 -o 或 --dllname é¸é …"
-
-#: dllwrap.c:813
-msgid ""
-"no export definition file provided.\n"
-"Creating one, but that may not be what you want"
-msgstr ""
-"未æ供導出定義檔案。\n"
-"ç¾åœ¨å»ºç«‹ä¸€å€‹ï¼Œä½†å¯èƒ½ä¸æ˜¯æ‚¨æ‰€è¦çš„"
-
-#: dllwrap.c:972
-#, c-format
-msgid "DLLTOOL name : %s\n"
-msgstr "DLLTOOL å稱 :%s\n"
-
-#: dllwrap.c:973
-#, c-format
-msgid "DLLTOOL options : %s\n"
-msgstr "DLLTOOL é¸é … :%s\n"
-
-#: dllwrap.c:974
-#, c-format
-msgid "DRIVER name : %s\n"
-msgstr "驅動器å稱 :%s\n"
-
-#: dllwrap.c:975
-#, c-format
-msgid "DRIVER options : %s\n"
-msgstr "驅動器é¸é … :%s\n"
-
-#: emul_aix.c:51
-#, c-format
-msgid " [-g] - 32 bit small archive\n"
-msgstr " [-g] - 32 ä½å…ƒå°åž‹ä¿å­˜æª”\n"
-
-#: emul_aix.c:52
-#, c-format
-msgid " [-X32] - ignores 64 bit objects\n"
-msgstr " [-X32] - 忽略 64 ä½å…ƒç‰©ä»¶\n"
-
-#: emul_aix.c:53
-#, c-format
-msgid " [-X64] - ignores 32 bit objects\n"
-msgstr " [-X64] - 忽略 32 ä½å…ƒç‰©ä»¶\n"
-
-#: emul_aix.c:54
-#, c-format
-msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
-msgstr " [-X32_64] - æŽ¥å— 32 ä½å…ƒå’Œ 64 ä½å…ƒç‰©ä»¶\n"
-
-#: ieee.c:311
-msgid "unexpected end of debugging information"
-msgstr "除錯資訊æ„外çµæŸ"
-
-#: ieee.c:398
-msgid "invalid number"
-msgstr "無效的編號"
-
-#: ieee.c:451
-msgid "invalid string length"
-msgstr "無效的字串長度"
-
-#: ieee.c:506 ieee.c:547
-msgid "expression stack overflow"
-msgstr "表示å¼å †ç–Šå‘上溢出"
-
-#: ieee.c:526
-msgid "unsupported IEEE expression operator"
-msgstr "ä¸æ”¯æ´çš„ IEEE 表示å¼é‹ç®—å­"
-
-#: ieee.c:541
-msgid "unknown section"
-msgstr "未知的å€æ®µ"
-
-#: ieee.c:562
-msgid "expression stack underflow"
-msgstr "表示å¼å †ç–Šå‘下溢出"
-
-#: ieee.c:576
-msgid "expression stack mismatch"
-msgstr "表示å¼å †ç–Šä¸åŒ¹é…"
-
-#: ieee.c:613
-msgid "unknown builtin type"
-msgstr "未知的內建類型"
-
-#: ieee.c:758
-msgid "BCD float type not supported"
-msgstr "ä¸æ”¯æ´çš„ BCD 浮點類型"
-
-#: ieee.c:895
-msgid "unexpected number"
-msgstr "æ„外的編號"
-
-#: ieee.c:902
-msgid "unexpected record type"
-msgstr "æ„外的紀錄類型"
-
-#: ieee.c:935
-msgid "blocks left on stack at end"
-msgstr "çµæŸæ™‚ä»ç•™åœ¨å †ç–Šä¸­çš„å€å¡Š"
-
-#: ieee.c:1198
-msgid "unknown BB type"
-msgstr "未知的 BB 類型"
-
-#: ieee.c:1207
-msgid "stack overflow"
-msgstr "堆疊å‘上溢出"
-
-#: ieee.c:1230
-msgid "stack underflow"
-msgstr "堆疊å‘下溢出"
-
-#: ieee.c:1342 ieee.c:1412 ieee.c:2109
-msgid "illegal variable index"
-msgstr "ä¸æ­£ç¢ºçš„變數索引"
-
-#: ieee.c:1390
-msgid "illegal type index"
-msgstr "ä¸æ­£ç¢ºçš„類型索引"
-
-#: ieee.c:1400 ieee.c:1437
-msgid "unknown TY code"
-msgstr "未知的 TY 代碼"
-
-#: ieee.c:1419
-msgid "undefined variable in TY"
-msgstr "TY 中未定義的變é‡"
-
-#. Pascal file name. FIXME.
-#: ieee.c:1830
-msgid "Pascal file name not supported"
-msgstr "ä¸æ”¯æ´ Pascal 檔案å"
-
-#: ieee.c:1878
-msgid "unsupported qualifier"
-msgstr "ä¸æ”¯æ´çš„é™å®šç¬¦è™Ÿ"
-
-#: ieee.c:2147
-msgid "undefined variable in ATN"
-msgstr "ATN 中未定義的變數"
-
-#: ieee.c:2190
-msgid "unknown ATN type"
-msgstr "未知的 ATN 類型"
-
-#. Reserved for FORTRAN common.
-#: ieee.c:2312
-msgid "unsupported ATN11"
-msgstr "ä¸æ”¯æ´ ATN11"
-
-#. We have no way to record this information. FIXME.
-#: ieee.c:2339
-msgid "unsupported ATN12"
-msgstr "ä¸æ”¯æ´ ATN12"
-
-#: ieee.c:2399
-msgid "unexpected string in C++ misc"
-msgstr "æ„外的 C++ 雜項字串"
-
-#: ieee.c:2412
-msgid "bad misc record"
-msgstr "ä¸è‰¯çš„雜項記錄"
-
-#: ieee.c:2453
-msgid "unrecognized C++ misc record"
-msgstr "無法識別的 C++ 雜項紀錄"
-
-#: ieee.c:2568
-msgid "undefined C++ object"
-msgstr "未定義的 C++ 物件"
-
-#: ieee.c:2602
-msgid "unrecognized C++ object spec"
-msgstr "無法識別的 C++ 物件è¦æ ¼"
-
-#: ieee.c:2638
-msgid "unsupported C++ object type"
-msgstr "ä¸æ”¯æ´çš„ C++ 物件類型"
-
-#: ieee.c:2648
-msgid "C++ base class not defined"
-msgstr "未定義 C++ 基本類別"
-
-#: ieee.c:2660 ieee.c:2765
-msgid "C++ object has no fields"
-msgstr "C++ 物件沒有欄ä½"
-
-#: ieee.c:2679
-msgid "C++ base class not found in container"
-msgstr "容器中找ä¸åˆ° C++ 基本類別"
-
-#: ieee.c:2786
-msgid "C++ data member not found in container"
-msgstr "容器中找ä¸åˆ° C++ 資料æˆå“¡"
-
-#: ieee.c:2827 ieee.c:2977
-msgid "unknown C++ visibility"
-msgstr "未知的 C++ å¯è¦‹åº¦"
-
-#: ieee.c:2861
-msgid "bad C++ field bit pos or size"
-msgstr "ä¸è‰¯çš„ C++ 欄ä½ä½å…ƒä½ç½®æˆ–大å°"
-
-#: ieee.c:2953
-msgid "bad type for C++ method function"
-msgstr "ä¸è‰¯çš„ C++ 方法函å¼é¡žåž‹"
-
-#: ieee.c:2963
-msgid "no type information for C++ method function"
-msgstr "å°æ–¼ C++ 方法函å¼æ²’有類型資訊"
-
-#: ieee.c:3002
-msgid "C++ static virtual method"
-msgstr "C++ éœæ…‹è™›æ“¬æ–¹æ³•"
-
-#: ieee.c:3097
-msgid "unrecognized C++ object overhead spec"
-msgstr "無法識別的 C++ 物件頂層è¦æ ¼"
-
-#: ieee.c:3136
-msgid "undefined C++ vtable"
-msgstr "未定義的 C++ vtable"
-
-#: ieee.c:3205
-msgid "C++ default values not in a function"
-msgstr "C++ é è¨­å€¼ä¸åœ¨å‡½å¼ä¹‹ä¸­"
-
-#: ieee.c:3245
-msgid "unrecognized C++ default type"
-msgstr "無法識別的 C++ é è¨­é¡žåž‹"
-
-#: ieee.c:3276
-msgid "reference parameter is not a pointer"
-msgstr "åƒè€ƒåƒæ•¸ä¸æ˜¯æŒ‡æ¨™"
-
-#: ieee.c:3359
-msgid "unrecognized C++ reference type"
-msgstr "無法識別的 C++ åƒè€ƒé¡žåž‹"
-
-#: ieee.c:3441
-msgid "C++ reference not found"
-msgstr "找ä¸åˆ° C++ åƒè€ƒ"
-
-#: ieee.c:3449
-msgid "C++ reference is not pointer"
-msgstr "C++ åƒè€ƒä¸æ˜¯æŒ‡æ¨™"
-
-#: ieee.c:3475 ieee.c:3483
-msgid "missing required ASN"
-msgstr "éºå¤±å¿…須的 ASN"
-
-#: ieee.c:3510 ieee.c:3518
-msgid "missing required ATN65"
-msgstr "éºå¤±å¿…須的 ATN65"
-
-#: ieee.c:3532
-msgid "bad ATN65 record"
-msgstr "ä¸è‰¯çš„ ATN65 記錄"
-
-#: ieee.c:4160
-#, c-format
-msgid "IEEE numeric overflow: 0x"
-msgstr "IEEE 數值溢出:0x"
-
-#: ieee.c:4204
-#, c-format
-msgid "IEEE string length overflow: %u\n"
-msgstr "IEEE 字串長度溢出:%u\n"
-
-#: ieee.c:5203
-#, c-format
-msgid "IEEE unsupported integer type size %u\n"
-msgstr "IEEE ä¸æ”¯æ´çš„æ•´æ•¸é¡žåž‹å¤§å° %u\n"
-
-#: ieee.c:5237
-#, c-format
-msgid "IEEE unsupported float type size %u\n"
-msgstr "IEEE ä¸æ”¯æ´çš„æµ®é»žé¡žåž‹å¤§å° %u\n"
-
-#: ieee.c:5271
-#, c-format
-msgid "IEEE unsupported complex type size %u\n"
-msgstr "IEEE ä¸æ”¯æ´çš„è¤‡æ•¸é¡žåž‹å¤§å° %u\n"
-
-#: nlmconv.c:267 srconv.c:1810
-msgid "input and output files must be different"
-msgstr "輸入輸出檔案必須ä¸åŒ"
-
-#: nlmconv.c:314
-msgid "input file named both on command line and with INPUT"
-msgstr "åŒæ™‚在命令列和 INPUT 中輸入檔案å稱"
-
-#: nlmconv.c:323
-msgid "no input file"
-msgstr "沒有輸入檔案"
-
-#: nlmconv.c:353
-msgid "no name for output file"
-msgstr "輸出檔案沒有å稱"
-
-#: nlmconv.c:367
-msgid "warning: input and output formats are not compatible"
-msgstr "警告:輸入和輸出格å¼ä¸ç›¸å®¹"
-
-#: nlmconv.c:396
-msgid "make .bss section"
-msgstr "產生 .bss å€æ®µ"
-
-#: nlmconv.c:405
-msgid "make .nlmsections section"
-msgstr "產生 .nlmsections å€æ®µ"
-
-#: nlmconv.c:407
-msgid "set .nlmsections flags"
-msgstr "設定 .nlmsections 旗標"
-
-#: nlmconv.c:435
-msgid "set .bss vma"
-msgstr "設定 .bss vma"
-
-#: nlmconv.c:442
-msgid "set .data size"
-msgstr "設定 .data 的大å°"
-
-#: nlmconv.c:622
-#, c-format
-msgid "warning: symbol %s imported but not in import list"
-msgstr "警告:導入的符號 %s ä¸åœ¨å°Žå…¥åˆ—表中"
-
-#: nlmconv.c:642
-msgid "set start address"
-msgstr "設定起始ä½å€"
-
-#: nlmconv.c:691
-#, c-format
-msgid "warning: START procedure %s not defined"
-msgstr "警告:未定義 START å­ç¨‹åº %s"
-
-#: nlmconv.c:693
-#, c-format
-msgid "warning: EXIT procedure %s not defined"
-msgstr "警告:未定義 EXIT å­ç¨‹åº %s"
-
-#: nlmconv.c:695
-#, c-format
-msgid "warning: CHECK procedure %s not defined"
-msgstr "警告:未定義 CHECK å­ç¨‹åº %s"
-
-#: nlmconv.c:716 nlmconv.c:905
-msgid "custom section"
-msgstr "自訂å€æ®µ"
-
-#: nlmconv.c:737 nlmconv.c:934
-msgid "help section"
-msgstr "輔助å€æ®µ"
-
-#: nlmconv.c:759 nlmconv.c:952
-msgid "message section"
-msgstr "訊æ¯å€æ®µ"
-
-#: nlmconv.c:775 nlmconv.c:985
-msgid "module section"
-msgstr "模組å€æ®µ"
-
-#: nlmconv.c:795 nlmconv.c:1001
-msgid "rpc section"
-msgstr "rpc å€æ®µ"
-
-#. There is no place to record this information.
-#: nlmconv.c:831
-#, c-format
-msgid "%s: warning: shared libraries can not have uninitialized data"
-msgstr "%s:警告:共享函å¼åº«ä¸èƒ½å«æœ‰æœªåˆå§‹åŒ–的資料"
-
-#: nlmconv.c:852 nlmconv.c:1020
-msgid "shared section"
-msgstr "共享å€æ®µ"
-
-#: nlmconv.c:860
-msgid "warning: No version number given"
-msgstr "警告:未指定版本號"
-
-#: nlmconv.c:900 nlmconv.c:929 nlmconv.c:947 nlmconv.c:996 nlmconv.c:1015
-#, c-format
-msgid "%s: read: %s"
-msgstr "%s:讀å–:%s"
-
-#: nlmconv.c:922
-msgid "warning: FULLMAP is not supported; try ld -M"
-msgstr "警告:ä¸æ”¯æ´ FULLMAP;請試用 ld -M"
-
-#: nlmconv.c:1098
-#, c-format
-msgid "Usage: %s [option(s)] [in-file [out-file]]\n"
-msgstr "用法:%s [é¸é …] [輸入檔案 [輸出檔案]]\n"
-
-#: nlmconv.c:1099
-#, c-format
-msgid " Convert an object file into a NetWare Loadable Module\n"
-msgstr " 將物件檔案轉æ›ç‚º NetWare å¯è¼‰å…¥æ¨¡çµ„\n"
-
-#: nlmconv.c:1100
-#, c-format
-msgid ""
-" The options are:\n"
-" -I --input-target=<bfdname> Set the input binary file format\n"
-" -O --output-target=<bfdname> Set the output binary file format\n"
-" -T --header-file=<file> Read <file> for NLM header information\n"
-" -l --linker=<linker> Use <linker> for any linking\n"
-" -d --debug Display on stderr the linker command line\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-msgstr ""
-" é¸é …為:\n"
-" -I --input-target=<bfdname> 設定輸入二進ä½æª”案格å¼\n"
-" -O --output-target=<bfdname> 設定輸出二進ä½æª”案格å¼\n"
-" -T --header-file=<file> 從 <file> 中讀入 NLM 頭資訊\n"
-" -l --linker=<linker> 在所有連接中使用 <linker>\n"
-" -d --debug 在標準錯誤輸出中顯示連接器命令列\n"
-" -h --help 顯示本資訊\n"
-" -v --version 顯示程å¼çš„版本號\n"
-
-#: nlmconv.c:1140
-#, c-format
-msgid "support not compiled in for %s"
-msgstr "未將å°æ–¼ %s 的支æ´ç·¨è­¯é€²åŽ»"
-
-#: nlmconv.c:1177
-msgid "make section"
-msgstr "製作å€æ®µ"
-
-#: nlmconv.c:1191
-msgid "set section size"
-msgstr "設定å€æ®µå¤§å°"
-
-#: nlmconv.c:1197
-msgid "set section alignment"
-msgstr "設定å€æ®µå°é½Š"
-
-#: nlmconv.c:1201
-msgid "set section flags"
-msgstr "設定å€æ®µæ——標"
-
-#: nlmconv.c:1212
-msgid "set .nlmsections size"
-msgstr "設定 .nlmsections 大å°"
-
-#: nlmconv.c:1293 nlmconv.c:1301 nlmconv.c:1310 nlmconv.c:1315
-msgid "set .nlmsection contents"
-msgstr "設定 .nlmsection 內容"
-
-#: nlmconv.c:1794
-msgid "stub section sizes"
-msgstr "ä½”ä½å€æ®µå¤§å°"
-
-#: nlmconv.c:1841
-msgid "writing stub"
-msgstr "正在寫入佔ä½å€æ®µ"
-
-#: nlmconv.c:1925
-#, c-format
-msgid "unresolved PC relative reloc against %s"
-msgstr "無法解æžçš„以 %s 為準之 PC 相å°é‡å®šä½"
-
-#: nlmconv.c:1989
-#, c-format
-msgid "overflow when adjusting relocation against %s"
-msgstr "以 %s 為準å°é½Šé‡å®šä½æ™‚發生溢出"
-
-#: nlmconv.c:2116
-#, c-format
-msgid "%s: execution of %s failed: "
-msgstr "%s:執行 %s 失敗:"
-
-#: nlmconv.c:2131
-#, c-format
-msgid "Execution of %s failed"
-msgstr "執行 %s 失敗"
-
-#: nm.c:224 size.c:80 strings.c:651
-#, c-format
-msgid "Usage: %s [option(s)] [file(s)]\n"
-msgstr "用法:%s [é¸é …] [檔案]\n"
-
-#: nm.c:225
-#, c-format
-msgid " List symbols in [file(s)] (a.out by default).\n"
-msgstr "列舉 [檔案] 中的符號 (é è¨­ç‚º a.out)。\n"
-
-#: nm.c:226
-#, c-format
-msgid ""
-" The options are:\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
-" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
-" -l, --line-numbers Use debugging information to find a filename and\n"
-" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
-" -S, --print-size Print size of defined symbols\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" --special-syms Include special symbols in the output\n"
-" --synthetic Display synthetic symbols as well\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" -X 32_64 (ignored)\n"
-" -h, --help Display this information\n"
-" -V, --version Display this program's version number\n"
-"\n"
-msgstr ""
-" é¸é …為:\n"
-" -a, --debug-syms 顯示åªç”¨æ–¼é™¤éŒ¯çš„符號\n"
-" -A, --print-file-name 在æ¯å€‹ç¬¦è™Ÿå‰å°å‡ºè¼¸å…¥æª”案å\n"
-" -B 與 --format=bsd 相åŒ\n"
-" -C, --demangle[=STYLE] 將低階符號å稱解碼為用戶階層å稱\n"
-" 如果指定 STYLE,STYLE å¯èƒ½ç‚ºã€Œautoã€(é è¨­)ã€\n"
-" 「gnuã€ã€ã€Œlucidã€ã€ã€Œarmã€ã€ã€Œhpã€ã€ã€Œedgã€ã€\n"
-" 「gnu-v3ã€ã€ã€Œjavaã€æˆ–「gnatã€\n"
-" --no-demangle ä¸è¦è§£ç¢¼ä½ŽéšŽç¬¦è™Ÿå稱\n"
-" -D, --dynamic 顯示動態符號而ä¸æ˜¯æ™®é€šç¬¦è™Ÿ\n"
-" --defined-only åªé¡¯ç¤ºå·²å®šç¾©çš„符號\n"
-" -e (忽略)\n"
-" -f, --format=FORMAT ä½¿ç”¨è¼¸å‡ºæ ¼å¼ FORMAT。FORMAT å¯èƒ½æ˜¯ã€Œbsdã€ã€\n"
-" 「sysvã€æˆ–「posixã€ã€‚é è¨­ç‚ºã€Œbsdã€\n"
-" -g, --extern-only åªé¡¯ç¤ºå¤–部符號\n"
-" -l, --line-numbers 使用除錯資訊以便為æ¯å€‹ç¬¦è™Ÿå°‹æ‰¾æª”案å和列號\n"
-" -n, --numeric-sort 按ä½å€æŽ’åºç¬¦è™Ÿ\n"
-" -o 與 -A 相åŒ\n"
-" -p, --no-sort ä¸è¦å°ç¬¦è™Ÿé€²è¡ŒæŽ’åº\n"
-" -P, --portability 與 --format=posix 相åŒ\n"
-" -r, --reverse-sort å轉排åºé †åº\n"
-" -S, --print-size 列å°å®šç¾©äº†çš„符號的大å°\n"
-" -s, --print-armap 列å°ä¿å­˜æª”æˆå“¡ä¸­ç¬¦è™Ÿçš„索引\n"
-" --size-sort 按大å°æŽ’åºç¬¦è™Ÿ\n"
-" --special-syms 在輸出中包å«ç‰¹æ®Šç¬¦è™Ÿ\n"
-" --synthetic åŒæ¨£ä¹Ÿé¡¯ç¤ºåˆæˆçš„符號\n"
-" -t, --radix=RADIX å°‡ RADIX 用於å°å‡ºç¬¦è™Ÿå€¼\n"
-" --target=BFDNAME 將標的目標物件格å¼æŒ‡å®šç‚º BFDNAME\n"
-" -u, --undefined-only åªé¡¯ç¤ºæœªå®šç¾©çš„符號\n"
-" -X 32_64 (忽略)\n"
-" -h, --help 顯示本資訊\n"
-" -V, --version 顯示本程å¼çš„版本號碼\n"
-"\n"
-
-#: nm.c:262 objdump.c:232
-#, c-format
-msgid "Report bugs to %s.\n"
-msgstr "將程å¼éŒ¯èª¤å ±å‘Šåˆ° %s。\n"
-
-#: nm.c:294
-#, c-format
-msgid "%s: invalid radix"
-msgstr "%s:無效的基數"
-
-#: nm.c:318
-#, c-format
-msgid "%s: invalid output format"
-msgstr "%s:無效的輸出格å¼"
-
-#: nm.c:339 readelf.c:6342 readelf.c:6378
-#, c-format
-msgid "<processor specific>: %d"
-msgstr "<特定處ç†å™¨>:%d"
-
-#: nm.c:341 readelf.c:6345 readelf.c:6390
-#, c-format
-msgid "<OS specific>: %d"
-msgstr "<特定作業系統>:%d"
-
-#: nm.c:343 readelf.c:6347 readelf.c:6393
-#, c-format
-msgid "<unknown>: %d"
-msgstr "<未知>:%d"
-
-#: nm.c:380
-#, c-format
-msgid ""
-"\n"
-"Archive index:\n"
-msgstr ""
-"\n"
-"ä¿å­˜æª”索引:\n"
-
-#: nm.c:1225
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"來自 %s 的未定義符號:\n"
-"\n"
-
-#: nm.c:1227
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"來自 %s 的符號:\n"
-"\n"
-
-#: nm.c:1229 nm.c:1280
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"å稱 值 類別 åž‹æ…‹ å¤§å° åˆ—è™Ÿ å€æ®µ\n"
-"\n"
-
-#: nm.c:1232 nm.c:1283
-#, c-format
-msgid ""
-"Name Value Class Type Size Line Section\n"
-"\n"
-msgstr ""
-"å稱 值 類別 åž‹æ…‹ å¤§å° åˆ—è™Ÿ å€æ®µ\n"
-"\n"
-
-#: nm.c:1276
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Undefined symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"來自 %s[%s] 的未定義的符號:\n"
-"\n"
-
-#: nm.c:1278
-#, c-format
-msgid ""
-"\n"
-"\n"
-"Symbols from %s[%s]:\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-"來自 %s[%s] 的符號:\n"
-"\n"
-
-#: nm.c:1580
-msgid "Only -X 32_64 is supported"
-msgstr "åªæ”¯æ´ -X 32_64"
-
-#: nm.c:1600
-msgid "Using the --size-sort and --undefined-only options together"
-msgstr "åŒæ™‚使用 --size-sort 與 --undefined-only é¸é …"
-
-#: nm.c:1601
-msgid "will produce no output, since undefined symbols have no size."
-msgstr "由於未定義的符號ä¸å…·å¤§å°ï¼Œå°‡ä¸æœƒç”¢ç”Ÿè¼¸å‡º"
-
-#: nm.c:1629
-#, c-format
-msgid "data size %ld"
-msgstr "è³‡æ–™å¤§å° %ld"
-
-#: objcopy.c:396 srconv.c:1721
-#, c-format
-msgid "Usage: %s [option(s)] in-file [out-file]\n"
-msgstr "用法:%s [é¸é …] 輸入檔案 [輸出檔案]\n"
-
-#: objcopy.c:397
-#, c-format
-msgid " Copies a binary file, possibly transforming it in the process\n"
-msgstr " 複製二進ä½æª”案,它å¯èƒ½åœ¨æ­¤éŽç¨‹ä¸­é€²è¡Œè®Šæ›\n"
-
-#: objcopy.c:398 objcopy.c:487
-#, c-format
-msgid " The options are:\n"
-msgstr " é¸é …為:\n"
-
-#: objcopy.c:399
-#, c-format
-msgid ""
-" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
-" -B --binary-architecture <arch> Set arch of output file, when input is binary\n"
-" -F --target <bfdname> Set both input and output format to <bfdname>\n"
-" --debugging Convert debugging information, if possible\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -j --only-section <name> Only copy section <name> into the output\n"
-" --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>\n"
-" -R --remove-section <name> Remove section <name> from the output\n"
-" -S --strip-all Remove all symbol and relocation information\n"
-" -g --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" -N --strip-symbol <name> Do not copy symbol <name>\n"
-" --strip-unneeded-symbol <name>\n"
-" Do not copy symbol <name> unless needed by\n"
-" relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -K --keep-symbol <name> Only copy symbol <name>\n"
-" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-" --weaken Force all global symbols to be marked as weak\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -i --interleave <number> Only copy one out of every <number> bytes\n"
-" -b --byte <num> Select byte <num> in every interleaved block\n"
-" --gap-fill <val> Fill gaps between sections with <val>\n"
-" --pad-to <addr> Pad the last section up to address <addr>\n"
-" --set-start <addr> Set the start address to <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" Add <incr> to the start address\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" Add <incr> to LMA, VMA and start addresses\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" Change LMA and VMA of section <name> by <val>\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" Change the LMA of section <name> by <val>\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" Change the VMA of section <name> by <val>\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" Warn if a named section does not exist\n"
-" --set-section-flags <name>=<flags>\n"
-" Set section <name>'s properties to <flags>\n"
-" --add-section <name>=<file> Add section <name> found in <file> to output\n"
-" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-" --change-leading-char Force output format's leading character style\n"
-" --remove-leading-char Remove leading character from global symbols\n"
-" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-" --redefine-syms <file> --redefine-sym for all symbol pairs \n"
-" listed in <file>\n"
-" --srec-len <number> Restrict the length of generated Srecords\n"
-" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-" --strip-symbols <file> -N for all symbols listed in <file>\n"
-" --strip-unneeded-symbols <file>\n"
-" --strip-unneeded-symbol for all symbols listed\n"
-" in <file>\n"
-" --keep-symbols <file> -K for all symbols listed in <file>\n"
-" --localize-symbols <file> -L for all symbols listed in <file>\n"
-" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-" --weaken-symbols <file> -W for all symbols listed in <file>\n"
-" --alt-machine-code <index> Use alternate machine code for output\n"
-" --writable-text Mark the output text as writable\n"
-" --readonly-text Make the output text write protected\n"
-" --pure Mark the output file as demand paged\n"
-" --impure Mark the output file as impure\n"
-" --prefix-symbols <prefix> Add <prefix> to start of every symbol name\n"
-" --prefix-sections <prefix> Add <prefix> to start of every section name\n"
-" --prefix-alloc-sections <prefix>\n"
-" Add <prefix> to start of every allocatable\n"
-" section name\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-msgstr ""
-" -I --input-target <bfdname> å‡å®šè¼¸å…¥æª”案的格å¼ç‚º <bfdname>\n"
-" -O --output-target <bfdname> 建立格å¼ç‚º <bfdname> 的輸出檔案\n"
-" -B --binary-architecture <arch> 當輸入檔案為二進ä½æª”案時,設定輸出檔案的系統架構\n"
-" -F --target <bfdname> 將輸入輸出格å¼è¨­å®šç‚º <bfdname>\n"
-" --debugging 如果å¯èƒ½ï¼Œè½‰æ›é™¤éŒ¯è³‡è¨Š\n"
-" -p --preserve-dates 將修改/å­˜å–時間戳記複製到輸出檔案\n"
-" -j --only-section <name> åªå°‡ <name> å€æ®µè¤‡è£½åˆ°è¼¸å‡ºæª”案中\n"
-" --add-gnu-debuglink=<file> 添加å€æ®µ .gnu_debuglink 的連çµåˆ° <file>\n"
-" -R --remove-section <name> 從輸出中刪除 <name> å€æ®µ\n"
-" -S --strip-all 除去所有符號和é‡å®šä½è³‡è¨Š\n"
-" -g --strip-debug 除去所有除錯符號\n"
-" --strip-unneeded 除去所有é‡å®šä½ä¸éœ€è¦çš„符號\n"
-" -N --strip-symbol <name> ä¸è¦è¤‡è£½ç¬¦è™Ÿ <name>\n"
-" --strip-unneeded-symbol <name>\n"
-" ä¸è¦è¤‡è£½ç¬¦è™Ÿ <name> 除éžé‡å®šä½æ™‚需è¦\n"
-" --only-keep-debug 除去除錯相關以外的所有資訊\n"
-" -K --keep-symbol <name> åªè¤‡è£½ç¬¦è™Ÿ <name>\n"
-" -L --localize-symbol <name> 將符號 <name> 強制標識為本地符號\n"
-" -G --keep-global-symbol <name> 將除了 <name> 以外的所有符號標識為本地\n"
-" -W --weaken-symbol <name> 將符號 <name> 強制標識為弱符號\n"
-" --weaken 將所有全域符號標識為弱符號\n"
-" -x --discard-all 刪除所有éžå…¨åŸŸç¬¦è™Ÿ\n"
-" -X --discard-locals 刪除所有編譯器產生的符號\n"
-" -i --interleave <number> åªåœ¨æ¯ <number> 個ä½å…ƒçµ„中複製一個\n"
-" -b --byte <num> 在æ¯å€‹æ’å…¥å€å¡Šä¸­é¸æ“‡ä½å…ƒçµ„ <num>\n"
-" --gap-fill <val> 在å€æ®µç©ºéš™ä¸­ä»¥ <val> å¡«å……\n"
-" --pad-to <addr> 補充最後一å€æ®µç›´åˆ°ä½å€ <addr>\n"
-" --set-start <addr> 將起始ä½å€è¨­ç½®ç‚º <addr>\n"
-" {--change-start|--adjust-start} <incr>\n"
-" å°‡ <incr> 增加到起始ä½å€\n"
-" {--change-addresses|--adjust-vma} <incr>\n"
-" å°‡ <incr> 增加到 LMAã€VMA 和起始ä½å€\n"
-" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-" 以 <val> 修改 <name> å€æ®µçš„ LMA å’Œ VMA\n"
-" --change-section-lma <name>{=|+|-}<val>\n"
-" 以 <val> 修改 <name> å€æ®µçš„ LMA\n"
-" --change-section-vma <name>{=|+|-}<val>\n"
-" 以 <val> 修改 <name> å€æ®µçš„ VMA\n"
-" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-" 如果命åå€æ®µä¸å­˜åœ¨å°±ç”¢ç”Ÿè­¦å‘Š\n"
-" --set-section-flags <name>=<flags>\n"
-" å°‡ <name> å€æ®µçš„屬性設置為 <flags>\n"
-" --add-section <name>=<file> å°‡ <file> 中的 <name> å€æ®µæ·»åŠ åˆ°è¼¸å‡ºä¸­\n"
-" --rename-section <old>=<new>[,<flags>] å°‡å€æ®µç”± <old> 改å為 <new>\n"
-" --change-leading-char 強行設定輸出格å¼çš„å‰å°Žå­—元風格\n"
-" --remove-leading-char 刪除全域符號的å‰å°Žå­—å…ƒ\n"
-" --redefine-sym <old>=<new> 將符號由 <old> 改å為 <new>\n"
-" --redefine-syms <file> å°æ‰€æœ‰åˆ—æ–¼ <file> 中的符號執行 --redefine-sym\n"
-" --srec-len <number> é™åˆ¶æ‰€ç”¢ç”Ÿ Srecords 的長度\n"
-" --srec-forceS3 將所產生 Srecords çš„é¡žåž‹é™åˆ¶ç‚º S3\n"
-" --strip-symbols <file> å°åˆ—舉在 <file> 中的所有符號執行 -N\n"
-" --strip-unneeded-symbols <file>\n"
-" å°æ‰€æœ‰åˆ—æ–¼ <file> 中的符號執行 --strip-unneeded-symbol\n"
-" --keep-symbols <file> å°åˆ—舉在 <file> 中的所有符號執行 -K\n"
-" --localize-symbols <file> å°åˆ—舉在 <file> 中的所有符號執行 -L\n"
-" --keep-global-symbols <file> å°åˆ—舉在 <file> 中的所有符號執行 -G\n"
-" --weaken-symbols <file> å°åˆ—舉在 <file> 中的所有符號執行 -W\n"
-" --alt-machine-code <index> 輸出使用替代的機器碼\n"
-" --writable-text 將輸出文字標記為å¯å¯«\n"
-" --readonly-text 將輸出文字標記為防寫\n"
-" --pure 將輸出檔案標記為需è¦åˆ†é \n"
-" --impure 將輸出檔案標記為混雜的\n"
-" --prefix-symbols <prefix> 添加 <prefix> 至æ¯å€‹ç¬¦è™Ÿå稱的å‰ç«¯\n"
-" --prefix-sections <prefix> 添加 <prefix> 至æ¯å€‹å€æ®µå稱的å‰ç«¯\n"
-" --prefix-alloc-sections <prefix>\n"
-" 添加 <prefix> 至æ¯å€‹å®šä½è¡¨å€æ®µå稱的å‰ç«¯\n"
-" -v --verbose 列出所有修改的目標檔案\n"
-" -V --version 顯示本程åºçš„版本號碼\n"
-" -h --help 顯示本輸出\n"
-" --info 列出支æ´çš„ç‰©ä»¶æ ¼å¼ & 系統架構\n"
-
-#: objcopy.c:485
-#, c-format
-msgid "Usage: %s <option(s)> in-file(s)\n"
-msgstr "用法:%s <é¸é …> 輸入檔案\n"
-
-#: objcopy.c:486
-#, c-format
-msgid " Removes symbols and sections from files\n"
-msgstr "從檔案中刪除符號和å€æ®µ\n"
-
-#: objcopy.c:488
-#, c-format
-msgid ""
-" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
-" -O --output-target=<bfdname> Create an output file in format <bfdname>\n"
-" -F --target=<bfdname> Set both input and output format to <bfdname>\n"
-" -p --preserve-dates Copy modified/access timestamps to the output\n"
-" -R --remove-section=<name> Remove section <name> from the output\n"
-" -s --strip-all Remove all symbol and relocation information\n"
-" -g -S -d --strip-debug Remove all debugging symbols & sections\n"
-" --strip-unneeded Remove all symbols not needed by relocations\n"
-" --only-keep-debug Strip everything but the debug information\n"
-" -N --strip-symbol=<name> Do not copy symbol <name>\n"
-" -K --keep-symbol=<name> Only copy symbol <name>\n"
-" -w --wildcard Permit wildcard in symbol comparison\n"
-" -x --discard-all Remove all non-global symbols\n"
-" -X --discard-locals Remove any compiler-generated symbols\n"
-" -v --verbose List all object files modified\n"
-" -V --version Display this program's version number\n"
-" -h --help Display this output\n"
-" --info List object formats & architectures supported\n"
-" -o <file> Place stripped output into <file>\n"
-msgstr ""
-" -I --input-target=<bfdname> å‡å®šè¼¸å…¥æª”案的格å¼ç‚º <bfdname>\n"
-" -O --output-target=<bfdname> 建立格å¼ç‚º <bfdname> 的輸出檔案\n"
-" -F --target=<bfdname> 將輸入和輸出的格å¼è¨­å®šç‚º <bfdname>\n"
-" -p --preserve-dates å°‡ 修改/å­˜å– æ™‚é–“æˆ³è¤‡è£½åˆ°è¼¸å‡ºæª”æ¡ˆ\n"
-" -R --remove-section=<name> 從輸出中刪除 <name> å€æ®µ\n"
-" -s --strip-all 除去所有符號和é‡å®šä½è³‡è¨Š\n"
-" -g -S -d --strip-debug 除去所有除錯符號\n"
-" --strip-unneeded 除去所有é‡å®šä½ä¸éœ€è¦çš„符號\n"
-" --only-keep-debug 除去除錯以外的所有資訊\n"
-" -N --strip-symbol=<name> ä¸è¦è¤‡è£½ç¬¦è™Ÿ <name>\n"
-" -K --keep-symbol=<name> åªè¤‡è£½ç¬¦è™Ÿ <name>\n"
-" -w --wildcard 符號比較時容許è¬ç”¨å­—å…ƒ\n"
-" -x --discard-all 刪除所有éžå…¨åŸŸç¬¦è™Ÿ\n"
-" -X --discard-locals 刪除所有編譯器產生的符號\n"
-" -v --verbose 列出所有修改éŽçš„目標檔案\n"
-" -V --version 顯示本程åºçš„版本號碼\n"
-" -h --help 顯示本輸出\n"
-" --info 列出支æ´çš„ç‰©ä»¶æ ¼å¼ & 系統架構\n"
-" -o <file> å°‡ strip éŽçš„輸出置於 <file>\n"
-
-#: objcopy.c:560
-#, c-format
-msgid "unrecognized section flag `%s'"
-msgstr "ä¸èƒ½è­˜åˆ¥çš„å€æ®µæ——標「%sã€"
-
-#: objcopy.c:561
-#, c-format
-msgid "supported flags: %s"
-msgstr "支æ´çš„旗標:%s"
-
-#: objcopy.c:638
-#, c-format
-msgid "cannot open '%s': %s"
-msgstr "無法開啟:%s:%s"
-
-#: objcopy.c:641 objcopy.c:2629
-#, c-format
-msgid "%s: fread failed"
-msgstr "%s:fread 失敗"
-
-#: objcopy.c:714
-#, c-format
-msgid "%s:%d: Ignoring rubbish found on this line"
-msgstr "%s:%d: 忽略本列所å«ç„¡ç”¨è³‡æ–™"
-
-#: objcopy.c:976
-#, c-format
-msgid "%s: Multiple redefinition of symbol \"%s\""
-msgstr "%s:多次é‡è¤‡å®šç¾©ç¬¦è™Ÿã€Œ%sã€"
-
-#: objcopy.c:980
-#, c-format
-msgid "%s: Symbol \"%s\" is target of more than one redefinition"
-msgstr "%s:符號「%sã€æ˜¯å¤šæ¬¡é‡è¤‡å®šç¾©çš„標的"
-
-#: objcopy.c:1008
-#, c-format
-msgid "couldn't open symbol redefinition file %s (error: %s)"
-msgstr "無法開啟符號é‡å®šç¾©æª” %s (錯誤: %s)"
-
-#: objcopy.c:1086
-#, c-format
-msgid "%s:%d: garbage found at end of line"
-msgstr "%s:%d: 列尾出ç¾ç„¡ç”¨å­—å…ƒ"
-
-#: objcopy.c:1089
-#, c-format
-msgid "%s:%d: missing new symbol name"
-msgstr "%s:%d: 缺少新的符號å稱"
-
-#: objcopy.c:1099
-#, c-format
-msgid "%s:%d: premature end of file"
-msgstr "%s:%d: 檔案末尾ä¸å®Œæ•´"
-
-#: objcopy.c:1124
-msgid "Unable to change endianness of input file(s)"
-msgstr "無法改變輸入檔案的çµå°¾æ ¼å¼"
-
-#: objcopy.c:1133
-#, c-format
-msgid "copy from %s(%s) to %s(%s)\n"
-msgstr "從 %s(%s) 複製到 %s(%s)\n"
-
-#: objcopy.c:1170
-#, c-format
-msgid "Unable to recognise the format of the input file %s"
-msgstr "無法確èªè¼¸å…¥æª”案 %s çš„æ ¼å¼"
-
-#: objcopy.c:1174
-#, c-format
-msgid "Warning: Output file cannot represent architecture %s"
-msgstr "警告:輸出檔案無法代表系統架構 %s"
-
-#: objcopy.c:1211
-#, c-format
-msgid "can't create section `%s': %s"
-msgstr "無法建立å€æ®µã€Œ%sã€ï¼š%s"
-
-#: objcopy.c:1277
-msgid "there are no sections to be copied!"
-msgstr "沒有å¯ä¾›è¤‡è£½çš„å€æ®µï¼"
-
-#: objcopy.c:1323
-#, c-format
-msgid "Can't fill gap after %s: %s"
-msgstr "無法填充 %s 之後的間隙:%s"
-
-#: objcopy.c:1348
-#, c-format
-msgid "Can't add padding to %s: %s"
-msgstr "無法添加 %s æ—邊的空隙:%s"
-
-#: objcopy.c:1514
-#, c-format
-msgid "%s: error copying private BFD data: %s"
-msgstr "%s:複製 BFD ç§æœ‰è³‡æ–™å‡ºéŒ¯ï¼š%s"
-
-#: objcopy.c:1525
-msgid "unknown alternate machine code, ignored"
-msgstr "ä¸æ˜Žçš„é¡å¤–機器碼,將它忽略"
-
-#: objcopy.c:1555 objcopy.c:1585
-#, c-format
-msgid "cannot mkdir %s for archive copying (error: %s)"
-msgstr "無法為ä¿å­˜æª”複製建立目錄 %s (錯誤:%s)"
-
-#: objcopy.c:1790
-#, c-format
-msgid "Multiple renames of section %s"
-msgstr "多次將å€æ®µ %s 改å"
-
-#: objcopy.c:1841
-msgid "private header data"
-msgstr "ç§æœ‰æ¨™é ­è³‡æ–™"
-
-#: objcopy.c:1849
-#, c-format
-msgid "%s: error in %s: %s"
-msgstr "%s:å€æ®µ %s 中出錯:%s"
-
-#: objcopy.c:1903
-msgid "making"
-msgstr "製作中"
-
-#: objcopy.c:1912
-msgid "size"
-msgstr "大å°"
-
-#: objcopy.c:1926
-msgid "vma"
-msgstr "vma"
-
-#: objcopy.c:1951
-msgid "alignment"
-msgstr "å°é½Š"
-
-#: objcopy.c:1966
-msgid "flags"
-msgstr "旗標"
-
-#: objcopy.c:1988
-msgid "private data"
-msgstr "ç§æœ‰è³‡æ–™"
-
-#: objcopy.c:1996
-#, c-format
-msgid "%s: section `%s': error in %s: %s"
-msgstr "%s:å€æ®µã€Œ%sã€ï¼š%s 中出錯:%s"
-
-#: objcopy.c:2274
-#, c-format
-msgid "%s: can't create debugging section: %s"
-msgstr "%s:無法建立除錯å€æ®µï¼š%s"
-
-#: objcopy.c:2288
-#, c-format
-msgid "%s: can't set debugging section contents: %s"
-msgstr "%s:無法設定除錯å€æ®µå…§å®¹ï¼š%s"
-
-#: objcopy.c:2297
-#, c-format
-msgid "%s: don't know how to write debugging information for %s"
-msgstr "%s:ä¸çŸ¥é“如何為 %s 寫入除錯資訊"
-
-#: objcopy.c:2472
-msgid "byte number must be non-negative"
-msgstr "ä½å…ƒçµ„編號必須是éžè² æ•¸"
-
-#: objcopy.c:2482
-msgid "interleave must be positive"
-msgstr "間斷值必須是正數。"
-
-#: objcopy.c:2502 objcopy.c:2510
-#, c-format
-msgid "%s both copied and removed"
-msgstr "å³è¦è¤‡è£½ %s åˆè¦åˆªé™¤å®ƒ"
-
-#: objcopy.c:2603 objcopy.c:2674 objcopy.c:2774 objcopy.c:2805 objcopy.c:2829
-#: objcopy.c:2833 objcopy.c:2853
-#, c-format
-msgid "bad format for %s"
-msgstr "%s æ ¼å¼éŒ¯èª¤"
-
-#: objcopy.c:2624
-#, c-format
-msgid "cannot open: %s: %s"
-msgstr "無法開啟:%s:%s"
-
-#: objcopy.c:2743
-#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "警告:將間隙填充由 0x%s 截短到 0x%x"
-
-#: objcopy.c:2903
-msgid "alternate machine code index must be positive"
-msgstr "é¡å¤–機器碼索引值必須是正數。"
-
-#: objcopy.c:2961
-msgid "byte number must be less than interleave"
-msgstr "ä½å…ƒçµ„編號必須å°æ–¼é–“斷值"
-
-#: objcopy.c:2991
-#, c-format
-msgid "architecture %s unknown"
-msgstr "未知的系統架構 %s"
-
-#: objcopy.c:2995
-msgid "Warning: input target 'binary' required for binary architecture parameter."
-msgstr "警告:二進ä½çš„系統架構åƒæ•¸éœ€è¦è¼¸å…¥ç›®æ¨™ 'binary'"
-
-#: objcopy.c:2996
-#, c-format
-msgid " Argument %s ignored"
-msgstr " 忽略引數 %s"
-
-#: objcopy.c:3002
-#, c-format
-msgid "warning: could not locate '%s'. System error message: %s"
-msgstr "警告:無法找到 '%s' çš„ä½ç½®ã€‚系統錯誤訊æ¯ç‚ºï¼š%s"
-
-#: objcopy.c:3042 objcopy.c:3056
-#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr "%s %s%c0x%s 完全沒用éŽ"
-
-#: objdump.c:176
-#, c-format
-msgid "Usage: %s <option(s)> <file(s)>\n"
-msgstr "用法:%s <é¸é …> <檔案>\n"
-
-#: objdump.c:177
-#, c-format
-msgid " Display information from object <file(s)>.\n"
-msgstr " 顯示來自目標 <檔案> 的資訊。\n"
-
-#: objdump.c:178
-#, c-format
-msgid " At least one of the following switches must be given:\n"
-msgstr " 至少必須指定以下é¸é …之一:\n"
-
-#: objdump.c:179
-#, c-format
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -e, --debugging-tags Display debug information using ctags style\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" -v, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-" -a, --archive-headers 顯示ä¿å­˜æª”頭資訊\n"
-" -f, --file-headers 顯示整體檔案頭的內容\n"
-" -p, --private-headers 顯示目標格å¼ç‰¹æœ‰çš„檔案頭內容\n"
-" -h, --[section-]headers 顯示å€æ®µé ­çš„內容\n"
-" -x, --all-headers 顯示所有標頭的內容\n"
-" -d, --disassemble 顯示å¯åŸ·è¡Œå€æ®µçš„組譯內容\n"
-" -D, --disassemble-all 顯示所有å€æ®µçš„組譯內容\n"
-" -S, --source 將原始碼和å組譯混åˆèµ·ä¾†\n"
-" -s, --full-contents 顯示所有請求å€æ®µçš„完整內容\n"
-" -g, --debugging 顯示目標檔案的除錯資訊\n"
-" -e, --debugging-tags 顯示使用 ctags 風格的除錯資訊\n"
-" -G, --stabs 以原始形å¼é¡¯ç¤ºæª”案中所有的 STABS 資訊\n"
-" -t, --syms 顯示符號表的內容\n"
-" -T, --dynamic-syms 顯示動態符號表的內容\n"
-" -r, --reloc 顯示檔案中的é‡å®šä½æ¢ç›®\n"
-" -R, --dynamic-reloc 顯示檔案中的動態é‡å®šä½æ¢ç›®\n"
-" -v, --version 顯示本程å¼çš„版本號碼\n"
-" -i, --info 列舉支æ´çš„目標格å¼å’Œç³»çµ±æž¶æ§‹\n"
-" -H, --help 顯示本資訊\n"
-
-#: objdump.c:202
-#, c-format
-msgid ""
-"\n"
-" The following switches are optional:\n"
-msgstr ""
-"\n"
-" 以下é¸é …是å¯é¸çš„:\n"
-
-#: objdump.c:203
-#, c-format
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -I, --include=DIR Add DIR to search list for source files\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', `gnu',\n"
-" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whose address is >= ADDR\n"
-" --stop-address=ADDR Only process data whose address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-" --special-syms Include special symbols in symbol dumps\n"
-"\n"
-msgstr ""
-" -b, --target=BFDNAME 將目標物件檔案格å¼æŒ‡å®šç‚º BFDNAME\n"
-" -m, --architecture=MACHINE 將目標系統架構指定為 MACHINE\n"
-" -j, --section=NAME åªé¡¯ç¤º NAME å€æ®µçš„資訊\n"
-" -M, --disassembler-options=OPT 將文字傳éžåˆ° OPT å組譯程åº\n"
-" -EB --endian=big å組譯時å‡å®šé«˜ä½ä½å…ƒçµ„在å‰\n"
-" -EL --endian=little å組譯時å‡å®šä½Žä½ä½å…ƒçµ„在å‰\n"
-" --file-start-context 從檔案的起點引入上下文 (帶有 -S)\n"
-" -I, --include=DIR å°‡ DIR 加入æœå°‹åŽŸå§‹ç¢¼æª”案的列表\n"
-" -l, --line-numbers 在輸出中指定列號和檔案å\n"
-" -C, --demangle[=STYLE] å°æ–¼å·²æ壞/處ç†éŽçš„符號å稱進行解碼\n"
-" 如果指定了 STYLE,STYLE å¯èƒ½ç‚ºã€Œautoã€ã€ã€Œgnuã€ã€\n"
-" 「lucidã€ã€ã€Œarmã€ã€ã€Œhpã€ã€ã€Œedgã€ã€ã€Œgnu-v3ã€ã€ã€Œjavaã€æˆ–「gnatã€\n"
-" -w, --wide 以多於 80 行的寬度å°è¼¸å‡ºé€²è¡Œæ ¼å¼åŒ–\n"
-" -z, --disassemble-zeroes å組譯時ä¸è¦è·³éŽç‚ºé›¶çš„å€å¡Š\n"
-" --start-address=ADDR åªæœ‰è¡Œç¨‹è³‡æ–™çš„ä½å€ >= ADDR\n"
-" --stop-address=ADDR åªæœ‰è¡Œç¨‹è³‡æ–™çš„ä½å€ <= ADDR\n"
-" --prefix-addresses åŒå組譯代碼並列顯示完整的ä½å€\n"
-" --[no-]show-raw-insn åŒç¬¦è™Ÿå組譯並列顯示å六進ä½å€¼\n"
-" --adjust-vma=OFFSET 為所有顯示的å€æ®µä½å€å¢žåŠ  OFFSET\n"
-" --special-syms 在符號傾å°ä¸­åŒ…å«ç‰¹æ®Šç¬¦è™Ÿ\n"
-"\n"
-
-#: objdump.c:378
-#, c-format
-msgid "Sections:\n"
-msgstr "å€æ®µï¼š\n"
-
-#: objdump.c:381 objdump.c:385
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "索引å稱 å¤§å° VMA LMA 檔案關閉 å°é½Š"
-
-#: objdump.c:387
-#, c-format
-msgid "Idx Name Size VMA LMA File off Algn"
-msgstr "索引å稱 å¤§å° VMA LMA 檔案關閉 å°é½Š"
-
-#: objdump.c:391
-#, c-format
-msgid " Flags"
-msgstr " 旗標"
-
-#: objdump.c:393
-#, c-format
-msgid " Pg"
-msgstr " é "
-
-#: objdump.c:436
-#, c-format
-msgid "%s: not a dynamic object"
-msgstr "%s:ä¸æ˜¯å‹•æ…‹ç‰©ä»¶"
-
-#: objdump.c:1722
-#, c-format
-msgid "Disassembly of section %s:\n"
-msgstr "å組譯 %s å€æ®µï¼š\n"
-
-#: objdump.c:1884
-#, c-format
-msgid "Can't use supplied machine %s"
-msgstr "無法使用支æ´çš„機器 %s"
-
-#: objdump.c:1903
-#, c-format
-msgid "Can't disassemble for architecture %s\n"
-msgstr "無法å組譯系統架構 %s\n"
-
-#: objdump.c:1973
-#, c-format
-msgid ""
-"No %s section present\n"
-"\n"
-msgstr ""
-"%s å€æ®µä¸å­˜åœ¨\n"
-"\n"
-
-#: objdump.c:1982
-#, c-format
-msgid "Reading %s section of %s failed: %s"
-msgstr "讀入 %2$s çš„ %1$s å€æ®µå¤±æ•—:%3$s"
-
-#: objdump.c:2026
-#, c-format
-msgid ""
-"Contents of %s section:\n"
-"\n"
-msgstr ""
-"%s å€æ®µçš„內容:\n"
-"\n"
-
-#: objdump.c:2153
-#, c-format
-msgid "architecture: %s, "
-msgstr "系統架構:%s,"
-
-#: objdump.c:2156
-#, c-format
-msgid "flags 0x%08x:\n"
-msgstr "旗標 0x%08x:\n"
-
-#: objdump.c:2170
-#, c-format
-msgid ""
-"\n"
-"start address 0x"
-msgstr ""
-"\n"
-"起始ä½å€ 0x"
-
-#: objdump.c:2210
-#, c-format
-msgid "Contents of section %s:\n"
-msgstr "%s å€æ®µçš„內容:\n"
-
-#: objdump.c:2335
-#, c-format
-msgid "no symbols\n"
-msgstr "無符號\n"
-
-#: objdump.c:2342
-#, c-format
-msgid "no information for symbol number %ld\n"
-msgstr "沒有關於符號號碼 %ld 的資訊\n"
-
-#: objdump.c:2345
-#, c-format
-msgid "could not determine the type of symbol number %ld\n"
-msgstr "無法確定符號號碼「%ldã€çš„é¡žåž‹\n"
-
-#: objdump.c:2611
-#, c-format
-msgid ""
-"\n"
-"%s: file format %s\n"
-msgstr ""
-"\n"
-"%s: æª”æ¡ˆæ ¼å¼ %s\n"
-
-#: objdump.c:2662
-#, c-format
-msgid "%s: printing debugging information failed"
-msgstr "%s:列å°é™¤éŒ¯è³‡è¨Šå¤±æ•—"
-
-#: objdump.c:2753
-#, c-format
-msgid "In archive %s:\n"
-msgstr "在ä¿å­˜æª” %s 中:\n"
-
-#: objdump.c:2873
-msgid "unrecognized -E option"
-msgstr "無法識別的 -E é¸é …"
-
-#: objdump.c:2884
-#, c-format
-msgid "unrecognized --endian type `%s'"
-msgstr "無法識別的 --endian 類型「%sã€"
-
-#: rdcoff.c:196
-#, c-format
-msgid "parse_coff_type: Bad type code 0x%x"
-msgstr "parse_coff_type:ä¸è‰¯çš„類型碼 0x%x"
-
-#: rdcoff.c:404 rdcoff.c:509 rdcoff.c:697
-#, c-format
-msgid "bfd_coff_get_syment failed: %s"
-msgstr "bfd_coff_get_syment 失敗:%s"
-
-#: rdcoff.c:420 rdcoff.c:717
-#, c-format
-msgid "bfd_coff_get_auxent failed: %s"
-msgstr "bfd_coff_get_auxent 失敗:%s"
-
-#: rdcoff.c:784
-#, c-format
-msgid "%ld: .bf without preceding function"
-msgstr "%ld: .bf 未å«å‰å°Žå‡½æ•¸"
-
-#: rdcoff.c:834
-#, c-format
-msgid "%ld: unexpected .ef\n"
-msgstr "%ld:æ„外的 .ef\n"
-
-#: rddbg.c:85
-#, c-format
-msgid "%s: no recognized debugging information"
-msgstr "%s:未識別的除錯資訊"
-
-#: rddbg.c:394
-#, c-format
-msgid "Last stabs entries before error:\n"
-msgstr "錯誤發生å‰æœ€å¾Œçš„ stabs 進入點:\n"
-
-#: readelf.c:272
-#, c-format
-msgid "%s: Error: "
-msgstr "%s:錯誤:"
-
-#: readelf.c:283
-#, c-format
-msgid "%s: Warning: "
-msgstr "%s:警告:"
-
-#: readelf.c:298
-#, c-format
-msgid "Unable to seek to 0x%x for %s\n"
-msgstr "無法定ä½åˆ° %2$s çš„ 0x%1$x\n"
-
-#: readelf.c:310
-#, c-format
-msgid "Out of memory allocating 0x%x bytes for %s\n"
-msgstr "åˆ†é… 0x%x ä½å…ƒçµ„給 %s 時產生記憶體ä¸è¶³\n"
-
-#: readelf.c:318
-#, c-format
-msgid "Unable to read in 0x%x bytes of %s\n"
-msgstr "無法讀入 %2$s çš„ 0x%1$x ä½å…ƒçµ„\n"
-
-#: readelf.c:364 readelf.c:412 readelf.c:615 readelf.c:647
-#, c-format
-msgid "Unhandled data length: %d\n"
-msgstr "未處ç†çš„資料長度:%d\n"
-
-#: readelf.c:752
-msgid "Don't know about relocations on this machine architecture\n"
-msgstr "ä¸çŸ¥é“關於本機器系統架構中é‡å®šä½çš„情æ³\n"
-
-#: readelf.c:772 readelf.c:799 readelf.c:842 readelf.c:869
-msgid "relocs"
-msgstr "é‡å®šä½"
-
-#: readelf.c:782 readelf.c:809 readelf.c:852 readelf.c:879
-msgid "out of memory parsing relocs"
-msgstr "解æžé‡å®šä½æ™‚記憶體ä¸è¶³"
-
-#: readelf.c:933
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
-msgstr " åç§»é‡ è³‡è¨Š é¡žåž‹ 符號值 符號å稱 + 加數\n"
-
-#: readelf.c:935
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
-msgstr " åç§»é‡ è³‡è¨Š é¡žåž‹ 符號值 符號å稱 + 加數\n"
-
-#: readelf.c:940
-#, c-format
-msgid " Offset Info Type Sym. Value Symbol's Name\n"
-msgstr " åç§»é‡ è³‡è¨Š é¡žåž‹ 符號值 符號å稱\n"
-
-#: readelf.c:942
-#, c-format
-msgid " Offset Info Type Sym.Value Sym. Name\n"
-msgstr " åç§»é‡ è³‡è¨Š é¡žåž‹ 符號值 符號å稱\n"
-
-#: readelf.c:950
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
-msgstr " åç§»é‡ è³‡è¨Š é¡žåž‹ 符號值 符號å稱 + 加數\n"
-
-#: readelf.c:952
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
-msgstr " åç§»é‡ è³‡è¨Š é¡žåž‹ 符號值 符號å稱 + 加數\n"
-
-#: readelf.c:957
-#, c-format
-msgid " Offset Info Type Symbol's Value Symbol's Name\n"
-msgstr " åç§»é‡ è³‡è¨Š é¡žåž‹ 符號值 符號å稱\n"
-
-#: readelf.c:959
-#, c-format
-msgid " Offset Info Type Sym. Value Sym. Name\n"
-msgstr " åç§»é‡ è³‡è¨Š é¡žåž‹ 符號值 符號å稱\n"
-
-#: readelf.c:1239 readelf.c:1241 readelf.c:1324 readelf.c:1326 readelf.c:1335
-#: readelf.c:1337
-#, c-format
-msgid "unrecognized: %-7lx"
-msgstr "ä¸èƒ½è­˜åˆ¥çš„:%-7lx"
-
-#: readelf.c:1295
-#, c-format
-msgid "<string table index: %3ld>"
-msgstr "<字串表索引:%3ld>"
-
-#: readelf.c:1297
-#, c-format
-msgid "<corrupt string table index: %3ld>"
-msgstr "<毀æ字串表索引:%3ld>"
-
-#: readelf.c:1569
-#, c-format
-msgid "Processor Specific: %lx"
-msgstr "特定處ç†å™¨ï¼š%lx"
-
-#: readelf.c:1588
-#, c-format
-msgid "Operating System specific: %lx"
-msgstr "特定作業系統:%lx"
-
-#: readelf.c:1592 readelf.c:2370
-#, c-format
-msgid "<unknown>: %lx"
-msgstr "<未知>:%lx"
-
-#: readelf.c:1605
-msgid "NONE (None)"
-msgstr "NONE (ç„¡)"
-
-#: readelf.c:1606
-msgid "REL (Relocatable file)"
-msgstr "REL (å¯é‡å®šä½æª”案)"
-
-#: readelf.c:1607
-msgid "EXEC (Executable file)"
-msgstr "EXEC (å¯åŸ·è¡Œæª”案)"
-
-#: readelf.c:1608
-msgid "DYN (Shared object file)"
-msgstr "DYN (共享物件檔案)"
-
-#: readelf.c:1609
-msgid "CORE (Core file)"
-msgstr "CORE (核心檔案)"
-
-#: readelf.c:1613
-#, c-format
-msgid "Processor Specific: (%x)"
-msgstr "特定處ç†å™¨ï¼š(%x)"
-
-#: readelf.c:1615
-#, c-format
-msgid "OS Specific: (%x)"
-msgstr "特定作業系統:(%x)"
-
-#: readelf.c:1617 readelf.c:1724 readelf.c:2554
-#, c-format
-msgid "<unknown>: %x"
-msgstr "<未知>:%x"
-
-#: readelf.c:1629
-msgid "None"
-msgstr "ç„¡"
-
-#: readelf.c:2229
-msgid "Standalone App"
-msgstr "ç¨ç«‹æ‡‰ç”¨ç¨‹å¼"
-
-#: readelf.c:2232 readelf.c:2952 readelf.c:2968
-#, c-format
-msgid "<unknown: %x>"
-msgstr "<未知:%x>"
-
-#: readelf.c:2597
-#, c-format
-msgid "Usage: readelf <option(s)> elf-file(s)\n"
-msgstr "用法:readelf <é¸é …> elf-檔案\n"
-
-#: readelf.c:2598
-#, c-format
-msgid " Display information about the contents of ELF format files\n"
-msgstr " 顯示關於 ELF æ ¼å¼æª”案內容的資訊\n"
-
-#: readelf.c:2599
-#, c-format
-msgid ""
-" Options are:\n"
-" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Display the ELF file header\n"
-" -l --program-headers Display the program headers\n"
-" --segments An alias for --program-headers\n"
-" -S --section-headers Display the sections' header\n"
-" --sections An alias for --section-headers\n"
-" -g --section-groups Display the section groups\n"
-" -e --headers Equivalent to: -h -l -S\n"
-" -s --syms Display the symbol table\n"
-" --symbols An alias for --syms\n"
-" -n --notes Display the core notes (if present)\n"
-" -r --relocs Display the relocations (if present)\n"
-" -u --unwind Display the unwind info (if present)\n"
-" -d --dynamic Display the dynamic section (if present)\n"
-" -V --version-info Display the version sections (if present)\n"
-" -A --arch-specific Display architecture specific information (if any).\n"
-" -D --use-dynamic Use the dynamic section info when displaying symbols\n"
-" -x --hex-dump=<number> Dump the contents of section <number>\n"
-" -w[liaprmfFsoR] or\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n"
-" Display the contents of DWARF2 debug sections\n"
-msgstr ""
-" é¸é …為:\n"
-" -a --all ç­‰åŒæ–¼ï¼š-h -l -S -s -r -d -V -A -I\n"
-" -h --file-header 顯示 ELF 檔案標頭\n"
-" -l --program-headers 顯示程å¼æ¨™é ­\n"
-" --segments --program-headers 的別å\n"
-" -S --section-headers 顯示å€æ®µæ¨™é ­\n"
-" --sections --section-headers 的別å\n"
-" -g --section-groups 顯示å€æ®µç¾¤çµ„\n"
-" -e --headers ç­‰åŒæ–¼ï¼š-h -l -S\n"
-" -s --syms 顯示符號表\n"
-" --symbols --syms 的別å\n"
-" -n --notes 顯示核心備註 (如果有的話)\n"
-" -r --relocs 顯示é‡å®šä½ (如果有的話)\n"
-" -u --unwind 顯示展開(unwind)資訊 (如果有的話)\n"
-" -d --dynamic 顯示動態å€æ®µ (如果有的話)\n"
-" -V --version-info 顯示版本å€æ®µ (如果有的話)\n"
-" -A --arch-specific 顯示系統架構特有的資訊 (如果有的話)\n"
-" -D --use-dynamic 顯示符號的時候使用動態å€æ®µè³‡è¨Š\n"
-" -x --hex-dump=<編號> 輸出 <編號> å€æ®µçš„內容\n"
-" -w[liaprmfFsoR] 或\n"
-" --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n"
-" 顯示 DWARF2 除錯å€æ®µçš„內容\n"
-
-#: readelf.c:2622
-#, c-format
-msgid ""
-" -i --instruction-dump=<number>\n"
-" Disassemble the contents of section <number>\n"
-msgstr ""
-" -i --instruction-dump=<編號>\n"
-" å組譯å€æ®µ <編號> 的內容\n"
-
-#: readelf.c:2626
-#, c-format
-msgid ""
-" -I --histogram Display histogram of bucket list lengths\n"
-" -W --wide Allow output width to exceed 80 characters\n"
-" -H --help Display this information\n"
-" -v --version Display the version number of readelf\n"
-msgstr ""
-" -I --histogram 顯示存儲桶列表長度的長æ¢åœ–\n"
-" -W --wide å…è¨±è¼¸å‡ºå¯¬åº¦è¶…éŽ 80 個字元\n"
-" -H --help 顯示本資訊\n"
-" -v --version 顯示 readelf 的版本號碼\n"
-
-#: readelf.c:2651 readelf.c:12118
-msgid "Out of memory allocating dump request table."
-msgstr "傾å°éœ€æ±‚表時記憶體定ä½ä¸è¶³ã€‚"
-
-#: readelf.c:2820 readelf.c:2888
-#, c-format
-msgid "Unrecognized debug option '%s'\n"
-msgstr "無法識別的除錯é¸é …「%sã€\n"
-
-#: readelf.c:2922
-#, c-format
-msgid "Invalid option '-%c'\n"
-msgstr "無效的é¸é …「-%cã€\n"
-
-#: readelf.c:2936
-msgid "Nothing to do.\n"
-msgstr "無事å¯åšã€‚\n"
-
-#: readelf.c:2948 readelf.c:2964 readelf.c:5906
-msgid "none"
-msgstr "ç„¡"
-
-#: readelf.c:2965
-msgid "2's complement, little endian"
-msgstr "2 的補數,å°å°¾åº(little endian)"
-
-#: readelf.c:2966
-msgid "2's complement, big endian"
-msgstr "2 的補數,大尾åº(big endian)"
-
-#: readelf.c:2984
-msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
-msgstr "ä¸æ˜¯ ELF 檔案 - 它開頭的魔術ä½å…ƒçµ„錯誤\n"
-
-#: readelf.c:2992
-#, c-format
-msgid "ELF Header:\n"
-msgstr "ELF 檔頭:\n"
-
-#: readelf.c:2993
-#, c-format
-msgid " Magic: "
-msgstr "魔術ä½å…ƒçµ„:"
-
-#: readelf.c:2997
-#, c-format
-msgid " Class: %s\n"
-msgstr " 類別: %s\n"
-
-#: readelf.c:2999
-#, c-format
-msgid " Data: %s\n"
-msgstr " 資料: %s\n"
-
-#: readelf.c:3001
-#, c-format
-msgid " Version: %d %s\n"
-msgstr " 版本: %d %s\n"
-
-#: readelf.c:3008
-#, c-format
-msgid " OS/ABI: %s\n"
-msgstr " OS/ABI: %s\n"
-
-#: readelf.c:3010
-#, c-format
-msgid " ABI Version: %d\n"
-msgstr " ABI 版本: %d\n"
-
-#: readelf.c:3012
-#, c-format
-msgid " Type: %s\n"
-msgstr " é¡žåž‹: %s\n"
-
-#: readelf.c:3014
-#, c-format
-msgid " Machine: %s\n"
-msgstr " 系統架構: %s\n"
-
-#: readelf.c:3016
-#, c-format
-msgid " Version: 0x%lx\n"
-msgstr " 版本: 0x%lx\n"
-
-#: readelf.c:3019
-#, c-format
-msgid " Entry point address: "
-msgstr " 進入點ä½å€ï¼š "
-
-#: readelf.c:3021
-#, c-format
-msgid ""
-"\n"
-" Start of program headers: "
-msgstr ""
-"\n"
-" 程å¼æ¨™é ­èµ·é»žï¼š "
-
-#: readelf.c:3023
-#, c-format
-msgid ""
-" (bytes into file)\n"
-" Start of section headers: "
-msgstr ""
-" (檔案內之ä½å…ƒçµ„)\n"
-" å€æ®µæ¨™é ­èµ·é»žï¼š "
-
-#: readelf.c:3025
-#, c-format
-msgid " (bytes into file)\n"
-msgstr " (檔案內之ä½å…ƒçµ„)\n"
-
-#: readelf.c:3027
-#, c-format
-msgid " Flags: 0x%lx%s\n"
-msgstr " 旗標: 0x%lx%s\n"
-
-#: readelf.c:3030
-#, c-format
-msgid " Size of this header: %ld (bytes)\n"
-msgstr " 此標頭的大å°ï¼š %ld (ä½å…ƒçµ„)\n"
-
-#: readelf.c:3032
-#, c-format
-msgid " Size of program headers: %ld (bytes)\n"
-msgstr " 程å¼æ¨™é ­å¤§å°ï¼š %ld (ä½å…ƒçµ„)\n"
-
-#: readelf.c:3034
-#, c-format
-msgid " Number of program headers: %ld\n"
-msgstr " 程å¼æ¨™é ­æ•¸é‡ï¼š %ld\n"
-
-#: readelf.c:3036
-#, c-format
-msgid " Size of section headers: %ld (bytes)\n"
-msgstr " å€æ®µæ¨™é ­å¤§å°ï¼š %ld (ä½å…ƒçµ„)\n"
-
-#: readelf.c:3038
-#, c-format
-msgid " Number of section headers: %ld"
-msgstr " å€æ®µæ¨™é ­æ•¸é‡ï¼š %ld"
-
-#: readelf.c:3043
-#, c-format
-msgid " Section header string table index: %ld"
-msgstr " 字串表索引å€æ®µæ¨™é ­ï¼š %ld"
-
-#: readelf.c:3074 readelf.c:3107
-msgid "program headers"
-msgstr "程å¼æ¨™é ­"
-
-#: readelf.c:3145 readelf.c:3446 readelf.c:3487 readelf.c:3546 readelf.c:3609
-#: readelf.c:3993 readelf.c:4017 readelf.c:5247 readelf.c:5291 readelf.c:5489
-#: readelf.c:6450 readelf.c:6464 readelf.c:11493 readelf.c:11912
-#: readelf.c:11979
-msgid "Out of memory\n"
-msgstr "記憶體ä¸è¶³\n"
-
-#: readelf.c:3172
-#, c-format
-msgid ""
-"\n"
-"There are no program headers in this file.\n"
-msgstr ""
-"\n"
-"本檔案中沒有程å¼æ¨™é ­ã€‚\n"
-
-#: readelf.c:3178
-#, c-format
-msgid ""
-"\n"
-"Elf file type is %s\n"
-msgstr ""
-"\n"
-"Elf 檔案類型為 %s\n"
-
-#: readelf.c:3179
-#, c-format
-msgid "Entry point "
-msgstr "進入點 "
-
-#: readelf.c:3181
-#, c-format
-msgid ""
-"\n"
-"There are %d program headers, starting at offset "
-msgstr ""
-"\n"
-"共有 %d 個程å¼æ¨™é ­ï¼Œé–‹å§‹æ–¼å移é‡"
-
-#: readelf.c:3193 readelf.c:3195
-#, c-format
-msgid ""
-"\n"
-"Program Headers:\n"
-msgstr ""
-"\n"
-"程å¼æ¨™é ­ï¼š\n"
-
-#: readelf.c:3199
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " é¡žåž‹ åç§»é‡ è™›æ“¬ä½å€ 實體ä½å€ æª”æ¡ˆå¤§å° è¨˜æ†¶å¤§å° æ——æ¨™ å°é½Š\n"
-
-#: readelf.c:3202
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
-msgstr " é¡žåž‹ åç§»é‡ è™›æ“¬ä½å€ 實體ä½å€ æª”æ¡ˆå¤§å° è¨˜æ†¶å¤§å° æ——æ¨™ å°é½Š\n"
-
-#: readelf.c:3206
-#, c-format
-msgid " Type Offset VirtAddr PhysAddr\n"
-msgstr " é¡žåž‹ åç§»é‡ è™›æ“¬ä½å€ 實體ä½å€\n"
-
-#: readelf.c:3208
-#, c-format
-msgid " FileSiz MemSiz Flags Align\n"
-msgstr " æª”æ¡ˆå¤§å° è¨˜æ†¶å¤§å° æ——æ¨™ å°é½Š\n"
-
-#: readelf.c:3301
-msgid "more than one dynamic segment\n"
-msgstr "多於一個動態節å€\n"
-
-#: readelf.c:3312
-msgid "no .dynamic section in the dynamic segment"
-msgstr "在動態節å€ä¸­æ²’有動態å€æ®µ"
-
-#: readelf.c:3321
-msgid "the .dynamic section is not contained within the dynamic segment"
-msgstr "在動態節å€ä¸­æœªåŒ…å«å‹•æ…‹å€æ®µ"
-
-#: readelf.c:3323
-msgid "the .dynamic section is not the first section in the dynamic segment."
-msgstr "動態節å€ä¸­çš„第一å€æ®µä¸¦éžå‹•æ…‹å€æ®µ"
-
-#: readelf.c:3337
-msgid "Unable to find program interpreter name\n"
-msgstr "無法找到程å¼è§£è­¯å™¨å稱\n"
-
-#: readelf.c:3344
-#, c-format
-msgid ""
-"\n"
-" [Requesting program interpreter: %s]"
-msgstr ""
-"\n"
-" [正在è¦æ±‚程å¼è§£è­¯å™¨ï¼š%s]"
-
-#: readelf.c:3356
-#, c-format
-msgid ""
-"\n"
-" Section to Segment mapping:\n"
-msgstr ""
-"\n"
-" å€æ®µåˆ°ç¯€å€æ˜ å°„中:\n"
-
-#: readelf.c:3357
-#, c-format
-msgid " Segment Sections...\n"
-msgstr " 節å€æ®µ...\n"
-
-#: readelf.c:3408
-msgid "Cannot interpret virtual addresses without program headers.\n"
-msgstr "無法ä¸é ç¨‹å¼æ¨™é ­è€Œè§£è­¯è™›æ“¬ä½å€\n"
-
-#: readelf.c:3424
-#, c-format
-msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
-msgstr "虛擬ä½å€ 0x%lx ä¸ä½æ–¼ä»»ä½• PT_LOAD 節å€ä¸­ã€‚\n"
-
-#: readelf.c:3438 readelf.c:3479
-msgid "section headers"
-msgstr "å€æ®µæ¨™é ­"
-
-#: readelf.c:3523 readelf.c:3586
-msgid "symbols"
-msgstr "符號"
-
-#: readelf.c:3533 readelf.c:3596
-msgid "symtab shndx"
-msgstr "符號分é ç´¢å¼•"
-
-#: readelf.c:3697 readelf.c:3977
-#, c-format
-msgid ""
-"\n"
-"There are no sections in this file.\n"
-msgstr ""
-"\n"
-"本檔案中沒有å€æ®µã€‚\n"
-
-#: readelf.c:3703
-#, c-format
-msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr "共有 %d 個å€æ®µæ¨™é ­ï¼Œå¾žåç§»é‡ 0x%lx 開始:\n"
-
-#: readelf.c:3720 readelf.c:4079 readelf.c:4290 readelf.c:4591 readelf.c:5011
-#: readelf.c:6618
-msgid "string table"
-msgstr "字串表"
-
-#: readelf.c:3765
-msgid "File contains multiple dynamic symbol tables\n"
-msgstr "檔案å«æœ‰å¤šå€‹å‹•æ…‹ç¬¦è™Ÿè¡¨\n"
-
-#: readelf.c:3777
-msgid "File contains multiple dynamic string tables\n"
-msgstr "檔案å«æœ‰å¤šå€‹å‹•æ…‹å­—串表\n"
-
-#: readelf.c:3782
-msgid "dynamic strings"
-msgstr "動態字串"
-
-#: readelf.c:3789
-msgid "File contains multiple symtab shndx tables\n"
-msgstr "檔案å«æœ‰å¤šå€‹ç¬¦è™Ÿåˆ†é ç´¢å¼•è¡¨\n"
-
-#: readelf.c:3828
-#, c-format
-msgid ""
-"\n"
-"Section Headers:\n"
-msgstr ""
-"\n"
-"å€æ®µæ¨™é ­ï¼š\n"
-
-#: readelf.c:3830
-#, c-format
-msgid ""
-"\n"
-"Section Header:\n"
-msgstr ""
-"\n"
-"å€æ®µæ¨™é ­ï¼š\n"
-
-#: readelf.c:3834
-#, c-format
-msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
-msgstr " [號] å稱 é¡žåž‹ ä½å€ å移 å¤§å° å…¨ 旗標 é€£çµ è³‡ 齊\n"
-
-#: readelf.c:3837
-#, c-format
-msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
-msgstr " [號] å稱 é¡žåž‹ ä½å€ å移 å¤§å° å…¨ 標 連 資 齊\n"
-
-#: readelf.c:3840
-#, c-format
-msgid " [Nr] Name Type Address Offset\n"
-msgstr " [號] å稱 é¡žåž‹ ä½å€ å移é‡\n"
-
-#: readelf.c:3841
-#, c-format
-msgid " Size EntSize Flags Link Info Align\n"
-msgstr " å¤§å° å…¨é«”å¤§å° æ——æ¨™ é€£çµ è³‡è¨Š å°é½Š\n"
-
-#: readelf.c:3936
-#, c-format
-msgid ""
-"Key to Flags:\n"
-" W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-" I (info), L (link order), G (group), x (unknown)\n"
-" O (extra OS processing required) o (OS specific), p (processor specific)\n"
-msgstr ""
-"旗標關éµå­—:\n"
-" W (寫入), A (定ä½), X (執行), M (èžåˆ), S (字串)\n"
-" I (資訊), L (連çµé †åº), G (群組), x (未知)\n"
-" O (è¦æ±‚é¡å¤–的作業系統處ç†) o (特定作業系統), p (特定處ç†å™¨)\n"
-
-#: readelf.c:3954
-#, c-format
-msgid "[<unknown>: 0x%x]"
-msgstr "[<未知>: 0x%x]"
-
-#: readelf.c:3984
-msgid "Section headers are not available!\n"
-msgstr "å€æ®µæ¨™é ­ç„¡æ³•å–用ï¼\n"
-
-#: readelf.c:4008
-#, c-format
-msgid ""
-"\n"
-"There are no section groups in this file.\n"
-msgstr ""
-"\n"
-"本檔案中沒有å€æ®µç¾¤çµ„。\n"
-
-#: readelf.c:4042
-#, c-format
-msgid "Bad sh_link in group section `%s'\n"
-msgstr "在群組å€æ®µã€Œ%sã€ä¸­ä¸è‰¯çš„ sh_link\n"
-
-#: readelf.c:4061
-#, c-format
-msgid "Bad sh_info in group section `%s'\n"
-msgstr "在群組å€æ®µã€Œ%sã€ä¸­ä¸è‰¯çš„ sh_info\n"
-
-#: readelf.c:4085 readelf.c:6947
-msgid "section data"
-msgstr "å€æ®µè³‡æ–™"
-
-#: readelf.c:4097
-#, c-format
-msgid " [Index] Name\n"
-msgstr " [索引] å稱\n"
-
-#: readelf.c:4114
-#, c-format
-msgid "section [%5u] already in group section [%5u]\n"
-msgstr "å€æ®µ [%5u] 已在群組å€æ®µ [%5u] 之中\n"
-
-#: readelf.c:4127
-#, c-format
-msgid "section 0 in group section [%5u]\n"
-msgstr "å€æ®µ 0 在群組å€æ®µ [%5u] 之中\n"
-
-#: readelf.c:4224
-#, c-format
-msgid ""
-"\n"
-"'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
-msgstr ""
-"\n"
-"「%sã€ä½æ–¼åç§»é‡ 0x%lx çš„é‡å®šä½å€æ®µå«æœ‰ %ld 個ä½å…ƒçµ„:\n"
-
-#: readelf.c:4236
-#, c-format
-msgid ""
-"\n"
-"There are no dynamic relocations in this file.\n"
-msgstr ""
-"\n"
-"本檔案中沒有動態é‡å®šä½ã€‚\n"
-
-#: readelf.c:4260
-#, c-format
-msgid ""
-"\n"
-"Relocation section "
-msgstr ""
-"\n"
-"é‡å®šä½å€æ®µ "
-
-#: readelf.c:4265 readelf.c:4666 readelf.c:4680 readelf.c:5025
-#, c-format
-msgid "'%s'"
-msgstr "「%sã€"
-
-#: readelf.c:4267 readelf.c:4682 readelf.c:5027
-#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr " ä½æ–¼åç§»é‡ 0x%lx å«æœ‰ %lu 個æ¢ç›®ï¼š\n"
-
-#: readelf.c:4308
-#, c-format
-msgid ""
-"\n"
-"There are no relocations in this file.\n"
-msgstr ""
-"\n"
-"該檔案中沒有é‡å®šä½è³‡è¨Šã€‚\n"
-
-#: readelf.c:4482 readelf.c:4862
-msgid "unwind table"
-msgstr "展開表格"
-
-#: readelf.c:4540 readelf.c:4959
-#, c-format
-msgid "Skipping unexpected relocation type %s\n"
-msgstr "è·³éŽæ„外的é‡å®šä½é¡žåž‹ %s\n"
-
-#: readelf.c:4598 readelf.c:5018 readelf.c:5069
-#, c-format
-msgid ""
-"\n"
-"There are no unwind sections in this file.\n"
-msgstr ""
-"\n"
-"本檔案中沒有展開的å€æ®µã€‚\n"
-
-#: readelf.c:4661
-#, c-format
-msgid ""
-"\n"
-"Could not find unwind info section for "
-msgstr ""
-"\n"
-"找ä¸åˆ°å±•é–‹çš„資訊å€æ®µä¹‹æ–¼"
-
-#: readelf.c:4673
-msgid "unwind info"
-msgstr "展開的資訊"
-
-#: readelf.c:4675 readelf.c:5024
-#, c-format
-msgid ""
-"\n"
-"Unwind section "
-msgstr ""
-"\n"
-"展開的å€æ®µ"
-
-#: readelf.c:5228 readelf.c:5272
-msgid "dynamic section"
-msgstr "å‹•æ…‹å€æ®µ"
-
-#: readelf.c:5349
-#, c-format
-msgid ""
-"\n"
-"There is no dynamic section in this file.\n"
-msgstr ""
-"\n"
-"本檔案沒有動態å€æ®µã€‚\n"
-
-#: readelf.c:5387
-msgid "Unable to seek to end of file!"
-msgstr "無法æœç´¢çš„檔案çµå°¾ï¼"
-
-#: readelf.c:5400
-msgid "Unable to determine the number of symbols to load\n"
-msgstr "無法確定è¦è®€å…¥çš„符號數é‡\n"
-
-#: readelf.c:5435
-msgid "Unable to seek to end of file\n"
-msgstr "無法æœç´¢åˆ°æª”案末尾\n"
-
-#: readelf.c:5442
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr "無法確定動態字串表的長度\n"
-
-#: readelf.c:5447
-msgid "dynamic string table"
-msgstr "動態字串表"
-
-#: readelf.c:5482
-msgid "symbol information"
-msgstr "符號資訊"
-
-#: readelf.c:5507
-#, c-format
-msgid ""
-"\n"
-"Dynamic section at offset 0x%lx contains %u entries:\n"
-msgstr ""
-"\n"
-"ä½æ–¼åç§»é‡ 0x%lx 處的動態å€æ®µå«æœ‰ %u 個æ¢ç›®ï¼š\n"
-
-#: readelf.c:5510
-#, c-format
-msgid " Tag Type Name/Value\n"
-msgstr " 標記 é¡žåž‹ å稱/值\n"
-
-#: readelf.c:5546
-#, c-format
-msgid "Auxiliary library"
-msgstr "附加函å¼åº«"
-
-#: readelf.c:5550
-#, c-format
-msgid "Filter library"
-msgstr "éŽæ¿¾å™¨å‡½å¼åº«"
-
-#: readelf.c:5554
-#, c-format
-msgid "Configuration file"
-msgstr "é…置檔案"
-
-#: readelf.c:5558
-#, c-format
-msgid "Dependency audit library"
-msgstr "ä¾å­˜å¯©æŸ¥å‡½å¼åº«"
-
-#: readelf.c:5562
-#, c-format
-msgid "Audit library"
-msgstr "審查函å¼åº«"
-
-#: readelf.c:5580 readelf.c:5608 readelf.c:5636
-#, c-format
-msgid "Flags:"
-msgstr "旗標:"
-
-#: readelf.c:5583 readelf.c:5611 readelf.c:5638
-#, c-format
-msgid " None\n"
-msgstr " ç„¡\n"
-
-#: readelf.c:5759
-#, c-format
-msgid "Shared library: [%s]"
-msgstr "共享函å¼åº«ï¼š[%s]"
-
-#: readelf.c:5762
-#, c-format
-msgid " program interpreter"
-msgstr " 程å¼è§£è­¯å™¨"
-
-#: readelf.c:5766
-#, c-format
-msgid "Library soname: [%s]"
-msgstr "函å¼åº«æª”å:[%s]"
-
-#: readelf.c:5770
-#, c-format
-msgid "Library rpath: [%s]"
-msgstr "函å¼åº«è·¯å¾‘:[%s]"
-
-#: readelf.c:5774
-#, c-format
-msgid "Library runpath: [%s]"
-msgstr "函å¼åº«åŸ·è¡Œè·¯å¾‘:[%s]"
-
-#: readelf.c:5837
-#, c-format
-msgid "Not needed object: [%s]\n"
-msgstr "ä¸éœ€è¦çš„物件:[%s]\n"
-
-#: readelf.c:5951
-#, c-format
-msgid ""
-"\n"
-"Version definition section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"版本定義å€æ®µã€Œ%sã€å«æœ‰ %ld 個æ¢ç›®ï¼š\n"
-
-#: readelf.c:5954
-#, c-format
-msgid " Addr: 0x"
-msgstr " ä½å€ï¼š0x"
-
-#: readelf.c:5956 readelf.c:6148
-#, c-format
-msgid " Offset: %#08lx Link: %lx (%s)\n"
-msgstr " å移é‡ï¼š%#08lx 連çµï¼š%lx (%s)\n"
-
-#: readelf.c:5961
-msgid "version definition section"
-msgstr "版本定義å€æ®µ"
-
-#: readelf.c:5987
-#, c-format
-msgid " %#06x: Rev: %d Flags: %s"
-msgstr " %#06x: 修訂: %d 旗標: %s"
-
-#: readelf.c:5990
-#, c-format
-msgid " Index: %d Cnt: %d "
-msgstr " 索引: %d 計數: %d "
-
-#: readelf.c:6001
-#, c-format
-msgid "Name: %s\n"
-msgstr "å稱:%s\n"
-
-#: readelf.c:6003
-#, c-format
-msgid "Name index: %ld\n"
-msgstr "å稱索引:%ld\n"
-
-#: readelf.c:6018
-#, c-format
-msgid " %#06x: Parent %d: %s\n"
-msgstr " %#06x: å‰ä¸€ç‰ˆ %d: %s\n"
-
-#: readelf.c:6021
-#, c-format
-msgid " %#06x: Parent %d, name index: %ld\n"
-msgstr " %#06x: å‰ä¸€ç‰ˆ %d, å稱索引: %ld\n"
-
-#: readelf.c:6040
-#, c-format
-msgid ""
-"\n"
-"Version needs section '%s' contains %ld entries:\n"
-msgstr ""
-"\n"
-"版本需è¦å€æ®µã€Œ%sã€å«æœ‰ %ld 個æ¢ç›®ï¼š\n"
-
-#: readelf.c:6043
-#, c-format
-msgid " Addr: 0x"
-msgstr " ä½å€ï¼š0x"
-
-#: readelf.c:6045
-#, c-format
-msgid " Offset: %#08lx Link to section: %ld (%s)\n"
-msgstr " å移é‡ï¼š%#08lx 連接到å€æ®µï¼š%ld (%s)\n"
-
-#: readelf.c:6050
-msgid "version need section"
-msgstr "版本需è¦å€æ®µ"
-
-#: readelf.c:6072
-#, c-format
-msgid " %#06x: Version: %d"
-msgstr " %#06x: 版本: %d"
-
-#: readelf.c:6075
-#, c-format
-msgid " File: %s"
-msgstr " 檔案:%s"
-
-#: readelf.c:6077
-#, c-format
-msgid " File: %lx"
-msgstr " 檔案:%lx"
-
-#: readelf.c:6079
-#, c-format
-msgid " Cnt: %d\n"
-msgstr " 計數:%d\n"
-
-#: readelf.c:6097
-#, c-format
-msgid " %#06x: Name: %s"
-msgstr " %#06x:å稱:%s"
-
-#: readelf.c:6100
-#, c-format
-msgid " %#06x: Name index: %lx"
-msgstr " %#06x:å稱索引:%lx"
-
-#: readelf.c:6103
-#, c-format
-msgid " Flags: %s Version: %d\n"
-msgstr " 旗標:%s 版本:%d\n"
-
-#: readelf.c:6139
-msgid "version string table"
-msgstr "版本字串表"
-
-#: readelf.c:6143
-#, c-format
-msgid ""
-"\n"
-"Version symbols section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"版本符號å€æ®µã€Œ%sã€å«æœ‰ %d 個æ¢ç›®ï¼š\n"
-
-#: readelf.c:6146
-#, c-format
-msgid " Addr: "
-msgstr " ä½å€ï¼š"
-
-#: readelf.c:6156
-msgid "version symbol data"
-msgstr "版本符號資料"
-
-#: readelf.c:6183
-msgid " 0 (*local*) "
-msgstr " 0 (*本地*) "
-
-#: readelf.c:6187
-msgid " 1 (*global*) "
-msgstr " 1 (*全域*) "
-
-#: readelf.c:6223 readelf.c:6677
-msgid "version need"
-msgstr "版本需è¦"
-
-#: readelf.c:6233
-msgid "version need aux (2)"
-msgstr "版本需è¦å¤–部 (2)"
-
-#: readelf.c:6275 readelf.c:6740
-msgid "version def"
-msgstr "版本定義"
-
-#: readelf.c:6294 readelf.c:6755
-msgid "version def aux"
-msgstr "版本定義外部"
-
-#: readelf.c:6325
-#, c-format
-msgid ""
-"\n"
-"No version information found in this file.\n"
-msgstr ""
-"\n"
-"本檔案中沒有å€æ®µè³‡è¨Šã€‚\n"
-
-#: readelf.c:6456
-msgid "Unable to read in dynamic data\n"
-msgstr "無法讀入動態資料\n"
-
-#: readelf.c:6509
-msgid "Unable to seek to start of dynamic information"
-msgstr "無法定ä½åˆ°å‹•æ…‹è³‡è¨Šçš„起點"
-
-#: readelf.c:6515
-msgid "Failed to read in number of buckets\n"
-msgstr "讀入存儲桶數é‡å¤±æ•—\n"
-
-#: readelf.c:6521
-msgid "Failed to read in number of chains\n"
-msgstr "讀入éˆçµæ•¸é‡å¤±æ•—\n"
-
-#: readelf.c:6541
-#, c-format
-msgid ""
-"\n"
-"Symbol table for image:\n"
-msgstr ""
-"\n"
-"映åƒç¬¦è™Ÿè¡¨ï¼š\n"
-
-#: readelf.c:6543
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " 存儲桶號: 值 å¤§å° é¡žåž‹ ç´„æŸ ç‰ˆæœ¬ 索引å稱\n"
-
-#: readelf.c:6545
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " 存儲桶號: 值 å¤§å° é¡žåž‹ ç´„æŸ ç‰ˆæœ¬ 索引å稱\n"
-
-#: readelf.c:6597
-#, c-format
-msgid ""
-"\n"
-"Symbol table '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"符號表「%sã€å«æœ‰ %lu 個æ¢ç›®ï¼š\n"
-
-#: readelf.c:6601
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " 編號: 值 å¤§å° é¡žåž‹ ç´„æŸ ç‰ˆæœ¬ 索引å稱\n"
-
-#: readelf.c:6603
-#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " 編號: 值 å¤§å° é¡žåž‹ ç´„æŸ ç‰ˆæœ¬ 索引å稱\n"
-
-#: readelf.c:6649
-msgid "version data"
-msgstr "版本資料"
-
-#: readelf.c:6690
-msgid "version need aux (3)"
-msgstr "版本需è¦å¤–部 (3)"
-
-#: readelf.c:6715
-msgid "bad dynamic symbol"
-msgstr "ä¸è‰¯çš„動態符號"
-
-#: readelf.c:6778
-#, c-format
-msgid ""
-"\n"
-"Dynamic symbol information is not available for displaying symbols.\n"
-msgstr ""
-"\n"
-"無法å–得顯示符號所需之動態符號資訊。\n"
-
-#: readelf.c:6790
-#, c-format
-msgid ""
-"\n"
-"Histogram for bucket list length (total of %lu buckets):\n"
-msgstr ""
-"\n"
-"存儲桶列表長度的長æ¢åœ– (總計 %lu 存儲桶):\n"
-
-#: readelf.c:6792
-#, c-format
-msgid " Length Number %% of total Coverage\n"
-msgstr " 長度 編號 總計之%% 覆蓋度\n"
-
-#: readelf.c:6797 readelf.c:6813 readelf.c:10967 readelf.c:11159
-msgid "Out of memory"
-msgstr "記憶體ä¸è¶³"
-
-#: readelf.c:6862
-#, c-format
-msgid ""
-"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
-msgstr ""
-"\n"
-"ä½æ–¼åç§»é‡ 0x%lx 的動態資訊節å€å«æœ‰ %d 個æ¢ç›®ï¼š\n"
-
-#: readelf.c:6865
-#, c-format
-msgid " Num: Name BoundTo Flags\n"
-msgstr "編號: å稱 ç›¸ç´„æŸ æ——æ¨™\n"
-
-#: readelf.c:6917
-#, c-format
-msgid ""
-"\n"
-"Assembly dump of section %s\n"
-msgstr ""
-"\n"
-"「%sã€å€æ®µçš„組åˆèªžè¨€å‚¾å°ï¼š\n"
-
-#: readelf.c:6938
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no data to dump.\n"
-msgstr ""
-"\n"
-"「%sã€å€æ®µæ²’有å¯å‚¾å°çš„資料。\n"
-
-#: readelf.c:6943
-#, c-format
-msgid ""
-"\n"
-"Hex dump of section '%s':\n"
-msgstr ""
-"\n"
-"「%sã€å€æ®µçš„å六進ä½å‚¾å°ï¼š\n"
-
-#: readelf.c:7090
-msgid "badly formed extended line op encountered!\n"
-msgstr "é‡åˆ°ä¸æ­£å¸¸çš„擴充型列æ“作碼ï¼\n"
-
-#: readelf.c:7097
-#, c-format
-msgid " Extended opcode %d: "
-msgstr " æ“´å……æ“作碼 %d: "
-
-#: readelf.c:7102
-#, c-format
-msgid ""
-"End of Sequence\n"
-"\n"
-msgstr ""
-"åºåˆ—çµå°¾\n"
-"\n"
-
-#: readelf.c:7108
-#, c-format
-msgid "set Address to 0x%lx\n"
-msgstr "設定ä½å€è‡³ 0x%lx\n"
-
-#: readelf.c:7113
-#, c-format
-msgid " define new File Table entry\n"
-msgstr " 定義新檔案表æ¢ç›®\n"
-
-#: readelf.c:7114 readelf.c:9032
-#, c-format
-msgid " Entry\tDir\tTime\tSize\tName\n"
-msgstr " æ¢ç›®\t目錄\t時間\t大å°\tå稱\n"
-
-#: readelf.c:7116
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: readelf.c:7119 readelf.c:7121 readelf.c:7123 readelf.c:9044 readelf.c:9046
-#: readelf.c:9048
-#, c-format
-msgid "%lu\t"
-msgstr "%lu\t"
-
-#: readelf.c:7124
-#, c-format
-msgid ""
-"%s\n"
-"\n"
-msgstr ""
-"%s\n"
-"\n"
-
-#: readelf.c:7128
-#, c-format
-msgid "UNKNOWN: length %d\n"
-msgstr "未知:長度 %d\n"
-
-#: readelf.c:7155
-msgid "debug_str section data"
-msgstr "debug_str å€æ®µè³‡æ–™"
-
-#: readelf.c:7173
-msgid "<no .debug_str section>"
-msgstr "<沒有 .debug_str å€æ®µ>"
-
-#: readelf.c:7176
-msgid "<offset is too big>"
-msgstr "<å移é‡éŽå¤§>"
-
-#: readelf.c:7201
-msgid "debug_loc section data"
-msgstr "debug_loc å€æ®µè³‡æ–™"
-
-#: readelf.c:7235
-msgid "debug_range section data"
-msgstr "debug_range å€æ®µè³‡æ–™"
-
-#: readelf.c:7307
-#, c-format
-msgid "%s: skipping unexpected symbol type %s in relocation in section .rela%s\n"
-msgstr "%1$s: 在å€æ®µ .rela%3$s 中跳éŽæ„外的é‡å®šä½ç¬¦è™Ÿé¡žåž‹ %2$s\n"
-
-#: readelf.c:7321
-#, c-format
-msgid "skipping unexpected symbol type %s in relocation in section .rela.%s\n"
-msgstr "在å€æ®µ .rela.%2$s 中跳éŽæ„外的é‡å®šä½ç¬¦è™Ÿé¡žåž‹ %1$s\n"
-
-#: readelf.c:7565
-#, c-format
-msgid "Unknown TAG value: %lx"
-msgstr "未知的 TAG 值:%lx"
-
-#: readelf.c:7601
-#, c-format
-msgid "Unknown FORM value: %lx"
-msgstr "未知的 FORM 值:%lx"
-
-#: readelf.c:7610
-#, c-format
-msgid " %lu byte block: "
-msgstr " %lu ä½å…ƒçµ„çš„å€å¡Šï¼š"
-
-#: readelf.c:7944
-#, c-format
-msgid "(User defined location op)"
-msgstr "(使用者定義的定ä½æ“作碼)"
-
-#: readelf.c:7946
-#, c-format
-msgid "(Unknown location op)"
-msgstr "(未知的定ä½æ“作碼)"
-
-#: readelf.c:8015
-msgid "Internal error: DWARF version is not 2 or 3.\n"
-msgstr "內部錯誤:DWARF ç‰ˆæœ¬è™Ÿç¢¼ä¸¦éž 2 或 3。\n"
-
-#: readelf.c:8113
-msgid "DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n"
-msgstr "當 sizeof (unsigned long) != 8 時,ä¸æ”¯æ´ DW_FORM_data8\n"
-
-#: readelf.c:8162
-#, c-format
-msgid " (indirect string, offset: 0x%lx): %s"
-msgstr " (間接字串,å移é‡ï¼š0x%lx): %s"
-
-#: readelf.c:8171
-#, c-format
-msgid "Unrecognized form: %d\n"
-msgstr "無法識別的形å¼ï¼š%d\n"
-
-#: readelf.c:8256
-#, c-format
-msgid "(not inlined)"
-msgstr "(éžå…§åµŒçš„)"
-
-#: readelf.c:8259
-#, c-format
-msgid "(inlined)"
-msgstr "(內嵌的)"
-
-#: readelf.c:8262
-#, c-format
-msgid "(declared as inline but ignored)"
-msgstr "(è²æ˜Žç‚ºå…§åµŒä½†è¢«å¿½ç•¥)"
-
-#: readelf.c:8265
-#, c-format
-msgid "(declared as inline and inlined)"
-msgstr "(è²æ˜Žç‚ºå…§åµŒä¸¦å·²å…§åµŒ)"
-
-#: readelf.c:8268
-#, c-format
-msgid " (Unknown inline attribute value: %lx)"
-msgstr " (未知的內嵌屬性值:%lx)"
-
-#: readelf.c:8413 readelf.c:9537
-#, c-format
-msgid " [without DW_AT_frame_base]"
-msgstr " [ä¸å…· DW_AT_frame_base]"
-
-#: readelf.c:8416
-#, c-format
-msgid "(location list)"
-msgstr "(ä½ç½®åˆ—表)"
-
-#: readelf.c:8534
-#, c-format
-msgid "Unknown AT value: %lx"
-msgstr "未知的 AT 值:%lx"
-
-#: readelf.c:8602
-msgid "No comp units in .debug_info section ?"
-msgstr " 在 .debug_info å€æ®µä¸­æ²’有編譯單元?"
-
-#: readelf.c:8611
-#, c-format
-msgid "Not enough memory for a debug info array of %u entries"
-msgstr "記憶體ä¸è¶³ä»¥å®¹ç´ %u 個æ¢ç›®çš„除錯資訊陣列"
-
-#: readelf.c:8619 readelf.c:9630
-#, c-format
-msgid ""
-"The section %s contains:\n"
-"\n"
-msgstr ""
-"%s å€æ®µå«æœ‰ï¼š\n"
-"\n"
-
-#: readelf.c:8693
-#, c-format
-msgid " Compilation Unit @ %lx:\n"
-msgstr " 編譯單元 @ %lx:\n"
-
-#: readelf.c:8694
-#, c-format
-msgid " Length: %ld\n"
-msgstr " 長度: %ld\n"
-
-#: readelf.c:8695
-#, c-format
-msgid " Version: %d\n"
-msgstr " 版本: %d\n"
-
-#: readelf.c:8696
-#, c-format
-msgid " Abbrev Offset: %ld\n"
-msgstr " 縮寫å移é‡ï¼š %ld\n"
-
-#: readelf.c:8697
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " 指標大å°ï¼š %d\n"
-
-#: readelf.c:8702
-msgid "Only version 2 and 3 DWARF debug information is currently supported.\n"
-msgstr "ç›®å‰åªæ”¯æ´ç¬¬äºŒèˆ‡ç¬¬ä¸‰ç‰ˆ DWARF 除錯資訊。\n"
-
-#: readelf.c:8717
-msgid "Unable to locate .debug_abbrev section!\n"
-msgstr "無法找到 .debug_abbrev å€æ®µçš„ä½ç½®ï¼\n"
-
-#: readelf.c:8722
-msgid "debug_abbrev section data"
-msgstr "debug_abbrev å€æ®µè³‡æ–™"
-
-#: readelf.c:8759
-#, c-format
-msgid "Unable to locate entry %lu in the abbreviation table\n"
-msgstr "無法在縮寫表中找到æ¢ç›® %lu çš„ä½ç½®\n"
-
-#: readelf.c:8765
-#, c-format
-msgid " <%d><%lx>: Abbrev Number: %lu (%s)\n"
-msgstr " <%d><%lx>:縮寫編號:%lu (%s)\n"
-
-#: readelf.c:8838
-#, c-format
-msgid "%s section needs a populated .debug_info section\n"
-msgstr "å€æ®µ %s 需è¦å…¬é–‹çš„ .debug_info å€æ®µ\n"
-
-#: readelf.c:8845
-#, c-format
-msgid "%s section has more comp units than .debug_info section\n"
-msgstr "å€æ®µ %s 具有比 .debug_info å€æ®µæ›´å¤šçš„編譯單元\n"
-
-#: readelf.c:8847
-#, c-format
-msgid ""
-"assuming that the pointer size is %d, from the last comp unit in .debug_info\n"
-"\n"
-msgstr ""
-"從å‰ä¸€å€‹ .debug_info 中的編譯單元,å‡å®šæŒ‡æ¨™å¤§å°ç‚º %d\n"
-"\n"
-
-#: readelf.c:8891
-msgid "extracting information from .debug_info section"
-msgstr "從 .debug_info å€æ®µè§£é–‹è³‡è¨Š"
-
-#: readelf.c:8909
-#, c-format
-msgid ""
-"\n"
-"Dump of debug contents of section %s:\n"
-"\n"
-msgstr ""
-"\n"
-"å‚¾å° %s å€æ®µçš„除錯內容:\n"
-"\n"
-
-#: readelf.c:8948
-msgid "The line info appears to be corrupt - the section is too small\n"
-msgstr "列資訊似乎已æ壞 - å€æ®µéŽå°\n"
-
-#: readelf.c:8957
-msgid "Only DWARF version 2 and 3 line info is currently supported.\n"
-msgstr "ç›®å‰åªæ”¯æ´ç¬¬äºŒèˆ‡ç¬¬ä¸‰ç‰ˆçš„ DWARF 列資訊。\n"
-
-#: readelf.c:8984
-#, c-format
-msgid " Length: %ld\n"
-msgstr " 長度: %ld\n"
-
-#: readelf.c:8985
-#, c-format
-msgid " DWARF Version: %d\n"
-msgstr " DWARF 版本: %d\n"
-
-#: readelf.c:8986
-#, c-format
-msgid " Prologue Length: %d\n"
-msgstr " å‰è¨€é•·åº¦ï¼š %d\n"
-
-#: readelf.c:8987
-#, c-format
-msgid " Minimum Instruction Length: %d\n"
-msgstr " 最å°æŒ‡ä»¤é•·åº¦ï¼š %d\n"
-
-#: readelf.c:8988
-#, c-format
-msgid " Initial value of 'is_stmt': %d\n"
-msgstr " 「is_stmtã€çš„åˆå§‹å€¼ï¼š %d\n"
-
-#: readelf.c:8989
-#, c-format
-msgid " Line Base: %d\n"
-msgstr " 列基數: %d\n"
-
-#: readelf.c:8990
-#, c-format
-msgid " Line Range: %d\n"
-msgstr " 列範åœï¼š %d\n"
-
-#: readelf.c:8991
-#, c-format
-msgid " Opcode Base: %d\n"
-msgstr " æ“作碼基數: %d\n"
-
-#: readelf.c:8992
-#, c-format
-msgid " (Pointer size: %u)\n"
-msgstr " (指標大å°: %u)\n"
-
-#: readelf.c:9001
-#, c-format
-msgid ""
-"\n"
-" Opcodes:\n"
-msgstr ""
-"\n"
-" æ“作碼:\n"
-
-#: readelf.c:9004
-#, c-format
-msgid " Opcode %d has %d args\n"
-msgstr " æ“作碼 %d 具有 %d 個引數\n"
-
-#: readelf.c:9010
-#, c-format
-msgid ""
-"\n"
-" The Directory Table is empty.\n"
-msgstr ""
-"\n"
-" 目錄表為空。\n"
-
-#: readelf.c:9013
-#, c-format
-msgid ""
-"\n"
-" The Directory Table:\n"
-msgstr ""
-"\n"
-" 目錄表:\n"
-
-#: readelf.c:9017
-#, c-format
-msgid " %s\n"
-msgstr " %s\n"
-
-#: readelf.c:9028
-#, c-format
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr ""
-"\n"
-" 檔案å表為空。\n"
-
-#: readelf.c:9031
-#, c-format
-msgid ""
-"\n"
-" The File Name Table:\n"
-msgstr ""
-"\n"
-" 檔案å稱表:\n"
-
-#: readelf.c:9039
-#, c-format
-msgid " %d\t"
-msgstr " %d\t"
-
-#: readelf.c:9050
-#, c-format
-msgid "%s\n"
-msgstr "%s\n"
-
-#. Now display the statements.
-#: readelf.c:9058
-#, c-format
-msgid ""
-"\n"
-" Line Number Statements:\n"
-msgstr ""
-"\n"
-" 列號æ•è¿°å¥ï¼š\n"
-
-#: readelf.c:9073
-#, c-format
-msgid " Special opcode %d: advance Address by %d to 0x%lx"
-msgstr " 特殊æ“作碼 %d: 增加ä½å€ç”± %d 到 0x%lx"
-
-#: readelf.c:9077
-#, c-format
-msgid " and Line by %d to %d\n"
-msgstr "以åŠåˆ—號由 %d 到 %d\n"
-
-#: readelf.c:9088
-#, c-format
-msgid " Copy\n"
-msgstr " 複製\n"
-
-#: readelf.c:9095
-#, c-format
-msgid " Advance PC by %d to %lx\n"
-msgstr " 增加 PC 由 %d 到 %lx\n"
-
-#: readelf.c:9103
-#, c-format
-msgid " Advance Line by %d to %d\n"
-msgstr " 增加列號由 %d 到 %d\n"
-
-#: readelf.c:9110
-#, c-format
-msgid " Set File Name to entry %d in the File Name Table\n"
-msgstr " 設定檔案å稱為檔å表中的第 %d æ¢\n"
-
-#: readelf.c:9118
-#, c-format
-msgid " Set column to %d\n"
-msgstr " 將行設定為 %d\n"
-
-#: readelf.c:9125
-#, c-format
-msgid " Set is_stmt to %d\n"
-msgstr " 將 is_stmt 設定為 %d\n"
-
-#: readelf.c:9130
-#, c-format
-msgid " Set basic block\n"
-msgstr " 設定基本å€å¡Š\n"
-
-#: readelf.c:9138
-#, c-format
-msgid " Advance PC by constant %d to 0x%lx\n"
-msgstr " 增加 PC 常數 %d 到 0x%lx\n"
-
-#: readelf.c:9146
-#, c-format
-msgid " Advance PC by fixed size amount %d to 0x%lx\n"
-msgstr " 增加 PC 固定大å°çš„é‡ %d 到 0x%lx\n"
-
-#: readelf.c:9151
-#, c-format
-msgid " Set prologue_end to true\n"
-msgstr " 將 prologue_end 設定為真\n"
-
-#: readelf.c:9155
-#, c-format
-msgid " Set epilogue_begin to true\n"
-msgstr " 將 epilogue_begin 設定為真\n"
-
-#: readelf.c:9161
-#, c-format
-msgid " Set ISA to %d\n"
-msgstr " 將 ISA 設定為 %d\n"
-
-#: readelf.c:9165
-#, c-format
-msgid " Unknown opcode %d with operands: "
-msgstr " 未知æ“作碼 %d 應用於é‹ç®—å­ï¼š"
-
-#: readelf.c:9193 readelf.c:9279 readelf.c:9354
-#, c-format
-msgid ""
-"Contents of the %s section:\n"
-"\n"
-msgstr ""
-"%s å€æ®µçš„內容:\n"
-"\n"
-
-#: readelf.c:9233
-msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
-msgstr "ç›®å‰åªæ”¯æ´ç¬¬äºŒèˆ‡ç¬¬ä¸‰ç‰ˆ DWARF çš„ pubname\n"
-
-#: readelf.c:9240
-#, c-format
-msgid " Length: %ld\n"
-msgstr " 長度: %ld\n"
-
-#: readelf.c:9242
-#, c-format
-msgid " Version: %d\n"
-msgstr " 版本: %d\n"
-
-#: readelf.c:9244
-#, c-format
-msgid " Offset into .debug_info section: %ld\n"
-msgstr " 在 .debug_info å€æ®µä¸­çš„å移é‡ï¼š %ld\n"
-
-#: readelf.c:9246
-#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr " 在 .debug_info å€æ®µä¸­å€åŸŸçš„大å°ï¼š %ld\n"
-
-#: readelf.c:9249
-#, c-format
-msgid ""
-"\n"
-" Offset\tName\n"
-msgstr ""
-"\n"
-" å移é‡\tå稱\n"
-
-#: readelf.c:9300
-#, c-format
-msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr " DW_MACINFO_start_file - 列號:%d 檔案編號:%d\n"
-
-#: readelf.c:9306
-#, c-format
-msgid " DW_MACINFO_end_file\n"
-msgstr " DW_MACINFO_end_file\n"
-
-#: readelf.c:9314
-#, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_define - 列號:%d 巨集:%s\n"
-
-#: readelf.c:9323
-#, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_undef - 列號:%d 巨集:%s\n"
-
-#: readelf.c:9335
-#, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr " DW_MACINFO_vendor_ext - 常數:%d 字串:%s\n"
-
-#: readelf.c:9363
-#, c-format
-msgid " Number TAG\n"
-msgstr " 數字標記\n"
-
-#: readelf.c:9369
-#, c-format
-msgid " %ld %s [%s]\n"
-msgstr " %ld %s [%s]\n"
-
-#: readelf.c:9372
-msgid "has children"
-msgstr "å«æœ‰å­æ ¼ä½"
-
-#: readelf.c:9372
-msgid "no children"
-msgstr "沒有å­æ ¼ä½"
-
-#: readelf.c:9375
-#, c-format
-msgid " %-18s %s\n"
-msgstr " %-18s %s\n"
-
-#: readelf.c:9410
-#, c-format
-msgid ""
-"\n"
-"The .debug_loc section is empty.\n"
-msgstr ""
-"\n"
-".debug_loc å€æ®µç‚ºç©ºã€‚\n"
-
-#. FIXME: Should we handle this case?
-#: readelf.c:9455
-msgid "Location lists in .debug_info section aren't in ascending order!\n"
-msgstr ".debug_info å€æ®µä¸­çš„定ä½åˆ—表未ä¾ç”±å°åˆ°å¤§é †åºï¼\n"
-
-#: readelf.c:9458
-msgid "No location lists in .debug_info section!\n"
-msgstr ".debug_info å€æ®µä¸­æ²’有定ä½åˆ—表ï¼\n"
-
-#: readelf.c:9461
-#, c-format
-msgid "Location lists in .debug_loc section start at 0x%lx\n"
-msgstr ".debug_info å€æ®µä¸­çš„定ä½åˆ—表起始自 0x%lx\n"
-
-#: readelf.c:9464
-#, c-format
-msgid ""
-"Contents of the .debug_loc section:\n"
-"\n"
-msgstr ""
-".debug_loc å€æ®µçš„內容:\n"
-"\n"
-
-#: readelf.c:9465
-#, c-format
-msgid " Offset Begin End Expression\n"
-msgstr " åç§»é‡ èµ·å§‹ çµæŸ 表示å¼\n"
-
-#: readelf.c:9495
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "在 .debug_loc å€æ®µä¸­æœ‰ä¸€å€‹æ¼æ´ž [0x%lx - 0x%lx]。\n"
-
-#: readelf.c:9498
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "在 .debug_loc å€æ®µä¸­æœ‰ä¸€å€‹é‡ç–Š [0x%lx - 0x%lx]。\n"
-
-#: readelf.c:9512 readelf.c:9837
-#, c-format
-msgid " %8.8lx <End of list>\n"
-msgstr " %8.8lx <表列尾端>\n"
-
-#: readelf.c:9540 readelf.c:9854
-msgid " (start == end)"
-msgstr " (開始 == çµæŸ)"
-
-#: readelf.c:9542 readelf.c:9856
-msgid " (start > end)"
-msgstr " (開始 > çµæŸ)"
-
-#: readelf.c:9566
-#, c-format
-msgid ""
-"\n"
-"The .debug_str section is empty.\n"
-msgstr ""
-"\n"
-".debug_str å€æ®µç‚ºç©ºã€‚\n"
-
-#: readelf.c:9570
-#, c-format
-msgid ""
-"Contents of the .debug_str section:\n"
-"\n"
-msgstr ""
-".debug_str å€æ®µçš„內容:\n"
-"\n"
-
-#: readelf.c:9675
-msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
-msgstr "ç›®å‰åªæ”¯æ´ç¬¬äºŒèˆ‡ç¬¬ä¸‰ç‰ˆ DWARF çš„ arange。\n"
-
-#: readelf.c:9679
-#, c-format
-msgid " Length: %ld\n"
-msgstr " 長度: %ld\n"
-
-#: readelf.c:9680
-#, c-format
-msgid " Version: %d\n"
-msgstr " 版本: %d\n"
-
-#: readelf.c:9681
-#, c-format
-msgid " Offset into .debug_info: %lx\n"
-msgstr " 在 .debug_info å€æ®µä¸­çš„å移é‡ï¼š %lx\n"
-
-#: readelf.c:9682
-#, c-format
-msgid " Pointer Size: %d\n"
-msgstr " 指標大å°: %d\n"
-
-#: readelf.c:9683
-#, c-format
-msgid " Segment Size: %d\n"
-msgstr " 節å€å¤§å°: %d\n"
-
-#: readelf.c:9685
-#, c-format
-msgid ""
-"\n"
-" Address Length\n"
-msgstr ""
-"\n"
-" 地å€é•·åº¦\n"
-
-#: readelf.c:9741
-#, c-format
-msgid ""
-"\n"
-"The .debug_ranges section is empty.\n"
-msgstr ""
-"\n"
-".debug_ranges å€æ®µç‚ºç©ºã€‚\n"
-
-#. FIXME: Should we handle this case?
-#: readelf.c:9786
-msgid "Range lists in .debug_info section aren't in ascending order!\n"
-msgstr ".debug_info å€æ®µä¸­çš„範åœåˆ—表未ä¾ç”±å°åˆ°å¤§é †åºï¼\n"
-
-#: readelf.c:9789
-msgid "No range lists in .debug_info section!\n"
-msgstr ".debug_info å€æ®µä¸­æ²’有範åœåˆ—表ï¼\n"
-
-#: readelf.c:9792
-#, c-format
-msgid "Range lists in .debug_ranges section start at 0x%lx\n"
-msgstr ".debug_ranges å€æ®µä¸­çš„範åœåˆ—表起始自 0x%lx\n"
-
-#: readelf.c:9795
-#, c-format
-msgid ""
-"Contents of the .debug_ranges section:\n"
-"\n"
-msgstr ""
-".debug_ranges å€æ®µçš„內容:\n"
-"\n"
-
-#: readelf.c:9796
-#, c-format
-msgid " Offset Begin End\n"
-msgstr " åç§»é‡ èµ·å§‹ çµæŸ\n"
-
-#: readelf.c:9820
-#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_ranges section.\n"
-msgstr "在 .debug_ranges å€æ®µä¸­æœ‰ä¸€å€‹æ¼æ´ž [0x%lx - 0x%lx]。\n"
-
-#: readelf.c:9823
-#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_ranges section.\n"
-msgstr "在 .debug_ranges å€æ®µä¸­æœ‰ä¸€å€‹é‡ç–Š [0x%lx - 0x%lx]。\n"
-
-#: readelf.c:10017
-#, c-format
-msgid "The section %s contains:\n"
-msgstr "%s å€æ®µå«æœ‰ï¼š\n"
-
-#: readelf.c:10663
-#, c-format
-msgid "unsupported or unknown DW_CFA_%d\n"
-msgstr "ä¸æ”¯æ´æˆ–未知的 DW_CFA_%d\n"
-
-#: readelf.c:10688
-#, c-format
-msgid "Displaying the debug contents of section %s is not yet supported.\n"
-msgstr "å°šä¸æ”¯æ´é¡¯ç¤º %s å€æ®µçš„除錯內容。\n"
-
-#: readelf.c:10732
-#, c-format
-msgid ""
-"\n"
-"Section '%s' has no debugging data.\n"
-msgstr ""
-"\n"
-"「%sã€å€æ®µæ²’有正在除錯的資料。\n"
-
-#: readelf.c:10746
-msgid "debug section data"
-msgstr "除錯å€æ®µè³‡æ–™"
-
-#: readelf.c:10765
-#, c-format
-msgid "Unrecognized debug section: %s\n"
-msgstr "無法識別的除錯å€æ®µï¼š%s\n"
-
-#: readelf.c:10800
-#, c-format
-msgid "Section %d was not dumped because it does not exist!\n"
-msgstr "沒有傾å°å€æ®µ %d 是因為它們並ä¸å­˜åœ¨ï¼\n"
-
-#: readelf.c:10872 readelf.c:11236
-msgid "liblist"
-msgstr "函å¼åº«æ¸…å–®"
-
-#: readelf.c:10961
-msgid "options"
-msgstr "é¸é …"
-
-#: readelf.c:10991
-#, c-format
-msgid ""
-"\n"
-"Section '%s' contains %d entries:\n"
-msgstr ""
-"\n"
-"「%sã€å€æ®µå«æœ‰ %d 個æ¢ç›®ï¼š\n"
-
-#: readelf.c:11152
-msgid "conflict list found without a dynamic symbol table"
-msgstr "ä¸å…·å‹•æ…‹ç¬¦è™Ÿè¡¨å»ç™¼ç¾è¡çªçš„表列"
-
-#: readelf.c:11168 readelf.c:11182
-msgid "conflict"
-msgstr "è¡çª"
-
-#: readelf.c:11192
-#, c-format
-msgid ""
-"\n"
-"Section '.conflict' contains %lu entries:\n"
-msgstr ""
-"\n"
-"「.conflictã€å€æ®µå«æœ‰ %lu 個æ¢ç›®ï¼š\n"
-
-#: readelf.c:11194
-msgid " Num: Index Value Name"
-msgstr " 編號: 索引 值 å稱"
-
-#: readelf.c:11243
-msgid "liblist string table"
-msgstr "函å¼åº«å­—串表"
-
-#: readelf.c:11252
-#, c-format
-msgid ""
-"\n"
-"Library list section '%s' contains %lu entries:\n"
-msgstr ""
-"\n"
-"「%sã€å‡½å¼åº«åˆ—表å€æ®µå«æœ‰ %lu 個æ¢ç›®ï¼š\n"
-
-#: readelf.c:11303
-msgid "NT_AUXV (auxiliary vector)"
-msgstr "NT_AUXV (auxiliary å‘é‡)"
-
-#: readelf.c:11305
-msgid "NT_PRSTATUS (prstatus structure)"
-msgstr "NT_PRSTATUS (prstatus çµæ§‹)"
-
-#: readelf.c:11307
-msgid "NT_FPREGSET (floating point registers)"
-msgstr "NT_FPREGSET (浮點暫存器)"
-
-#: readelf.c:11309
-msgid "NT_PRPSINFO (prpsinfo structure)"
-msgstr "NT_PRPSINFO (prpsinfo çµæ§‹)"
-
-#: readelf.c:11311
-msgid "NT_TASKSTRUCT (task structure)"
-msgstr "NT_TASKSTRUCT (任務çµæ§‹)"
-
-#: readelf.c:11313
-msgid "NT_PRXFPREG (user_xfpregs structure)"
-msgstr "NT_PRXFPREG (user_xfpregs çµæ§‹)"
-
-#: readelf.c:11315
-msgid "NT_PSTATUS (pstatus structure)"
-msgstr "NT_PSTATUS (pstatus çµæ§‹)"
-
-#: readelf.c:11317
-msgid "NT_FPREGS (floating point registers)"
-msgstr "NT_FPREGS (浮點暫存器)"
-
-#: readelf.c:11319
-msgid "NT_PSINFO (psinfo structure)"
-msgstr "NT_PSINFO (psinfo çµæ§‹)"
-
-#: readelf.c:11321
-msgid "NT_LWPSTATUS (lwpstatus_t structure)"
-msgstr "NT_LWPSTATUS (lwpstatus_t çµæ§‹)"
-
-#: readelf.c:11323
-msgid "NT_LWPSINFO (lwpsinfo_t structure)"
-msgstr "NT_LWPSINFO (lwpsinfo_t çµæ§‹)"
-
-#: readelf.c:11325
-msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
-msgstr "NT_WIN32PSTATUS (win32_pstatus çµæ§‹)"
-
-#: readelf.c:11333
-msgid "NT_VERSION (version)"
-msgstr "NT_VERSION (版本)"
-
-#: readelf.c:11335
-msgid "NT_ARCH (architecture)"
-msgstr "NT_ARCH (系統架構)"
-
-#: readelf.c:11340 readelf.c:11362
-#, c-format
-msgid "Unknown note type: (0x%08x)"
-msgstr "未知的備註類型:(0x%08x)"
-
-#. NetBSD core "procinfo" structure.
-#: readelf.c:11352
-msgid "NetBSD procinfo structure"
-msgstr "NetBSD procinfo çµæ§‹"
-
-#: readelf.c:11379 readelf.c:11393
-msgid "PT_GETREGS (reg structure)"
-msgstr "PT_GETREGS (reg çµæ§‹)"
-
-#: readelf.c:11381 readelf.c:11395
-msgid "PT_GETFPREGS (fpreg structure)"
-msgstr "PT_GETFPREGS (fpreg çµæ§‹)"
-
-#: readelf.c:11401
-#, c-format
-msgid "PT_FIRSTMACH+%d"
-msgstr "PT_FIRSTMACH+%d"
-
-#: readelf.c:11447
-msgid "notes"
-msgstr "備註"
-
-#: readelf.c:11453
-#, c-format
-msgid ""
-"\n"
-"Notes at offset 0x%08lx with length 0x%08lx:\n"
-msgstr ""
-"\n"
-"備註ä½æ–¼åç§»é‡ 0x%08lx 長度為 0x%08lx:\n"
-
-#: readelf.c:11455
-#, c-format
-msgid " Owner\t\tData size\tDescription\n"
-msgstr " 所有者\t\t資料大å°\tæè¿°\n"
-
-#: readelf.c:11474
-#, c-format
-msgid "corrupt note found at offset %x into core notes\n"
-msgstr "核心備註中ä½æ–¼åç§»é‡ %x 處發ç¾æ毀的備註\n"
-
-#: readelf.c:11476
-#, c-format
-msgid " type: %x, namesize: %08lx, descsize: %08lx\n"
-msgstr " 類型:%x,å稱大å°ï¼š%08lx,æ述大å°ï¼š%08lx\n"
-
-#: readelf.c:11574
-#, c-format
-msgid "No note segments present in the core file.\n"
-msgstr "核心檔案中沒有備註節å€ã€‚\n"
-
-#: readelf.c:11653
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr ""
-"本 readelf 實例於編譯時未加入 64 ä½å…ƒè³‡æ–™é¡žåž‹æ”¯æ´ï¼Œ\n"
-"因而無法讀入 64 ä½å…ƒ ELF 檔案。\n"
-
-#: readelf.c:11700 readelf.c:12059
-#, c-format
-msgid "%s: Failed to read file header\n"
-msgstr "%s:讀入檔案頭標失敗\n"
-
-#: readelf.c:11713
-#, c-format
-msgid ""
-"\n"
-"File: %s\n"
-msgstr ""
-"\n"
-"檔案:%s\n"
-
-#: readelf.c:11876 readelf.c:11897 readelf.c:11934 readelf.c:12014
-#, c-format
-msgid "%s: failed to read archive header\n"
-msgstr "%s:讀入ä¿å­˜æª”標頭失敗\n"
-
-#: readelf.c:11887
-#, c-format
-msgid "%s: failed to skip archive symbol table\n"
-msgstr "%s:跳éŽä¿å­˜æª”符號表失敗\n"
-
-#: readelf.c:11919
-#, c-format
-msgid "%s: failed to read string table\n"
-msgstr "%s:讀入字串表失敗\n"
-
-#: readelf.c:11955
-#, c-format
-msgid "%s: invalid archive string table offset %lu\n"
-msgstr "%s:無效的ä¿å­˜æª”字串表åç§»é‡ %lu\n"
-
-#: readelf.c:11971
-#, c-format
-msgid "%s: bad archive file name\n"
-msgstr "%s:ä¸è‰¯çš„ä¿å­˜æª”案å稱\n"
-
-#: readelf.c:12003
-#, c-format
-msgid "%s: failed to seek to next archive header\n"
-msgstr "%s:æœç´¢è‡³ä¸‹ä¸€å€‹ä¿å­˜æª”標頭失敗\n"
-
-#: readelf.c:12037
-#, c-format
-msgid "'%s': No such file\n"
-msgstr "「%sã€ï¼šæ‰¾ä¸åˆ°æ­¤æª”案\n"
-
-#: readelf.c:12039
-#, c-format
-msgid "Could not locate '%s'. System error message: %s\n"
-msgstr "無法找到「%sã€çš„ä½ç½®ã€‚錯誤訊æ¯ç‚ºï¼š%s\n"
-
-#: readelf.c:12046
-#, c-format
-msgid "'%s' is not an ordinary file\n"
-msgstr "「%sã€ä¸æ˜¯ä¸€èˆ¬çš„檔案\n"
-
-#: readelf.c:12053
-#, c-format
-msgid "Input file '%s' is not readable.\n"
-msgstr "輸入檔案「%sã€ä¸¦ä¸å¯è®€ã€‚\n"
-
-#: rename.c:127
-#, c-format
-msgid "%s: cannot set time: %s"
-msgstr "%s:無法設置時間:%s"
-
-#. We have to clean up here.
-#: rename.c:162 rename.c:200
-#, c-format
-msgid "unable to rename '%s' reason: %s"
-msgstr "無法更改「%sã€çš„å稱,原因:%s"
-
-#: rename.c:208
-#, c-format
-msgid "unable to copy file '%s' reason: %s"
-msgstr "無法複製檔案「%sã€ï¼ŒåŽŸå› ï¼š%s"
-
-#: resbin.c:132
-#, c-format
-msgid "%s: not enough binary data"
-msgstr "%s:ä¸è¶³çš„二進ä½è³‡æ–™"
-
-#: resbin.c:148
-msgid "null terminated unicode string"
-msgstr "以 null çµæŸçš„ unicode 字串"
-
-#: resbin.c:175 resbin.c:181
-msgid "resource ID"
-msgstr "è³‡æº ID"
-
-#: resbin.c:221
-msgid "cursor"
-msgstr "游標"
-
-#: resbin.c:253 resbin.c:260
-msgid "menu header"
-msgstr "é¸å–®æ¨™é ­"
-
-#: resbin.c:270
-msgid "menuex header"
-msgstr "擴展é¸å–®æ¨™é ­"
-
-#: resbin.c:274
-msgid "menuex offset"
-msgstr "擴展é¸å–®å移é‡"
-
-#: resbin.c:281
-#, c-format
-msgid "unsupported menu version %d"
-msgstr "ä¸æ”¯æ´çš„é¸å–®ç‰ˆæœ¬ %d"
-
-#: resbin.c:306 resbin.c:321 resbin.c:384
-msgid "menuitem header"
-msgstr "é¸å–®ç´°é …標頭"
-
-#: resbin.c:414
-msgid "menuitem"
-msgstr "é¸å–®ç´°é …"
-
-#: resbin.c:453 resbin.c:481
-msgid "dialog header"
-msgstr "å°è©±æ¡†æ¨™é ­"
-
-#: resbin.c:471
-#, c-format
-msgid "unexpected DIALOGEX version %d"
-msgstr "æ„外的 DIALOGEX 版本 %d"
-
-#: resbin.c:516
-msgid "dialog font point size"
-msgstr "å°è©±æ¡†å­—型點數大å°"
-
-#: resbin.c:524
-msgid "dialogex font information"
-msgstr "å°è©±æ¡†æ“´å±•å­—型資訊"
-
-#: resbin.c:550 resbin.c:568
-msgid "dialog control"
-msgstr "å°è©±æ¡†æŽ§åˆ¶"
-
-#: resbin.c:560
-msgid "dialogex control"
-msgstr "å°è©±æ¡†æ“´å±•æŽ§åˆ¶"
-
-#: resbin.c:589
-msgid "dialog control end"
-msgstr "å°è©±æ¡†æŽ§åˆ¶çµæŸ"
-
-#: resbin.c:601
-msgid "dialog control data"
-msgstr "å°è©±æ¡†æŽ§åˆ¶è³‡æ–™"
-
-#: resbin.c:642
-msgid "stringtable string length"
-msgstr "字串表字串長度"
-
-#: resbin.c:652
-msgid "stringtable string"
-msgstr "字串表字串"
-
-#: resbin.c:683
-msgid "fontdir header"
-msgstr "字型目錄標頭"
-
-#: resbin.c:696
-msgid "fontdir"
-msgstr "字型目錄"
-
-#: resbin.c:712
-msgid "fontdir device name"
-msgstr "字型目錄設備å稱"
-
-#: resbin.c:718
-msgid "fontdir face name"
-msgstr "字型目錄字é¢å稱"
-
-#: resbin.c:759
-msgid "accelerator"
-msgstr "加速éµ"
-
-#: resbin.c:819
-msgid "group cursor header"
-msgstr "群組游標標頭"
-
-#: resbin.c:823
-#, c-format
-msgid "unexpected group cursor type %d"
-msgstr "æ„外的群組游標類型 %d"
-
-#: resbin.c:838
-msgid "group cursor"
-msgstr "群組游標"
-
-#: resbin.c:875
-msgid "group icon header"
-msgstr "群組圖示標頭"
-
-#: resbin.c:879
-#, c-format
-msgid "unexpected group icon type %d"
-msgstr "æ„外的群組圖示類型 %d"
-
-#: resbin.c:894
-msgid "group icon"
-msgstr "群組圖示"
-
-#: resbin.c:957 resbin.c:1174
-msgid "unexpected version string"
-msgstr "æ„外的版本字串"
-
-#: resbin.c:989
-#, c-format
-msgid "version length %d does not match resource length %lu"
-msgstr "版本長度 %d ä¸ç¬¦åˆè³‡æºé•·åº¦ %lu"
-
-#: resbin.c:993
-#, c-format
-msgid "unexpected version type %d"
-msgstr "æ„外的版本類型 %d"
-
-#: resbin.c:1005
-#, c-format
-msgid "unexpected fixed version information length %d"
-msgstr "æ„外的固定版本資訊長度 %d"
-
-#: resbin.c:1008
-msgid "fixed version info"
-msgstr "固定版本資訊"
-
-#: resbin.c:1012
-#, c-format
-msgid "unexpected fixed version signature %lu"
-msgstr "æ„外的固定版本簽å %lu"
-
-#: resbin.c:1016
-#, c-format
-msgid "unexpected fixed version info version %lu"
-msgstr "æ„外的固定版本資訊版本 %lu"
-
-#: resbin.c:1045
-msgid "version var info"
-msgstr "版本變動資訊"
-
-#: resbin.c:1062
-#, c-format
-msgid "unexpected stringfileinfo value length %d"
-msgstr "æ„外的字串檔資訊值長度 %d"
-
-#: resbin.c:1072
-#, c-format
-msgid "unexpected version stringtable value length %d"
-msgstr "æ„外的版本字串表格值長度 %d"
-
-#: resbin.c:1106
-#, c-format
-msgid "unexpected version string length %d != %d + %d"
-msgstr "æ„外的版本字串長度 %d != %d + %d"
-
-#: resbin.c:1117
-#, c-format
-msgid "unexpected version string length %d < %d"
-msgstr "æ„外的版本字串長度 %d < %d"
-
-#: resbin.c:1134
-#, c-format
-msgid "unexpected varfileinfo value length %d"
-msgstr "æ„外的變動檔資訊值長度 %d"
-
-#: resbin.c:1153
-msgid "version varfileinfo"
-msgstr "版本變動檔資訊"
-
-#: resbin.c:1168
-#, c-format
-msgid "unexpected version value length %d"
-msgstr "æ„外的版本值長度 %d"
-
-#: rescoff.c:126
-msgid "filename required for COFF input"
-msgstr "COFF 輸入需è¦æª”å"
-
-#: rescoff.c:143
-#, c-format
-msgid "%s: no resource section"
-msgstr "%s:沒有資æºå€æ®µ"
-
-#: rescoff.c:150
-msgid "can't read resource section"
-msgstr "無法讀入資æºå€æ®µ"
-
-#: rescoff.c:174
-#, c-format
-msgid "%s: %s: address out of bounds"
-msgstr "%s:%s:ä½å€è¶…出界é™"
-
-#: rescoff.c:190
-msgid "directory"
-msgstr "目錄"
-
-#: rescoff.c:218
-msgid "named directory entry"
-msgstr "已命å的目錄æ¢ç›®"
-
-#: rescoff.c:227
-msgid "directory entry name"
-msgstr "目錄æ¢ç›®å稱"
-
-#: rescoff.c:247
-msgid "named subdirectory"
-msgstr "已命åçš„å­ç›®éŒ„"
-
-#: rescoff.c:255
-msgid "named resource"
-msgstr "已命å的資æº"
-
-#: rescoff.c:270
-msgid "ID directory entry"
-msgstr "ID 目錄項目"
-
-#: rescoff.c:287
-msgid "ID subdirectory"
-msgstr "ID å­ç›®éŒ„"
-
-#: rescoff.c:295
-msgid "ID resource"
-msgstr "ID 資æº"
-
-#: rescoff.c:318
-msgid "resource type unknown"
-msgstr "資æºé¡žåž‹æœªçŸ¥"
-
-#: rescoff.c:321
-msgid "data entry"
-msgstr "資料æ¢ç›®"
-
-#: rescoff.c:329
-msgid "resource data"
-msgstr "資æºè³‡æ–™"
-
-#: rescoff.c:334
-msgid "resource data size"
-msgstr "資æºè³‡æ–™å¤§å°"
-
-#: rescoff.c:427
-msgid "filename required for COFF output"
-msgstr "COFF 輸出需è¦æª”å"
-
-#: rescoff.c:719
-msgid "can't get BFD_RELOC_RVA relocation type"
-msgstr "無法得到 BFD_RELOC_RVA é‡å®šå‘é¡žåž‹"
-
-#: resrc.c:238 resrc.c:309
-#, c-format
-msgid "can't open temporary file `%s': %s"
-msgstr "無法開啟臨時檔案「%sã€ï¼š%s"
-
-#: resrc.c:244
-#, c-format
-msgid "can't redirect stdout: `%s': %s"
-msgstr "無法é‡å®šå‘標準輸出:「%sã€ï¼š%s"
-
-#: resrc.c:260
-#, c-format
-msgid "%s %s: %s"
-msgstr "%s %s:%s"
-
-#: resrc.c:305
-#, c-format
-msgid "can't execute `%s': %s"
-msgstr "無法執行「%sã€ï¼š%s"
-
-#: resrc.c:314
-#, c-format
-msgid "Using temporary file `%s' to read preprocessor output\n"
-msgstr "使用臨時檔案「%sã€ä»¥è®€å…¥å‰ç½®è™•ç†å™¨è¼¸å‡º\n"
-
-#: resrc.c:321
-#, c-format
-msgid "can't popen `%s': %s"
-msgstr "無法 popen「%sã€ï¼š%s"
-
-#: resrc.c:323
-#, c-format
-msgid "Using popen to read preprocessor output\n"
-msgstr "使用 popen 讀入å‰ç½®è™•ç†å™¨è¼¸å‡º\n"
-
-#: resrc.c:362
-#, c-format
-msgid "Tried `%s'\n"
-msgstr "已嘗試「%sã€\n"
-
-#: resrc.c:373
-#, c-format
-msgid "Using `%s'\n"
-msgstr "正使用「%sã€\n"
-
-#: resrc.c:529
-#, c-format
-msgid "%s:%d: %s\n"
-msgstr "%s:%d:%s\n"
-
-#: resrc.c:537
-#, c-format
-msgid "%s: unexpected EOF"
-msgstr "%s:檔案æ„外çµå°¾"
-
-#: resrc.c:586
-#, c-format
-msgid "%s: read of %lu returned %lu"
-msgstr "%sï¼šè®€å– %lu 返回 %lu"
-
-#: resrc.c:624 resrc.c:1134
-#, c-format
-msgid "stat failed on bitmap file `%s': %s"
-msgstr "å°ä½å…ƒåœ–檔案「%sã€é€²è¡Œ stat æ“作失敗:%s"
-
-#: resrc.c:675
-#, c-format
-msgid "cursor file `%s' does not contain cursor data"
-msgstr "游標檔案「%sã€ä¸å«æœ‰æ¸¸æ¨™è³‡æ–™"
-
-#: resrc.c:707 resrc.c:1003
-#, c-format
-msgid "%s: fseek to %lu failed: %s"
-msgstr "%s: fseek 到 %lu æ“作失敗: %s"
-
-#: resrc.c:831
-msgid "help ID requires DIALOGEX"
-msgstr "輔助 ID è¦æ±‚ DIALOGEX"
-
-#: resrc.c:833
-msgid "control data requires DIALOGEX"
-msgstr "控制資料è¦æ±‚ DIALOGEX"
-
-#: resrc.c:861
-#, c-format
-msgid "stat failed on font file `%s': %s"
-msgstr "å°å­—型檔案「%sã€é€²è¡Œ stat æ“作失敗:%s"
-
-#: resrc.c:972
-#, c-format
-msgid "icon file `%s' does not contain icon data"
-msgstr "圖示檔案「%sã€ä¸å«æœ‰åœ–示資料"
-
-#: resrc.c:1273 resrc.c:1308
-#, c-format
-msgid "stat failed on file `%s': %s"
-msgstr "å°æª”案「%sã€é€²è¡Œ stat æ“作失敗:%s"
-
-#: resrc.c:1494
-#, c-format
-msgid "can't open `%s' for output: %s"
-msgstr "無法為輸出而開啟「%sã€ï¼š%s"
-
-#: size.c:81
-#, c-format
-msgid " Displays the sizes of sections inside binary files\n"
-msgstr " 顯示二進ä½æª”案中å€æ®µçš„大å°\n"
-
-#: size.c:82
-#, c-format
-msgid " If no input file(s) are specified, a.out is assumed\n"
-msgstr " 如果沒有指定輸入檔案,é è¨­ç‚º a.out\n"
-
-#: size.c:83
-#, c-format
-msgid ""
-" The options are:\n"
-" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
-" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n"
-" -t --totals Display the total sizes (Berkeley only)\n"
-" --target=<bfdname> Set the binary file format\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
-"\n"
-msgstr ""
-" é¸é …為:\n"
-" -A|-B --format={sysv|berkeley} é¸æ“‡è¼¸å‡ºé¢¨æ ¼ (é è¨­ç‚º %s)\n"
-" -o|-d|-x --radix={8|10|16} 以八進ä½ã€å進ä½æˆ–å六進ä½é¡¯ç¤ºæ•¸å€¼\n"
-" -t --totals é¡¯ç¤ºç¸½è¨ˆå¤§å° (åªç”¨æ–¼ Berkeley 風格)\n"
-" --target=<bfdname> 設定二進ä½æª”案格å¼\n"
-" -h --help 顯示本資訊\n"
-" -v --version 顯示程å¼çš„版本號碼\n"
-"\n"
-
-#: size.c:153
-#, c-format
-msgid "invalid argument to --format: %s"
-msgstr "--format 的無效引數:%s"
-
-#: size.c:180
-#, c-format
-msgid "Invalid radix: %s\n"
-msgstr "無效的 radix: %s\n"
-
-#: srconv.c:1722
-#, c-format
-msgid "Convert a COFF object file into a SYSROFF object file\n"
-msgstr "å°‡ COFF 目標檔案轉æ›ç‚º SYSROFF 目標檔案\n"
-
-#: srconv.c:1723
-#, c-format
-msgid ""
-" The options are:\n"
-" -q --quick (Obsolete - ignored)\n"
-" -n --noprescan Do not perform a scan to convert commons into defs\n"
-" -d --debug Display information about what is being done\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" é¸é …為:\n"
-" -q --quick (éŽæœŸ - 忽略)\n"
-" -n --noprescan ä¸åŸ·è¡ŒæŽƒçž„以將 commons 轉æ›ç‚º defs\n"
-" -d --debug 顯示關於已完æˆäº‹ä»¶çš„資訊\n"
-" -h --help 顯示本資訊\n"
-" -v --version 列å°ç¨‹å¼çš„版本號碼\n"
-
-#: srconv.c:1866
-#, c-format
-msgid "unable to open output file %s"
-msgstr "無法打開輸出檔案 %s"
-
-#: stabs.c:330 stabs.c:1708
-msgid "numeric overflow"
-msgstr "數值溢出"
-
-#: stabs.c:340
-#, c-format
-msgid "Bad stab: %s\n"
-msgstr "ä¸è‰¯ stab: %s\n"
-
-#: stabs.c:348
-#, c-format
-msgid "Warning: %s: %s\n"
-msgstr "警告:%s:%s\n"
-
-#: stabs.c:458
-#, c-format
-msgid "N_LBRAC not within function\n"
-msgstr "N_LBRAC ä¸åœ¨å‡½æ•¸ä¸­\n"
-
-#: stabs.c:497
-#, c-format
-msgid "Too many N_RBRACs\n"
-msgstr "éŽå¤šçš„ N_RBRAC\n"
-
-#: stabs.c:738
-msgid "unknown C++ encoded name"
-msgstr "未知的 C++ 編碼å稱"
-
-#. Complain and keep going, so compilers can invent new
-#. cross-reference types.
-#: stabs.c:1253
-msgid "unrecognized cross reference type"
-msgstr "無法識別的交å‰åƒè€ƒé¡žåž‹"
-
-#. Does this actually ever happen? Is that why we are worrying
-#. about dealing with it rather than just calling error_type?
-#: stabs.c:1800
-msgid "missing index type"
-msgstr "éºæ¼çš„索引類型"
-
-#: stabs.c:2114
-msgid "unknown virtual character for baseclass"
-msgstr "ä¸æ˜Žä¹‹åšç‚ºåŸºæœ¬é¡žåˆ¥çš„虚擬字元"
-
-#: stabs.c:2132
-msgid "unknown visibility character for baseclass"
-msgstr "ä¸æ˜Žä¹‹åšç‚ºåŸºæœ¬é¡žåˆ¥çš„å¯è¦‹å­—å…ƒ"
-
-#: stabs.c:2318
-msgid "unnamed $vb type"
-msgstr "未命åçš„ $vb é¡žåž‹"
-
-#: stabs.c:2324
-msgid "unrecognized C++ abbreviation"
-msgstr "無法識別的 C++ 縮寫"
-
-#: stabs.c:2400
-msgid "unknown visibility character for field"
-msgstr "欄ä½ä¸­æœªçŸ¥çš„å¯è¦‹å­—å…ƒ"
-
-#: stabs.c:2652
-msgid "const/volatile indicator missing"
-msgstr "éºæ¼ const/volatile 指示符號"
-
-#: stabs.c:2888
-#, c-format
-msgid "No mangling for \"%s\"\n"
-msgstr "\"%s\" 沒有æ壞\n"
-
-#: stabs.c:3188
-msgid "Undefined N_EXCL"
-msgstr "未定義 N_EXCL"
-
-#: stabs.c:3268
-#, c-format
-msgid "Type file number %d out of range\n"
-msgstr "類型檔案編號 %d 超出範åœ\n"
-
-#: stabs.c:3273
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr "類型索引編號 %d 超出範åœ\n"
-
-#: stabs.c:3352
-#, c-format
-msgid "Unrecognized XCOFF type %d\n"
-msgstr "無法識別的 XCOFF 類型 %d\n"
-
-#: stabs.c:3644
-#, c-format
-msgid "bad mangled name `%s'\n"
-msgstr "ä¸è‰¯çš„æ毀å稱「%sã€\n"
-
-#: stabs.c:3739
-#, c-format
-msgid "no argument types in mangled string\n"
-msgstr "å·²æ毀字串中沒有引數類型\n"
-
-#: stabs.c:5093
-#, c-format
-msgid "Demangled name is not a function\n"
-msgstr "æ毀後修復的å稱ä¸æ˜¯å‡½æ•¸\n"
-
-#: stabs.c:5135
-#, c-format
-msgid "Unexpected type in v3 arglist demangling\n"
-msgstr "在 v3 引數表修復æ毀時有æ„外的類型\n"
-
-#: stabs.c:5202
-#, c-format
-msgid "Unrecognized demangle component %d\n"
-msgstr "無法識別的ææ¯€ä¿®å¾©çµ„æˆ %d\n"
-
-#: stabs.c:5254
-#, c-format
-msgid "Failed to print demangled template\n"
-msgstr "å°å‡ºæ毀修復之模版失敗\n"
-
-#: stabs.c:5334
-#, c-format
-msgid "Couldn't get demangled builtin type\n"
-msgstr "無法å–å¾—æ毀修復之內建類型\n"
-
-#: stabs.c:5383
-#, c-format
-msgid "Unexpected demangled varargs\n"
-msgstr "æ„外的æ毀修復變數\n"
-
-#: stabs.c:5390
-#, c-format
-msgid "Unrecognized demangled builtin type\n"
-msgstr "無法識別的æ毀修復之內建類型\n"
-
-#: strings.c:206
-#, c-format
-msgid "invalid number %s"
-msgstr "無效的編號 %s"
-
-#: strings.c:643
-#, c-format
-msgid "invalid integer argument %s"
-msgstr "無效的整數引數 %s"
-
-#: strings.c:652
-#, c-format
-msgid " Display printable strings in [file(s)] (stdin by default)\n"
-msgstr " 顯示 [檔案] (é è¨­ç‚ºæ¨™æº–輸入) 中å¯åˆ—å°çš„字串\n"
-
-#: strings.c:653
-#, c-format
-msgid ""
-" The options are:\n"
-" -a - --all Scan the entire file, not just the data section\n"
-" -f --print-file-name Print the name of the file before each string\n"
-" -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n"
-" -<number> least [number] characters (default 4).\n"
-" -t --radix={o,d,x} Print the location of the string in base 8, 10 or 16\n"
-" -o An alias for --radix=o\n"
-" -T --target=<BFDNAME> Specify the binary file format\n"
-" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
-" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" é¸é …為:\n"
-" -a - --all 掃瞄整個檔案,而éžåªæœ‰è³‡æ–™å€æ®µ\n"
-" -f --print-file-name 在æ¯å€‹å­—串之å‰å°å‡ºæª”案的å稱\n"
-" -n --bytes=[number] å®šå€ & å°å‡ºä»»ä½•ä»¥ NUL çµå°¾çš„åºåˆ—æ–¼ number\n"
-" -<number> 至少 [number] 個字元 (é è¨­ 4)\n"
-" -t --radix={o,d,x} 以八進ä½ã€å進ä½æˆ–å六進ä½å°å‡ºå­—串ä½ç½®\n"
-" -o --radix=o 的別å\n"
-" -T --target=<BFDNAME> 指定二進ä½æª”案格å¼\n"
-" -e --encoding={s,S,b,l,B,L} é¸æ“‡å­—元大å°èˆ‡å°¾åºï¼š\n"
-" s=7ä½å…ƒ, S=8ä½å…ƒ, {b,l}=16ä½å…ƒ, {B,L}=32ä½å…ƒ\n"
-" -h --help 顯示本資訊\n"
-" -v --version 顯示程å¼çš„版本號碼\n"
-
-#: sysdump.c:649
-#, c-format
-msgid "Print a human readable interpretation of a SYSROFF object file\n"
-msgstr "å°å‡ºé©æ–¼é–±è®€ä¹‹ SYSROFF 目標檔案的解釋\n"
-
-#: sysdump.c:650
-#, c-format
-msgid ""
-" The options are:\n"
-" -h --help Display this information\n"
-" -v --version Print the program's version number\n"
-msgstr ""
-" é¸é …為:\n"
-" -h --help 顯示本資訊\n"
-" -v --version 列å°ç¨‹å¼çš„版本號碼\n"
-
-#: sysdump.c:715
-#, c-format
-msgid "cannot open input file %s"
-msgstr "無法開啟輸入檔案 %s"
-
-#: version.c:35
-#, c-format
-msgid "Copyright 2005 Free Software Foundation, Inc.\n"
-msgstr "版權所有 2005 自由軟體基金會。\n"
-
-#: version.c:36
-#, c-format
-msgid ""
-"This program is free software; you may redistribute it under the terms of\n"
-"the GNU General Public License. This program has absolutely no warranty.\n"
-msgstr ""
-"本程å¼æ˜¯è‡ªç”±è»Ÿé«”;您å¯ä»¥æŒ‰ç…§ GNU 通用公共許å¯è­‰\n"
-"çš„æ¢æ¬¾å°å…¶é€²è¡Œå†ç™¼ä½ˆã€‚本程å¼å®Œå…¨æ²’有任何擔ä¿ã€‚\n"
-
-#: windres.c:204
-#, c-format
-msgid "can't open %s `%s': %s"
-msgstr "無法開啟 %s「%sã€ï¼š%s"
-
-#: windres.c:370
-#, c-format
-msgid ": expected to be a directory\n"
-msgstr ":應該是目錄\n"
-
-#: windres.c:382
-#, c-format
-msgid ": expected to be a leaf\n"
-msgstr ":應該是分支\n"
-
-#: windres.c:391
-#, c-format
-msgid "%s: warning: "
-msgstr "%s:警告:"
-
-#: windres.c:393
-#, c-format
-msgid ": duplicate value\n"
-msgstr ":é‡è¦†çš„值\n"
-
-#: windres.c:543
-#, c-format
-msgid "unknown format type `%s'"
-msgstr "未知的格å¼é¡žåž‹ã€Œ%sã€"
-
-#: windres.c:544
-#, c-format
-msgid "%s: supported formats:"
-msgstr "%s:支æ´çš„æ ¼å¼ï¼š"
-
-#. Otherwise, we give up.
-#: windres.c:627
-#, c-format
-msgid "can not determine type of file `%s'; use the -J option"
-msgstr "無法確定檔案「%sã€çš„類型;請使用 -J é¸é …"
-
-#: windres.c:639
-#, c-format
-msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
-msgstr "用法:%s [é¸é …] [輸入檔案] [輸出檔案]\n"
-
-#: windres.c:641
-#, c-format
-msgid ""
-" The options are:\n"
-" -i --input=<file> Name input file\n"
-" -o --output=<file> Name output file\n"
-" -J --input-format=<format> Specify input format\n"
-" -O --output-format=<format> Specify output format\n"
-" -F --target=<target> Specify COFF target\n"
-" --preprocessor=<program> Program to use to preprocess rc file\n"
-" -I --include-dir=<dir> Include directory when preprocessing rc file\n"
-" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
-" -U --undefine <sym> Undefine SYM when preprocessing rc file\n"
-" -v --verbose Verbose - tells you what it's doing\n"
-" -l --language=<val> Set language when reading rc file\n"
-" --use-temp-file Use a temporary file instead of popen to read\n"
-" the preprocessor output\n"
-" --no-use-temp-file Use popen (default)\n"
-msgstr ""
-" é¸é …為:\n"
-" -i --input=<file> 指å輸入檔案\n"
-" -o --output=<file> 指å輸出檔案\n"
-" -J --input-format=<format> 指定輸入格å¼\n"
-" -O --output-format=<format> 指定輸出格å¼\n"
-" -F --target=<target> 指定 COFF 目標\n"
-" --preprocessor=<program> 用於å‰ç½®è™•ç† rc 檔案的程å¼\n"
-" -I --include-dir=<dir> å‰ç½®è™•ç† rc 檔案時包å«çš„目錄\n"
-" -D --define <sym>[=<val>] å‰ç½®è™•ç† rc 檔案時定義 SYM\n"
-" -U --undefine <sym> å‰ç½®è™•ç† rc 檔案時解除 SYM\n"
-" -v --verbose 詳細 - 告訴您正在åšä»€éº¼\n"
-" -l --language=<val> è®€å– rc 檔案時設定之語言\n"
-" --use-temp-file ä½¿ç”¨è‡¨æ™‚æª”æ¡ˆè€Œéž popen 來讀å–å‰ç½®è™•ç†å™¨è¼¸å‡º\n"
-" --no-use-temp-file 使用 popen (é è¨­)\n"
-
-#: windres.c:657
-#, c-format
-msgid " --yydebug Turn on parser debugging\n"
-msgstr " --yydebug 打開解æžå™¨é™¤éŒ¯\n"
-
-#: windres.c:660
-#, c-format
-msgid ""
-" -r Ignored for compatibility with rc\n"
-" -h --help Print this help message\n"
-" -V --version Print version information\n"
-msgstr ""
-" é¸é …為:\n"
-" -r 忽略與 rc 的相容性\n"
-" -h --help 列å°æœ¬æ±‚助訊æ¯\n"
-" -V --version 列å°ç‰ˆæœ¬è³‡è¨Š\n"
-
-#: windres.c:664
-#, c-format
-msgid ""
-"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
-"extension if not specified. A single file name is an input file.\n"
-"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
-msgstr ""
-"FORMAT 是 rcã€res 或 coff 之一,在未指定時根據檔案的擴展å進行判斷。\n"
-"單一檔å被èªç‚ºæ˜¯è¼¸å…¥æª”案。沒有輸入檔案時就使用標準輸入,é è¨­æ ¼å¼\n"
-"為 rc。沒有輸出檔案時就使用標準輸出,é è¨­æ ¼å¼ç‚º rc。\n"
-
-#: windres.c:800
-msgid "invalid option -f\n"
-msgstr "無效的é¸é …「-fã€\n"
-
-#: windres.c:805
-msgid "No filename following the -fo option.\n"
-msgstr "在é¸é … -fo 之後沒有檔å。\n"
-
-#: windres.c:863
-#, c-format
-msgid "Option -I is deprecated for setting the input format, please use -J instead.\n"
-msgstr "é¸é … -I 用åšè¨­å®šè¼¸å…¥æ ¼å¼å·²éŽæ™‚,請使用 -J 代替。\n"
-
-#: windres.c:981
-msgid "no resources"
-msgstr "沒有資æº"
-
-#: wrstabs.c:354 wrstabs.c:1915
-#, c-format
-msgid "string_hash_lookup failed: %s"
-msgstr "string_hash_lookup 失敗:%s"
-
-#: wrstabs.c:635
-#, c-format
-msgid "stab_int_type: bad size %u"
-msgstr "stab_int_typeï¼šéŒ¯èª¤å¤§å° %u"
-
-#: wrstabs.c:1393
-#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct"
-msgstr "%s:警告:çµæ§‹ä¸­ã€Œ%sã€æ¬„ä½çš„大å°æœªçŸ¥"
diff --git a/binutils-2.17/binutils/prdbg.c b/binutils-2.17/binutils/prdbg.c
deleted file mode 100644
index 87a49341..00000000
--- a/binutils-2.17/binutils/prdbg.c
+++ /dev/null
@@ -1,2795 +0,0 @@
-/* prdbg.c -- Print out generic debugging information.
- Copyright 1995, 1996, 1999, 2002, 2003, 2004
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor <ian@cygnus.com>.
- Tags style generation written by Salvador E. Tropea <set@computer.org>.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This file prints out the generic debugging information, by
- supplying a set of routines to debug_write. */
-
-#include <stdio.h>
-#include <assert.h>
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "debug.h"
-#include "budbg.h"
-
-/* This is the structure we use as a handle for these routines. */
-
-struct pr_handle
-{
- /* File to print information to. */
- FILE *f;
- /* Current indentation level. */
- unsigned int indent;
- /* Type stack. */
- struct pr_stack *stack;
- /* Parameter number we are about to output. */
- int parameter;
- /* The following are used only by the tags code (tg_). */
- /* Name of the file we are using. */
- char *filename;
- /* The BFD. */
- bfd *abfd;
- /* The symbols table for this BFD. */
- asymbol **syms;
- /* Pointer to a function to demangle symbols. */
- char *(*demangler) (bfd *, const char *);
-};
-
-/* The type stack. */
-
-struct pr_stack
-{
- /* Next element on the stack. */
- struct pr_stack *next;
- /* This element. */
- char *type;
- /* Current visibility of fields if this is a class. */
- enum debug_visibility visibility;
- /* Name of the current method we are handling. */
- const char *method;
- /* The following are used only by the tags code (tg_). */
- /* Type for the container (struct, union, class, union class). */
- const char *flavor;
- /* A comma separated list of parent classes. */
- char *parents;
- /* How many parents contains parents. */
- int num_parents;
-};
-
-static void indent (struct pr_handle *);
-static bfd_boolean push_type (struct pr_handle *, const char *);
-static bfd_boolean prepend_type (struct pr_handle *, const char *);
-static bfd_boolean append_type (struct pr_handle *, const char *);
-static bfd_boolean substitute_type (struct pr_handle *, const char *);
-static bfd_boolean indent_type (struct pr_handle *);
-static char *pop_type (struct pr_handle *);
-static void print_vma (bfd_vma, char *, bfd_boolean, bfd_boolean);
-static bfd_boolean pr_fix_visibility
- (struct pr_handle *, enum debug_visibility);
-static bfd_boolean pr_start_compilation_unit (void *, const char *);
-static bfd_boolean pr_start_source (void *, const char *);
-static bfd_boolean pr_empty_type (void *);
-static bfd_boolean pr_void_type (void *);
-static bfd_boolean pr_int_type (void *, unsigned int, bfd_boolean);
-static bfd_boolean pr_float_type (void *, unsigned int);
-static bfd_boolean pr_complex_type (void *, unsigned int);
-static bfd_boolean pr_bool_type (void *, unsigned int);
-static bfd_boolean pr_enum_type
- (void *, const char *, const char **, bfd_signed_vma *);
-static bfd_boolean pr_pointer_type (void *);
-static bfd_boolean pr_function_type (void *, int, bfd_boolean);
-static bfd_boolean pr_reference_type (void *);
-static bfd_boolean pr_range_type (void *, bfd_signed_vma, bfd_signed_vma);
-static bfd_boolean pr_array_type
- (void *, bfd_signed_vma, bfd_signed_vma, bfd_boolean);
-static bfd_boolean pr_set_type (void *, bfd_boolean);
-static bfd_boolean pr_offset_type (void *);
-static bfd_boolean pr_method_type (void *, bfd_boolean, int, bfd_boolean);
-static bfd_boolean pr_const_type (void *);
-static bfd_boolean pr_volatile_type (void *);
-static bfd_boolean pr_start_struct_type
- (void *, const char *, unsigned int, bfd_boolean, unsigned int);
-static bfd_boolean pr_struct_field
- (void *, const char *, bfd_vma, bfd_vma, enum debug_visibility);
-static bfd_boolean pr_end_struct_type (void *);
-static bfd_boolean pr_start_class_type
- (void *, const char *, unsigned int, bfd_boolean, unsigned int,
- bfd_boolean, bfd_boolean);
-static bfd_boolean pr_class_static_member
- (void *, const char *, const char *, enum debug_visibility);
-static bfd_boolean pr_class_baseclass
- (void *, bfd_vma, bfd_boolean, enum debug_visibility);
-static bfd_boolean pr_class_start_method (void *, const char *);
-static bfd_boolean pr_class_method_variant
- (void *, const char *, enum debug_visibility, bfd_boolean, bfd_boolean,
- bfd_vma, bfd_boolean);
-static bfd_boolean pr_class_static_method_variant
- (void *, const char *, enum debug_visibility, bfd_boolean, bfd_boolean);
-static bfd_boolean pr_class_end_method (void *);
-static bfd_boolean pr_end_class_type (void *);
-static bfd_boolean pr_typedef_type (void *, const char *);
-static bfd_boolean pr_tag_type
- (void *, const char *, unsigned int, enum debug_type_kind);
-static bfd_boolean pr_typdef (void *, const char *);
-static bfd_boolean pr_tag (void *, const char *);
-static bfd_boolean pr_int_constant (void *, const char *, bfd_vma);
-static bfd_boolean pr_float_constant (void *, const char *, double);
-static bfd_boolean pr_typed_constant (void *, const char *, bfd_vma);
-static bfd_boolean pr_variable
- (void *, const char *, enum debug_var_kind, bfd_vma);
-static bfd_boolean pr_start_function (void *, const char *, bfd_boolean);
-static bfd_boolean pr_function_parameter
- (void *, const char *, enum debug_parm_kind, bfd_vma);
-static bfd_boolean pr_start_block (void *, bfd_vma);
-static bfd_boolean pr_end_block (void *, bfd_vma);
-static bfd_boolean pr_end_function (void *);
-static bfd_boolean pr_lineno (void *, const char *, unsigned long, bfd_vma);
-static bfd_boolean append_parent (struct pr_handle *, const char *);
-/* Only used by tg_ code. */
-static bfd_boolean tg_fix_visibility
- (struct pr_handle *, enum debug_visibility);
-static void find_address_in_section (bfd *, asection *, void *);
-static void translate_addresses (bfd *, char *, FILE *, asymbol **);
-static const char *visibility_name (enum debug_visibility);
-/* Tags style replacements. */
-static bfd_boolean tg_start_compilation_unit (void *, const char *);
-static bfd_boolean tg_start_source (void *, const char *);
-static bfd_boolean tg_enum_type
- (void *, const char *, const char **, bfd_signed_vma *);
-static bfd_boolean tg_start_struct_type
- (void *, const char *, unsigned int, bfd_boolean, unsigned int);
-static bfd_boolean pr_struct_field
- (void *, const char *, bfd_vma, bfd_vma, enum debug_visibility);
-static bfd_boolean tg_struct_field
- (void *, const char *, bfd_vma, bfd_vma, enum debug_visibility);
-static bfd_boolean tg_struct_field
- (void *, const char *, bfd_vma, bfd_vma, enum debug_visibility);
-static bfd_boolean tg_end_struct_type (void *);
-static bfd_boolean tg_start_class_type
- (void *, const char *, unsigned int, bfd_boolean, unsigned int, bfd_boolean, bfd_boolean);
-static bfd_boolean tg_class_static_member
- (void *, const char *, const char *, enum debug_visibility);
-static bfd_boolean tg_class_baseclass
- (void *, bfd_vma, bfd_boolean, enum debug_visibility);
-static bfd_boolean tg_class_method_variant
- (void *, const char *, enum debug_visibility, bfd_boolean, bfd_boolean, bfd_vma, bfd_boolean);
-static bfd_boolean tg_class_static_method_variant
- (void *, const char *, enum debug_visibility, bfd_boolean, bfd_boolean);
-static bfd_boolean tg_end_class_type (void *);
-static bfd_boolean tg_tag_type
- (void *, const char *, unsigned int, enum debug_type_kind);
-static bfd_boolean tg_typdef (void *, const char *);
-static bfd_boolean tg_tag (void *, const char *);
-static bfd_boolean tg_int_constant (void *, const char *, bfd_vma);
-static bfd_boolean tg_float_constant (void *, const char *, double);
-static bfd_boolean tg_typed_constant (void *, const char *, bfd_vma);
-static bfd_boolean tg_variable
- (void *, const char *, enum debug_var_kind, bfd_vma);
-static bfd_boolean tg_start_function (void *, const char *, bfd_boolean);
-static bfd_boolean tg_function_parameter
- (void *, const char *, enum debug_parm_kind, bfd_vma);
-static bfd_boolean tg_start_block (void *, bfd_vma);
-static bfd_boolean tg_end_block (void *, bfd_vma);
-static bfd_boolean tg_lineno (void *, const char *, unsigned long, bfd_vma);
-
-static const struct debug_write_fns pr_fns =
-{
- pr_start_compilation_unit,
- pr_start_source,
- pr_empty_type,
- pr_void_type,
- pr_int_type,
- pr_float_type,
- pr_complex_type,
- pr_bool_type,
- pr_enum_type,
- pr_pointer_type,
- pr_function_type,
- pr_reference_type,
- pr_range_type,
- pr_array_type,
- pr_set_type,
- pr_offset_type,
- pr_method_type,
- pr_const_type,
- pr_volatile_type,
- pr_start_struct_type,
- pr_struct_field,
- pr_end_struct_type,
- pr_start_class_type,
- pr_class_static_member,
- pr_class_baseclass,
- pr_class_start_method,
- pr_class_method_variant,
- pr_class_static_method_variant,
- pr_class_end_method,
- pr_end_class_type,
- pr_typedef_type,
- pr_tag_type,
- pr_typdef,
- pr_tag,
- pr_int_constant,
- pr_float_constant,
- pr_typed_constant,
- pr_variable,
- pr_start_function,
- pr_function_parameter,
- pr_start_block,
- pr_end_block,
- pr_end_function,
- pr_lineno
-};
-
-static const struct debug_write_fns tg_fns =
-{
- tg_start_compilation_unit,
- tg_start_source,
- pr_empty_type, /* Same, push_type. */
- pr_void_type, /* Same, push_type. */
- pr_int_type, /* Same, push_type. */
- pr_float_type, /* Same, push_type. */
- pr_complex_type, /* Same, push_type. */
- pr_bool_type, /* Same, push_type. */
- tg_enum_type,
- pr_pointer_type, /* Same, changes to pointer. */
- pr_function_type, /* Same, push_type. */
- pr_reference_type, /* Same, changes to reference. */
- pr_range_type, /* FIXME: What's that?. */
- pr_array_type, /* Same, push_type. */
- pr_set_type, /* FIXME: What's that?. */
- pr_offset_type, /* FIXME: What's that?. */
- pr_method_type, /* Same. */
- pr_const_type, /* Same, changes to const. */
- pr_volatile_type, /* Same, changes to volatile. */
- tg_start_struct_type,
- tg_struct_field,
- tg_end_struct_type,
- tg_start_class_type,
- tg_class_static_member,
- tg_class_baseclass,
- pr_class_start_method, /* Same, remembers that's a method. */
- tg_class_method_variant,
- tg_class_static_method_variant,
- pr_class_end_method, /* Same, forgets that's a method. */
- tg_end_class_type,
- pr_typedef_type, /* Same, just push type. */
- tg_tag_type,
- tg_typdef,
- tg_tag,
- tg_int_constant, /* Untested. */
- tg_float_constant, /* Untested. */
- tg_typed_constant, /* Untested. */
- tg_variable,
- tg_start_function,
- tg_function_parameter,
- tg_start_block,
- tg_end_block,
- pr_end_function, /* Same, does nothing. */
- tg_lineno
-};
-
-/* Print out the generic debugging information recorded in dhandle. */
-
-bfd_boolean
-print_debugging_info (FILE *f, void *dhandle, bfd *abfd, asymbol **syms,
- void *demangler, bfd_boolean as_tags)
-{
- struct pr_handle info;
-
- info.f = f;
- info.indent = 0;
- info.stack = NULL;
- info.parameter = 0;
- info.filename = NULL;
- info.abfd = abfd;
- info.syms = syms;
- info.demangler = demangler;
-
- if (as_tags)
- {
- fputs ("!_TAG_FILE_FORMAT\t2\t/extended format/\n", f);
- fputs ("!_TAG_FILE_SORTED\t0\t/0=unsorted, 1=sorted/\n", f);
- fputs ("!_TAG_PROGRAM_AUTHOR\tIan Lance Taylor, Salvador E. Tropea and others\t//\n", f);
- fputs ("!_TAG_PROGRAM_NAME\tobjdump\t/From GNU binutils/\n", f);
- }
-
- return as_tags ? debug_write (dhandle, &tg_fns, (void *) & info)
- : debug_write (dhandle, &pr_fns, (void *) & info);
-}
-
-/* Indent to the current indentation level. */
-
-static void
-indent (struct pr_handle *info)
-{
- unsigned int i;
-
- for (i = 0; i < info->indent; i++)
- putc (' ', info->f);
-}
-
-/* Push a type on the type stack. */
-
-static bfd_boolean
-push_type (struct pr_handle *info, const char *type)
-{
- struct pr_stack *n;
-
- if (type == NULL)
- return FALSE;
-
- n = (struct pr_stack *) xmalloc (sizeof *n);
- memset (n, 0, sizeof *n);
-
- n->type = xstrdup (type);
- n->visibility = DEBUG_VISIBILITY_IGNORE;
- n->method = NULL;
- n->next = info->stack;
- info->stack = n;
-
- return TRUE;
-}
-
-/* Prepend a string onto the type on the top of the type stack. */
-
-static bfd_boolean
-prepend_type (struct pr_handle *info, const char *s)
-{
- char *n;
-
- assert (info->stack != NULL);
-
- n = (char *) xmalloc (strlen (s) + strlen (info->stack->type) + 1);
- sprintf (n, "%s%s", s, info->stack->type);
- free (info->stack->type);
- info->stack->type = n;
-
- return TRUE;
-}
-
-/* Append a string to the type on the top of the type stack. */
-
-static bfd_boolean
-append_type (struct pr_handle *info, const char *s)
-{
- unsigned int len;
-
- if (s == NULL)
- return FALSE;
-
- assert (info->stack != NULL);
-
- len = strlen (info->stack->type);
- info->stack->type = (char *) xrealloc (info->stack->type,
- len + strlen (s) + 1);
- strcpy (info->stack->type + len, s);
-
- return TRUE;
-}
-
-/* Append a string to the parents on the top of the type stack. */
-
-static bfd_boolean
-append_parent (struct pr_handle *info, const char *s)
-{
- unsigned int len;
-
- if (s == NULL)
- return FALSE;
-
- assert (info->stack != NULL);
-
- len = info->stack->parents ? strlen (info->stack->parents) : 0;
- info->stack->parents = (char *) xrealloc (info->stack->parents,
- len + strlen (s) + 1);
- strcpy (info->stack->parents + len, s);
-
- return TRUE;
-}
-
-/* We use an underscore to indicate where the name should go in a type
- string. This function substitutes a string for the underscore. If
- there is no underscore, the name follows the type. */
-
-static bfd_boolean
-substitute_type (struct pr_handle *info, const char *s)
-{
- char *u;
-
- assert (info->stack != NULL);
-
- u = strchr (info->stack->type, '|');
- if (u != NULL)
- {
- char *n;
-
- n = (char *) xmalloc (strlen (info->stack->type) + strlen (s));
-
- memcpy (n, info->stack->type, u - info->stack->type);
- strcpy (n + (u - info->stack->type), s);
- strcat (n, u + 1);
-
- free (info->stack->type);
- info->stack->type = n;
-
- return TRUE;
- }
-
- if (strchr (s, '|') != NULL
- && (strchr (info->stack->type, '{') != NULL
- || strchr (info->stack->type, '(') != NULL))
- {
- if (! prepend_type (info, "(")
- || ! append_type (info, ")"))
- return FALSE;
- }
-
- if (*s == '\0')
- return TRUE;
-
- return (append_type (info, " ")
- && append_type (info, s));
-}
-
-/* Indent the type at the top of the stack by appending spaces. */
-
-static bfd_boolean
-indent_type (struct pr_handle *info)
-{
- unsigned int i;
-
- for (i = 0; i < info->indent; i++)
- {
- if (! append_type (info, " "))
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Pop a type from the type stack. */
-
-static char *
-pop_type (struct pr_handle *info)
-{
- struct pr_stack *o;
- char *ret;
-
- assert (info->stack != NULL);
-
- o = info->stack;
- info->stack = o->next;
- ret = o->type;
- free (o);
-
- return ret;
-}
-
-/* Print a VMA value into a string. */
-
-static void
-print_vma (bfd_vma vma, char *buf, bfd_boolean unsignedp, bfd_boolean hexp)
-{
- if (sizeof (vma) <= sizeof (unsigned long))
- {
- if (hexp)
- sprintf (buf, "0x%lx", (unsigned long) vma);
- else if (unsignedp)
- sprintf (buf, "%lu", (unsigned long) vma);
- else
- sprintf (buf, "%ld", (long) vma);
- }
- else
- {
- buf[0] = '0';
- buf[1] = 'x';
- sprintf_vma (buf + 2, vma);
- }
-}
-
-/* Start a new compilation unit. */
-
-static bfd_boolean
-pr_start_compilation_unit (void *p, const char *filename)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- assert (info->indent == 0);
-
- fprintf (info->f, "%s:\n", filename);
-
- return TRUE;
-}
-
-/* Start a source file within a compilation unit. */
-
-static bfd_boolean
-pr_start_source (void *p, const char *filename)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- assert (info->indent == 0);
-
- fprintf (info->f, " %s:\n", filename);
-
- return TRUE;
-}
-
-/* Push an empty type onto the type stack. */
-
-static bfd_boolean
-pr_empty_type (void *p)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- return push_type (info, "<undefined>");
-}
-
-/* Push a void type onto the type stack. */
-
-static bfd_boolean
-pr_void_type (void *p)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- return push_type (info, "void");
-}
-
-/* Push an integer type onto the type stack. */
-
-static bfd_boolean
-pr_int_type (void *p, unsigned int size, bfd_boolean unsignedp)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char ab[10];
-
- sprintf (ab, "%sint%d", unsignedp ? "u" : "", size * 8);
- return push_type (info, ab);
-}
-
-/* Push a floating type onto the type stack. */
-
-static bfd_boolean
-pr_float_type (void *p, unsigned int size)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char ab[10];
-
- if (size == 4)
- return push_type (info, "float");
- else if (size == 8)
- return push_type (info, "double");
-
- sprintf (ab, "float%d", size * 8);
- return push_type (info, ab);
-}
-
-/* Push a complex type onto the type stack. */
-
-static bfd_boolean
-pr_complex_type (void *p, unsigned int size)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- if (! pr_float_type (p, size))
- return FALSE;
-
- return prepend_type (info, "complex ");
-}
-
-/* Push a bfd_boolean type onto the type stack. */
-
-static bfd_boolean
-pr_bool_type (void *p, unsigned int size)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char ab[10];
-
- sprintf (ab, "bool%d", size * 8);
-
- return push_type (info, ab);
-}
-
-/* Push an enum type onto the type stack. */
-
-static bfd_boolean
-pr_enum_type (void *p, const char *tag, const char **names,
- bfd_signed_vma *values)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- unsigned int i;
- bfd_signed_vma val;
-
- if (! push_type (info, "enum "))
- return FALSE;
- if (tag != NULL)
- {
- if (! append_type (info, tag)
- || ! append_type (info, " "))
- return FALSE;
- }
- if (! append_type (info, "{ "))
- return FALSE;
-
- if (names == NULL)
- {
- if (! append_type (info, "/* undefined */"))
- return FALSE;
- }
- else
- {
- val = 0;
- for (i = 0; names[i] != NULL; i++)
- {
- if (i > 0)
- {
- if (! append_type (info, ", "))
- return FALSE;
- }
-
- if (! append_type (info, names[i]))
- return FALSE;
-
- if (values[i] != val)
- {
- char ab[20];
-
- print_vma (values[i], ab, FALSE, FALSE);
- if (! append_type (info, " = ")
- || ! append_type (info, ab))
- return FALSE;
- val = values[i];
- }
-
- ++val;
- }
- }
-
- return append_type (info, " }");
-}
-
-/* Turn the top type on the stack into a pointer. */
-
-static bfd_boolean
-pr_pointer_type (void *p)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *s;
-
- assert (info->stack != NULL);
-
- s = strchr (info->stack->type, '|');
- if (s != NULL && s[1] == '[')
- return substitute_type (info, "(*|)");
- return substitute_type (info, "*|");
-}
-
-/* Turn the top type on the stack into a function returning that type. */
-
-static bfd_boolean
-pr_function_type (void *p, int argcount, bfd_boolean varargs)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char **arg_types;
- unsigned int len;
- char *s;
-
- assert (info->stack != NULL);
-
- len = 10;
-
- if (argcount <= 0)
- {
- arg_types = NULL;
- len += 15;
- }
- else
- {
- int i;
-
- arg_types = (char **) xmalloc (argcount * sizeof *arg_types);
- for (i = argcount - 1; i >= 0; i--)
- {
- if (! substitute_type (info, ""))
- return FALSE;
- arg_types[i] = pop_type (info);
- if (arg_types[i] == NULL)
- return FALSE;
- len += strlen (arg_types[i]) + 2;
- }
- if (varargs)
- len += 5;
- }
-
- /* Now the return type is on the top of the stack. */
-
- s = (char *) xmalloc (len);
- strcpy (s, "(|) (");
-
- if (argcount < 0)
- strcat (s, "/* unknown */");
- else
- {
- int i;
-
- for (i = 0; i < argcount; i++)
- {
- if (i > 0)
- strcat (s, ", ");
- strcat (s, arg_types[i]);
- }
- if (varargs)
- {
- if (i > 0)
- strcat (s, ", ");
- strcat (s, "...");
- }
- if (argcount > 0)
- free (arg_types);
- }
-
- strcat (s, ")");
-
- if (! substitute_type (info, s))
- return FALSE;
-
- free (s);
-
- return TRUE;
-}
-
-/* Turn the top type on the stack into a reference to that type. */
-
-static bfd_boolean
-pr_reference_type (void *p)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- assert (info->stack != NULL);
-
- return substitute_type (info, "&|");
-}
-
-/* Make a range type. */
-
-static bfd_boolean
-pr_range_type (void *p, bfd_signed_vma lower, bfd_signed_vma upper)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char abl[20], abu[20];
-
- assert (info->stack != NULL);
-
- if (! substitute_type (info, ""))
- return FALSE;
-
- print_vma (lower, abl, FALSE, FALSE);
- print_vma (upper, abu, FALSE, FALSE);
-
- return (prepend_type (info, "range (")
- && append_type (info, "):")
- && append_type (info, abl)
- && append_type (info, ":")
- && append_type (info, abu));
-}
-
-/* Make an array type. */
-
-static bfd_boolean
-pr_array_type (void *p, bfd_signed_vma lower, bfd_signed_vma upper,
- bfd_boolean stringp)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *range_type;
- char abl[20], abu[20], ab[50];
-
- range_type = pop_type (info);
- if (range_type == NULL)
- return FALSE;
-
- if (lower == 0)
- {
- if (upper == -1)
- sprintf (ab, "|[]");
- else
- {
- print_vma (upper + 1, abu, FALSE, FALSE);
- sprintf (ab, "|[%s]", abu);
- }
- }
- else
- {
- print_vma (lower, abl, FALSE, FALSE);
- print_vma (upper, abu, FALSE, FALSE);
- sprintf (ab, "|[%s:%s]", abl, abu);
- }
-
- if (! substitute_type (info, ab))
- return FALSE;
-
- if (strcmp (range_type, "int") != 0)
- {
- if (! append_type (info, ":")
- || ! append_type (info, range_type))
- return FALSE;
- }
-
- if (stringp)
- {
- if (! append_type (info, " /* string */"))
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Make a set type. */
-
-static bfd_boolean
-pr_set_type (void *p, bfd_boolean bitstringp)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- if (! substitute_type (info, ""))
- return FALSE;
-
- if (! prepend_type (info, "set { ")
- || ! append_type (info, " }"))
- return FALSE;
-
- if (bitstringp)
- {
- if (! append_type (info, "/* bitstring */"))
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Make an offset type. */
-
-static bfd_boolean
-pr_offset_type (void *p)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
-
- if (! substitute_type (info, ""))
- return FALSE;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- return (substitute_type (info, "")
- && prepend_type (info, " ")
- && prepend_type (info, t)
- && append_type (info, "::|"));
-}
-
-/* Make a method type. */
-
-static bfd_boolean
-pr_method_type (void *p, bfd_boolean domain, int argcount, bfd_boolean varargs)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- unsigned int len;
- char *domain_type;
- char **arg_types;
- char *s;
-
- len = 10;
-
- if (! domain)
- domain_type = NULL;
- else
- {
- if (! substitute_type (info, ""))
- return FALSE;
- domain_type = pop_type (info);
- if (domain_type == NULL)
- return FALSE;
- if (strncmp (domain_type, "class ", sizeof "class " - 1) == 0
- && strchr (domain_type + sizeof "class " - 1, ' ') == NULL)
- domain_type += sizeof "class " - 1;
- else if (strncmp (domain_type, "union class ",
- sizeof "union class ") == 0
- && (strchr (domain_type + sizeof "union class " - 1, ' ')
- == NULL))
- domain_type += sizeof "union class " - 1;
- len += strlen (domain_type);
- }
-
- if (argcount <= 0)
- {
- arg_types = NULL;
- len += 15;
- }
- else
- {
- int i;
-
- arg_types = (char **) xmalloc (argcount * sizeof *arg_types);
- for (i = argcount - 1; i >= 0; i--)
- {
- if (! substitute_type (info, ""))
- return FALSE;
- arg_types[i] = pop_type (info);
- if (arg_types[i] == NULL)
- return FALSE;
- len += strlen (arg_types[i]) + 2;
- }
- if (varargs)
- len += 5;
- }
-
- /* Now the return type is on the top of the stack. */
-
- s = (char *) xmalloc (len);
- if (! domain)
- *s = '\0';
- else
- strcpy (s, domain_type);
- strcat (s, "::| (");
-
- if (argcount < 0)
- strcat (s, "/* unknown */");
- else
- {
- int i;
-
- for (i = 0; i < argcount; i++)
- {
- if (i > 0)
- strcat (s, ", ");
- strcat (s, arg_types[i]);
- }
- if (varargs)
- {
- if (i > 0)
- strcat (s, ", ");
- strcat (s, "...");
- }
- if (argcount > 0)
- free (arg_types);
- }
-
- strcat (s, ")");
-
- if (! substitute_type (info, s))
- return FALSE;
-
- free (s);
-
- return TRUE;
-}
-
-/* Make a const qualified type. */
-
-static bfd_boolean
-pr_const_type (void *p)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- return substitute_type (info, "const |");
-}
-
-/* Make a volatile qualified type. */
-
-static bfd_boolean
-pr_volatile_type (void *p)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- return substitute_type (info, "volatile |");
-}
-
-/* Start accumulating a struct type. */
-
-static bfd_boolean
-pr_start_struct_type (void *p, const char *tag, unsigned int id,
- bfd_boolean structp, unsigned int size)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- info->indent += 2;
-
- if (! push_type (info, structp ? "struct " : "union "))
- return FALSE;
- if (tag != NULL)
- {
- if (! append_type (info, tag))
- return FALSE;
- }
- else
- {
- char idbuf[20];
-
- sprintf (idbuf, "%%anon%u", id);
- if (! append_type (info, idbuf))
- return FALSE;
- }
-
- if (! append_type (info, " {"))
- return FALSE;
- if (size != 0 || tag != NULL)
- {
- char ab[30];
-
- if (! append_type (info, " /*"))
- return FALSE;
-
- if (size != 0)
- {
- sprintf (ab, " size %u", size);
- if (! append_type (info, ab))
- return FALSE;
- }
- if (tag != NULL)
- {
- sprintf (ab, " id %u", id);
- if (! append_type (info, ab))
- return FALSE;
- }
- if (! append_type (info, " */"))
- return FALSE;
- }
- if (! append_type (info, "\n"))
- return FALSE;
-
- info->stack->visibility = DEBUG_VISIBILITY_PUBLIC;
-
- return indent_type (info);
-}
-
-/* Output the visibility of a field in a struct. */
-
-static bfd_boolean
-pr_fix_visibility (struct pr_handle *info, enum debug_visibility visibility)
-{
- const char *s = NULL;
- char *t;
- unsigned int len;
-
- assert (info->stack != NULL);
-
- if (info->stack->visibility == visibility)
- return TRUE;
-
- switch (visibility)
- {
- case DEBUG_VISIBILITY_PUBLIC:
- s = "public";
- break;
- case DEBUG_VISIBILITY_PRIVATE:
- s = "private";
- break;
- case DEBUG_VISIBILITY_PROTECTED:
- s = "protected";
- break;
- case DEBUG_VISIBILITY_IGNORE:
- s = "/* ignore */";
- break;
- default:
- abort ();
- return FALSE;
- }
-
- /* Trim off a trailing space in the struct string, to make the
- output look a bit better, then stick on the visibility string. */
-
- t = info->stack->type;
- len = strlen (t);
- assert (t[len - 1] == ' ');
- t[len - 1] = '\0';
-
- if (! append_type (info, s)
- || ! append_type (info, ":\n")
- || ! indent_type (info))
- return FALSE;
-
- info->stack->visibility = visibility;
-
- return TRUE;
-}
-
-/* Add a field to a struct type. */
-
-static bfd_boolean
-pr_struct_field (void *p, const char *name, bfd_vma bitpos, bfd_vma bitsize,
- enum debug_visibility visibility)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char ab[20];
- char *t;
-
- if (! substitute_type (info, name))
- return FALSE;
-
- if (! append_type (info, "; /* "))
- return FALSE;
-
- if (bitsize != 0)
- {
- print_vma (bitsize, ab, TRUE, FALSE);
- if (! append_type (info, "bitsize ")
- || ! append_type (info, ab)
- || ! append_type (info, ", "))
- return FALSE;
- }
-
- print_vma (bitpos, ab, TRUE, FALSE);
- if (! append_type (info, "bitpos ")
- || ! append_type (info, ab)
- || ! append_type (info, " */\n")
- || ! indent_type (info))
- return FALSE;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- if (! pr_fix_visibility (info, visibility))
- return FALSE;
-
- return append_type (info, t);
-}
-
-/* Finish a struct type. */
-
-static bfd_boolean
-pr_end_struct_type (void *p)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *s;
-
- assert (info->stack != NULL);
- assert (info->indent >= 2);
-
- info->indent -= 2;
-
- /* Change the trailing indentation to have a close brace. */
- s = info->stack->type + strlen (info->stack->type) - 2;
- assert (s[0] == ' ' && s[1] == ' ' && s[2] == '\0');
-
- *s++ = '}';
- *s = '\0';
-
- return TRUE;
-}
-
-/* Start a class type. */
-
-static bfd_boolean
-pr_start_class_type (void *p, const char *tag, unsigned int id,
- bfd_boolean structp, unsigned int size,
- bfd_boolean vptr, bfd_boolean ownvptr)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *tv = NULL;
-
- info->indent += 2;
-
- if (vptr && ! ownvptr)
- {
- tv = pop_type (info);
- if (tv == NULL)
- return FALSE;
- }
-
- if (! push_type (info, structp ? "class " : "union class "))
- return FALSE;
- if (tag != NULL)
- {
- if (! append_type (info, tag))
- return FALSE;
- }
- else
- {
- char idbuf[20];
-
- sprintf (idbuf, "%%anon%u", id);
- if (! append_type (info, idbuf))
- return FALSE;
- }
-
- if (! append_type (info, " {"))
- return FALSE;
- if (size != 0 || vptr || ownvptr || tag != NULL)
- {
- if (! append_type (info, " /*"))
- return FALSE;
-
- if (size != 0)
- {
- char ab[20];
-
- sprintf (ab, "%u", size);
- if (! append_type (info, " size ")
- || ! append_type (info, ab))
- return FALSE;
- }
-
- if (vptr)
- {
- if (! append_type (info, " vtable "))
- return FALSE;
- if (ownvptr)
- {
- if (! append_type (info, "self "))
- return FALSE;
- }
- else
- {
- if (! append_type (info, tv)
- || ! append_type (info, " "))
- return FALSE;
- }
- }
-
- if (tag != NULL)
- {
- char ab[30];
-
- sprintf (ab, " id %u", id);
- if (! append_type (info, ab))
- return FALSE;
- }
-
- if (! append_type (info, " */"))
- return FALSE;
- }
-
- info->stack->visibility = DEBUG_VISIBILITY_PRIVATE;
-
- return (append_type (info, "\n")
- && indent_type (info));
-}
-
-/* Add a static member to a class. */
-
-static bfd_boolean
-pr_class_static_member (void *p, const char *name, const char *physname,
- enum debug_visibility visibility)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
-
- if (! substitute_type (info, name))
- return FALSE;
-
- if (! prepend_type (info, "static ")
- || ! append_type (info, "; /* ")
- || ! append_type (info, physname)
- || ! append_type (info, " */\n")
- || ! indent_type (info))
- return FALSE;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- if (! pr_fix_visibility (info, visibility))
- return FALSE;
-
- return append_type (info, t);
-}
-
-/* Add a base class to a class. */
-
-static bfd_boolean
-pr_class_baseclass (void *p, bfd_vma bitpos, bfd_boolean virtual,
- enum debug_visibility visibility)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
- const char *prefix;
- char ab[20];
- char *s, *l, *n;
-
- assert (info->stack != NULL && info->stack->next != NULL);
-
- if (! substitute_type (info, ""))
- return FALSE;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- if (strncmp (t, "class ", sizeof "class " - 1) == 0)
- t += sizeof "class " - 1;
-
- /* Push it back on to take advantage of the prepend_type and
- append_type routines. */
- if (! push_type (info, t))
- return FALSE;
-
- if (virtual)
- {
- if (! prepend_type (info, "virtual "))
- return FALSE;
- }
-
- switch (visibility)
- {
- case DEBUG_VISIBILITY_PUBLIC:
- prefix = "public ";
- break;
- case DEBUG_VISIBILITY_PROTECTED:
- prefix = "protected ";
- break;
- case DEBUG_VISIBILITY_PRIVATE:
- prefix = "private ";
- break;
- default:
- prefix = "/* unknown visibility */ ";
- break;
- }
-
- if (! prepend_type (info, prefix))
- return FALSE;
-
- if (bitpos != 0)
- {
- print_vma (bitpos, ab, TRUE, FALSE);
- if (! append_type (info, " /* bitpos ")
- || ! append_type (info, ab)
- || ! append_type (info, " */"))
- return FALSE;
- }
-
- /* Now the top of the stack is something like "public A / * bitpos
- 10 * /". The next element on the stack is something like "class
- xx { / * size 8 * /\n...". We want to substitute the top of the
- stack in before the {. */
- s = strchr (info->stack->next->type, '{');
- assert (s != NULL);
- --s;
-
- /* If there is already a ':', then we already have a baseclass, and
- we must append this one after a comma. */
- for (l = info->stack->next->type; l != s; l++)
- if (*l == ':')
- break;
- if (! prepend_type (info, l == s ? " : " : ", "))
- return FALSE;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- n = (char *) xmalloc (strlen (info->stack->type) + strlen (t) + 1);
- memcpy (n, info->stack->type, s - info->stack->type);
- strcpy (n + (s - info->stack->type), t);
- strcat (n, s);
-
- free (info->stack->type);
- info->stack->type = n;
-
- free (t);
-
- return TRUE;
-}
-
-/* Start adding a method to a class. */
-
-static bfd_boolean
-pr_class_start_method (void *p, const char *name)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- assert (info->stack != NULL);
- info->stack->method = name;
- return TRUE;
-}
-
-/* Add a variant to a method. */
-
-static bfd_boolean
-pr_class_method_variant (void *p, const char *physname,
- enum debug_visibility visibility,
- bfd_boolean constp, bfd_boolean volatilep,
- bfd_vma voffset, bfd_boolean context)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *method_type;
- char *context_type;
-
- assert (info->stack != NULL);
- assert (info->stack->next != NULL);
-
- /* Put the const and volatile qualifiers on the type. */
- if (volatilep)
- {
- if (! append_type (info, " volatile"))
- return FALSE;
- }
- if (constp)
- {
- if (! append_type (info, " const"))
- return FALSE;
- }
-
- /* Stick the name of the method into its type. */
- if (! substitute_type (info,
- (context
- ? info->stack->next->next->method
- : info->stack->next->method)))
- return FALSE;
-
- /* Get the type. */
- method_type = pop_type (info);
- if (method_type == NULL)
- return FALSE;
-
- /* Pull off the context type if there is one. */
- if (! context)
- context_type = NULL;
- else
- {
- context_type = pop_type (info);
- if (context_type == NULL)
- return FALSE;
- }
-
- /* Now the top of the stack is the class. */
-
- if (! pr_fix_visibility (info, visibility))
- return FALSE;
-
- if (! append_type (info, method_type)
- || ! append_type (info, " /* ")
- || ! append_type (info, physname)
- || ! append_type (info, " "))
- return FALSE;
- if (context || voffset != 0)
- {
- char ab[20];
-
- if (context)
- {
- if (! append_type (info, "context ")
- || ! append_type (info, context_type)
- || ! append_type (info, " "))
- return FALSE;
- }
- print_vma (voffset, ab, TRUE, FALSE);
- if (! append_type (info, "voffset ")
- || ! append_type (info, ab))
- return FALSE;
- }
-
- return (append_type (info, " */;\n")
- && indent_type (info));
-}
-
-/* Add a static variant to a method. */
-
-static bfd_boolean
-pr_class_static_method_variant (void *p, const char *physname,
- enum debug_visibility visibility,
- bfd_boolean constp, bfd_boolean volatilep)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *method_type;
-
- assert (info->stack != NULL);
- assert (info->stack->next != NULL);
- assert (info->stack->next->method != NULL);
-
- /* Put the const and volatile qualifiers on the type. */
- if (volatilep)
- {
- if (! append_type (info, " volatile"))
- return FALSE;
- }
- if (constp)
- {
- if (! append_type (info, " const"))
- return FALSE;
- }
-
- /* Mark it as static. */
- if (! prepend_type (info, "static "))
- return FALSE;
-
- /* Stick the name of the method into its type. */
- if (! substitute_type (info, info->stack->next->method))
- return FALSE;
-
- /* Get the type. */
- method_type = pop_type (info);
- if (method_type == NULL)
- return FALSE;
-
- /* Now the top of the stack is the class. */
-
- if (! pr_fix_visibility (info, visibility))
- return FALSE;
-
- return (append_type (info, method_type)
- && append_type (info, " /* ")
- && append_type (info, physname)
- && append_type (info, " */;\n")
- && indent_type (info));
-}
-
-/* Finish up a method. */
-
-static bfd_boolean
-pr_class_end_method (void *p)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- info->stack->method = NULL;
- return TRUE;
-}
-
-/* Finish up a class. */
-
-static bfd_boolean
-pr_end_class_type (void *p)
-{
- return pr_end_struct_type (p);
-}
-
-/* Push a type on the stack using a typedef name. */
-
-static bfd_boolean
-pr_typedef_type (void *p, const char *name)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- return push_type (info, name);
-}
-
-/* Push a type on the stack using a tag name. */
-
-static bfd_boolean
-pr_tag_type (void *p, const char *name, unsigned int id,
- enum debug_type_kind kind)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- const char *t, *tag;
- char idbuf[20];
-
- switch (kind)
- {
- case DEBUG_KIND_STRUCT:
- t = "struct ";
- break;
- case DEBUG_KIND_UNION:
- t = "union ";
- break;
- case DEBUG_KIND_ENUM:
- t = "enum ";
- break;
- case DEBUG_KIND_CLASS:
- t = "class ";
- break;
- case DEBUG_KIND_UNION_CLASS:
- t = "union class ";
- break;
- default:
- abort ();
- return FALSE;
- }
-
- if (! push_type (info, t))
- return FALSE;
- if (name != NULL)
- tag = name;
- else
- {
- sprintf (idbuf, "%%anon%u", id);
- tag = idbuf;
- }
-
- if (! append_type (info, tag))
- return FALSE;
- if (name != NULL && kind != DEBUG_KIND_ENUM)
- {
- sprintf (idbuf, " /* id %u */", id);
- if (! append_type (info, idbuf))
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Output a typedef. */
-
-static bfd_boolean
-pr_typdef (void *p, const char *name)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *s;
-
- if (! substitute_type (info, name))
- return FALSE;
-
- s = pop_type (info);
- if (s == NULL)
- return FALSE;
-
- indent (info);
- fprintf (info->f, "typedef %s;\n", s);
-
- free (s);
-
- return TRUE;
-}
-
-/* Output a tag. The tag should already be in the string on the
- stack, so all we have to do here is print it out. */
-
-static bfd_boolean
-pr_tag (void *p, const char *name ATTRIBUTE_UNUSED)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- indent (info);
- fprintf (info->f, "%s;\n", t);
-
- free (t);
-
- return TRUE;
-}
-
-/* Output an integer constant. */
-
-static bfd_boolean
-pr_int_constant (void *p, const char *name, bfd_vma val)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char ab[20];
-
- indent (info);
- print_vma (val, ab, FALSE, FALSE);
- fprintf (info->f, "const int %s = %s;\n", name, ab);
- return TRUE;
-}
-
-/* Output a floating point constant. */
-
-static bfd_boolean
-pr_float_constant (void *p, const char *name, double val)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- indent (info);
- fprintf (info->f, "const double %s = %g;\n", name, val);
- return TRUE;
-}
-
-/* Output a typed constant. */
-
-static bfd_boolean
-pr_typed_constant (void *p, const char *name, bfd_vma val)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
- char ab[20];
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- indent (info);
- print_vma (val, ab, FALSE, FALSE);
- fprintf (info->f, "const %s %s = %s;\n", t, name, ab);
-
- free (t);
-
- return TRUE;
-}
-
-/* Output a variable. */
-
-static bfd_boolean
-pr_variable (void *p, const char *name, enum debug_var_kind kind,
- bfd_vma val)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
- char ab[20];
-
- if (! substitute_type (info, name))
- return FALSE;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- indent (info);
- switch (kind)
- {
- case DEBUG_STATIC:
- case DEBUG_LOCAL_STATIC:
- fprintf (info->f, "static ");
- break;
- case DEBUG_REGISTER:
- fprintf (info->f, "register ");
- break;
- default:
- break;
- }
- print_vma (val, ab, TRUE, TRUE);
- fprintf (info->f, "%s /* %s */;\n", t, ab);
-
- free (t);
-
- return TRUE;
-}
-
-/* Start outputting a function. */
-
-static bfd_boolean
-pr_start_function (void *p, const char *name, bfd_boolean global)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
-
- if (! substitute_type (info, name))
- return FALSE;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- indent (info);
- if (! global)
- fprintf (info->f, "static ");
- fprintf (info->f, "%s (", t);
-
- info->parameter = 1;
-
- return TRUE;
-}
-
-/* Output a function parameter. */
-
-static bfd_boolean
-pr_function_parameter (void *p, const char *name,
- enum debug_parm_kind kind, bfd_vma val)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
- char ab[20];
-
- if (kind == DEBUG_PARM_REFERENCE
- || kind == DEBUG_PARM_REF_REG)
- {
- if (! pr_reference_type (p))
- return FALSE;
- }
-
- if (! substitute_type (info, name))
- return FALSE;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- if (info->parameter != 1)
- fprintf (info->f, ", ");
-
- if (kind == DEBUG_PARM_REG || kind == DEBUG_PARM_REF_REG)
- fprintf (info->f, "register ");
-
- print_vma (val, ab, TRUE, TRUE);
- fprintf (info->f, "%s /* %s */", t, ab);
-
- free (t);
-
- ++info->parameter;
-
- return TRUE;
-}
-
-/* Start writing out a block. */
-
-static bfd_boolean
-pr_start_block (void *p, bfd_vma addr)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char ab[20];
-
- if (info->parameter > 0)
- {
- fprintf (info->f, ")\n");
- info->parameter = 0;
- }
-
- indent (info);
- print_vma (addr, ab, TRUE, TRUE);
- fprintf (info->f, "{ /* %s */\n", ab);
-
- info->indent += 2;
-
- return TRUE;
-}
-
-/* Write out line number information. */
-
-static bfd_boolean
-pr_lineno (void *p, const char *filename, unsigned long lineno, bfd_vma addr)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char ab[20];
-
- indent (info);
- print_vma (addr, ab, TRUE, TRUE);
- fprintf (info->f, "/* file %s line %lu addr %s */\n", filename, lineno, ab);
-
- return TRUE;
-}
-
-/* Finish writing out a block. */
-
-static bfd_boolean
-pr_end_block (void *p, bfd_vma addr)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char ab[20];
-
- info->indent -= 2;
-
- indent (info);
- print_vma (addr, ab, TRUE, TRUE);
- fprintf (info->f, "} /* %s */\n", ab);
-
- return TRUE;
-}
-
-/* Finish writing out a function. */
-
-static bfd_boolean
-pr_end_function (void *p ATTRIBUTE_UNUSED)
-{
- return TRUE;
-}
-
-/* Tags style generation functions start here. */
-
-/* Variables for address to line translation. */
-static bfd_vma pc;
-static const char *filename;
-static const char *functionname;
-static unsigned int line;
-static bfd_boolean found;
-
-/* Look for an address in a section. This is called via
- bfd_map_over_sections. */
-
-static void
-find_address_in_section (bfd *abfd, asection *section, void *data)
-{
- bfd_vma vma;
- bfd_size_type size;
- asymbol **syms = (asymbol **) data;
-
- if (found)
- return;
-
- if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0)
- return;
-
- vma = bfd_get_section_vma (abfd, section);
- if (pc < vma)
- return;
-
- size = bfd_get_section_size (section);
- if (pc >= vma + size)
- return;
-
- found = bfd_find_nearest_line (abfd, section, syms, pc - vma,
- &filename, &functionname, &line);
-}
-
-static void
-translate_addresses (bfd *abfd, char *addr_hex, FILE *f, asymbol **syms)
-{
- pc = bfd_scan_vma (addr_hex, NULL, 16);
- found = FALSE;
- bfd_map_over_sections (abfd, find_address_in_section, syms);
-
- if (! found)
- fprintf (f, "??");
- else
- fprintf (f, "%u", line);
-}
-
-/* Start a new compilation unit. */
-
-static bfd_boolean
-tg_start_compilation_unit (void * p, const char *filename ATTRIBUTE_UNUSED)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- fprintf (stderr, "New compilation unit: %s\n", filename);
-
- free (info->filename);
- /* Should it be relative? best way to do it here?. */
- info->filename = strdup (filename);
-
- return TRUE;
-}
-
-/* Start a source file within a compilation unit. */
-
-static bfd_boolean
-tg_start_source (void *p, const char *filename)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- free (info->filename);
- /* Should it be relative? best way to do it here?. */
- info->filename = strdup (filename);
-
- return TRUE;
-}
-
-/* Push an enum type onto the type stack. */
-
-static bfd_boolean
-tg_enum_type (void *p, const char *tag, const char **names,
- bfd_signed_vma *values)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- unsigned int i;
- const char *name;
- char ab[20];
-
- if (! pr_enum_type (p, tag, names, values))
- return FALSE;
-
- name = tag ? tag : "unknown";
- /* Generate an entry for the enum. */
- if (tag)
- fprintf (info->f, "%s\t%s\t0;\"\tkind:e\ttype:%s\n", tag,
- info->filename, info->stack->type);
-
- /* Generate entries for the values. */
- if (names != NULL)
- {
- for (i = 0; names[i] != NULL; i++)
- {
- print_vma (values[i], ab, FALSE, FALSE);
- fprintf (info->f, "%s\t%s\t0;\"\tkind:g\tenum:%s\tvalue:%s\n",
- names[i], info->filename, name, ab);
- }
- }
-
- return TRUE;
-}
-
-/* Start accumulating a struct type. */
-
-static bfd_boolean
-tg_start_struct_type (void *p, const char *tag, unsigned int id,
- bfd_boolean structp,
- unsigned int size ATTRIBUTE_UNUSED)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- const char *name;
- char idbuf[20];
-
- if (tag != NULL)
- name = tag;
- else
- {
- name = idbuf;
- sprintf (idbuf, "%%anon%u", id);
- }
-
- if (! push_type (info, name))
- return FALSE;
-
- info->stack->flavor = structp ? "struct" : "union";
-
- fprintf (info->f, "%s\t%s\t0;\"\tkind:%c\n", name, info->filename,
- info->stack->flavor[0]);
-
- info->stack->visibility = DEBUG_VISIBILITY_PUBLIC;
-
- return indent_type (info);
-}
-
-/* Output the visibility of a field in a struct. */
-
-static bfd_boolean
-tg_fix_visibility (struct pr_handle *info, enum debug_visibility visibility)
-{
- assert (info->stack != NULL);
-
- if (info->stack->visibility == visibility)
- return TRUE;
-
- assert (info->stack->visibility != DEBUG_VISIBILITY_IGNORE);
-
- info->stack->visibility = visibility;
-
- return TRUE;
-}
-
-/* Add a field to a struct type. */
-
-static bfd_boolean
-tg_struct_field (void *p, const char *name, bfd_vma bitpos ATTRIBUTE_UNUSED,
- bfd_vma bitsize ATTRIBUTE_UNUSED,
- enum debug_visibility visibility)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- if (! tg_fix_visibility (info, visibility))
- return FALSE;
-
- /* It happens, a bug? */
- if (! name[0])
- return TRUE;
-
- fprintf (info->f, "%s\t%s\t0;\"\tkind:m\ttype:%s\t%s:%s\taccess:%s\n",
- name, info->filename, t, info->stack->flavor, info->stack->type,
- visibility_name (visibility));
-
- return TRUE;
-}
-
-/* Finish a struct type. */
-
-static bfd_boolean
-tg_end_struct_type (void *p ATTRIBUTE_UNUSED)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- assert (info->stack != NULL);
-
- return TRUE;
-}
-
-/* Start a class type. */
-
-static bfd_boolean
-tg_start_class_type (void *p, const char *tag, unsigned int id,
- bfd_boolean structp, unsigned int size,
- bfd_boolean vptr, bfd_boolean ownvptr)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *tv = NULL;
- const char *name;
-
- info->indent += 2;
-
- if (vptr && ! ownvptr)
- {
- tv = pop_type (info);
- if (tv == NULL)
- return FALSE;
- }
-
- if (tag != NULL)
- name = tag;
- else
- {
- char idbuf[20];
-
- sprintf (idbuf, "%%anon%u", id);
- name = idbuf;
- }
-
- if (! push_type (info, name))
- return FALSE;
-
- info->stack->flavor = structp ? "class" : "union class";
- info->stack->parents = NULL;
- info->stack->num_parents = 0;
-
- if (size != 0 || vptr || ownvptr || tag != NULL)
- {
- if (vptr)
- {
- if (! append_type (info, " vtable "))
- return FALSE;
- if (ownvptr)
- {
- if (! append_type (info, "self "))
- return FALSE;
- }
- else
- {
- if (! append_type (info, tv)
- || ! append_type (info, " "))
- return FALSE;
- }
- }
- }
-
- info->stack->visibility = DEBUG_VISIBILITY_PRIVATE;
-
- return TRUE;
-}
-
-/* Add a static member to a class. */
-
-static bfd_boolean
-tg_class_static_member (void *p, const char *name,
- const char *physname ATTRIBUTE_UNUSED,
- enum debug_visibility visibility)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
- int len_var, len_class;
- char *full_name;
-
- len_var = strlen (name);
- len_class = strlen (info->stack->next->type);
- full_name = (char *) xmalloc (len_var + len_class + 3);
- if (! full_name)
- return FALSE;
- memcpy (full_name, info->stack->next->type, len_class);
- memcpy (full_name + len_class, "::", 2);
- memcpy (full_name + len_class + 2, name, len_var + 1);
-
- if (! substitute_type (info, full_name))
- return FALSE;
-
- if (! prepend_type (info, "static "))
- return FALSE;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- if (! tg_fix_visibility (info, visibility))
- return FALSE;
-
- fprintf (info->f, "%s\t%s\t0;\"\tkind:x\ttype:%s\tclass:%s\taccess:%s\n",
- name, info->filename, t, info->stack->type,
- visibility_name (visibility));
- free (t);
- free (full_name);
-
- return TRUE;
-}
-
-/* Add a base class to a class. */
-
-static bfd_boolean
-tg_class_baseclass (void *p, bfd_vma bitpos ATTRIBUTE_UNUSED,
- bfd_boolean virtual, enum debug_visibility visibility)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
- const char *prefix;
-
- assert (info->stack != NULL && info->stack->next != NULL);
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- if (strncmp (t, "class ", sizeof "class " - 1) == 0)
- t += sizeof "class " - 1;
-
- /* Push it back on to take advantage of the prepend_type and
- append_type routines. */
- if (! push_type (info, t))
- return FALSE;
-
- if (virtual)
- {
- if (! prepend_type (info, "virtual "))
- return FALSE;
- }
-
- switch (visibility)
- {
- case DEBUG_VISIBILITY_PUBLIC:
- prefix = "public ";
- break;
- case DEBUG_VISIBILITY_PROTECTED:
- prefix = "protected ";
- break;
- case DEBUG_VISIBILITY_PRIVATE:
- prefix = "private ";
- break;
- default:
- prefix = "/* unknown visibility */ ";
- break;
- }
-
- if (! prepend_type (info, prefix))
- return FALSE;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- if (info->stack->num_parents && ! append_parent (info, ", "))
- return FALSE;
-
- if (! append_parent (info, t))
- return FALSE;
- info->stack->num_parents++;
-
- free (t);
-
- return TRUE;
-}
-
-/* Add a variant to a method. */
-
-static bfd_boolean
-tg_class_method_variant (void *p, const char *physname ATTRIBUTE_UNUSED,
- enum debug_visibility visibility,
- bfd_boolean constp, bfd_boolean volatilep,
- bfd_vma voffset ATTRIBUTE_UNUSED,
- bfd_boolean context)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *method_type;
- char *context_type;
- char *method_name;
-
- assert (info->stack != NULL);
- assert (info->stack->next != NULL);
-
- /* Put the const and volatile qualifiers on the type. */
- if (volatilep)
- {
- if (! append_type (info, " volatile"))
- return FALSE;
- }
- if (constp)
- {
- if (! append_type (info, " const"))
- return FALSE;
- }
-
- method_name = strdup (context ? info->stack->next->next->method
- : info->stack->next->method);
-
- /* Stick the name of the method into its type. */
- if (! substitute_type (info, method_name))
- return FALSE;
-
- /* Get the type. */
- method_type = pop_type (info);
- if (method_type == NULL)
- return FALSE;
-
- /* Pull off the context type if there is one. */
- if (! context)
- context_type = NULL;
- else
- {
- context_type = pop_type (info);
- if (context_type == NULL)
- return FALSE;
- }
-
- /* Now the top of the stack is the class. */
- if (! tg_fix_visibility (info, visibility))
- return FALSE;
-
- fprintf (info->f, "%s\t%s\t0;\"\tkind:p\ttype:%s\tclass:%s\n",
- method_name, info->filename, method_type, info->stack->type);
- free (method_type);
- free (method_name);
- free (context_type);
-
- return TRUE;
-}
-
-/* Add a static variant to a method. */
-
-static bfd_boolean
-tg_class_static_method_variant (void *p,
- const char *physname ATTRIBUTE_UNUSED,
- enum debug_visibility visibility,
- bfd_boolean constp, bfd_boolean volatilep)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *method_type;
- char *method_name;
-
- assert (info->stack != NULL);
- assert (info->stack->next != NULL);
- assert (info->stack->next->method != NULL);
-
- /* Put the const and volatile qualifiers on the type. */
- if (volatilep)
- {
- if (! append_type (info, " volatile"))
- return FALSE;
- }
- if (constp)
- {
- if (! append_type (info, " const"))
- return FALSE;
- }
-
- /* Mark it as static. */
- if (! prepend_type (info, "static "))
- return FALSE;
-
- method_name = strdup (info->stack->next->method);
- /* Stick the name of the method into its type. */
- if (! substitute_type (info, info->stack->next->method))
- return FALSE;
-
- /* Get the type. */
- method_type = pop_type (info);
- if (method_type == NULL)
- return FALSE;
-
- /* Now the top of the stack is the class. */
- if (! tg_fix_visibility (info, visibility))
- return FALSE;
-
- fprintf (info->f, "%s\t%s\t0;\"\tkind:p\ttype:%s\tclass:%s\taccess:%s\n",
- method_name, info->filename, method_type, info->stack->type,
- visibility_name (visibility));
- free (method_type);
- free (method_name);
-
- return TRUE;
-}
-
-/* Finish up a class. */
-
-static bfd_boolean
-tg_end_class_type (void *p)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- fprintf (info->f, "%s\t%s\t0;\"\tkind:c\ttype:%s", info->stack->type,
- info->filename, info->stack->flavor);
- if (info->stack->num_parents)
- {
- fprintf (info->f, "\tinherits:%s", info->stack->parents);
- free (info->stack->parents);
- }
- fputc ('\n', info->f);
-
- return tg_end_struct_type (p);
-}
-
-/* Push a type on the stack using a tag name. */
-
-static bfd_boolean
-tg_tag_type (void *p, const char *name, unsigned int id,
- enum debug_type_kind kind)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- const char *t, *tag;
- char idbuf[20];
-
- switch (kind)
- {
- case DEBUG_KIND_STRUCT:
- t = "struct ";
- break;
- case DEBUG_KIND_UNION:
- t = "union ";
- break;
- case DEBUG_KIND_ENUM:
- t = "enum ";
- break;
- case DEBUG_KIND_CLASS:
- t = "class ";
- break;
- case DEBUG_KIND_UNION_CLASS:
- t = "union class ";
- break;
- default:
- abort ();
- return FALSE;
- }
-
- if (! push_type (info, t))
- return FALSE;
- if (name != NULL)
- tag = name;
- else
- {
- sprintf (idbuf, "%%anon%u", id);
- tag = idbuf;
- }
-
- if (! append_type (info, tag))
- return FALSE;
-
- return TRUE;
-}
-
-/* Output a typedef. */
-
-static bfd_boolean
-tg_typdef (void *p, const char *name)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *s;
-
- s = pop_type (info);
- if (s == NULL)
- return FALSE;
-
- fprintf (info->f, "%s\t%s\t0;\"\tkind:t\ttype:%s\n", name,
- info->filename, s);
-
- free (s);
-
- return TRUE;
-}
-
-/* Output a tag. The tag should already be in the string on the
- stack, so all we have to do here is print it out. */
-
-static bfd_boolean
-tg_tag (void *p ATTRIBUTE_UNUSED, const char *name ATTRIBUTE_UNUSED)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
- free (t);
-
- return TRUE;
-}
-
-/* Output an integer constant. */
-
-static bfd_boolean
-tg_int_constant (void *p, const char *name, bfd_vma val)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char ab[20];
-
- indent (info);
- print_vma (val, ab, FALSE, FALSE);
- fprintf (info->f, "%s\t%s\t0;\"\tkind:v\ttype:const int\tvalue:%s\n",
- name, info->filename, ab);
- return TRUE;
-}
-
-/* Output a floating point constant. */
-
-static bfd_boolean
-tg_float_constant (void *p, const char *name, double val)
-{
- struct pr_handle *info = (struct pr_handle *) p;
-
- indent (info);
- fprintf (info->f, "%s\t%s\t0;\"\tkind:v\ttype:const double\tvalue:%g\n",
- name, info->filename, val);
- return TRUE;
-}
-
-/* Output a typed constant. */
-
-static bfd_boolean
-tg_typed_constant (void *p, const char *name, bfd_vma val)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
- char ab[20];
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- indent (info);
- print_vma (val, ab, FALSE, FALSE);
- fprintf (info->f, "%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",
- name, info->filename, t, ab);
-
- free (t);
-
- return TRUE;
-}
-
-/* Output a variable. */
-
-static bfd_boolean
-tg_variable (void *p, const char *name, enum debug_var_kind kind,
- bfd_vma val ATTRIBUTE_UNUSED)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
- const char *dname, *from_class;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- dname = name;
- if (info->demangler)
- {
- dname = info->demangler (info->abfd, name);
- if (strcmp (name, dname) == 0)
- {
- free ((char *) dname);
- dname = name;
- }
- }
-
- if (dname != name)
- {
- char *sep;
- sep = strstr (dname, "::");
- if (sep)
- {
- *sep = 0;
- name = sep + 2;
- from_class = dname;
- }
- else
- {
- /* Obscure types as vts and type_info nodes. */
- name = dname;
- from_class = NULL;
- }
- }
- else
- from_class = NULL;
-
- fprintf (info->f, "%s\t%s\t0;\"\tkind:v\ttype:%s", name, info->filename, t);
-
- switch (kind)
- {
- case DEBUG_STATIC:
- case DEBUG_LOCAL_STATIC:
- fprintf (info->f, "\tfile:");
- break;
- case DEBUG_REGISTER:
- fprintf (info->f, "\tregister:");
- break;
- default:
- break;
- }
-
- if (from_class)
- {
- fprintf (info->f, "\tclass:%s",from_class);
- free ((char *) dname);
- }
-
- fprintf (info->f, "\n");
-
- free (t);
-
- return TRUE;
-}
-
-/* Start outputting a function. */
-
-static bfd_boolean
-tg_start_function (void *p, const char *name, bfd_boolean global)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- const char *dname;
-
- if (! global)
- info->stack->flavor = "static";
- else
- info->stack->flavor = NULL;
-
- dname = name;
- if (info->demangler)
- {
- dname = info->demangler (info->abfd, name);
- if (strcmp (name, dname) == 0)
- {
- free ((char *) dname);
- dname = name;
- }
- }
-
- if (! substitute_type (info, dname))
- return FALSE;
-
- if (dname != name)
- {
- char *sep;
- sep = strstr (dname, "::");
- if (sep)
- {
- info->stack->method = dname;
- *sep = 0;
- name = sep + 2;
- }
- else
- {
- info->stack->method = "";
- name = dname;
- }
- sep = strchr (name, '(');
- if (sep)
- *sep = 0;
- /* Obscure functions as type_info function. */
- }
- else
- info->stack->method = NULL;
-
- info->stack->parents = strdup (name);
-
- if (! info->stack->method && ! append_type (info, "("))
- return FALSE;
-
- info->parameter = 1;
-
- return TRUE;
-}
-
-/* Output a function parameter. */
-
-static bfd_boolean
-tg_function_parameter (void *p, const char *name, enum debug_parm_kind kind,
- bfd_vma val ATTRIBUTE_UNUSED)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char *t;
-
- if (kind == DEBUG_PARM_REFERENCE
- || kind == DEBUG_PARM_REF_REG)
- {
- if (! pr_reference_type (p))
- return FALSE;
- }
-
- if (! substitute_type (info, name))
- return FALSE;
-
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
-
- if (! info->stack->method)
- {
- if (info->parameter != 1 && ! append_type (info, ", "))
- return FALSE;
-
- if (kind == DEBUG_PARM_REG || kind == DEBUG_PARM_REF_REG)
- if (! append_type (info, "register "))
- return FALSE;
-
- if (! append_type (info, t))
- return FALSE;
- }
-
- free (t);
-
- ++info->parameter;
-
- return TRUE;
-}
-
-/* Start writing out a block. */
-
-static bfd_boolean
-tg_start_block (void *p, bfd_vma addr)
-{
- struct pr_handle *info = (struct pr_handle *) p;
- char ab[20], kind, *partof;
- char *t;
- bfd_boolean local;
-
- if (info->parameter > 0)
- {
- info->parameter = 0;
-
- /* Delayed name. */
- fprintf (info->f, "%s\t%s\t", info->stack->parents, info->filename);
- free (info->stack->parents);
-
- print_vma (addr, ab, TRUE, TRUE);
- translate_addresses (info->abfd, ab, info->f, info->syms);
- local = info->stack->flavor != NULL;
- if (info->stack->method && *info->stack->method)
- {
- kind = 'm';
- partof = (char *) info->stack->method;
- }
- else
- {
- kind = 'f';
- partof = NULL;
- if (! info->stack->method && ! append_type (info, ")"))
- return FALSE;
- }
- t = pop_type (info);
- if (t == NULL)
- return FALSE;
- fprintf (info->f, ";\"\tkind:%c\ttype:%s", kind, t);
- if (local)
- fputs ("\tfile:", info->f);
- if (partof)
- {
- fprintf (info->f, "\tclass:%s", partof);
- free (partof);
- }
- fputc ('\n', info->f);
- }
-
- return TRUE;
-}
-
-/* Write out line number information. */
-
-static bfd_boolean
-tg_lineno (void *p ATTRIBUTE_UNUSED, const char *filename ATTRIBUTE_UNUSED,
- unsigned long lineno ATTRIBUTE_UNUSED,
- bfd_vma addr ATTRIBUTE_UNUSED)
-{
- return TRUE;
-}
-
-/* Finish writing out a block. */
-
-static bfd_boolean
-tg_end_block (void *p ATTRIBUTE_UNUSED, bfd_vma addr ATTRIBUTE_UNUSED)
-{
- return TRUE;
-}
-
-/* Convert the visibility value into a human readable name. */
-
-static const char *
-visibility_name (enum debug_visibility visibility)
-{
- const char *s;
-
- switch (visibility)
- {
- case DEBUG_VISIBILITY_PUBLIC:
- s = "public";
- break;
- case DEBUG_VISIBILITY_PRIVATE:
- s = "private";
- break;
- case DEBUG_VISIBILITY_PROTECTED:
- s = "protected";
- break;
- case DEBUG_VISIBILITY_IGNORE:
- s = "/* ignore */";
- break;
- default:
- abort ();
- return FALSE;
- }
- return s;
-}
diff --git a/binutils-2.17/binutils/ranlib.sh b/binutils-2.17/binutils/ranlib.sh
deleted file mode 100755
index 9a2248f1..00000000
--- a/binutils-2.17/binutils/ranlib.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-# A simple ranlib script, to use less disk space than a ranlib program.
-ar s "$1"
diff --git a/binutils-2.17/binutils/rclex.c b/binutils-2.17/binutils/rclex.c
deleted file mode 100644
index d05aaf32..00000000
--- a/binutils-2.17/binutils/rclex.c
+++ /dev/null
@@ -1,2615 +0,0 @@
-/* A lexical scanner generated by flex */
-
-/* Scanner skeleton version:
- * $Header: /cvs/src/src/binutils/Attic/rclex.c,v 1.1.16.1 2006/04/16 18:36:40 drow Exp $
- */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-
-#include <stdio.h>
-#include <errno.h>
-
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
-#endif
-
-
-#ifdef __cplusplus
-
-#include <stdlib.h>
-#ifndef _WIN32
-#include <unistd.h>
-#endif
-
-/* 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)
-
-typedef unsigned char YY_CHAR;
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-typedef int yy_state_type;
-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 86
-#define YY_END_OF_BUFFER 87
-static yyconst short int yy_accept[470] =
- { 0,
- 0, 0, 87, 85, 84, 83, 85, 78, 80, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 2, 4, 84,
- 0, 81, 78, 80, 79, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 81, 0, 82, 11, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
-
- 82, 82, 82, 82, 82, 3, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 76, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 41, 82, 82,
- 82, 53, 42, 82, 82, 82, 82, 82, 82, 82,
- 46, 82, 82, 82, 82, 82, 82, 71, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
-
- 82, 82, 82, 7, 82, 82, 82, 38, 1, 82,
- 82, 82, 82, 82, 18, 82, 82, 25, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 70,
- 82, 82, 39, 40, 82, 82, 82, 82, 82, 30,
- 82, 82, 82, 82, 82, 82, 50, 82, 82, 82,
- 82, 82, 34, 82, 82, 9, 82, 82, 19, 82,
- 68, 82, 82, 82, 82, 82, 82, 12, 0, 82,
- 82, 82, 82, 82, 82, 82, 13, 82, 14, 82,
- 82, 82, 82, 65, 82, 82, 82, 52, 82, 72,
- 82, 82, 82, 82, 82, 82, 47, 82, 82, 82,
-
- 82, 82, 82, 82, 82, 82, 58, 82, 82, 36,
- 82, 82, 82, 82, 82, 82, 82, 82, 0, 82,
- 0, 77, 17, 82, 82, 51, 82, 10, 82, 82,
- 82, 82, 16, 82, 82, 82, 82, 82, 82, 82,
- 29, 82, 82, 82, 82, 82, 82, 82, 73, 82,
- 31, 82, 82, 82, 82, 82, 82, 45, 6, 82,
- 82, 82, 82, 77, 82, 23, 24, 82, 15, 82,
- 27, 82, 82, 66, 82, 28, 54, 43, 82, 82,
- 82, 48, 82, 69, 8, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
-
- 64, 82, 82, 82, 82, 56, 82, 82, 82, 82,
- 35, 49, 82, 82, 82, 82, 20, 82, 82, 82,
- 82, 82, 82, 82, 82, 74, 82, 82, 82, 32,
- 82, 82, 37, 82, 82, 82, 82, 82, 82, 75,
- 82, 67, 61, 82, 82, 82, 33, 59, 60, 5,
- 21, 82, 82, 82, 82, 55, 57, 82, 82, 82,
- 26, 63, 82, 82, 82, 62, 22, 44, 0
- } ;
-
-static yyconst int yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 1, 5, 6, 1, 1, 1, 1, 1,
- 1, 1, 1, 7, 1, 1, 1, 8, 8, 8,
- 9, 8, 8, 8, 8, 8, 8, 1, 1, 1,
- 1, 1, 1, 1, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 19, 26, 27, 28, 29, 30, 19, 31, 32, 19,
- 1, 1, 1, 1, 1, 1, 33, 33, 33, 33,
-
- 33, 33, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 19, 19, 19, 19, 33,
- 19, 19, 34, 1, 35, 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, 1
- } ;
-
-static yyconst int yy_meta[36] =
- { 0,
- 1, 2, 3, 2, 1, 4, 2, 5, 5, 5,
- 5, 5, 5, 5, 5, 1, 1, 1, 1, 1,
- 5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 5, 1, 1
- } ;
-
-static yyconst short int yy_base[476] =
- { 0,
- 0, 0, 517, 518, 34, 518, 511, 0, 494, 25,
- 26, 45, 25, 28, 24, 488, 499, 49, 0, 40,
- 43, 488, 51, 66, 67, 484, 35, 518, 518, 81,
- 505, 84, 0, 488, 518, 0, 496, 479, 494, 477,
- 75, 476, 479, 477, 46, 491, 70, 486, 473, 483,
- 55, 479, 483, 468, 69, 471, 86, 84, 469, 479,
- 466, 480, 466, 461, 477, 472, 75, 455, 81, 459,
- 87, 77, 470, 469, 467, 454, 454, 460, 96, 463,
- 455, 449, 448, 110, 468, 458, 0, 453, 446, 451,
- 450, 445, 454, 437, 438, 451, 435, 450, 432, 428,
-
- 431, 432, 435, 443, 426, 0, 425, 438, 437, 422,
- 417, 419, 429, 421, 422, 426, 414, 430, 425, 412,
- 426, 407, 408, 409, 421, 411, 0, 404, 411, 418,
- 416, 412, 410, 417, 395, 401, 414, 408, 394, 403,
- 399, 393, 389, 390, 388, 394, 396, 105, 385, 389,
- 401, 390, 391, 398, 387, 379, 381, 378, 375, 378,
- 372, 376, 389, 370, 365, 105, 383, 0, 381, 369,
- 365, 0, 0, 364, 365, 362, 360, 377, 363, 358,
- 105, 375, 374, 353, 357, 357, 351, 0, 368, 354,
- 349, 348, 354, 348, 345, 358, 348, 356, 358, 354,
-
- 349, 346, 351, 0, 337, 346, 352, 0, 0, 336,
- 122, 336, 347, 107, 0, 347, 333, 0, 330, 328,
- 338, 327, 338, 330, 329, 322, 319, 315, 332, 0,
- 332, 333, 0, 0, 329, 324, 331, 316, 316, 0,
- 116, 307, 309, 320, 324, 320, 0, 323, 320, 110,
- 320, 320, 0, 308, 318, 0, 318, 310, 0, 296,
- 0, 300, 309, 296, 293, 306, 306, 0, 135, 139,
- 295, 289, 292, 302, 290, 292, 0, 295, 297, 297,
- 278, 294, 297, 0, 295, 280, 278, 0, 279, 0,
- 272, 285, 269, 287, 272, 283, 0, 282, 281, 273,
-
- 267, 279, 263, 259, 261, 259, 0, 276, 258, 0,
- 257, 256, 260, 250, 271, 270, 267, 260, 272, 145,
- 271, 151, 0, 261, 243, 0, 242, 0, 261, 240,
- 260, 241, 0, 252, 239, 252, 238, 233, 249, 248,
- 0, 251, 249, 249, 236, 229, 242, 227, 0, 224,
- 0, 225, 224, 241, 226, 239, 220, 229, 0, 218,
- 217, 224, 219, 237, 215, 0, 0, 211, 0, 228,
- 0, 211, 205, 0, 218, 0, 0, 0, 214, 208,
- 213, 0, 222, 0, 0, 217, 206, 201, 202, 201,
- 215, 201, 201, 199, 208, 210, 209, 201, 190, 196,
-
- 194, 190, 190, 192, 198, 0, 200, 184, 186, 184,
- 0, 0, 186, 183, 190, 178, 0, 179, 173, 174,
- 172, 185, 188, 183, 173, 0, 185, 173, 166, 0,
- 169, 177, 0, 166, 162, 157, 159, 158, 161, 0,
- 157, 0, 0, 162, 167, 158, 0, 0, 0, 0,
- 0, 143, 152, 143, 141, 0, 0, 130, 124, 124,
- 0, 0, 107, 85, 80, 0, 0, 0, 518, 158,
- 163, 65, 168, 173, 178
- } ;
-
-static yyconst short int yy_def[476] =
- { 0,
- 469, 1, 469, 469, 469, 469, 470, 471, 472, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 469, 469, 469,
- 470, 469, 471, 472, 469, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 469, 470, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
-
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
-
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 469, 474,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
-
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 475, 474,
- 475, 474, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 475, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
-
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
- 473, 473, 473, 473, 473, 473, 473, 473, 0, 469,
- 469, 469, 469, 469, 469
- } ;
-
-static yyconst short int yy_nxt[554] =
- { 0,
- 4, 5, 6, 5, 7, 8, 4, 9, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 19,
- 20, 21, 22, 19, 23, 24, 25, 19, 26, 27,
- 19, 19, 19, 28, 29, 30, 37, 30, 50, 41,
- 52, 55, 51, 42, 81, 38, 43, 56, 82, 63,
- 53, 39, 83, 40, 44, 95, 67, 64, 54, 96,
- 59, 45, 60, 65, 103, 46, 68, 66, 47, 34,
- 61, 62, 48, 49, 70, 73, 71, 74, 76, 72,
- 77, 104, 30, 78, 30, 84, 84, 90, 85, 108,
- 91, 98, 99, 75, 79, 111, 113, 123, 126, 109,
-
- 129, 124, 131, 132, 114, 139, 468, 467, 127, 112,
- 130, 84, 84, 205, 85, 241, 206, 273, 242, 225,
- 274, 140, 243, 269, 269, 295, 270, 141, 226, 466,
- 207, 227, 228, 304, 229, 465, 269, 269, 305, 319,
- 321, 296, 321, 322, 36, 321, 321, 464, 321, 322,
- 36, 321, 321, 463, 321, 322, 36, 321, 31, 31,
- 462, 31, 31, 33, 33, 461, 33, 33, 36, 460,
- 459, 36, 36, 320, 320, 458, 320, 320, 321, 321,
- 457, 456, 321, 455, 454, 453, 452, 451, 450, 449,
- 448, 447, 446, 445, 444, 443, 442, 441, 440, 439,
-
- 438, 437, 436, 435, 434, 433, 432, 431, 430, 429,
- 428, 427, 426, 425, 424, 423, 422, 421, 420, 419,
- 418, 417, 416, 415, 414, 413, 412, 411, 410, 409,
- 408, 407, 406, 405, 404, 403, 402, 401, 400, 399,
- 398, 364, 397, 396, 395, 394, 393, 392, 391, 390,
- 389, 388, 387, 386, 385, 384, 383, 382, 381, 380,
- 379, 378, 377, 376, 375, 374, 373, 372, 371, 370,
- 369, 368, 367, 366, 365, 364, 364, 363, 362, 361,
- 360, 359, 358, 357, 356, 355, 354, 353, 352, 351,
- 350, 349, 348, 347, 346, 345, 344, 343, 342, 341,
-
- 340, 339, 338, 337, 336, 335, 334, 333, 332, 331,
- 330, 329, 328, 327, 326, 325, 324, 323, 318, 317,
- 316, 315, 314, 313, 312, 311, 310, 309, 308, 307,
- 306, 303, 302, 301, 300, 299, 298, 297, 294, 293,
- 292, 291, 290, 289, 288, 287, 286, 285, 284, 283,
- 282, 281, 280, 279, 278, 277, 276, 275, 272, 271,
- 268, 267, 266, 265, 264, 263, 262, 261, 260, 259,
- 258, 257, 256, 255, 254, 253, 252, 251, 250, 249,
- 248, 247, 246, 245, 244, 240, 239, 238, 237, 236,
- 235, 234, 233, 232, 231, 230, 224, 223, 222, 221,
-
- 220, 219, 218, 217, 216, 215, 214, 213, 212, 211,
- 210, 209, 208, 204, 203, 202, 201, 200, 199, 198,
- 197, 196, 195, 194, 193, 192, 191, 190, 189, 188,
- 187, 186, 185, 184, 183, 182, 181, 180, 179, 178,
- 177, 176, 175, 174, 173, 172, 171, 170, 169, 168,
- 167, 166, 165, 164, 163, 162, 161, 160, 159, 158,
- 157, 156, 155, 154, 153, 152, 151, 150, 149, 148,
- 147, 146, 32, 145, 144, 143, 142, 138, 137, 136,
- 135, 134, 133, 128, 125, 122, 121, 120, 119, 118,
- 117, 116, 115, 110, 107, 106, 105, 102, 101, 100,
-
- 97, 94, 93, 92, 89, 88, 87, 86, 35, 32,
- 80, 69, 58, 57, 35, 32, 469, 3, 469, 469,
- 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
- 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
- 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
- 469, 469, 469
- } ;
-
-static yyconst short int yy_chk[554] =
- { 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, 5, 10, 5, 13, 11,
- 14, 15, 13, 11, 27, 10, 11, 15, 27, 20,
- 14, 10, 27, 10, 12, 45, 21, 20, 14, 45,
- 18, 12, 18, 20, 51, 12, 21, 20, 12, 472,
- 18, 18, 12, 12, 23, 24, 23, 24, 25, 23,
- 25, 51, 30, 25, 30, 32, 32, 41, 32, 55,
- 41, 47, 47, 24, 25, 57, 58, 67, 69, 55,
-
- 71, 67, 72, 72, 58, 79, 465, 464, 69, 57,
- 71, 84, 84, 148, 84, 181, 148, 214, 181, 166,
- 214, 79, 181, 211, 211, 241, 211, 79, 166, 463,
- 148, 166, 166, 250, 166, 460, 269, 269, 250, 269,
- 270, 241, 270, 270, 270, 270, 320, 459, 320, 320,
- 320, 320, 322, 458, 322, 322, 322, 322, 470, 470,
- 455, 470, 470, 471, 471, 454, 471, 471, 473, 453,
- 452, 473, 473, 474, 474, 446, 474, 474, 475, 475,
- 445, 444, 475, 441, 439, 438, 437, 436, 435, 434,
- 432, 431, 429, 428, 427, 425, 424, 423, 422, 421,
-
- 420, 419, 418, 416, 415, 414, 413, 410, 409, 408,
- 407, 405, 404, 403, 402, 401, 400, 399, 398, 397,
- 396, 395, 394, 393, 392, 391, 390, 389, 388, 387,
- 386, 383, 381, 380, 379, 375, 373, 372, 370, 368,
- 365, 364, 363, 362, 361, 360, 358, 357, 356, 355,
- 354, 353, 352, 350, 348, 347, 346, 345, 344, 343,
- 342, 340, 339, 338, 337, 336, 335, 334, 332, 331,
- 330, 329, 327, 325, 324, 321, 319, 318, 317, 316,
- 315, 314, 313, 312, 311, 309, 308, 306, 305, 304,
- 303, 302, 301, 300, 299, 298, 296, 295, 294, 293,
-
- 292, 291, 289, 287, 286, 285, 283, 282, 281, 280,
- 279, 278, 276, 275, 274, 273, 272, 271, 267, 266,
- 265, 264, 263, 262, 260, 258, 257, 255, 254, 252,
- 251, 249, 248, 246, 245, 244, 243, 242, 239, 238,
- 237, 236, 235, 232, 231, 229, 228, 227, 226, 225,
- 224, 223, 222, 221, 220, 219, 217, 216, 213, 212,
- 210, 207, 206, 205, 203, 202, 201, 200, 199, 198,
- 197, 196, 195, 194, 193, 192, 191, 190, 189, 187,
- 186, 185, 184, 183, 182, 180, 179, 178, 177, 176,
- 175, 174, 171, 170, 169, 167, 165, 164, 163, 162,
-
- 161, 160, 159, 158, 157, 156, 155, 154, 153, 152,
- 151, 150, 149, 147, 146, 145, 144, 143, 142, 141,
- 140, 139, 138, 137, 136, 135, 134, 133, 132, 131,
- 130, 129, 128, 126, 125, 124, 123, 122, 121, 120,
- 119, 118, 117, 116, 115, 114, 113, 112, 111, 110,
- 109, 108, 107, 105, 104, 103, 102, 101, 100, 99,
- 98, 97, 96, 95, 94, 93, 92, 91, 90, 89,
- 88, 86, 85, 83, 82, 81, 80, 78, 77, 76,
- 75, 74, 73, 70, 68, 66, 65, 64, 63, 62,
- 61, 60, 59, 56, 54, 53, 52, 50, 49, 48,
-
- 46, 44, 43, 42, 40, 39, 38, 37, 34, 31,
- 26, 22, 17, 16, 9, 7, 3, 469, 469, 469,
- 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
- 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
- 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
- 469, 469, 469
- } ;
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
-#line 1 "rclex.l"
-#define INITIAL 0
-#line 2 "rclex.l"
-/* Copyright 1997, 1998, 1999, 2001, 2002, 2003, 2005
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Cygnus Support.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This is a lex input file which generates a lexer used by the
- Windows rc file parser. It basically just recognized a bunch of
- keywords. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "safe-ctype.h"
-#include "windres.h"
-#include "rcparse.h"
-
-#include <assert.h>
-
-#define YY_NO_UNPUT
-
-/* Whether we are in rcdata mode, in which we returns the lengths of
- strings. */
-
-static int rcdata_mode;
-
-/* Whether we are supressing lines from cpp (including windows.h or
- headers from your C sources may bring in externs and typedefs).
- When active, we return IGNORED_TOKEN, which lets us ignore these
- outside of resource constructs. Thus, it isn't required to protect
- all the non-preprocessor lines in your header files with #ifdef
- RC_INVOKED. It also means your RC file can't include other RC
- files if they're named "*.h". Sorry. Name them *.rch or whatever. */
-
-static int suppress_cpp_data;
-
-#define MAYBE_RETURN(x) return suppress_cpp_data ? IGNORED_TOKEN : (x)
-
-/* The first filename we detect in the cpp output. We use this to
- tell included files from the original file. */
-
-static char *initial_fn;
-
-/* List of allocated strings. */
-
-struct alloc_string
-{
- struct alloc_string *next;
- char *s;
-};
-
-static struct alloc_string *strings;
-
-/* Local functions. */
-
-static void cpp_line (const char *);
-static char *handle_quotes (const char *, unsigned long *);
-static char *get_string (int);
-
-#line 716 "rclex.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 \
- { \
- errno=0; \
- while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
- { \
- if( errno != EINTR) \
- { \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- break; \
- } \
- errno=0; \
- clearerr(yyin); \
- } \
- }
-#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 \
- YY_USER_ACTION
-
-YY_DECL
- {
- register yy_state_type yy_current_state;
- register char *yy_cp, *yy_bp;
- register int yy_act;
-
-#line 78 "rclex.l"
-
-
-#line 881 "rclex.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_match:
- do
- {
- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = 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 >= 470 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- ++yy_cp;
- }
- while ( yy_base[yy_current_state] != 518 );
-
-yy_find_action:
- yy_act = yy_accept[yy_current_state];
- if ( yy_act == 0 )
- { /* have to back up */
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- yy_act = yy_accept[yy_current_state];
- }
-
- YY_DO_BEFORE_ACTION;
-
-
-do_action: /* This label is used only to access EOF actions. */
-
-
- switch ( yy_act )
- { /* beginning of action switch */
- case 0: /* must back up */
- /* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = yy_hold_char;
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-#line 80 "rclex.l"
-{ MAYBE_RETURN (BEG); }
- YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 81 "rclex.l"
-{ MAYBE_RETURN (BEG); }
- YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 82 "rclex.l"
-{ MAYBE_RETURN (END); }
- YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 83 "rclex.l"
-{ MAYBE_RETURN (END); }
- YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 84 "rclex.l"
-{ MAYBE_RETURN (ACCELERATORS); }
- YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 85 "rclex.l"
-{ MAYBE_RETURN (VIRTKEY); }
- YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 86 "rclex.l"
-{ MAYBE_RETURN (ASCII); }
- YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 87 "rclex.l"
-{ MAYBE_RETURN (NOINVERT); }
- YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 88 "rclex.l"
-{ MAYBE_RETURN (SHIFT); }
- YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 89 "rclex.l"
-{ MAYBE_RETURN (CONTROL); }
- YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 90 "rclex.l"
-{ MAYBE_RETURN (ALT); }
- YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 91 "rclex.l"
-{ MAYBE_RETURN (BITMAP); }
- YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 92 "rclex.l"
-{ MAYBE_RETURN (CURSOR); }
- YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 93 "rclex.l"
-{ MAYBE_RETURN (DIALOG); }
- YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 94 "rclex.l"
-{ MAYBE_RETURN (DIALOGEX); }
- YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 95 "rclex.l"
-{ MAYBE_RETURN (EXSTYLE); }
- YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 96 "rclex.l"
-{ MAYBE_RETURN (CAPTION); }
- YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 97 "rclex.l"
-{ MAYBE_RETURN (CLASS); }
- YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 98 "rclex.l"
-{ MAYBE_RETURN (STYLE); }
- YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 99 "rclex.l"
-{ MAYBE_RETURN (AUTO3STATE); }
- YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 100 "rclex.l"
-{ MAYBE_RETURN (AUTOCHECKBOX); }
- YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 101 "rclex.l"
-{ MAYBE_RETURN (AUTORADIOBUTTON); }
- YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 102 "rclex.l"
-{ MAYBE_RETURN (CHECKBOX); }
- YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 103 "rclex.l"
-{ MAYBE_RETURN (COMBOBOX); }
- YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 104 "rclex.l"
-{ MAYBE_RETURN (CTEXT); }
- YY_BREAK
-case 26:
-YY_RULE_SETUP
-#line 105 "rclex.l"
-{ MAYBE_RETURN (DEFPUSHBUTTON); }
- YY_BREAK
-case 27:
-YY_RULE_SETUP
-#line 106 "rclex.l"
-{ MAYBE_RETURN (EDITTEXT); }
- YY_BREAK
-case 28:
-YY_RULE_SETUP
-#line 107 "rclex.l"
-{ MAYBE_RETURN (GROUPBOX); }
- YY_BREAK
-case 29:
-YY_RULE_SETUP
-#line 108 "rclex.l"
-{ MAYBE_RETURN (LISTBOX); }
- YY_BREAK
-case 30:
-YY_RULE_SETUP
-#line 109 "rclex.l"
-{ MAYBE_RETURN (LTEXT); }
- YY_BREAK
-case 31:
-YY_RULE_SETUP
-#line 110 "rclex.l"
-{ MAYBE_RETURN (PUSHBOX); }
- YY_BREAK
-case 32:
-YY_RULE_SETUP
-#line 111 "rclex.l"
-{ MAYBE_RETURN (PUSHBUTTON); }
- YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 112 "rclex.l"
-{ MAYBE_RETURN (RADIOBUTTON); }
- YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 113 "rclex.l"
-{ MAYBE_RETURN (RTEXT); }
- YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 114 "rclex.l"
-{ MAYBE_RETURN (SCROLLBAR); }
- YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 115 "rclex.l"
-{ MAYBE_RETURN (STATE3); }
- YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 116 "rclex.l"
-{ MAYBE_RETURN (USERBUTTON); }
- YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 117 "rclex.l"
-{ MAYBE_RETURN (BEDIT); }
- YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 118 "rclex.l"
-{ MAYBE_RETURN (HEDIT); }
- YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 119 "rclex.l"
-{ MAYBE_RETURN (IEDIT); }
- YY_BREAK
-case 41:
-YY_RULE_SETUP
-#line 120 "rclex.l"
-{ MAYBE_RETURN (FONT); }
- YY_BREAK
-case 42:
-YY_RULE_SETUP
-#line 121 "rclex.l"
-{ MAYBE_RETURN (ICON); }
- YY_BREAK
-case 43:
-YY_RULE_SETUP
-#line 122 "rclex.l"
-{ MAYBE_RETURN (LANGUAGE); }
- YY_BREAK
-case 44:
-YY_RULE_SETUP
-#line 123 "rclex.l"
-{ MAYBE_RETURN (CHARACTERISTICS); }
- YY_BREAK
-case 45:
-YY_RULE_SETUP
-#line 124 "rclex.l"
-{ MAYBE_RETURN (VERSIONK); }
- YY_BREAK
-case 46:
-YY_RULE_SETUP
-#line 125 "rclex.l"
-{ MAYBE_RETURN (MENU); }
- YY_BREAK
-case 47:
-YY_RULE_SETUP
-#line 126 "rclex.l"
-{ MAYBE_RETURN (MENUEX); }
- YY_BREAK
-case 48:
-YY_RULE_SETUP
-#line 127 "rclex.l"
-{ MAYBE_RETURN (MENUITEM); }
- YY_BREAK
-case 49:
-YY_RULE_SETUP
-#line 128 "rclex.l"
-{ MAYBE_RETURN (SEPARATOR); }
- YY_BREAK
-case 50:
-YY_RULE_SETUP
-#line 129 "rclex.l"
-{ MAYBE_RETURN (POPUP); }
- YY_BREAK
-case 51:
-YY_RULE_SETUP
-#line 130 "rclex.l"
-{ MAYBE_RETURN (CHECKED); }
- YY_BREAK
-case 52:
-YY_RULE_SETUP
-#line 131 "rclex.l"
-{ MAYBE_RETURN (GRAYED); }
- YY_BREAK
-case 53:
-YY_RULE_SETUP
-#line 132 "rclex.l"
-{ MAYBE_RETURN (HELP); }
- YY_BREAK
-case 54:
-YY_RULE_SETUP
-#line 133 "rclex.l"
-{ MAYBE_RETURN (INACTIVE); }
- YY_BREAK
-case 55:
-YY_RULE_SETUP
-#line 134 "rclex.l"
-{ MAYBE_RETURN (MENUBARBREAK); }
- YY_BREAK
-case 56:
-YY_RULE_SETUP
-#line 135 "rclex.l"
-{ MAYBE_RETURN (MENUBREAK); }
- YY_BREAK
-case 57:
-YY_RULE_SETUP
-#line 136 "rclex.l"
-{ MAYBE_RETURN (MESSAGETABLE); }
- YY_BREAK
-case 58:
-YY_RULE_SETUP
-#line 137 "rclex.l"
-{ MAYBE_RETURN (RCDATA); }
- YY_BREAK
-case 59:
-YY_RULE_SETUP
-#line 138 "rclex.l"
-{ MAYBE_RETURN (STRINGTABLE); }
- YY_BREAK
-case 60:
-YY_RULE_SETUP
-#line 139 "rclex.l"
-{ MAYBE_RETURN (VERSIONINFO); }
- YY_BREAK
-case 61:
-YY_RULE_SETUP
-#line 140 "rclex.l"
-{ MAYBE_RETURN (FILEVERSION); }
- YY_BREAK
-case 62:
-YY_RULE_SETUP
-#line 141 "rclex.l"
-{ MAYBE_RETURN (PRODUCTVERSION); }
- YY_BREAK
-case 63:
-YY_RULE_SETUP
-#line 142 "rclex.l"
-{ MAYBE_RETURN (FILEFLAGSMASK); }
- YY_BREAK
-case 64:
-YY_RULE_SETUP
-#line 143 "rclex.l"
-{ MAYBE_RETURN (FILEFLAGS); }
- YY_BREAK
-case 65:
-YY_RULE_SETUP
-#line 144 "rclex.l"
-{ MAYBE_RETURN (FILEOS); }
- YY_BREAK
-case 66:
-YY_RULE_SETUP
-#line 145 "rclex.l"
-{ MAYBE_RETURN (FILETYPE); }
- YY_BREAK
-case 67:
-YY_RULE_SETUP
-#line 146 "rclex.l"
-{ MAYBE_RETURN (FILESUBTYPE); }
- YY_BREAK
-case 68:
-YY_RULE_SETUP
-#line 147 "rclex.l"
-{ MAYBE_RETURN (VALUE); }
- YY_BREAK
-case 69:
-YY_RULE_SETUP
-#line 148 "rclex.l"
-{ MAYBE_RETURN (MOVEABLE); }
- YY_BREAK
-case 70:
-YY_RULE_SETUP
-#line 149 "rclex.l"
-{ MAYBE_RETURN (FIXED); }
- YY_BREAK
-case 71:
-YY_RULE_SETUP
-#line 150 "rclex.l"
-{ MAYBE_RETURN (PURE); }
- YY_BREAK
-case 72:
-YY_RULE_SETUP
-#line 151 "rclex.l"
-{ MAYBE_RETURN (IMPURE); }
- YY_BREAK
-case 73:
-YY_RULE_SETUP
-#line 152 "rclex.l"
-{ MAYBE_RETURN (PRELOAD); }
- YY_BREAK
-case 74:
-YY_RULE_SETUP
-#line 153 "rclex.l"
-{ MAYBE_RETURN (LOADONCALL); }
- YY_BREAK
-case 75:
-YY_RULE_SETUP
-#line 154 "rclex.l"
-{ MAYBE_RETURN (DISCARDABLE); }
- YY_BREAK
-case 76:
-YY_RULE_SETUP
-#line 155 "rclex.l"
-{ MAYBE_RETURN (NOT); }
- YY_BREAK
-case 77:
-YY_RULE_SETUP
-#line 157 "rclex.l"
-{
- char *s, *send;
-
- /* This is a hack to let us parse version
- information easily. */
-
- s = strchr (yytext, '"');
- ++s;
- send = strchr (s, '"');
- if (strncmp (s, "StringFileInfo",
- sizeof "StringFileInfo" - 1) == 0
- && s + sizeof "StringFileInfo" - 1 == send)
- MAYBE_RETURN (BLOCKSTRINGFILEINFO);
- else if (strncmp (s, "VarFileInfo",
- sizeof "VarFileInfo" - 1) == 0
- && s + sizeof "VarFileInfo" - 1 == send)
- MAYBE_RETURN (BLOCKVARFILEINFO);
- else
- {
- char *r;
-
- r = get_string (send - s + 1);
- strncpy (r, s, send - s);
- r[send - s] = '\0';
- yylval.s = r;
- MAYBE_RETURN (BLOCK);
- }
- }
- YY_BREAK
-case 78:
-YY_RULE_SETUP
-#line 186 "rclex.l"
-{
- cpp_line (yytext);
- }
- YY_BREAK
-case 79:
-YY_RULE_SETUP
-#line 190 "rclex.l"
-{
- yylval.i.val = strtoul (yytext, 0, 0);
- yylval.i.dword = 1;
- MAYBE_RETURN (NUMBER);
- }
- YY_BREAK
-case 80:
-YY_RULE_SETUP
-#line 196 "rclex.l"
-{
- yylval.i.val = strtoul (yytext, 0, 0);
- yylval.i.dword = 0;
- MAYBE_RETURN (NUMBER);
- }
- YY_BREAK
-case 81:
-YY_RULE_SETUP
-#line 202 "rclex.l"
-{
- char *s;
- unsigned long length;
-
- s = handle_quotes (yytext, &length);
- if (! rcdata_mode)
- {
- yylval.s = s;
- MAYBE_RETURN (QUOTEDSTRING);
- }
- else
- {
- yylval.ss.length = length;
- yylval.ss.s = s;
- MAYBE_RETURN (SIZEDSTRING);
- }
- }
- YY_BREAK
-case 82:
-YY_RULE_SETUP
-#line 220 "rclex.l"
-{
- char *s;
-
- /* I rejected comma in a string in order to
- handle VIRTKEY, CONTROL in an accelerator
- resource. This means that an unquoted
- file name can not contain a comma. I
- don't know what rc permits. */
-
- s = get_string (strlen (yytext) + 1);
- strcpy (s, yytext);
- yylval.s = s;
- MAYBE_RETURN (STRING);
- }
- YY_BREAK
-case 83:
-YY_RULE_SETUP
-#line 235 "rclex.l"
-{ ++rc_lineno; }
- YY_BREAK
-case 84:
-YY_RULE_SETUP
-#line 236 "rclex.l"
-{ /* ignore whitespace */ }
- YY_BREAK
-case 85:
-YY_RULE_SETUP
-#line 237 "rclex.l"
-{ MAYBE_RETURN (*yytext); }
- YY_BREAK
-case 86:
-YY_RULE_SETUP
-#line 239 "rclex.l"
-ECHO;
- YY_BREAK
-#line 1460 "rclex.c"
-case YY_STATE_EOF(INITIAL):
- 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;
-
- 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);
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = 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 >= 470 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- }
-
- 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 char *yy_cp = yy_c_buf_p;
-
- register YY_CHAR yy_c = 1;
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = 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 >= 470 )
- 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 == 469);
-
- 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;
-
-
- yytext_ptr = yy_bp;
- yy_hold_char = *yy_cp;
- yy_c_buf_p = yy_cp;
- }
-#endif /* ifndef YY_NO_UNPUT */
-
-
-#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;
-
-
- return c;
- }
-
-
-#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 );
- }
-
-
-#ifndef _WIN32
-#include <unistd.h>
-#else
-#ifndef YY_ALWAYS_INTERACTIVE
-#ifndef YY_NEVER_INTERACTIVE
-extern int isatty YY_PROTO(( int ));
-#endif
-#endif
-#endif
-
-#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 239 "rclex.l"
-
-#ifndef yywrap
-/* This is needed for some versions of lex. */
-int yywrap (void)
-{
- return 1;
-}
-#endif
-
-/* Handle a C preprocessor line. */
-
-static void
-cpp_line (const char *s)
-{
- int line;
- char *send, *fn;
-
- ++s;
- while (ISSPACE (*s))
- ++s;
-
- line = strtol (s, &send, 0);
- if (*send != '\0' && ! ISSPACE (*send))
- return;
-
- /* Subtract 1 because we are about to count the newline. */
- rc_lineno = line - 1;
-
- s = send;
- while (ISSPACE (*s))
- ++s;
-
- if (*s != '"')
- return;
-
- ++s;
- send = strchr (s, '"');
- if (send == NULL)
- return;
-
- fn = (char *) xmalloc (send - s + 1);
- strncpy (fn, s, send - s);
- fn[send - s] = '\0';
-
- free (rc_filename);
- rc_filename = fn;
-
- if (!initial_fn)
- {
- initial_fn = xmalloc (strlen (fn) + 1);
- strcpy (initial_fn, fn);
- }
-
- /* Allow the initial file, regardless of name. Suppress all other
- files if they end in ".h" (this allows included "*.rc"). */
- if (strcmp (initial_fn, fn) == 0
- || strcmp (fn + strlen (fn) - 2, ".h") != 0)
- suppress_cpp_data = 0;
- else
- suppress_cpp_data = 1;
-}
-
-/* Handle a quoted string. The quotes are stripped. A pair of quotes
- in a string are turned into a single quote. Adjacent strings are
- merged separated by whitespace are merged, as in C. */
-
-static char *
-handle_quotes (const char *input, unsigned long *len)
-{
- char *ret, *s;
- const char *t;
- int ch;
- int num_xdigits;
-
- ret = get_string (strlen (input) + 1);
-
- s = ret;
- t = input;
- if (*t == '"')
- ++t;
- while (*t != '\0')
- {
- if (*t == '\\')
- {
- ++t;
- switch (*t)
- {
- case '\0':
- rcparse_warning ("backslash at end of string");
- break;
-
- case '\"':
- rcparse_warning ("use \"\" to put \" in a string");
- break;
-
- case 'a':
- *s++ = ESCAPE_B; /* Strange, but true... */
- ++t;
- break;
-
- case 'b':
- *s++ = ESCAPE_B;
- ++t;
- break;
-
- case 'f':
- *s++ = ESCAPE_F;
- ++t;
- break;
-
- case 'n':
- *s++ = ESCAPE_N;
- ++t;
- break;
-
- case 'r':
- *s++ = ESCAPE_R;
- ++t;
- break;
-
- case 't':
- *s++ = ESCAPE_T;
- ++t;
- break;
-
- case 'v':
- *s++ = ESCAPE_V;
- ++t;
- break;
-
- case '\\':
- *s++ = *t++;
- break;
-
- case '0': case '1': case '2': case '3':
- case '4': case '5': case '6': case '7':
- ch = *t - '0';
- ++t;
- if (*t >= '0' && *t <= '7')
- {
- ch = (ch << 3) | (*t - '0');
- ++t;
- if (*t >= '0' && *t <= '7')
- {
- ch = (ch << 3) | (*t - '0');
- ++t;
- }
- }
- *s++ = ch;
- break;
-
- case 'x':
- ++t;
- ch = 0;
- /* We only handle single byte chars here. Make sure
- we finish an escape sequence like "/xB0ABC" after
- the first two digits. */
- num_xdigits = 2;
- while (num_xdigits--)
- {
- if (*t >= '0' && *t <= '9')
- ch = (ch << 4) | (*t - '0');
- else if (*t >= 'a' && *t <= 'f')
- ch = (ch << 4) | (*t - 'a' + 10);
- else if (*t >= 'A' && *t <= 'F')
- ch = (ch << 4) | (*t - 'A' + 10);
- else
- break;
- ++t;
- }
- *s++ = ch;
- break;
-
- default:
- rcparse_warning ("unrecognized escape sequence");
- *s++ = '\\';
- *s++ = *t++;
- break;
- }
- }
- else if (*t != '"')
- *s++ = *t++;
- else if (t[1] == '\0')
- break;
- else if (t[1] == '"')
- {
- *s++ = '"';
- t += 2;
- }
- else
- {
- ++t;
- assert (ISSPACE (*t));
- while (ISSPACE (*t))
- {
- if ((*t) == '\n')
- ++rc_lineno;
- ++t;
- }
- if (*t == '\0')
- break;
- assert (*t == '"');
- ++t;
- }
- }
-
- *s = '\0';
-
- *len = s - ret;
-
- return ret;
-}
-
-/* Allocate a string of a given length. */
-
-static char *
-get_string (int len)
-{
- struct alloc_string *as;
-
- as = (struct alloc_string *) xmalloc (sizeof *as);
- as->s = xmalloc (len);
-
- as->next = strings;
- strings = as;
-
- return as->s;
-}
-
-/* Discard all the strings we have allocated. The parser calls this
- when it no longer needs them. */
-
-void
-rcparse_discard_strings (void)
-{
- struct alloc_string *as;
-
- as = strings;
- while (as != NULL)
- {
- struct alloc_string *n;
-
- free (as->s);
- n = as->next;
- free (as);
- as = n;
- }
-
- strings = NULL;
-}
-
-/* Enter rcdata mode. */
-
-void
-rcparse_rcdata (void)
-{
- rcdata_mode = 1;
-}
-
-/* Go back to normal mode from rcdata mode. */
-
-void
-rcparse_normal (void)
-{
- rcdata_mode = 0;
-}
diff --git a/binutils-2.17/binutils/rclex.l b/binutils-2.17/binutils/rclex.l
deleted file mode 100644
index 92b1ec73..00000000
--- a/binutils-2.17/binutils/rclex.l
+++ /dev/null
@@ -1,504 +0,0 @@
-%{ /* rclex.l -- lexer for Windows rc files parser */
-/* Copyright 1997, 1998, 1999, 2001, 2002, 2003, 2005
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Cygnus Support.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This is a lex input file which generates a lexer used by the
- Windows rc file parser. It basically just recognized a bunch of
- keywords. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "safe-ctype.h"
-#include "windres.h"
-#include "rcparse.h"
-
-#include <assert.h>
-
-#define YY_NO_UNPUT
-
-/* Whether we are in rcdata mode, in which we returns the lengths of
- strings. */
-
-static int rcdata_mode;
-
-/* Whether we are supressing lines from cpp (including windows.h or
- headers from your C sources may bring in externs and typedefs).
- When active, we return IGNORED_TOKEN, which lets us ignore these
- outside of resource constructs. Thus, it isn't required to protect
- all the non-preprocessor lines in your header files with #ifdef
- RC_INVOKED. It also means your RC file can't include other RC
- files if they're named "*.h". Sorry. Name them *.rch or whatever. */
-
-static int suppress_cpp_data;
-
-#define MAYBE_RETURN(x) return suppress_cpp_data ? IGNORED_TOKEN : (x)
-
-/* The first filename we detect in the cpp output. We use this to
- tell included files from the original file. */
-
-static char *initial_fn;
-
-/* List of allocated strings. */
-
-struct alloc_string
-{
- struct alloc_string *next;
- char *s;
-};
-
-static struct alloc_string *strings;
-
-/* Local functions. */
-
-static void cpp_line (const char *);
-static char *handle_quotes (const char *, unsigned long *);
-static char *get_string (int);
-
-%}
-
-%%
-
-"BEGIN" { MAYBE_RETURN (BEG); }
-"{" { MAYBE_RETURN (BEG); }
-"END" { MAYBE_RETURN (END); }
-"}" { MAYBE_RETURN (END); }
-"ACCELERATORS" { MAYBE_RETURN (ACCELERATORS); }
-"VIRTKEY" { MAYBE_RETURN (VIRTKEY); }
-"ASCII" { MAYBE_RETURN (ASCII); }
-"NOINVERT" { MAYBE_RETURN (NOINVERT); }
-"SHIFT" { MAYBE_RETURN (SHIFT); }
-"CONTROL" { MAYBE_RETURN (CONTROL); }
-"ALT" { MAYBE_RETURN (ALT); }
-"BITMAP" { MAYBE_RETURN (BITMAP); }
-"CURSOR" { MAYBE_RETURN (CURSOR); }
-"DIALOG" { MAYBE_RETURN (DIALOG); }
-"DIALOGEX" { MAYBE_RETURN (DIALOGEX); }
-"EXSTYLE" { MAYBE_RETURN (EXSTYLE); }
-"CAPTION" { MAYBE_RETURN (CAPTION); }
-"CLASS" { MAYBE_RETURN (CLASS); }
-"STYLE" { MAYBE_RETURN (STYLE); }
-"AUTO3STATE" { MAYBE_RETURN (AUTO3STATE); }
-"AUTOCHECKBOX" { MAYBE_RETURN (AUTOCHECKBOX); }
-"AUTORADIOBUTTON" { MAYBE_RETURN (AUTORADIOBUTTON); }
-"CHECKBOX" { MAYBE_RETURN (CHECKBOX); }
-"COMBOBOX" { MAYBE_RETURN (COMBOBOX); }
-"CTEXT" { MAYBE_RETURN (CTEXT); }
-"DEFPUSHBUTTON" { MAYBE_RETURN (DEFPUSHBUTTON); }
-"EDITTEXT" { MAYBE_RETURN (EDITTEXT); }
-"GROUPBOX" { MAYBE_RETURN (GROUPBOX); }
-"LISTBOX" { MAYBE_RETURN (LISTBOX); }
-"LTEXT" { MAYBE_RETURN (LTEXT); }
-"PUSHBOX" { MAYBE_RETURN (PUSHBOX); }
-"PUSHBUTTON" { MAYBE_RETURN (PUSHBUTTON); }
-"RADIOBUTTON" { MAYBE_RETURN (RADIOBUTTON); }
-"RTEXT" { MAYBE_RETURN (RTEXT); }
-"SCROLLBAR" { MAYBE_RETURN (SCROLLBAR); }
-"STATE3" { MAYBE_RETURN (STATE3); }
-"USERBUTTON" { MAYBE_RETURN (USERBUTTON); }
-"BEDIT" { MAYBE_RETURN (BEDIT); }
-"HEDIT" { MAYBE_RETURN (HEDIT); }
-"IEDIT" { MAYBE_RETURN (IEDIT); }
-"FONT" { MAYBE_RETURN (FONT); }
-"ICON" { MAYBE_RETURN (ICON); }
-"LANGUAGE" { MAYBE_RETURN (LANGUAGE); }
-"CHARACTERISTICS" { MAYBE_RETURN (CHARACTERISTICS); }
-"VERSION" { MAYBE_RETURN (VERSIONK); }
-"MENU" { MAYBE_RETURN (MENU); }
-"MENUEX" { MAYBE_RETURN (MENUEX); }
-"MENUITEM" { MAYBE_RETURN (MENUITEM); }
-"SEPARATOR" { MAYBE_RETURN (SEPARATOR); }
-"POPUP" { MAYBE_RETURN (POPUP); }
-"CHECKED" { MAYBE_RETURN (CHECKED); }
-"GRAYED" { MAYBE_RETURN (GRAYED); }
-"HELP" { MAYBE_RETURN (HELP); }
-"INACTIVE" { MAYBE_RETURN (INACTIVE); }
-"MENUBARBREAK" { MAYBE_RETURN (MENUBARBREAK); }
-"MENUBREAK" { MAYBE_RETURN (MENUBREAK); }
-"MESSAGETABLE" { MAYBE_RETURN (MESSAGETABLE); }
-"RCDATA" { MAYBE_RETURN (RCDATA); }
-"STRINGTABLE" { MAYBE_RETURN (STRINGTABLE); }
-"VERSIONINFO" { MAYBE_RETURN (VERSIONINFO); }
-"FILEVERSION" { MAYBE_RETURN (FILEVERSION); }
-"PRODUCTVERSION" { MAYBE_RETURN (PRODUCTVERSION); }
-"FILEFLAGSMASK" { MAYBE_RETURN (FILEFLAGSMASK); }
-"FILEFLAGS" { MAYBE_RETURN (FILEFLAGS); }
-"FILEOS" { MAYBE_RETURN (FILEOS); }
-"FILETYPE" { MAYBE_RETURN (FILETYPE); }
-"FILESUBTYPE" { MAYBE_RETURN (FILESUBTYPE); }
-"VALUE" { MAYBE_RETURN (VALUE); }
-"MOVEABLE" { MAYBE_RETURN (MOVEABLE); }
-"FIXED" { MAYBE_RETURN (FIXED); }
-"PURE" { MAYBE_RETURN (PURE); }
-"IMPURE" { MAYBE_RETURN (IMPURE); }
-"PRELOAD" { MAYBE_RETURN (PRELOAD); }
-"LOADONCALL" { MAYBE_RETURN (LOADONCALL); }
-"DISCARDABLE" { MAYBE_RETURN (DISCARDABLE); }
-"NOT" { MAYBE_RETURN (NOT); }
-
-"BLOCK"[ \t\n]*"\""[^\#\n]*"\"" {
- char *s, *send;
-
- /* This is a hack to let us parse version
- information easily. */
-
- s = strchr (yytext, '"');
- ++s;
- send = strchr (s, '"');
- if (strncmp (s, "StringFileInfo",
- sizeof "StringFileInfo" - 1) == 0
- && s + sizeof "StringFileInfo" - 1 == send)
- MAYBE_RETURN (BLOCKSTRINGFILEINFO);
- else if (strncmp (s, "VarFileInfo",
- sizeof "VarFileInfo" - 1) == 0
- && s + sizeof "VarFileInfo" - 1 == send)
- MAYBE_RETURN (BLOCKVARFILEINFO);
- else
- {
- char *r;
-
- r = get_string (send - s + 1);
- strncpy (r, s, send - s);
- r[send - s] = '\0';
- yylval.s = r;
- MAYBE_RETURN (BLOCK);
- }
- }
-
-"#"[^\n]* {
- cpp_line (yytext);
- }
-
-[0-9][x0-9A-Fa-f]*L {
- yylval.i.val = strtoul (yytext, 0, 0);
- yylval.i.dword = 1;
- MAYBE_RETURN (NUMBER);
- }
-
-[0-9][x0-9A-Fa-f]* {
- yylval.i.val = strtoul (yytext, 0, 0);
- yylval.i.dword = 0;
- MAYBE_RETURN (NUMBER);
- }
-
-("\""[^\"\n]*"\""[ \t\n]*)+ {
- char *s;
- unsigned long length;
-
- s = handle_quotes (yytext, &length);
- if (! rcdata_mode)
- {
- yylval.s = s;
- MAYBE_RETURN (QUOTEDSTRING);
- }
- else
- {
- yylval.ss.length = length;
- yylval.ss.s = s;
- MAYBE_RETURN (SIZEDSTRING);
- }
- }
-
-[A-Za-z][^ ,\t\r\n]* {
- char *s;
-
- /* I rejected comma in a string in order to
- handle VIRTKEY, CONTROL in an accelerator
- resource. This means that an unquoted
- file name can not contain a comma. I
- don't know what rc permits. */
-
- s = get_string (strlen (yytext) + 1);
- strcpy (s, yytext);
- yylval.s = s;
- MAYBE_RETURN (STRING);
- }
-
-[\n] { ++rc_lineno; }
-[ \t\r]+ { /* ignore whitespace */ }
-. { MAYBE_RETURN (*yytext); }
-
-%%
-#ifndef yywrap
-/* This is needed for some versions of lex. */
-int yywrap (void)
-{
- return 1;
-}
-#endif
-
-/* Handle a C preprocessor line. */
-
-static void
-cpp_line (const char *s)
-{
- int line;
- char *send, *fn;
-
- ++s;
- while (ISSPACE (*s))
- ++s;
-
- line = strtol (s, &send, 0);
- if (*send != '\0' && ! ISSPACE (*send))
- return;
-
- /* Subtract 1 because we are about to count the newline. */
- rc_lineno = line - 1;
-
- s = send;
- while (ISSPACE (*s))
- ++s;
-
- if (*s != '"')
- return;
-
- ++s;
- send = strchr (s, '"');
- if (send == NULL)
- return;
-
- fn = (char *) xmalloc (send - s + 1);
- strncpy (fn, s, send - s);
- fn[send - s] = '\0';
-
- free (rc_filename);
- rc_filename = fn;
-
- if (!initial_fn)
- {
- initial_fn = xmalloc (strlen (fn) + 1);
- strcpy (initial_fn, fn);
- }
-
- /* Allow the initial file, regardless of name. Suppress all other
- files if they end in ".h" (this allows included "*.rc"). */
- if (strcmp (initial_fn, fn) == 0
- || strcmp (fn + strlen (fn) - 2, ".h") != 0)
- suppress_cpp_data = 0;
- else
- suppress_cpp_data = 1;
-}
-
-/* Handle a quoted string. The quotes are stripped. A pair of quotes
- in a string are turned into a single quote. Adjacent strings are
- merged separated by whitespace are merged, as in C. */
-
-static char *
-handle_quotes (const char *input, unsigned long *len)
-{
- char *ret, *s;
- const char *t;
- int ch;
- int num_xdigits;
-
- ret = get_string (strlen (input) + 1);
-
- s = ret;
- t = input;
- if (*t == '"')
- ++t;
- while (*t != '\0')
- {
- if (*t == '\\')
- {
- ++t;
- switch (*t)
- {
- case '\0':
- rcparse_warning ("backslash at end of string");
- break;
-
- case '\"':
- rcparse_warning ("use \"\" to put \" in a string");
- break;
-
- case 'a':
- *s++ = ESCAPE_B; /* Strange, but true... */
- ++t;
- break;
-
- case 'b':
- *s++ = ESCAPE_B;
- ++t;
- break;
-
- case 'f':
- *s++ = ESCAPE_F;
- ++t;
- break;
-
- case 'n':
- *s++ = ESCAPE_N;
- ++t;
- break;
-
- case 'r':
- *s++ = ESCAPE_R;
- ++t;
- break;
-
- case 't':
- *s++ = ESCAPE_T;
- ++t;
- break;
-
- case 'v':
- *s++ = ESCAPE_V;
- ++t;
- break;
-
- case '\\':
- *s++ = *t++;
- break;
-
- case '0': case '1': case '2': case '3':
- case '4': case '5': case '6': case '7':
- ch = *t - '0';
- ++t;
- if (*t >= '0' && *t <= '7')
- {
- ch = (ch << 3) | (*t - '0');
- ++t;
- if (*t >= '0' && *t <= '7')
- {
- ch = (ch << 3) | (*t - '0');
- ++t;
- }
- }
- *s++ = ch;
- break;
-
- case 'x':
- ++t;
- ch = 0;
- /* We only handle single byte chars here. Make sure
- we finish an escape sequence like "/xB0ABC" after
- the first two digits. */
- num_xdigits = 2;
- while (num_xdigits--)
- {
- if (*t >= '0' && *t <= '9')
- ch = (ch << 4) | (*t - '0');
- else if (*t >= 'a' && *t <= 'f')
- ch = (ch << 4) | (*t - 'a' + 10);
- else if (*t >= 'A' && *t <= 'F')
- ch = (ch << 4) | (*t - 'A' + 10);
- else
- break;
- ++t;
- }
- *s++ = ch;
- break;
-
- default:
- rcparse_warning ("unrecognized escape sequence");
- *s++ = '\\';
- *s++ = *t++;
- break;
- }
- }
- else if (*t != '"')
- *s++ = *t++;
- else if (t[1] == '\0')
- break;
- else if (t[1] == '"')
- {
- *s++ = '"';
- t += 2;
- }
- else
- {
- ++t;
- assert (ISSPACE (*t));
- while (ISSPACE (*t))
- {
- if ((*t) == '\n')
- ++rc_lineno;
- ++t;
- }
- if (*t == '\0')
- break;
- assert (*t == '"');
- ++t;
- }
- }
-
- *s = '\0';
-
- *len = s - ret;
-
- return ret;
-}
-
-/* Allocate a string of a given length. */
-
-static char *
-get_string (int len)
-{
- struct alloc_string *as;
-
- as = (struct alloc_string *) xmalloc (sizeof *as);
- as->s = xmalloc (len);
-
- as->next = strings;
- strings = as;
-
- return as->s;
-}
-
-/* Discard all the strings we have allocated. The parser calls this
- when it no longer needs them. */
-
-void
-rcparse_discard_strings (void)
-{
- struct alloc_string *as;
-
- as = strings;
- while (as != NULL)
- {
- struct alloc_string *n;
-
- free (as->s);
- n = as->next;
- free (as);
- as = n;
- }
-
- strings = NULL;
-}
-
-/* Enter rcdata mode. */
-
-void
-rcparse_rcdata (void)
-{
- rcdata_mode = 1;
-}
-
-/* Go back to normal mode from rcdata mode. */
-
-void
-rcparse_normal (void)
-{
- rcdata_mode = 0;
-}
diff --git a/binutils-2.17/binutils/rcparse.c b/binutils-2.17/binutils/rcparse.c
deleted file mode 100644
index a34e0bfc..00000000
--- a/binutils-2.17/binutils/rcparse.c
+++ /dev/null
@@ -1,4144 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.1. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, 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
-
-/* Bison version. */
-#define YYBISON_VERSION "2.1"
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- BEG = 258,
- END = 259,
- ACCELERATORS = 260,
- VIRTKEY = 261,
- ASCII = 262,
- NOINVERT = 263,
- SHIFT = 264,
- CONTROL = 265,
- ALT = 266,
- BITMAP = 267,
- CURSOR = 268,
- DIALOG = 269,
- DIALOGEX = 270,
- EXSTYLE = 271,
- CAPTION = 272,
- CLASS = 273,
- STYLE = 274,
- AUTO3STATE = 275,
- AUTOCHECKBOX = 276,
- AUTORADIOBUTTON = 277,
- CHECKBOX = 278,
- COMBOBOX = 279,
- CTEXT = 280,
- DEFPUSHBUTTON = 281,
- EDITTEXT = 282,
- GROUPBOX = 283,
- LISTBOX = 284,
- LTEXT = 285,
- PUSHBOX = 286,
- PUSHBUTTON = 287,
- RADIOBUTTON = 288,
- RTEXT = 289,
- SCROLLBAR = 290,
- STATE3 = 291,
- USERBUTTON = 292,
- BEDIT = 293,
- HEDIT = 294,
- IEDIT = 295,
- FONT = 296,
- ICON = 297,
- LANGUAGE = 298,
- CHARACTERISTICS = 299,
- VERSIONK = 300,
- MENU = 301,
- MENUEX = 302,
- MENUITEM = 303,
- SEPARATOR = 304,
- POPUP = 305,
- CHECKED = 306,
- GRAYED = 307,
- HELP = 308,
- INACTIVE = 309,
- MENUBARBREAK = 310,
- MENUBREAK = 311,
- MESSAGETABLE = 312,
- RCDATA = 313,
- STRINGTABLE = 314,
- VERSIONINFO = 315,
- FILEVERSION = 316,
- PRODUCTVERSION = 317,
- FILEFLAGSMASK = 318,
- FILEFLAGS = 319,
- FILEOS = 320,
- FILETYPE = 321,
- FILESUBTYPE = 322,
- BLOCKSTRINGFILEINFO = 323,
- BLOCKVARFILEINFO = 324,
- VALUE = 325,
- BLOCK = 326,
- MOVEABLE = 327,
- FIXED = 328,
- PURE = 329,
- IMPURE = 330,
- PRELOAD = 331,
- LOADONCALL = 332,
- DISCARDABLE = 333,
- NOT = 334,
- QUOTEDSTRING = 335,
- STRING = 336,
- NUMBER = 337,
- SIZEDSTRING = 338,
- IGNORED_TOKEN = 339,
- NEG = 340
- };
-#endif
-/* Tokens. */
-#define BEG 258
-#define END 259
-#define ACCELERATORS 260
-#define VIRTKEY 261
-#define ASCII 262
-#define NOINVERT 263
-#define SHIFT 264
-#define CONTROL 265
-#define ALT 266
-#define BITMAP 267
-#define CURSOR 268
-#define DIALOG 269
-#define DIALOGEX 270
-#define EXSTYLE 271
-#define CAPTION 272
-#define CLASS 273
-#define STYLE 274
-#define AUTO3STATE 275
-#define AUTOCHECKBOX 276
-#define AUTORADIOBUTTON 277
-#define CHECKBOX 278
-#define COMBOBOX 279
-#define CTEXT 280
-#define DEFPUSHBUTTON 281
-#define EDITTEXT 282
-#define GROUPBOX 283
-#define LISTBOX 284
-#define LTEXT 285
-#define PUSHBOX 286
-#define PUSHBUTTON 287
-#define RADIOBUTTON 288
-#define RTEXT 289
-#define SCROLLBAR 290
-#define STATE3 291
-#define USERBUTTON 292
-#define BEDIT 293
-#define HEDIT 294
-#define IEDIT 295
-#define FONT 296
-#define ICON 297
-#define LANGUAGE 298
-#define CHARACTERISTICS 299
-#define VERSIONK 300
-#define MENU 301
-#define MENUEX 302
-#define MENUITEM 303
-#define SEPARATOR 304
-#define POPUP 305
-#define CHECKED 306
-#define GRAYED 307
-#define HELP 308
-#define INACTIVE 309
-#define MENUBARBREAK 310
-#define MENUBREAK 311
-#define MESSAGETABLE 312
-#define RCDATA 313
-#define STRINGTABLE 314
-#define VERSIONINFO 315
-#define FILEVERSION 316
-#define PRODUCTVERSION 317
-#define FILEFLAGSMASK 318
-#define FILEFLAGS 319
-#define FILEOS 320
-#define FILETYPE 321
-#define FILESUBTYPE 322
-#define BLOCKSTRINGFILEINFO 323
-#define BLOCKVARFILEINFO 324
-#define VALUE 325
-#define BLOCK 326
-#define MOVEABLE 327
-#define FIXED 328
-#define PURE 329
-#define IMPURE 330
-#define PRELOAD 331
-#define LOADONCALL 332
-#define DISCARDABLE 333
-#define NOT 334
-#define QUOTEDSTRING 335
-#define STRING 336
-#define NUMBER 337
-#define SIZEDSTRING 338
-#define IGNORED_TOKEN 339
-#define NEG 340
-
-
-
-
-/* Copy the first part of user declarations. */
-#line 1 "rcparse.y"
- /* rcparse.y -- parser for Windows rc files
- Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Cygnus Support.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This is a parser for Windows rc files. It is based on the parser
- by Gunther Ebert <gunther.ebert@ixos-leipzig.de>. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "windres.h"
-#include "safe-ctype.h"
-
-/* The current language. */
-
-static unsigned short language;
-
-/* The resource information during a sub statement. */
-
-static struct res_res_info sub_res_info;
-
-/* Dialog information. This is built by the nonterminals styles and
- controls. */
-
-static struct dialog dialog;
-
-/* This is used when building a style. It is modified by the
- nonterminal styleexpr. */
-
-static unsigned long style;
-
-/* These are used when building a control. They are set before using
- control_params. */
-
-static unsigned long base_style;
-static unsigned long default_style;
-static unsigned long class;
-static struct res_id res_text_field;
-static unichar null_unichar;
-
-/* This is used for COMBOBOX, LISTBOX and EDITTEXT which
- do not allow resource 'text' field in control definition. */
-static const struct res_id res_null_text = { 1, {{0, &null_unichar}}};
-
-
-
-/* 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
-
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 66 "rcparse.y"
-typedef union YYSTYPE {
- struct accelerator acc;
- struct accelerator *pacc;
- struct dialog_control *dialog_control;
- struct menuitem *menuitem;
- struct
- {
- struct rcdata_item *first;
- struct rcdata_item *last;
- } rcdata;
- struct rcdata_item *rcdata_item;
- struct stringtable_data *stringtable;
- struct fixed_versioninfo *fixver;
- struct ver_info *verinfo;
- struct ver_stringinfo *verstring;
- struct ver_varinfo *vervar;
- struct res_id id;
- struct res_res_info res_info;
- struct
- {
- unsigned short on;
- unsigned short off;
- } memflags;
- struct
- {
- unsigned long val;
- /* Nonzero if this number was explicitly specified as long. */
- int dword;
- } i;
- unsigned long il;
- unsigned short is;
- const char *s;
- struct
- {
- unsigned long length;
- const char *s;
- } ss;
-} YYSTYPE;
-/* Line 196 of yacc.c. */
-#line 358 "rcparse.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 219 of yacc.c. */
-#line 370 "rcparse.c"
-
-#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) && (defined (__STDC__) || defined (__cplusplus))
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
-#ifndef YY_
-# if YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(msgid) dgettext ("bison-runtime", msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(msgid) msgid
-# endif
-#endif
-
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# else
-# define YYSTACK_ALLOC alloca
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# define YYINCLUDED_STDLIB_H
-# endif
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
-# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
-# endif
-# else
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# ifndef YYSTACK_ALLOC_MAXIMUM
-# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
-# endif
-# ifdef __cplusplus
-extern "C" {
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
- && (defined (__STDC__) || defined (__cplusplus)))
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifndef YYFREE
-# define YYFREE free
-# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
- && (defined (__STDC__) || defined (__cplusplus)))
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifdef __cplusplus
-}
-# endif
-# 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 int 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 int) + 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 \
- { \
- 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 int yysigned_char;
-#endif
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 2
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 792
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 99
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 91
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 247
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 500
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 340
-
-#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, 92, 87, 2,
- 97, 98, 90, 88, 95, 89, 2, 91, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 96, 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, 86, 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, 85, 2, 93, 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, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 94
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const unsigned short int yyprhs[] =
-{
- 0, 0, 3, 4, 7, 10, 13, 16, 19, 22,
- 25, 28, 31, 34, 37, 40, 43, 46, 49, 56,
- 57, 60, 63, 68, 70, 72, 74, 78, 81, 83,
- 85, 87, 89, 91, 93, 98, 103, 104, 118, 119,
- 133, 134, 149, 150, 154, 155, 159, 163, 167, 171,
- 175, 181, 188, 196, 205, 209, 213, 218, 222, 223,
- 226, 227, 232, 233, 238, 239, 244, 245, 250, 251,
- 256, 257, 261, 273, 286, 299, 313, 314, 319, 320,
- 325, 326, 330, 331, 336, 337, 342, 349, 358, 369,
- 381, 382, 387, 388, 392, 393, 398, 399, 404, 405,
- 410, 411, 416, 417, 422, 423, 427, 428, 433, 434,
- 450, 457, 466, 476, 477, 480, 482, 485, 486, 490,
- 491, 495, 496, 500, 501, 505, 510, 515, 519, 526,
- 527, 530, 535, 538, 545, 546, 550, 553, 555, 557,
- 559, 561, 563, 565, 572, 573, 576, 579, 583, 589,
- 592, 598, 605, 613, 623, 628, 635, 640, 641, 644,
- 645, 647, 649, 651, 655, 659, 660, 667, 668, 672,
- 677, 684, 689, 696, 697, 704, 711, 715, 719, 723,
- 727, 731, 732, 741, 749, 750, 756, 757, 761, 763,
- 765, 767, 770, 773, 776, 778, 779, 782, 786, 791,
- 795, 796, 799, 800, 803, 805, 807, 809, 811, 813,
- 815, 817, 819, 821, 823, 826, 830, 835, 837, 841,
- 842, 844, 847, 849, 851, 855, 858, 861, 865, 869,
- 873, 877, 881, 885, 889, 893, 896, 898, 900, 904,
- 907, 911, 915, 919, 923, 927, 931, 935
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const short int yyrhs[] =
-{
- 100, 0, -1, -1, 100, 101, -1, 100, 107, -1,
- 100, 108, -1, 100, 109, -1, 100, 147, -1, 100,
- 148, -1, 100, 149, -1, 100, 150, -1, 100, 155,
- -1, 100, 158, -1, 100, 159, -1, 100, 164, -1,
- 100, 167, -1, 100, 168, -1, 100, 84, -1, 173,
- 5, 176, 3, 102, 4, -1, -1, 102, 103, -1,
- 104, 187, -1, 104, 187, 95, 105, -1, 80, -1,
- 188, -1, 106, -1, 105, 95, 106, -1, 105, 106,
- -1, 6, -1, 7, -1, 8, -1, 9, -1, 10,
- -1, 11, -1, 173, 12, 178, 180, -1, 173, 13,
- 177, 180, -1, -1, 173, 14, 178, 113, 188, 184,
- 184, 184, 110, 114, 3, 115, 4, -1, -1, 173,
- 15, 178, 113, 188, 184, 184, 184, 111, 114, 3,
- 115, 4, -1, -1, 173, 15, 178, 113, 188, 184,
- 184, 184, 184, 112, 114, 3, 115, 4, -1, -1,
- 16, 96, 185, -1, -1, 114, 17, 80, -1, 114,
- 18, 173, -1, 114, 19, 181, -1, 114, 16, 185,
- -1, 114, 18, 80, -1, 114, 41, 185, 95, 80,
- -1, 114, 41, 185, 95, 80, 184, -1, 114, 41,
- 185, 95, 80, 184, 184, -1, 114, 41, 185, 95,
- 80, 184, 184, 184, -1, 114, 46, 173, -1, 114,
- 44, 185, -1, 114, 43, 185, 184, -1, 114, 45,
- 185, -1, -1, 115, 116, -1, -1, 20, 139, 117,
- 138, -1, -1, 21, 139, 118, 138, -1, -1, 22,
- 139, 119, 138, -1, -1, 38, 139, 120, 138, -1,
- -1, 23, 139, 121, 138, -1, -1, 24, 122, 138,
- -1, 10, 139, 185, 184, 141, 184, 184, 184, 184,
- 183, 140, -1, 10, 139, 185, 184, 141, 184, 184,
- 184, 184, 184, 184, 140, -1, 10, 139, 185, 95,
- 80, 141, 184, 184, 184, 184, 183, 140, -1, 10,
- 139, 185, 95, 80, 141, 184, 184, 184, 184, 184,
- 184, 140, -1, -1, 25, 139, 123, 138, -1, -1,
- 26, 139, 124, 138, -1, -1, 27, 125, 138, -1,
- -1, 28, 139, 126, 138, -1, -1, 39, 139, 127,
- 138, -1, 42, 175, 185, 184, 184, 140, -1, 42,
- 175, 185, 184, 184, 184, 184, 140, -1, 42, 175,
- 185, 184, 184, 184, 184, 143, 183, 140, -1, 42,
- 175, 185, 184, 184, 184, 184, 143, 184, 184, 140,
- -1, -1, 40, 139, 128, 138, -1, -1, 29, 129,
- 138, -1, -1, 30, 139, 130, 138, -1, -1, 31,
- 139, 131, 138, -1, -1, 32, 139, 132, 138, -1,
- -1, 33, 139, 133, 138, -1, -1, 34, 139, 134,
- 138, -1, -1, 35, 135, 138, -1, -1, 36, 139,
- 136, 138, -1, -1, 37, 175, 185, 95, 185, 95,
- 185, 95, 185, 95, 185, 95, 137, 181, 183, -1,
- 185, 184, 184, 184, 184, 140, -1, 185, 184, 184,
- 184, 184, 145, 183, 140, -1, 185, 184, 184, 184,
- 184, 145, 184, 184, 140, -1, -1, 188, 95, -1,
- 80, -1, 80, 95, -1, -1, 3, 160, 4, -1,
- -1, 95, 142, 181, -1, -1, 95, 144, 181, -1,
- -1, 95, 146, 181, -1, 173, 41, 177, 180, -1,
- 173, 42, 177, 180, -1, 43, 185, 184, -1, 173,
- 46, 176, 3, 151, 4, -1, -1, 151, 152, -1,
- 48, 80, 184, 153, -1, 48, 49, -1, 50, 80,
- 153, 3, 151, 4, -1, -1, 153, 95, 154, -1,
- 153, 154, -1, 51, -1, 52, -1, 53, -1, 54,
- -1, 55, -1, 56, -1, 173, 47, 176, 3, 156,
- 4, -1, -1, 156, 157, -1, 48, 80, -1, 48,
- 80, 184, -1, 48, 80, 184, 184, 183, -1, 48,
- 49, -1, 50, 80, 3, 156, 4, -1, 50, 80,
- 184, 3, 156, 4, -1, 50, 80, 184, 184, 3,
- 156, 4, -1, 50, 80, 184, 184, 184, 183, 3,
- 156, 4, -1, 173, 57, 178, 180, -1, 173, 58,
- 176, 3, 160, 4, -1, 173, 58, 176, 180, -1,
- -1, 161, 162, -1, -1, 163, -1, 83, -1, 186,
- -1, 163, 95, 83, -1, 163, 95, 186, -1, -1,
- 59, 176, 3, 165, 166, 4, -1, -1, 166, 185,
- 80, -1, 166, 185, 95, 80, -1, 173, 173, 176,
- 3, 160, 4, -1, 173, 173, 176, 180, -1, 173,
- 60, 169, 3, 170, 4, -1, -1, 169, 61, 185,
- 184, 184, 184, -1, 169, 62, 185, 184, 184, 184,
- -1, 169, 63, 185, -1, 169, 64, 185, -1, 169,
- 65, 185, -1, 169, 66, 185, -1, 169, 67, 185,
- -1, -1, 170, 68, 3, 71, 3, 171, 4, 4,
- -1, 170, 69, 3, 70, 80, 172, 4, -1, -1,
- 171, 70, 80, 95, 80, -1, -1, 172, 184, 184,
- -1, 188, -1, 81, -1, 80, -1, 80, 95, -1,
- 81, 95, -1, 188, 95, -1, 174, -1, -1, 176,
- 179, -1, 176, 44, 185, -1, 176, 43, 185, 184,
- -1, 176, 45, 185, -1, -1, 177, 179, -1, -1,
- 178, 179, -1, 72, -1, 73, -1, 74, -1, 75,
- -1, 76, -1, 77, -1, 78, -1, 80, -1, 81,
- -1, 182, -1, 79, 182, -1, 181, 85, 182, -1,
- 181, 85, 79, 182, -1, 82, -1, 97, 185, 98,
- -1, -1, 184, -1, 95, 185, -1, 186, -1, 82,
- -1, 97, 186, 98, -1, 93, 186, -1, 89, 186,
- -1, 186, 90, 186, -1, 186, 91, 186, -1, 186,
- 92, 186, -1, 186, 88, 186, -1, 186, 89, 186,
- -1, 186, 87, 186, -1, 186, 86, 186, -1, 186,
- 85, 186, -1, 95, 188, -1, 189, -1, 82, -1,
- 97, 186, 98, -1, 93, 186, -1, 189, 90, 186,
- -1, 189, 91, 186, -1, 189, 92, 186, -1, 189,
- 88, 186, -1, 189, 89, 186, -1, 189, 87, 186,
- -1, 189, 86, 186, -1, 189, 85, 186, -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const unsigned short int yyrline[] =
-{
- 0, 161, 161, 163, 164, 165, 166, 167, 168, 169,
- 170, 171, 172, 173, 174, 175, 176, 177, 183, 194,
- 197, 218, 223, 235, 256, 266, 270, 275, 282, 286,
- 291, 295, 299, 303, 312, 324, 338, 336, 363, 361,
- 390, 388, 420, 423, 429, 431, 437, 441, 446, 450,
- 454, 467, 482, 497, 512, 516, 520, 524, 530, 532,
- 544, 543, 555, 554, 566, 565, 577, 576, 591, 590,
- 602, 601, 614, 625, 634, 647, 659, 658, 670, 669,
- 681, 680, 692, 691, 703, 702, 716, 721, 727, 733,
- 740, 739, 754, 753, 765, 764, 776, 775, 786, 785,
- 797, 796, 808, 807, 819, 818, 830, 829, 842, 840,
- 858, 869, 880, 893, 896, 901, 905, 913, 916, 926,
- 925, 932, 931, 938, 937, 945, 957, 970, 979, 990,
- 993, 1010, 1014, 1018, 1026, 1029, 1033, 1040, 1044, 1048,
- 1052, 1056, 1060, 1069, 1080, 1083, 1100, 1104, 1108, 1112,
- 1116, 1120, 1124, 1128, 1138, 1150, 1157, 1170, 1170, 1182,
- 1186, 1193, 1201, 1209, 1218, 1233, 1232, 1237, 1239, 1246,
- 1259, 1266, 1278, 1289, 1294, 1300, 1306, 1311, 1316, 1321,
- 1326, 1341, 1344, 1348, 1356, 1359, 1367, 1370, 1379, 1384,
- 1400, 1404, 1408, 1416, 1421, 1439, 1445, 1451, 1456, 1461,
- 1472, 1477, 1489, 1494, 1506, 1511, 1516, 1521, 1526, 1531,
- 1536, 1546, 1550, 1567, 1571, 1575, 1579, 1586, 1590, 1600,
- 1603, 1612, 1621, 1630, 1634, 1638, 1643, 1648, 1653, 1658,
- 1663, 1668, 1673, 1678, 1683, 1694, 1703, 1714, 1718, 1722,
- 1727, 1732, 1737, 1742, 1747, 1752, 1757, 1762
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-/* YYTNAME[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", "BEG", "END", "ACCELERATORS", "VIRTKEY",
- "ASCII", "NOINVERT", "SHIFT", "CONTROL", "ALT", "BITMAP", "CURSOR",
- "DIALOG", "DIALOGEX", "EXSTYLE", "CAPTION", "CLASS", "STYLE",
- "AUTO3STATE", "AUTOCHECKBOX", "AUTORADIOBUTTON", "CHECKBOX", "COMBOBOX",
- "CTEXT", "DEFPUSHBUTTON", "EDITTEXT", "GROUPBOX", "LISTBOX", "LTEXT",
- "PUSHBOX", "PUSHBUTTON", "RADIOBUTTON", "RTEXT", "SCROLLBAR", "STATE3",
- "USERBUTTON", "BEDIT", "HEDIT", "IEDIT", "FONT", "ICON", "LANGUAGE",
- "CHARACTERISTICS", "VERSIONK", "MENU", "MENUEX", "MENUITEM", "SEPARATOR",
- "POPUP", "CHECKED", "GRAYED", "HELP", "INACTIVE", "MENUBARBREAK",
- "MENUBREAK", "MESSAGETABLE", "RCDATA", "STRINGTABLE", "VERSIONINFO",
- "FILEVERSION", "PRODUCTVERSION", "FILEFLAGSMASK", "FILEFLAGS", "FILEOS",
- "FILETYPE", "FILESUBTYPE", "BLOCKSTRINGFILEINFO", "BLOCKVARFILEINFO",
- "VALUE", "BLOCK", "MOVEABLE", "FIXED", "PURE", "IMPURE", "PRELOAD",
- "LOADONCALL", "DISCARDABLE", "NOT", "QUOTEDSTRING", "STRING", "NUMBER",
- "SIZEDSTRING", "IGNORED_TOKEN", "'|'", "'^'", "'&'", "'+'", "'-'", "'*'",
- "'/'", "'%'", "'~'", "NEG", "','", "'='", "'('", "')'", "$accept",
- "input", "accelerator", "acc_entries", "acc_entry", "acc_event",
- "acc_options", "acc_option", "bitmap", "cursor", "dialog", "@1", "@2",
- "@3", "exstyle", "styles", "controls", "control", "@4", "@5", "@6", "@7",
- "@8", "@9", "@10", "@11", "@12", "@13", "@14", "@15", "@16", "@17",
- "@18", "@19", "@20", "@21", "@22", "@23", "@24", "control_params",
- "optresidc", "opt_control_data", "control_styleexpr", "@25",
- "icon_styleexpr", "@26", "control_params_styleexpr", "@27", "font",
- "icon", "language", "menu", "menuitems", "menuitem", "menuitem_flags",
- "menuitem_flag", "menuex", "menuexitems", "menuexitem", "messagetable",
- "rcdata", "optrcdata_data", "@28", "optrcdata_data_int", "rcdata_data",
- "stringtable", "@29", "string_data", "user", "versioninfo",
- "fixedverinfo", "verblocks", "vervals", "vertrans", "id", "resname",
- "resref", "suboptions", "memflags_move_discard", "memflags_move",
- "memflag", "file_name", "styleexpr", "parennumber", "optcnumexpr",
- "cnumexpr", "numexpr", "sizednumexpr", "cposnumexpr", "posnumexpr",
- "sizedposnumexpr", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
-static const unsigned short int 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, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 124, 94, 38, 43, 45,
- 42, 47, 37, 126, 340, 44, 61, 40, 41
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const unsigned char yyr1[] =
-{
- 0, 99, 100, 100, 100, 100, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 101, 102,
- 102, 103, 103, 104, 104, 105, 105, 105, 106, 106,
- 106, 106, 106, 106, 107, 108, 110, 109, 111, 109,
- 112, 109, 113, 113, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 115, 115,
- 117, 116, 118, 116, 119, 116, 120, 116, 121, 116,
- 122, 116, 116, 116, 116, 116, 123, 116, 124, 116,
- 125, 116, 126, 116, 127, 116, 116, 116, 116, 116,
- 128, 116, 129, 116, 130, 116, 131, 116, 132, 116,
- 133, 116, 134, 116, 135, 116, 136, 116, 137, 116,
- 138, 138, 138, 139, 139, 139, 139, 140, 140, 142,
- 141, 144, 143, 146, 145, 147, 148, 149, 150, 151,
- 151, 152, 152, 152, 153, 153, 153, 154, 154, 154,
- 154, 154, 154, 155, 156, 156, 157, 157, 157, 157,
- 157, 157, 157, 157, 158, 159, 159, 161, 160, 162,
- 162, 163, 163, 163, 163, 165, 164, 166, 166, 166,
- 167, 167, 168, 169, 169, 169, 169, 169, 169, 169,
- 169, 170, 170, 170, 171, 171, 172, 172, 173, 173,
- 174, 174, 174, 175, 175, 176, 176, 176, 176, 176,
- 177, 177, 178, 178, 179, 179, 179, 179, 179, 179,
- 179, 180, 180, 181, 181, 181, 181, 182, 182, 183,
- 183, 184, 185, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 186, 186, 186, 187, 188, 189, 189, 189,
- 189, 189, 189, 189, 189, 189, 189, 189
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const unsigned char yyr2[] =
-{
- 0, 2, 0, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 6, 0,
- 2, 2, 4, 1, 1, 1, 3, 2, 1, 1,
- 1, 1, 1, 1, 4, 4, 0, 13, 0, 13,
- 0, 14, 0, 3, 0, 3, 3, 3, 3, 3,
- 5, 6, 7, 8, 3, 3, 4, 3, 0, 2,
- 0, 4, 0, 4, 0, 4, 0, 4, 0, 4,
- 0, 3, 11, 12, 12, 13, 0, 4, 0, 4,
- 0, 3, 0, 4, 0, 4, 6, 8, 10, 11,
- 0, 4, 0, 3, 0, 4, 0, 4, 0, 4,
- 0, 4, 0, 4, 0, 3, 0, 4, 0, 15,
- 6, 8, 9, 0, 2, 1, 2, 0, 3, 0,
- 3, 0, 3, 0, 3, 4, 4, 3, 6, 0,
- 2, 4, 2, 6, 0, 3, 2, 1, 1, 1,
- 1, 1, 1, 6, 0, 2, 2, 3, 5, 2,
- 5, 6, 7, 9, 4, 6, 4, 0, 2, 0,
- 1, 1, 1, 3, 3, 0, 6, 0, 3, 4,
- 6, 4, 6, 0, 6, 6, 3, 3, 3, 3,
- 3, 0, 8, 7, 0, 5, 0, 3, 1, 1,
- 1, 2, 2, 2, 1, 0, 2, 3, 4, 3,
- 0, 2, 0, 2, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 2, 3, 4, 1, 3, 0,
- 1, 2, 1, 1, 3, 2, 2, 3, 3, 3,
- 3, 3, 3, 3, 3, 2, 1, 1, 3, 2,
- 3, 3, 3, 3, 3, 3, 3, 3
-};
-
-/* 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[] =
-{
- 2, 0, 1, 0, 195, 189, 237, 17, 0, 0,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 0, 188, 236, 223, 0, 0,
- 0, 0, 222, 0, 239, 0, 195, 202, 200, 202,
- 202, 200, 200, 195, 195, 202, 195, 173, 195, 0,
- 0, 0, 0, 0, 0, 0, 0, 226, 225, 0,
- 0, 127, 0, 0, 0, 0, 0, 0, 0, 0,
- 165, 0, 0, 0, 204, 205, 206, 207, 208, 209,
- 210, 196, 238, 0, 0, 0, 42, 42, 0, 0,
- 0, 0, 0, 0, 0, 0, 247, 246, 245, 243,
- 244, 240, 241, 242, 224, 221, 234, 233, 232, 230,
- 231, 227, 228, 229, 167, 0, 197, 199, 19, 211,
- 212, 203, 34, 201, 35, 0, 0, 0, 125, 126,
- 129, 144, 154, 157, 156, 181, 0, 0, 0, 0,
- 0, 0, 0, 157, 171, 0, 198, 0, 0, 0,
- 0, 0, 0, 0, 159, 0, 0, 0, 176, 177,
- 178, 179, 180, 0, 166, 0, 18, 23, 20, 0,
- 24, 43, 0, 0, 128, 0, 0, 130, 143, 0,
- 0, 145, 155, 161, 158, 160, 162, 172, 0, 0,
- 0, 0, 170, 168, 0, 0, 21, 0, 0, 132,
- 0, 134, 149, 146, 0, 0, 0, 0, 0, 0,
- 169, 235, 0, 36, 38, 134, 0, 147, 144, 0,
- 163, 164, 0, 0, 174, 175, 28, 29, 30, 31,
- 32, 33, 22, 25, 44, 44, 40, 131, 129, 137,
- 138, 139, 140, 141, 142, 0, 136, 219, 0, 144,
- 0, 184, 186, 0, 27, 0, 0, 44, 0, 135,
- 148, 220, 150, 0, 144, 219, 0, 0, 26, 58,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,
- 0, 133, 151, 0, 0, 0, 0, 183, 0, 0,
- 48, 45, 49, 46, 0, 217, 0, 47, 213, 0,
- 0, 55, 57, 54, 0, 58, 152, 144, 182, 0,
- 187, 37, 113, 113, 113, 113, 113, 70, 113, 113,
- 80, 113, 92, 113, 113, 113, 113, 113, 104, 113,
- 0, 113, 113, 113, 0, 59, 214, 0, 0, 0,
- 56, 39, 0, 0, 0, 115, 0, 0, 60, 62,
- 64, 68, 0, 76, 78, 0, 82, 0, 94, 96,
- 98, 100, 102, 0, 106, 190, 0, 194, 0, 0,
- 66, 84, 90, 0, 218, 0, 215, 50, 41, 153,
- 185, 116, 0, 114, 0, 0, 0, 0, 71, 0,
- 0, 0, 81, 0, 93, 0, 0, 0, 0, 0,
- 105, 0, 191, 192, 0, 193, 0, 0, 0, 0,
- 216, 51, 0, 0, 61, 63, 65, 69, 0, 77,
- 79, 83, 95, 97, 99, 101, 103, 107, 0, 67,
- 85, 91, 0, 52, 0, 119, 0, 0, 0, 117,
- 53, 0, 0, 0, 0, 0, 157, 86, 0, 0,
- 120, 0, 117, 0, 0, 117, 0, 0, 123, 110,
- 219, 0, 118, 121, 87, 219, 0, 219, 0, 117,
- 220, 0, 0, 117, 220, 219, 117, 220, 124, 111,
- 117, 0, 122, 88, 117, 117, 220, 72, 117, 112,
- 0, 89, 74, 117, 73, 108, 75, 0, 219, 109
-};
-
-/* YYDEFGOTO[NTERM-NUM]. */
-static const short int yydefgoto[] =
-{
- -1, 1, 10, 147, 168, 169, 232, 233, 11, 12,
- 13, 234, 235, 257, 126, 255, 289, 335, 384, 385,
- 386, 406, 387, 352, 390, 391, 355, 393, 407, 408,
- 357, 395, 396, 397, 398, 399, 363, 401, 497, 388,
- 346, 447, 436, 442, 465, 472, 460, 468, 14, 15,
- 16, 17, 151, 177, 216, 246, 18, 152, 181, 19,
- 20, 153, 154, 184, 185, 21, 114, 145, 22, 23,
- 94, 155, 266, 267, 24, 367, 368, 33, 85, 84,
- 81, 122, 297, 298, 260, 261, 389, 32, 196, 347,
- 26
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-#define YYPACT_NINF -426
-static const short int yypact[] =
-{
- -426, 12, -426, 287, -426, -426, -426, -426, 287, 287,
- -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
- -426, -426, -426, -426, 106, -426, 585, -426, 287, 287,
- 287, -80, 675, 83, -426, 637, -426, -426, -426, -426,
- -426, -426, -426, -426, -426, -426, -426, -426, -426, 287,
- 287, 287, 287, 287, 287, 287, 287, -426, -426, 651,
- 287, -426, 287, 287, 287, 287, 287, 287, 287, 287,
- -426, 287, 287, 287, -426, -426, -426, -426, -426, -426,
- -426, -426, -426, 286, 678, 678, 188, 188, 678, 678,
- 323, 375, 678, 210, 128, 274, 682, 688, 302, 89,
- 89, -426, -426, -426, -426, -426, 682, 688, 302, 89,
- 89, -426, -426, -426, -426, -80, -426, -426, -426, -426,
- -426, -426, -426, -426, -426, -70, 142, 142, -426, -426,
- -426, -426, -426, -426, -426, -426, 287, 287, 287, 287,
- 287, 287, 287, -426, -426, 2, -426, 5, 287, -80,
- -80, 33, 40, 47, 373, 38, -80, -80, -426, -426,
- -426, -426, -426, 49, -426, 17, -426, -426, -426, -41,
- -426, -426, -80, -80, -426, -44, -24, -426, -426, -35,
- 36, -426, -426, -426, -426, -13, 675, -426, 129, 138,
- -80, -80, -426, -426, 69, 142, 73, -80, -80, -426,
- -80, -426, -426, -80, 8, 454, 111, 97, -80, -80,
- -426, -426, 775, -426, -80, -426, 119, -80, -426, 13,
- -426, 675, 183, 116, -426, -426, -426, -426, -426, -426,
- -426, -426, 22, -426, -426, -426, -426, 245, -426, -426,
- -426, -426, -426, -426, -426, 736, -426, -80, 96, -426,
- 15, -426, -426, 775, -426, 370, 512, -426, 158, -426,
- -426, -426, -426, 172, -426, -80, 34, 6, -426, -426,
- 287, 125, 227, 72, 287, 287, 287, 287, 260, -426,
- 523, -426, -426, 179, 207, 229, 131, -426, -80, 584,
- -426, -426, -426, -426, 43, -426, 287, 159, -426, 151,
- -80, -426, -426, -426, 621, -426, -426, -426, -426, 153,
- -426, -426, 141, 141, 141, 141, 141, -426, 141, 141,
- -426, 141, -426, 141, 141, 141, 141, 141, -426, 141,
- 230, 141, 141, 141, 230, -426, -426, 160, 133, 169,
- -426, -426, 658, 193, 189, 164, 287, 173, -426, -426,
- -426, -426, 287, -426, -426, 287, -426, 287, -426, -426,
- -426, -426, -426, 287, -426, 175, 181, -426, 287, 184,
- -426, -426, -426, 287, -426, 43, -426, -80, -426, -426,
- -426, -426, 185, -426, 287, 287, 287, 287, -426, -80,
- 287, 287, -426, 287, -426, 287, 287, 287, 287, 287,
- -426, 287, -426, -426, 197, -426, 287, 287, 287, -80,
- -426, -80, 341, 199, -426, -426, -426, -426, -80, -426,
- -426, -426, -426, -426, -426, -426, -426, -426, 287, -426,
- -426, -426, -80, -80, 199, -426, -80, -80, 208, 18,
- -426, -80, 72, -80, -80, 287, -426, -426, -80, -80,
- 159, -80, 19, 211, 298, 20, -80, -80, -426, -426,
- -80, 287, -426, -426, -426, -80, -80, -80, 72, 310,
- -80, 219, 72, 310, -80, -80, 310, -80, 159, -426,
- 310, 287, 159, -426, 310, 310, -80, -426, 310, -426,
- 220, -426, -426, 310, -426, -426, -426, 72, -37, -426
-};
-
-/* YYPGOTO[NTERM-NUM]. */
-static const short int yypgoto[] =
-{
- -426, -426, -426, -426, -426, -426, -426, -207, -426, -426,
- -426, -426, -426, -426, 218, -222, -255, -426, -426, -426,
- -426, -426, -426, -426, -426, -426, -426, -426, -426, -426,
- -426, -426, -426, -426, -426, -426, -426, -426, -426, 126,
- 388, 107, -113, -426, -426, -426, -426, -426, -426, -426,
- -426, -426, 84, -426, 110, 87, -426, -215, -426, -426,
- -426, -142, -426, -426, -426, -426, -426, -426, -426, -426,
- -426, -426, -426, -426, -22, -426, 0, 397, 82, 212,
- 548, 486, -425, -286, -258, 28, -3, 11, -426, 3,
- -426
-};
-
-/* 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 short int yytable[] =
-{
- 31, 163, 48, 248, 25, 199, 164, 284, 336, 166,
- 287, 218, 2, 256, 202, 60, 249, 450, 264, 34,
- 35, 446, 446, 446, 304, 254, 148, 25, 226, 227,
- 228, 229, 230, 231, 263, 280, 200, 174, 285, 57,
- 58, 59, 187, 478, 178, 203, 268, 482, 338, 283,
- 342, 182, 376, 192, 195, 3, 201, 105, 60, 61,
- 96, 97, 98, 99, 100, 101, 102, 103, 115, 116,
- 117, 4, 498, 106, 107, 108, 109, 110, 111, 112,
- 113, 175, 205, 176, 27, 167, 70, 6, 179, 410,
- 180, 28, 343, 5, 6, 29, 7, 193, 8, 30,
- 262, 60, 9, 60, 286, 8, 188, 189, 60, 9,
- 60, 36, 194, 60, 458, 463, 204, 253, 37, 38,
- 39, 40, 238, 88, 89, 295, 71, 72, 73, 149,
- 150, 135, 206, 156, 157, 158, 159, 160, 161, 162,
- 296, 207, 165, 146, 179, 171, 180, 41, 42, 210,
- 170, 294, 43, 44, 295, 74, 75, 76, 77, 78,
- 79, 80, 281, 45, 46, 186, 47, 223, 212, 296,
- 239, 240, 241, 242, 243, 244, 282, 172, 173, 67,
- 68, 69, 222, 306, 190, 191, 251, 5, 6, 136,
- 137, 138, 139, 140, 141, 142, 252, 379, 211, 8,
- 197, 198, 469, 9, 125, 291, 175, 473, 176, 476,
- 307, 309, 375, 133, 245, 295, 221, 485, 208, 209,
- 179, 345, 180, 6, 6, 213, 214, 179, 215, 180,
- 296, 217, 219, 308, 8, 8, 224, 225, 9, 9,
- 499, 179, 236, 180, 338, 247, 339, 250, 344, 377,
- 293, 86, 87, 71, 72, 73, 303, 92, 374, 381,
- 74, 75, 76, 77, 78, 79, 80, 290, 383, 380,
- 402, 299, 300, 301, 302, 25, 403, 143, 265, 405,
- 412, 25, 74, 75, 76, 77, 78, 79, 80, 118,
- 119, 120, 428, 337, 435, 288, 239, 240, 241, 242,
- 243, 244, 462, 445, 454, 127, 461, 292, 5, 6,
- 365, 366, 6, 446, 481, 495, 310, 71, 72, 73,
- 8, 441, 258, 8, 9, 237, 130, 9, 340, 71,
- 72, 73, 259, 369, 373, 0, 0, 369, 0, 0,
- 245, 5, 6, 382, 0, 0, 74, 75, 76, 77,
- 78, 79, 80, 8, 119, 120, 0, 9, 74, 75,
- 76, 77, 78, 79, 80, 404, 71, 72, 73, 27,
- 409, 0, 0, 269, 0, 0, 28, 0, 131, 0,
- 29, 0, 0, 0, 30, 0, 270, 271, 272, 273,
- 65, 66, 67, 68, 69, 74, 75, 76, 77, 78,
- 79, 80, 0, 0, 0, 411, 0, 0, 0, 105,
- 413, 274, 0, 275, 276, 277, 278, 418, 71, 72,
- 73, 434, 0, 27, 0, 438, 0, 0, 0, 0,
- 28, 0, 0, 83, 29, 0, 0, 432, 30, 433,
- 90, 91, 453, 93, 0, 95, 437, 74, 75, 76,
- 77, 78, 79, 80, 0, 27, 183, 0, 471, 0,
- 439, 440, 28, 0, 443, 444, 29, 448, 0, 449,
- 30, 451, 452, 0, 0, 0, 455, 456, 490, 457,
- 0, 392, 0, 394, 466, 467, 0, 0, 470, 400,
- 0, 0, 0, 474, 475, 477, 0, 0, 480, 0,
- 0, 0, 484, 486, 0, 488, 0, 0, 0, 0,
- 414, 415, 416, 417, 493, 279, 419, 420, 0, 421,
- 0, 422, 423, 424, 425, 426, 305, 427, 270, 271,
- 272, 273, 429, 430, 431, 0, 27, 220, 0, 270,
- 271, 272, 273, 28, 0, 0, 0, 29, 0, 0,
- 0, 30, 0, 274, 0, 275, 276, 277, 278, 459,
- 0, 0, 464, 0, 274, 0, 275, 276, 277, 278,
- 0, 124, 0, 0, 128, 129, 479, 0, 132, 134,
- 483, 144, 0, 487, 0, 0, 0, 489, 311, 0,
- 0, 491, 492, 0, 312, 494, 0, 0, 0, 0,
- 496, 0, 0, 0, 313, 314, 315, 316, 317, 318,
- 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
- 329, 330, 331, 332, 333, 341, 334, 0, 0, 0,
- 0, 312, 121, 123, 121, 121, 123, 123, 0, 0,
- 121, 313, 314, 315, 316, 317, 318, 319, 320, 321,
- 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
- 332, 333, 378, 334, 0, 0, 0, 0, 312, 0,
- 49, 50, 51, 52, 53, 54, 55, 56, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 0,
- 334, 348, 349, 350, 351, 0, 353, 354, 0, 356,
- 0, 358, 359, 360, 361, 362, 0, 364, 0, 370,
- 371, 372, 62, 63, 64, 65, 66, 67, 68, 69,
- 0, 0, 0, 0, 0, 82, 62, 63, 64, 65,
- 66, 67, 68, 69, 0, 0, 0, 0, 0, 104,
- 74, 75, 76, 77, 78, 79, 80, 0, 119, 120,
- 62, 63, 64, 65, 66, 67, 68, 69, 63, 64,
- 65, 66, 67, 68, 69, 64, 65, 66, 67, 68,
- 69, 226, 227, 228, 229, 230, 231, 239, 240, 241,
- 242, 243, 244
-};
-
-static const short int yycheck[] =
-{
- 3, 143, 24, 218, 1, 49, 4, 265, 294, 4,
- 4, 3, 0, 235, 49, 95, 3, 442, 3, 8,
- 9, 3, 3, 3, 279, 232, 96, 24, 6, 7,
- 8, 9, 10, 11, 249, 257, 80, 4, 4, 28,
- 29, 30, 4, 468, 4, 80, 253, 472, 85, 264,
- 305, 4, 338, 4, 95, 43, 80, 60, 95, 31,
- 49, 50, 51, 52, 53, 54, 55, 56, 71, 72,
- 73, 59, 497, 62, 63, 64, 65, 66, 67, 68,
- 69, 48, 95, 50, 82, 80, 3, 82, 48, 375,
- 50, 89, 307, 81, 82, 93, 84, 80, 93, 97,
- 4, 95, 97, 95, 70, 93, 68, 69, 95, 97,
- 95, 5, 95, 95, 95, 95, 80, 95, 12, 13,
- 14, 15, 3, 41, 42, 82, 43, 44, 45, 126,
- 127, 3, 3, 136, 137, 138, 139, 140, 141, 142,
- 97, 3, 145, 115, 48, 148, 50, 41, 42, 80,
- 147, 79, 46, 47, 82, 72, 73, 74, 75, 76,
- 77, 78, 4, 57, 58, 154, 60, 70, 95, 97,
- 51, 52, 53, 54, 55, 56, 4, 149, 150, 90,
- 91, 92, 71, 4, 156, 157, 3, 81, 82, 61,
- 62, 63, 64, 65, 66, 67, 80, 4, 195, 93,
- 172, 173, 460, 97, 16, 80, 48, 465, 50, 467,
- 3, 80, 79, 3, 95, 82, 205, 475, 190, 191,
- 48, 80, 50, 82, 82, 197, 198, 48, 200, 50,
- 97, 203, 204, 4, 93, 93, 208, 209, 97, 97,
- 498, 48, 214, 50, 85, 217, 95, 219, 95, 80,
- 272, 39, 40, 43, 44, 45, 278, 45, 98, 95,
- 72, 73, 74, 75, 76, 77, 78, 270, 95, 80,
- 95, 274, 275, 276, 277, 272, 95, 3, 250, 95,
- 95, 278, 72, 73, 74, 75, 76, 77, 78, 3,
- 80, 81, 95, 296, 95, 267, 51, 52, 53, 54,
- 55, 56, 4, 95, 446, 87, 95, 80, 81, 82,
- 80, 81, 82, 3, 95, 95, 288, 43, 44, 45,
- 93, 434, 238, 93, 97, 215, 3, 97, 300, 43,
- 44, 45, 245, 330, 334, -1, -1, 334, -1, -1,
- 95, 81, 82, 346, -1, -1, 72, 73, 74, 75,
- 76, 77, 78, 93, 80, 81, -1, 97, 72, 73,
- 74, 75, 76, 77, 78, 368, 43, 44, 45, 82,
- 373, -1, -1, 3, -1, -1, 89, -1, 3, -1,
- 93, -1, -1, -1, 97, -1, 16, 17, 18, 19,
- 88, 89, 90, 91, 92, 72, 73, 74, 75, 76,
- 77, 78, -1, -1, -1, 377, -1, -1, -1, 412,
- 382, 41, -1, 43, 44, 45, 46, 389, 43, 44,
- 45, 80, -1, 82, -1, 428, -1, -1, -1, -1,
- 89, -1, -1, 36, 93, -1, -1, 409, 97, 411,
- 43, 44, 445, 46, -1, 48, 418, 72, 73, 74,
- 75, 76, 77, 78, -1, 82, 83, -1, 461, -1,
- 432, 433, 89, -1, 436, 437, 93, 439, -1, 441,
- 97, 443, 444, -1, -1, -1, 448, 449, 481, 451,
- -1, 355, -1, 357, 456, 457, -1, -1, 460, 363,
- -1, -1, -1, 465, 466, 467, -1, -1, 470, -1,
- -1, -1, 474, 475, -1, 477, -1, -1, -1, -1,
- 384, 385, 386, 387, 486, 3, 390, 391, -1, 393,
- -1, 395, 396, 397, 398, 399, 3, 401, 16, 17,
- 18, 19, 406, 407, 408, -1, 82, 83, -1, 16,
- 17, 18, 19, 89, -1, -1, -1, 93, -1, -1,
- -1, 97, -1, 41, -1, 43, 44, 45, 46, 452,
- -1, -1, 455, -1, 41, -1, 43, 44, 45, 46,
- -1, 85, -1, -1, 88, 89, 469, -1, 92, 93,
- 473, 95, -1, 476, -1, -1, -1, 480, 4, -1,
- -1, 484, 485, -1, 10, 488, -1, -1, -1, -1,
- 493, -1, -1, -1, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 4, 42, -1, -1, -1,
- -1, 10, 84, 85, 86, 87, 88, 89, -1, -1,
- 92, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 4, 42, -1, -1, -1, -1, 10, -1,
- 85, 86, 87, 88, 89, 90, 91, 92, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, -1,
- 42, 313, 314, 315, 316, -1, 318, 319, -1, 321,
- -1, 323, 324, 325, 326, 327, -1, 329, -1, 331,
- 332, 333, 85, 86, 87, 88, 89, 90, 91, 92,
- -1, -1, -1, -1, -1, 98, 85, 86, 87, 88,
- 89, 90, 91, 92, -1, -1, -1, -1, -1, 98,
- 72, 73, 74, 75, 76, 77, 78, -1, 80, 81,
- 85, 86, 87, 88, 89, 90, 91, 92, 86, 87,
- 88, 89, 90, 91, 92, 87, 88, 89, 90, 91,
- 92, 6, 7, 8, 9, 10, 11, 51, 52, 53,
- 54, 55, 56
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const unsigned char yystos[] =
-{
- 0, 100, 0, 43, 59, 81, 82, 84, 93, 97,
- 101, 107, 108, 109, 147, 148, 149, 150, 155, 158,
- 159, 164, 167, 168, 173, 188, 189, 82, 89, 93,
- 97, 185, 186, 176, 186, 186, 5, 12, 13, 14,
- 15, 41, 42, 46, 47, 57, 58, 60, 173, 85,
- 86, 87, 88, 89, 90, 91, 92, 186, 186, 186,
- 95, 184, 85, 86, 87, 88, 89, 90, 91, 92,
- 3, 43, 44, 45, 72, 73, 74, 75, 76, 77,
- 78, 179, 98, 176, 178, 177, 178, 178, 177, 177,
- 176, 176, 178, 176, 169, 176, 186, 186, 186, 186,
- 186, 186, 186, 186, 98, 185, 186, 186, 186, 186,
- 186, 186, 186, 186, 165, 185, 185, 185, 3, 80,
- 81, 179, 180, 179, 180, 16, 113, 113, 180, 180,
- 3, 3, 180, 3, 180, 3, 61, 62, 63, 64,
- 65, 66, 67, 3, 180, 166, 184, 102, 96, 188,
- 188, 151, 156, 160, 161, 170, 185, 185, 185, 185,
- 185, 185, 185, 160, 4, 185, 4, 80, 103, 104,
- 188, 185, 184, 184, 4, 48, 50, 152, 4, 48,
- 50, 157, 4, 83, 162, 163, 186, 4, 68, 69,
- 184, 184, 4, 80, 95, 95, 187, 184, 184, 49,
- 80, 80, 49, 80, 80, 95, 3, 3, 184, 184,
- 80, 188, 95, 184, 184, 184, 153, 184, 3, 184,
- 83, 186, 71, 70, 184, 184, 6, 7, 8, 9,
- 10, 11, 105, 106, 110, 111, 184, 153, 3, 51,
- 52, 53, 54, 55, 56, 95, 154, 184, 156, 3,
- 184, 3, 80, 95, 106, 114, 114, 112, 151, 154,
- 183, 184, 4, 156, 3, 184, 171, 172, 106, 3,
- 16, 17, 18, 19, 41, 43, 44, 45, 46, 3,
- 114, 4, 4, 156, 183, 4, 70, 4, 184, 115,
- 185, 80, 80, 173, 79, 82, 97, 181, 182, 185,
- 185, 185, 185, 173, 115, 3, 4, 3, 4, 80,
- 184, 4, 10, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 42, 116, 182, 185, 85, 95,
- 184, 4, 115, 156, 95, 80, 139, 188, 139, 139,
- 139, 139, 122, 139, 139, 125, 139, 129, 139, 139,
- 139, 139, 139, 135, 139, 80, 81, 174, 175, 188,
- 139, 139, 139, 175, 98, 79, 182, 80, 4, 4,
- 80, 95, 185, 95, 117, 118, 119, 121, 138, 185,
- 123, 124, 138, 126, 138, 130, 131, 132, 133, 134,
- 138, 136, 95, 95, 185, 95, 120, 127, 128, 185,
- 182, 184, 95, 184, 138, 138, 138, 138, 184, 138,
- 138, 138, 138, 138, 138, 138, 138, 138, 95, 138,
- 138, 138, 184, 184, 80, 95, 141, 184, 185, 184,
- 184, 141, 142, 184, 184, 95, 3, 140, 184, 184,
- 181, 184, 184, 185, 160, 184, 184, 184, 95, 140,
- 145, 95, 4, 95, 140, 143, 184, 184, 146, 183,
- 184, 185, 144, 183, 184, 184, 183, 184, 181, 140,
- 184, 95, 181, 140, 184, 183, 184, 140, 184, 140,
- 185, 140, 140, 184, 140, 95, 140, 137, 181, 183
-};
-
-#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 (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
-while (0)
-
-
-#define YYTERROR 1
-#define YYERRCODE 256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
- If N is 0, then set CURRENT to the empty location which ends
- the previous symbol: RHS[0] (always defined). */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- do \
- if (N) \
- { \
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
- } \
- else \
- { \
- (Current).first_line = (Current).last_line = \
- YYRHSLOC (Rhs, 0).last_line; \
- (Current).first_column = (Current).last_column = \
- YYRHSLOC (Rhs, 0).last_column; \
- } \
- while (0)
-#endif
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
-
-#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#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 YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yysymprint (stderr, \
- Type, 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 int *bottom, short int *top)
-#else
-static void
-yy_stack_print (bottom, top)
- short int *bottom;
- short int *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 long int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
- 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 YY_SYMBOL_PRINT(Title, Type, 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
- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
-#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
-{
- 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
-{
- char *yyd = yydest;
- const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
- if (*yystr == '"')
- {
- size_t yyn = 0;
- char const *yyp = yystr;
-
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
- }
-
- if (! yyres)
- return yystrlen (yystr);
-
- return yystpcpy (yyres, yystr) - yyres;
-}
-# 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]);
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
-
-# ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
- switch (yytype)
- {
- default:
- break;
- }
- YYFPRINTF (yyoutput, ")");
-}
-
-#endif /* ! YYDEBUG */
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep)
- const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
-{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
-
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- 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 look-ahead symbol. */
-int yychar;
-
-/* The semantic value of the look-ahead 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
-{
-
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Look-ahead 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 int yyssa[YYINITDEPTH];
- short int *yyss = yyssa;
- short int *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- 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 int *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 (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
- &yystacksize);
-
- yyss = yyss1;
- yyvs = yyvs1;
- }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyexhaustedlab;
-# else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
- short int *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyexhaustedlab;
- 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 look-ahead token if we need one and don't already have one. */
-/* yyresume: */
-
- /* First try to decide what to do without reference to look-ahead token. */
-
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
- /* Not known => get a look-ahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead 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);
- YY_SYMBOL_PRINT ("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 look-ahead token. */
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
- /* 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 18:
-#line 184 "rcparse.y"
- {
- define_accelerator ((yyvsp[-5].id), &(yyvsp[-3].res_info), (yyvsp[-1].pacc));
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 19:
-#line 194 "rcparse.y"
- {
- (yyval.pacc) = NULL;
- }
- break;
-
- case 20:
-#line 198 "rcparse.y"
- {
- struct accelerator *a;
-
- a = (struct accelerator *) res_alloc (sizeof *a);
- *a = (yyvsp[0].acc);
- if ((yyvsp[-1].pacc) == NULL)
- (yyval.pacc) = a;
- else
- {
- struct accelerator **pp;
-
- for (pp = &(yyvsp[-1].pacc)->next; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = a;
- (yyval.pacc) = (yyvsp[-1].pacc);
- }
- }
- break;
-
- case 21:
-#line 219 "rcparse.y"
- {
- (yyval.acc) = (yyvsp[-1].acc);
- (yyval.acc).id = (yyvsp[0].il);
- }
- break;
-
- case 22:
-#line 224 "rcparse.y"
- {
- (yyval.acc) = (yyvsp[-3].acc);
- (yyval.acc).id = (yyvsp[-2].il);
- (yyval.acc).flags |= (yyvsp[0].is);
- if (((yyval.acc).flags & ACC_VIRTKEY) == 0
- && ((yyval.acc).flags & (ACC_SHIFT | ACC_CONTROL)) != 0)
- rcparse_warning (_("inappropriate modifiers for non-VIRTKEY"));
- }
- break;
-
- case 23:
-#line 236 "rcparse.y"
- {
- const char *s = (yyvsp[0].s);
- char ch;
-
- (yyval.acc).next = NULL;
- (yyval.acc).id = 0;
- ch = *s;
- if (ch != '^')
- (yyval.acc).flags = 0;
- else
- {
- (yyval.acc).flags = ACC_CONTROL | ACC_VIRTKEY;
- ++s;
- ch = *s;
- ch = TOUPPER (ch);
- }
- (yyval.acc).key = ch;
- if (s[1] != '\0')
- rcparse_warning (_("accelerator should only be one character"));
- }
- break;
-
- case 24:
-#line 257 "rcparse.y"
- {
- (yyval.acc).next = NULL;
- (yyval.acc).flags = 0;
- (yyval.acc).id = 0;
- (yyval.acc).key = (yyvsp[0].il);
- }
- break;
-
- case 25:
-#line 267 "rcparse.y"
- {
- (yyval.is) = (yyvsp[0].is);
- }
- break;
-
- case 26:
-#line 271 "rcparse.y"
- {
- (yyval.is) = (yyvsp[-2].is) | (yyvsp[0].is);
- }
- break;
-
- case 27:
-#line 276 "rcparse.y"
- {
- (yyval.is) = (yyvsp[-1].is) | (yyvsp[0].is);
- }
- break;
-
- case 28:
-#line 283 "rcparse.y"
- {
- (yyval.is) = ACC_VIRTKEY;
- }
- break;
-
- case 29:
-#line 287 "rcparse.y"
- {
- /* This is just the absence of VIRTKEY. */
- (yyval.is) = 0;
- }
- break;
-
- case 30:
-#line 292 "rcparse.y"
- {
- (yyval.is) = ACC_NOINVERT;
- }
- break;
-
- case 31:
-#line 296 "rcparse.y"
- {
- (yyval.is) = ACC_SHIFT;
- }
- break;
-
- case 32:
-#line 300 "rcparse.y"
- {
- (yyval.is) = ACC_CONTROL;
- }
- break;
-
- case 33:
-#line 304 "rcparse.y"
- {
- (yyval.is) = ACC_ALT;
- }
- break;
-
- case 34:
-#line 313 "rcparse.y"
- {
- define_bitmap ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s));
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 35:
-#line 325 "rcparse.y"
- {
- define_cursor ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s));
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 36:
-#line 338 "rcparse.y"
- {
- memset (&dialog, 0, sizeof dialog);
- dialog.x = (yyvsp[-3].il);
- dialog.y = (yyvsp[-2].il);
- dialog.width = (yyvsp[-1].il);
- dialog.height = (yyvsp[0].il);
- dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU;
- dialog.exstyle = (yyvsp[-4].il);
- dialog.menu.named = 1;
- dialog.class.named = 1;
- dialog.font = NULL;
- dialog.ex = NULL;
- dialog.controls = NULL;
- sub_res_info = (yyvsp[-5].res_info);
- style = 0;
- }
- break;
-
- case 37:
-#line 355 "rcparse.y"
- {
- define_dialog ((yyvsp[-12].id), &sub_res_info, &dialog);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 38:
-#line 363 "rcparse.y"
- {
- memset (&dialog, 0, sizeof dialog);
- dialog.x = (yyvsp[-3].il);
- dialog.y = (yyvsp[-2].il);
- dialog.width = (yyvsp[-1].il);
- dialog.height = (yyvsp[0].il);
- dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU;
- dialog.exstyle = (yyvsp[-4].il);
- dialog.menu.named = 1;
- dialog.class.named = 1;
- dialog.font = NULL;
- dialog.ex = ((struct dialog_ex *)
- res_alloc (sizeof (struct dialog_ex)));
- memset (dialog.ex, 0, sizeof (struct dialog_ex));
- dialog.controls = NULL;
- sub_res_info = (yyvsp[-5].res_info);
- style = 0;
- }
- break;
-
- case 39:
-#line 382 "rcparse.y"
- {
- define_dialog ((yyvsp[-12].id), &sub_res_info, &dialog);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 40:
-#line 390 "rcparse.y"
- {
- memset (&dialog, 0, sizeof dialog);
- dialog.x = (yyvsp[-4].il);
- dialog.y = (yyvsp[-3].il);
- dialog.width = (yyvsp[-2].il);
- dialog.height = (yyvsp[-1].il);
- dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU;
- dialog.exstyle = (yyvsp[-5].il);
- dialog.menu.named = 1;
- dialog.class.named = 1;
- dialog.font = NULL;
- dialog.ex = ((struct dialog_ex *)
- res_alloc (sizeof (struct dialog_ex)));
- memset (dialog.ex, 0, sizeof (struct dialog_ex));
- dialog.ex->help = (yyvsp[0].il);
- dialog.controls = NULL;
- sub_res_info = (yyvsp[-6].res_info);
- style = 0;
- }
- break;
-
- case 41:
-#line 410 "rcparse.y"
- {
- define_dialog ((yyvsp[-13].id), &sub_res_info, &dialog);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 42:
-#line 420 "rcparse.y"
- {
- (yyval.il) = 0;
- }
- break;
-
- case 43:
-#line 424 "rcparse.y"
- {
- (yyval.il) = (yyvsp[0].il);
- }
- break;
-
- case 45:
-#line 432 "rcparse.y"
- {
- dialog.style |= WS_CAPTION;
- style |= WS_CAPTION;
- unicode_from_ascii ((int *) NULL, &dialog.caption, (yyvsp[0].s));
- }
- break;
-
- case 46:
-#line 438 "rcparse.y"
- {
- dialog.class = (yyvsp[0].id);
- }
- break;
-
- case 47:
-#line 443 "rcparse.y"
- {
- dialog.style = style;
- }
- break;
-
- case 48:
-#line 447 "rcparse.y"
- {
- dialog.exstyle = (yyvsp[0].il);
- }
- break;
-
- case 49:
-#line 451 "rcparse.y"
- {
- res_string_to_id (& dialog.class, (yyvsp[0].s));
- }
- break;
-
- case 50:
-#line 455 "rcparse.y"
- {
- dialog.style |= DS_SETFONT;
- style |= DS_SETFONT;
- dialog.pointsize = (yyvsp[-2].il);
- unicode_from_ascii ((int *) NULL, &dialog.font, (yyvsp[0].s));
- if (dialog.ex != NULL)
- {
- dialog.ex->weight = 0;
- dialog.ex->italic = 0;
- dialog.ex->charset = 1;
- }
- }
- break;
-
- case 51:
-#line 468 "rcparse.y"
- {
- dialog.style |= DS_SETFONT;
- style |= DS_SETFONT;
- dialog.pointsize = (yyvsp[-3].il);
- unicode_from_ascii ((int *) NULL, &dialog.font, (yyvsp[-1].s));
- if (dialog.ex == NULL)
- rcparse_warning (_("extended FONT requires DIALOGEX"));
- else
- {
- dialog.ex->weight = (yyvsp[0].il);
- dialog.ex->italic = 0;
- dialog.ex->charset = 1;
- }
- }
- break;
-
- case 52:
-#line 483 "rcparse.y"
- {
- dialog.style |= DS_SETFONT;
- style |= DS_SETFONT;
- dialog.pointsize = (yyvsp[-4].il);
- unicode_from_ascii ((int *) NULL, &dialog.font, (yyvsp[-2].s));
- if (dialog.ex == NULL)
- rcparse_warning (_("extended FONT requires DIALOGEX"));
- else
- {
- dialog.ex->weight = (yyvsp[-1].il);
- dialog.ex->italic = (yyvsp[0].il);
- dialog.ex->charset = 1;
- }
- }
- break;
-
- case 53:
-#line 498 "rcparse.y"
- {
- dialog.style |= DS_SETFONT;
- style |= DS_SETFONT;
- dialog.pointsize = (yyvsp[-5].il);
- unicode_from_ascii ((int *) NULL, &dialog.font, (yyvsp[-3].s));
- if (dialog.ex == NULL)
- rcparse_warning (_("extended FONT requires DIALOGEX"));
- else
- {
- dialog.ex->weight = (yyvsp[-2].il);
- dialog.ex->italic = (yyvsp[-1].il);
- dialog.ex->charset = (yyvsp[0].il);
- }
- }
- break;
-
- case 54:
-#line 513 "rcparse.y"
- {
- dialog.menu = (yyvsp[0].id);
- }
- break;
-
- case 55:
-#line 517 "rcparse.y"
- {
- sub_res_info.characteristics = (yyvsp[0].il);
- }
- break;
-
- case 56:
-#line 521 "rcparse.y"
- {
- sub_res_info.language = (yyvsp[-1].il) | ((yyvsp[0].il) << SUBLANG_SHIFT);
- }
- break;
-
- case 57:
-#line 525 "rcparse.y"
- {
- sub_res_info.version = (yyvsp[0].il);
- }
- break;
-
- case 59:
-#line 533 "rcparse.y"
- {
- struct dialog_control **pp;
-
- for (pp = &dialog.controls; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = (yyvsp[0].dialog_control);
- }
- break;
-
- case 60:
-#line 544 "rcparse.y"
- {
- default_style = BS_AUTO3STATE | WS_TABSTOP;
- base_style = BS_AUTO3STATE;
- class = CTL_BUTTON;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 61:
-#line 551 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 62:
-#line 555 "rcparse.y"
- {
- default_style = BS_AUTOCHECKBOX | WS_TABSTOP;
- base_style = BS_AUTOCHECKBOX;
- class = CTL_BUTTON;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 63:
-#line 562 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 64:
-#line 566 "rcparse.y"
- {
- default_style = BS_AUTORADIOBUTTON | WS_TABSTOP;
- base_style = BS_AUTORADIOBUTTON;
- class = CTL_BUTTON;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 65:
-#line 573 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 66:
-#line 577 "rcparse.y"
- {
- default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- class = CTL_EDIT;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 67:
-#line 584 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- if (dialog.ex == NULL)
- rcparse_warning (_("BEDIT requires DIALOGEX"));
- res_string_to_id (&(yyval.dialog_control)->class, "BEDIT");
- }
- break;
-
- case 68:
-#line 591 "rcparse.y"
- {
- default_style = BS_CHECKBOX | WS_TABSTOP;
- base_style = BS_CHECKBOX | WS_TABSTOP;
- class = CTL_BUTTON;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 69:
-#line 598 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 70:
-#line 602 "rcparse.y"
- {
- /* This is as per MSDN documentation. With some (???)
- versions of MS rc.exe their is no default style. */
- default_style = CBS_SIMPLE | WS_TABSTOP;
- base_style = 0;
- class = CTL_COMBOBOX;
- res_text_field = res_null_text;
- }
- break;
-
- case 71:
-#line 611 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 72:
-#line 616 "rcparse.y"
- {
- (yyval.dialog_control) = define_control ((yyvsp[-9].id), (yyvsp[-8].il), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-2].il), (yyvsp[-7].il), style, (yyvsp[-1].il));
- if ((yyvsp[0].rcdata_item) != NULL)
- {
- if (dialog.ex == NULL)
- rcparse_warning (_("control data requires DIALOGEX"));
- (yyval.dialog_control)->data = (yyvsp[0].rcdata_item);
- }
- }
- break;
-
- case 73:
-#line 627 "rcparse.y"
- {
- (yyval.dialog_control) = define_control ((yyvsp[-10].id), (yyvsp[-9].il), (yyvsp[-6].il), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-8].il), style, (yyvsp[-2].il));
- if (dialog.ex == NULL)
- rcparse_warning (_("help ID requires DIALOGEX"));
- (yyval.dialog_control)->help = (yyvsp[-1].il);
- (yyval.dialog_control)->data = (yyvsp[0].rcdata_item);
- }
- break;
-
- case 74:
-#line 636 "rcparse.y"
- {
- (yyval.dialog_control) = define_control ((yyvsp[-10].id), (yyvsp[-9].il), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-2].il), 0, style, (yyvsp[-1].il));
- if ((yyvsp[0].rcdata_item) != NULL)
- {
- if (dialog.ex == NULL)
- rcparse_warning ("control data requires DIALOGEX");
- (yyval.dialog_control)->data = (yyvsp[0].rcdata_item);
- }
- (yyval.dialog_control)->class.named = 1;
- unicode_from_ascii (&(yyval.dialog_control)->class.u.n.length, &(yyval.dialog_control)->class.u.n.name, (yyvsp[-7].s));
- }
- break;
-
- case 75:
-#line 649 "rcparse.y"
- {
- (yyval.dialog_control) = define_control ((yyvsp[-11].id), (yyvsp[-10].il), (yyvsp[-6].il), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), 0, style, (yyvsp[-2].il));
- if (dialog.ex == NULL)
- rcparse_warning ("help ID requires DIALOGEX");
- (yyval.dialog_control)->help = (yyvsp[-1].il);
- (yyval.dialog_control)->data = (yyvsp[0].rcdata_item);
- (yyval.dialog_control)->class.named = 1;
- unicode_from_ascii (&(yyval.dialog_control)->class.u.n.length, &(yyval.dialog_control)->class.u.n.name, (yyvsp[-8].s));
- }
- break;
-
- case 76:
-#line 659 "rcparse.y"
- {
- default_style = SS_CENTER | WS_GROUP;
- base_style = SS_CENTER;
- class = CTL_STATIC;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 77:
-#line 666 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 78:
-#line 670 "rcparse.y"
- {
- default_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
- base_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
- class = CTL_BUTTON;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 79:
-#line 677 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 80:
-#line 681 "rcparse.y"
- {
- default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- class = CTL_EDIT;
- res_text_field = res_null_text;
- }
- break;
-
- case 81:
-#line 688 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 82:
-#line 692 "rcparse.y"
- {
- default_style = BS_GROUPBOX;
- base_style = BS_GROUPBOX;
- class = CTL_BUTTON;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 83:
-#line 699 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 84:
-#line 703 "rcparse.y"
- {
- default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- class = CTL_EDIT;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 85:
-#line 710 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- if (dialog.ex == NULL)
- rcparse_warning (_("IEDIT requires DIALOGEX"));
- res_string_to_id (&(yyval.dialog_control)->class, "HEDIT");
- }
- break;
-
- case 86:
-#line 717 "rcparse.y"
- {
- (yyval.dialog_control) = define_icon_control ((yyvsp[-4].id), (yyvsp[-3].il), (yyvsp[-2].il), (yyvsp[-1].il), 0, 0, 0, (yyvsp[0].rcdata_item),
- dialog.ex);
- }
- break;
-
- case 87:
-#line 723 "rcparse.y"
- {
- (yyval.dialog_control) = define_icon_control ((yyvsp[-6].id), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), 0, 0, 0, (yyvsp[0].rcdata_item),
- dialog.ex);
- }
- break;
-
- case 88:
-#line 729 "rcparse.y"
- {
- (yyval.dialog_control) = define_icon_control ((yyvsp[-8].id), (yyvsp[-7].il), (yyvsp[-6].il), (yyvsp[-5].il), style, (yyvsp[-1].il), 0, (yyvsp[0].rcdata_item),
- dialog.ex);
- }
- break;
-
- case 89:
-#line 735 "rcparse.y"
- {
- (yyval.dialog_control) = define_icon_control ((yyvsp[-9].id), (yyvsp[-8].il), (yyvsp[-7].il), (yyvsp[-6].il), style, (yyvsp[-2].il), (yyvsp[-1].il), (yyvsp[0].rcdata_item),
- dialog.ex);
- }
- break;
-
- case 90:
-#line 740 "rcparse.y"
- {
- default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- class = CTL_EDIT;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 91:
-#line 747 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- if (dialog.ex == NULL)
- rcparse_warning (_("IEDIT requires DIALOGEX"));
- res_string_to_id (&(yyval.dialog_control)->class, "IEDIT");
- }
- break;
-
- case 92:
-#line 754 "rcparse.y"
- {
- default_style = LBS_NOTIFY | WS_BORDER;
- base_style = LBS_NOTIFY | WS_BORDER;
- class = CTL_LISTBOX;
- res_text_field = res_null_text;
- }
- break;
-
- case 93:
-#line 761 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 94:
-#line 765 "rcparse.y"
- {
- default_style = SS_LEFT | WS_GROUP;
- base_style = SS_LEFT;
- class = CTL_STATIC;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 95:
-#line 772 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 96:
-#line 776 "rcparse.y"
- {
- default_style = BS_PUSHBOX | WS_TABSTOP;
- base_style = BS_PUSHBOX;
- class = CTL_BUTTON;
- }
- break;
-
- case 97:
-#line 782 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 98:
-#line 786 "rcparse.y"
- {
- default_style = BS_PUSHBUTTON | WS_TABSTOP;
- base_style = BS_PUSHBUTTON | WS_TABSTOP;
- class = CTL_BUTTON;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 99:
-#line 793 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 100:
-#line 797 "rcparse.y"
- {
- default_style = BS_RADIOBUTTON | WS_TABSTOP;
- base_style = BS_RADIOBUTTON;
- class = CTL_BUTTON;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 101:
-#line 804 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 102:
-#line 808 "rcparse.y"
- {
- default_style = SS_RIGHT | WS_GROUP;
- base_style = SS_RIGHT;
- class = CTL_STATIC;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 103:
-#line 815 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 104:
-#line 819 "rcparse.y"
- {
- default_style = SBS_HORZ;
- base_style = 0;
- class = CTL_SCROLLBAR;
- res_text_field = res_null_text;
- }
- break;
-
- case 105:
-#line 826 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 106:
-#line 830 "rcparse.y"
- {
- default_style = BS_3STATE | WS_TABSTOP;
- base_style = BS_3STATE;
- class = CTL_BUTTON;
- res_text_field = (yyvsp[0].id);
- }
- break;
-
- case 107:
-#line 837 "rcparse.y"
- {
- (yyval.dialog_control) = (yyvsp[0].dialog_control);
- }
- break;
-
- case 108:
-#line 842 "rcparse.y"
- { style = WS_CHILD | WS_VISIBLE; }
- break;
-
- case 109:
-#line 844 "rcparse.y"
- {
- (yyval.dialog_control) = define_control ((yyvsp[-13].id), (yyvsp[-12].il), (yyvsp[-10].il), (yyvsp[-8].il), (yyvsp[-6].il), (yyvsp[-4].il), CTL_BUTTON,
- style, (yyvsp[0].il));
- }
- break;
-
- case 110:
-#line 859 "rcparse.y"
- {
- (yyval.dialog_control) = define_control (res_text_field, (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-2].il), (yyvsp[-1].il), class,
- default_style | WS_CHILD | WS_VISIBLE, 0);
- if ((yyvsp[0].rcdata_item) != NULL)
- {
- if (dialog.ex == NULL)
- rcparse_warning (_("control data requires DIALOGEX"));
- (yyval.dialog_control)->data = (yyvsp[0].rcdata_item);
- }
- }
- break;
-
- case 111:
-#line 871 "rcparse.y"
- {
- (yyval.dialog_control) = define_control (res_text_field, (yyvsp[-7].il), (yyvsp[-6].il), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), class, style, (yyvsp[-1].il));
- if ((yyvsp[0].rcdata_item) != NULL)
- {
- if (dialog.ex == NULL)
- rcparse_warning (_("control data requires DIALOGEX"));
- (yyval.dialog_control)->data = (yyvsp[0].rcdata_item);
- }
- }
- break;
-
- case 112:
-#line 882 "rcparse.y"
- {
- (yyval.dialog_control) = define_control (res_text_field, (yyvsp[-8].il), (yyvsp[-7].il), (yyvsp[-6].il), (yyvsp[-5].il), (yyvsp[-4].il), class, style, (yyvsp[-2].il));
- if (dialog.ex == NULL)
- rcparse_warning (_("help ID requires DIALOGEX"));
- (yyval.dialog_control)->help = (yyvsp[-1].il);
- (yyval.dialog_control)->data = (yyvsp[0].rcdata_item);
- }
- break;
-
- case 113:
-#line 893 "rcparse.y"
- {
- res_string_to_id (&(yyval.id), "");
- }
- break;
-
- case 114:
-#line 897 "rcparse.y"
- {
- (yyval.id).named = 0;
- (yyval.id).u.id = (yyvsp[-1].il);
- }
- break;
-
- case 115:
-#line 902 "rcparse.y"
- {
- res_string_to_id (&(yyval.id), (yyvsp[0].s));
- }
- break;
-
- case 116:
-#line 906 "rcparse.y"
- {
- res_string_to_id (&(yyval.id), (yyvsp[-1].s));
- }
- break;
-
- case 117:
-#line 913 "rcparse.y"
- {
- (yyval.rcdata_item) = NULL;
- }
- break;
-
- case 118:
-#line 917 "rcparse.y"
- {
- (yyval.rcdata_item) = (yyvsp[-1].rcdata).first;
- }
- break;
-
- case 119:
-#line 926 "rcparse.y"
- { style = WS_CHILD | WS_VISIBLE; }
- break;
-
- case 121:
-#line 932 "rcparse.y"
- { style = SS_ICON | WS_CHILD | WS_VISIBLE; }
- break;
-
- case 123:
-#line 938 "rcparse.y"
- { style = base_style | WS_CHILD | WS_VISIBLE; }
- break;
-
- case 125:
-#line 946 "rcparse.y"
- {
- define_font ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s));
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 126:
-#line 958 "rcparse.y"
- {
- define_icon ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s));
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 127:
-#line 971 "rcparse.y"
- {
- language = (yyvsp[-1].il) | ((yyvsp[0].il) << SUBLANG_SHIFT);
- }
- break;
-
- case 128:
-#line 980 "rcparse.y"
- {
- define_menu ((yyvsp[-5].id), &(yyvsp[-3].res_info), (yyvsp[-1].menuitem));
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 129:
-#line 990 "rcparse.y"
- {
- (yyval.menuitem) = NULL;
- }
- break;
-
- case 130:
-#line 994 "rcparse.y"
- {
- if ((yyvsp[-1].menuitem) == NULL)
- (yyval.menuitem) = (yyvsp[0].menuitem);
- else
- {
- struct menuitem **pp;
-
- for (pp = &(yyvsp[-1].menuitem)->next; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = (yyvsp[0].menuitem);
- (yyval.menuitem) = (yyvsp[-1].menuitem);
- }
- }
- break;
-
- case 131:
-#line 1011 "rcparse.y"
- {
- (yyval.menuitem) = define_menuitem ((yyvsp[-2].s), (yyvsp[-1].il), (yyvsp[0].is), 0, 0, NULL);
- }
- break;
-
- case 132:
-#line 1015 "rcparse.y"
- {
- (yyval.menuitem) = define_menuitem (NULL, 0, 0, 0, 0, NULL);
- }
- break;
-
- case 133:
-#line 1019 "rcparse.y"
- {
- (yyval.menuitem) = define_menuitem ((yyvsp[-4].s), 0, (yyvsp[-3].is), 0, 0, (yyvsp[-1].menuitem));
- }
- break;
-
- case 134:
-#line 1026 "rcparse.y"
- {
- (yyval.is) = 0;
- }
- break;
-
- case 135:
-#line 1030 "rcparse.y"
- {
- (yyval.is) = (yyvsp[-2].is) | (yyvsp[0].is);
- }
- break;
-
- case 136:
-#line 1034 "rcparse.y"
- {
- (yyval.is) = (yyvsp[-1].is) | (yyvsp[0].is);
- }
- break;
-
- case 137:
-#line 1041 "rcparse.y"
- {
- (yyval.is) = MENUITEM_CHECKED;
- }
- break;
-
- case 138:
-#line 1045 "rcparse.y"
- {
- (yyval.is) = MENUITEM_GRAYED;
- }
- break;
-
- case 139:
-#line 1049 "rcparse.y"
- {
- (yyval.is) = MENUITEM_HELP;
- }
- break;
-
- case 140:
-#line 1053 "rcparse.y"
- {
- (yyval.is) = MENUITEM_INACTIVE;
- }
- break;
-
- case 141:
-#line 1057 "rcparse.y"
- {
- (yyval.is) = MENUITEM_MENUBARBREAK;
- }
- break;
-
- case 142:
-#line 1061 "rcparse.y"
- {
- (yyval.is) = MENUITEM_MENUBREAK;
- }
- break;
-
- case 143:
-#line 1070 "rcparse.y"
- {
- define_menu ((yyvsp[-5].id), &(yyvsp[-3].res_info), (yyvsp[-1].menuitem));
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 144:
-#line 1080 "rcparse.y"
- {
- (yyval.menuitem) = NULL;
- }
- break;
-
- case 145:
-#line 1084 "rcparse.y"
- {
- if ((yyvsp[-1].menuitem) == NULL)
- (yyval.menuitem) = (yyvsp[0].menuitem);
- else
- {
- struct menuitem **pp;
-
- for (pp = &(yyvsp[-1].menuitem)->next; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = (yyvsp[0].menuitem);
- (yyval.menuitem) = (yyvsp[-1].menuitem);
- }
- }
- break;
-
- case 146:
-#line 1101 "rcparse.y"
- {
- (yyval.menuitem) = define_menuitem ((yyvsp[0].s), 0, 0, 0, 0, NULL);
- }
- break;
-
- case 147:
-#line 1105 "rcparse.y"
- {
- (yyval.menuitem) = define_menuitem ((yyvsp[-1].s), (yyvsp[0].il), 0, 0, 0, NULL);
- }
- break;
-
- case 148:
-#line 1109 "rcparse.y"
- {
- (yyval.menuitem) = define_menuitem ((yyvsp[-3].s), (yyvsp[-2].il), (yyvsp[-1].il), (yyvsp[0].il), 0, NULL);
- }
- break;
-
- case 149:
-#line 1113 "rcparse.y"
- {
- (yyval.menuitem) = define_menuitem (NULL, 0, 0, 0, 0, NULL);
- }
- break;
-
- case 150:
-#line 1117 "rcparse.y"
- {
- (yyval.menuitem) = define_menuitem ((yyvsp[-3].s), 0, 0, 0, 0, (yyvsp[-1].menuitem));
- }
- break;
-
- case 151:
-#line 1121 "rcparse.y"
- {
- (yyval.menuitem) = define_menuitem ((yyvsp[-4].s), (yyvsp[-3].il), 0, 0, 0, (yyvsp[-1].menuitem));
- }
- break;
-
- case 152:
-#line 1125 "rcparse.y"
- {
- (yyval.menuitem) = define_menuitem ((yyvsp[-5].s), (yyvsp[-4].il), (yyvsp[-3].il), 0, 0, (yyvsp[-1].menuitem));
- }
- break;
-
- case 153:
-#line 1130 "rcparse.y"
- {
- (yyval.menuitem) = define_menuitem ((yyvsp[-7].s), (yyvsp[-6].il), (yyvsp[-5].il), (yyvsp[-4].il), (yyvsp[-3].il), (yyvsp[-1].menuitem));
- }
- break;
-
- case 154:
-#line 1139 "rcparse.y"
- {
- define_messagetable ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s));
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 155:
-#line 1151 "rcparse.y"
- {
- define_rcdata ((yyvsp[-5].id), &(yyvsp[-3].res_info), (yyvsp[-1].rcdata).first);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 156:
-#line 1158 "rcparse.y"
- {
- define_rcdata_file ((yyvsp[-3].id), &(yyvsp[-1].res_info), (yyvsp[0].s));
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 157:
-#line 1170 "rcparse.y"
- {
- rcparse_rcdata ();
- }
- break;
-
- case 158:
-#line 1174 "rcparse.y"
- {
- rcparse_normal ();
- (yyval.rcdata) = (yyvsp[0].rcdata);
- }
- break;
-
- case 159:
-#line 1182 "rcparse.y"
- {
- (yyval.rcdata).first = NULL;
- (yyval.rcdata).last = NULL;
- }
- break;
-
- case 160:
-#line 1187 "rcparse.y"
- {
- (yyval.rcdata) = (yyvsp[0].rcdata);
- }
- break;
-
- case 161:
-#line 1194 "rcparse.y"
- {
- struct rcdata_item *ri;
-
- ri = define_rcdata_string ((yyvsp[0].ss).s, (yyvsp[0].ss).length);
- (yyval.rcdata).first = ri;
- (yyval.rcdata).last = ri;
- }
- break;
-
- case 162:
-#line 1202 "rcparse.y"
- {
- struct rcdata_item *ri;
-
- ri = define_rcdata_number ((yyvsp[0].i).val, (yyvsp[0].i).dword);
- (yyval.rcdata).first = ri;
- (yyval.rcdata).last = ri;
- }
- break;
-
- case 163:
-#line 1210 "rcparse.y"
- {
- struct rcdata_item *ri;
-
- ri = define_rcdata_string ((yyvsp[0].ss).s, (yyvsp[0].ss).length);
- (yyval.rcdata).first = (yyvsp[-2].rcdata).first;
- (yyvsp[-2].rcdata).last->next = ri;
- (yyval.rcdata).last = ri;
- }
- break;
-
- case 164:
-#line 1219 "rcparse.y"
- {
- struct rcdata_item *ri;
-
- ri = define_rcdata_number ((yyvsp[0].i).val, (yyvsp[0].i).dword);
- (yyval.rcdata).first = (yyvsp[-2].rcdata).first;
- (yyvsp[-2].rcdata).last->next = ri;
- (yyval.rcdata).last = ri;
- }
- break;
-
- case 165:
-#line 1233 "rcparse.y"
- { sub_res_info = (yyvsp[-1].res_info); }
- break;
-
- case 168:
-#line 1240 "rcparse.y"
- {
- define_stringtable (&sub_res_info, (yyvsp[-1].il), (yyvsp[0].s));
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 169:
-#line 1247 "rcparse.y"
- {
- define_stringtable (&sub_res_info, (yyvsp[-2].il), (yyvsp[0].s));
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 170:
-#line 1260 "rcparse.y"
- {
- define_user_data ((yyvsp[-5].id), (yyvsp[-4].id), &(yyvsp[-3].res_info), (yyvsp[-1].rcdata).first);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 171:
-#line 1267 "rcparse.y"
- {
- define_user_file ((yyvsp[-3].id), (yyvsp[-2].id), &(yyvsp[-1].res_info), (yyvsp[0].s));
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 172:
-#line 1279 "rcparse.y"
- {
- define_versioninfo ((yyvsp[-5].id), language, (yyvsp[-3].fixver), (yyvsp[-1].verinfo));
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- break;
-
- case 173:
-#line 1289 "rcparse.y"
- {
- (yyval.fixver) = ((struct fixed_versioninfo *)
- res_alloc (sizeof (struct fixed_versioninfo)));
- memset ((yyval.fixver), 0, sizeof (struct fixed_versioninfo));
- }
- break;
-
- case 174:
-#line 1295 "rcparse.y"
- {
- (yyvsp[-5].fixver)->file_version_ms = ((yyvsp[-3].il) << 16) | (yyvsp[-2].il);
- (yyvsp[-5].fixver)->file_version_ls = ((yyvsp[-1].il) << 16) | (yyvsp[0].il);
- (yyval.fixver) = (yyvsp[-5].fixver);
- }
- break;
-
- case 175:
-#line 1301 "rcparse.y"
- {
- (yyvsp[-5].fixver)->product_version_ms = ((yyvsp[-3].il) << 16) | (yyvsp[-2].il);
- (yyvsp[-5].fixver)->product_version_ls = ((yyvsp[-1].il) << 16) | (yyvsp[0].il);
- (yyval.fixver) = (yyvsp[-5].fixver);
- }
- break;
-
- case 176:
-#line 1307 "rcparse.y"
- {
- (yyvsp[-2].fixver)->file_flags_mask = (yyvsp[0].il);
- (yyval.fixver) = (yyvsp[-2].fixver);
- }
- break;
-
- case 177:
-#line 1312 "rcparse.y"
- {
- (yyvsp[-2].fixver)->file_flags = (yyvsp[0].il);
- (yyval.fixver) = (yyvsp[-2].fixver);
- }
- break;
-
- case 178:
-#line 1317 "rcparse.y"
- {
- (yyvsp[-2].fixver)->file_os = (yyvsp[0].il);
- (yyval.fixver) = (yyvsp[-2].fixver);
- }
- break;
-
- case 179:
-#line 1322 "rcparse.y"
- {
- (yyvsp[-2].fixver)->file_type = (yyvsp[0].il);
- (yyval.fixver) = (yyvsp[-2].fixver);
- }
- break;
-
- case 180:
-#line 1327 "rcparse.y"
- {
- (yyvsp[-2].fixver)->file_subtype = (yyvsp[0].il);
- (yyval.fixver) = (yyvsp[-2].fixver);
- }
- break;
-
- case 181:
-#line 1341 "rcparse.y"
- {
- (yyval.verinfo) = NULL;
- }
- break;
-
- case 182:
-#line 1345 "rcparse.y"
- {
- (yyval.verinfo) = append_ver_stringfileinfo ((yyvsp[-7].verinfo), (yyvsp[-4].s), (yyvsp[-2].verstring));
- }
- break;
-
- case 183:
-#line 1349 "rcparse.y"
- {
- (yyval.verinfo) = append_ver_varfileinfo ((yyvsp[-6].verinfo), (yyvsp[-2].s), (yyvsp[-1].vervar));
- }
- break;
-
- case 184:
-#line 1356 "rcparse.y"
- {
- (yyval.verstring) = NULL;
- }
- break;
-
- case 185:
-#line 1360 "rcparse.y"
- {
- (yyval.verstring) = append_verval ((yyvsp[-4].verstring), (yyvsp[-2].s), (yyvsp[0].s));
- }
- break;
-
- case 186:
-#line 1367 "rcparse.y"
- {
- (yyval.vervar) = NULL;
- }
- break;
-
- case 187:
-#line 1371 "rcparse.y"
- {
- (yyval.vervar) = append_vertrans ((yyvsp[-2].vervar), (yyvsp[-1].il), (yyvsp[0].il));
- }
- break;
-
- case 188:
-#line 1380 "rcparse.y"
- {
- (yyval.id).named = 0;
- (yyval.id).u.id = (yyvsp[0].il);
- }
- break;
-
- case 189:
-#line 1385 "rcparse.y"
- {
- char *copy, *s;
-
- /* It seems that resource ID's are forced to upper case. */
- copy = xstrdup ((yyvsp[0].s));
- for (s = copy; *s != '\0'; s++)
- *s = TOUPPER (*s);
- res_string_to_id (&(yyval.id), copy);
- free (copy);
- }
- break;
-
- case 190:
-#line 1401 "rcparse.y"
- {
- (yyval.s) = (yyvsp[0].s);
- }
- break;
-
- case 191:
-#line 1405 "rcparse.y"
- {
- (yyval.s) = (yyvsp[-1].s);
- }
- break;
-
- case 192:
-#line 1409 "rcparse.y"
- {
- (yyval.s) = (yyvsp[-1].s);
- }
- break;
-
- case 193:
-#line 1417 "rcparse.y"
- {
- (yyval.id).named = 0;
- (yyval.id).u.id = (yyvsp[-1].il);
- }
- break;
-
- case 194:
-#line 1422 "rcparse.y"
- {
- char *copy, *s;
-
- /* It seems that resource ID's are forced to upper case. */
- copy = xstrdup ((yyvsp[0].s));
- for (s = copy; *s != '\0'; s++)
- *s = TOUPPER (*s);
- res_string_to_id (&(yyval.id), copy);
- free (copy);
- }
- break;
-
- case 195:
-#line 1439 "rcparse.y"
- {
- memset (&(yyval.res_info), 0, sizeof (struct res_res_info));
- (yyval.res_info).language = language;
- /* FIXME: Is this the right default? */
- (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE;
- }
- break;
-
- case 196:
-#line 1446 "rcparse.y"
- {
- (yyval.res_info) = (yyvsp[-1].res_info);
- (yyval.res_info).memflags |= (yyvsp[0].memflags).on;
- (yyval.res_info).memflags &=~ (yyvsp[0].memflags).off;
- }
- break;
-
- case 197:
-#line 1452 "rcparse.y"
- {
- (yyval.res_info) = (yyvsp[-2].res_info);
- (yyval.res_info).characteristics = (yyvsp[0].il);
- }
- break;
-
- case 198:
-#line 1457 "rcparse.y"
- {
- (yyval.res_info) = (yyvsp[-3].res_info);
- (yyval.res_info).language = (yyvsp[-1].il) | ((yyvsp[0].il) << SUBLANG_SHIFT);
- }
- break;
-
- case 199:
-#line 1462 "rcparse.y"
- {
- (yyval.res_info) = (yyvsp[-2].res_info);
- (yyval.res_info).version = (yyvsp[0].il);
- }
- break;
-
- case 200:
-#line 1472 "rcparse.y"
- {
- memset (&(yyval.res_info), 0, sizeof (struct res_res_info));
- (yyval.res_info).language = language;
- (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_DISCARDABLE;
- }
- break;
-
- case 201:
-#line 1478 "rcparse.y"
- {
- (yyval.res_info) = (yyvsp[-1].res_info);
- (yyval.res_info).memflags |= (yyvsp[0].memflags).on;
- (yyval.res_info).memflags &=~ (yyvsp[0].memflags).off;
- }
- break;
-
- case 202:
-#line 1489 "rcparse.y"
- {
- memset (&(yyval.res_info), 0, sizeof (struct res_res_info));
- (yyval.res_info).language = language;
- (yyval.res_info).memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE;
- }
- break;
-
- case 203:
-#line 1495 "rcparse.y"
- {
- (yyval.res_info) = (yyvsp[-1].res_info);
- (yyval.res_info).memflags |= (yyvsp[0].memflags).on;
- (yyval.res_info).memflags &=~ (yyvsp[0].memflags).off;
- }
- break;
-
- case 204:
-#line 1507 "rcparse.y"
- {
- (yyval.memflags).on = MEMFLAG_MOVEABLE;
- (yyval.memflags).off = 0;
- }
- break;
-
- case 205:
-#line 1512 "rcparse.y"
- {
- (yyval.memflags).on = 0;
- (yyval.memflags).off = MEMFLAG_MOVEABLE;
- }
- break;
-
- case 206:
-#line 1517 "rcparse.y"
- {
- (yyval.memflags).on = MEMFLAG_PURE;
- (yyval.memflags).off = 0;
- }
- break;
-
- case 207:
-#line 1522 "rcparse.y"
- {
- (yyval.memflags).on = 0;
- (yyval.memflags).off = MEMFLAG_PURE;
- }
- break;
-
- case 208:
-#line 1527 "rcparse.y"
- {
- (yyval.memflags).on = MEMFLAG_PRELOAD;
- (yyval.memflags).off = 0;
- }
- break;
-
- case 209:
-#line 1532 "rcparse.y"
- {
- (yyval.memflags).on = 0;
- (yyval.memflags).off = MEMFLAG_PRELOAD;
- }
- break;
-
- case 210:
-#line 1537 "rcparse.y"
- {
- (yyval.memflags).on = MEMFLAG_DISCARDABLE;
- (yyval.memflags).off = 0;
- }
- break;
-
- case 211:
-#line 1547 "rcparse.y"
- {
- (yyval.s) = (yyvsp[0].s);
- }
- break;
-
- case 212:
-#line 1551 "rcparse.y"
- {
- (yyval.s) = (yyvsp[0].s);
- }
- break;
-
- case 213:
-#line 1568 "rcparse.y"
- {
- style |= (yyvsp[0].il);
- }
- break;
-
- case 214:
-#line 1572 "rcparse.y"
- {
- style &=~ (yyvsp[0].il);
- }
- break;
-
- case 215:
-#line 1576 "rcparse.y"
- {
- style |= (yyvsp[0].il);
- }
- break;
-
- case 216:
-#line 1580 "rcparse.y"
- {
- style &=~ (yyvsp[0].il);
- }
- break;
-
- case 217:
-#line 1587 "rcparse.y"
- {
- (yyval.il) = (yyvsp[0].i).val;
- }
- break;
-
- case 218:
-#line 1591 "rcparse.y"
- {
- (yyval.il) = (yyvsp[-1].il);
- }
- break;
-
- case 219:
-#line 1600 "rcparse.y"
- {
- (yyval.il) = 0;
- }
- break;
-
- case 220:
-#line 1604 "rcparse.y"
- {
- (yyval.il) = (yyvsp[0].il);
- }
- break;
-
- case 221:
-#line 1613 "rcparse.y"
- {
- (yyval.il) = (yyvsp[0].il);
- }
- break;
-
- case 222:
-#line 1622 "rcparse.y"
- {
- (yyval.il) = (yyvsp[0].i).val;
- }
- break;
-
- case 223:
-#line 1631 "rcparse.y"
- {
- (yyval.i) = (yyvsp[0].i);
- }
- break;
-
- case 224:
-#line 1635 "rcparse.y"
- {
- (yyval.i) = (yyvsp[-1].i);
- }
- break;
-
- case 225:
-#line 1639 "rcparse.y"
- {
- (yyval.i).val = ~ (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[0].i).dword;
- }
- break;
-
- case 226:
-#line 1644 "rcparse.y"
- {
- (yyval.i).val = - (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[0].i).dword;
- }
- break;
-
- case 227:
-#line 1649 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val * (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 228:
-#line 1654 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val / (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 229:
-#line 1659 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val % (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 230:
-#line 1664 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val + (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 231:
-#line 1669 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val - (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 232:
-#line 1674 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val & (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 233:
-#line 1679 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val ^ (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 234:
-#line 1684 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val | (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 235:
-#line 1695 "rcparse.y"
- {
- (yyval.il) = (yyvsp[0].il);
- }
- break;
-
- case 236:
-#line 1704 "rcparse.y"
- {
- (yyval.il) = (yyvsp[0].i).val;
- }
- break;
-
- case 237:
-#line 1715 "rcparse.y"
- {
- (yyval.i) = (yyvsp[0].i);
- }
- break;
-
- case 238:
-#line 1719 "rcparse.y"
- {
- (yyval.i) = (yyvsp[-1].i);
- }
- break;
-
- case 239:
-#line 1723 "rcparse.y"
- {
- (yyval.i).val = ~ (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[0].i).dword;
- }
- break;
-
- case 240:
-#line 1728 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val * (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 241:
-#line 1733 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val / (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 242:
-#line 1738 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val % (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 243:
-#line 1743 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val + (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 244:
-#line 1748 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val - (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 245:
-#line 1753 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val & (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 246:
-#line 1758 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val ^ (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
- case 247:
-#line 1763 "rcparse.y"
- {
- (yyval.i).val = (yyvsp[-2].i).val | (yyvsp[0].i).val;
- (yyval.i).dword = (yyvsp[-2].i).dword || (yyvsp[0].i).dword;
- }
- break;
-
-
- default: break;
- }
-
-/* Line 1126 of yacc.c. */
-#line 3867 "rcparse.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)
- {
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- char *yymsg = 0;
-# define YYERROR_VERBOSE_ARGS_MAXIMUM 5
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-#if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-#endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* 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 = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= yysize1 < yysize;
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
-
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= yysize1 < yysize;
- yysize = yysize1;
-
- if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
- yymsg = (char *) YYSTACK_ALLOC (yysize);
- if (yymsg)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yymsg;
- int yyi = 0;
- while ((*yyp = *yyf))
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- yyerror (yymsg);
- YYSTACK_FREE (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- goto yyexhaustedlab;
- }
- }
- else
-#endif /* YYERROR_VERBOSE */
- yyerror (YY_("syntax error"));
- }
-
-
-
- if (yyerrstatus == 3)
- {
- /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
- else
- {
- yydestruct ("Error: discarding", yytoken, &yylval);
- yychar = YYEMPTY;
- }
- }
-
- /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
-
- /* Pacify compilers like GCC when the user code never invokes
- YYERROR and the label yyerrorlab therefore never appears in user
- code. */
- if (0)
- goto yyerrorlab;
-
-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;
-
-
- yydestruct ("Error: popping", yystos[yystate], yyvsp);
- YYPOPSTACK;
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- *++yyvsp = yylval;
-
-
- /* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-#ifndef yyoverflow
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
-yyexhaustedlab:
- yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
-#endif
-
-yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
- while (yyssp != yyss)
- {
- yydestruct ("Cleanup: popping",
- yystos[*yyssp], yyvsp);
- YYPOPSTACK;
- }
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
-#endif
- return yyresult;
-}
-
-
-#line 1769 "rcparse.y"
-
-
-/* Set the language from the command line. */
-
-void
-rcparse_set_language (int lang)
-{
- language = lang;
-}
-
diff --git a/binutils-2.17/binutils/rcparse.h b/binutils-2.17/binutils/rcparse.h
deleted file mode 100644
index f61d200a..00000000
--- a/binutils-2.17/binutils/rcparse.h
+++ /dev/null
@@ -1,255 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.1. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, 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 {
- BEG = 258,
- END = 259,
- ACCELERATORS = 260,
- VIRTKEY = 261,
- ASCII = 262,
- NOINVERT = 263,
- SHIFT = 264,
- CONTROL = 265,
- ALT = 266,
- BITMAP = 267,
- CURSOR = 268,
- DIALOG = 269,
- DIALOGEX = 270,
- EXSTYLE = 271,
- CAPTION = 272,
- CLASS = 273,
- STYLE = 274,
- AUTO3STATE = 275,
- AUTOCHECKBOX = 276,
- AUTORADIOBUTTON = 277,
- CHECKBOX = 278,
- COMBOBOX = 279,
- CTEXT = 280,
- DEFPUSHBUTTON = 281,
- EDITTEXT = 282,
- GROUPBOX = 283,
- LISTBOX = 284,
- LTEXT = 285,
- PUSHBOX = 286,
- PUSHBUTTON = 287,
- RADIOBUTTON = 288,
- RTEXT = 289,
- SCROLLBAR = 290,
- STATE3 = 291,
- USERBUTTON = 292,
- BEDIT = 293,
- HEDIT = 294,
- IEDIT = 295,
- FONT = 296,
- ICON = 297,
- LANGUAGE = 298,
- CHARACTERISTICS = 299,
- VERSIONK = 300,
- MENU = 301,
- MENUEX = 302,
- MENUITEM = 303,
- SEPARATOR = 304,
- POPUP = 305,
- CHECKED = 306,
- GRAYED = 307,
- HELP = 308,
- INACTIVE = 309,
- MENUBARBREAK = 310,
- MENUBREAK = 311,
- MESSAGETABLE = 312,
- RCDATA = 313,
- STRINGTABLE = 314,
- VERSIONINFO = 315,
- FILEVERSION = 316,
- PRODUCTVERSION = 317,
- FILEFLAGSMASK = 318,
- FILEFLAGS = 319,
- FILEOS = 320,
- FILETYPE = 321,
- FILESUBTYPE = 322,
- BLOCKSTRINGFILEINFO = 323,
- BLOCKVARFILEINFO = 324,
- VALUE = 325,
- BLOCK = 326,
- MOVEABLE = 327,
- FIXED = 328,
- PURE = 329,
- IMPURE = 330,
- PRELOAD = 331,
- LOADONCALL = 332,
- DISCARDABLE = 333,
- NOT = 334,
- QUOTEDSTRING = 335,
- STRING = 336,
- NUMBER = 337,
- SIZEDSTRING = 338,
- IGNORED_TOKEN = 339,
- NEG = 340
- };
-#endif
-/* Tokens. */
-#define BEG 258
-#define END 259
-#define ACCELERATORS 260
-#define VIRTKEY 261
-#define ASCII 262
-#define NOINVERT 263
-#define SHIFT 264
-#define CONTROL 265
-#define ALT 266
-#define BITMAP 267
-#define CURSOR 268
-#define DIALOG 269
-#define DIALOGEX 270
-#define EXSTYLE 271
-#define CAPTION 272
-#define CLASS 273
-#define STYLE 274
-#define AUTO3STATE 275
-#define AUTOCHECKBOX 276
-#define AUTORADIOBUTTON 277
-#define CHECKBOX 278
-#define COMBOBOX 279
-#define CTEXT 280
-#define DEFPUSHBUTTON 281
-#define EDITTEXT 282
-#define GROUPBOX 283
-#define LISTBOX 284
-#define LTEXT 285
-#define PUSHBOX 286
-#define PUSHBUTTON 287
-#define RADIOBUTTON 288
-#define RTEXT 289
-#define SCROLLBAR 290
-#define STATE3 291
-#define USERBUTTON 292
-#define BEDIT 293
-#define HEDIT 294
-#define IEDIT 295
-#define FONT 296
-#define ICON 297
-#define LANGUAGE 298
-#define CHARACTERISTICS 299
-#define VERSIONK 300
-#define MENU 301
-#define MENUEX 302
-#define MENUITEM 303
-#define SEPARATOR 304
-#define POPUP 305
-#define CHECKED 306
-#define GRAYED 307
-#define HELP 308
-#define INACTIVE 309
-#define MENUBARBREAK 310
-#define MENUBREAK 311
-#define MESSAGETABLE 312
-#define RCDATA 313
-#define STRINGTABLE 314
-#define VERSIONINFO 315
-#define FILEVERSION 316
-#define PRODUCTVERSION 317
-#define FILEFLAGSMASK 318
-#define FILEFLAGS 319
-#define FILEOS 320
-#define FILETYPE 321
-#define FILESUBTYPE 322
-#define BLOCKSTRINGFILEINFO 323
-#define BLOCKVARFILEINFO 324
-#define VALUE 325
-#define BLOCK 326
-#define MOVEABLE 327
-#define FIXED 328
-#define PURE 329
-#define IMPURE 330
-#define PRELOAD 331
-#define LOADONCALL 332
-#define DISCARDABLE 333
-#define NOT 334
-#define QUOTEDSTRING 335
-#define STRING 336
-#define NUMBER 337
-#define SIZEDSTRING 338
-#define IGNORED_TOKEN 339
-#define NEG 340
-
-
-
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 66 "rcparse.y"
-typedef union YYSTYPE {
- struct accelerator acc;
- struct accelerator *pacc;
- struct dialog_control *dialog_control;
- struct menuitem *menuitem;
- struct
- {
- struct rcdata_item *first;
- struct rcdata_item *last;
- } rcdata;
- struct rcdata_item *rcdata_item;
- struct stringtable_data *stringtable;
- struct fixed_versioninfo *fixver;
- struct ver_info *verinfo;
- struct ver_stringinfo *verstring;
- struct ver_varinfo *vervar;
- struct res_id id;
- struct res_res_info res_info;
- struct
- {
- unsigned short on;
- unsigned short off;
- } memflags;
- struct
- {
- unsigned long val;
- /* Nonzero if this number was explicitly specified as long. */
- int dword;
- } i;
- unsigned long il;
- unsigned short is;
- const char *s;
- struct
- {
- unsigned long length;
- const char *s;
- } ss;
-} YYSTYPE;
-/* Line 1447 of yacc.c. */
-#line 247 "rcparse.h"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-extern YYSTYPE yylval;
-
-
-
diff --git a/binutils-2.17/binutils/rcparse.y b/binutils-2.17/binutils/rcparse.y
deleted file mode 100644
index fbc5bef6..00000000
--- a/binutils-2.17/binutils/rcparse.y
+++ /dev/null
@@ -1,1777 +0,0 @@
-%{ /* rcparse.y -- parser for Windows rc files
- Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Cygnus Support.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This is a parser for Windows rc files. It is based on the parser
- by Gunther Ebert <gunther.ebert@ixos-leipzig.de>. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "windres.h"
-#include "safe-ctype.h"
-
-/* The current language. */
-
-static unsigned short language;
-
-/* The resource information during a sub statement. */
-
-static struct res_res_info sub_res_info;
-
-/* Dialog information. This is built by the nonterminals styles and
- controls. */
-
-static struct dialog dialog;
-
-/* This is used when building a style. It is modified by the
- nonterminal styleexpr. */
-
-static unsigned long style;
-
-/* These are used when building a control. They are set before using
- control_params. */
-
-static unsigned long base_style;
-static unsigned long default_style;
-static unsigned long class;
-static struct res_id res_text_field;
-static unichar null_unichar;
-
-/* This is used for COMBOBOX, LISTBOX and EDITTEXT which
- do not allow resource 'text' field in control definition. */
-static const struct res_id res_null_text = { 1, {{0, &null_unichar}}};
-
-%}
-
-%union
-{
- struct accelerator acc;
- struct accelerator *pacc;
- struct dialog_control *dialog_control;
- struct menuitem *menuitem;
- struct
- {
- struct rcdata_item *first;
- struct rcdata_item *last;
- } rcdata;
- struct rcdata_item *rcdata_item;
- struct stringtable_data *stringtable;
- struct fixed_versioninfo *fixver;
- struct ver_info *verinfo;
- struct ver_stringinfo *verstring;
- struct ver_varinfo *vervar;
- struct res_id id;
- struct res_res_info res_info;
- struct
- {
- unsigned short on;
- unsigned short off;
- } memflags;
- struct
- {
- unsigned long val;
- /* Nonzero if this number was explicitly specified as long. */
- int dword;
- } i;
- unsigned long il;
- unsigned short is;
- const char *s;
- struct
- {
- unsigned long length;
- const char *s;
- } ss;
-};
-
-%token BEG END
-%token ACCELERATORS VIRTKEY ASCII NOINVERT SHIFT CONTROL ALT
-%token BITMAP
-%token CURSOR
-%token DIALOG DIALOGEX EXSTYLE CAPTION CLASS STYLE
-%token AUTO3STATE AUTOCHECKBOX AUTORADIOBUTTON CHECKBOX COMBOBOX CTEXT
-%token DEFPUSHBUTTON EDITTEXT GROUPBOX LISTBOX LTEXT PUSHBOX PUSHBUTTON
-%token RADIOBUTTON RTEXT SCROLLBAR STATE3 USERBUTTON
-%token BEDIT HEDIT IEDIT
-%token FONT
-%token ICON
-%token LANGUAGE CHARACTERISTICS VERSIONK
-%token MENU MENUEX MENUITEM SEPARATOR POPUP CHECKED GRAYED HELP INACTIVE
-%token MENUBARBREAK MENUBREAK
-%token MESSAGETABLE
-%token RCDATA
-%token STRINGTABLE
-%token VERSIONINFO FILEVERSION PRODUCTVERSION FILEFLAGSMASK FILEFLAGS
-%token FILEOS FILETYPE FILESUBTYPE BLOCKSTRINGFILEINFO BLOCKVARFILEINFO
-%token VALUE
-%token <s> BLOCK
-%token MOVEABLE FIXED PURE IMPURE PRELOAD LOADONCALL DISCARDABLE
-%token NOT
-%token <s> QUOTEDSTRING STRING
-%token <i> NUMBER
-%token <ss> SIZEDSTRING
-%token IGNORED_TOKEN
-
-%type <pacc> acc_entries
-%type <acc> acc_entry acc_event
-%type <dialog_control> control control_params
-%type <menuitem> menuitems menuitem menuexitems menuexitem
-%type <rcdata> optrcdata_data optrcdata_data_int rcdata_data
-%type <rcdata_item> opt_control_data
-%type <fixver> fixedverinfo
-%type <verinfo> verblocks
-%type <verstring> vervals
-%type <vervar> vertrans
-%type <res_info> suboptions memflags_move_discard memflags_move
-%type <memflags> memflag
-%type <id> id optresidc resref
-%type <il> exstyle parennumber
-%type <il> numexpr posnumexpr cnumexpr optcnumexpr cposnumexpr
-%type <is> acc_options acc_option menuitem_flags menuitem_flag
-%type <s> file_name resname
-%type <i> sizednumexpr sizedposnumexpr
-
-%left '|'
-%left '^'
-%left '&'
-%left '+' '-'
-%left '*' '/' '%'
-%right '~' NEG
-
-%%
-
-input:
- /* empty */
- | input accelerator
- | input bitmap
- | input cursor
- | input dialog
- | input font
- | input icon
- | input language
- | input menu
- | input menuex
- | input messagetable
- | input rcdata
- | input stringtable
- | input user
- | input versioninfo
- | input IGNORED_TOKEN
- ;
-
-/* Accelerator resources. */
-
-accelerator:
- id ACCELERATORS suboptions BEG acc_entries END
- {
- define_accelerator ($1, &$3, $5);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- ;
-
-acc_entries:
- /* empty */
- {
- $$ = NULL;
- }
- | acc_entries acc_entry
- {
- struct accelerator *a;
-
- a = (struct accelerator *) res_alloc (sizeof *a);
- *a = $2;
- if ($1 == NULL)
- $$ = a;
- else
- {
- struct accelerator **pp;
-
- for (pp = &$1->next; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = a;
- $$ = $1;
- }
- }
- ;
-
-acc_entry:
- acc_event cposnumexpr
- {
- $$ = $1;
- $$.id = $2;
- }
- | acc_event cposnumexpr ',' acc_options
- {
- $$ = $1;
- $$.id = $2;
- $$.flags |= $4;
- if (($$.flags & ACC_VIRTKEY) == 0
- && ($$.flags & (ACC_SHIFT | ACC_CONTROL)) != 0)
- rcparse_warning (_("inappropriate modifiers for non-VIRTKEY"));
- }
- ;
-
-acc_event:
- QUOTEDSTRING
- {
- const char *s = $1;
- char ch;
-
- $$.next = NULL;
- $$.id = 0;
- ch = *s;
- if (ch != '^')
- $$.flags = 0;
- else
- {
- $$.flags = ACC_CONTROL | ACC_VIRTKEY;
- ++s;
- ch = *s;
- ch = TOUPPER (ch);
- }
- $$.key = ch;
- if (s[1] != '\0')
- rcparse_warning (_("accelerator should only be one character"));
- }
- | posnumexpr
- {
- $$.next = NULL;
- $$.flags = 0;
- $$.id = 0;
- $$.key = $1;
- }
- ;
-
-acc_options:
- acc_option
- {
- $$ = $1;
- }
- | acc_options ',' acc_option
- {
- $$ = $1 | $3;
- }
- /* I've had one report that the comma is optional. */
- | acc_options acc_option
- {
- $$ = $1 | $2;
- }
- ;
-
-acc_option:
- VIRTKEY
- {
- $$ = ACC_VIRTKEY;
- }
- | ASCII
- {
- /* This is just the absence of VIRTKEY. */
- $$ = 0;
- }
- | NOINVERT
- {
- $$ = ACC_NOINVERT;
- }
- | SHIFT
- {
- $$ = ACC_SHIFT;
- }
- | CONTROL
- {
- $$ = ACC_CONTROL;
- }
- | ALT
- {
- $$ = ACC_ALT;
- }
- ;
-
-/* Bitmap resources. */
-
-bitmap:
- id BITMAP memflags_move file_name
- {
- define_bitmap ($1, &$3, $4);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- ;
-
-/* Cursor resources. */
-
-cursor:
- id CURSOR memflags_move_discard file_name
- {
- define_cursor ($1, &$3, $4);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- ;
-
-/* Dialog resources. */
-
-dialog:
- id DIALOG memflags_move exstyle posnumexpr cnumexpr cnumexpr
- cnumexpr
- {
- memset (&dialog, 0, sizeof dialog);
- dialog.x = $5;
- dialog.y = $6;
- dialog.width = $7;
- dialog.height = $8;
- dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU;
- dialog.exstyle = $4;
- dialog.menu.named = 1;
- dialog.class.named = 1;
- dialog.font = NULL;
- dialog.ex = NULL;
- dialog.controls = NULL;
- sub_res_info = $3;
- style = 0;
- }
- styles BEG controls END
- {
- define_dialog ($1, &sub_res_info, &dialog);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- | id DIALOGEX memflags_move exstyle posnumexpr cnumexpr cnumexpr
- cnumexpr
- {
- memset (&dialog, 0, sizeof dialog);
- dialog.x = $5;
- dialog.y = $6;
- dialog.width = $7;
- dialog.height = $8;
- dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU;
- dialog.exstyle = $4;
- dialog.menu.named = 1;
- dialog.class.named = 1;
- dialog.font = NULL;
- dialog.ex = ((struct dialog_ex *)
- res_alloc (sizeof (struct dialog_ex)));
- memset (dialog.ex, 0, sizeof (struct dialog_ex));
- dialog.controls = NULL;
- sub_res_info = $3;
- style = 0;
- }
- styles BEG controls END
- {
- define_dialog ($1, &sub_res_info, &dialog);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- | id DIALOGEX memflags_move exstyle posnumexpr cnumexpr cnumexpr
- cnumexpr cnumexpr
- {
- memset (&dialog, 0, sizeof dialog);
- dialog.x = $5;
- dialog.y = $6;
- dialog.width = $7;
- dialog.height = $8;
- dialog.style = WS_POPUP | WS_BORDER | WS_SYSMENU;
- dialog.exstyle = $4;
- dialog.menu.named = 1;
- dialog.class.named = 1;
- dialog.font = NULL;
- dialog.ex = ((struct dialog_ex *)
- res_alloc (sizeof (struct dialog_ex)));
- memset (dialog.ex, 0, sizeof (struct dialog_ex));
- dialog.ex->help = $9;
- dialog.controls = NULL;
- sub_res_info = $3;
- style = 0;
- }
- styles BEG controls END
- {
- define_dialog ($1, &sub_res_info, &dialog);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- ;
-
-exstyle:
- /* empty */
- {
- $$ = 0;
- }
- | EXSTYLE '=' numexpr
- {
- $$ = $3;
- }
- ;
-
-styles:
- /* empty */
- | styles CAPTION QUOTEDSTRING
- {
- dialog.style |= WS_CAPTION;
- style |= WS_CAPTION;
- unicode_from_ascii ((int *) NULL, &dialog.caption, $3);
- }
- | styles CLASS id
- {
- dialog.class = $3;
- }
- | styles STYLE
- styleexpr
- {
- dialog.style = style;
- }
- | styles EXSTYLE numexpr
- {
- dialog.exstyle = $3;
- }
- | styles CLASS QUOTEDSTRING
- {
- res_string_to_id (& dialog.class, $3);
- }
- | styles FONT numexpr ',' QUOTEDSTRING
- {
- dialog.style |= DS_SETFONT;
- style |= DS_SETFONT;
- dialog.pointsize = $3;
- unicode_from_ascii ((int *) NULL, &dialog.font, $5);
- if (dialog.ex != NULL)
- {
- dialog.ex->weight = 0;
- dialog.ex->italic = 0;
- dialog.ex->charset = 1;
- }
- }
- | styles FONT numexpr ',' QUOTEDSTRING cnumexpr
- {
- dialog.style |= DS_SETFONT;
- style |= DS_SETFONT;
- dialog.pointsize = $3;
- unicode_from_ascii ((int *) NULL, &dialog.font, $5);
- if (dialog.ex == NULL)
- rcparse_warning (_("extended FONT requires DIALOGEX"));
- else
- {
- dialog.ex->weight = $6;
- dialog.ex->italic = 0;
- dialog.ex->charset = 1;
- }
- }
- | styles FONT numexpr ',' QUOTEDSTRING cnumexpr cnumexpr
- {
- dialog.style |= DS_SETFONT;
- style |= DS_SETFONT;
- dialog.pointsize = $3;
- unicode_from_ascii ((int *) NULL, &dialog.font, $5);
- if (dialog.ex == NULL)
- rcparse_warning (_("extended FONT requires DIALOGEX"));
- else
- {
- dialog.ex->weight = $6;
- dialog.ex->italic = $7;
- dialog.ex->charset = 1;
- }
- }
- | styles FONT numexpr ',' QUOTEDSTRING cnumexpr cnumexpr cnumexpr
- {
- dialog.style |= DS_SETFONT;
- style |= DS_SETFONT;
- dialog.pointsize = $3;
- unicode_from_ascii ((int *) NULL, &dialog.font, $5);
- if (dialog.ex == NULL)
- rcparse_warning (_("extended FONT requires DIALOGEX"));
- else
- {
- dialog.ex->weight = $6;
- dialog.ex->italic = $7;
- dialog.ex->charset = $8;
- }
- }
- | styles MENU id
- {
- dialog.menu = $3;
- }
- | styles CHARACTERISTICS numexpr
- {
- sub_res_info.characteristics = $3;
- }
- | styles LANGUAGE numexpr cnumexpr
- {
- sub_res_info.language = $3 | ($4 << SUBLANG_SHIFT);
- }
- | styles VERSIONK numexpr
- {
- sub_res_info.version = $3;
- }
- ;
-
-controls:
- /* empty */
- | controls control
- {
- struct dialog_control **pp;
-
- for (pp = &dialog.controls; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = $2;
- }
- ;
-
-control:
- AUTO3STATE optresidc
- {
- default_style = BS_AUTO3STATE | WS_TABSTOP;
- base_style = BS_AUTO3STATE;
- class = CTL_BUTTON;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- }
- | AUTOCHECKBOX optresidc
- {
- default_style = BS_AUTOCHECKBOX | WS_TABSTOP;
- base_style = BS_AUTOCHECKBOX;
- class = CTL_BUTTON;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- }
- | AUTORADIOBUTTON optresidc
- {
- default_style = BS_AUTORADIOBUTTON | WS_TABSTOP;
- base_style = BS_AUTORADIOBUTTON;
- class = CTL_BUTTON;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- }
- | BEDIT optresidc
- {
- default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- class = CTL_EDIT;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- if (dialog.ex == NULL)
- rcparse_warning (_("BEDIT requires DIALOGEX"));
- res_string_to_id (&$$->class, "BEDIT");
- }
- | CHECKBOX optresidc
- {
- default_style = BS_CHECKBOX | WS_TABSTOP;
- base_style = BS_CHECKBOX | WS_TABSTOP;
- class = CTL_BUTTON;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- }
- | COMBOBOX
- {
- /* This is as per MSDN documentation. With some (???)
- versions of MS rc.exe their is no default style. */
- default_style = CBS_SIMPLE | WS_TABSTOP;
- base_style = 0;
- class = CTL_COMBOBOX;
- res_text_field = res_null_text;
- }
- control_params
- {
- $$ = $3;
- }
- | CONTROL optresidc numexpr cnumexpr control_styleexpr cnumexpr
- cnumexpr cnumexpr cnumexpr optcnumexpr opt_control_data
- {
- $$ = define_control ($2, $3, $6, $7, $8, $9, $4, style, $10);
- if ($11 != NULL)
- {
- if (dialog.ex == NULL)
- rcparse_warning (_("control data requires DIALOGEX"));
- $$->data = $11;
- }
- }
- | CONTROL optresidc numexpr cnumexpr control_styleexpr cnumexpr
- cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr opt_control_data
- {
- $$ = define_control ($2, $3, $6, $7, $8, $9, $4, style, $10);
- if (dialog.ex == NULL)
- rcparse_warning (_("help ID requires DIALOGEX"));
- $$->help = $11;
- $$->data = $12;
- }
- | CONTROL optresidc numexpr ',' QUOTEDSTRING control_styleexpr
- cnumexpr cnumexpr cnumexpr cnumexpr optcnumexpr opt_control_data
- {
- $$ = define_control ($2, $3, $7, $8, $9, $10, 0, style, $11);
- if ($12 != NULL)
- {
- if (dialog.ex == NULL)
- rcparse_warning ("control data requires DIALOGEX");
- $$->data = $12;
- }
- $$->class.named = 1;
- unicode_from_ascii (&$$->class.u.n.length, &$$->class.u.n.name, $5);
- }
- | CONTROL optresidc numexpr ',' QUOTEDSTRING control_styleexpr
- cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr cnumexpr opt_control_data
- {
- $$ = define_control ($2, $3, $7, $8, $9, $10, 0, style, $11);
- if (dialog.ex == NULL)
- rcparse_warning ("help ID requires DIALOGEX");
- $$->help = $12;
- $$->data = $13;
- $$->class.named = 1;
- unicode_from_ascii (&$$->class.u.n.length, &$$->class.u.n.name, $5);
- }
- | CTEXT optresidc
- {
- default_style = SS_CENTER | WS_GROUP;
- base_style = SS_CENTER;
- class = CTL_STATIC;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- }
- | DEFPUSHBUTTON optresidc
- {
- default_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
- base_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
- class = CTL_BUTTON;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- }
- | EDITTEXT
- {
- default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- class = CTL_EDIT;
- res_text_field = res_null_text;
- }
- control_params
- {
- $$ = $3;
- }
- | GROUPBOX optresidc
- {
- default_style = BS_GROUPBOX;
- base_style = BS_GROUPBOX;
- class = CTL_BUTTON;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- }
- | HEDIT optresidc
- {
- default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- class = CTL_EDIT;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- if (dialog.ex == NULL)
- rcparse_warning (_("IEDIT requires DIALOGEX"));
- res_string_to_id (&$$->class, "HEDIT");
- }
- | ICON resref numexpr cnumexpr cnumexpr opt_control_data
- {
- $$ = define_icon_control ($2, $3, $4, $5, 0, 0, 0, $6,
- dialog.ex);
- }
- | ICON resref numexpr cnumexpr cnumexpr cnumexpr cnumexpr
- opt_control_data
- {
- $$ = define_icon_control ($2, $3, $4, $5, 0, 0, 0, $8,
- dialog.ex);
- }
- | ICON resref numexpr cnumexpr cnumexpr cnumexpr cnumexpr
- icon_styleexpr optcnumexpr opt_control_data
- {
- $$ = define_icon_control ($2, $3, $4, $5, style, $9, 0, $10,
- dialog.ex);
- }
- | ICON resref numexpr cnumexpr cnumexpr cnumexpr cnumexpr
- icon_styleexpr cnumexpr cnumexpr opt_control_data
- {
- $$ = define_icon_control ($2, $3, $4, $5, style, $9, $10, $11,
- dialog.ex);
- }
- | IEDIT optresidc
- {
- default_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
- class = CTL_EDIT;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- if (dialog.ex == NULL)
- rcparse_warning (_("IEDIT requires DIALOGEX"));
- res_string_to_id (&$$->class, "IEDIT");
- }
- | LISTBOX
- {
- default_style = LBS_NOTIFY | WS_BORDER;
- base_style = LBS_NOTIFY | WS_BORDER;
- class = CTL_LISTBOX;
- res_text_field = res_null_text;
- }
- control_params
- {
- $$ = $3;
- }
- | LTEXT optresidc
- {
- default_style = SS_LEFT | WS_GROUP;
- base_style = SS_LEFT;
- class = CTL_STATIC;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- }
- | PUSHBOX optresidc
- {
- default_style = BS_PUSHBOX | WS_TABSTOP;
- base_style = BS_PUSHBOX;
- class = CTL_BUTTON;
- }
- control_params
- {
- $$ = $4;
- }
- | PUSHBUTTON optresidc
- {
- default_style = BS_PUSHBUTTON | WS_TABSTOP;
- base_style = BS_PUSHBUTTON | WS_TABSTOP;
- class = CTL_BUTTON;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- }
- | RADIOBUTTON optresidc
- {
- default_style = BS_RADIOBUTTON | WS_TABSTOP;
- base_style = BS_RADIOBUTTON;
- class = CTL_BUTTON;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- }
- | RTEXT optresidc
- {
- default_style = SS_RIGHT | WS_GROUP;
- base_style = SS_RIGHT;
- class = CTL_STATIC;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- }
- | SCROLLBAR
- {
- default_style = SBS_HORZ;
- base_style = 0;
- class = CTL_SCROLLBAR;
- res_text_field = res_null_text;
- }
- control_params
- {
- $$ = $3;
- }
- | STATE3 optresidc
- {
- default_style = BS_3STATE | WS_TABSTOP;
- base_style = BS_3STATE;
- class = CTL_BUTTON;
- res_text_field = $2;
- }
- control_params
- {
- $$ = $4;
- }
- | USERBUTTON resref numexpr ',' numexpr ',' numexpr ','
- numexpr ',' numexpr ','
- { style = WS_CHILD | WS_VISIBLE; }
- styleexpr optcnumexpr
- {
- $$ = define_control ($2, $3, $5, $7, $9, $11, CTL_BUTTON,
- style, $15);
- }
- ;
-
-/* Parameters for a control. The static variables DEFAULT_STYLE,
- BASE_STYLE, and CLASS must be initialized before this nonterminal
- is used. DEFAULT_STYLE is the style to use if no style expression
- is specified. BASE_STYLE is the base style to use if a style
- expression is specified; the style expression modifies the base
- style. CLASS is the class of the control. */
-
-control_params:
- numexpr cnumexpr cnumexpr cnumexpr cnumexpr opt_control_data
- {
- $$ = define_control (res_text_field, $1, $2, $3, $4, $5, class,
- default_style | WS_CHILD | WS_VISIBLE, 0);
- if ($6 != NULL)
- {
- if (dialog.ex == NULL)
- rcparse_warning (_("control data requires DIALOGEX"));
- $$->data = $6;
- }
- }
- | numexpr cnumexpr cnumexpr cnumexpr cnumexpr
- control_params_styleexpr optcnumexpr opt_control_data
- {
- $$ = define_control (res_text_field, $1, $2, $3, $4, $5, class, style, $7);
- if ($8 != NULL)
- {
- if (dialog.ex == NULL)
- rcparse_warning (_("control data requires DIALOGEX"));
- $$->data = $8;
- }
- }
- | numexpr cnumexpr cnumexpr cnumexpr cnumexpr
- control_params_styleexpr cnumexpr cnumexpr opt_control_data
- {
- $$ = define_control (res_text_field, $1, $2, $3, $4, $5, class, style, $7);
- if (dialog.ex == NULL)
- rcparse_warning (_("help ID requires DIALOGEX"));
- $$->help = $8;
- $$->data = $9;
- }
- ;
-
-optresidc:
- /* empty */
- {
- res_string_to_id (&$$, "");
- }
- | posnumexpr ','
- {
- $$.named = 0;
- $$.u.id = $1;
- }
- | QUOTEDSTRING
- {
- res_string_to_id (&$$, $1);
- }
- | QUOTEDSTRING ','
- {
- res_string_to_id (&$$, $1);
- }
- ;
-
-opt_control_data:
- /* empty */
- {
- $$ = NULL;
- }
- | BEG optrcdata_data END
- {
- $$ = $2.first;
- }
- ;
-
-/* These only exist to parse a reduction out of a common case. */
-
-control_styleexpr:
- ','
- { style = WS_CHILD | WS_VISIBLE; }
- styleexpr
- ;
-
-icon_styleexpr:
- ','
- { style = SS_ICON | WS_CHILD | WS_VISIBLE; }
- styleexpr
- ;
-
-control_params_styleexpr:
- ','
- { style = base_style | WS_CHILD | WS_VISIBLE; }
- styleexpr
- ;
-
-/* Font resources. */
-
-font:
- id FONT memflags_move_discard file_name
- {
- define_font ($1, &$3, $4);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- ;
-
-/* Icon resources. */
-
-icon:
- id ICON memflags_move_discard file_name
- {
- define_icon ($1, &$3, $4);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- ;
-
-/* Language command. This changes the static variable language, which
- affects all subsequent resources. */
-
-language:
- LANGUAGE numexpr cnumexpr
- {
- language = $2 | ($3 << SUBLANG_SHIFT);
- }
- ;
-
-/* Menu resources. */
-
-menu:
- id MENU suboptions BEG menuitems END
- {
- define_menu ($1, &$3, $5);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- ;
-
-menuitems:
- /* empty */
- {
- $$ = NULL;
- }
- | menuitems menuitem
- {
- if ($1 == NULL)
- $$ = $2;
- else
- {
- struct menuitem **pp;
-
- for (pp = &$1->next; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = $2;
- $$ = $1;
- }
- }
- ;
-
-menuitem:
- MENUITEM QUOTEDSTRING cnumexpr menuitem_flags
- {
- $$ = define_menuitem ($2, $3, $4, 0, 0, NULL);
- }
- | MENUITEM SEPARATOR
- {
- $$ = define_menuitem (NULL, 0, 0, 0, 0, NULL);
- }
- | POPUP QUOTEDSTRING menuitem_flags BEG menuitems END
- {
- $$ = define_menuitem ($2, 0, $3, 0, 0, $5);
- }
- ;
-
-menuitem_flags:
- /* empty */
- {
- $$ = 0;
- }
- | menuitem_flags ',' menuitem_flag
- {
- $$ = $1 | $3;
- }
- | menuitem_flags menuitem_flag
- {
- $$ = $1 | $2;
- }
- ;
-
-menuitem_flag:
- CHECKED
- {
- $$ = MENUITEM_CHECKED;
- }
- | GRAYED
- {
- $$ = MENUITEM_GRAYED;
- }
- | HELP
- {
- $$ = MENUITEM_HELP;
- }
- | INACTIVE
- {
- $$ = MENUITEM_INACTIVE;
- }
- | MENUBARBREAK
- {
- $$ = MENUITEM_MENUBARBREAK;
- }
- | MENUBREAK
- {
- $$ = MENUITEM_MENUBREAK;
- }
- ;
-
-/* Menuex resources. */
-
-menuex:
- id MENUEX suboptions BEG menuexitems END
- {
- define_menu ($1, &$3, $5);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- ;
-
-menuexitems:
- /* empty */
- {
- $$ = NULL;
- }
- | menuexitems menuexitem
- {
- if ($1 == NULL)
- $$ = $2;
- else
- {
- struct menuitem **pp;
-
- for (pp = &$1->next; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = $2;
- $$ = $1;
- }
- }
- ;
-
-menuexitem:
- MENUITEM QUOTEDSTRING
- {
- $$ = define_menuitem ($2, 0, 0, 0, 0, NULL);
- }
- | MENUITEM QUOTEDSTRING cnumexpr
- {
- $$ = define_menuitem ($2, $3, 0, 0, 0, NULL);
- }
- | MENUITEM QUOTEDSTRING cnumexpr cnumexpr optcnumexpr
- {
- $$ = define_menuitem ($2, $3, $4, $5, 0, NULL);
- }
- | MENUITEM SEPARATOR
- {
- $$ = define_menuitem (NULL, 0, 0, 0, 0, NULL);
- }
- | POPUP QUOTEDSTRING BEG menuexitems END
- {
- $$ = define_menuitem ($2, 0, 0, 0, 0, $4);
- }
- | POPUP QUOTEDSTRING cnumexpr BEG menuexitems END
- {
- $$ = define_menuitem ($2, $3, 0, 0, 0, $5);
- }
- | POPUP QUOTEDSTRING cnumexpr cnumexpr BEG menuexitems END
- {
- $$ = define_menuitem ($2, $3, $4, 0, 0, $6);
- }
- | POPUP QUOTEDSTRING cnumexpr cnumexpr cnumexpr optcnumexpr
- BEG menuexitems END
- {
- $$ = define_menuitem ($2, $3, $4, $5, $6, $8);
- }
- ;
-
-/* Messagetable resources. */
-
-messagetable:
- id MESSAGETABLE memflags_move file_name
- {
- define_messagetable ($1, &$3, $4);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- ;
-
-/* Rcdata resources. */
-
-rcdata:
- id RCDATA suboptions BEG optrcdata_data END
- {
- define_rcdata ($1, &$3, $5.first);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- | id RCDATA suboptions file_name
- {
- define_rcdata_file ($1, &$3, $4);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- ;
-
-/* We use a different lexing algorithm, because rcdata strings may
- contain embedded null bytes, and we need to know the length to use. */
-
-optrcdata_data:
- {
- rcparse_rcdata ();
- }
- optrcdata_data_int
- {
- rcparse_normal ();
- $$ = $2;
- }
- ;
-
-optrcdata_data_int:
- /* empty */
- {
- $$.first = NULL;
- $$.last = NULL;
- }
- | rcdata_data
- {
- $$ = $1;
- }
- ;
-
-rcdata_data:
- SIZEDSTRING
- {
- struct rcdata_item *ri;
-
- ri = define_rcdata_string ($1.s, $1.length);
- $$.first = ri;
- $$.last = ri;
- }
- | sizednumexpr
- {
- struct rcdata_item *ri;
-
- ri = define_rcdata_number ($1.val, $1.dword);
- $$.first = ri;
- $$.last = ri;
- }
- | rcdata_data ',' SIZEDSTRING
- {
- struct rcdata_item *ri;
-
- ri = define_rcdata_string ($3.s, $3.length);
- $$.first = $1.first;
- $1.last->next = ri;
- $$.last = ri;
- }
- | rcdata_data ',' sizednumexpr
- {
- struct rcdata_item *ri;
-
- ri = define_rcdata_number ($3.val, $3.dword);
- $$.first = $1.first;
- $1.last->next = ri;
- $$.last = ri;
- }
- ;
-
-/* Stringtable resources. */
-
-stringtable:
- STRINGTABLE suboptions BEG
- { sub_res_info = $2; }
- string_data END
- ;
-
-string_data:
- /* empty */
- | string_data numexpr QUOTEDSTRING
- {
- define_stringtable (&sub_res_info, $2, $3);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- | string_data numexpr ',' QUOTEDSTRING
- {
- define_stringtable (&sub_res_info, $2, $4);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- ;
-
-/* User defined resources. We accept general suboptions in the
- file_name case to keep the parser happy. */
-
-user:
- id id suboptions BEG optrcdata_data END
- {
- define_user_data ($1, $2, &$3, $5.first);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- | id id suboptions file_name
- {
- define_user_file ($1, $2, &$3, $4);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- ;
-
-/* Versioninfo resources. */
-
-versioninfo:
- id VERSIONINFO fixedverinfo BEG verblocks END
- {
- define_versioninfo ($1, language, $3, $5);
- if (yychar != YYEMPTY)
- YYERROR;
- rcparse_discard_strings ();
- }
- ;
-
-fixedverinfo:
- /* empty */
- {
- $$ = ((struct fixed_versioninfo *)
- res_alloc (sizeof (struct fixed_versioninfo)));
- memset ($$, 0, sizeof (struct fixed_versioninfo));
- }
- | fixedverinfo FILEVERSION numexpr cnumexpr cnumexpr cnumexpr
- {
- $1->file_version_ms = ($3 << 16) | $4;
- $1->file_version_ls = ($5 << 16) | $6;
- $$ = $1;
- }
- | fixedverinfo PRODUCTVERSION numexpr cnumexpr cnumexpr cnumexpr
- {
- $1->product_version_ms = ($3 << 16) | $4;
- $1->product_version_ls = ($5 << 16) | $6;
- $$ = $1;
- }
- | fixedverinfo FILEFLAGSMASK numexpr
- {
- $1->file_flags_mask = $3;
- $$ = $1;
- }
- | fixedverinfo FILEFLAGS numexpr
- {
- $1->file_flags = $3;
- $$ = $1;
- }
- | fixedverinfo FILEOS numexpr
- {
- $1->file_os = $3;
- $$ = $1;
- }
- | fixedverinfo FILETYPE numexpr
- {
- $1->file_type = $3;
- $$ = $1;
- }
- | fixedverinfo FILESUBTYPE numexpr
- {
- $1->file_subtype = $3;
- $$ = $1;
- }
- ;
-
-/* To handle verblocks successfully, the lexer handles BLOCK
- specially. A BLOCK "StringFileInfo" is returned as
- BLOCKSTRINGFILEINFO. A BLOCK "VarFileInfo" is returned as
- BLOCKVARFILEINFO. A BLOCK with some other string returns BLOCK
- with the string as the value. */
-
-verblocks:
- /* empty */
- {
- $$ = NULL;
- }
- | verblocks BLOCKSTRINGFILEINFO BEG BLOCK BEG vervals END END
- {
- $$ = append_ver_stringfileinfo ($1, $4, $6);
- }
- | verblocks BLOCKVARFILEINFO BEG VALUE QUOTEDSTRING vertrans END
- {
- $$ = append_ver_varfileinfo ($1, $5, $6);
- }
- ;
-
-vervals:
- /* empty */
- {
- $$ = NULL;
- }
- | vervals VALUE QUOTEDSTRING ',' QUOTEDSTRING
- {
- $$ = append_verval ($1, $3, $5);
- }
- ;
-
-vertrans:
- /* empty */
- {
- $$ = NULL;
- }
- | vertrans cnumexpr cnumexpr
- {
- $$ = append_vertrans ($1, $2, $3);
- }
- ;
-
-/* A resource ID. */
-
-id:
- posnumexpr
- {
- $$.named = 0;
- $$.u.id = $1;
- }
- | STRING
- {
- char *copy, *s;
-
- /* It seems that resource ID's are forced to upper case. */
- copy = xstrdup ($1);
- for (s = copy; *s != '\0'; s++)
- *s = TOUPPER (*s);
- res_string_to_id (&$$, copy);
- free (copy);
- }
- ;
-
-/* A resource reference. */
-
-resname:
- QUOTEDSTRING
- {
- $$ = $1;
- }
- | QUOTEDSTRING ','
- {
- $$ = $1;
- }
- | STRING ','
- {
- $$ = $1;
- }
- ;
-
-
-resref:
- posnumexpr ','
- {
- $$.named = 0;
- $$.u.id = $1;
- }
- | resname
- {
- char *copy, *s;
-
- /* It seems that resource ID's are forced to upper case. */
- copy = xstrdup ($1);
- for (s = copy; *s != '\0'; s++)
- *s = TOUPPER (*s);
- res_string_to_id (&$$, copy);
- free (copy);
- }
- ;
-
-/* Generic suboptions. These may appear before the BEGIN in any
- multiline statement. */
-
-suboptions:
- /* empty */
- {
- memset (&$$, 0, sizeof (struct res_res_info));
- $$.language = language;
- /* FIXME: Is this the right default? */
- $$.memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE;
- }
- | suboptions memflag
- {
- $$ = $1;
- $$.memflags |= $2.on;
- $$.memflags &=~ $2.off;
- }
- | suboptions CHARACTERISTICS numexpr
- {
- $$ = $1;
- $$.characteristics = $3;
- }
- | suboptions LANGUAGE numexpr cnumexpr
- {
- $$ = $1;
- $$.language = $3 | ($4 << SUBLANG_SHIFT);
- }
- | suboptions VERSIONK numexpr
- {
- $$ = $1;
- $$.version = $3;
- }
- ;
-
-/* Memory flags which default to MOVEABLE and DISCARDABLE. */
-
-memflags_move_discard:
- /* empty */
- {
- memset (&$$, 0, sizeof (struct res_res_info));
- $$.language = language;
- $$.memflags = MEMFLAG_MOVEABLE | MEMFLAG_DISCARDABLE;
- }
- | memflags_move_discard memflag
- {
- $$ = $1;
- $$.memflags |= $2.on;
- $$.memflags &=~ $2.off;
- }
- ;
-
-/* Memory flags which default to MOVEABLE. */
-
-memflags_move:
- /* empty */
- {
- memset (&$$, 0, sizeof (struct res_res_info));
- $$.language = language;
- $$.memflags = MEMFLAG_MOVEABLE | MEMFLAG_PURE | MEMFLAG_DISCARDABLE;
- }
- | memflags_move memflag
- {
- $$ = $1;
- $$.memflags |= $2.on;
- $$.memflags &=~ $2.off;
- }
- ;
-
-/* Memory flags. This returns a struct with two integers, because we
- sometimes want to set bits and we sometimes want to clear them. */
-
-memflag:
- MOVEABLE
- {
- $$.on = MEMFLAG_MOVEABLE;
- $$.off = 0;
- }
- | FIXED
- {
- $$.on = 0;
- $$.off = MEMFLAG_MOVEABLE;
- }
- | PURE
- {
- $$.on = MEMFLAG_PURE;
- $$.off = 0;
- }
- | IMPURE
- {
- $$.on = 0;
- $$.off = MEMFLAG_PURE;
- }
- | PRELOAD
- {
- $$.on = MEMFLAG_PRELOAD;
- $$.off = 0;
- }
- | LOADONCALL
- {
- $$.on = 0;
- $$.off = MEMFLAG_PRELOAD;
- }
- | DISCARDABLE
- {
- $$.on = MEMFLAG_DISCARDABLE;
- $$.off = 0;
- }
- ;
-
-/* A file name. */
-
-file_name:
- QUOTEDSTRING
- {
- $$ = $1;
- }
- | STRING
- {
- $$ = $1;
- }
- ;
-
-/* A style expression. This changes the static variable STYLE. We do
- it this way because rc appears to permit a style to be set to
- something like
- WS_GROUP | NOT WS_TABSTOP
- to mean that a default of WS_TABSTOP should be removed. Anything
- which wants to accept a style must first set STYLE to the default
- value. The styleexpr nonterminal will change STYLE as specified by
- the user. Note that we do not accept arbitrary expressions here,
- just numbers separated by '|'. */
-
-styleexpr:
- parennumber
- {
- style |= $1;
- }
- | NOT parennumber
- {
- style &=~ $2;
- }
- | styleexpr '|' parennumber
- {
- style |= $3;
- }
- | styleexpr '|' NOT parennumber
- {
- style &=~ $4;
- }
- ;
-
-parennumber:
- NUMBER
- {
- $$ = $1.val;
- }
- | '(' numexpr ')'
- {
- $$ = $2;
- }
- ;
-
-/* An optional expression with a leading comma. */
-
-optcnumexpr:
- /* empty */
- {
- $$ = 0;
- }
- | cnumexpr
- {
- $$ = $1;
- }
- ;
-
-/* An expression with a leading comma. */
-
-cnumexpr:
- ',' numexpr
- {
- $$ = $2;
- }
- ;
-
-/* A possibly negated numeric expression. */
-
-numexpr:
- sizednumexpr
- {
- $$ = $1.val;
- }
- ;
-
-/* A possibly negated expression with a size. */
-
-sizednumexpr:
- NUMBER
- {
- $$ = $1;
- }
- | '(' sizednumexpr ')'
- {
- $$ = $2;
- }
- | '~' sizednumexpr %prec '~'
- {
- $$.val = ~ $2.val;
- $$.dword = $2.dword;
- }
- | '-' sizednumexpr %prec NEG
- {
- $$.val = - $2.val;
- $$.dword = $2.dword;
- }
- | sizednumexpr '*' sizednumexpr
- {
- $$.val = $1.val * $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizednumexpr '/' sizednumexpr
- {
- $$.val = $1.val / $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizednumexpr '%' sizednumexpr
- {
- $$.val = $1.val % $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizednumexpr '+' sizednumexpr
- {
- $$.val = $1.val + $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizednumexpr '-' sizednumexpr
- {
- $$.val = $1.val - $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizednumexpr '&' sizednumexpr
- {
- $$.val = $1.val & $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizednumexpr '^' sizednumexpr
- {
- $$.val = $1.val ^ $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizednumexpr '|' sizednumexpr
- {
- $$.val = $1.val | $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- ;
-
-/* An expression with a leading comma which does not use unary
- negation. */
-
-cposnumexpr:
- ',' posnumexpr
- {
- $$ = $2;
- }
- ;
-
-/* An expression which does not use unary negation. */
-
-posnumexpr:
- sizedposnumexpr
- {
- $$ = $1.val;
- }
- ;
-
-/* An expression which does not use unary negation. We separate unary
- negation to avoid parsing conflicts when two numeric expressions
- appear consecutively. */
-
-sizedposnumexpr:
- NUMBER
- {
- $$ = $1;
- }
- | '(' sizednumexpr ')'
- {
- $$ = $2;
- }
- | '~' sizednumexpr %prec '~'
- {
- $$.val = ~ $2.val;
- $$.dword = $2.dword;
- }
- | sizedposnumexpr '*' sizednumexpr
- {
- $$.val = $1.val * $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizedposnumexpr '/' sizednumexpr
- {
- $$.val = $1.val / $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizedposnumexpr '%' sizednumexpr
- {
- $$.val = $1.val % $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizedposnumexpr '+' sizednumexpr
- {
- $$.val = $1.val + $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizedposnumexpr '-' sizednumexpr
- {
- $$.val = $1.val - $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizedposnumexpr '&' sizednumexpr
- {
- $$.val = $1.val & $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizedposnumexpr '^' sizednumexpr
- {
- $$.val = $1.val ^ $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- | sizedposnumexpr '|' sizednumexpr
- {
- $$.val = $1.val | $3.val;
- $$.dword = $1.dword || $3.dword;
- }
- ;
-
-%%
-
-/* Set the language from the command line. */
-
-void
-rcparse_set_language (int lang)
-{
- language = lang;
-}
diff --git a/binutils-2.17/binutils/rdcoff.c b/binutils-2.17/binutils/rdcoff.c
deleted file mode 100644
index 1eda3af1..00000000
--- a/binutils-2.17/binutils/rdcoff.c
+++ /dev/null
@@ -1,874 +0,0 @@
-/* stabs.c -- Parse COFF debugging information
- Copyright 1996, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
- Written by Ian Lance Taylor <ian@cygnus.com>.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This file contains code which parses COFF debugging information. */
-
-#include "bfd.h"
-#include "coff/internal.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "debug.h"
-#include "budbg.h"
-
-/* FIXME: We should not need this BFD internal file. We need it for
- the N_BTMASK, etc., values. */
-#include "libcoff.h"
-
-/* These macros extract the right mask and shifts for this BFD. They
- assume that there is a local variable named ABFD. This is so that
- macros like ISFCN and DECREF, from coff/internal.h, will work
- without modification. */
-#define N_BTMASK (coff_data (abfd)->local_n_btmask)
-#define N_BTSHFT (coff_data (abfd)->local_n_btshft)
-#define N_TMASK (coff_data (abfd)->local_n_tmask)
-#define N_TSHIFT (coff_data (abfd)->local_n_tshift)
-
-/* This structure is used to hold the symbols, as well as the current
- location within the symbols. */
-
-struct coff_symbols
-{
- /* The symbols. */
- asymbol **syms;
- /* The number of symbols. */
- long symcount;
- /* The index of the current symbol. */
- long symno;
- /* The index of the current symbol in the COFF symbol table (where
- each auxent counts as a symbol). */
- long coff_symno;
-};
-
-/* The largest basic type we are prepared to handle. */
-
-#define T_MAX (T_LNGDBL)
-
-/* This structure is used to hold slots. */
-
-struct coff_slots
-{
- /* Next set of slots. */
- struct coff_slots *next;
- /* Slots. */
-#define COFF_SLOTS (16)
- debug_type slots[COFF_SLOTS];
-};
-
-/* This structure is used to map symbol indices to types. */
-
-struct coff_types
-{
- /* Slots. */
- struct coff_slots *slots;
- /* Basic types. */
- debug_type basic[T_MAX + 1];
-};
-
-static debug_type *coff_get_slot (struct coff_types *, int);
-static debug_type parse_coff_type
- (bfd *, struct coff_symbols *, struct coff_types *, long, int,
- union internal_auxent *, bfd_boolean, void *);
-static debug_type parse_coff_base_type
- (bfd *, struct coff_symbols *, struct coff_types *, long, int,
- union internal_auxent *, void *);
-static debug_type parse_coff_struct_type
- (bfd *, struct coff_symbols *, struct coff_types *, int,
- union internal_auxent *, void *);
-static debug_type parse_coff_enum_type
- (bfd *, struct coff_symbols *, struct coff_types *,
- union internal_auxent *, void *);
-static bfd_boolean parse_coff_symbol
- (bfd *, struct coff_types *, asymbol *, long, struct internal_syment *,
- void *, debug_type, bfd_boolean);
-static bfd_boolean external_coff_symbol_p (int sym_class);
-
-/* Return the slot for a type. */
-
-static debug_type *
-coff_get_slot (struct coff_types *types, int indx)
-{
- struct coff_slots **pps;
-
- pps = &types->slots;
-
- while (indx >= COFF_SLOTS)
- {
- if (*pps == NULL)
- {
- *pps = (struct coff_slots *) xmalloc (sizeof **pps);
- memset (*pps, 0, sizeof **pps);
- }
- pps = &(*pps)->next;
- indx -= COFF_SLOTS;
- }
-
- if (*pps == NULL)
- {
- *pps = (struct coff_slots *) xmalloc (sizeof **pps);
- memset (*pps, 0, sizeof **pps);
- }
-
- return (*pps)->slots + indx;
-}
-
-/* Parse a COFF type code in NTYPE. */
-
-static debug_type
-parse_coff_type (bfd *abfd, struct coff_symbols *symbols,
- struct coff_types *types, long coff_symno, int ntype,
- union internal_auxent *pauxent, bfd_boolean useaux,
- void *dhandle)
-{
- debug_type type;
-
- if ((ntype & ~N_BTMASK) != 0)
- {
- int newtype;
-
- newtype = DECREF (ntype);
-
- if (ISPTR (ntype))
- {
- type = parse_coff_type (abfd, symbols, types, coff_symno, newtype,
- pauxent, useaux, dhandle);
- type = debug_make_pointer_type (dhandle, type);
- }
- else if (ISFCN (ntype))
- {
- type = parse_coff_type (abfd, symbols, types, coff_symno, newtype,
- pauxent, useaux, dhandle);
- type = debug_make_function_type (dhandle, type, (debug_type *) NULL,
- FALSE);
- }
- else if (ISARY (ntype))
- {
- int n;
-
- if (pauxent == NULL)
- n = 0;
- else
- {
- unsigned short *dim;
- int i;
-
- /* FIXME: If pauxent->x_sym.x_tagndx.l == 0, gdb sets
- the c_naux field of the syment to 0. */
-
- /* Move the dimensions down, so that the next array
- picks up the next one. */
- dim = pauxent->x_sym.x_fcnary.x_ary.x_dimen;
- n = dim[0];
- for (i = 0; *dim != 0 && i < DIMNUM - 1; i++, dim++)
- *dim = *(dim + 1);
- *dim = 0;
- }
-
- type = parse_coff_type (abfd, symbols, types, coff_symno, newtype,
- pauxent, FALSE, dhandle);
- type = debug_make_array_type (dhandle, type,
- parse_coff_base_type (abfd, symbols,
- types,
- coff_symno,
- T_INT,
- NULL, dhandle),
- 0, n - 1, FALSE);
- }
- else
- {
- non_fatal (_("parse_coff_type: Bad type code 0x%x"), ntype);
- return DEBUG_TYPE_NULL;
- }
-
- return type;
- }
-
- if (pauxent != NULL && pauxent->x_sym.x_tagndx.l > 0)
- {
- debug_type *slot;
-
- /* This is a reference to an existing type. FIXME: gdb checks
- that the class is not C_STRTAG, nor C_UNTAG, nor C_ENTAG. */
- slot = coff_get_slot (types, pauxent->x_sym.x_tagndx.l);
- if (*slot != DEBUG_TYPE_NULL)
- return *slot;
- else
- return debug_make_indirect_type (dhandle, slot, (const char *) NULL);
- }
-
- /* If the aux entry has already been used for something, useaux will
- have been set to false, indicating that parse_coff_base_type
- should not use it. We need to do it this way, rather than simply
- passing pauxent as NULL, because we need to be able handle
- multiple array dimensions while still discarding pauxent after
- having handled all of them. */
- if (! useaux)
- pauxent = NULL;
-
- return parse_coff_base_type (abfd, symbols, types, coff_symno, ntype,
- pauxent, dhandle);
-}
-
-/* Parse a basic COFF type in NTYPE. */
-
-static debug_type
-parse_coff_base_type (bfd *abfd, struct coff_symbols *symbols,
- struct coff_types *types, long coff_symno, int ntype,
- union internal_auxent *pauxent, void *dhandle)
-{
- debug_type ret;
- bfd_boolean set_basic;
- const char *name;
- debug_type *slot;
-
- if (ntype >= 0
- && ntype <= T_MAX
- && types->basic[ntype] != DEBUG_TYPE_NULL)
- return types->basic[ntype];
-
- set_basic = TRUE;
- name = NULL;
-
- switch (ntype)
- {
- default:
- ret = debug_make_void_type (dhandle);
- break;
-
- case T_NULL:
- case T_VOID:
- ret = debug_make_void_type (dhandle);
- name = "void";
- break;
-
- case T_CHAR:
- ret = debug_make_int_type (dhandle, 1, FALSE);
- name = "char";
- break;
-
- case T_SHORT:
- ret = debug_make_int_type (dhandle, 2, FALSE);
- name = "short";
- break;
-
- case T_INT:
- /* FIXME: Perhaps the size should depend upon the architecture. */
- ret = debug_make_int_type (dhandle, 4, FALSE);
- name = "int";
- break;
-
- case T_LONG:
- ret = debug_make_int_type (dhandle, 4, FALSE);
- name = "long";
- break;
-
- case T_FLOAT:
- ret = debug_make_float_type (dhandle, 4);
- name = "float";
- break;
-
- case T_DOUBLE:
- ret = debug_make_float_type (dhandle, 8);
- name = "double";
- break;
-
- case T_LNGDBL:
- ret = debug_make_float_type (dhandle, 12);
- name = "long double";
- break;
-
- case T_UCHAR:
- ret = debug_make_int_type (dhandle, 1, TRUE);
- name = "unsigned char";
- break;
-
- case T_USHORT:
- ret = debug_make_int_type (dhandle, 2, TRUE);
- name = "unsigned short";
- break;
-
- case T_UINT:
- ret = debug_make_int_type (dhandle, 4, TRUE);
- name = "unsigned int";
- break;
-
- case T_ULONG:
- ret = debug_make_int_type (dhandle, 4, TRUE);
- name = "unsigned long";
- break;
-
- case T_STRUCT:
- if (pauxent == NULL)
- ret = debug_make_struct_type (dhandle, TRUE, 0,
- (debug_field *) NULL);
- else
- ret = parse_coff_struct_type (abfd, symbols, types, ntype, pauxent,
- dhandle);
-
- slot = coff_get_slot (types, coff_symno);
- *slot = ret;
-
- set_basic = FALSE;
- break;
-
- case T_UNION:
- if (pauxent == NULL)
- ret = debug_make_struct_type (dhandle, FALSE, 0, (debug_field *) NULL);
- else
- ret = parse_coff_struct_type (abfd, symbols, types, ntype, pauxent,
- dhandle);
-
- slot = coff_get_slot (types, coff_symno);
- *slot = ret;
-
- set_basic = FALSE;
- break;
-
- case T_ENUM:
- if (pauxent == NULL)
- ret = debug_make_enum_type (dhandle, (const char **) NULL,
- (bfd_signed_vma *) NULL);
- else
- ret = parse_coff_enum_type (abfd, symbols, types, pauxent, dhandle);
-
- slot = coff_get_slot (types, coff_symno);
- *slot = ret;
-
- set_basic = FALSE;
- break;
- }
-
- if (name != NULL)
- ret = debug_name_type (dhandle, name, ret);
-
- if (set_basic
- && ntype >= 0
- && ntype <= T_MAX)
- types->basic[ntype] = ret;
-
- return ret;
-}
-
-/* Parse a struct type. */
-
-static debug_type
-parse_coff_struct_type (bfd *abfd, struct coff_symbols *symbols,
- struct coff_types *types, int ntype,
- union internal_auxent *pauxent, void *dhandle)
-{
- long symend;
- int alloc;
- debug_field *fields;
- int count;
- bfd_boolean done;
-
- symend = pauxent->x_sym.x_fcnary.x_fcn.x_endndx.l;
-
- alloc = 10;
- fields = (debug_field *) xmalloc (alloc * sizeof *fields);
- count = 0;
-
- done = FALSE;
- while (! done
- && symbols->coff_symno < symend
- && symbols->symno < symbols->symcount)
- {
- asymbol *sym;
- long this_coff_symno;
- struct internal_syment syment;
- union internal_auxent auxent;
- union internal_auxent *psubaux;
- bfd_vma bitpos = 0, bitsize = 0;
-
- sym = symbols->syms[symbols->symno];
-
- if (! bfd_coff_get_syment (abfd, sym, &syment))
- {
- non_fatal (_("bfd_coff_get_syment failed: %s"),
- bfd_errmsg (bfd_get_error ()));
- return DEBUG_TYPE_NULL;
- }
-
- this_coff_symno = symbols->coff_symno;
-
- ++symbols->symno;
- symbols->coff_symno += 1 + syment.n_numaux;
-
- if (syment.n_numaux == 0)
- psubaux = NULL;
- else
- {
- if (! bfd_coff_get_auxent (abfd, sym, 0, &auxent))
- {
- non_fatal (_("bfd_coff_get_auxent failed: %s"),
- bfd_errmsg (bfd_get_error ()));
- return DEBUG_TYPE_NULL;
- }
- psubaux = &auxent;
- }
-
- switch (syment.n_sclass)
- {
- case C_MOS:
- case C_MOU:
- bitpos = 8 * bfd_asymbol_value (sym);
- bitsize = 0;
- break;
-
- case C_FIELD:
- bitpos = bfd_asymbol_value (sym);
- bitsize = auxent.x_sym.x_misc.x_lnsz.x_size;
- break;
-
- case C_EOS:
- done = TRUE;
- break;
- }
-
- if (! done)
- {
- debug_type ftype;
- debug_field f;
-
- ftype = parse_coff_type (abfd, symbols, types, this_coff_symno,
- syment.n_type, psubaux, TRUE, dhandle);
- f = debug_make_field (dhandle, bfd_asymbol_name (sym), ftype,
- bitpos, bitsize, DEBUG_VISIBILITY_PUBLIC);
- if (f == DEBUG_FIELD_NULL)
- return DEBUG_TYPE_NULL;
-
- if (count + 1 >= alloc)
- {
- alloc += 10;
- fields = ((debug_field *)
- xrealloc (fields, alloc * sizeof *fields));
- }
-
- fields[count] = f;
- ++count;
- }
- }
-
- fields[count] = DEBUG_FIELD_NULL;
-
- return debug_make_struct_type (dhandle, ntype == T_STRUCT,
- pauxent->x_sym.x_misc.x_lnsz.x_size,
- fields);
-}
-
-/* Parse an enum type. */
-
-static debug_type
-parse_coff_enum_type (bfd *abfd, struct coff_symbols *symbols,
- struct coff_types *types ATTRIBUTE_UNUSED,
- union internal_auxent *pauxent, void *dhandle)
-{
- long symend;
- int alloc;
- const char **names;
- bfd_signed_vma *vals;
- int count;
- bfd_boolean done;
-
- symend = pauxent->x_sym.x_fcnary.x_fcn.x_endndx.l;
-
- alloc = 10;
- names = (const char **) xmalloc (alloc * sizeof *names);
- vals = (bfd_signed_vma *) xmalloc (alloc * sizeof *vals);
- count = 0;
-
- done = FALSE;
- while (! done
- && symbols->coff_symno < symend
- && symbols->symno < symbols->symcount)
- {
- asymbol *sym;
- struct internal_syment syment;
-
- sym = symbols->syms[symbols->symno];
-
- if (! bfd_coff_get_syment (abfd, sym, &syment))
- {
- non_fatal (_("bfd_coff_get_syment failed: %s"),
- bfd_errmsg (bfd_get_error ()));
- return DEBUG_TYPE_NULL;
- }
-
- ++symbols->symno;
- symbols->coff_symno += 1 + syment.n_numaux;
-
- switch (syment.n_sclass)
- {
- case C_MOE:
- if (count + 1 >= alloc)
- {
- alloc += 10;
- names = ((const char **)
- xrealloc (names, alloc * sizeof *names));
- vals = ((bfd_signed_vma *)
- xrealloc (vals, alloc * sizeof *vals));
- }
-
- names[count] = bfd_asymbol_name (sym);
- vals[count] = bfd_asymbol_value (sym);
- ++count;
- break;
-
- case C_EOS:
- done = TRUE;
- break;
- }
- }
-
- names[count] = NULL;
-
- return debug_make_enum_type (dhandle, names, vals);
-}
-
-/* Handle a single COFF symbol. */
-
-static bfd_boolean
-parse_coff_symbol (bfd *abfd ATTRIBUTE_UNUSED, struct coff_types *types,
- asymbol *sym, long coff_symno,
- struct internal_syment *psyment, void *dhandle,
- debug_type type, bfd_boolean within_function)
-{
- switch (psyment->n_sclass)
- {
- case C_NULL:
- break;
-
- case C_AUTO:
- if (! debug_record_variable (dhandle, bfd_asymbol_name (sym), type,
- DEBUG_LOCAL, bfd_asymbol_value (sym)))
- return FALSE;
- break;
-
- case C_WEAKEXT:
- case C_EXT:
- if (! debug_record_variable (dhandle, bfd_asymbol_name (sym), type,
- DEBUG_GLOBAL, bfd_asymbol_value (sym)))
- return FALSE;
- break;
-
- case C_STAT:
- if (! debug_record_variable (dhandle, bfd_asymbol_name (sym), type,
- (within_function
- ? DEBUG_LOCAL_STATIC
- : DEBUG_STATIC),
- bfd_asymbol_value (sym)))
- return FALSE;
- break;
-
- case C_REG:
- /* FIXME: We may need to convert the register number. */
- if (! debug_record_variable (dhandle, bfd_asymbol_name (sym), type,
- DEBUG_REGISTER, bfd_asymbol_value (sym)))
- return FALSE;
- break;
-
- case C_LABEL:
- break;
-
- case C_ARG:
- if (! debug_record_parameter (dhandle, bfd_asymbol_name (sym), type,
- DEBUG_PARM_STACK, bfd_asymbol_value (sym)))
- return FALSE;
- break;
-
- case C_REGPARM:
- /* FIXME: We may need to convert the register number. */
- if (! debug_record_parameter (dhandle, bfd_asymbol_name (sym), type,
- DEBUG_PARM_REG, bfd_asymbol_value (sym)))
- return FALSE;
- break;
-
- case C_TPDEF:
- type = debug_name_type (dhandle, bfd_asymbol_name (sym), type);
- if (type == DEBUG_TYPE_NULL)
- return FALSE;
- break;
-
- case C_STRTAG:
- case C_UNTAG:
- case C_ENTAG:
- {
- debug_type *slot;
-
- type = debug_tag_type (dhandle, bfd_asymbol_name (sym), type);
- if (type == DEBUG_TYPE_NULL)
- return FALSE;
-
- /* Store the named type into the slot, so that references get
- the name. */
- slot = coff_get_slot (types, coff_symno);
- *slot = type;
- }
- break;
-
- default:
- break;
- }
-
- return TRUE;
-}
-
-/* Determine if a symbol has external visibility. */
-
-static bfd_boolean
-external_coff_symbol_p (int sym_class)
-{
- switch (sym_class)
- {
- case C_EXT:
- case C_WEAKEXT:
- return TRUE;
- default:
- break;
- }
- return FALSE;
-}
-
-/* This is the main routine. It looks through all the symbols and
- handles them. */
-
-bfd_boolean
-parse_coff (bfd *abfd, asymbol **syms, long symcount, void *dhandle)
-{
- struct coff_symbols symbols;
- struct coff_types types;
- int i;
- long next_c_file;
- const char *fnname;
- int fnclass;
- int fntype;
- bfd_vma fnend;
- alent *linenos;
- bfd_boolean within_function;
- long this_coff_symno;
-
- symbols.syms = syms;
- symbols.symcount = symcount;
- symbols.symno = 0;
- symbols.coff_symno = 0;
-
- types.slots = NULL;
- for (i = 0; i <= T_MAX; i++)
- types.basic[i] = DEBUG_TYPE_NULL;
-
- next_c_file = -1;
- fnname = NULL;
- fnclass = 0;
- fntype = 0;
- fnend = 0;
- linenos = NULL;
- within_function = FALSE;
-
- while (symbols.symno < symcount)
- {
- asymbol *sym;
- const char *name;
- struct internal_syment syment;
- union internal_auxent auxent;
- union internal_auxent *paux;
- debug_type type;
-
- sym = syms[symbols.symno];
-
- if (! bfd_coff_get_syment (abfd, sym, &syment))
- {
- non_fatal (_("bfd_coff_get_syment failed: %s"),
- bfd_errmsg (bfd_get_error ()));
- return FALSE;
- }
-
- name = bfd_asymbol_name (sym);
-
- this_coff_symno = symbols.coff_symno;
-
- ++symbols.symno;
- symbols.coff_symno += 1 + syment.n_numaux;
-
- /* We only worry about the first auxent, because that is the
- only one which is relevant for debugging information. */
- if (syment.n_numaux == 0)
- paux = NULL;
- else
- {
- if (! bfd_coff_get_auxent (abfd, sym, 0, &auxent))
- {
- non_fatal (_("bfd_coff_get_auxent failed: %s"),
- bfd_errmsg (bfd_get_error ()));
- return FALSE;
- }
- paux = &auxent;
- }
-
- if (this_coff_symno == next_c_file && syment.n_sclass != C_FILE)
- {
- /* The last C_FILE symbol points to the first external
- symbol. */
- if (! debug_set_filename (dhandle, "*globals*"))
- return FALSE;
- }
-
- switch (syment.n_sclass)
- {
- case C_EFCN:
- case C_EXTDEF:
- case C_ULABEL:
- case C_USTATIC:
- case C_LINE:
- case C_ALIAS:
- case C_HIDDEN:
- /* Just ignore these classes. */
- break;
-
- case C_FILE:
- next_c_file = syment.n_value;
- if (! debug_set_filename (dhandle, name))
- return FALSE;
- break;
-
- case C_STAT:
- /* Ignore static symbols with a type of T_NULL. These
- represent section entries. */
- if (syment.n_type == T_NULL)
- break;
- /* Fall through. */
- case C_WEAKEXT:
- case C_EXT:
- if (ISFCN (syment.n_type))
- {
- fnname = name;
- fnclass = syment.n_sclass;
- fntype = syment.n_type;
- if (syment.n_numaux > 0)
- fnend = bfd_asymbol_value (sym) + auxent.x_sym.x_misc.x_fsize;
- else
- fnend = 0;
- linenos = BFD_SEND (abfd, _get_lineno, (abfd, sym));
- break;
- }
- type = parse_coff_type (abfd, &symbols, &types, this_coff_symno,
- syment.n_type, paux, TRUE, dhandle);
- if (type == DEBUG_TYPE_NULL)
- return FALSE;
- if (! parse_coff_symbol (abfd, &types, sym, this_coff_symno, &syment,
- dhandle, type, within_function))
- return FALSE;
- break;
-
- case C_FCN:
- if (strcmp (name, ".bf") == 0)
- {
- if (fnname == NULL)
- {
- non_fatal (_("%ld: .bf without preceding function"),
- this_coff_symno);
- return FALSE;
- }
-
- type = parse_coff_type (abfd, &symbols, &types, this_coff_symno,
- DECREF (fntype), paux, FALSE, dhandle);
- if (type == DEBUG_TYPE_NULL)
- return FALSE;
-
- if (! debug_record_function (dhandle, fnname, type,
- external_coff_symbol_p (fnclass),
- bfd_asymbol_value (sym)))
- return FALSE;
-
- if (linenos != NULL)
- {
- int base;
- bfd_vma addr;
-
- if (syment.n_numaux == 0)
- base = 0;
- else
- base = auxent.x_sym.x_misc.x_lnsz.x_lnno - 1;
-
- addr = bfd_get_section_vma (abfd, bfd_get_section (sym));
-
- ++linenos;
-
- while (linenos->line_number != 0)
- {
- if (! debug_record_line (dhandle,
- linenos->line_number + base,
- linenos->u.offset + addr))
- return FALSE;
- ++linenos;
- }
- }
-
- fnname = NULL;
- linenos = NULL;
- fnclass = 0;
- fntype = 0;
-
- within_function = TRUE;
- }
- else if (strcmp (name, ".ef") == 0)
- {
- if (! within_function)
- {
- non_fatal (_("%ld: unexpected .ef\n"), this_coff_symno);
- return FALSE;
- }
-
- if (bfd_asymbol_value (sym) > fnend)
- fnend = bfd_asymbol_value (sym);
- if (! debug_end_function (dhandle, fnend))
- return FALSE;
-
- fnend = 0;
- within_function = FALSE;
- }
- break;
-
- case C_BLOCK:
- if (strcmp (name, ".bb") == 0)
- {
- if (! debug_start_block (dhandle, bfd_asymbol_value (sym)))
- return FALSE;
- }
- else if (strcmp (name, ".eb") == 0)
- {
- if (! debug_end_block (dhandle, bfd_asymbol_value (sym)))
- return FALSE;
- }
- break;
-
- default:
- type = parse_coff_type (abfd, &symbols, &types, this_coff_symno,
- syment.n_type, paux, TRUE, dhandle);
- if (type == DEBUG_TYPE_NULL)
- return FALSE;
- if (! parse_coff_symbol (abfd, &types, sym, this_coff_symno, &syment,
- dhandle, type, within_function))
- return FALSE;
- break;
- }
- }
-
- return TRUE;
-}
diff --git a/binutils-2.17/binutils/rddbg.c b/binutils-2.17/binutils/rddbg.c
deleted file mode 100644
index e977d8b5..00000000
--- a/binutils-2.17/binutils/rddbg.c
+++ /dev/null
@@ -1,447 +0,0 @@
-/* rddbg.c -- Read debugging information into a generic form.
- Copyright 1995, 1996, 1997, 2000, 2002, 2003, 2005
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor <ian@cygnus.com>.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This file reads debugging information into a generic form. This
- file knows how to dig the debugging information out of an object
- file. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "debug.h"
-#include "budbg.h"
-
-static bfd_boolean read_section_stabs_debugging_info
- (bfd *, asymbol **, long, void *, bfd_boolean *);
-static bfd_boolean read_symbol_stabs_debugging_info
- (bfd *, asymbol **, long, void *, bfd_boolean *);
-static bfd_boolean read_ieee_debugging_info (bfd *, void *, bfd_boolean *);
-static void save_stab (int, int, bfd_vma, const char *);
-static void stab_context (void);
-static void free_saved_stabs (void);
-
-/* Read debugging information from a BFD. Returns a generic debugging
- pointer. */
-
-void *
-read_debugging_info (bfd *abfd, asymbol **syms, long symcount)
-{
- void *dhandle;
- bfd_boolean found;
-
- dhandle = debug_init ();
- if (dhandle == NULL)
- return NULL;
-
- if (! read_section_stabs_debugging_info (abfd, syms, symcount, dhandle,
- &found))
- return NULL;
-
- if (bfd_get_flavour (abfd) == bfd_target_aout_flavour)
- {
- if (! read_symbol_stabs_debugging_info (abfd, syms, symcount, dhandle,
- &found))
- return NULL;
- }
-
- if (bfd_get_flavour (abfd) == bfd_target_ieee_flavour)
- {
- if (! read_ieee_debugging_info (abfd, dhandle, &found))
- return NULL;
- }
-
- /* Try reading the COFF symbols if we didn't find any stabs in COFF
- sections. */
- if (! found
- && bfd_get_flavour (abfd) == bfd_target_coff_flavour
- && symcount > 0)
- {
- if (! parse_coff (abfd, syms, symcount, dhandle))
- return NULL;
- found = TRUE;
- }
-
- if (! found)
- {
- non_fatal (_("%s: no recognized debugging information"),
- bfd_get_filename (abfd));
- return NULL;
- }
-
- return dhandle;
-}
-
-/* Read stabs in sections debugging information from a BFD. */
-
-static bfd_boolean
-read_section_stabs_debugging_info (bfd *abfd, asymbol **syms, long symcount,
- void *dhandle, bfd_boolean *pfound)
-{
- static struct
- {
- const char *secname;
- const char *strsecname;
- }
- names[] =
- {
- { ".stab", ".stabstr" },
- { "LC_SYMTAB.stabs", "LC_SYMTAB.stabstr" },
- { "$GDB_SYMBOLS$", "$GDB_STRINGS$" }
- };
- unsigned int i;
- void *shandle;
-
- *pfound = FALSE;
- shandle = NULL;
-
- for (i = 0; i < sizeof names / sizeof names[0]; i++)
- {
- asection *sec, *strsec;
-
- sec = bfd_get_section_by_name (abfd, names[i].secname);
- strsec = bfd_get_section_by_name (abfd, names[i].strsecname);
- if (sec != NULL && strsec != NULL)
- {
- bfd_size_type stabsize, strsize;
- bfd_byte *stabs, *strings;
- bfd_byte *stab;
- bfd_size_type stroff, next_stroff;
-
- stabsize = bfd_section_size (abfd, sec);
- stabs = (bfd_byte *) xmalloc (stabsize);
- if (! bfd_get_section_contents (abfd, sec, stabs, 0, stabsize))
- {
- fprintf (stderr, "%s: %s: %s\n",
- bfd_get_filename (abfd), names[i].secname,
- bfd_errmsg (bfd_get_error ()));
- return FALSE;
- }
-
- strsize = bfd_section_size (abfd, strsec);
- strings = (bfd_byte *) xmalloc (strsize);
- if (! bfd_get_section_contents (abfd, strsec, strings, 0, strsize))
- {
- fprintf (stderr, "%s: %s: %s\n",
- bfd_get_filename (abfd), names[i].strsecname,
- bfd_errmsg (bfd_get_error ()));
- return FALSE;
- }
-
- if (shandle == NULL)
- {
- shandle = start_stab (dhandle, abfd, TRUE, syms, symcount);
- if (shandle == NULL)
- return FALSE;
- }
-
- *pfound = TRUE;
-
- stroff = 0;
- next_stroff = 0;
- for (stab = stabs; stab < stabs + stabsize; stab += 12)
- {
- unsigned int strx;
- int type;
- int other;
- int desc;
- bfd_vma value;
-
- /* This code presumes 32 bit values. */
-
- strx = bfd_get_32 (abfd, stab);
- type = bfd_get_8 (abfd, stab + 4);
- other = bfd_get_8 (abfd, stab + 5);
- desc = bfd_get_16 (abfd, stab + 6);
- value = bfd_get_32 (abfd, stab + 8);
-
- if (type == 0)
- {
- /* Special type 0 stabs indicate the offset to the
- next string table. */
- stroff = next_stroff;
- next_stroff += value;
- }
- else
- {
- char *f, *s;
-
- f = NULL;
-
- if (stroff + strx > strsize)
- {
- fprintf (stderr, "%s: %s: stab entry %ld is corrupt, strx = 0x%x, type = %d\n",
- bfd_get_filename (abfd), names[i].secname,
- (long) (stab - stabs) / 12, strx, type);
- continue;
- }
-
- s = (char *) strings + stroff + strx;
-
- while (s[strlen (s) - 1] == '\\'
- && stab + 12 < stabs + stabsize)
- {
- char *p;
-
- stab += 12;
- p = s + strlen (s) - 1;
- *p = '\0';
- s = concat (s,
- ((char *) strings
- + stroff
- + bfd_get_32 (abfd, stab)),
- (const char *) NULL);
-
- /* We have to restore the backslash, because, if
- the linker is hashing stabs strings, we may
- see the same string more than once. */
- *p = '\\';
-
- if (f != NULL)
- free (f);
- f = s;
- }
-
- save_stab (type, desc, value, s);
-
- if (! parse_stab (dhandle, shandle, type, desc, value, s))
- {
- stab_context ();
- free_saved_stabs ();
- return FALSE;
- }
-
- /* Don't free f, since I think the stabs code
- expects strings to hang around. This should be
- straightened out. FIXME. */
- }
- }
-
- free_saved_stabs ();
- free (stabs);
-
- /* Don't free strings, since I think the stabs code expects
- the strings to hang around. This should be straightened
- out. FIXME. */
- }
- }
-
- if (shandle != NULL)
- {
- if (! finish_stab (dhandle, shandle))
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Read stabs in the symbol table. */
-
-static bfd_boolean
-read_symbol_stabs_debugging_info (bfd *abfd, asymbol **syms, long symcount,
- void *dhandle, bfd_boolean *pfound)
-{
- void *shandle;
- asymbol **ps, **symend;
-
- shandle = NULL;
- symend = syms + symcount;
- for (ps = syms; ps < symend; ps++)
- {
- symbol_info i;
-
- bfd_get_symbol_info (abfd, *ps, &i);
-
- if (i.type == '-')
- {
- const char *s;
- char *f;
-
- if (shandle == NULL)
- {
- shandle = start_stab (dhandle, abfd, FALSE, syms, symcount);
- if (shandle == NULL)
- return FALSE;
- }
-
- *pfound = TRUE;
-
- s = i.name;
- f = NULL;
- while (s[strlen (s) - 1] == '\\'
- && ps + 1 < symend)
- {
- char *sc, *n;
-
- ++ps;
- sc = xstrdup (s);
- sc[strlen (sc) - 1] = '\0';
- n = concat (sc, bfd_asymbol_name (*ps), (const char *) NULL);
- free (sc);
- if (f != NULL)
- free (f);
- f = n;
- s = n;
- }
-
- save_stab (i.stab_type, i.stab_desc, i.value, s);
-
- if (! parse_stab (dhandle, shandle, i.stab_type, i.stab_desc,
- i.value, s))
- {
- stab_context ();
- free_saved_stabs ();
- return FALSE;
- }
-
- /* Don't free f, since I think the stabs code expects
- strings to hang around. This should be straightened out.
- FIXME. */
- }
- }
-
- free_saved_stabs ();
-
- if (shandle != NULL)
- {
- if (! finish_stab (dhandle, shandle))
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Read IEEE debugging information. */
-
-static bfd_boolean
-read_ieee_debugging_info (bfd *abfd, void *dhandle, bfd_boolean *pfound)
-{
- asection *dsec;
- bfd_size_type size;
- bfd_byte *contents;
-
- /* The BFD backend puts the debugging information into a section
- named .debug. */
-
- dsec = bfd_get_section_by_name (abfd, ".debug");
- if (dsec == NULL)
- return TRUE;
-
- size = bfd_section_size (abfd, dsec);
- contents = (bfd_byte *) xmalloc (size);
- if (! bfd_get_section_contents (abfd, dsec, contents, 0, size))
- return FALSE;
-
- if (! parse_ieee (dhandle, abfd, contents, size))
- return FALSE;
-
- free (contents);
-
- *pfound = TRUE;
-
- return TRUE;
-}
-
-/* Record stabs strings, so that we can give some context for errors. */
-
-#define SAVE_STABS_COUNT (16)
-
-struct saved_stab
-{
- int type;
- int desc;
- bfd_vma value;
- char *string;
-};
-
-static struct saved_stab saved_stabs[SAVE_STABS_COUNT];
-static int saved_stabs_index;
-
-/* Save a stabs string. */
-
-static void
-save_stab (int type, int desc, bfd_vma value, const char *string)
-{
- if (saved_stabs[saved_stabs_index].string != NULL)
- free (saved_stabs[saved_stabs_index].string);
- saved_stabs[saved_stabs_index].type = type;
- saved_stabs[saved_stabs_index].desc = desc;
- saved_stabs[saved_stabs_index].value = value;
- saved_stabs[saved_stabs_index].string = xstrdup (string);
- saved_stabs_index = (saved_stabs_index + 1) % SAVE_STABS_COUNT;
-}
-
-/* Provide context for an error. */
-
-static void
-stab_context (void)
-{
- int i;
-
- fprintf (stderr, _("Last stabs entries before error:\n"));
- fprintf (stderr, "n_type n_desc n_value string\n");
-
- i = saved_stabs_index;
- do
- {
- struct saved_stab *stabp;
-
- stabp = saved_stabs + i;
- if (stabp->string != NULL)
- {
- const char *s;
-
- s = bfd_get_stab_name (stabp->type);
- if (s != NULL)
- fprintf (stderr, "%-6s", s);
- else if (stabp->type == 0)
- fprintf (stderr, "HdrSym");
- else
- fprintf (stderr, "%-6d", stabp->type);
- fprintf (stderr, " %-6d ", stabp->desc);
- fprintf_vma (stderr, stabp->value);
- if (stabp->type != 0)
- fprintf (stderr, " %s", stabp->string);
- fprintf (stderr, "\n");
- }
- i = (i + 1) % SAVE_STABS_COUNT;
- }
- while (i != saved_stabs_index);
-}
-
-/* Free the saved stab strings. */
-
-static void
-free_saved_stabs (void)
-{
- int i;
-
- for (i = 0; i < SAVE_STABS_COUNT; i++)
- {
- if (saved_stabs[i].string != NULL)
- {
- free (saved_stabs[i].string);
- saved_stabs[i].string = NULL;
- }
- }
-
- saved_stabs_index = 0;
-}
diff --git a/binutils-2.17/binutils/readelf.c b/binutils-2.17/binutils/readelf.c
deleted file mode 100644
index d8bd54f4..00000000
--- a/binutils-2.17/binutils/readelf.c
+++ /dev/null
@@ -1,9362 +0,0 @@
-/* readelf.c -- display contents of an ELF format file
- Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
-
- Originally developed by Eric Youngdale <eric@andante.jic.com>
- Modifications by Nick Clifton <nickc@redhat.com>
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* The difference between readelf and objdump:
-
- Both programs are capable of displaying the contents of ELF format files,
- so why does the binutils project have two file dumpers ?
-
- The reason is that objdump sees an ELF file through a BFD filter of the
- world; if BFD has a bug where, say, it disagrees about a machine constant
- in e_flags, then the odds are good that it will remain internally
- consistent. The linker sees it the BFD way, objdump sees it the BFD way,
- GAS sees it the BFD way. There was need for a tool to go find out what
- the file actually says.
-
- This is why the readelf program does not link against the BFD library - it
- exists as an independent program to help verify the correct working of BFD.
-
- There is also the case that readelf can provide more information about an
- ELF file than is provided by objdump. In particular it can display DWARF
- debugging information which (at the moment) objdump cannot. */
-
-#include <assert.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include <time.h>
-
-#if __GNUC__ >= 2
-/* Define BFD64 here, even if our default architecture is 32 bit ELF
- as this will allow us to read in and parse 64bit and 32bit ELF files.
- Only do this if we believe that the compiler can support a 64 bit
- data type. For now we only rely on GCC being able to do this. */
-#define BFD64
-#endif
-
-#include "dwarf.h"
-
-#include "elf/common.h"
-#include "elf/external.h"
-#include "elf/internal.h"
-
-/* The following headers use the elf/reloc-macros.h file to
- automatically generate relocation recognition functions
- such as elf_mips_reloc_type() */
-
-#define RELOC_MACROS_GEN_FUNC
-
-#include "elf/alpha.h"
-#include "elf/arc.h"
-#include "elf/arm.h"
-#include "elf/avr.h"
-#include "elf/bfin.h"
-#include "elf/cris.h"
-#include "elf/d10v.h"
-#include "elf/d30v.h"
-#include "elf/dlx.h"
-#include "elf/fr30.h"
-#include "elf/frv.h"
-#include "elf/h8.h"
-#include "elf/hppa.h"
-#include "elf/i386.h"
-#include "elf/i370.h"
-#include "elf/i860.h"
-#include "elf/i960.h"
-#include "elf/ia64.h"
-#include "elf/ip2k.h"
-#include "elf/m32c.h"
-#include "elf/m32r.h"
-#include "elf/m68k.h"
-#include "elf/m68hc11.h"
-#include "elf/mcore.h"
-#include "elf/mips.h"
-#include "elf/mmix.h"
-#include "elf/mn10200.h"
-#include "elf/mn10300.h"
-#include "elf/mt.h"
-#include "elf/msp430.h"
-#include "elf/or32.h"
-#include "elf/pj.h"
-#include "elf/ppc.h"
-#include "elf/ppc64.h"
-#include "elf/s390.h"
-#include "elf/sh.h"
-#include "elf/sparc.h"
-#include "elf/v850.h"
-#include "elf/vax.h"
-#include "elf/x86-64.h"
-#include "elf/xstormy16.h"
-#include "elf/crx.h"
-#include "elf/iq2000.h"
-#include "elf/xtensa.h"
-
-#include "aout/ar.h"
-
-#include "bucomm.h"
-#include "getopt.h"
-#include "libiberty.h"
-
-char *program_name = "readelf";
-static long archive_file_offset;
-static unsigned long archive_file_size;
-static unsigned long dynamic_addr;
-static bfd_size_type dynamic_size;
-static unsigned int dynamic_nent;
-static char *dynamic_strings;
-static unsigned long dynamic_strings_length;
-static char *string_table;
-static unsigned long string_table_length;
-static unsigned long num_dynamic_syms;
-static Elf_Internal_Sym *dynamic_symbols;
-static Elf_Internal_Syminfo *dynamic_syminfo;
-static unsigned long dynamic_syminfo_offset;
-static unsigned int dynamic_syminfo_nent;
-static char program_interpreter[64];
-static bfd_vma dynamic_info[DT_JMPREL + 1];
-static bfd_vma version_info[16];
-static Elf_Internal_Ehdr elf_header;
-static Elf_Internal_Shdr *section_headers;
-static Elf_Internal_Phdr *program_headers;
-static Elf_Internal_Dyn *dynamic_section;
-static Elf_Internal_Shdr *symtab_shndx_hdr;
-static int show_name;
-static int do_dynamic;
-static int do_syms;
-static int do_reloc;
-static int do_sections;
-static int do_section_groups;
-static int do_section_details;
-static int do_segments;
-static int do_unwind;
-static int do_using_dynamic;
-static int do_header;
-static int do_dump;
-static int do_version;
-static int do_wide;
-static int do_histogram;
-static int do_debugging;
-static int do_arch;
-static int do_notes;
-static int is_32bit_elf;
-
-struct group_list
-{
- struct group_list *next;
- unsigned int section_index;
-};
-
-struct group
-{
- struct group_list *root;
- unsigned int group_index;
-};
-
-static size_t group_count;
-static struct group *section_groups;
-static struct group **section_headers_groups;
-
-/* A linked list of the section names for which dumps were requested
- by name. */
-struct dump_list_entry
-{
- char *name;
- int type;
- struct dump_list_entry *next;
-};
-static struct dump_list_entry *dump_sects_byname;
-
-/* A dynamic array of flags indicating for which sections a hex dump
- has been requested (via the -x switch) and/or a disassembly dump
- (via the -i switch). */
-char *cmdline_dump_sects = NULL;
-unsigned num_cmdline_dump_sects = 0;
-
-/* A dynamic array of flags indicating for which sections a dump of
- some kind has been requested. It is reset on a per-object file
- basis and then initialised from the cmdline_dump_sects array,
- the results of interpreting the -w switch, and the
- dump_sects_byname list. */
-char *dump_sects = NULL;
-unsigned int num_dump_sects = 0;
-
-#define HEX_DUMP (1 << 0)
-#define DISASS_DUMP (1 << 1)
-#define DEBUG_DUMP (1 << 2)
-
-/* How to print a vma value. */
-typedef enum print_mode
-{
- HEX,
- DEC,
- DEC_5,
- UNSIGNED,
- PREFIX_HEX,
- FULL_HEX,
- LONG_HEX
-}
-print_mode;
-
-static void (*byte_put) (unsigned char *, bfd_vma, int);
-
-#define UNKNOWN -1
-
-#define SECTION_NAME(X) ((X) == NULL ? "<none>" : \
- ((X)->sh_name >= string_table_length \
- ? "<corrupt>" : string_table + (X)->sh_name))
-
-/* Given st_shndx I, map to section_headers index. */
-#define SECTION_HEADER_INDEX(I) \
- ((I) < SHN_LORESERVE \
- ? (I) \
- : ((I) <= SHN_HIRESERVE \
- ? 0 \
- : (I) - (SHN_HIRESERVE + 1 - SHN_LORESERVE)))
-
-/* Reverse of the above. */
-#define SECTION_HEADER_NUM(N) \
- ((N) < SHN_LORESERVE \
- ? (N) \
- : (N) + (SHN_HIRESERVE + 1 - SHN_LORESERVE))
-
-#define SECTION_HEADER(I) (section_headers + SECTION_HEADER_INDEX (I))
-
-#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) /* Reverse order! */
-
-#define BYTE_GET(field) byte_get (field, sizeof (field))
-
-#define NUM_ELEM(array) (sizeof (array) / sizeof ((array)[0]))
-
-#define GET_ELF_SYMBOLS(file, section) \
- (is_32bit_elf ? get_32bit_elf_symbols (file, section) \
- : get_64bit_elf_symbols (file, section))
-
-#define VALID_DYNAMIC_NAME(offset) ((dynamic_strings != NULL) && (offset < dynamic_strings_length))
-/* GET_DYNAMIC_NAME asssumes that VALID_DYNAMIC_NAME has
- already been called and verified that the string exists. */
-#define GET_DYNAMIC_NAME(offset) (dynamic_strings + offset)
-
-/* This is just a bit of syntatic sugar. */
-#define streq(a,b) (strcmp ((a), (b)) == 0)
-#define strneq(a,b,n) (strncmp ((a), (b), (n)) == 0)
-
-static void *
-get_data (void *var, FILE *file, long offset, size_t size, size_t nmemb,
- const char *reason)
-{
- void *mvar;
-
- if (size == 0 || nmemb == 0)
- return NULL;
-
- if (fseek (file, archive_file_offset + offset, SEEK_SET))
- {
- error (_("Unable to seek to 0x%lx for %s\n"),
- archive_file_offset + offset, reason);
- return NULL;
- }
-
- mvar = var;
- if (mvar == NULL)
- {
- /* Check for overflow. */
- if (nmemb < (~(size_t) 0 - 1) / size)
- /* + 1 so that we can '\0' terminate invalid string table sections. */
- mvar = malloc (size * nmemb + 1);
-
- if (mvar == NULL)
- {
- error (_("Out of memory allocating 0x%lx bytes for %s\n"),
- (unsigned long)(size * nmemb), reason);
- return NULL;
- }
-
- ((char *) mvar)[size * nmemb] = '\0';
- }
-
- if (fread (mvar, size, nmemb, file) != nmemb)
- {
- error (_("Unable to read in 0x%lx bytes of %s\n"),
- (unsigned long)(size * nmemb), reason);
- if (mvar != var)
- free (mvar);
- return NULL;
- }
-
- return mvar;
-}
-
-static void
-byte_put_little_endian (unsigned char *field, bfd_vma value, int size)
-{
- switch (size)
- {
- case 8:
- field[7] = (((value >> 24) >> 24) >> 8) & 0xff;
- field[6] = ((value >> 24) >> 24) & 0xff;
- field[5] = ((value >> 24) >> 16) & 0xff;
- field[4] = ((value >> 24) >> 8) & 0xff;
- /* Fall through. */
- case 4:
- field[3] = (value >> 24) & 0xff;
- field[2] = (value >> 16) & 0xff;
- /* Fall through. */
- case 2:
- field[1] = (value >> 8) & 0xff;
- /* Fall through. */
- case 1:
- field[0] = value & 0xff;
- break;
-
- default:
- error (_("Unhandled data length: %d\n"), size);
- abort ();
- }
-}
-
-#if defined BFD64 && !BFD_HOST_64BIT_LONG
-static int
-print_dec_vma (bfd_vma vma, int is_signed)
-{
- char buf[40];
- char *bufp = buf;
- int nc = 0;
-
- if (is_signed && (bfd_signed_vma) vma < 0)
- {
- vma = -vma;
- putchar ('-');
- nc = 1;
- }
-
- do
- {
- *bufp++ = '0' + vma % 10;
- vma /= 10;
- }
- while (vma != 0);
- nc += bufp - buf;
-
- while (bufp > buf)
- putchar (*--bufp);
- return nc;
-}
-
-static int
-print_hex_vma (bfd_vma vma)
-{
- char buf[32];
- char *bufp = buf;
- int nc;
-
- do
- {
- char digit = '0' + (vma & 0x0f);
- if (digit > '9')
- digit += 'a' - '0' - 10;
- *bufp++ = digit;
- vma >>= 4;
- }
- while (vma != 0);
- nc = bufp - buf;
-
- while (bufp > buf)
- putchar (*--bufp);
- return nc;
-}
-#endif
-
-/* Print a VMA value. */
-static int
-print_vma (bfd_vma vma, print_mode mode)
-{
-#ifdef BFD64
- if (is_32bit_elf)
-#endif
- {
- switch (mode)
- {
- case FULL_HEX:
- return printf ("0x%8.8lx", (unsigned long) vma);
-
- case LONG_HEX:
- return printf ("%8.8lx", (unsigned long) vma);
-
- case DEC_5:
- if (vma <= 99999)
- return printf ("%5ld", (long) vma);
- /* Drop through. */
-
- case PREFIX_HEX:
- return printf ("0x%lx", (unsigned long) vma);
-
- case HEX:
- return printf ("%lx", (unsigned long) vma);
-
- case DEC:
- return printf ("%ld", (unsigned long) vma);
-
- case UNSIGNED:
- return printf ("%lu", (unsigned long) vma);
- }
- }
-#ifdef BFD64
- else
- {
- int nc = 0;
-
- switch (mode)
- {
- case FULL_HEX:
- nc = printf ("0x");
- /* Drop through. */
-
- case LONG_HEX:
- printf_vma (vma);
- return nc + 16;
-
- case PREFIX_HEX:
- nc = printf ("0x");
- /* Drop through. */
-
- case HEX:
-#if BFD_HOST_64BIT_LONG
- return nc + printf ("%lx", vma);
-#else
- return nc + print_hex_vma (vma);
-#endif
-
- case DEC:
-#if BFD_HOST_64BIT_LONG
- return printf ("%ld", vma);
-#else
- return print_dec_vma (vma, 1);
-#endif
-
- case DEC_5:
-#if BFD_HOST_64BIT_LONG
- if (vma <= 99999)
- return printf ("%5ld", vma);
- else
- return printf ("%#lx", vma);
-#else
- if (vma <= 99999)
- return printf ("%5ld", _bfd_int64_low (vma));
- else
- return print_hex_vma (vma);
-#endif
-
- case UNSIGNED:
-#if BFD_HOST_64BIT_LONG
- return printf ("%lu", vma);
-#else
- return print_dec_vma (vma, 0);
-#endif
- }
- }
-#endif
- return 0;
-}
-
-/* Display a symbol on stdout. If do_wide is not true then
- format the symbol to be at most WIDTH characters,
- truncating as necessary. If WIDTH is negative then
- format the string to be exactly - WIDTH characters,
- truncating or padding as necessary. */
-
-static void
-print_symbol (int width, const char *symbol)
-{
- if (do_wide)
- printf ("%s", symbol);
- else if (width < 0)
- printf ("%-*.*s", width, width, symbol);
- else
- printf ("%-.*s", width, symbol);
-}
-
-static void
-byte_put_big_endian (unsigned char *field, bfd_vma value, int size)
-{
- switch (size)
- {
- case 8:
- field[7] = value & 0xff;
- field[6] = (value >> 8) & 0xff;
- field[5] = (value >> 16) & 0xff;
- field[4] = (value >> 24) & 0xff;
- value >>= 16;
- value >>= 16;
- /* Fall through. */
- case 4:
- field[3] = value & 0xff;
- field[2] = (value >> 8) & 0xff;
- value >>= 16;
- /* Fall through. */
- case 2:
- field[1] = value & 0xff;
- value >>= 8;
- /* Fall through. */
- case 1:
- field[0] = value & 0xff;
- break;
-
- default:
- error (_("Unhandled data length: %d\n"), size);
- abort ();
- }
-}
-
-/* Return a pointer to section NAME, or NULL if no such section exists. */
-
-static Elf_Internal_Shdr *
-find_section (const char *name)
-{
- unsigned int i;
-
- for (i = 0; i < elf_header.e_shnum; i++)
- if (streq (SECTION_NAME (section_headers + i), name))
- return section_headers + i;
-
- return NULL;
-}
-
-/* Guess the relocation size commonly used by the specific machines. */
-
-static int
-guess_is_rela (unsigned long e_machine)
-{
- switch (e_machine)
- {
- /* Targets that use REL relocations. */
- case EM_ARM:
- case EM_386:
- case EM_486:
- case EM_960:
- case EM_DLX:
- case EM_OPENRISC:
- case EM_OR32:
- case EM_CYGNUS_M32R:
- case EM_D10V:
- case EM_CYGNUS_D10V:
- case EM_MIPS:
- case EM_MIPS_RS3_LE:
- return FALSE;
-
- /* Targets that use RELA relocations. */
- case EM_68K:
- case EM_H8_300:
- case EM_H8_300H:
- case EM_H8S:
- case EM_SPARC32PLUS:
- case EM_SPARCV9:
- case EM_SPARC:
- case EM_PPC:
- case EM_PPC64:
- case EM_V850:
- case EM_CYGNUS_V850:
- case EM_D30V:
- case EM_CYGNUS_D30V:
- case EM_MN10200:
- case EM_CYGNUS_MN10200:
- case EM_MN10300:
- case EM_CYGNUS_MN10300:
- case EM_FR30:
- case EM_CYGNUS_FR30:
- case EM_CYGNUS_FRV:
- case EM_SH:
- case EM_ALPHA:
- case EM_MCORE:
- case EM_IA_64:
- case EM_AVR:
- case EM_AVR_OLD:
- case EM_CRIS:
- case EM_860:
- case EM_X86_64:
- case EM_S390:
- case EM_S390_OLD:
- case EM_MMIX:
- case EM_MSP430:
- case EM_MSP430_OLD:
- case EM_XSTORMY16:
- case EM_CRX:
- case EM_VAX:
- case EM_IP2K:
- case EM_IP2K_OLD:
- case EM_IQ2000:
- case EM_XTENSA:
- case EM_XTENSA_OLD:
- case EM_M32R:
- case EM_M32C:
- case EM_MT:
- case EM_BLACKFIN:
- case EM_NIOS32:
- case EM_ALTERA_NIOS2:
- return TRUE;
-
- case EM_MMA:
- case EM_PCP:
- case EM_NCPU:
- case EM_NDR1:
- case EM_STARCORE:
- case EM_ME16:
- case EM_ST100:
- case EM_TINYJ:
- case EM_FX66:
- case EM_ST9PLUS:
- case EM_ST7:
- case EM_68HC16:
- case EM_68HC11:
- case EM_68HC08:
- case EM_68HC05:
- case EM_SVX:
- case EM_ST19:
- default:
- warn (_("Don't know about relocations on this machine architecture\n"));
- return FALSE;
- }
-}
-
-static int
-slurp_rela_relocs (FILE *file,
- unsigned long rel_offset,
- unsigned long rel_size,
- Elf_Internal_Rela **relasp,
- unsigned long *nrelasp)
-{
- Elf_Internal_Rela *relas;
- unsigned long nrelas;
- unsigned int i;
-
- if (is_32bit_elf)
- {
- Elf32_External_Rela *erelas;
-
- erelas = get_data (NULL, file, rel_offset, 1, rel_size, _("relocs"));
- if (!erelas)
- return 0;
-
- nrelas = rel_size / sizeof (Elf32_External_Rela);
-
- relas = cmalloc (nrelas, sizeof (Elf_Internal_Rela));
-
- if (relas == NULL)
- {
- free (erelas);
- error (_("out of memory parsing relocs"));
- return 0;
- }
-
- for (i = 0; i < nrelas; i++)
- {
- relas[i].r_offset = BYTE_GET (erelas[i].r_offset);
- relas[i].r_info = BYTE_GET (erelas[i].r_info);
- relas[i].r_addend = BYTE_GET (erelas[i].r_addend);
- }
-
- free (erelas);
- }
- else
- {
- Elf64_External_Rela *erelas;
-
- erelas = get_data (NULL, file, rel_offset, 1, rel_size, _("relocs"));
- if (!erelas)
- return 0;
-
- nrelas = rel_size / sizeof (Elf64_External_Rela);
-
- relas = cmalloc (nrelas, sizeof (Elf_Internal_Rela));
-
- if (relas == NULL)
- {
- free (erelas);
- error (_("out of memory parsing relocs"));
- return 0;
- }
-
- for (i = 0; i < nrelas; i++)
- {
- relas[i].r_offset = BYTE_GET (erelas[i].r_offset);
- relas[i].r_info = BYTE_GET (erelas[i].r_info);
- relas[i].r_addend = BYTE_GET (erelas[i].r_addend);
- }
-
- free (erelas);
- }
- *relasp = relas;
- *nrelasp = nrelas;
- return 1;
-}
-
-static int
-slurp_rel_relocs (FILE *file,
- unsigned long rel_offset,
- unsigned long rel_size,
- Elf_Internal_Rela **relsp,
- unsigned long *nrelsp)
-{
- Elf_Internal_Rela *rels;
- unsigned long nrels;
- unsigned int i;
-
- if (is_32bit_elf)
- {
- Elf32_External_Rel *erels;
-
- erels = get_data (NULL, file, rel_offset, 1, rel_size, _("relocs"));
- if (!erels)
- return 0;
-
- nrels = rel_size / sizeof (Elf32_External_Rel);
-
- rels = cmalloc (nrels, sizeof (Elf_Internal_Rela));
-
- if (rels == NULL)
- {
- free (erels);
- error (_("out of memory parsing relocs"));
- return 0;
- }
-
- for (i = 0; i < nrels; i++)
- {
- rels[i].r_offset = BYTE_GET (erels[i].r_offset);
- rels[i].r_info = BYTE_GET (erels[i].r_info);
- rels[i].r_addend = 0;
- }
-
- free (erels);
- }
- else
- {
- Elf64_External_Rel *erels;
-
- erels = get_data (NULL, file, rel_offset, 1, rel_size, _("relocs"));
- if (!erels)
- return 0;
-
- nrels = rel_size / sizeof (Elf64_External_Rel);
-
- rels = cmalloc (nrels, sizeof (Elf_Internal_Rela));
-
- if (rels == NULL)
- {
- free (erels);
- error (_("out of memory parsing relocs"));
- return 0;
- }
-
- for (i = 0; i < nrels; i++)
- {
- rels[i].r_offset = BYTE_GET (erels[i].r_offset);
- rels[i].r_info = BYTE_GET (erels[i].r_info);
- rels[i].r_addend = 0;
- }
-
- free (erels);
- }
- *relsp = rels;
- *nrelsp = nrels;
- return 1;
-}
-
-/* Display the contents of the relocation data found at the specified
- offset. */
-
-static int
-dump_relocations (FILE *file,
- unsigned long rel_offset,
- unsigned long rel_size,
- Elf_Internal_Sym *symtab,
- unsigned long nsyms,
- char *strtab,
- unsigned long strtablen,
- int is_rela)
-{
- unsigned int i;
- Elf_Internal_Rela *rels;
-
-
- if (is_rela == UNKNOWN)
- is_rela = guess_is_rela (elf_header.e_machine);
-
- if (is_rela)
- {
- if (!slurp_rela_relocs (file, rel_offset, rel_size, &rels, &rel_size))
- return 0;
- }
- else
- {
- if (!slurp_rel_relocs (file, rel_offset, rel_size, &rels, &rel_size))
- return 0;
- }
-
- if (is_32bit_elf)
- {
- if (is_rela)
- {
- if (do_wide)
- printf (_(" Offset Info Type Sym. Value Symbol's Name + Addend\n"));
- else
- printf (_(" Offset Info Type Sym.Value Sym. Name + Addend\n"));
- }
- else
- {
- if (do_wide)
- printf (_(" Offset Info Type Sym. Value Symbol's Name\n"));
- else
- printf (_(" Offset Info Type Sym.Value Sym. Name\n"));
- }
- }
- else
- {
- if (is_rela)
- {
- if (do_wide)
- printf (_(" Offset Info Type Symbol's Value Symbol's Name + Addend\n"));
- else
- printf (_(" Offset Info Type Sym. Value Sym. Name + Addend\n"));
- }
- else
- {
- if (do_wide)
- printf (_(" Offset Info Type Symbol's Value Symbol's Name\n"));
- else
- printf (_(" Offset Info Type Sym. Value Sym. Name\n"));
- }
- }
-
- for (i = 0; i < rel_size; i++)
- {
- const char *rtype;
- const char *rtype2 = NULL;
- const char *rtype3 = NULL;
- bfd_vma offset;
- bfd_vma info;
- bfd_vma symtab_index;
- bfd_vma type;
- bfd_vma type2 = 0;
- bfd_vma type3 = 0;
-
- offset = rels[i].r_offset;
- info = rels[i].r_info;
-
- if (is_32bit_elf)
- {
- type = ELF32_R_TYPE (info);
- symtab_index = ELF32_R_SYM (info);
- }
- else
- {
- /* The #ifdef BFD64 below is to prevent a compile time warning.
- We know that if we do not have a 64 bit data type that we
- will never execute this code anyway. */
-#ifdef BFD64
- if (elf_header.e_machine == EM_MIPS)
- {
- /* In little-endian objects, r_info isn't really a 64-bit
- little-endian value: it has a 32-bit little-endian
- symbol index followed by four individual byte fields.
- Reorder INFO accordingly. */
- if (elf_header.e_ident[EI_DATA] != ELFDATA2MSB)
- info = (((info & 0xffffffff) << 32)
- | ((info >> 56) & 0xff)
- | ((info >> 40) & 0xff00)
- | ((info >> 24) & 0xff0000)
- | ((info >> 8) & 0xff000000));
- type = ELF64_MIPS_R_TYPE (info);
- type2 = ELF64_MIPS_R_TYPE2 (info);
- type3 = ELF64_MIPS_R_TYPE3 (info);
- }
- else if (elf_header.e_machine == EM_SPARCV9)
- type = ELF64_R_TYPE_ID (info);
- else
- type = ELF64_R_TYPE (info);
-
- symtab_index = ELF64_R_SYM (info);
-#endif
- }
-
- if (is_32bit_elf)
- {
-#ifdef _bfd_int64_low
- printf ("%8.8lx %8.8lx ", _bfd_int64_low (offset), _bfd_int64_low (info));
-#else
- printf ("%8.8lx %8.8lx ", offset, info);
-#endif
- }
- else
- {
-#ifdef _bfd_int64_low
- printf (do_wide
- ? "%8.8lx%8.8lx %8.8lx%8.8lx "
- : "%4.4lx%8.8lx %4.4lx%8.8lx ",
- _bfd_int64_high (offset),
- _bfd_int64_low (offset),
- _bfd_int64_high (info),
- _bfd_int64_low (info));
-#else
- printf (do_wide
- ? "%16.16lx %16.16lx "
- : "%12.12lx %12.12lx ",
- offset, info);
-#endif
- }
-
- switch (elf_header.e_machine)
- {
- default:
- rtype = NULL;
- break;
-
- case EM_M32R:
- case EM_CYGNUS_M32R:
- rtype = elf_m32r_reloc_type (type);
- break;
-
- case EM_386:
- case EM_486:
- rtype = elf_i386_reloc_type (type);
- break;
-
- case EM_68HC11:
- case EM_68HC12:
- rtype = elf_m68hc11_reloc_type (type);
- break;
-
- case EM_68K:
- rtype = elf_m68k_reloc_type (type);
- break;
-
- case EM_960:
- rtype = elf_i960_reloc_type (type);
- break;
-
- case EM_AVR:
- case EM_AVR_OLD:
- rtype = elf_avr_reloc_type (type);
- break;
-
- case EM_OLD_SPARCV9:
- case EM_SPARC32PLUS:
- case EM_SPARCV9:
- case EM_SPARC:
- rtype = elf_sparc_reloc_type (type);
- break;
-
- case EM_V850:
- case EM_CYGNUS_V850:
- rtype = v850_reloc_type (type);
- break;
-
- case EM_D10V:
- case EM_CYGNUS_D10V:
- rtype = elf_d10v_reloc_type (type);
- break;
-
- case EM_D30V:
- case EM_CYGNUS_D30V:
- rtype = elf_d30v_reloc_type (type);
- break;
-
- case EM_DLX:
- rtype = elf_dlx_reloc_type (type);
- break;
-
- case EM_SH:
- rtype = elf_sh_reloc_type (type);
- break;
-
- case EM_MN10300:
- case EM_CYGNUS_MN10300:
- rtype = elf_mn10300_reloc_type (type);
- break;
-
- case EM_MN10200:
- case EM_CYGNUS_MN10200:
- rtype = elf_mn10200_reloc_type (type);
- break;
-
- case EM_FR30:
- case EM_CYGNUS_FR30:
- rtype = elf_fr30_reloc_type (type);
- break;
-
- case EM_CYGNUS_FRV:
- rtype = elf_frv_reloc_type (type);
- break;
-
- case EM_MCORE:
- rtype = elf_mcore_reloc_type (type);
- break;
-
- case EM_MMIX:
- rtype = elf_mmix_reloc_type (type);
- break;
-
- case EM_MSP430:
- case EM_MSP430_OLD:
- rtype = elf_msp430_reloc_type (type);
- break;
-
- case EM_PPC:
- rtype = elf_ppc_reloc_type (type);
- break;
-
- case EM_PPC64:
- rtype = elf_ppc64_reloc_type (type);
- break;
-
- case EM_MIPS:
- case EM_MIPS_RS3_LE:
- rtype = elf_mips_reloc_type (type);
- if (!is_32bit_elf)
- {
- rtype2 = elf_mips_reloc_type (type2);
- rtype3 = elf_mips_reloc_type (type3);
- }
- break;
-
- case EM_ALPHA:
- rtype = elf_alpha_reloc_type (type);
- break;
-
- case EM_ARM:
- rtype = elf_arm_reloc_type (type);
- break;
-
- case EM_ARC:
- rtype = elf_arc_reloc_type (type);
- break;
-
- case EM_PARISC:
- rtype = elf_hppa_reloc_type (type);
- break;
-
- case EM_H8_300:
- case EM_H8_300H:
- case EM_H8S:
- rtype = elf_h8_reloc_type (type);
- break;
-
- case EM_OPENRISC:
- case EM_OR32:
- rtype = elf_or32_reloc_type (type);
- break;
-
- case EM_PJ:
- case EM_PJ_OLD:
- rtype = elf_pj_reloc_type (type);
- break;
- case EM_IA_64:
- rtype = elf_ia64_reloc_type (type);
- break;
-
- case EM_CRIS:
- rtype = elf_cris_reloc_type (type);
- break;
-
- case EM_860:
- rtype = elf_i860_reloc_type (type);
- break;
-
- case EM_X86_64:
- rtype = elf_x86_64_reloc_type (type);
- break;
-
- case EM_S370:
- rtype = i370_reloc_type (type);
- break;
-
- case EM_S390_OLD:
- case EM_S390:
- rtype = elf_s390_reloc_type (type);
- break;
-
- case EM_XSTORMY16:
- rtype = elf_xstormy16_reloc_type (type);
- break;
-
- case EM_CRX:
- rtype = elf_crx_reloc_type (type);
- break;
-
- case EM_VAX:
- rtype = elf_vax_reloc_type (type);
- break;
-
- case EM_IP2K:
- case EM_IP2K_OLD:
- rtype = elf_ip2k_reloc_type (type);
- break;
-
- case EM_IQ2000:
- rtype = elf_iq2000_reloc_type (type);
- break;
-
- case EM_XTENSA_OLD:
- case EM_XTENSA:
- rtype = elf_xtensa_reloc_type (type);
- break;
-
- case EM_M32C:
- rtype = elf_m32c_reloc_type (type);
- break;
-
- case EM_MT:
- rtype = elf_mt_reloc_type (type);
- break;
-
- case EM_BLACKFIN:
- rtype = elf_bfin_reloc_type (type);
- break;
-
- }
-
- if (rtype == NULL)
-#ifdef _bfd_int64_low
- printf (_("unrecognized: %-7lx"), _bfd_int64_low (type));
-#else
- printf (_("unrecognized: %-7lx"), type);
-#endif
- else
- printf (do_wide ? "%-22.22s" : "%-17.17s", rtype);
-
- if (elf_header.e_machine == EM_ALPHA
- && streq (rtype, "R_ALPHA_LITUSE")
- && is_rela)
- {
- switch (rels[i].r_addend)
- {
- case LITUSE_ALPHA_ADDR: rtype = "ADDR"; break;
- case LITUSE_ALPHA_BASE: rtype = "BASE"; break;
- case LITUSE_ALPHA_BYTOFF: rtype = "BYTOFF"; break;
- case LITUSE_ALPHA_JSR: rtype = "JSR"; break;
- case LITUSE_ALPHA_TLSGD: rtype = "TLSGD"; break;
- case LITUSE_ALPHA_TLSLDM: rtype = "TLSLDM"; break;
- case LITUSE_ALPHA_JSRDIRECT: rtype = "JSRDIRECT"; break;
- default: rtype = NULL;
- }
- if (rtype)
- printf (" (%s)", rtype);
- else
- {
- putchar (' ');
- printf (_("<unknown addend: %lx>"),
- (unsigned long) rels[i].r_addend);
- }
- }
- else if (symtab_index)
- {
- if (symtab == NULL || symtab_index >= nsyms)
- printf (" bad symbol index: %08lx", (unsigned long) symtab_index);
- else
- {
- Elf_Internal_Sym *psym;
-
- psym = symtab + symtab_index;
-
- printf (" ");
- print_vma (psym->st_value, LONG_HEX);
- printf (is_32bit_elf ? " " : " ");
-
- if (psym->st_name == 0)
- {
- const char *sec_name = "<null>";
- char name_buf[40];
-
- if (ELF_ST_TYPE (psym->st_info) == STT_SECTION)
- {
- bfd_vma sec_index = (bfd_vma) -1;
-
- if (psym->st_shndx < SHN_LORESERVE)
- sec_index = psym->st_shndx;
- else if (psym->st_shndx > SHN_HIRESERVE)
- sec_index = psym->st_shndx - (SHN_HIRESERVE + 1
- - SHN_LORESERVE);
-
- if (sec_index != (bfd_vma) -1)
- sec_name = SECTION_NAME (section_headers + sec_index);
- else if (psym->st_shndx == SHN_ABS)
- sec_name = "ABS";
- else if (psym->st_shndx == SHN_COMMON)
- sec_name = "COMMON";
- else if (elf_header.e_machine == EM_X86_64
- && psym->st_shndx == SHN_X86_64_LCOMMON)
- sec_name = "LARGE_COMMON";
- else if (elf_header.e_machine == EM_IA_64
- && elf_header.e_ident[EI_OSABI] == ELFOSABI_HPUX
- && psym->st_shndx == SHN_IA_64_ANSI_COMMON)
- sec_name = "ANSI_COM";
- else
- {
- sprintf (name_buf, "<section 0x%x>",
- (unsigned int) psym->st_shndx);
- sec_name = name_buf;
- }
- }
- print_symbol (22, sec_name);
- }
- else if (strtab == NULL)
- printf (_("<string table index: %3ld>"), psym->st_name);
- else if (psym->st_name >= strtablen)
- printf (_("<corrupt string table index: %3ld>"), psym->st_name);
- else
- print_symbol (22, strtab + psym->st_name);
-
- if (is_rela)
- printf (" + %lx", (unsigned long) rels[i].r_addend);
- }
- }
- else if (is_rela)
- {
- printf ("%*c", is_32bit_elf ?
- (do_wide ? 34 : 28) : (do_wide ? 26 : 20), ' ');
- print_vma (rels[i].r_addend, LONG_HEX);
- }
-
- if (elf_header.e_machine == EM_SPARCV9 && streq (rtype, "R_SPARC_OLO10"))
- printf (" + %lx", (unsigned long) ELF64_R_TYPE_DATA (info));
-
- putchar ('\n');
-
- if (! is_32bit_elf && elf_header.e_machine == EM_MIPS)
- {
- printf (" Type2: ");
-
- if (rtype2 == NULL)
-#ifdef _bfd_int64_low
- printf (_("unrecognized: %-7lx"), _bfd_int64_low (type2));
-#else
- printf (_("unrecognized: %-7lx"), type2);
-#endif
- else
- printf ("%-17.17s", rtype2);
-
- printf ("\n Type3: ");
-
- if (rtype3 == NULL)
-#ifdef _bfd_int64_low
- printf (_("unrecognized: %-7lx"), _bfd_int64_low (type3));
-#else
- printf (_("unrecognized: %-7lx"), type3);
-#endif
- else
- printf ("%-17.17s", rtype3);
-
- putchar ('\n');
- }
- }
-
- free (rels);
-
- return 1;
-}
-
-static const char *
-get_mips_dynamic_type (unsigned long type)
-{
- switch (type)
- {
- case DT_MIPS_RLD_VERSION: return "MIPS_RLD_VERSION";
- case DT_MIPS_TIME_STAMP: return "MIPS_TIME_STAMP";
- case DT_MIPS_ICHECKSUM: return "MIPS_ICHECKSUM";
- case DT_MIPS_IVERSION: return "MIPS_IVERSION";
- case DT_MIPS_FLAGS: return "MIPS_FLAGS";
- case DT_MIPS_BASE_ADDRESS: return "MIPS_BASE_ADDRESS";
- case DT_MIPS_MSYM: return "MIPS_MSYM";
- case DT_MIPS_CONFLICT: return "MIPS_CONFLICT";
- case DT_MIPS_LIBLIST: return "MIPS_LIBLIST";
- case DT_MIPS_LOCAL_GOTNO: return "MIPS_LOCAL_GOTNO";
- case DT_MIPS_CONFLICTNO: return "MIPS_CONFLICTNO";
- case DT_MIPS_LIBLISTNO: return "MIPS_LIBLISTNO";
- case DT_MIPS_SYMTABNO: return "MIPS_SYMTABNO";
- case DT_MIPS_UNREFEXTNO: return "MIPS_UNREFEXTNO";
- case DT_MIPS_GOTSYM: return "MIPS_GOTSYM";
- case DT_MIPS_HIPAGENO: return "MIPS_HIPAGENO";
- case DT_MIPS_RLD_MAP: return "MIPS_RLD_MAP";
- case DT_MIPS_DELTA_CLASS: return "MIPS_DELTA_CLASS";
- case DT_MIPS_DELTA_CLASS_NO: return "MIPS_DELTA_CLASS_NO";
- case DT_MIPS_DELTA_INSTANCE: return "MIPS_DELTA_INSTANCE";
- case DT_MIPS_DELTA_INSTANCE_NO: return "MIPS_DELTA_INSTANCE_NO";
- case DT_MIPS_DELTA_RELOC: return "MIPS_DELTA_RELOC";
- case DT_MIPS_DELTA_RELOC_NO: return "MIPS_DELTA_RELOC_NO";
- case DT_MIPS_DELTA_SYM: return "MIPS_DELTA_SYM";
- case DT_MIPS_DELTA_SYM_NO: return "MIPS_DELTA_SYM_NO";
- case DT_MIPS_DELTA_CLASSSYM: return "MIPS_DELTA_CLASSSYM";
- case DT_MIPS_DELTA_CLASSSYM_NO: return "MIPS_DELTA_CLASSSYM_NO";
- case DT_MIPS_CXX_FLAGS: return "MIPS_CXX_FLAGS";
- case DT_MIPS_PIXIE_INIT: return "MIPS_PIXIE_INIT";
- case DT_MIPS_SYMBOL_LIB: return "MIPS_SYMBOL_LIB";
- case DT_MIPS_LOCALPAGE_GOTIDX: return "MIPS_LOCALPAGE_GOTIDX";
- case DT_MIPS_LOCAL_GOTIDX: return "MIPS_LOCAL_GOTIDX";
- case DT_MIPS_HIDDEN_GOTIDX: return "MIPS_HIDDEN_GOTIDX";
- case DT_MIPS_PROTECTED_GOTIDX: return "MIPS_PROTECTED_GOTIDX";
- case DT_MIPS_OPTIONS: return "MIPS_OPTIONS";
- case DT_MIPS_INTERFACE: return "MIPS_INTERFACE";
- case DT_MIPS_DYNSTR_ALIGN: return "MIPS_DYNSTR_ALIGN";
- case DT_MIPS_INTERFACE_SIZE: return "MIPS_INTERFACE_SIZE";
- case DT_MIPS_RLD_TEXT_RESOLVE_ADDR: return "MIPS_RLD_TEXT_RESOLVE_ADDR";
- case DT_MIPS_PERF_SUFFIX: return "MIPS_PERF_SUFFIX";
- case DT_MIPS_COMPACT_SIZE: return "MIPS_COMPACT_SIZE";
- case DT_MIPS_GP_VALUE: return "MIPS_GP_VALUE";
- case DT_MIPS_AUX_DYNAMIC: return "MIPS_AUX_DYNAMIC";
- default:
- return NULL;
- }
-}
-
-static const char *
-get_sparc64_dynamic_type (unsigned long type)
-{
- switch (type)
- {
- case DT_SPARC_REGISTER: return "SPARC_REGISTER";
- default:
- return NULL;
- }
-}
-
-static const char *
-get_ppc_dynamic_type (unsigned long type)
-{
- switch (type)
- {
- case DT_PPC_GOT: return "PPC_GOT";
- default:
- return NULL;
- }
-}
-
-static const char *
-get_ppc64_dynamic_type (unsigned long type)
-{
- switch (type)
- {
- case DT_PPC64_GLINK: return "PPC64_GLINK";
- case DT_PPC64_OPD: return "PPC64_OPD";
- case DT_PPC64_OPDSZ: return "PPC64_OPDSZ";
- default:
- return NULL;
- }
-}
-
-static const char *
-get_parisc_dynamic_type (unsigned long type)
-{
- switch (type)
- {
- case DT_HP_LOAD_MAP: return "HP_LOAD_MAP";
- case DT_HP_DLD_FLAGS: return "HP_DLD_FLAGS";
- case DT_HP_DLD_HOOK: return "HP_DLD_HOOK";
- case DT_HP_UX10_INIT: return "HP_UX10_INIT";
- case DT_HP_UX10_INITSZ: return "HP_UX10_INITSZ";
- case DT_HP_PREINIT: return "HP_PREINIT";
- case DT_HP_PREINITSZ: return "HP_PREINITSZ";
- case DT_HP_NEEDED: return "HP_NEEDED";
- case DT_HP_TIME_STAMP: return "HP_TIME_STAMP";
- case DT_HP_CHECKSUM: return "HP_CHECKSUM";
- case DT_HP_GST_SIZE: return "HP_GST_SIZE";
- case DT_HP_GST_VERSION: return "HP_GST_VERSION";
- case DT_HP_GST_HASHVAL: return "HP_GST_HASHVAL";
- case DT_HP_EPLTREL: return "HP_GST_EPLTREL";
- case DT_HP_EPLTRELSZ: return "HP_GST_EPLTRELSZ";
- case DT_HP_FILTERED: return "HP_FILTERED";
- case DT_HP_FILTER_TLS: return "HP_FILTER_TLS";
- case DT_HP_COMPAT_FILTERED: return "HP_COMPAT_FILTERED";
- case DT_HP_LAZYLOAD: return "HP_LAZYLOAD";
- case DT_HP_BIND_NOW_COUNT: return "HP_BIND_NOW_COUNT";
- case DT_PLT: return "PLT";
- case DT_PLT_SIZE: return "PLT_SIZE";
- case DT_DLT: return "DLT";
- case DT_DLT_SIZE: return "DLT_SIZE";
- default:
- return NULL;
- }
-}
-
-static const char *
-get_ia64_dynamic_type (unsigned long type)
-{
- switch (type)
- {
- case DT_IA_64_PLT_RESERVE: return "IA_64_PLT_RESERVE";
- default:
- return NULL;
- }
-}
-
-static const char *
-get_alpha_dynamic_type (unsigned long type)
-{
- switch (type)
- {
- case DT_ALPHA_PLTRO: return "ALPHA_PLTRO";
- default:
- return NULL;
- }
-}
-
-static const char *
-get_dynamic_type (unsigned long type)
-{
- static char buff[64];
-
- switch (type)
- {
- case DT_NULL: return "NULL";
- case DT_NEEDED: return "NEEDED";
- case DT_PLTRELSZ: return "PLTRELSZ";
- case DT_PLTGOT: return "PLTGOT";
- case DT_HASH: return "HASH";
- case DT_STRTAB: return "STRTAB";
- case DT_SYMTAB: return "SYMTAB";
- case DT_RELA: return "RELA";
- case DT_RELASZ: return "RELASZ";
- case DT_RELAENT: return "RELAENT";
- case DT_STRSZ: return "STRSZ";
- case DT_SYMENT: return "SYMENT";
- case DT_INIT: return "INIT";
- case DT_FINI: return "FINI";
- case DT_SONAME: return "SONAME";
- case DT_RPATH: return "RPATH";
- case DT_SYMBOLIC: return "SYMBOLIC";
- case DT_REL: return "REL";
- case DT_RELSZ: return "RELSZ";
- case DT_RELENT: return "RELENT";
- case DT_PLTREL: return "PLTREL";
- case DT_DEBUG: return "DEBUG";
- case DT_TEXTREL: return "TEXTREL";
- case DT_JMPREL: return "JMPREL";
- case DT_BIND_NOW: return "BIND_NOW";
- case DT_INIT_ARRAY: return "INIT_ARRAY";
- case DT_FINI_ARRAY: return "FINI_ARRAY";
- case DT_INIT_ARRAYSZ: return "INIT_ARRAYSZ";
- case DT_FINI_ARRAYSZ: return "FINI_ARRAYSZ";
- case DT_RUNPATH: return "RUNPATH";
- case DT_FLAGS: return "FLAGS";
-
- case DT_PREINIT_ARRAY: return "PREINIT_ARRAY";
- case DT_PREINIT_ARRAYSZ: return "PREINIT_ARRAYSZ";
-
- case DT_CHECKSUM: return "CHECKSUM";
- case DT_PLTPADSZ: return "PLTPADSZ";
- case DT_MOVEENT: return "MOVEENT";
- case DT_MOVESZ: return "MOVESZ";
- case DT_FEATURE: return "FEATURE";
- case DT_POSFLAG_1: return "POSFLAG_1";
- case DT_SYMINSZ: return "SYMINSZ";
- case DT_SYMINENT: return "SYMINENT"; /* aka VALRNGHI */
-
- case DT_ADDRRNGLO: return "ADDRRNGLO";
- case DT_CONFIG: return "CONFIG";
- case DT_DEPAUDIT: return "DEPAUDIT";
- case DT_AUDIT: return "AUDIT";
- case DT_PLTPAD: return "PLTPAD";
- case DT_MOVETAB: return "MOVETAB";
- case DT_SYMINFO: return "SYMINFO"; /* aka ADDRRNGHI */
-
- case DT_VERSYM: return "VERSYM";
-
- case DT_TLSDESC_GOT: return "TLSDESC_GOT";
- case DT_TLSDESC_PLT: return "TLSDESC_PLT";
- case DT_RELACOUNT: return "RELACOUNT";
- case DT_RELCOUNT: return "RELCOUNT";
- case DT_FLAGS_1: return "FLAGS_1";
- case DT_VERDEF: return "VERDEF";
- case DT_VERDEFNUM: return "VERDEFNUM";
- case DT_VERNEED: return "VERNEED";
- case DT_VERNEEDNUM: return "VERNEEDNUM";
-
- case DT_AUXILIARY: return "AUXILIARY";
- case DT_USED: return "USED";
- case DT_FILTER: return "FILTER";
-
- case DT_GNU_PRELINKED: return "GNU_PRELINKED";
- case DT_GNU_CONFLICT: return "GNU_CONFLICT";
- case DT_GNU_CONFLICTSZ: return "GNU_CONFLICTSZ";
- case DT_GNU_LIBLIST: return "GNU_LIBLIST";
- case DT_GNU_LIBLISTSZ: return "GNU_LIBLISTSZ";
-
- default:
- if ((type >= DT_LOPROC) && (type <= DT_HIPROC))
- {
- const char *result;
-
- switch (elf_header.e_machine)
- {
- case EM_MIPS:
- case EM_MIPS_RS3_LE:
- result = get_mips_dynamic_type (type);
- break;
- case EM_SPARCV9:
- result = get_sparc64_dynamic_type (type);
- break;
- case EM_PPC:
- result = get_ppc_dynamic_type (type);
- break;
- case EM_PPC64:
- result = get_ppc64_dynamic_type (type);
- break;
- case EM_IA_64:
- result = get_ia64_dynamic_type (type);
- break;
- case EM_ALPHA:
- result = get_alpha_dynamic_type (type);
- break;
- default:
- result = NULL;
- break;
- }
-
- if (result != NULL)
- return result;
-
- snprintf (buff, sizeof (buff), _("Processor Specific: %lx"), type);
- }
- else if (((type >= DT_LOOS) && (type <= DT_HIOS))
- || (elf_header.e_machine == EM_PARISC
- && (type >= OLD_DT_LOOS) && (type <= OLD_DT_HIOS)))
- {
- const char *result;
-
- switch (elf_header.e_machine)
- {
- case EM_PARISC:
- result = get_parisc_dynamic_type (type);
- break;
- default:
- result = NULL;
- break;
- }
-
- if (result != NULL)
- return result;
-
- snprintf (buff, sizeof (buff), _("Operating System specific: %lx"),
- type);
- }
- else
- snprintf (buff, sizeof (buff), _("<unknown>: %lx"), type);
-
- return buff;
- }
-}
-
-static char *
-get_file_type (unsigned e_type)
-{
- static char buff[32];
-
- switch (e_type)
- {
- case ET_NONE: return _("NONE (None)");
- case ET_REL: return _("REL (Relocatable file)");
- case ET_EXEC: return _("EXEC (Executable file)");
- case ET_DYN: return _("DYN (Shared object file)");
- case ET_CORE: return _("CORE (Core file)");
-
- default:
- if ((e_type >= ET_LOPROC) && (e_type <= ET_HIPROC))
- snprintf (buff, sizeof (buff), _("Processor Specific: (%x)"), e_type);
- else if ((e_type >= ET_LOOS) && (e_type <= ET_HIOS))
- snprintf (buff, sizeof (buff), _("OS Specific: (%x)"), e_type);
- else
- snprintf (buff, sizeof (buff), _("<unknown>: %x"), e_type);
- return buff;
- }
-}
-
-static char *
-get_machine_name (unsigned e_machine)
-{
- static char buff[64]; /* XXX */
-
- switch (e_machine)
- {
- case EM_NONE: return _("None");
- case EM_M32: return "WE32100";
- case EM_SPARC: return "Sparc";
- case EM_386: return "Intel 80386";
- case EM_68K: return "MC68000";
- case EM_88K: return "MC88000";
- case EM_486: return "Intel 80486";
- case EM_860: return "Intel 80860";
- case EM_MIPS: return "MIPS R3000";
- case EM_S370: return "IBM System/370";
- case EM_MIPS_RS3_LE: return "MIPS R4000 big-endian";
- case EM_OLD_SPARCV9: return "Sparc v9 (old)";
- case EM_PARISC: return "HPPA";
- case EM_PPC_OLD: return "Power PC (old)";
- case EM_SPARC32PLUS: return "Sparc v8+" ;
- case EM_960: return "Intel 90860";
- case EM_PPC: return "PowerPC";
- case EM_PPC64: return "PowerPC64";
- case EM_V800: return "NEC V800";
- case EM_FR20: return "Fujitsu FR20";
- case EM_RH32: return "TRW RH32";
- case EM_MCORE: return "MCORE";
- case EM_ARM: return "ARM";
- case EM_OLD_ALPHA: return "Digital Alpha (old)";
- case EM_SH: return "Renesas / SuperH SH";
- case EM_SPARCV9: return "Sparc v9";
- case EM_TRICORE: return "Siemens Tricore";
- case EM_ARC: return "ARC";
- case EM_H8_300: return "Renesas H8/300";
- case EM_H8_300H: return "Renesas H8/300H";
- case EM_H8S: return "Renesas H8S";
- case EM_H8_500: return "Renesas H8/500";
- case EM_IA_64: return "Intel IA-64";
- case EM_MIPS_X: return "Stanford MIPS-X";
- case EM_COLDFIRE: return "Motorola Coldfire";
- case EM_68HC12: return "Motorola M68HC12";
- case EM_ALPHA: return "Alpha";
- case EM_CYGNUS_D10V:
- case EM_D10V: return "d10v";
- case EM_CYGNUS_D30V:
- case EM_D30V: return "d30v";
- case EM_CYGNUS_M32R:
- case EM_M32R: return "Renesas M32R (formerly Mitsubishi M32r)";
- case EM_CYGNUS_V850:
- case EM_V850: return "NEC v850";
- case EM_CYGNUS_MN10300:
- case EM_MN10300: return "mn10300";
- case EM_CYGNUS_MN10200:
- case EM_MN10200: return "mn10200";
- case EM_CYGNUS_FR30:
- case EM_FR30: return "Fujitsu FR30";
- case EM_CYGNUS_FRV: return "Fujitsu FR-V";
- case EM_PJ_OLD:
- case EM_PJ: return "picoJava";
- case EM_MMA: return "Fujitsu Multimedia Accelerator";
- case EM_PCP: return "Siemens PCP";
- case EM_NCPU: return "Sony nCPU embedded RISC processor";
- case EM_NDR1: return "Denso NDR1 microprocesspr";
- case EM_STARCORE: return "Motorola Star*Core processor";
- case EM_ME16: return "Toyota ME16 processor";
- case EM_ST100: return "STMicroelectronics ST100 processor";
- case EM_TINYJ: return "Advanced Logic Corp. TinyJ embedded processor";
- case EM_FX66: return "Siemens FX66 microcontroller";
- case EM_ST9PLUS: return "STMicroelectronics ST9+ 8/16 bit microcontroller";
- case EM_ST7: return "STMicroelectronics ST7 8-bit microcontroller";
- case EM_68HC16: return "Motorola MC68HC16 Microcontroller";
- case EM_68HC11: return "Motorola MC68HC11 Microcontroller";
- case EM_68HC08: return "Motorola MC68HC08 Microcontroller";
- case EM_68HC05: return "Motorola MC68HC05 Microcontroller";
- case EM_SVX: return "Silicon Graphics SVx";
- case EM_ST19: return "STMicroelectronics ST19 8-bit microcontroller";
- case EM_VAX: return "Digital VAX";
- case EM_AVR_OLD:
- case EM_AVR: return "Atmel AVR 8-bit microcontroller";
- case EM_CRIS: return "Axis Communications 32-bit embedded processor";
- case EM_JAVELIN: return "Infineon Technologies 32-bit embedded cpu";
- case EM_FIREPATH: return "Element 14 64-bit DSP processor";
- case EM_ZSP: return "LSI Logic's 16-bit DSP processor";
- case EM_MMIX: return "Donald Knuth's educational 64-bit processor";
- case EM_HUANY: return "Harvard Universitys's machine-independent object format";
- case EM_PRISM: return "Vitesse Prism";
- case EM_X86_64: return "Advanced Micro Devices X86-64";
- case EM_S390_OLD:
- case EM_S390: return "IBM S/390";
- case EM_XSTORMY16: return "Sanyo Xstormy16 CPU core";
- case EM_OPENRISC:
- case EM_OR32: return "OpenRISC";
- case EM_CRX: return "National Semiconductor CRX microprocessor";
- case EM_DLX: return "OpenDLX";
- case EM_IP2K_OLD:
- case EM_IP2K: return "Ubicom IP2xxx 8-bit microcontrollers";
- case EM_IQ2000: return "Vitesse IQ2000";
- case EM_XTENSA_OLD:
- case EM_XTENSA: return "Tensilica Xtensa Processor";
- case EM_M32C: return "Renesas M32c";
- case EM_MT: return "Morpho Techologies MT processor";
- case EM_BLACKFIN: return "Analog Devices Blackfin";
- case EM_NIOS32: return "Altera Nios";
- case EM_ALTERA_NIOS2: return "Altera Nios II";
- case EM_XC16X: return "Infineon Technologies xc16x";
- default:
- snprintf (buff, sizeof (buff), _("<unknown>: %x"), e_machine);
- return buff;
- }
-}
-
-static void
-decode_ARM_machine_flags (unsigned e_flags, char buf[])
-{
- unsigned eabi;
- int unknown = 0;
-
- eabi = EF_ARM_EABI_VERSION (e_flags);
- e_flags &= ~ EF_ARM_EABIMASK;
-
- /* Handle "generic" ARM flags. */
- if (e_flags & EF_ARM_RELEXEC)
- {
- strcat (buf, ", relocatable executable");
- e_flags &= ~ EF_ARM_RELEXEC;
- }
-
- if (e_flags & EF_ARM_HASENTRY)
- {
- strcat (buf, ", has entry point");
- e_flags &= ~ EF_ARM_HASENTRY;
- }
-
- /* Now handle EABI specific flags. */
- switch (eabi)
- {
- default:
- strcat (buf, ", <unrecognized EABI>");
- if (e_flags)
- unknown = 1;
- break;
-
- case EF_ARM_EABI_VER1:
- strcat (buf, ", Version1 EABI");
- while (e_flags)
- {
- unsigned flag;
-
- /* Process flags one bit at a time. */
- flag = e_flags & - e_flags;
- e_flags &= ~ flag;
-
- switch (flag)
- {
- case EF_ARM_SYMSARESORTED: /* Conflicts with EF_ARM_INTERWORK. */
- strcat (buf, ", sorted symbol tables");
- break;
-
- default:
- unknown = 1;
- break;
- }
- }
- break;
-
- case EF_ARM_EABI_VER2:
- strcat (buf, ", Version2 EABI");
- while (e_flags)
- {
- unsigned flag;
-
- /* Process flags one bit at a time. */
- flag = e_flags & - e_flags;
- e_flags &= ~ flag;
-
- switch (flag)
- {
- case EF_ARM_SYMSARESORTED: /* Conflicts with EF_ARM_INTERWORK. */
- strcat (buf, ", sorted symbol tables");
- break;
-
- case EF_ARM_DYNSYMSUSESEGIDX:
- strcat (buf, ", dynamic symbols use segment index");
- break;
-
- case EF_ARM_MAPSYMSFIRST:
- strcat (buf, ", mapping symbols precede others");
- break;
-
- default:
- unknown = 1;
- break;
- }
- }
- break;
-
- case EF_ARM_EABI_VER3:
- strcat (buf, ", Version3 EABI");
- break;
-
- case EF_ARM_EABI_VER4:
- strcat (buf, ", Version4 EABI");
- goto eabi;
-
- case EF_ARM_EABI_VER5:
- strcat (buf, ", Version5 EABI");
- eabi:
- while (e_flags)
- {
- unsigned flag;
-
- /* Process flags one bit at a time. */
- flag = e_flags & - e_flags;
- e_flags &= ~ flag;
-
- switch (flag)
- {
- case EF_ARM_BE8:
- strcat (buf, ", BE8");
- break;
-
- case EF_ARM_LE8:
- strcat (buf, ", LE8");
- break;
-
- default:
- unknown = 1;
- break;
- }
- }
- break;
-
- case EF_ARM_EABI_UNKNOWN:
- strcat (buf, ", GNU EABI");
- while (e_flags)
- {
- unsigned flag;
-
- /* Process flags one bit at a time. */
- flag = e_flags & - e_flags;
- e_flags &= ~ flag;
-
- switch (flag)
- {
- case EF_ARM_INTERWORK:
- strcat (buf, ", interworking enabled");
- break;
-
- case EF_ARM_APCS_26:
- strcat (buf, ", uses APCS/26");
- break;
-
- case EF_ARM_APCS_FLOAT:
- strcat (buf, ", uses APCS/float");
- break;
-
- case EF_ARM_PIC:
- strcat (buf, ", position independent");
- break;
-
- case EF_ARM_ALIGN8:
- strcat (buf, ", 8 bit structure alignment");
- break;
-
- case EF_ARM_NEW_ABI:
- strcat (buf, ", uses new ABI");
- break;
-
- case EF_ARM_OLD_ABI:
- strcat (buf, ", uses old ABI");
- break;
-
- case EF_ARM_SOFT_FLOAT:
- strcat (buf, ", software FP");
- break;
-
- case EF_ARM_VFP_FLOAT:
- strcat (buf, ", VFP");
- break;
-
- case EF_ARM_MAVERICK_FLOAT:
- strcat (buf, ", Maverick FP");
- break;
-
- default:
- unknown = 1;
- break;
- }
- }
- }
-
- if (unknown)
- strcat (buf,", <unknown>");
-}
-
-static char *
-get_machine_flags (unsigned e_flags, unsigned e_machine)
-{
- static char buf[1024];
-
- buf[0] = '\0';
-
- if (e_flags)
- {
- switch (e_machine)
- {
- default:
- break;
-
- case EM_ARM:
- decode_ARM_machine_flags (e_flags, buf);
- break;
-
- case EM_CYGNUS_FRV:
- switch (e_flags & EF_FRV_CPU_MASK)
- {
- case EF_FRV_CPU_GENERIC:
- break;
-
- default:
- strcat (buf, ", fr???");
- break;
-
- case EF_FRV_CPU_FR300:
- strcat (buf, ", fr300");
- break;
-
- case EF_FRV_CPU_FR400:
- strcat (buf, ", fr400");
- break;
- case EF_FRV_CPU_FR405:
- strcat (buf, ", fr405");
- break;
-
- case EF_FRV_CPU_FR450:
- strcat (buf, ", fr450");
- break;
-
- case EF_FRV_CPU_FR500:
- strcat (buf, ", fr500");
- break;
- case EF_FRV_CPU_FR550:
- strcat (buf, ", fr550");
- break;
-
- case EF_FRV_CPU_SIMPLE:
- strcat (buf, ", simple");
- break;
- case EF_FRV_CPU_TOMCAT:
- strcat (buf, ", tomcat");
- break;
- }
- break;
-
- case EM_68K:
- if (e_flags & EF_M68K_CPU32)
- strcat (buf, ", cpu32");
- if (e_flags & EF_M68K_M68000)
- strcat (buf, ", m68000");
- if (e_flags & EF_M68K_ISA_MASK)
- {
- char const *isa = _("unknown");
- char const *mac = _("unknown mac");
- char const *additional = NULL;
-
- switch (e_flags & EF_M68K_ISA_MASK)
- {
- case EF_M68K_ISA_A_NODIV:
- isa = "A";
- additional = ", nodiv";
- break;
- case EF_M68K_ISA_A:
- isa = "A";
- break;
- case EF_M68K_ISA_A_PLUS:
- isa = "A+";
- break;
- case EF_M68K_ISA_B_NOUSP:
- isa = "B";
- additional = ", nousp";
- break;
- case EF_M68K_ISA_B:
- isa = "B";
- break;
- }
- strcat (buf, ", cf, isa ");
- strcat (buf, isa);
- if (additional)
- strcat (buf, additional);
- if (e_flags & EF_M68K_FLOAT)
- strcat (buf, ", float");
- switch (e_flags & EF_M68K_MAC_MASK)
- {
- case 0:
- mac = NULL;
- break;
- case EF_M68K_MAC:
- mac = "mac";
- break;
- case EF_M68K_EMAC:
- mac = "emac";
- break;
- }
- if (mac)
- {
- strcat (buf, ", ");
- strcat (buf, mac);
- }
- }
- break;
-
- case EM_PPC:
- if (e_flags & EF_PPC_EMB)
- strcat (buf, ", emb");
-
- if (e_flags & EF_PPC_RELOCATABLE)
- strcat (buf, ", relocatable");
-
- if (e_flags & EF_PPC_RELOCATABLE_LIB)
- strcat (buf, ", relocatable-lib");
- break;
-
- case EM_V850:
- case EM_CYGNUS_V850:
- switch (e_flags & EF_V850_ARCH)
- {
- case E_V850E1_ARCH:
- strcat (buf, ", v850e1");
- break;
- case E_V850E_ARCH:
- strcat (buf, ", v850e");
- break;
- case E_V850_ARCH:
- strcat (buf, ", v850");
- break;
- default:
- strcat (buf, ", unknown v850 architecture variant");
- break;
- }
- break;
-
- case EM_M32R:
- case EM_CYGNUS_M32R:
- if ((e_flags & EF_M32R_ARCH) == E_M32R_ARCH)
- strcat (buf, ", m32r");
-
- break;
-
- case EM_MIPS:
- case EM_MIPS_RS3_LE:
- if (e_flags & EF_MIPS_NOREORDER)
- strcat (buf, ", noreorder");
-
- if (e_flags & EF_MIPS_PIC)
- strcat (buf, ", pic");
-
- if (e_flags & EF_MIPS_CPIC)
- strcat (buf, ", cpic");
-
- if (e_flags & EF_MIPS_UCODE)
- strcat (buf, ", ugen_reserved");
-
- if (e_flags & EF_MIPS_ABI2)
- strcat (buf, ", abi2");
-
- if (e_flags & EF_MIPS_OPTIONS_FIRST)
- strcat (buf, ", odk first");
-
- if (e_flags & EF_MIPS_32BITMODE)
- strcat (buf, ", 32bitmode");
-
- switch ((e_flags & EF_MIPS_MACH))
- {
- case E_MIPS_MACH_3900: strcat (buf, ", 3900"); break;
- case E_MIPS_MACH_4010: strcat (buf, ", 4010"); break;
- case E_MIPS_MACH_4100: strcat (buf, ", 4100"); break;
- case E_MIPS_MACH_4111: strcat (buf, ", 4111"); break;
- case E_MIPS_MACH_4120: strcat (buf, ", 4120"); break;
- case E_MIPS_MACH_4650: strcat (buf, ", 4650"); break;
- case E_MIPS_MACH_5400: strcat (buf, ", 5400"); break;
- case E_MIPS_MACH_5500: strcat (buf, ", 5500"); break;
- case E_MIPS_MACH_SB1: strcat (buf, ", sb1"); break;
- case E_MIPS_MACH_9000: strcat (buf, ", 9000"); break;
- case 0:
- /* We simply ignore the field in this case to avoid confusion:
- MIPS ELF does not specify EF_MIPS_MACH, it is a GNU
- extension. */
- break;
- default: strcat (buf, ", unknown CPU"); break;
- }
-
- switch ((e_flags & EF_MIPS_ABI))
- {
- case E_MIPS_ABI_O32: strcat (buf, ", o32"); break;
- case E_MIPS_ABI_O64: strcat (buf, ", o64"); break;
- case E_MIPS_ABI_EABI32: strcat (buf, ", eabi32"); break;
- case E_MIPS_ABI_EABI64: strcat (buf, ", eabi64"); break;
- case 0:
- /* We simply ignore the field in this case to avoid confusion:
- MIPS ELF does not specify EF_MIPS_ABI, it is a GNU extension.
- This means it is likely to be an o32 file, but not for
- sure. */
- break;
- default: strcat (buf, ", unknown ABI"); break;
- }
-
- if (e_flags & EF_MIPS_ARCH_ASE_MDMX)
- strcat (buf, ", mdmx");
-
- if (e_flags & EF_MIPS_ARCH_ASE_M16)
- strcat (buf, ", mips16");
-
- switch ((e_flags & EF_MIPS_ARCH))
- {
- case E_MIPS_ARCH_1: strcat (buf, ", mips1"); break;
- case E_MIPS_ARCH_2: strcat (buf, ", mips2"); break;
- case E_MIPS_ARCH_3: strcat (buf, ", mips3"); break;
- case E_MIPS_ARCH_4: strcat (buf, ", mips4"); break;
- case E_MIPS_ARCH_5: strcat (buf, ", mips5"); break;
- case E_MIPS_ARCH_32: strcat (buf, ", mips32"); break;
- case E_MIPS_ARCH_32R2: strcat (buf, ", mips32r2"); break;
- case E_MIPS_ARCH_64: strcat (buf, ", mips64"); break;
- case E_MIPS_ARCH_64R2: strcat (buf, ", mips64r2"); break;
- default: strcat (buf, ", unknown ISA"); break;
- }
-
- break;
-
- case EM_SH:
- switch ((e_flags & EF_SH_MACH_MASK))
- {
- case EF_SH1: strcat (buf, ", sh1"); break;
- case EF_SH2: strcat (buf, ", sh2"); break;
- case EF_SH3: strcat (buf, ", sh3"); break;
- case EF_SH_DSP: strcat (buf, ", sh-dsp"); break;
- case EF_SH3_DSP: strcat (buf, ", sh3-dsp"); break;
- case EF_SH4AL_DSP: strcat (buf, ", sh4al-dsp"); break;
- case EF_SH3E: strcat (buf, ", sh3e"); break;
- case EF_SH4: strcat (buf, ", sh4"); break;
- case EF_SH5: strcat (buf, ", sh5"); break;
- case EF_SH2E: strcat (buf, ", sh2e"); break;
- case EF_SH4A: strcat (buf, ", sh4a"); break;
- case EF_SH2A: strcat (buf, ", sh2a"); break;
- case EF_SH4_NOFPU: strcat (buf, ", sh4-nofpu"); break;
- case EF_SH4A_NOFPU: strcat (buf, ", sh4a-nofpu"); break;
- case EF_SH2A_NOFPU: strcat (buf, ", sh2a-nofpu"); break;
- case EF_SH3_NOMMU: strcat (buf, ", sh3-nommu"); break;
- case EF_SH4_NOMMU_NOFPU: strcat (buf, ", sh4-nommu-nofpu"); break;
- case EF_SH2A_SH4_NOFPU: strcat (buf, ", sh2a-nofpu-or-sh4-nommu-nofpu"); break;
- case EF_SH2A_SH3_NOFPU: strcat (buf, ", sh2a-nofpu-or-sh3-nommu"); break;
- case EF_SH2A_SH4: strcat (buf, ", sh2a-or-sh4"); break;
- case EF_SH2A_SH3E: strcat (buf, ", sh2a-or-sh3e"); break;
- default: strcat (buf, ", unknown ISA"); break;
- }
-
- break;
-
- case EM_SPARCV9:
- if (e_flags & EF_SPARC_32PLUS)
- strcat (buf, ", v8+");
-
- if (e_flags & EF_SPARC_SUN_US1)
- strcat (buf, ", ultrasparcI");
-
- if (e_flags & EF_SPARC_SUN_US3)
- strcat (buf, ", ultrasparcIII");
-
- if (e_flags & EF_SPARC_HAL_R1)
- strcat (buf, ", halr1");
-
- if (e_flags & EF_SPARC_LEDATA)
- strcat (buf, ", ledata");
-
- if ((e_flags & EF_SPARCV9_MM) == EF_SPARCV9_TSO)
- strcat (buf, ", tso");
-
- if ((e_flags & EF_SPARCV9_MM) == EF_SPARCV9_PSO)
- strcat (buf, ", pso");
-
- if ((e_flags & EF_SPARCV9_MM) == EF_SPARCV9_RMO)
- strcat (buf, ", rmo");
- break;
-
- case EM_PARISC:
- switch (e_flags & EF_PARISC_ARCH)
- {
- case EFA_PARISC_1_0:
- strcpy (buf, ", PA-RISC 1.0");
- break;
- case EFA_PARISC_1_1:
- strcpy (buf, ", PA-RISC 1.1");
- break;
- case EFA_PARISC_2_0:
- strcpy (buf, ", PA-RISC 2.0");
- break;
- default:
- break;
- }
- if (e_flags & EF_PARISC_TRAPNIL)
- strcat (buf, ", trapnil");
- if (e_flags & EF_PARISC_EXT)
- strcat (buf, ", ext");
- if (e_flags & EF_PARISC_LSB)
- strcat (buf, ", lsb");
- if (e_flags & EF_PARISC_WIDE)
- strcat (buf, ", wide");
- if (e_flags & EF_PARISC_NO_KABP)
- strcat (buf, ", no kabp");
- if (e_flags & EF_PARISC_LAZYSWAP)
- strcat (buf, ", lazyswap");
- break;
-
- case EM_PJ:
- case EM_PJ_OLD:
- if ((e_flags & EF_PICOJAVA_NEWCALLS) == EF_PICOJAVA_NEWCALLS)
- strcat (buf, ", new calling convention");
-
- if ((e_flags & EF_PICOJAVA_GNUCALLS) == EF_PICOJAVA_GNUCALLS)
- strcat (buf, ", gnu calling convention");
- break;
-
- case EM_IA_64:
- if ((e_flags & EF_IA_64_ABI64))
- strcat (buf, ", 64-bit");
- else
- strcat (buf, ", 32-bit");
- if ((e_flags & EF_IA_64_REDUCEDFP))
- strcat (buf, ", reduced fp model");
- if ((e_flags & EF_IA_64_NOFUNCDESC_CONS_GP))
- strcat (buf, ", no function descriptors, constant gp");
- else if ((e_flags & EF_IA_64_CONS_GP))
- strcat (buf, ", constant gp");
- if ((e_flags & EF_IA_64_ABSOLUTE))
- strcat (buf, ", absolute");
- break;
-
- case EM_VAX:
- if ((e_flags & EF_VAX_NONPIC))
- strcat (buf, ", non-PIC");
- if ((e_flags & EF_VAX_DFLOAT))
- strcat (buf, ", D-Float");
- if ((e_flags & EF_VAX_GFLOAT))
- strcat (buf, ", G-Float");
- break;
- }
- }
-
- return buf;
-}
-
-static const char *
-get_osabi_name (unsigned int osabi)
-{
- static char buff[32];
-
- switch (osabi)
- {
- case ELFOSABI_NONE: return "UNIX - System V";
- case ELFOSABI_HPUX: return "UNIX - HP-UX";
- case ELFOSABI_NETBSD: return "UNIX - NetBSD";
- case ELFOSABI_LINUX: return "UNIX - Linux";
- case ELFOSABI_HURD: return "GNU/Hurd";
- case ELFOSABI_SOLARIS: return "UNIX - Solaris";
- case ELFOSABI_AIX: return "UNIX - AIX";
- case ELFOSABI_IRIX: return "UNIX - IRIX";
- case ELFOSABI_FREEBSD: return "UNIX - FreeBSD";
- case ELFOSABI_TRU64: return "UNIX - TRU64";
- case ELFOSABI_MODESTO: return "Novell - Modesto";
- case ELFOSABI_OPENBSD: return "UNIX - OpenBSD";
- case ELFOSABI_OPENVMS: return "VMS - OpenVMS";
- case ELFOSABI_NSK: return "HP - Non-Stop Kernel";
- case ELFOSABI_AROS: return "Amiga Research OS";
- case ELFOSABI_STANDALONE: return _("Standalone App");
- case ELFOSABI_ARM: return "ARM";
- default:
- snprintf (buff, sizeof (buff), _("<unknown: %x>"), osabi);
- return buff;
- }
-}
-
-static const char *
-get_arm_segment_type (unsigned long type)
-{
- switch (type)
- {
- case PT_ARM_EXIDX:
- return "EXIDX";
- default:
- break;
- }
-
- return NULL;
-}
-
-static const char *
-get_mips_segment_type (unsigned long type)
-{
- switch (type)
- {
- case PT_MIPS_REGINFO:
- return "REGINFO";
- case PT_MIPS_RTPROC:
- return "RTPROC";
- case PT_MIPS_OPTIONS:
- return "OPTIONS";
- default:
- break;
- }
-
- return NULL;
-}
-
-static const char *
-get_parisc_segment_type (unsigned long type)
-{
- switch (type)
- {
- case PT_HP_TLS: return "HP_TLS";
- case PT_HP_CORE_NONE: return "HP_CORE_NONE";
- case PT_HP_CORE_VERSION: return "HP_CORE_VERSION";
- case PT_HP_CORE_KERNEL: return "HP_CORE_KERNEL";
- case PT_HP_CORE_COMM: return "HP_CORE_COMM";
- case PT_HP_CORE_PROC: return "HP_CORE_PROC";
- case PT_HP_CORE_LOADABLE: return "HP_CORE_LOADABLE";
- case PT_HP_CORE_STACK: return "HP_CORE_STACK";
- case PT_HP_CORE_SHM: return "HP_CORE_SHM";
- case PT_HP_CORE_MMF: return "HP_CORE_MMF";
- case PT_HP_PARALLEL: return "HP_PARALLEL";
- case PT_HP_FASTBIND: return "HP_FASTBIND";
- case PT_HP_OPT_ANNOT: return "HP_OPT_ANNOT";
- case PT_HP_HSL_ANNOT: return "HP_HSL_ANNOT";
- case PT_HP_STACK: return "HP_STACK";
- case PT_HP_CORE_UTSNAME: return "HP_CORE_UTSNAME";
- case PT_PARISC_ARCHEXT: return "PARISC_ARCHEXT";
- case PT_PARISC_UNWIND: return "PARISC_UNWIND";
- case PT_PARISC_WEAKORDER: return "PARISC_WEAKORDER";
- default:
- break;
- }
-
- return NULL;
-}
-
-static const char *
-get_ia64_segment_type (unsigned long type)
-{
- switch (type)
- {
- case PT_IA_64_ARCHEXT: return "IA_64_ARCHEXT";
- case PT_IA_64_UNWIND: return "IA_64_UNWIND";
- case PT_HP_TLS: return "HP_TLS";
- case PT_IA_64_HP_OPT_ANOT: return "HP_OPT_ANNOT";
- case PT_IA_64_HP_HSL_ANOT: return "HP_HSL_ANNOT";
- case PT_IA_64_HP_STACK: return "HP_STACK";
- default:
- break;
- }
-
- return NULL;
-}
-
-static const char *
-get_segment_type (unsigned long p_type)
-{
- static char buff[32];
-
- switch (p_type)
- {
- case PT_NULL: return "NULL";
- case PT_LOAD: return "LOAD";
- case PT_DYNAMIC: return "DYNAMIC";
- case PT_INTERP: return "INTERP";
- case PT_NOTE: return "NOTE";
- case PT_SHLIB: return "SHLIB";
- case PT_PHDR: return "PHDR";
- case PT_TLS: return "TLS";
-
- case PT_GNU_EH_FRAME:
- return "GNU_EH_FRAME";
- case PT_GNU_STACK: return "GNU_STACK";
- case PT_GNU_RELRO: return "GNU_RELRO";
-
- default:
- if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC))
- {
- const char *result;
-
- switch (elf_header.e_machine)
- {
- case EM_ARM:
- result = get_arm_segment_type (p_type);
- break;
- case EM_MIPS:
- case EM_MIPS_RS3_LE:
- result = get_mips_segment_type (p_type);
- break;
- case EM_PARISC:
- result = get_parisc_segment_type (p_type);
- break;
- case EM_IA_64:
- result = get_ia64_segment_type (p_type);
- break;
- default:
- result = NULL;
- break;
- }
-
- if (result != NULL)
- return result;
-
- sprintf (buff, "LOPROC+%lx", p_type - PT_LOPROC);
- }
- else if ((p_type >= PT_LOOS) && (p_type <= PT_HIOS))
- {
- const char *result;
-
- switch (elf_header.e_machine)
- {
- case EM_PARISC:
- result = get_parisc_segment_type (p_type);
- break;
- case EM_IA_64:
- result = get_ia64_segment_type (p_type);
- break;
- default:
- result = NULL;
- break;
- }
-
- if (result != NULL)
- return result;
-
- sprintf (buff, "LOOS+%lx", p_type - PT_LOOS);
- }
- else
- snprintf (buff, sizeof (buff), _("<unknown>: %lx"), p_type);
-
- return buff;
- }
-}
-
-static const char *
-get_mips_section_type_name (unsigned int sh_type)
-{
- switch (sh_type)
- {
- case SHT_MIPS_LIBLIST: return "MIPS_LIBLIST";
- case SHT_MIPS_MSYM: return "MIPS_MSYM";
- case SHT_MIPS_CONFLICT: return "MIPS_CONFLICT";
- case SHT_MIPS_GPTAB: return "MIPS_GPTAB";
- case SHT_MIPS_UCODE: return "MIPS_UCODE";
- case SHT_MIPS_DEBUG: return "MIPS_DEBUG";
- case SHT_MIPS_REGINFO: return "MIPS_REGINFO";
- case SHT_MIPS_PACKAGE: return "MIPS_PACKAGE";
- case SHT_MIPS_PACKSYM: return "MIPS_PACKSYM";
- case SHT_MIPS_RELD: return "MIPS_RELD";
- case SHT_MIPS_IFACE: return "MIPS_IFACE";
- case SHT_MIPS_CONTENT: return "MIPS_CONTENT";
- case SHT_MIPS_OPTIONS: return "MIPS_OPTIONS";
- case SHT_MIPS_SHDR: return "MIPS_SHDR";
- case SHT_MIPS_FDESC: return "MIPS_FDESC";
- case SHT_MIPS_EXTSYM: return "MIPS_EXTSYM";
- case SHT_MIPS_DENSE: return "MIPS_DENSE";
- case SHT_MIPS_PDESC: return "MIPS_PDESC";
- case SHT_MIPS_LOCSYM: return "MIPS_LOCSYM";
- case SHT_MIPS_AUXSYM: return "MIPS_AUXSYM";
- case SHT_MIPS_OPTSYM: return "MIPS_OPTSYM";
- case SHT_MIPS_LOCSTR: return "MIPS_LOCSTR";
- case SHT_MIPS_LINE: return "MIPS_LINE";
- case SHT_MIPS_RFDESC: return "MIPS_RFDESC";
- case SHT_MIPS_DELTASYM: return "MIPS_DELTASYM";
- case SHT_MIPS_DELTAINST: return "MIPS_DELTAINST";
- case SHT_MIPS_DELTACLASS: return "MIPS_DELTACLASS";
- case SHT_MIPS_DWARF: return "MIPS_DWARF";
- case SHT_MIPS_DELTADECL: return "MIPS_DELTADECL";
- case SHT_MIPS_SYMBOL_LIB: return "MIPS_SYMBOL_LIB";
- case SHT_MIPS_EVENTS: return "MIPS_EVENTS";
- case SHT_MIPS_TRANSLATE: return "MIPS_TRANSLATE";
- case SHT_MIPS_PIXIE: return "MIPS_PIXIE";
- case SHT_MIPS_XLATE: return "MIPS_XLATE";
- case SHT_MIPS_XLATE_DEBUG: return "MIPS_XLATE_DEBUG";
- case SHT_MIPS_WHIRL: return "MIPS_WHIRL";
- case SHT_MIPS_EH_REGION: return "MIPS_EH_REGION";
- case SHT_MIPS_XLATE_OLD: return "MIPS_XLATE_OLD";
- case SHT_MIPS_PDR_EXCEPTION: return "MIPS_PDR_EXCEPTION";
- default:
- break;
- }
- return NULL;
-}
-
-static const char *
-get_parisc_section_type_name (unsigned int sh_type)
-{
- switch (sh_type)
- {
- case SHT_PARISC_EXT: return "PARISC_EXT";
- case SHT_PARISC_UNWIND: return "PARISC_UNWIND";
- case SHT_PARISC_DOC: return "PARISC_DOC";
- case SHT_PARISC_ANNOT: return "PARISC_ANNOT";
- case SHT_PARISC_SYMEXTN: return "PARISC_SYMEXTN";
- case SHT_PARISC_STUBS: return "PARISC_STUBS";
- case SHT_PARISC_DLKM: return "PARISC_DLKM";
- default:
- break;
- }
- return NULL;
-}
-
-static const char *
-get_ia64_section_type_name (unsigned int sh_type)
-{
- /* If the top 8 bits are 0x78 the next 8 are the os/abi ID. */
- if ((sh_type & 0xFF000000) == SHT_IA_64_LOPSREG)
- return get_osabi_name ((sh_type & 0x00FF0000) >> 16);
-
- switch (sh_type)
- {
- case SHT_IA_64_EXT: return "IA_64_EXT";
- case SHT_IA_64_UNWIND: return "IA_64_UNWIND";
- case SHT_IA_64_PRIORITY_INIT: return "IA_64_PRIORITY_INIT";
- default:
- break;
- }
- return NULL;
-}
-
-static const char *
-get_x86_64_section_type_name (unsigned int sh_type)
-{
- switch (sh_type)
- {
- case SHT_X86_64_UNWIND: return "X86_64_UNWIND";
- default:
- break;
- }
- return NULL;
-}
-
-static const char *
-get_arm_section_type_name (unsigned int sh_type)
-{
- switch (sh_type)
- {
- case SHT_ARM_EXIDX:
- return "ARM_EXIDX";
- case SHT_ARM_PREEMPTMAP:
- return "ARM_PREEMPTMAP";
- case SHT_ARM_ATTRIBUTES:
- return "ARM_ATTRIBUTES";
- default:
- break;
- }
- return NULL;
-}
-
-static const char *
-get_section_type_name (unsigned int sh_type)
-{
- static char buff[32];
-
- switch (sh_type)
- {
- case SHT_NULL: return "NULL";
- case SHT_PROGBITS: return "PROGBITS";
- case SHT_SYMTAB: return "SYMTAB";
- case SHT_STRTAB: return "STRTAB";
- case SHT_RELA: return "RELA";
- case SHT_HASH: return "HASH";
- case SHT_DYNAMIC: return "DYNAMIC";
- case SHT_NOTE: return "NOTE";
- case SHT_NOBITS: return "NOBITS";
- case SHT_REL: return "REL";
- case SHT_SHLIB: return "SHLIB";
- case SHT_DYNSYM: return "DYNSYM";
- case SHT_INIT_ARRAY: return "INIT_ARRAY";
- case SHT_FINI_ARRAY: return "FINI_ARRAY";
- case SHT_PREINIT_ARRAY: return "PREINIT_ARRAY";
- case SHT_GROUP: return "GROUP";
- case SHT_SYMTAB_SHNDX: return "SYMTAB SECTION INDICIES";
- case SHT_GNU_verdef: return "VERDEF";
- case SHT_GNU_verneed: return "VERNEED";
- case SHT_GNU_versym: return "VERSYM";
- case 0x6ffffff0: return "VERSYM";
- case 0x6ffffffc: return "VERDEF";
- case 0x7ffffffd: return "AUXILIARY";
- case 0x7fffffff: return "FILTER";
- case SHT_GNU_LIBLIST: return "GNU_LIBLIST";
-
- default:
- if ((sh_type >= SHT_LOPROC) && (sh_type <= SHT_HIPROC))
- {
- const char *result;
-
- switch (elf_header.e_machine)
- {
- case EM_MIPS:
- case EM_MIPS_RS3_LE:
- result = get_mips_section_type_name (sh_type);
- break;
- case EM_PARISC:
- result = get_parisc_section_type_name (sh_type);
- break;
- case EM_IA_64:
- result = get_ia64_section_type_name (sh_type);
- break;
- case EM_X86_64:
- result = get_x86_64_section_type_name (sh_type);
- break;
- case EM_ARM:
- result = get_arm_section_type_name (sh_type);
- break;
- default:
- result = NULL;
- break;
- }
-
- if (result != NULL)
- return result;
-
- sprintf (buff, "LOPROC+%x", sh_type - SHT_LOPROC);
- }
- else if ((sh_type >= SHT_LOOS) && (sh_type <= SHT_HIOS))
- sprintf (buff, "LOOS+%x", sh_type - SHT_LOOS);
- else if ((sh_type >= SHT_LOUSER) && (sh_type <= SHT_HIUSER))
- sprintf (buff, "LOUSER+%x", sh_type - SHT_LOUSER);
- else
- snprintf (buff, sizeof (buff), _("<unknown>: %x"), sh_type);
-
- return buff;
- }
-}
-
-#define OPTION_DEBUG_DUMP 512
-
-static struct option options[] =
-{
- {"all", no_argument, 0, 'a'},
- {"file-header", no_argument, 0, 'h'},
- {"program-headers", no_argument, 0, 'l'},
- {"headers", no_argument, 0, 'e'},
- {"histogram", no_argument, 0, 'I'},
- {"segments", no_argument, 0, 'l'},
- {"sections", no_argument, 0, 'S'},
- {"section-headers", no_argument, 0, 'S'},
- {"section-groups", no_argument, 0, 'g'},
- {"section-details", no_argument, 0, 't'},
- {"full-section-name",no_argument, 0, 'N'},
- {"symbols", no_argument, 0, 's'},
- {"syms", no_argument, 0, 's'},
- {"relocs", no_argument, 0, 'r'},
- {"notes", no_argument, 0, 'n'},
- {"dynamic", no_argument, 0, 'd'},
- {"arch-specific", no_argument, 0, 'A'},
- {"version-info", no_argument, 0, 'V'},
- {"use-dynamic", no_argument, 0, 'D'},
- {"hex-dump", required_argument, 0, 'x'},
- {"debug-dump", optional_argument, 0, OPTION_DEBUG_DUMP},
- {"unwind", no_argument, 0, 'u'},
-#ifdef SUPPORT_DISASSEMBLY
- {"instruction-dump", required_argument, 0, 'i'},
-#endif
-
- {"version", no_argument, 0, 'v'},
- {"wide", no_argument, 0, 'W'},
- {"help", no_argument, 0, 'H'},
- {0, no_argument, 0, 0}
-};
-
-static void
-usage (void)
-{
- fprintf (stdout, _("Usage: readelf <option(s)> elf-file(s)\n"));
- fprintf (stdout, _(" Display information about the contents of ELF format files\n"));
- fprintf (stdout, _(" Options are:\n\
- -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n\
- -h --file-header Display the ELF file header\n\
- -l --program-headers Display the program headers\n\
- --segments An alias for --program-headers\n\
- -S --section-headers Display the sections' header\n\
- --sections An alias for --section-headers\n\
- -g --section-groups Display the section groups\n\
- -t --section-details Display the section details\n\
- -e --headers Equivalent to: -h -l -S\n\
- -s --syms Display the symbol table\n\
- --symbols An alias for --syms\n\
- -n --notes Display the core notes (if present)\n\
- -r --relocs Display the relocations (if present)\n\
- -u --unwind Display the unwind info (if present)\n\
- -d --dynamic Display the dynamic section (if present)\n\
- -V --version-info Display the version sections (if present)\n\
- -A --arch-specific Display architecture specific information (if any).\n\
- -D --use-dynamic Use the dynamic section info when displaying symbols\n\
- -x --hex-dump=<number> Dump the contents of section <number>\n\
- -w[liaprmfFsoR] or\n\
- --debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=str,=loc,=Ranges]\n\
- Display the contents of DWARF2 debug sections\n"));
-#ifdef SUPPORT_DISASSEMBLY
- fprintf (stdout, _("\
- -i --instruction-dump=<number>\n\
- Disassemble the contents of section <number>\n"));
-#endif
- fprintf (stdout, _("\
- -I --histogram Display histogram of bucket list lengths\n\
- -W --wide Allow output width to exceed 80 characters\n\
- @<file> Read options from <file>\n\
- -H --help Display this information\n\
- -v --version Display the version number of readelf\n"));
- fprintf (stdout, _("Report bugs to %s\n"), REPORT_BUGS_TO);
-
- exit (0);
-}
-
-/* Record the fact that the user wants the contents of section number
- SECTION to be displayed using the method(s) encoded as flags bits
- in TYPE. Note, TYPE can be zero if we are creating the array for
- the first time. */
-
-static void
-request_dump (unsigned int section, int type)
-{
- if (section >= num_dump_sects)
- {
- char *new_dump_sects;
-
- new_dump_sects = calloc (section + 1, 1);
-
- if (new_dump_sects == NULL)
- error (_("Out of memory allocating dump request table."));
- else
- {
- /* Copy current flag settings. */
- memcpy (new_dump_sects, dump_sects, num_dump_sects);
-
- free (dump_sects);
-
- dump_sects = new_dump_sects;
- num_dump_sects = section + 1;
- }
- }
-
- if (dump_sects)
- dump_sects[section] |= type;
-
- return;
-}
-
-/* Request a dump by section name. */
-
-static void
-request_dump_byname (const char *section, int type)
-{
- struct dump_list_entry *new_request;
-
- new_request = malloc (sizeof (struct dump_list_entry));
- if (!new_request)
- error (_("Out of memory allocating dump request table."));
-
- new_request->name = strdup (section);
- if (!new_request->name)
- error (_("Out of memory allocating dump request table."));
-
- new_request->type = type;
-
- new_request->next = dump_sects_byname;
- dump_sects_byname = new_request;
-}
-
-static void
-parse_args (int argc, char **argv)
-{
- int c;
-
- if (argc < 2)
- usage ();
-
- while ((c = getopt_long
- (argc, argv, "ersuahnldSDAINtgw::x:i:vVWH", options, NULL)) != EOF)
- {
- char *cp;
- int section;
-
- switch (c)
- {
- case 0:
- /* Long options. */
- break;
- case 'H':
- usage ();
- break;
-
- case 'a':
- do_syms++;
- do_reloc++;
- do_unwind++;
- do_dynamic++;
- do_header++;
- do_sections++;
- do_section_groups++;
- do_segments++;
- do_version++;
- do_histogram++;
- do_arch++;
- do_notes++;
- break;
- case 'g':
- do_section_groups++;
- break;
- case 't':
- case 'N':
- do_sections++;
- do_section_details++;
- break;
- case 'e':
- do_header++;
- do_sections++;
- do_segments++;
- break;
- case 'A':
- do_arch++;
- break;
- case 'D':
- do_using_dynamic++;
- break;
- case 'r':
- do_reloc++;
- break;
- case 'u':
- do_unwind++;
- break;
- case 'h':
- do_header++;
- break;
- case 'l':
- do_segments++;
- break;
- case 's':
- do_syms++;
- break;
- case 'S':
- do_sections++;
- break;
- case 'd':
- do_dynamic++;
- break;
- case 'I':
- do_histogram++;
- break;
- case 'n':
- do_notes++;
- break;
- case 'x':
- do_dump++;
- section = strtoul (optarg, & cp, 0);
- if (! *cp && section >= 0)
- request_dump (section, HEX_DUMP);
- else
- request_dump_byname (optarg, HEX_DUMP);
- break;
- case 'w':
- do_dump++;
- if (optarg == 0)
- do_debugging = 1;
- else
- {
- unsigned int index = 0;
-
- do_debugging = 0;
-
- while (optarg[index])
- switch (optarg[index++])
- {
- case 'i':
- case 'I':
- do_debug_info = 1;
- break;
-
- case 'a':
- case 'A':
- do_debug_abbrevs = 1;
- break;
-
- case 'l':
- case 'L':
- do_debug_lines = 1;
- break;
-
- case 'p':
- case 'P':
- do_debug_pubnames = 1;
- break;
-
- case 'r':
- do_debug_aranges = 1;
- break;
-
- case 'R':
- do_debug_ranges = 1;
- break;
-
- case 'F':
- do_debug_frames_interp = 1;
- case 'f':
- do_debug_frames = 1;
- break;
-
- case 'm':
- case 'M':
- do_debug_macinfo = 1;
- break;
-
- case 's':
- case 'S':
- do_debug_str = 1;
- break;
-
- case 'o':
- case 'O':
- do_debug_loc = 1;
- break;
-
- default:
- warn (_("Unrecognized debug option '%s'\n"), optarg);
- break;
- }
- }
- break;
- case OPTION_DEBUG_DUMP:
- do_dump++;
- if (optarg == 0)
- do_debugging = 1;
- else
- {
- typedef struct
- {
- const char * option;
- int * variable;
- }
- debug_dump_long_opts;
-
- debug_dump_long_opts opts_table [] =
- {
- /* Please keep this table alpha- sorted. */
- { "Ranges", & do_debug_ranges },
- { "abbrev", & do_debug_abbrevs },
- { "aranges", & do_debug_aranges },
- { "frames", & do_debug_frames },
- { "frames-interp", & do_debug_frames_interp },
- { "info", & do_debug_info },
- { "line", & do_debug_lines },
- { "loc", & do_debug_loc },
- { "macro", & do_debug_macinfo },
- { "pubnames", & do_debug_pubnames },
- /* This entry is for compatability
- with earlier versions of readelf. */
- { "ranges", & do_debug_aranges },
- { "str", & do_debug_str },
- { NULL, NULL }
- };
-
- const char *p;
-
- do_debugging = 0;
-
- p = optarg;
- while (*p)
- {
- debug_dump_long_opts * entry;
-
- for (entry = opts_table; entry->option; entry++)
- {
- size_t len = strlen (entry->option);
-
- if (strneq (p, entry->option, len)
- && (p[len] == ',' || p[len] == '\0'))
- {
- * entry->variable = 1;
-
- /* The --debug-dump=frames-interp option also
- enables the --debug-dump=frames option. */
- if (do_debug_frames_interp)
- do_debug_frames = 1;
-
- p += len;
- break;
- }
- }
-
- if (entry->option == NULL)
- {
- warn (_("Unrecognized debug option '%s'\n"), p);
- p = strchr (p, ',');
- if (p == NULL)
- break;
- }
-
- if (*p == ',')
- p++;
- }
- }
- break;
-#ifdef SUPPORT_DISASSEMBLY
- case 'i':
- do_dump++;
- section = strtoul (optarg, & cp, 0);
- if (! *cp && section >= 0)
- {
- request_dump (section, DISASS_DUMP);
- break;
- }
- goto oops;
-#endif
- case 'v':
- print_version (program_name);
- break;
- case 'V':
- do_version++;
- break;
- case 'W':
- do_wide++;
- break;
- default:
-#ifdef SUPPORT_DISASSEMBLY
- oops:
-#endif
- /* xgettext:c-format */
- error (_("Invalid option '-%c'\n"), c);
- /* Drop through. */
- case '?':
- usage ();
- }
- }
-
- if (!do_dynamic && !do_syms && !do_reloc && !do_unwind && !do_sections
- && !do_segments && !do_header && !do_dump && !do_version
- && !do_histogram && !do_debugging && !do_arch && !do_notes
- && !do_section_groups)
- usage ();
- else if (argc < 3)
- {
- warn (_("Nothing to do.\n"));
- usage ();
- }
-}
-
-static const char *
-get_elf_class (unsigned int elf_class)
-{
- static char buff[32];
-
- switch (elf_class)
- {
- case ELFCLASSNONE: return _("none");
- case ELFCLASS32: return "ELF32";
- case ELFCLASS64: return "ELF64";
- default:
- snprintf (buff, sizeof (buff), _("<unknown: %x>"), elf_class);
- return buff;
- }
-}
-
-static const char *
-get_data_encoding (unsigned int encoding)
-{
- static char buff[32];
-
- switch (encoding)
- {
- case ELFDATANONE: return _("none");
- case ELFDATA2LSB: return _("2's complement, little endian");
- case ELFDATA2MSB: return _("2's complement, big endian");
- default:
- snprintf (buff, sizeof (buff), _("<unknown: %x>"), encoding);
- return buff;
- }
-}
-
-/* Decode the data held in 'elf_header'. */
-
-static int
-process_file_header (void)
-{
- if ( elf_header.e_ident[EI_MAG0] != ELFMAG0
- || elf_header.e_ident[EI_MAG1] != ELFMAG1
- || elf_header.e_ident[EI_MAG2] != ELFMAG2
- || elf_header.e_ident[EI_MAG3] != ELFMAG3)
- {
- error
- (_("Not an ELF file - it has the wrong magic bytes at the start\n"));
- return 0;
- }
-
- if (do_header)
- {
- int i;
-
- printf (_("ELF Header:\n"));
- printf (_(" Magic: "));
- for (i = 0; i < EI_NIDENT; i++)
- printf ("%2.2x ", elf_header.e_ident[i]);
- printf ("\n");
- printf (_(" Class: %s\n"),
- get_elf_class (elf_header.e_ident[EI_CLASS]));
- printf (_(" Data: %s\n"),
- get_data_encoding (elf_header.e_ident[EI_DATA]));
- printf (_(" Version: %d %s\n"),
- elf_header.e_ident[EI_VERSION],
- (elf_header.e_ident[EI_VERSION] == EV_CURRENT
- ? "(current)"
- : (elf_header.e_ident[EI_VERSION] != EV_NONE
- ? "<unknown: %lx>"
- : "")));
- printf (_(" OS/ABI: %s\n"),
- get_osabi_name (elf_header.e_ident[EI_OSABI]));
- printf (_(" ABI Version: %d\n"),
- elf_header.e_ident[EI_ABIVERSION]);
- printf (_(" Type: %s\n"),
- get_file_type (elf_header.e_type));
- printf (_(" Machine: %s\n"),
- get_machine_name (elf_header.e_machine));
- printf (_(" Version: 0x%lx\n"),
- (unsigned long) elf_header.e_version);
-
- printf (_(" Entry point address: "));
- print_vma ((bfd_vma) elf_header.e_entry, PREFIX_HEX);
- printf (_("\n Start of program headers: "));
- print_vma ((bfd_vma) elf_header.e_phoff, DEC);
- printf (_(" (bytes into file)\n Start of section headers: "));
- print_vma ((bfd_vma) elf_header.e_shoff, DEC);
- printf (_(" (bytes into file)\n"));
-
- printf (_(" Flags: 0x%lx%s\n"),
- (unsigned long) elf_header.e_flags,
- get_machine_flags (elf_header.e_flags, elf_header.e_machine));
- printf (_(" Size of this header: %ld (bytes)\n"),
- (long) elf_header.e_ehsize);
- printf (_(" Size of program headers: %ld (bytes)\n"),
- (long) elf_header.e_phentsize);
- printf (_(" Number of program headers: %ld\n"),
- (long) elf_header.e_phnum);
- printf (_(" Size of section headers: %ld (bytes)\n"),
- (long) elf_header.e_shentsize);
- printf (_(" Number of section headers: %ld"),
- (long) elf_header.e_shnum);
- if (section_headers != NULL && elf_header.e_shnum == 0)
- printf (" (%ld)", (long) section_headers[0].sh_size);
- putc ('\n', stdout);
- printf (_(" Section header string table index: %ld"),
- (long) elf_header.e_shstrndx);
- if (section_headers != NULL && elf_header.e_shstrndx == SHN_XINDEX)
- printf (" (%ld)", (long) section_headers[0].sh_link);
- putc ('\n', stdout);
- }
-
- if (section_headers != NULL)
- {
- if (elf_header.e_shnum == 0)
- elf_header.e_shnum = section_headers[0].sh_size;
- if (elf_header.e_shstrndx == SHN_XINDEX)
- elf_header.e_shstrndx = section_headers[0].sh_link;
- free (section_headers);
- section_headers = NULL;
- }
-
- return 1;
-}
-
-
-static int
-get_32bit_program_headers (FILE *file, Elf_Internal_Phdr *program_headers)
-{
- Elf32_External_Phdr *phdrs;
- Elf32_External_Phdr *external;
- Elf_Internal_Phdr *internal;
- unsigned int i;
-
- phdrs = get_data (NULL, file, elf_header.e_phoff,
- elf_header.e_phentsize, elf_header.e_phnum,
- _("program headers"));
- if (!phdrs)
- return 0;
-
- for (i = 0, internal = program_headers, external = phdrs;
- i < elf_header.e_phnum;
- i++, internal++, external++)
- {
- internal->p_type = BYTE_GET (external->p_type);
- internal->p_offset = BYTE_GET (external->p_offset);
- internal->p_vaddr = BYTE_GET (external->p_vaddr);
- internal->p_paddr = BYTE_GET (external->p_paddr);
- internal->p_filesz = BYTE_GET (external->p_filesz);
- internal->p_memsz = BYTE_GET (external->p_memsz);
- internal->p_flags = BYTE_GET (external->p_flags);
- internal->p_align = BYTE_GET (external->p_align);
- }
-
- free (phdrs);
-
- return 1;
-}
-
-static int
-get_64bit_program_headers (FILE *file, Elf_Internal_Phdr *program_headers)
-{
- Elf64_External_Phdr *phdrs;
- Elf64_External_Phdr *external;
- Elf_Internal_Phdr *internal;
- unsigned int i;
-
- phdrs = get_data (NULL, file, elf_header.e_phoff,
- elf_header.e_phentsize, elf_header.e_phnum,
- _("program headers"));
- if (!phdrs)
- return 0;
-
- for (i = 0, internal = program_headers, external = phdrs;
- i < elf_header.e_phnum;
- i++, internal++, external++)
- {
- internal->p_type = BYTE_GET (external->p_type);
- internal->p_flags = BYTE_GET (external->p_flags);
- internal->p_offset = BYTE_GET (external->p_offset);
- internal->p_vaddr = BYTE_GET (external->p_vaddr);
- internal->p_paddr = BYTE_GET (external->p_paddr);
- internal->p_filesz = BYTE_GET (external->p_filesz);
- internal->p_memsz = BYTE_GET (external->p_memsz);
- internal->p_align = BYTE_GET (external->p_align);
- }
-
- free (phdrs);
-
- return 1;
-}
-
-/* Returns 1 if the program headers were read into `program_headers'. */
-
-static int
-get_program_headers (FILE *file)
-{
- Elf_Internal_Phdr *phdrs;
-
- /* Check cache of prior read. */
- if (program_headers != NULL)
- return 1;
-
- phdrs = cmalloc (elf_header.e_phnum, sizeof (Elf_Internal_Phdr));
-
- if (phdrs == NULL)
- {
- error (_("Out of memory\n"));
- return 0;
- }
-
- if (is_32bit_elf
- ? get_32bit_program_headers (file, phdrs)
- : get_64bit_program_headers (file, phdrs))
- {
- program_headers = phdrs;
- return 1;
- }
-
- free (phdrs);
- return 0;
-}
-
-/* Returns 1 if the program headers were loaded. */
-
-static int
-process_program_headers (FILE *file)
-{
- Elf_Internal_Phdr *segment;
- unsigned int i;
-
- if (elf_header.e_phnum == 0)
- {
- if (do_segments)
- printf (_("\nThere are no program headers in this file.\n"));
- return 0;
- }
-
- if (do_segments && !do_header)
- {
- printf (_("\nElf file type is %s\n"), get_file_type (elf_header.e_type));
- printf (_("Entry point "));
- print_vma ((bfd_vma) elf_header.e_entry, PREFIX_HEX);
- printf (_("\nThere are %d program headers, starting at offset "),
- elf_header.e_phnum);
- print_vma ((bfd_vma) elf_header.e_phoff, DEC);
- printf ("\n");
- }
-
- if (! get_program_headers (file))
- return 0;
-
- if (do_segments)
- {
- if (elf_header.e_phnum > 1)
- printf (_("\nProgram Headers:\n"));
- else
- printf (_("\nProgram Headers:\n"));
-
- if (is_32bit_elf)
- printf
- (_(" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"));
- else if (do_wide)
- printf
- (_(" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"));
- else
- {
- printf
- (_(" Type Offset VirtAddr PhysAddr\n"));
- printf
- (_(" FileSiz MemSiz Flags Align\n"));
- }
- }
-
- dynamic_addr = 0;
- dynamic_size = 0;
-
- for (i = 0, segment = program_headers;
- i < elf_header.e_phnum;
- i++, segment++)
- {
- if (do_segments)
- {
- printf (" %-14.14s ", get_segment_type (segment->p_type));
-
- if (is_32bit_elf)
- {
- printf ("0x%6.6lx ", (unsigned long) segment->p_offset);
- printf ("0x%8.8lx ", (unsigned long) segment->p_vaddr);
- printf ("0x%8.8lx ", (unsigned long) segment->p_paddr);
- printf ("0x%5.5lx ", (unsigned long) segment->p_filesz);
- printf ("0x%5.5lx ", (unsigned long) segment->p_memsz);
- printf ("%c%c%c ",
- (segment->p_flags & PF_R ? 'R' : ' '),
- (segment->p_flags & PF_W ? 'W' : ' '),
- (segment->p_flags & PF_X ? 'E' : ' '));
- printf ("%#lx", (unsigned long) segment->p_align);
- }
- else if (do_wide)
- {
- if ((unsigned long) segment->p_offset == segment->p_offset)
- printf ("0x%6.6lx ", (unsigned long) segment->p_offset);
- else
- {
- print_vma (segment->p_offset, FULL_HEX);
- putchar (' ');
- }
-
- print_vma (segment->p_vaddr, FULL_HEX);
- putchar (' ');
- print_vma (segment->p_paddr, FULL_HEX);
- putchar (' ');
-
- if ((unsigned long) segment->p_filesz == segment->p_filesz)
- printf ("0x%6.6lx ", (unsigned long) segment->p_filesz);
- else
- {
- print_vma (segment->p_filesz, FULL_HEX);
- putchar (' ');
- }
-
- if ((unsigned long) segment->p_memsz == segment->p_memsz)
- printf ("0x%6.6lx", (unsigned long) segment->p_memsz);
- else
- {
- print_vma (segment->p_offset, FULL_HEX);
- }
-
- printf (" %c%c%c ",
- (segment->p_flags & PF_R ? 'R' : ' '),
- (segment->p_flags & PF_W ? 'W' : ' '),
- (segment->p_flags & PF_X ? 'E' : ' '));
-
- if ((unsigned long) segment->p_align == segment->p_align)
- printf ("%#lx", (unsigned long) segment->p_align);
- else
- {
- print_vma (segment->p_align, PREFIX_HEX);
- }
- }
- else
- {
- print_vma (segment->p_offset, FULL_HEX);
- putchar (' ');
- print_vma (segment->p_vaddr, FULL_HEX);
- putchar (' ');
- print_vma (segment->p_paddr, FULL_HEX);
- printf ("\n ");
- print_vma (segment->p_filesz, FULL_HEX);
- putchar (' ');
- print_vma (segment->p_memsz, FULL_HEX);
- printf (" %c%c%c ",
- (segment->p_flags & PF_R ? 'R' : ' '),
- (segment->p_flags & PF_W ? 'W' : ' '),
- (segment->p_flags & PF_X ? 'E' : ' '));
- print_vma (segment->p_align, HEX);
- }
- }
-
- switch (segment->p_type)
- {
- case PT_DYNAMIC:
- if (dynamic_addr)
- error (_("more than one dynamic segment\n"));
-
- /* Try to locate the .dynamic section. If there is
- a section header table, we can easily locate it. */
- if (section_headers != NULL)
- {
- Elf_Internal_Shdr *sec;
-
- sec = find_section (".dynamic");
- if (sec == NULL || sec->sh_size == 0)
- {
- error (_("no .dynamic section in the dynamic segment"));
- break;
- }
-
- dynamic_addr = sec->sh_offset;
- dynamic_size = sec->sh_size;
-
- if (dynamic_addr < segment->p_offset
- || dynamic_addr > segment->p_offset + segment->p_filesz)
- warn (_("the .dynamic section is not contained within the dynamic segment"));
- else if (dynamic_addr > segment->p_offset)
- warn (_("the .dynamic section is not the first section in the dynamic segment."));
- }
- else
- {
- /* Otherwise, we can only assume that the .dynamic
- section is the first section in the DYNAMIC segment. */
- dynamic_addr = segment->p_offset;
- dynamic_size = segment->p_filesz;
- }
- break;
-
- case PT_INTERP:
- if (fseek (file, archive_file_offset + (long) segment->p_offset,
- SEEK_SET))
- error (_("Unable to find program interpreter name\n"));
- else
- {
- program_interpreter[0] = 0;
- fscanf (file, "%63s", program_interpreter);
-
- if (do_segments)
- printf (_("\n [Requesting program interpreter: %s]"),
- program_interpreter);
- }
- break;
- }
-
- if (do_segments)
- putc ('\n', stdout);
- }
-
- if (do_segments && section_headers != NULL && string_table != NULL)
- {
- printf (_("\n Section to Segment mapping:\n"));
- printf (_(" Segment Sections...\n"));
-
- for (i = 0; i < elf_header.e_phnum; i++)
- {
- unsigned int j;
- Elf_Internal_Shdr *section;
-
- segment = program_headers + i;
- section = section_headers;
-
- printf (" %2.2d ", i);
-
- for (j = 1; j < elf_header.e_shnum; j++, section++)
- {
- if (ELF_IS_SECTION_IN_SEGMENT_MEMORY(section, segment))
- printf ("%s ", SECTION_NAME (section));
- }
-
- putc ('\n',stdout);
- }
- }
-
- return 1;
-}
-
-
-/* Find the file offset corresponding to VMA by using the program headers. */
-
-static long
-offset_from_vma (FILE *file, bfd_vma vma, bfd_size_type size)
-{
- Elf_Internal_Phdr *seg;
-
- if (! get_program_headers (file))
- {
- warn (_("Cannot interpret virtual addresses without program headers.\n"));
- return (long) vma;
- }
-
- for (seg = program_headers;
- seg < program_headers + elf_header.e_phnum;
- ++seg)
- {
- if (seg->p_type != PT_LOAD)
- continue;
-
- if (vma >= (seg->p_vaddr & -seg->p_align)
- && vma + size <= seg->p_vaddr + seg->p_filesz)
- return vma - seg->p_vaddr + seg->p_offset;
- }
-
- warn (_("Virtual address 0x%lx not located in any PT_LOAD segment.\n"),
- (long) vma);
- return (long) vma;
-}
-
-
-static int
-get_32bit_section_headers (FILE *file, unsigned int num)
-{
- Elf32_External_Shdr *shdrs;
- Elf_Internal_Shdr *internal;
- unsigned int i;
-
- shdrs = get_data (NULL, file, elf_header.e_shoff,
- elf_header.e_shentsize, num, _("section headers"));
- if (!shdrs)
- return 0;
-
- section_headers = cmalloc (num, sizeof (Elf_Internal_Shdr));
-
- if (section_headers == NULL)
- {
- error (_("Out of memory\n"));
- return 0;
- }
-
- for (i = 0, internal = section_headers;
- i < num;
- i++, internal++)
- {
- internal->sh_name = BYTE_GET (shdrs[i].sh_name);
- internal->sh_type = BYTE_GET (shdrs[i].sh_type);
- internal->sh_flags = BYTE_GET (shdrs[i].sh_flags);
- internal->sh_addr = BYTE_GET (shdrs[i].sh_addr);
- internal->sh_offset = BYTE_GET (shdrs[i].sh_offset);
- internal->sh_size = BYTE_GET (shdrs[i].sh_size);
- internal->sh_link = BYTE_GET (shdrs[i].sh_link);
- internal->sh_info = BYTE_GET (shdrs[i].sh_info);
- internal->sh_addralign = BYTE_GET (shdrs[i].sh_addralign);
- internal->sh_entsize = BYTE_GET (shdrs[i].sh_entsize);
- }
-
- free (shdrs);
-
- return 1;
-}
-
-static int
-get_64bit_section_headers (FILE *file, unsigned int num)
-{
- Elf64_External_Shdr *shdrs;
- Elf_Internal_Shdr *internal;
- unsigned int i;
-
- shdrs = get_data (NULL, file, elf_header.e_shoff,
- elf_header.e_shentsize, num, _("section headers"));
- if (!shdrs)
- return 0;
-
- section_headers = cmalloc (num, sizeof (Elf_Internal_Shdr));
-
- if (section_headers == NULL)
- {
- error (_("Out of memory\n"));
- return 0;
- }
-
- for (i = 0, internal = section_headers;
- i < num;
- i++, internal++)
- {
- internal->sh_name = BYTE_GET (shdrs[i].sh_name);
- internal->sh_type = BYTE_GET (shdrs[i].sh_type);
- internal->sh_flags = BYTE_GET (shdrs[i].sh_flags);
- internal->sh_addr = BYTE_GET (shdrs[i].sh_addr);
- internal->sh_size = BYTE_GET (shdrs[i].sh_size);
- internal->sh_entsize = BYTE_GET (shdrs[i].sh_entsize);
- internal->sh_link = BYTE_GET (shdrs[i].sh_link);
- internal->sh_info = BYTE_GET (shdrs[i].sh_info);
- internal->sh_offset = BYTE_GET (shdrs[i].sh_offset);
- internal->sh_addralign = BYTE_GET (shdrs[i].sh_addralign);
- }
-
- free (shdrs);
-
- return 1;
-}
-
-static Elf_Internal_Sym *
-get_32bit_elf_symbols (FILE *file, Elf_Internal_Shdr *section)
-{
- unsigned long number;
- Elf32_External_Sym *esyms;
- Elf_External_Sym_Shndx *shndx;
- Elf_Internal_Sym *isyms;
- Elf_Internal_Sym *psym;
- unsigned int j;
-
- esyms = get_data (NULL, file, section->sh_offset, 1, section->sh_size,
- _("symbols"));
- if (!esyms)
- return NULL;
-
- shndx = NULL;
- if (symtab_shndx_hdr != NULL
- && (symtab_shndx_hdr->sh_link
- == (unsigned long) SECTION_HEADER_NUM (section - section_headers)))
- {
- shndx = get_data (NULL, file, symtab_shndx_hdr->sh_offset,
- 1, symtab_shndx_hdr->sh_size, _("symtab shndx"));
- if (!shndx)
- {
- free (esyms);
- return NULL;
- }
- }
-
- number = section->sh_size / section->sh_entsize;
- isyms = cmalloc (number, sizeof (Elf_Internal_Sym));
-
- if (isyms == NULL)
- {
- error (_("Out of memory\n"));
- if (shndx)
- free (shndx);
- free (esyms);
- return NULL;
- }
-
- for (j = 0, psym = isyms;
- j < number;
- j++, psym++)
- {
- psym->st_name = BYTE_GET (esyms[j].st_name);
- psym->st_value = BYTE_GET (esyms[j].st_value);
- psym->st_size = BYTE_GET (esyms[j].st_size);
- psym->st_shndx = BYTE_GET (esyms[j].st_shndx);
- if (psym->st_shndx == SHN_XINDEX && shndx != NULL)
- psym->st_shndx
- = byte_get ((unsigned char *) &shndx[j], sizeof (shndx[j]));
- psym->st_info = BYTE_GET (esyms[j].st_info);
- psym->st_other = BYTE_GET (esyms[j].st_other);
- }
-
- if (shndx)
- free (shndx);
- free (esyms);
-
- return isyms;
-}
-
-static Elf_Internal_Sym *
-get_64bit_elf_symbols (FILE *file, Elf_Internal_Shdr *section)
-{
- unsigned long number;
- Elf64_External_Sym *esyms;
- Elf_External_Sym_Shndx *shndx;
- Elf_Internal_Sym *isyms;
- Elf_Internal_Sym *psym;
- unsigned int j;
-
- esyms = get_data (NULL, file, section->sh_offset, 1, section->sh_size,
- _("symbols"));
- if (!esyms)
- return NULL;
-
- shndx = NULL;
- if (symtab_shndx_hdr != NULL
- && (symtab_shndx_hdr->sh_link
- == (unsigned long) SECTION_HEADER_NUM (section - section_headers)))
- {
- shndx = get_data (NULL, file, symtab_shndx_hdr->sh_offset,
- 1, symtab_shndx_hdr->sh_size, _("symtab shndx"));
- if (!shndx)
- {
- free (esyms);
- return NULL;
- }
- }
-
- number = section->sh_size / section->sh_entsize;
- isyms = cmalloc (number, sizeof (Elf_Internal_Sym));
-
- if (isyms == NULL)
- {
- error (_("Out of memory\n"));
- if (shndx)
- free (shndx);
- free (esyms);
- return NULL;
- }
-
- for (j = 0, psym = isyms;
- j < number;
- j++, psym++)
- {
- psym->st_name = BYTE_GET (esyms[j].st_name);
- psym->st_info = BYTE_GET (esyms[j].st_info);
- psym->st_other = BYTE_GET (esyms[j].st_other);
- psym->st_shndx = BYTE_GET (esyms[j].st_shndx);
- if (psym->st_shndx == SHN_XINDEX && shndx != NULL)
- psym->st_shndx
- = byte_get ((unsigned char *) &shndx[j], sizeof (shndx[j]));
- psym->st_value = BYTE_GET (esyms[j].st_value);
- psym->st_size = BYTE_GET (esyms[j].st_size);
- }
-
- if (shndx)
- free (shndx);
- free (esyms);
-
- return isyms;
-}
-
-static const char *
-get_elf_section_flags (bfd_vma sh_flags)
-{
- static char buff[1024];
- char *p = buff;
- int field_size = is_32bit_elf ? 8 : 16;
- int index, size = sizeof (buff) - (field_size + 4 + 1);
- bfd_vma os_flags = 0;
- bfd_vma proc_flags = 0;
- bfd_vma unknown_flags = 0;
- const struct
- {
- const char *str;
- int len;
- }
- flags [] =
- {
- { "WRITE", 5 },
- { "ALLOC", 5 },
- { "EXEC", 4 },
- { "MERGE", 5 },
- { "STRINGS", 7 },
- { "INFO LINK", 9 },
- { "LINK ORDER", 10 },
- { "OS NONCONF", 10 },
- { "GROUP", 5 },
- { "TLS", 3 }
- };
-
- if (do_section_details)
- {
- sprintf (buff, "[%*.*lx]: ",
- field_size, field_size, (unsigned long) sh_flags);
- p += field_size + 4;
- }
-
- while (sh_flags)
- {
- bfd_vma flag;
-
- flag = sh_flags & - sh_flags;
- sh_flags &= ~ flag;
-
- if (do_section_details)
- {
- switch (flag)
- {
- case SHF_WRITE: index = 0; break;
- case SHF_ALLOC: index = 1; break;
- case SHF_EXECINSTR: index = 2; break;
- case SHF_MERGE: index = 3; break;
- case SHF_STRINGS: index = 4; break;
- case SHF_INFO_LINK: index = 5; break;
- case SHF_LINK_ORDER: index = 6; break;
- case SHF_OS_NONCONFORMING: index = 7; break;
- case SHF_GROUP: index = 8; break;
- case SHF_TLS: index = 9; break;
-
- default:
- index = -1;
- break;
- }
-
- if (index != -1)
- {
- if (p != buff + field_size + 4)
- {
- if (size < (10 + 2))
- abort ();
- size -= 2;
- *p++ = ',';
- *p++ = ' ';
- }
-
- size -= flags [index].len;
- p = stpcpy (p, flags [index].str);
- }
- else if (flag & SHF_MASKOS)
- os_flags |= flag;
- else if (flag & SHF_MASKPROC)
- proc_flags |= flag;
- else
- unknown_flags |= flag;
- }
- else
- {
- switch (flag)
- {
- case SHF_WRITE: *p = 'W'; break;
- case SHF_ALLOC: *p = 'A'; break;
- case SHF_EXECINSTR: *p = 'X'; break;
- case SHF_MERGE: *p = 'M'; break;
- case SHF_STRINGS: *p = 'S'; break;
- case SHF_INFO_LINK: *p = 'I'; break;
- case SHF_LINK_ORDER: *p = 'L'; break;
- case SHF_OS_NONCONFORMING: *p = 'O'; break;
- case SHF_GROUP: *p = 'G'; break;
- case SHF_TLS: *p = 'T'; break;
-
- default:
- if (elf_header.e_machine == EM_X86_64
- && flag == SHF_X86_64_LARGE)
- *p = 'l';
- else if (flag & SHF_MASKOS)
- {
- *p = 'o';
- sh_flags &= ~ SHF_MASKOS;
- }
- else if (flag & SHF_MASKPROC)
- {
- *p = 'p';
- sh_flags &= ~ SHF_MASKPROC;
- }
- else
- *p = 'x';
- break;
- }
- p++;
- }
- }
-
- if (do_section_details)
- {
- if (os_flags)
- {
- size -= 5 + field_size;
- if (p != buff + field_size + 4)
- {
- if (size < (2 + 1))
- abort ();
- size -= 2;
- *p++ = ',';
- *p++ = ' ';
- }
- sprintf (p, "OS (%*.*lx)", field_size, field_size,
- (unsigned long) os_flags);
- p += 5 + field_size;
- }
- if (proc_flags)
- {
- size -= 7 + field_size;
- if (p != buff + field_size + 4)
- {
- if (size < (2 + 1))
- abort ();
- size -= 2;
- *p++ = ',';
- *p++ = ' ';
- }
- sprintf (p, "PROC (%*.*lx)", field_size, field_size,
- (unsigned long) proc_flags);
- p += 7 + field_size;
- }
- if (unknown_flags)
- {
- size -= 10 + field_size;
- if (p != buff + field_size + 4)
- {
- if (size < (2 + 1))
- abort ();
- size -= 2;
- *p++ = ',';
- *p++ = ' ';
- }
- sprintf (p, "UNKNOWN (%*.*lx)", field_size, field_size,
- (unsigned long) unknown_flags);
- p += 10 + field_size;
- }
- }
-
- *p = '\0';
- return buff;
-}
-
-static int
-process_section_headers (FILE *file)
-{
- Elf_Internal_Shdr *section;
- unsigned int i;
-
- section_headers = NULL;
-
- if (elf_header.e_shnum == 0)
- {
- if (do_sections)
- printf (_("\nThere are no sections in this file.\n"));
-
- return 1;
- }
-
- if (do_sections && !do_header)
- printf (_("There are %d section headers, starting at offset 0x%lx:\n"),
- elf_header.e_shnum, (unsigned long) elf_header.e_shoff);
-
- if (is_32bit_elf)
- {
- if (! get_32bit_section_headers (file, elf_header.e_shnum))
- return 0;
- }
- else if (! get_64bit_section_headers (file, elf_header.e_shnum))
- return 0;
-
- /* Read in the string table, so that we have names to display. */
- if (SECTION_HEADER_INDEX (elf_header.e_shstrndx) < elf_header.e_shnum)
- {
- section = SECTION_HEADER (elf_header.e_shstrndx);
-
- if (section->sh_size != 0)
- {
- string_table = get_data (NULL, file, section->sh_offset,
- 1, section->sh_size, _("string table"));
-
- string_table_length = string_table != NULL ? section->sh_size : 0;
- }
- }
-
- /* Scan the sections for the dynamic symbol table
- and dynamic string table and debug sections. */
- dynamic_symbols = NULL;
- dynamic_strings = NULL;
- dynamic_syminfo = NULL;
- symtab_shndx_hdr = NULL;
-
- eh_addr_size = is_32bit_elf ? 4 : 8;
- switch (elf_header.e_machine)
- {
- case EM_MIPS:
- case EM_MIPS_RS3_LE:
- /* The 64-bit MIPS EABI uses a combination of 32-bit ELF and 64-bit
- FDE addresses. However, the ABI also has a semi-official ILP32
- variant for which the normal FDE address size rules apply.
-
- GCC 4.0 marks EABI64 objects with a dummy .gcc_compiled_longXX
- section, where XX is the size of longs in bits. Unfortunately,
- earlier compilers provided no way of distinguishing ILP32 objects
- from LP64 objects, so if there's any doubt, we should assume that
- the official LP64 form is being used. */
- if ((elf_header.e_flags & EF_MIPS_ABI) == E_MIPS_ABI_EABI64
- && find_section (".gcc_compiled_long32") == NULL)
- eh_addr_size = 8;
- break;
- }
-
-#define CHECK_ENTSIZE_VALUES(section, i, size32, size64) \
- do \
- { \
- size_t expected_entsize \
- = is_32bit_elf ? size32 : size64; \
- if (section->sh_entsize != expected_entsize) \
- error (_("Section %d has invalid sh_entsize %lx (expected %lx)\n"), \
- i, (unsigned long int) section->sh_entsize, \
- (unsigned long int) expected_entsize); \
- section->sh_entsize = expected_entsize; \
- } \
- while (0)
-#define CHECK_ENTSIZE(section, i, type) \
- CHECK_ENTSIZE_VALUES (section, i, sizeof (Elf32_External_##type), \
- sizeof (Elf64_External_##type))
-
- for (i = 0, section = section_headers;
- i < elf_header.e_shnum;
- i++, section++)
- {
- char *name = SECTION_NAME (section);
-
- if (section->sh_type == SHT_DYNSYM)
- {
- if (dynamic_symbols != NULL)
- {
- error (_("File contains multiple dynamic symbol tables\n"));
- continue;
- }
-
- CHECK_ENTSIZE (section, i, Sym);
- num_dynamic_syms = section->sh_size / section->sh_entsize;
- dynamic_symbols = GET_ELF_SYMBOLS (file, section);
- }
- else if (section->sh_type == SHT_STRTAB
- && streq (name, ".dynstr"))
- {
- if (dynamic_strings != NULL)
- {
- error (_("File contains multiple dynamic string tables\n"));
- continue;
- }
-
- dynamic_strings = get_data (NULL, file, section->sh_offset,
- 1, section->sh_size, _("dynamic strings"));
- dynamic_strings_length = section->sh_size;
- }
- else if (section->sh_type == SHT_SYMTAB_SHNDX)
- {
- if (symtab_shndx_hdr != NULL)
- {
- error (_("File contains multiple symtab shndx tables\n"));
- continue;
- }
- symtab_shndx_hdr = section;
- }
- else if (section->sh_type == SHT_SYMTAB)
- CHECK_ENTSIZE (section, i, Sym);
- else if (section->sh_type == SHT_GROUP)
- CHECK_ENTSIZE_VALUES (section, i, GRP_ENTRY_SIZE, GRP_ENTRY_SIZE);
- else if (section->sh_type == SHT_REL)
- CHECK_ENTSIZE (section, i, Rel);
- else if (section->sh_type == SHT_RELA)
- CHECK_ENTSIZE (section, i, Rela);
- else if ((do_debugging || do_debug_info || do_debug_abbrevs
- || do_debug_lines || do_debug_pubnames || do_debug_aranges
- || do_debug_frames || do_debug_macinfo || do_debug_str
- || do_debug_loc || do_debug_ranges)
- && strneq (name, ".debug_", 7))
- {
- name += 7;
-
- if (do_debugging
- || (do_debug_info && streq (name, "info"))
- || (do_debug_abbrevs && streq (name, "abbrev"))
- || (do_debug_lines && streq (name, "line"))
- || (do_debug_pubnames && streq (name, "pubnames"))
- || (do_debug_aranges && streq (name, "aranges"))
- || (do_debug_ranges && streq (name, "ranges"))
- || (do_debug_frames && streq (name, "frame"))
- || (do_debug_macinfo && streq (name, "macinfo"))
- || (do_debug_str && streq (name, "str"))
- || (do_debug_loc && streq (name, "loc"))
- )
- request_dump (i, DEBUG_DUMP);
- }
- /* linkonce section to be combined with .debug_info at link time. */
- else if ((do_debugging || do_debug_info)
- && strneq (name, ".gnu.linkonce.wi.", 17))
- request_dump (i, DEBUG_DUMP);
- else if (do_debug_frames && streq (name, ".eh_frame"))
- request_dump (i, DEBUG_DUMP);
- }
-
- if (! do_sections)
- return 1;
-
- if (elf_header.e_shnum > 1)
- printf (_("\nSection Headers:\n"));
- else
- printf (_("\nSection Header:\n"));
-
- if (is_32bit_elf)
- {
- if (do_section_details)
- {
- printf (_(" [Nr] Name\n"));
- printf (_(" Type Addr Off Size ES Lk Inf Al\n"));
- }
- else
- printf
- (_(" [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"));
- }
- else if (do_wide)
- {
- if (do_section_details)
- {
- printf (_(" [Nr] Name\n"));
- printf (_(" Type Address Off Size ES Lk Inf Al\n"));
- }
- else
- printf
- (_(" [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"));
- }
- else
- {
- if (do_section_details)
- {
- printf (_(" [Nr] Name\n"));
- printf (_(" Type Address Offset Link\n"));
- printf (_(" Size EntSize Info Align\n"));
- }
- else
- {
- printf (_(" [Nr] Name Type Address Offset\n"));
- printf (_(" Size EntSize Flags Link Info Align\n"));
- }
- }
-
- if (do_section_details)
- printf (_(" Flags\n"));
-
- for (i = 0, section = section_headers;
- i < elf_header.e_shnum;
- i++, section++)
- {
- if (do_section_details)
- {
- printf (" [%2u] %s\n",
- SECTION_HEADER_NUM (i),
- SECTION_NAME (section));
- if (is_32bit_elf || do_wide)
- printf (" %-15.15s ",
- get_section_type_name (section->sh_type));
- }
- else
- printf (" [%2u] %-17.17s %-15.15s ",
- SECTION_HEADER_NUM (i),
- SECTION_NAME (section),
- get_section_type_name (section->sh_type));
-
- if (is_32bit_elf)
- {
- print_vma (section->sh_addr, LONG_HEX);
-
- printf ( " %6.6lx %6.6lx %2.2lx",
- (unsigned long) section->sh_offset,
- (unsigned long) section->sh_size,
- (unsigned long) section->sh_entsize);
-
- if (do_section_details)
- fputs (" ", stdout);
- else
- printf (" %3s ", get_elf_section_flags (section->sh_flags));
-
- printf ("%2ld %3lu %2ld\n",
- (unsigned long) section->sh_link,
- (unsigned long) section->sh_info,
- (unsigned long) section->sh_addralign);
- }
- else if (do_wide)
- {
- print_vma (section->sh_addr, LONG_HEX);
-
- if ((long) section->sh_offset == section->sh_offset)
- printf (" %6.6lx", (unsigned long) section->sh_offset);
- else
- {
- putchar (' ');
- print_vma (section->sh_offset, LONG_HEX);
- }
-
- if ((unsigned long) section->sh_size == section->sh_size)
- printf (" %6.6lx", (unsigned long) section->sh_size);
- else
- {
- putchar (' ');
- print_vma (section->sh_size, LONG_HEX);
- }
-
- if ((unsigned long) section->sh_entsize == section->sh_entsize)
- printf (" %2.2lx", (unsigned long) section->sh_entsize);
- else
- {
- putchar (' ');
- print_vma (section->sh_entsize, LONG_HEX);
- }
-
- if (do_section_details)
- fputs (" ", stdout);
- else
- printf (" %3s ", get_elf_section_flags (section->sh_flags));
-
- printf ("%2ld %3lu ",
- (unsigned long) section->sh_link,
- (unsigned long) section->sh_info);
-
- if ((unsigned long) section->sh_addralign == section->sh_addralign)
- printf ("%2ld\n", (unsigned long) section->sh_addralign);
- else
- {
- print_vma (section->sh_addralign, DEC);
- putchar ('\n');
- }
- }
- else if (do_section_details)
- {
- printf (" %-15.15s ",
- get_section_type_name (section->sh_type));
- print_vma (section->sh_addr, LONG_HEX);
- if ((long) section->sh_offset == section->sh_offset)
- printf (" %16.16lx", (unsigned long) section->sh_offset);
- else
- {
- printf (" ");
- print_vma (section->sh_offset, LONG_HEX);
- }
- printf (" %ld\n ", (unsigned long) section->sh_link);
- print_vma (section->sh_size, LONG_HEX);
- putchar (' ');
- print_vma (section->sh_entsize, LONG_HEX);
-
- printf (" %-16lu %ld\n",
- (unsigned long) section->sh_info,
- (unsigned long) section->sh_addralign);
- }
- else
- {
- putchar (' ');
- print_vma (section->sh_addr, LONG_HEX);
- if ((long) section->sh_offset == section->sh_offset)
- printf (" %8.8lx", (unsigned long) section->sh_offset);
- else
- {
- printf (" ");
- print_vma (section->sh_offset, LONG_HEX);
- }
- printf ("\n ");
- print_vma (section->sh_size, LONG_HEX);
- printf (" ");
- print_vma (section->sh_entsize, LONG_HEX);
-
- printf (" %3s ", get_elf_section_flags (section->sh_flags));
-
- printf (" %2ld %3lu %ld\n",
- (unsigned long) section->sh_link,
- (unsigned long) section->sh_info,
- (unsigned long) section->sh_addralign);
- }
-
- if (do_section_details)
- printf (" %s\n", get_elf_section_flags (section->sh_flags));
- }
-
- if (!do_section_details)
- printf (_("Key to Flags:\n\
- W (write), A (alloc), X (execute), M (merge), S (strings)\n\
- I (info), L (link order), G (group), x (unknown)\n\
- O (extra OS processing required) o (OS specific), p (processor specific)\n"));
-
- return 1;
-}
-
-static const char *
-get_group_flags (unsigned int flags)
-{
- static char buff[32];
- switch (flags)
- {
- case GRP_COMDAT:
- return "COMDAT";
-
- default:
- snprintf (buff, sizeof (buff), _("[<unknown>: 0x%x]"), flags);
- break;
- }
- return buff;
-}
-
-static int
-process_section_groups (FILE *file)
-{
- Elf_Internal_Shdr *section;
- unsigned int i;
- struct group *group;
- Elf_Internal_Shdr *symtab_sec, *strtab_sec;
- Elf_Internal_Sym *symtab;
- char *strtab;
- size_t strtab_size;
-
- /* Don't process section groups unless needed. */
- if (!do_unwind && !do_section_groups)
- return 1;
-
- if (elf_header.e_shnum == 0)
- {
- if (do_section_groups)
- printf (_("\nThere are no sections in this file.\n"));
-
- return 1;
- }
-
- if (section_headers == NULL)
- {
- error (_("Section headers are not available!\n"));
- abort ();
- }
-
- section_headers_groups = calloc (elf_header.e_shnum,
- sizeof (struct group *));
-
- if (section_headers_groups == NULL)
- {
- error (_("Out of memory\n"));
- return 0;
- }
-
- /* Scan the sections for the group section. */
- group_count = 0;
- for (i = 0, section = section_headers;
- i < elf_header.e_shnum;
- i++, section++)
- if (section->sh_type == SHT_GROUP)
- group_count++;
-
- if (group_count == 0)
- {
- if (do_section_groups)
- printf (_("\nThere are no section groups in this file.\n"));
-
- return 1;
- }
-
- section_groups = calloc (group_count, sizeof (struct group));
-
- if (section_groups == NULL)
- {
- error (_("Out of memory\n"));
- return 0;
- }
-
- symtab_sec = NULL;
- strtab_sec = NULL;
- symtab = NULL;
- strtab = NULL;
- strtab_size = 0;
- for (i = 0, section = section_headers, group = section_groups;
- i < elf_header.e_shnum;
- i++, section++)
- {
- if (section->sh_type == SHT_GROUP)
- {
- char *name = SECTION_NAME (section);
- char *group_name;
- unsigned char *start, *indices;
- unsigned int entry, j, size;
- Elf_Internal_Shdr *sec;
- Elf_Internal_Sym *sym;
-
- /* Get the symbol table. */
- if (SECTION_HEADER_INDEX (section->sh_link) >= elf_header.e_shnum
- || ((sec = SECTION_HEADER (section->sh_link))->sh_type
- != SHT_SYMTAB))
- {
- error (_("Bad sh_link in group section `%s'\n"), name);
- continue;
- }
-
- if (symtab_sec != sec)
- {
- symtab_sec = sec;
- if (symtab)
- free (symtab);
- symtab = GET_ELF_SYMBOLS (file, symtab_sec);
- }
-
- sym = symtab + section->sh_info;
-
- if (ELF_ST_TYPE (sym->st_info) == STT_SECTION)
- {
- bfd_vma sec_index = SECTION_HEADER_INDEX (sym->st_shndx);
- if (sec_index == 0)
- {
- error (_("Bad sh_info in group section `%s'\n"), name);
- continue;
- }
-
- group_name = SECTION_NAME (section_headers + sec_index);
- strtab_sec = NULL;
- if (strtab)
- free (strtab);
- strtab = NULL;
- strtab_size = 0;
- }
- else
- {
- /* Get the string table. */
- if (SECTION_HEADER_INDEX (symtab_sec->sh_link)
- >= elf_header.e_shnum)
- {
- strtab_sec = NULL;
- if (strtab)
- free (strtab);
- strtab = NULL;
- strtab_size = 0;
- }
- else if (strtab_sec
- != (sec = SECTION_HEADER (symtab_sec->sh_link)))
- {
- strtab_sec = sec;
- if (strtab)
- free (strtab);
- strtab = get_data (NULL, file, strtab_sec->sh_offset,
- 1, strtab_sec->sh_size,
- _("string table"));
- strtab_size = strtab != NULL ? strtab_sec->sh_size : 0;
- }
- group_name = sym->st_name < strtab_size
- ? strtab + sym->st_name : "<corrupt>";
- }
-
- start = get_data (NULL, file, section->sh_offset,
- 1, section->sh_size, _("section data"));
-
- indices = start;
- size = (section->sh_size / section->sh_entsize) - 1;
- entry = byte_get (indices, 4);
- indices += 4;
-
- if (do_section_groups)
- {
- printf ("\n%s group section [%5u] `%s' [%s] contains %u sections:\n",
- get_group_flags (entry), i, name, group_name, size);
-
- printf (_(" [Index] Name\n"));
- }
-
- group->group_index = i;
-
- for (j = 0; j < size; j++)
- {
- struct group_list *g;
-
- entry = byte_get (indices, 4);
- indices += 4;
-
- if (SECTION_HEADER_INDEX (entry) >= elf_header.e_shnum)
- {
- error (_("section [%5u] in group section [%5u] > maximum section [%5u]\n"),
- entry, i, elf_header.e_shnum - 1);
- continue;
- }
- else if (entry >= SHN_LORESERVE && entry <= SHN_HIRESERVE)
- {
- error (_("invalid section [%5u] in group section [%5u]\n"),
- entry, i);
- continue;
- }
-
- if (section_headers_groups [SECTION_HEADER_INDEX (entry)]
- != NULL)
- {
- if (entry)
- {
- error (_("section [%5u] in group section [%5u] already in group section [%5u]\n"),
- entry, i,
- section_headers_groups [SECTION_HEADER_INDEX (entry)]->group_index);
- continue;
- }
- else
- {
- /* Intel C/C++ compiler may put section 0 in a
- section group. We just warn it the first time
- and ignore it afterwards. */
- static int warned = 0;
- if (!warned)
- {
- error (_("section 0 in group section [%5u]\n"),
- section_headers_groups [SECTION_HEADER_INDEX (entry)]->group_index);
- warned++;
- }
- }
- }
-
- section_headers_groups [SECTION_HEADER_INDEX (entry)]
- = group;
-
- if (do_section_groups)
- {
- sec = SECTION_HEADER (entry);
- printf (" [%5u] %s\n", entry, SECTION_NAME (sec));
- }
-
- g = xmalloc (sizeof (struct group_list));
- g->section_index = entry;
- g->next = group->root;
- group->root = g;
- }
-
- if (start)
- free (start);
-
- group++;
- }
- }
-
- if (symtab)
- free (symtab);
- if (strtab)
- free (strtab);
- return 1;
-}
-
-static struct
-{
- const char *name;
- int reloc;
- int size;
- int rela;
-} dynamic_relocations [] =
-{
- { "REL", DT_REL, DT_RELSZ, FALSE },
- { "RELA", DT_RELA, DT_RELASZ, TRUE },
- { "PLT", DT_JMPREL, DT_PLTRELSZ, UNKNOWN }
-};
-
-/* Process the reloc section. */
-
-static int
-process_relocs (FILE *file)
-{
- unsigned long rel_size;
- unsigned long rel_offset;
-
-
- if (!do_reloc)
- return 1;
-
- if (do_using_dynamic)
- {
- int is_rela;
- const char *name;
- int has_dynamic_reloc;
- unsigned int i;
-
- has_dynamic_reloc = 0;
-
- for (i = 0; i < ARRAY_SIZE (dynamic_relocations); i++)
- {
- is_rela = dynamic_relocations [i].rela;
- name = dynamic_relocations [i].name;
- rel_size = dynamic_info [dynamic_relocations [i].size];
- rel_offset = dynamic_info [dynamic_relocations [i].reloc];
-
- has_dynamic_reloc |= rel_size;
-
- if (is_rela == UNKNOWN)
- {
- if (dynamic_relocations [i].reloc == DT_JMPREL)
- switch (dynamic_info[DT_PLTREL])
- {
- case DT_REL:
- is_rela = FALSE;
- break;
- case DT_RELA:
- is_rela = TRUE;
- break;
- }
- }
-
- if (rel_size)
- {
- printf
- (_("\n'%s' relocation section at offset 0x%lx contains %ld bytes:\n"),
- name, rel_offset, rel_size);
-
- dump_relocations (file,
- offset_from_vma (file, rel_offset, rel_size),
- rel_size,
- dynamic_symbols, num_dynamic_syms,
- dynamic_strings, dynamic_strings_length, is_rela);
- }
- }
-
- if (! has_dynamic_reloc)
- printf (_("\nThere are no dynamic relocations in this file.\n"));
- }
- else
- {
- Elf_Internal_Shdr *section;
- unsigned long i;
- int found = 0;
-
- for (i = 0, section = section_headers;
- i < elf_header.e_shnum;
- i++, section++)
- {
- if ( section->sh_type != SHT_RELA
- && section->sh_type != SHT_REL)
- continue;
-
- rel_offset = section->sh_offset;
- rel_size = section->sh_size;
-
- if (rel_size)
- {
- Elf_Internal_Shdr *strsec;
- int is_rela;
-
- printf (_("\nRelocation section "));
-
- if (string_table == NULL)
- printf ("%d", section->sh_name);
- else
- printf (_("'%s'"), SECTION_NAME (section));
-
- printf (_(" at offset 0x%lx contains %lu entries:\n"),
- rel_offset, (unsigned long) (rel_size / section->sh_entsize));
-
- is_rela = section->sh_type == SHT_RELA;
-
- if (section->sh_link
- && SECTION_HEADER_INDEX (section->sh_link)
- < elf_header.e_shnum)
- {
- Elf_Internal_Shdr *symsec;
- Elf_Internal_Sym *symtab;
- unsigned long nsyms;
- unsigned long strtablen = 0;
- char *strtab = NULL;
-
- symsec = SECTION_HEADER (section->sh_link);
- if (symsec->sh_type != SHT_SYMTAB
- && symsec->sh_type != SHT_DYNSYM)
- continue;
-
- nsyms = symsec->sh_size / symsec->sh_entsize;
- symtab = GET_ELF_SYMBOLS (file, symsec);
-
- if (symtab == NULL)
- continue;
-
- if (SECTION_HEADER_INDEX (symsec->sh_link)
- < elf_header.e_shnum)
- {
- strsec = SECTION_HEADER (symsec->sh_link);
-
- strtab = get_data (NULL, file, strsec->sh_offset,
- 1, strsec->sh_size,
- _("string table"));
- strtablen = strtab == NULL ? 0 : strsec->sh_size;
- }
-
- dump_relocations (file, rel_offset, rel_size,
- symtab, nsyms, strtab, strtablen, is_rela);
- if (strtab)
- free (strtab);
- free (symtab);
- }
- else
- dump_relocations (file, rel_offset, rel_size,
- NULL, 0, NULL, 0, is_rela);
-
- found = 1;
- }
- }
-
- if (! found)
- printf (_("\nThere are no relocations in this file.\n"));
- }
-
- return 1;
-}
-
-/* Process the unwind section. */
-
-#include "unwind-ia64.h"
-
-/* An absolute address consists of a section and an offset. If the
- section is NULL, the offset itself is the address, otherwise, the
- address equals to LOAD_ADDRESS(section) + offset. */
-
-struct absaddr
- {
- unsigned short section;
- bfd_vma offset;
- };
-
-#define ABSADDR(a) \
- ((a).section \
- ? section_headers [(a).section].sh_addr + (a).offset \
- : (a).offset)
-
-struct ia64_unw_aux_info
- {
- struct ia64_unw_table_entry
- {
- struct absaddr start;
- struct absaddr end;
- struct absaddr info;
- }
- *table; /* Unwind table. */
- unsigned long table_len; /* Length of unwind table. */
- unsigned char *info; /* Unwind info. */
- unsigned long info_size; /* Size of unwind info. */
- bfd_vma info_addr; /* starting address of unwind info. */
- bfd_vma seg_base; /* Starting address of segment. */
- Elf_Internal_Sym *symtab; /* The symbol table. */
- unsigned long nsyms; /* Number of symbols. */
- char *strtab; /* The string table. */
- unsigned long strtab_size; /* Size of string table. */
- };
-
-static void
-find_symbol_for_address (Elf_Internal_Sym *symtab,
- unsigned long nsyms,
- const char *strtab,
- unsigned long strtab_size,
- struct absaddr addr,
- const char **symname,
- bfd_vma *offset)
-{
- bfd_vma dist = 0x100000;
- Elf_Internal_Sym *sym, *best = NULL;
- unsigned long i;
-
- for (i = 0, sym = symtab; i < nsyms; ++i, ++sym)
- {
- if (ELF_ST_TYPE (sym->st_info) == STT_FUNC
- && sym->st_name != 0
- && (addr.section == SHN_UNDEF || addr.section == sym->st_shndx)
- && addr.offset >= sym->st_value
- && addr.offset - sym->st_value < dist)
- {
- best = sym;
- dist = addr.offset - sym->st_value;
- if (!dist)
- break;
- }
- }
- if (best)
- {
- *symname = (best->st_name >= strtab_size
- ? "<corrupt>" : strtab + best->st_name);
- *offset = dist;
- return;
- }
- *symname = NULL;
- *offset = addr.offset;
-}
-
-static void
-dump_ia64_unwind (struct ia64_unw_aux_info *aux)
-{
- struct ia64_unw_table_entry *tp;
- int in_body;
-
- for (tp = aux->table; tp < aux->table + aux->table_len; ++tp)
- {
- bfd_vma stamp;
- bfd_vma offset;
- const unsigned char *dp;
- const unsigned char *head;
- const char *procname;
-
- find_symbol_for_address (aux->symtab, aux->nsyms, aux->strtab,
- aux->strtab_size, tp->start, &procname, &offset);
-
- fputs ("\n<", stdout);
-
- if (procname)
- {
- fputs (procname, stdout);
-
- if (offset)
- printf ("+%lx", (unsigned long) offset);
- }
-
- fputs (">: [", stdout);
- print_vma (tp->start.offset, PREFIX_HEX);
- fputc ('-', stdout);
- print_vma (tp->end.offset, PREFIX_HEX);
- printf ("], info at +0x%lx\n",
- (unsigned long) (tp->info.offset - aux->seg_base));
-
- head = aux->info + (ABSADDR (tp->info) - aux->info_addr);
- stamp = byte_get ((unsigned char *) head, sizeof (stamp));
-
- printf (" v%u, flags=0x%lx (%s%s), len=%lu bytes\n",
- (unsigned) UNW_VER (stamp),
- (unsigned long) ((stamp & UNW_FLAG_MASK) >> 32),
- UNW_FLAG_EHANDLER (stamp) ? " ehandler" : "",
- UNW_FLAG_UHANDLER (stamp) ? " uhandler" : "",
- (unsigned long) (eh_addr_size * UNW_LENGTH (stamp)));
-
- if (UNW_VER (stamp) != 1)
- {
- printf ("\tUnknown version.\n");
- continue;
- }
-
- in_body = 0;
- for (dp = head + 8; dp < head + 8 + eh_addr_size * UNW_LENGTH (stamp);)
- dp = unw_decode (dp, in_body, & in_body);
- }
-}
-
-static int
-slurp_ia64_unwind_table (FILE *file,
- struct ia64_unw_aux_info *aux,
- Elf_Internal_Shdr *sec)
-{
- unsigned long size, nrelas, i;
- Elf_Internal_Phdr *seg;
- struct ia64_unw_table_entry *tep;
- Elf_Internal_Shdr *relsec;
- Elf_Internal_Rela *rela, *rp;
- unsigned char *table, *tp;
- Elf_Internal_Sym *sym;
- const char *relname;
-
- /* First, find the starting address of the segment that includes
- this section: */
-
- if (elf_header.e_phnum)
- {
- if (! get_program_headers (file))
- return 0;
-
- for (seg = program_headers;
- seg < program_headers + elf_header.e_phnum;
- ++seg)
- {
- if (seg->p_type != PT_LOAD)
- continue;
-
- if (sec->sh_addr >= seg->p_vaddr
- && (sec->sh_addr + sec->sh_size <= seg->p_vaddr + seg->p_memsz))
- {
- aux->seg_base = seg->p_vaddr;
- break;
- }
- }
- }
-
- /* Second, build the unwind table from the contents of the unwind section: */
- size = sec->sh_size;
- table = get_data (NULL, file, sec->sh_offset, 1, size, _("unwind table"));
- if (!table)
- return 0;
-
- aux->table = xcmalloc (size / (3 * eh_addr_size), sizeof (aux->table[0]));
- tep = aux->table;
- for (tp = table; tp < table + size; tp += 3 * eh_addr_size, ++tep)
- {
- tep->start.section = SHN_UNDEF;
- tep->end.section = SHN_UNDEF;
- tep->info.section = SHN_UNDEF;
- if (is_32bit_elf)
- {
- tep->start.offset = byte_get ((unsigned char *) tp + 0, 4);
- tep->end.offset = byte_get ((unsigned char *) tp + 4, 4);
- tep->info.offset = byte_get ((unsigned char *) tp + 8, 4);
- }
- else
- {
- tep->start.offset = BYTE_GET ((unsigned char *) tp + 0);
- tep->end.offset = BYTE_GET ((unsigned char *) tp + 8);
- tep->info.offset = BYTE_GET ((unsigned char *) tp + 16);
- }
- tep->start.offset += aux->seg_base;
- tep->end.offset += aux->seg_base;
- tep->info.offset += aux->seg_base;
- }
- free (table);
-
- /* Third, apply any relocations to the unwind table: */
-
- for (relsec = section_headers;
- relsec < section_headers + elf_header.e_shnum;
- ++relsec)
- {
- if (relsec->sh_type != SHT_RELA
- || SECTION_HEADER_INDEX (relsec->sh_info) >= elf_header.e_shnum
- || SECTION_HEADER (relsec->sh_info) != sec)
- continue;
-
- if (!slurp_rela_relocs (file, relsec->sh_offset, relsec->sh_size,
- & rela, & nrelas))
- return 0;
-
- for (rp = rela; rp < rela + nrelas; ++rp)
- {
- if (is_32bit_elf)
- {
- relname = elf_ia64_reloc_type (ELF32_R_TYPE (rp->r_info));
- sym = aux->symtab + ELF32_R_SYM (rp->r_info);
- }
- else
- {
- relname = elf_ia64_reloc_type (ELF64_R_TYPE (rp->r_info));
- sym = aux->symtab + ELF64_R_SYM (rp->r_info);
- }
-
- if (! strneq (relname, "R_IA64_SEGREL", 13))
- {
- warn (_("Skipping unexpected relocation type %s\n"), relname);
- continue;
- }
-
- i = rp->r_offset / (3 * eh_addr_size);
-
- switch (rp->r_offset/eh_addr_size % 3)
- {
- case 0:
- aux->table[i].start.section = sym->st_shndx;
- aux->table[i].start.offset += rp->r_addend + sym->st_value;
- break;
- case 1:
- aux->table[i].end.section = sym->st_shndx;
- aux->table[i].end.offset += rp->r_addend + sym->st_value;
- break;
- case 2:
- aux->table[i].info.section = sym->st_shndx;
- aux->table[i].info.offset += rp->r_addend + sym->st_value;
- break;
- default:
- break;
- }
- }
-
- free (rela);
- }
-
- aux->table_len = size / (3 * eh_addr_size);
- return 1;
-}
-
-static int
-ia64_process_unwind (FILE *file)
-{
- Elf_Internal_Shdr *sec, *unwsec = NULL, *strsec;
- unsigned long i, unwcount = 0, unwstart = 0;
- struct ia64_unw_aux_info aux;
-
- memset (& aux, 0, sizeof (aux));
-
- for (i = 0, sec = section_headers; i < elf_header.e_shnum; ++i, ++sec)
- {
- if (sec->sh_type == SHT_SYMTAB
- && SECTION_HEADER_INDEX (sec->sh_link) < elf_header.e_shnum)
- {
- aux.nsyms = sec->sh_size / sec->sh_entsize;
- aux.symtab = GET_ELF_SYMBOLS (file, sec);
-
- strsec = SECTION_HEADER (sec->sh_link);
- aux.strtab = get_data (NULL, file, strsec->sh_offset,
- 1, strsec->sh_size, _("string table"));
- aux.strtab_size = aux.strtab != NULL ? strsec->sh_size : 0;
- }
- else if (sec->sh_type == SHT_IA_64_UNWIND)
- unwcount++;
- }
-
- if (!unwcount)
- printf (_("\nThere are no unwind sections in this file.\n"));
-
- while (unwcount-- > 0)
- {
- char *suffix;
- size_t len, len2;
-
- for (i = unwstart, sec = section_headers + unwstart;
- i < elf_header.e_shnum; ++i, ++sec)
- if (sec->sh_type == SHT_IA_64_UNWIND)
- {
- unwsec = sec;
- break;
- }
-
- unwstart = i + 1;
- len = sizeof (ELF_STRING_ia64_unwind_once) - 1;
-
- if ((unwsec->sh_flags & SHF_GROUP) != 0)
- {
- /* We need to find which section group it is in. */
- struct group_list *g = section_headers_groups [i]->root;
-
- for (; g != NULL; g = g->next)
- {
- sec = SECTION_HEADER (g->section_index);
-
- if (streq (SECTION_NAME (sec), ELF_STRING_ia64_unwind_info))
- break;
- }
-
- if (g == NULL)
- i = elf_header.e_shnum;
- }
- else if (strneq (SECTION_NAME (unwsec), ELF_STRING_ia64_unwind_once, len))
- {
- /* .gnu.linkonce.ia64unw.FOO -> .gnu.linkonce.ia64unwi.FOO. */
- len2 = sizeof (ELF_STRING_ia64_unwind_info_once) - 1;
- suffix = SECTION_NAME (unwsec) + len;
- for (i = 0, sec = section_headers; i < elf_header.e_shnum;
- ++i, ++sec)
- if (strneq (SECTION_NAME (sec), ELF_STRING_ia64_unwind_info_once, len2)
- && streq (SECTION_NAME (sec) + len2, suffix))
- break;
- }
- else
- {
- /* .IA_64.unwindFOO -> .IA_64.unwind_infoFOO
- .IA_64.unwind or BAR -> .IA_64.unwind_info. */
- len = sizeof (ELF_STRING_ia64_unwind) - 1;
- len2 = sizeof (ELF_STRING_ia64_unwind_info) - 1;
- suffix = "";
- if (strneq (SECTION_NAME (unwsec), ELF_STRING_ia64_unwind, len))
- suffix = SECTION_NAME (unwsec) + len;
- for (i = 0, sec = section_headers; i < elf_header.e_shnum;
- ++i, ++sec)
- if (strneq (SECTION_NAME (sec), ELF_STRING_ia64_unwind_info, len2)
- && streq (SECTION_NAME (sec) + len2, suffix))
- break;
- }
-
- if (i == elf_header.e_shnum)
- {
- printf (_("\nCould not find unwind info section for "));
-
- if (string_table == NULL)
- printf ("%d", unwsec->sh_name);
- else
- printf (_("'%s'"), SECTION_NAME (unwsec));
- }
- else
- {
- aux.info_size = sec->sh_size;
- aux.info_addr = sec->sh_addr;
- aux.info = get_data (NULL, file, sec->sh_offset, 1, aux.info_size,
- _("unwind info"));
-
- printf (_("\nUnwind section "));
-
- if (string_table == NULL)
- printf ("%d", unwsec->sh_name);
- else
- printf (_("'%s'"), SECTION_NAME (unwsec));
-
- printf (_(" at offset 0x%lx contains %lu entries:\n"),
- (unsigned long) unwsec->sh_offset,
- (unsigned long) (unwsec->sh_size / (3 * eh_addr_size)));
-
- (void) slurp_ia64_unwind_table (file, & aux, unwsec);
-
- if (aux.table_len > 0)
- dump_ia64_unwind (& aux);
-
- if (aux.table)
- free ((char *) aux.table);
- if (aux.info)
- free ((char *) aux.info);
- aux.table = NULL;
- aux.info = NULL;
- }
- }
-
- if (aux.symtab)
- free (aux.symtab);
- if (aux.strtab)
- free ((char *) aux.strtab);
-
- return 1;
-}
-
-struct hppa_unw_aux_info
- {
- struct hppa_unw_table_entry
- {
- struct absaddr start;
- struct absaddr end;
- unsigned int Cannot_unwind:1; /* 0 */
- unsigned int Millicode:1; /* 1 */
- unsigned int Millicode_save_sr0:1; /* 2 */
- unsigned int Region_description:2; /* 3..4 */
- unsigned int reserved1:1; /* 5 */
- unsigned int Entry_SR:1; /* 6 */
- unsigned int Entry_FR:4; /* number saved */ /* 7..10 */
- unsigned int Entry_GR:5; /* number saved */ /* 11..15 */
- unsigned int Args_stored:1; /* 16 */
- unsigned int Variable_Frame:1; /* 17 */
- unsigned int Separate_Package_Body:1; /* 18 */
- unsigned int Frame_Extension_Millicode:1; /* 19 */
- unsigned int Stack_Overflow_Check:1; /* 20 */
- unsigned int Two_Instruction_SP_Increment:1; /* 21 */
- unsigned int Ada_Region:1; /* 22 */
- unsigned int cxx_info:1; /* 23 */
- unsigned int cxx_try_catch:1; /* 24 */
- unsigned int sched_entry_seq:1; /* 25 */
- unsigned int reserved2:1; /* 26 */
- unsigned int Save_SP:1; /* 27 */
- unsigned int Save_RP:1; /* 28 */
- unsigned int Save_MRP_in_frame:1; /* 29 */
- unsigned int extn_ptr_defined:1; /* 30 */
- unsigned int Cleanup_defined:1; /* 31 */
-
- unsigned int MPE_XL_interrupt_marker:1; /* 0 */
- unsigned int HP_UX_interrupt_marker:1; /* 1 */
- unsigned int Large_frame:1; /* 2 */
- unsigned int Pseudo_SP_Set:1; /* 3 */
- unsigned int reserved4:1; /* 4 */
- unsigned int Total_frame_size:27; /* 5..31 */
- }
- *table; /* Unwind table. */
- unsigned long table_len; /* Length of unwind table. */
- bfd_vma seg_base; /* Starting address of segment. */
- Elf_Internal_Sym *symtab; /* The symbol table. */
- unsigned long nsyms; /* Number of symbols. */
- char *strtab; /* The string table. */
- unsigned long strtab_size; /* Size of string table. */
- };
-
-static void
-dump_hppa_unwind (struct hppa_unw_aux_info *aux)
-{
- struct hppa_unw_table_entry *tp;
-
- for (tp = aux->table; tp < aux->table + aux->table_len; ++tp)
- {
- bfd_vma offset;
- const char *procname;
-
- find_symbol_for_address (aux->symtab, aux->nsyms, aux->strtab,
- aux->strtab_size, tp->start, &procname,
- &offset);
-
- fputs ("\n<", stdout);
-
- if (procname)
- {
- fputs (procname, stdout);
-
- if (offset)
- printf ("+%lx", (unsigned long) offset);
- }
-
- fputs (">: [", stdout);
- print_vma (tp->start.offset, PREFIX_HEX);
- fputc ('-', stdout);
- print_vma (tp->end.offset, PREFIX_HEX);
- printf ("]\n\t");
-
-#define PF(_m) if (tp->_m) printf (#_m " ");
-#define PV(_m) if (tp->_m) printf (#_m "=%d ", tp->_m);
- PF(Cannot_unwind);
- PF(Millicode);
- PF(Millicode_save_sr0);
- /* PV(Region_description); */
- PF(Entry_SR);
- PV(Entry_FR);
- PV(Entry_GR);
- PF(Args_stored);
- PF(Variable_Frame);
- PF(Separate_Package_Body);
- PF(Frame_Extension_Millicode);
- PF(Stack_Overflow_Check);
- PF(Two_Instruction_SP_Increment);
- PF(Ada_Region);
- PF(cxx_info);
- PF(cxx_try_catch);
- PF(sched_entry_seq);
- PF(Save_SP);
- PF(Save_RP);
- PF(Save_MRP_in_frame);
- PF(extn_ptr_defined);
- PF(Cleanup_defined);
- PF(MPE_XL_interrupt_marker);
- PF(HP_UX_interrupt_marker);
- PF(Large_frame);
- PF(Pseudo_SP_Set);
- PV(Total_frame_size);
-#undef PF
-#undef PV
- }
-
- printf ("\n");
-}
-
-static int
-slurp_hppa_unwind_table (FILE *file,
- struct hppa_unw_aux_info *aux,
- Elf_Internal_Shdr *sec)
-{
- unsigned long size, unw_ent_size, nentries, nrelas, i;
- Elf_Internal_Phdr *seg;
- struct hppa_unw_table_entry *tep;
- Elf_Internal_Shdr *relsec;
- Elf_Internal_Rela *rela, *rp;
- unsigned char *table, *tp;
- Elf_Internal_Sym *sym;
- const char *relname;
-
- /* First, find the starting address of the segment that includes
- this section. */
-
- if (elf_header.e_phnum)
- {
- if (! get_program_headers (file))
- return 0;
-
- for (seg = program_headers;
- seg < program_headers + elf_header.e_phnum;
- ++seg)
- {
- if (seg->p_type != PT_LOAD)
- continue;
-
- if (sec->sh_addr >= seg->p_vaddr
- && (sec->sh_addr + sec->sh_size <= seg->p_vaddr + seg->p_memsz))
- {
- aux->seg_base = seg->p_vaddr;
- break;
- }
- }
- }
-
- /* Second, build the unwind table from the contents of the unwind
- section. */
- size = sec->sh_size;
- table = get_data (NULL, file, sec->sh_offset, 1, size, _("unwind table"));
- if (!table)
- return 0;
-
- unw_ent_size = 16;
- nentries = size / unw_ent_size;
- size = unw_ent_size * nentries;
-
- tep = aux->table = xcmalloc (nentries, sizeof (aux->table[0]));
-
- for (tp = table; tp < table + size; tp += unw_ent_size, ++tep)
- {
- unsigned int tmp1, tmp2;
-
- tep->start.section = SHN_UNDEF;
- tep->end.section = SHN_UNDEF;
-
- tep->start.offset = byte_get ((unsigned char *) tp + 0, 4);
- tep->end.offset = byte_get ((unsigned char *) tp + 4, 4);
- tmp1 = byte_get ((unsigned char *) tp + 8, 4);
- tmp2 = byte_get ((unsigned char *) tp + 12, 4);
-
- tep->start.offset += aux->seg_base;
- tep->end.offset += aux->seg_base;
-
- tep->Cannot_unwind = (tmp1 >> 31) & 0x1;
- tep->Millicode = (tmp1 >> 30) & 0x1;
- tep->Millicode_save_sr0 = (tmp1 >> 29) & 0x1;
- tep->Region_description = (tmp1 >> 27) & 0x3;
- tep->reserved1 = (tmp1 >> 26) & 0x1;
- tep->Entry_SR = (tmp1 >> 25) & 0x1;
- tep->Entry_FR = (tmp1 >> 21) & 0xf;
- tep->Entry_GR = (tmp1 >> 16) & 0x1f;
- tep->Args_stored = (tmp1 >> 15) & 0x1;
- tep->Variable_Frame = (tmp1 >> 14) & 0x1;
- tep->Separate_Package_Body = (tmp1 >> 13) & 0x1;
- tep->Frame_Extension_Millicode = (tmp1 >> 12) & 0x1;
- tep->Stack_Overflow_Check = (tmp1 >> 11) & 0x1;
- tep->Two_Instruction_SP_Increment = (tmp1 >> 10) & 0x1;
- tep->Ada_Region = (tmp1 >> 9) & 0x1;
- tep->cxx_info = (tmp1 >> 8) & 0x1;
- tep->cxx_try_catch = (tmp1 >> 7) & 0x1;
- tep->sched_entry_seq = (tmp1 >> 6) & 0x1;
- tep->reserved2 = (tmp1 >> 5) & 0x1;
- tep->Save_SP = (tmp1 >> 4) & 0x1;
- tep->Save_RP = (tmp1 >> 3) & 0x1;
- tep->Save_MRP_in_frame = (tmp1 >> 2) & 0x1;
- tep->extn_ptr_defined = (tmp1 >> 1) & 0x1;
- tep->Cleanup_defined = tmp1 & 0x1;
-
- tep->MPE_XL_interrupt_marker = (tmp2 >> 31) & 0x1;
- tep->HP_UX_interrupt_marker = (tmp2 >> 30) & 0x1;
- tep->Large_frame = (tmp2 >> 29) & 0x1;
- tep->Pseudo_SP_Set = (tmp2 >> 28) & 0x1;
- tep->reserved4 = (tmp2 >> 27) & 0x1;
- tep->Total_frame_size = tmp2 & 0x7ffffff;
- }
- free (table);
-
- /* Third, apply any relocations to the unwind table. */
-
- for (relsec = section_headers;
- relsec < section_headers + elf_header.e_shnum;
- ++relsec)
- {
- if (relsec->sh_type != SHT_RELA
- || SECTION_HEADER_INDEX (relsec->sh_info) >= elf_header.e_shnum
- || SECTION_HEADER (relsec->sh_info) != sec)
- continue;
-
- if (!slurp_rela_relocs (file, relsec->sh_offset, relsec->sh_size,
- & rela, & nrelas))
- return 0;
-
- for (rp = rela; rp < rela + nrelas; ++rp)
- {
- if (is_32bit_elf)
- {
- relname = elf_hppa_reloc_type (ELF32_R_TYPE (rp->r_info));
- sym = aux->symtab + ELF32_R_SYM (rp->r_info);
- }
- else
- {
- relname = elf_hppa_reloc_type (ELF64_R_TYPE (rp->r_info));
- sym = aux->symtab + ELF64_R_SYM (rp->r_info);
- }
-
- /* R_PARISC_SEGREL32 or R_PARISC_SEGREL64. */
- if (strncmp (relname, "R_PARISC_SEGREL", 15) != 0)
- {
- warn (_("Skipping unexpected relocation type %s\n"), relname);
- continue;
- }
-
- i = rp->r_offset / unw_ent_size;
-
- switch ((rp->r_offset % unw_ent_size) / eh_addr_size)
- {
- case 0:
- aux->table[i].start.section = sym->st_shndx;
- aux->table[i].start.offset += sym->st_value + rp->r_addend;
- break;
- case 1:
- aux->table[i].end.section = sym->st_shndx;
- aux->table[i].end.offset += sym->st_value + rp->r_addend;
- break;
- default:
- break;
- }
- }
-
- free (rela);
- }
-
- aux->table_len = nentries;
-
- return 1;
-}
-
-static int
-hppa_process_unwind (FILE *file)
-{
- struct hppa_unw_aux_info aux;
- Elf_Internal_Shdr *unwsec = NULL;
- Elf_Internal_Shdr *strsec;
- Elf_Internal_Shdr *sec;
- unsigned long i;
-
- memset (& aux, 0, sizeof (aux));
-
- if (string_table == NULL)
- return 1;
-
- for (i = 0, sec = section_headers; i < elf_header.e_shnum; ++i, ++sec)
- {
- if (sec->sh_type == SHT_SYMTAB
- && SECTION_HEADER_INDEX (sec->sh_link) < elf_header.e_shnum)
- {
- aux.nsyms = sec->sh_size / sec->sh_entsize;
- aux.symtab = GET_ELF_SYMBOLS (file, sec);
-
- strsec = SECTION_HEADER (sec->sh_link);
- aux.strtab = get_data (NULL, file, strsec->sh_offset,
- 1, strsec->sh_size, _("string table"));
- aux.strtab_size = aux.strtab != NULL ? strsec->sh_size : 0;
- }
- else if (streq (SECTION_NAME (sec), ".PARISC.unwind"))
- unwsec = sec;
- }
-
- if (!unwsec)
- printf (_("\nThere are no unwind sections in this file.\n"));
-
- for (i = 0, sec = section_headers; i < elf_header.e_shnum; ++i, ++sec)
- {
- if (streq (SECTION_NAME (sec), ".PARISC.unwind"))
- {
- printf (_("\nUnwind section "));
- printf (_("'%s'"), SECTION_NAME (sec));
-
- printf (_(" at offset 0x%lx contains %lu entries:\n"),
- (unsigned long) sec->sh_offset,
- (unsigned long) (sec->sh_size / (2 * eh_addr_size + 8)));
-
- slurp_hppa_unwind_table (file, &aux, sec);
- if (aux.table_len > 0)
- dump_hppa_unwind (&aux);
-
- if (aux.table)
- free ((char *) aux.table);
- aux.table = NULL;
- }
- }
-
- if (aux.symtab)
- free (aux.symtab);
- if (aux.strtab)
- free ((char *) aux.strtab);
-
- return 1;
-}
-
-static int
-process_unwind (FILE *file)
-{
- struct unwind_handler {
- int machtype;
- int (*handler)(FILE *file);
- } handlers[] = {
- { EM_IA_64, ia64_process_unwind },
- { EM_PARISC, hppa_process_unwind },
- { 0, 0 }
- };
- int i;
-
- if (!do_unwind)
- return 1;
-
- for (i = 0; handlers[i].handler != NULL; i++)
- if (elf_header.e_machine == handlers[i].machtype)
- return handlers[i].handler (file);
-
- printf (_("\nThere are no unwind sections in this file.\n"));
- return 1;
-}
-
-static void
-dynamic_section_mips_val (Elf_Internal_Dyn *entry)
-{
- switch (entry->d_tag)
- {
- case DT_MIPS_FLAGS:
- if (entry->d_un.d_val == 0)
- printf ("NONE\n");
- else
- {
- static const char * opts[] =
- {
- "QUICKSTART", "NOTPOT", "NO_LIBRARY_REPLACEMENT",
- "NO_MOVE", "SGI_ONLY", "GUARANTEE_INIT", "DELTA_C_PLUS_PLUS",
- "GUARANTEE_START_INIT", "PIXIE", "DEFAULT_DELAY_LOAD",
- "REQUICKSTART", "REQUICKSTARTED", "CORD", "NO_UNRES_UNDEF",
- "RLD_ORDER_SAFE"
- };
- unsigned int cnt;
- int first = 1;
- for (cnt = 0; cnt < NUM_ELEM (opts); ++cnt)
- if (entry->d_un.d_val & (1 << cnt))
- {
- printf ("%s%s", first ? "" : " ", opts[cnt]);
- first = 0;
- }
- puts ("");
- }
- break;
-
- case DT_MIPS_IVERSION:
- if (VALID_DYNAMIC_NAME (entry->d_un.d_val))
- printf ("Interface Version: %s\n", GET_DYNAMIC_NAME (entry->d_un.d_val));
- else
- printf ("<corrupt: %ld>\n", (long) entry->d_un.d_ptr);
- break;
-
- case DT_MIPS_TIME_STAMP:
- {
- char timebuf[20];
- struct tm *tmp;
-
- time_t time = entry->d_un.d_val;
- tmp = gmtime (&time);
- snprintf (timebuf, sizeof (timebuf), "%04u-%02u-%02uT%02u:%02u:%02u",
- tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
- tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
- printf ("Time Stamp: %s\n", timebuf);
- }
- break;
-
- case DT_MIPS_RLD_VERSION:
- case DT_MIPS_LOCAL_GOTNO:
- case DT_MIPS_CONFLICTNO:
- case DT_MIPS_LIBLISTNO:
- case DT_MIPS_SYMTABNO:
- case DT_MIPS_UNREFEXTNO:
- case DT_MIPS_HIPAGENO:
- case DT_MIPS_DELTA_CLASS_NO:
- case DT_MIPS_DELTA_INSTANCE_NO:
- case DT_MIPS_DELTA_RELOC_NO:
- case DT_MIPS_DELTA_SYM_NO:
- case DT_MIPS_DELTA_CLASSSYM_NO:
- case DT_MIPS_COMPACT_SIZE:
- printf ("%ld\n", (long) entry->d_un.d_ptr);
- break;
-
- default:
- printf ("%#lx\n", (long) entry->d_un.d_ptr);
- }
-}
-
-
-static void
-dynamic_section_parisc_val (Elf_Internal_Dyn *entry)
-{
- switch (entry->d_tag)
- {
- case DT_HP_DLD_FLAGS:
- {
- static struct
- {
- long int bit;
- const char *str;
- }
- flags[] =
- {
- { DT_HP_DEBUG_PRIVATE, "HP_DEBUG_PRIVATE" },
- { DT_HP_DEBUG_CALLBACK, "HP_DEBUG_CALLBACK" },
- { DT_HP_DEBUG_CALLBACK_BOR, "HP_DEBUG_CALLBACK_BOR" },
- { DT_HP_NO_ENVVAR, "HP_NO_ENVVAR" },
- { DT_HP_BIND_NOW, "HP_BIND_NOW" },
- { DT_HP_BIND_NONFATAL, "HP_BIND_NONFATAL" },
- { DT_HP_BIND_VERBOSE, "HP_BIND_VERBOSE" },
- { DT_HP_BIND_RESTRICTED, "HP_BIND_RESTRICTED" },
- { DT_HP_BIND_SYMBOLIC, "HP_BIND_SYMBOLIC" },
- { DT_HP_RPATH_FIRST, "HP_RPATH_FIRST" },
- { DT_HP_BIND_DEPTH_FIRST, "HP_BIND_DEPTH_FIRST" },
- { DT_HP_GST, "HP_GST" },
- { DT_HP_SHLIB_FIXED, "HP_SHLIB_FIXED" },
- { DT_HP_MERGE_SHLIB_SEG, "HP_MERGE_SHLIB_SEG" },
- { DT_HP_NODELETE, "HP_NODELETE" },
- { DT_HP_GROUP, "HP_GROUP" },
- { DT_HP_PROTECT_LINKAGE_TABLE, "HP_PROTECT_LINKAGE_TABLE" }
- };
- int first = 1;
- size_t cnt;
- bfd_vma val = entry->d_un.d_val;
-
- for (cnt = 0; cnt < sizeof (flags) / sizeof (flags[0]); ++cnt)
- if (val & flags[cnt].bit)
- {
- if (! first)
- putchar (' ');
- fputs (flags[cnt].str, stdout);
- first = 0;
- val ^= flags[cnt].bit;
- }
-
- if (val != 0 || first)
- {
- if (! first)
- putchar (' ');
- print_vma (val, HEX);
- }
- }
- break;
-
- default:
- print_vma (entry->d_un.d_ptr, PREFIX_HEX);
- break;
- }
- putchar ('\n');
-}
-
-static void
-dynamic_section_ia64_val (Elf_Internal_Dyn *entry)
-{
- switch (entry->d_tag)
- {
- case DT_IA_64_PLT_RESERVE:
- /* First 3 slots reserved. */
- print_vma (entry->d_un.d_ptr, PREFIX_HEX);
- printf (" -- ");
- print_vma (entry->d_un.d_ptr + (3 * 8), PREFIX_HEX);
- break;
-
- default:
- print_vma (entry->d_un.d_ptr, PREFIX_HEX);
- break;
- }
- putchar ('\n');
-}
-
-static int
-get_32bit_dynamic_section (FILE *file)
-{
- Elf32_External_Dyn *edyn, *ext;
- Elf_Internal_Dyn *entry;
-
- edyn = get_data (NULL, file, dynamic_addr, 1, dynamic_size,
- _("dynamic section"));
- if (!edyn)
- return 0;
-
-/* SGI's ELF has more than one section in the DYNAMIC segment, and we
- might not have the luxury of section headers. Look for the DT_NULL
- terminator to determine the number of entries. */
- for (ext = edyn, dynamic_nent = 0;
- (char *) ext < (char *) edyn + dynamic_size;
- ext++)
- {
- dynamic_nent++;
- if (BYTE_GET (ext->d_tag) == DT_NULL)
- break;
- }
-
- dynamic_section = cmalloc (dynamic_nent, sizeof (*entry));
- if (dynamic_section == NULL)
- {
- error (_("Out of memory\n"));
- free (edyn);
- return 0;
- }
-
- for (ext = edyn, entry = dynamic_section;
- entry < dynamic_section + dynamic_nent;
- ext++, entry++)
- {
- entry->d_tag = BYTE_GET (ext->d_tag);
- entry->d_un.d_val = BYTE_GET (ext->d_un.d_val);
- }
-
- free (edyn);
-
- return 1;
-}
-
-static int
-get_64bit_dynamic_section (FILE *file)
-{
- Elf64_External_Dyn *edyn, *ext;
- Elf_Internal_Dyn *entry;
-
- edyn = get_data (NULL, file, dynamic_addr, 1, dynamic_size,
- _("dynamic section"));
- if (!edyn)
- return 0;
-
-/* SGI's ELF has more than one section in the DYNAMIC segment, and we
- might not have the luxury of section headers. Look for the DT_NULL
- terminator to determine the number of entries. */
- for (ext = edyn, dynamic_nent = 0;
- (char *) ext < (char *) edyn + dynamic_size;
- ext++)
- {
- dynamic_nent++;
- if (BYTE_GET (ext->d_tag) == DT_NULL)
- break;
- }
-
- dynamic_section = cmalloc (dynamic_nent, sizeof (*entry));
- if (dynamic_section == NULL)
- {
- error (_("Out of memory\n"));
- free (edyn);
- return 0;
- }
-
- for (ext = edyn, entry = dynamic_section;
- entry < dynamic_section + dynamic_nent;
- ext++, entry++)
- {
- entry->d_tag = BYTE_GET (ext->d_tag);
- entry->d_un.d_val = BYTE_GET (ext->d_un.d_val);
- }
-
- free (edyn);
-
- return 1;
-}
-
-static void
-print_dynamic_flags (bfd_vma flags)
-{
- int first = 1;
-
- while (flags)
- {
- bfd_vma flag;
-
- flag = flags & - flags;
- flags &= ~ flag;
-
- if (first)
- first = 0;
- else
- putc (' ', stdout);
-
- switch (flag)
- {
- case DF_ORIGIN: fputs ("ORIGIN", stdout); break;
- case DF_SYMBOLIC: fputs ("SYMBOLIC", stdout); break;
- case DF_TEXTREL: fputs ("TEXTREL", stdout); break;
- case DF_BIND_NOW: fputs ("BIND_NOW", stdout); break;
- case DF_STATIC_TLS: fputs ("STATIC_TLS", stdout); break;
- default: fputs ("unknown", stdout); break;
- }
- }
- puts ("");
-}
-
-/* Parse and display the contents of the dynamic section. */
-
-static int
-process_dynamic_section (FILE *file)
-{
- Elf_Internal_Dyn *entry;
-
- if (dynamic_size == 0)
- {
- if (do_dynamic)
- printf (_("\nThere is no dynamic section in this file.\n"));
-
- return 1;
- }
-
- if (is_32bit_elf)
- {
- if (! get_32bit_dynamic_section (file))
- return 0;
- }
- else if (! get_64bit_dynamic_section (file))
- return 0;
-
- /* Find the appropriate symbol table. */
- if (dynamic_symbols == NULL)
- {
- for (entry = dynamic_section;
- entry < dynamic_section + dynamic_nent;
- ++entry)
- {
- Elf_Internal_Shdr section;
-
- if (entry->d_tag != DT_SYMTAB)
- continue;
-
- dynamic_info[DT_SYMTAB] = entry->d_un.d_val;
-
- /* Since we do not know how big the symbol table is,
- we default to reading in the entire file (!) and
- processing that. This is overkill, I know, but it
- should work. */
- section.sh_offset = offset_from_vma (file, entry->d_un.d_val, 0);
-
- if (archive_file_offset != 0)
- section.sh_size = archive_file_size - section.sh_offset;
- else
- {
- if (fseek (file, 0, SEEK_END))
- error (_("Unable to seek to end of file!"));
-
- section.sh_size = ftell (file) - section.sh_offset;
- }
-
- if (is_32bit_elf)
- section.sh_entsize = sizeof (Elf32_External_Sym);
- else
- section.sh_entsize = sizeof (Elf64_External_Sym);
-
- num_dynamic_syms = section.sh_size / section.sh_entsize;
- if (num_dynamic_syms < 1)
- {
- error (_("Unable to determine the number of symbols to load\n"));
- continue;
- }
-
- dynamic_symbols = GET_ELF_SYMBOLS (file, &section);
- }
- }
-
- /* Similarly find a string table. */
- if (dynamic_strings == NULL)
- {
- for (entry = dynamic_section;
- entry < dynamic_section + dynamic_nent;
- ++entry)
- {
- unsigned long offset;
- long str_tab_len;
-
- if (entry->d_tag != DT_STRTAB)
- continue;
-
- dynamic_info[DT_STRTAB] = entry->d_un.d_val;
-
- /* Since we do not know how big the string table is,
- we default to reading in the entire file (!) and
- processing that. This is overkill, I know, but it
- should work. */
-
- offset = offset_from_vma (file, entry->d_un.d_val, 0);
-
- if (archive_file_offset != 0)
- str_tab_len = archive_file_size - offset;
- else
- {
- if (fseek (file, 0, SEEK_END))
- error (_("Unable to seek to end of file\n"));
- str_tab_len = ftell (file) - offset;
- }
-
- if (str_tab_len < 1)
- {
- error
- (_("Unable to determine the length of the dynamic string table\n"));
- continue;
- }
-
- dynamic_strings = get_data (NULL, file, offset, 1, str_tab_len,
- _("dynamic string table"));
- dynamic_strings_length = str_tab_len;
- break;
- }
- }
-
- /* And find the syminfo section if available. */
- if (dynamic_syminfo == NULL)
- {
- unsigned long syminsz = 0;
-
- for (entry = dynamic_section;
- entry < dynamic_section + dynamic_nent;
- ++entry)
- {
- if (entry->d_tag == DT_SYMINENT)
- {
- /* Note: these braces are necessary to avoid a syntax
- error from the SunOS4 C compiler. */
- assert (sizeof (Elf_External_Syminfo) == entry->d_un.d_val);
- }
- else if (entry->d_tag == DT_SYMINSZ)
- syminsz = entry->d_un.d_val;
- else if (entry->d_tag == DT_SYMINFO)
- dynamic_syminfo_offset = offset_from_vma (file, entry->d_un.d_val,
- syminsz);
- }
-
- if (dynamic_syminfo_offset != 0 && syminsz != 0)
- {
- Elf_External_Syminfo *extsyminfo, *extsym;
- Elf_Internal_Syminfo *syminfo;
-
- /* There is a syminfo section. Read the data. */
- extsyminfo = get_data (NULL, file, dynamic_syminfo_offset, 1,
- syminsz, _("symbol information"));
- if (!extsyminfo)
- return 0;
-
- dynamic_syminfo = malloc (syminsz);
- if (dynamic_syminfo == NULL)
- {
- error (_("Out of memory\n"));
- return 0;
- }
-
- dynamic_syminfo_nent = syminsz / sizeof (Elf_External_Syminfo);
- for (syminfo = dynamic_syminfo, extsym = extsyminfo;
- syminfo < dynamic_syminfo + dynamic_syminfo_nent;
- ++syminfo, ++extsym)
- {
- syminfo->si_boundto = BYTE_GET (extsym->si_boundto);
- syminfo->si_flags = BYTE_GET (extsym->si_flags);
- }
-
- free (extsyminfo);
- }
- }
-
- if (do_dynamic && dynamic_addr)
- printf (_("\nDynamic section at offset 0x%lx contains %u entries:\n"),
- dynamic_addr, dynamic_nent);
- if (do_dynamic)
- printf (_(" Tag Type Name/Value\n"));
-
- for (entry = dynamic_section;
- entry < dynamic_section + dynamic_nent;
- entry++)
- {
- if (do_dynamic)
- {
- const char *dtype;
-
- putchar (' ');
- print_vma (entry->d_tag, FULL_HEX);
- dtype = get_dynamic_type (entry->d_tag);
- printf (" (%s)%*s", dtype,
- ((is_32bit_elf ? 27 : 19)
- - (int) strlen (dtype)),
- " ");
- }
-
- switch (entry->d_tag)
- {
- case DT_FLAGS:
- if (do_dynamic)
- print_dynamic_flags (entry->d_un.d_val);
- break;
-
- case DT_AUXILIARY:
- case DT_FILTER:
- case DT_CONFIG:
- case DT_DEPAUDIT:
- case DT_AUDIT:
- if (do_dynamic)
- {
- switch (entry->d_tag)
- {
- case DT_AUXILIARY:
- printf (_("Auxiliary library"));
- break;
-
- case DT_FILTER:
- printf (_("Filter library"));
- break;
-
- case DT_CONFIG:
- printf (_("Configuration file"));
- break;
-
- case DT_DEPAUDIT:
- printf (_("Dependency audit library"));
- break;
-
- case DT_AUDIT:
- printf (_("Audit library"));
- break;
- }
-
- if (VALID_DYNAMIC_NAME (entry->d_un.d_val))
- printf (": [%s]\n", GET_DYNAMIC_NAME (entry->d_un.d_val));
- else
- {
- printf (": ");
- print_vma (entry->d_un.d_val, PREFIX_HEX);
- putchar ('\n');
- }
- }
- break;
-
- case DT_FEATURE:
- if (do_dynamic)
- {
- printf (_("Flags:"));
-
- if (entry->d_un.d_val == 0)
- printf (_(" None\n"));
- else
- {
- unsigned long int val = entry->d_un.d_val;
-
- if (val & DTF_1_PARINIT)
- {
- printf (" PARINIT");
- val ^= DTF_1_PARINIT;
- }
- if (val & DTF_1_CONFEXP)
- {
- printf (" CONFEXP");
- val ^= DTF_1_CONFEXP;
- }
- if (val != 0)
- printf (" %lx", val);
- puts ("");
- }
- }
- break;
-
- case DT_POSFLAG_1:
- if (do_dynamic)
- {
- printf (_("Flags:"));
-
- if (entry->d_un.d_val == 0)
- printf (_(" None\n"));
- else
- {
- unsigned long int val = entry->d_un.d_val;
-
- if (val & DF_P1_LAZYLOAD)
- {
- printf (" LAZYLOAD");
- val ^= DF_P1_LAZYLOAD;
- }
- if (val & DF_P1_GROUPPERM)
- {
- printf (" GROUPPERM");
- val ^= DF_P1_GROUPPERM;
- }
- if (val != 0)
- printf (" %lx", val);
- puts ("");
- }
- }
- break;
-
- case DT_FLAGS_1:
- if (do_dynamic)
- {
- printf (_("Flags:"));
- if (entry->d_un.d_val == 0)
- printf (_(" None\n"));
- else
- {
- unsigned long int val = entry->d_un.d_val;
-
- if (val & DF_1_NOW)
- {
- printf (" NOW");
- val ^= DF_1_NOW;
- }
- if (val & DF_1_GLOBAL)
- {
- printf (" GLOBAL");
- val ^= DF_1_GLOBAL;
- }
- if (val & DF_1_GROUP)
- {
- printf (" GROUP");
- val ^= DF_1_GROUP;
- }
- if (val & DF_1_NODELETE)
- {
- printf (" NODELETE");
- val ^= DF_1_NODELETE;
- }
- if (val & DF_1_LOADFLTR)
- {
- printf (" LOADFLTR");
- val ^= DF_1_LOADFLTR;
- }
- if (val & DF_1_INITFIRST)
- {
- printf (" INITFIRST");
- val ^= DF_1_INITFIRST;
- }
- if (val & DF_1_NOOPEN)
- {
- printf (" NOOPEN");
- val ^= DF_1_NOOPEN;
- }
- if (val & DF_1_ORIGIN)
- {
- printf (" ORIGIN");
- val ^= DF_1_ORIGIN;
- }
- if (val & DF_1_DIRECT)
- {
- printf (" DIRECT");
- val ^= DF_1_DIRECT;
- }
- if (val & DF_1_TRANS)
- {
- printf (" TRANS");
- val ^= DF_1_TRANS;
- }
- if (val & DF_1_INTERPOSE)
- {
- printf (" INTERPOSE");
- val ^= DF_1_INTERPOSE;
- }
- if (val & DF_1_NODEFLIB)
- {
- printf (" NODEFLIB");
- val ^= DF_1_NODEFLIB;
- }
- if (val & DF_1_NODUMP)
- {
- printf (" NODUMP");
- val ^= DF_1_NODUMP;
- }
- if (val & DF_1_CONLFAT)
- {
- printf (" CONLFAT");
- val ^= DF_1_CONLFAT;
- }
- if (val != 0)
- printf (" %lx", val);
- puts ("");
- }
- }
- break;
-
- case DT_PLTREL:
- dynamic_info[entry->d_tag] = entry->d_un.d_val;
- if (do_dynamic)
- puts (get_dynamic_type (entry->d_un.d_val));
- break;
-
- case DT_NULL :
- case DT_NEEDED :
- case DT_PLTGOT :
- case DT_HASH :
- case DT_STRTAB :
- case DT_SYMTAB :
- case DT_RELA :
- case DT_INIT :
- case DT_FINI :
- case DT_SONAME :
- case DT_RPATH :
- case DT_SYMBOLIC:
- case DT_REL :
- case DT_DEBUG :
- case DT_TEXTREL :
- case DT_JMPREL :
- case DT_RUNPATH :
- dynamic_info[entry->d_tag] = entry->d_un.d_val;
-
- if (do_dynamic)
- {
- char *name;
-
- if (VALID_DYNAMIC_NAME (entry->d_un.d_val))
- name = GET_DYNAMIC_NAME (entry->d_un.d_val);
- else
- name = NULL;
-
- if (name)
- {
- switch (entry->d_tag)
- {
- case DT_NEEDED:
- printf (_("Shared library: [%s]"), name);
-
- if (streq (name, program_interpreter))
- printf (_(" program interpreter"));
- break;
-
- case DT_SONAME:
- printf (_("Library soname: [%s]"), name);
- break;
-
- case DT_RPATH:
- printf (_("Library rpath: [%s]"), name);
- break;
-
- case DT_RUNPATH:
- printf (_("Library runpath: [%s]"), name);
- break;
-
- default:
- print_vma (entry->d_un.d_val, PREFIX_HEX);
- break;
- }
- }
- else
- print_vma (entry->d_un.d_val, PREFIX_HEX);
-
- putchar ('\n');
- }
- break;
-
- case DT_PLTRELSZ:
- case DT_RELASZ :
- case DT_STRSZ :
- case DT_RELSZ :
- case DT_RELAENT :
- case DT_SYMENT :
- case DT_RELENT :
- dynamic_info[entry->d_tag] = entry->d_un.d_val;
- case DT_PLTPADSZ:
- case DT_MOVEENT :
- case DT_MOVESZ :
- case DT_INIT_ARRAYSZ:
- case DT_FINI_ARRAYSZ:
- case DT_GNU_CONFLICTSZ:
- case DT_GNU_LIBLISTSZ:
- if (do_dynamic)
- {
- print_vma (entry->d_un.d_val, UNSIGNED);
- printf (" (bytes)\n");
- }
- break;
-
- case DT_VERDEFNUM:
- case DT_VERNEEDNUM:
- case DT_RELACOUNT:
- case DT_RELCOUNT:
- if (do_dynamic)
- {
- print_vma (entry->d_un.d_val, UNSIGNED);
- putchar ('\n');
- }
- break;
-
- case DT_SYMINSZ:
- case DT_SYMINENT:
- case DT_SYMINFO:
- case DT_USED:
- case DT_INIT_ARRAY:
- case DT_FINI_ARRAY:
- if (do_dynamic)
- {
- if (entry->d_tag == DT_USED
- && VALID_DYNAMIC_NAME (entry->d_un.d_val))
- {
- char *name = GET_DYNAMIC_NAME (entry->d_un.d_val);
-
- if (*name)
- {
- printf (_("Not needed object: [%s]\n"), name);
- break;
- }
- }
-
- print_vma (entry->d_un.d_val, PREFIX_HEX);
- putchar ('\n');
- }
- break;
-
- case DT_BIND_NOW:
- /* The value of this entry is ignored. */
- if (do_dynamic)
- putchar ('\n');
- break;
-
- case DT_GNU_PRELINKED:
- if (do_dynamic)
- {
- struct tm *tmp;
- time_t time = entry->d_un.d_val;
-
- tmp = gmtime (&time);
- printf ("%04u-%02u-%02uT%02u:%02u:%02u\n",
- tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
- tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
-
- }
- break;
-
- default:
- if ((entry->d_tag >= DT_VERSYM) && (entry->d_tag <= DT_VERNEEDNUM))
- version_info[DT_VERSIONTAGIDX (entry->d_tag)] =
- entry->d_un.d_val;
-
- if (do_dynamic)
- {
- switch (elf_header.e_machine)
- {
- case EM_MIPS:
- case EM_MIPS_RS3_LE:
- dynamic_section_mips_val (entry);
- break;
- case EM_PARISC:
- dynamic_section_parisc_val (entry);
- break;
- case EM_IA_64:
- dynamic_section_ia64_val (entry);
- break;
- default:
- print_vma (entry->d_un.d_val, PREFIX_HEX);
- putchar ('\n');
- }
- }
- break;
- }
- }
-
- return 1;
-}
-
-static char *
-get_ver_flags (unsigned int flags)
-{
- static char buff[32];
-
- buff[0] = 0;
-
- if (flags == 0)
- return _("none");
-
- if (flags & VER_FLG_BASE)
- strcat (buff, "BASE ");
-
- if (flags & VER_FLG_WEAK)
- {
- if (flags & VER_FLG_BASE)
- strcat (buff, "| ");
-
- strcat (buff, "WEAK ");
- }
-
- if (flags & ~(VER_FLG_BASE | VER_FLG_WEAK))
- strcat (buff, "| <unknown>");
-
- return buff;
-}
-
-/* Display the contents of the version sections. */
-static int
-process_version_sections (FILE *file)
-{
- Elf_Internal_Shdr *section;
- unsigned i;
- int found = 0;
-
- if (! do_version)
- return 1;
-
- for (i = 0, section = section_headers;
- i < elf_header.e_shnum;
- i++, section++)
- {
- switch (section->sh_type)
- {
- case SHT_GNU_verdef:
- {
- Elf_External_Verdef *edefs;
- unsigned int idx;
- unsigned int cnt;
-
- found = 1;
-
- printf
- (_("\nVersion definition section '%s' contains %ld entries:\n"),
- SECTION_NAME (section), section->sh_info);
-
- printf (_(" Addr: 0x"));
- printf_vma (section->sh_addr);
- printf (_(" Offset: %#08lx Link: %lx (%s)\n"),
- (unsigned long) section->sh_offset, section->sh_link,
- SECTION_HEADER_INDEX (section->sh_link)
- < elf_header.e_shnum
- ? SECTION_NAME (SECTION_HEADER (section->sh_link))
- : "<corrupt>");
-
- edefs = get_data (NULL, file, section->sh_offset, 1,
- section->sh_size,
- _("version definition section"));
- if (!edefs)
- break;
-
- for (idx = cnt = 0; cnt < section->sh_info; ++cnt)
- {
- char *vstart;
- Elf_External_Verdef *edef;
- Elf_Internal_Verdef ent;
- Elf_External_Verdaux *eaux;
- Elf_Internal_Verdaux aux;
- int j;
- int isum;
-
- vstart = ((char *) edefs) + idx;
-
- edef = (Elf_External_Verdef *) vstart;
-
- ent.vd_version = BYTE_GET (edef->vd_version);
- ent.vd_flags = BYTE_GET (edef->vd_flags);
- ent.vd_ndx = BYTE_GET (edef->vd_ndx);
- ent.vd_cnt = BYTE_GET (edef->vd_cnt);
- ent.vd_hash = BYTE_GET (edef->vd_hash);
- ent.vd_aux = BYTE_GET (edef->vd_aux);
- ent.vd_next = BYTE_GET (edef->vd_next);
-
- printf (_(" %#06x: Rev: %d Flags: %s"),
- idx, ent.vd_version, get_ver_flags (ent.vd_flags));
-
- printf (_(" Index: %d Cnt: %d "),
- ent.vd_ndx, ent.vd_cnt);
-
- vstart += ent.vd_aux;
-
- eaux = (Elf_External_Verdaux *) vstart;
-
- aux.vda_name = BYTE_GET (eaux->vda_name);
- aux.vda_next = BYTE_GET (eaux->vda_next);
-
- if (VALID_DYNAMIC_NAME (aux.vda_name))
- printf (_("Name: %s\n"), GET_DYNAMIC_NAME (aux.vda_name));
- else
- printf (_("Name index: %ld\n"), aux.vda_name);
-
- isum = idx + ent.vd_aux;
-
- for (j = 1; j < ent.vd_cnt; j++)
- {
- isum += aux.vda_next;
- vstart += aux.vda_next;
-
- eaux = (Elf_External_Verdaux *) vstart;
-
- aux.vda_name = BYTE_GET (eaux->vda_name);
- aux.vda_next = BYTE_GET (eaux->vda_next);
-
- if (VALID_DYNAMIC_NAME (aux.vda_name))
- printf (_(" %#06x: Parent %d: %s\n"),
- isum, j, GET_DYNAMIC_NAME (aux.vda_name));
- else
- printf (_(" %#06x: Parent %d, name index: %ld\n"),
- isum, j, aux.vda_name);
- }
-
- idx += ent.vd_next;
- }
-
- free (edefs);
- }
- break;
-
- case SHT_GNU_verneed:
- {
- Elf_External_Verneed *eneed;
- unsigned int idx;
- unsigned int cnt;
-
- found = 1;
-
- printf (_("\nVersion needs section '%s' contains %ld entries:\n"),
- SECTION_NAME (section), section->sh_info);
-
- printf (_(" Addr: 0x"));
- printf_vma (section->sh_addr);
- printf (_(" Offset: %#08lx Link to section: %ld (%s)\n"),
- (unsigned long) section->sh_offset, section->sh_link,
- SECTION_HEADER_INDEX (section->sh_link)
- < elf_header.e_shnum
- ? SECTION_NAME (SECTION_HEADER (section->sh_link))
- : "<corrupt>");
-
- eneed = get_data (NULL, file, section->sh_offset, 1,
- section->sh_size,
- _("version need section"));
- if (!eneed)
- break;
-
- for (idx = cnt = 0; cnt < section->sh_info; ++cnt)
- {
- Elf_External_Verneed *entry;
- Elf_Internal_Verneed ent;
- int j;
- int isum;
- char *vstart;
-
- vstart = ((char *) eneed) + idx;
-
- entry = (Elf_External_Verneed *) vstart;
-
- ent.vn_version = BYTE_GET (entry->vn_version);
- ent.vn_cnt = BYTE_GET (entry->vn_cnt);
- ent.vn_file = BYTE_GET (entry->vn_file);
- ent.vn_aux = BYTE_GET (entry->vn_aux);
- ent.vn_next = BYTE_GET (entry->vn_next);
-
- printf (_(" %#06x: Version: %d"), idx, ent.vn_version);
-
- if (VALID_DYNAMIC_NAME (ent.vn_file))
- printf (_(" File: %s"), GET_DYNAMIC_NAME (ent.vn_file));
- else
- printf (_(" File: %lx"), ent.vn_file);
-
- printf (_(" Cnt: %d\n"), ent.vn_cnt);
-
- vstart += ent.vn_aux;
-
- for (j = 0, isum = idx + ent.vn_aux; j < ent.vn_cnt; ++j)
- {
- Elf_External_Vernaux *eaux;
- Elf_Internal_Vernaux aux;
-
- eaux = (Elf_External_Vernaux *) vstart;
-
- aux.vna_hash = BYTE_GET (eaux->vna_hash);
- aux.vna_flags = BYTE_GET (eaux->vna_flags);
- aux.vna_other = BYTE_GET (eaux->vna_other);
- aux.vna_name = BYTE_GET (eaux->vna_name);
- aux.vna_next = BYTE_GET (eaux->vna_next);
-
- if (VALID_DYNAMIC_NAME (aux.vna_name))
- printf (_(" %#06x: Name: %s"),
- isum, GET_DYNAMIC_NAME (aux.vna_name));
- else
- printf (_(" %#06x: Name index: %lx"),
- isum, aux.vna_name);
-
- printf (_(" Flags: %s Version: %d\n"),
- get_ver_flags (aux.vna_flags), aux.vna_other);
-
- isum += aux.vna_next;
- vstart += aux.vna_next;
- }
-
- idx += ent.vn_next;
- }
-
- free (eneed);
- }
- break;
-
- case SHT_GNU_versym:
- {
- Elf_Internal_Shdr *link_section;
- int total;
- int cnt;
- unsigned char *edata;
- unsigned short *data;
- char *strtab;
- Elf_Internal_Sym *symbols;
- Elf_Internal_Shdr *string_sec;
- long off;
-
- if (SECTION_HEADER_INDEX (section->sh_link) >= elf_header.e_shnum)
- break;
-
- link_section = SECTION_HEADER (section->sh_link);
- total = section->sh_size / sizeof (Elf_External_Versym);
-
- if (SECTION_HEADER_INDEX (link_section->sh_link)
- >= elf_header.e_shnum)
- break;
-
- found = 1;
-
- symbols = GET_ELF_SYMBOLS (file, link_section);
-
- string_sec = SECTION_HEADER (link_section->sh_link);
-
- strtab = get_data (NULL, file, string_sec->sh_offset, 1,
- string_sec->sh_size, _("version string table"));
- if (!strtab)
- break;
-
- printf (_("\nVersion symbols section '%s' contains %d entries:\n"),
- SECTION_NAME (section), total);
-
- printf (_(" Addr: "));
- printf_vma (section->sh_addr);
- printf (_(" Offset: %#08lx Link: %lx (%s)\n"),
- (unsigned long) section->sh_offset, section->sh_link,
- SECTION_NAME (link_section));
-
- off = offset_from_vma (file,
- version_info[DT_VERSIONTAGIDX (DT_VERSYM)],
- total * sizeof (short));
- edata = get_data (NULL, file, off, total, sizeof (short),
- _("version symbol data"));
- if (!edata)
- {
- free (strtab);
- break;
- }
-
- data = cmalloc (total, sizeof (short));
-
- for (cnt = total; cnt --;)
- data[cnt] = byte_get (edata + cnt * sizeof (short),
- sizeof (short));
-
- free (edata);
-
- for (cnt = 0; cnt < total; cnt += 4)
- {
- int j, nn;
- int check_def, check_need;
- char *name;
-
- printf (" %03x:", cnt);
-
- for (j = 0; (j < 4) && (cnt + j) < total; ++j)
- switch (data[cnt + j])
- {
- case 0:
- fputs (_(" 0 (*local*) "), stdout);
- break;
-
- case 1:
- fputs (_(" 1 (*global*) "), stdout);
- break;
-
- default:
- nn = printf ("%4x%c", data[cnt + j] & 0x7fff,
- data[cnt + j] & 0x8000 ? 'h' : ' ');
-
- check_def = 1;
- check_need = 1;
- if (SECTION_HEADER_INDEX (symbols[cnt + j].st_shndx)
- >= elf_header.e_shnum
- || SECTION_HEADER (symbols[cnt + j].st_shndx)->sh_type
- != SHT_NOBITS)
- {
- if (symbols[cnt + j].st_shndx == SHN_UNDEF)
- check_def = 0;
- else
- check_need = 0;
- }
-
- if (check_need
- && version_info[DT_VERSIONTAGIDX (DT_VERNEED)])
- {
- Elf_Internal_Verneed ivn;
- unsigned long offset;
-
- offset = offset_from_vma
- (file, version_info[DT_VERSIONTAGIDX (DT_VERNEED)],
- sizeof (Elf_External_Verneed));
-
- do
- {
- Elf_Internal_Vernaux ivna;
- Elf_External_Verneed evn;
- Elf_External_Vernaux evna;
- unsigned long a_off;
-
- get_data (&evn, file, offset, sizeof (evn), 1,
- _("version need"));
-
- ivn.vn_aux = BYTE_GET (evn.vn_aux);
- ivn.vn_next = BYTE_GET (evn.vn_next);
-
- a_off = offset + ivn.vn_aux;
-
- do
- {
- get_data (&evna, file, a_off, sizeof (evna),
- 1, _("version need aux (2)"));
-
- ivna.vna_next = BYTE_GET (evna.vna_next);
- ivna.vna_other = BYTE_GET (evna.vna_other);
-
- a_off += ivna.vna_next;
- }
- while (ivna.vna_other != data[cnt + j]
- && ivna.vna_next != 0);
-
- if (ivna.vna_other == data[cnt + j])
- {
- ivna.vna_name = BYTE_GET (evna.vna_name);
-
- name = strtab + ivna.vna_name;
- nn += printf ("(%s%-*s",
- name,
- 12 - (int) strlen (name),
- ")");
- check_def = 0;
- break;
- }
-
- offset += ivn.vn_next;
- }
- while (ivn.vn_next);
- }
-
- if (check_def && data[cnt + j] != 0x8001
- && version_info[DT_VERSIONTAGIDX (DT_VERDEF)])
- {
- Elf_Internal_Verdef ivd;
- Elf_External_Verdef evd;
- unsigned long offset;
-
- offset = offset_from_vma
- (file, version_info[DT_VERSIONTAGIDX (DT_VERDEF)],
- sizeof evd);
-
- do
- {
- get_data (&evd, file, offset, sizeof (evd), 1,
- _("version def"));
-
- ivd.vd_next = BYTE_GET (evd.vd_next);
- ivd.vd_ndx = BYTE_GET (evd.vd_ndx);
-
- offset += ivd.vd_next;
- }
- while (ivd.vd_ndx != (data[cnt + j] & 0x7fff)
- && ivd.vd_next != 0);
-
- if (ivd.vd_ndx == (data[cnt + j] & 0x7fff))
- {
- Elf_External_Verdaux evda;
- Elf_Internal_Verdaux ivda;
-
- ivd.vd_aux = BYTE_GET (evd.vd_aux);
-
- get_data (&evda, file,
- offset - ivd.vd_next + ivd.vd_aux,
- sizeof (evda), 1,
- _("version def aux"));
-
- ivda.vda_name = BYTE_GET (evda.vda_name);
-
- name = strtab + ivda.vda_name;
- nn += printf ("(%s%-*s",
- name,
- 12 - (int) strlen (name),
- ")");
- }
- }
-
- if (nn < 18)
- printf ("%*c", 18 - nn, ' ');
- }
-
- putchar ('\n');
- }
-
- free (data);
- free (strtab);
- free (symbols);
- }
- break;
-
- default:
- break;
- }
- }
-
- if (! found)
- printf (_("\nNo version information found in this file.\n"));
-
- return 1;
-}
-
-static const char *
-get_symbol_binding (unsigned int binding)
-{
- static char buff[32];
-
- switch (binding)
- {
- case STB_LOCAL: return "LOCAL";
- case STB_GLOBAL: return "GLOBAL";
- case STB_WEAK: return "WEAK";
- default:
- if (binding >= STB_LOPROC && binding <= STB_HIPROC)
- snprintf (buff, sizeof (buff), _("<processor specific>: %d"),
- binding);
- else if (binding >= STB_LOOS && binding <= STB_HIOS)
- snprintf (buff, sizeof (buff), _("<OS specific>: %d"), binding);
- else
- snprintf (buff, sizeof (buff), _("<unknown>: %d"), binding);
- return buff;
- }
-}
-
-static const char *
-get_symbol_type (unsigned int type)
-{
- static char buff[32];
-
- switch (type)
- {
- case STT_NOTYPE: return "NOTYPE";
- case STT_OBJECT: return "OBJECT";
- case STT_FUNC: return "FUNC";
- case STT_SECTION: return "SECTION";
- case STT_FILE: return "FILE";
- case STT_COMMON: return "COMMON";
- case STT_TLS: return "TLS";
- default:
- if (type >= STT_LOPROC && type <= STT_HIPROC)
- {
- if (elf_header.e_machine == EM_ARM && type == STT_ARM_TFUNC)
- return "THUMB_FUNC";
-
- if (elf_header.e_machine == EM_SPARCV9 && type == STT_REGISTER)
- return "REGISTER";
-
- if (elf_header.e_machine == EM_PARISC && type == STT_PARISC_MILLI)
- return "PARISC_MILLI";
-
- snprintf (buff, sizeof (buff), _("<processor specific>: %d"), type);
- }
- else if (type >= STT_LOOS && type <= STT_HIOS)
- {
- if (elf_header.e_machine == EM_PARISC)
- {
- if (type == STT_HP_OPAQUE)
- return "HP_OPAQUE";
- if (type == STT_HP_STUB)
- return "HP_STUB";
- }
-
- snprintf (buff, sizeof (buff), _("<OS specific>: %d"), type);
- }
- else
- snprintf (buff, sizeof (buff), _("<unknown>: %d"), type);
- return buff;
- }
-}
-
-static const char *
-get_symbol_visibility (unsigned int visibility)
-{
- switch (visibility)
- {
- case STV_DEFAULT: return "DEFAULT";
- case STV_INTERNAL: return "INTERNAL";
- case STV_HIDDEN: return "HIDDEN";
- case STV_PROTECTED: return "PROTECTED";
- default: abort ();
- }
-}
-
-static const char *
-get_mips_symbol_other (unsigned int other)
-{
- switch (other)
- {
- case STO_OPTIONAL: return "OPTIONAL";
- case STO_MIPS16: return "MIPS16";
- default: return NULL;
- }
-}
-
-static const char *
-get_symbol_other (unsigned int other)
-{
- const char * result = NULL;
- static char buff [32];
-
- if (other == 0)
- return "";
-
- switch (elf_header.e_machine)
- {
- case EM_MIPS:
- result = get_mips_symbol_other (other);
- default:
- break;
- }
-
- if (result)
- return result;
-
- snprintf (buff, sizeof buff, _("<other>: %x"), other);
- return buff;
-}
-
-static const char *
-get_symbol_index_type (unsigned int type)
-{
- static char buff[32];
-
- switch (type)
- {
- case SHN_UNDEF: return "UND";
- case SHN_ABS: return "ABS";
- case SHN_COMMON: return "COM";
- default:
- if (type == SHN_IA_64_ANSI_COMMON
- && elf_header.e_machine == EM_IA_64
- && elf_header.e_ident[EI_OSABI] == ELFOSABI_HPUX)
- return "ANSI_COM";
- else if (elf_header.e_machine == EM_X86_64
- && type == SHN_X86_64_LCOMMON)
- return "LARGE_COM";
- else if (type >= SHN_LOPROC && type <= SHN_HIPROC)
- sprintf (buff, "PRC[0x%04x]", type);
- else if (type >= SHN_LOOS && type <= SHN_HIOS)
- sprintf (buff, "OS [0x%04x]", type);
- else if (type >= SHN_LORESERVE && type <= SHN_HIRESERVE)
- sprintf (buff, "RSV[0x%04x]", type);
- else
- sprintf (buff, "%3d", type);
- break;
- }
-
- return buff;
-}
-
-static bfd_vma *
-get_dynamic_data (FILE *file, unsigned int number, unsigned int ent_size)
-{
- unsigned char *e_data;
- bfd_vma *i_data;
-
- e_data = cmalloc (number, ent_size);
-
- if (e_data == NULL)
- {
- error (_("Out of memory\n"));
- return NULL;
- }
-
- if (fread (e_data, ent_size, number, file) != number)
- {
- error (_("Unable to read in dynamic data\n"));
- return NULL;
- }
-
- i_data = cmalloc (number, sizeof (*i_data));
-
- if (i_data == NULL)
- {
- error (_("Out of memory\n"));
- free (e_data);
- return NULL;
- }
-
- while (number--)
- i_data[number] = byte_get (e_data + number * ent_size, ent_size);
-
- free (e_data);
-
- return i_data;
-}
-
-/* Dump the symbol table. */
-static int
-process_symbol_table (FILE *file)
-{
- Elf_Internal_Shdr *section;
- bfd_vma nbuckets = 0;
- bfd_vma nchains = 0;
- bfd_vma *buckets = NULL;
- bfd_vma *chains = NULL;
-
- if (! do_syms && !do_histogram)
- return 1;
-
- if (dynamic_info[DT_HASH] && ((do_using_dynamic && dynamic_strings != NULL)
- || do_histogram))
- {
- unsigned char nb[8];
- unsigned char nc[8];
- int hash_ent_size = 4;
-
- if ((elf_header.e_machine == EM_ALPHA
- || elf_header.e_machine == EM_S390
- || elf_header.e_machine == EM_S390_OLD)
- && elf_header.e_ident[EI_CLASS] == ELFCLASS64)
- hash_ent_size = 8;
-
- if (fseek (file,
- (archive_file_offset
- + offset_from_vma (file, dynamic_info[DT_HASH],
- sizeof nb + sizeof nc)),
- SEEK_SET))
- {
- error (_("Unable to seek to start of dynamic information"));
- return 0;
- }
-
- if (fread (nb, hash_ent_size, 1, file) != 1)
- {
- error (_("Failed to read in number of buckets\n"));
- return 0;
- }
-
- if (fread (nc, hash_ent_size, 1, file) != 1)
- {
- error (_("Failed to read in number of chains\n"));
- return 0;
- }
-
- nbuckets = byte_get (nb, hash_ent_size);
- nchains = byte_get (nc, hash_ent_size);
-
- buckets = get_dynamic_data (file, nbuckets, hash_ent_size);
- chains = get_dynamic_data (file, nchains, hash_ent_size);
-
- if (buckets == NULL || chains == NULL)
- return 0;
- }
-
- if (do_syms
- && dynamic_info[DT_HASH] && do_using_dynamic && dynamic_strings != NULL)
- {
- unsigned long hn;
- bfd_vma si;
-
- printf (_("\nSymbol table for image:\n"));
- if (is_32bit_elf)
- printf (_(" Num Buc: Value Size Type Bind Vis Ndx Name\n"));
- else
- printf (_(" Num Buc: Value Size Type Bind Vis Ndx Name\n"));
-
- for (hn = 0; hn < nbuckets; hn++)
- {
- if (! buckets[hn])
- continue;
-
- for (si = buckets[hn]; si < nchains && si > 0; si = chains[si])
- {
- Elf_Internal_Sym *psym;
- int n;
-
- psym = dynamic_symbols + si;
-
- n = print_vma (si, DEC_5);
- if (n < 5)
- fputs (" " + n, stdout);
- printf (" %3lu: ", hn);
- print_vma (psym->st_value, LONG_HEX);
- putchar (' ');
- print_vma (psym->st_size, DEC_5);
-
- printf (" %6s", get_symbol_type (ELF_ST_TYPE (psym->st_info)));
- printf (" %6s", get_symbol_binding (ELF_ST_BIND (psym->st_info)));
- printf (" %3s", get_symbol_visibility (ELF_ST_VISIBILITY (psym->st_other)));
- /* Check to see if any other bits in the st_other field are set.
- Note - displaying this information disrupts the layout of the
- table being generated, but for the moment this case is very rare. */
- if (psym->st_other ^ ELF_ST_VISIBILITY (psym->st_other))
- printf (" [%s] ", get_symbol_other (psym->st_other ^ ELF_ST_VISIBILITY (psym->st_other)));
- printf (" %3.3s ", get_symbol_index_type (psym->st_shndx));
- if (VALID_DYNAMIC_NAME (psym->st_name))
- print_symbol (25, GET_DYNAMIC_NAME (psym->st_name));
- else
- printf (" <corrupt: %14ld>", psym->st_name);
- putchar ('\n');
- }
- }
- }
- else if (do_syms && !do_using_dynamic)
- {
- unsigned int i;
-
- for (i = 0, section = section_headers;
- i < elf_header.e_shnum;
- i++, section++)
- {
- unsigned int si;
- char *strtab = NULL;
- unsigned long int strtab_size = 0;
- Elf_Internal_Sym *symtab;
- Elf_Internal_Sym *psym;
-
-
- if ( section->sh_type != SHT_SYMTAB
- && section->sh_type != SHT_DYNSYM)
- continue;
-
- printf (_("\nSymbol table '%s' contains %lu entries:\n"),
- SECTION_NAME (section),
- (unsigned long) (section->sh_size / section->sh_entsize));
- if (is_32bit_elf)
- printf (_(" Num: Value Size Type Bind Vis Ndx Name\n"));
- else
- printf (_(" Num: Value Size Type Bind Vis Ndx Name\n"));
-
- symtab = GET_ELF_SYMBOLS (file, section);
- if (symtab == NULL)
- continue;
-
- if (section->sh_link == elf_header.e_shstrndx)
- {
- strtab = string_table;
- strtab_size = string_table_length;
- }
- else if (SECTION_HEADER_INDEX (section->sh_link) < elf_header.e_shnum)
- {
- Elf_Internal_Shdr *string_sec;
-
- string_sec = SECTION_HEADER (section->sh_link);
-
- strtab = get_data (NULL, file, string_sec->sh_offset,
- 1, string_sec->sh_size, _("string table"));
- strtab_size = strtab != NULL ? string_sec->sh_size : 0;
- }
-
- for (si = 0, psym = symtab;
- si < section->sh_size / section->sh_entsize;
- si++, psym++)
- {
- printf ("%6d: ", si);
- print_vma (psym->st_value, LONG_HEX);
- putchar (' ');
- print_vma (psym->st_size, DEC_5);
- printf (" %-7s", get_symbol_type (ELF_ST_TYPE (psym->st_info)));
- printf (" %-6s", get_symbol_binding (ELF_ST_BIND (psym->st_info)));
- printf (" %-3s", get_symbol_visibility (ELF_ST_VISIBILITY (psym->st_other)));
- /* Check to see if any other bits in the st_other field are set.
- Note - displaying this information disrupts the layout of the
- table being generated, but for the moment this case is very rare. */
- if (psym->st_other ^ ELF_ST_VISIBILITY (psym->st_other))
- printf (" [%s] ", get_symbol_other (psym->st_other ^ ELF_ST_VISIBILITY (psym->st_other)));
- printf (" %4s ", get_symbol_index_type (psym->st_shndx));
- print_symbol (25, psym->st_name < strtab_size
- ? strtab + psym->st_name : "<corrupt>");
-
- if (section->sh_type == SHT_DYNSYM &&
- version_info[DT_VERSIONTAGIDX (DT_VERSYM)] != 0)
- {
- unsigned char data[2];
- unsigned short vers_data;
- unsigned long offset;
- int is_nobits;
- int check_def;
-
- offset = offset_from_vma
- (file, version_info[DT_VERSIONTAGIDX (DT_VERSYM)],
- sizeof data + si * sizeof (vers_data));
-
- get_data (&data, file, offset + si * sizeof (vers_data),
- sizeof (data), 1, _("version data"));
-
- vers_data = byte_get (data, 2);
-
- is_nobits = (SECTION_HEADER_INDEX (psym->st_shndx)
- < elf_header.e_shnum
- && SECTION_HEADER (psym->st_shndx)->sh_type
- == SHT_NOBITS);
-
- check_def = (psym->st_shndx != SHN_UNDEF);
-
- if ((vers_data & 0x8000) || vers_data > 1)
- {
- if (version_info[DT_VERSIONTAGIDX (DT_VERNEED)]
- && (is_nobits || ! check_def))
- {
- Elf_External_Verneed evn;
- Elf_Internal_Verneed ivn;
- Elf_Internal_Vernaux ivna;
-
- /* We must test both. */
- offset = offset_from_vma
- (file, version_info[DT_VERSIONTAGIDX (DT_VERNEED)],
- sizeof evn);
-
- do
- {
- unsigned long vna_off;
-
- get_data (&evn, file, offset, sizeof (evn), 1,
- _("version need"));
-
- ivn.vn_aux = BYTE_GET (evn.vn_aux);
- ivn.vn_next = BYTE_GET (evn.vn_next);
-
- vna_off = offset + ivn.vn_aux;
-
- do
- {
- Elf_External_Vernaux evna;
-
- get_data (&evna, file, vna_off,
- sizeof (evna), 1,
- _("version need aux (3)"));
-
- ivna.vna_other = BYTE_GET (evna.vna_other);
- ivna.vna_next = BYTE_GET (evna.vna_next);
- ivna.vna_name = BYTE_GET (evna.vna_name);
-
- vna_off += ivna.vna_next;
- }
- while (ivna.vna_other != vers_data
- && ivna.vna_next != 0);
-
- if (ivna.vna_other == vers_data)
- break;
-
- offset += ivn.vn_next;
- }
- while (ivn.vn_next != 0);
-
- if (ivna.vna_other == vers_data)
- {
- printf ("@%s (%d)",
- ivna.vna_name < strtab_size
- ? strtab + ivna.vna_name : "<corrupt>",
- ivna.vna_other);
- check_def = 0;
- }
- else if (! is_nobits)
- error (_("bad dynamic symbol"));
- else
- check_def = 1;
- }
-
- if (check_def)
- {
- if (vers_data != 0x8001
- && version_info[DT_VERSIONTAGIDX (DT_VERDEF)])
- {
- Elf_Internal_Verdef ivd;
- Elf_Internal_Verdaux ivda;
- Elf_External_Verdaux evda;
- unsigned long offset;
-
- offset = offset_from_vma
- (file,
- version_info[DT_VERSIONTAGIDX (DT_VERDEF)],
- sizeof (Elf_External_Verdef));
-
- do
- {
- Elf_External_Verdef evd;
-
- get_data (&evd, file, offset, sizeof (evd),
- 1, _("version def"));
-
- ivd.vd_ndx = BYTE_GET (evd.vd_ndx);
- ivd.vd_aux = BYTE_GET (evd.vd_aux);
- ivd.vd_next = BYTE_GET (evd.vd_next);
-
- offset += ivd.vd_next;
- }
- while (ivd.vd_ndx != (vers_data & 0x7fff)
- && ivd.vd_next != 0);
-
- offset -= ivd.vd_next;
- offset += ivd.vd_aux;
-
- get_data (&evda, file, offset, sizeof (evda),
- 1, _("version def aux"));
-
- ivda.vda_name = BYTE_GET (evda.vda_name);
-
- if (psym->st_name != ivda.vda_name)
- printf ((vers_data & 0x8000)
- ? "@%s" : "@@%s",
- ivda.vda_name < strtab_size
- ? strtab + ivda.vda_name : "<corrupt>");
- }
- }
- }
- }
-
- putchar ('\n');
- }
-
- free (symtab);
- if (strtab != string_table)
- free (strtab);
- }
- }
- else if (do_syms)
- printf
- (_("\nDynamic symbol information is not available for displaying symbols.\n"));
-
- if (do_histogram && buckets != NULL)
- {
- unsigned long *lengths;
- unsigned long *counts;
- unsigned long hn;
- bfd_vma si;
- unsigned long maxlength = 0;
- unsigned long nzero_counts = 0;
- unsigned long nsyms = 0;
-
- printf (_("\nHistogram for bucket list length (total of %lu buckets):\n"),
- (unsigned long) nbuckets);
- printf (_(" Length Number %% of total Coverage\n"));
-
- lengths = calloc (nbuckets, sizeof (*lengths));
- if (lengths == NULL)
- {
- error (_("Out of memory"));
- return 0;
- }
- for (hn = 0; hn < nbuckets; ++hn)
- {
- for (si = buckets[hn]; si > 0 && si < nchains; si = chains[si])
- {
- ++nsyms;
- if (maxlength < ++lengths[hn])
- ++maxlength;
- }
- }
-
- counts = calloc (maxlength + 1, sizeof (*counts));
- if (counts == NULL)
- {
- error (_("Out of memory"));
- return 0;
- }
-
- for (hn = 0; hn < nbuckets; ++hn)
- ++counts[lengths[hn]];
-
- if (nbuckets > 0)
- {
- unsigned long i;
- printf (" 0 %-10lu (%5.1f%%)\n",
- counts[0], (counts[0] * 100.0) / nbuckets);
- for (i = 1; i <= maxlength; ++i)
- {
- nzero_counts += counts[i] * i;
- printf ("%7lu %-10lu (%5.1f%%) %5.1f%%\n",
- i, counts[i], (counts[i] * 100.0) / nbuckets,
- (nzero_counts * 100.0) / nsyms);
- }
- }
-
- free (counts);
- free (lengths);
- }
-
- if (buckets != NULL)
- {
- free (buckets);
- free (chains);
- }
-
- return 1;
-}
-
-static int
-process_syminfo (FILE *file ATTRIBUTE_UNUSED)
-{
- unsigned int i;
-
- if (dynamic_syminfo == NULL
- || !do_dynamic)
- /* No syminfo, this is ok. */
- return 1;
-
- /* There better should be a dynamic symbol section. */
- if (dynamic_symbols == NULL || dynamic_strings == NULL)
- return 0;
-
- if (dynamic_addr)
- printf (_("\nDynamic info segment at offset 0x%lx contains %d entries:\n"),
- dynamic_syminfo_offset, dynamic_syminfo_nent);
-
- printf (_(" Num: Name BoundTo Flags\n"));
- for (i = 0; i < dynamic_syminfo_nent; ++i)
- {
- unsigned short int flags = dynamic_syminfo[i].si_flags;
-
- printf ("%4d: ", i);
- if (VALID_DYNAMIC_NAME (dynamic_symbols[i].st_name))
- print_symbol (30, GET_DYNAMIC_NAME (dynamic_symbols[i].st_name));
- else
- printf ("<corrupt: %19ld>", dynamic_symbols[i].st_name);
- putchar (' ');
-
- switch (dynamic_syminfo[i].si_boundto)
- {
- case SYMINFO_BT_SELF:
- fputs ("SELF ", stdout);
- break;
- case SYMINFO_BT_PARENT:
- fputs ("PARENT ", stdout);
- break;
- default:
- if (dynamic_syminfo[i].si_boundto > 0
- && dynamic_syminfo[i].si_boundto < dynamic_nent
- && VALID_DYNAMIC_NAME (dynamic_section[dynamic_syminfo[i].si_boundto].d_un.d_val))
- {
- print_symbol (10, GET_DYNAMIC_NAME (dynamic_section[dynamic_syminfo[i].si_boundto].d_un.d_val));
- putchar (' ' );
- }
- else
- printf ("%-10d ", dynamic_syminfo[i].si_boundto);
- break;
- }
-
- if (flags & SYMINFO_FLG_DIRECT)
- printf (" DIRECT");
- if (flags & SYMINFO_FLG_PASSTHRU)
- printf (" PASSTHRU");
- if (flags & SYMINFO_FLG_COPY)
- printf (" COPY");
- if (flags & SYMINFO_FLG_LAZYLOAD)
- printf (" LAZYLOAD");
-
- puts ("");
- }
-
- return 1;
-}
-
-#ifdef SUPPORT_DISASSEMBLY
-static int
-disassemble_section (Elf_Internal_Shdr *section, FILE *file)
-{
- printf (_("\nAssembly dump of section %s\n"),
- SECTION_NAME (section));
-
- /* XXX -- to be done --- XXX */
-
- return 1;
-}
-#endif
-
-static int
-dump_section (Elf_Internal_Shdr *section, FILE *file)
-{
- bfd_size_type bytes;
- bfd_vma addr;
- unsigned char *data;
- unsigned char *start;
-
- bytes = section->sh_size;
-
- if (bytes == 0 || section->sh_type == SHT_NOBITS)
- {
- printf (_("\nSection '%s' has no data to dump.\n"),
- SECTION_NAME (section));
- return 0;
- }
- else
- printf (_("\nHex dump of section '%s':\n"), SECTION_NAME (section));
-
- addr = section->sh_addr;
-
- start = get_data (NULL, file, section->sh_offset, 1, bytes,
- _("section data"));
- if (!start)
- return 0;
-
- data = start;
-
- while (bytes)
- {
- int j;
- int k;
- int lbytes;
-
- lbytes = (bytes > 16 ? 16 : bytes);
-
- printf (" 0x%8.8lx ", (unsigned long) addr);
-
- switch (elf_header.e_ident[EI_DATA])
- {
- default:
- case ELFDATA2LSB:
- for (j = 15; j >= 0; j --)
- {
- if (j < lbytes)
- printf ("%2.2x", data[j]);
- else
- printf (" ");
-
- if (!(j & 0x3))
- printf (" ");
- }
- break;
-
- case ELFDATA2MSB:
- for (j = 0; j < 16; j++)
- {
- if (j < lbytes)
- printf ("%2.2x", data[j]);
- else
- printf (" ");
-
- if ((j & 3) == 3)
- printf (" ");
- }
- break;
- }
-
- for (j = 0; j < lbytes; j++)
- {
- k = data[j];
- if (k >= ' ' && k < 0x7f)
- printf ("%c", k);
- else
- printf (".");
- }
-
- putchar ('\n');
-
- data += lbytes;
- addr += lbytes;
- bytes -= lbytes;
- }
-
- free (start);
-
- return 1;
-}
-
-/* Apply addends of RELA relocations. */
-
-static int
-debug_apply_rela_addends (void *file,
- Elf_Internal_Shdr *section,
- unsigned char *start)
-{
- Elf_Internal_Shdr *relsec;
- unsigned char *end = start + section->sh_size;
- /* FIXME: The relocation field size is relocation type dependent. */
- unsigned int reloc_size = 4;
-
- if (!is_relocatable)
- return 1;
-
- if (section->sh_size < reloc_size)
- return 1;
-
- for (relsec = section_headers;
- relsec < section_headers + elf_header.e_shnum;
- ++relsec)
- {
- unsigned long nrelas;
- Elf_Internal_Rela *rela, *rp;
- Elf_Internal_Shdr *symsec;
- Elf_Internal_Sym *symtab;
- Elf_Internal_Sym *sym;
-
- if (relsec->sh_type != SHT_RELA
- || SECTION_HEADER_INDEX (relsec->sh_info) >= elf_header.e_shnum
- || SECTION_HEADER (relsec->sh_info) != section
- || relsec->sh_size == 0
- || SECTION_HEADER_INDEX (relsec->sh_link) >= elf_header.e_shnum)
- continue;
-
- if (!slurp_rela_relocs (file, relsec->sh_offset, relsec->sh_size,
- &rela, &nrelas))
- return 0;
-
- symsec = SECTION_HEADER (relsec->sh_link);
- symtab = GET_ELF_SYMBOLS (file, symsec);
-
- for (rp = rela; rp < rela + nrelas; ++rp)
- {
- unsigned char *loc;
-
- loc = start + rp->r_offset;
- if ((loc + reloc_size) > end)
- {
- warn (_("skipping invalid relocation offset 0x%lx in section %s\n"),
- (unsigned long) rp->r_offset,
- SECTION_NAME (section));
- continue;
- }
-
- if (is_32bit_elf)
- {
- sym = symtab + ELF32_R_SYM (rp->r_info);
-
- if (ELF32_R_SYM (rp->r_info) != 0
- && ELF32_ST_TYPE (sym->st_info) != STT_SECTION
- /* Relocations against object symbols can happen,
- eg when referencing a global array. For an
- example of this see the _clz.o binary in libgcc.a. */
- && ELF32_ST_TYPE (sym->st_info) != STT_OBJECT)
- {
- warn (_("skipping unexpected symbol type %s in relocation in section .rela%s\n"),
- get_symbol_type (ELF32_ST_TYPE (sym->st_info)),
- SECTION_NAME (section));
- continue;
- }
- }
- else
- {
- /* In MIPS little-endian objects, r_info isn't really a
- 64-bit little-endian value: it has a 32-bit little-endian
- symbol index followed by four individual byte fields.
- Reorder INFO accordingly. */
- if (elf_header.e_machine == EM_MIPS
- && elf_header.e_ident[EI_DATA] != ELFDATA2MSB)
- rp->r_info = (((rp->r_info & 0xffffffff) << 32)
- | ((rp->r_info >> 56) & 0xff)
- | ((rp->r_info >> 40) & 0xff00)
- | ((rp->r_info >> 24) & 0xff0000)
- | ((rp->r_info >> 8) & 0xff000000));
-
- sym = symtab + ELF64_R_SYM (rp->r_info);
-
- if (ELF64_R_SYM (rp->r_info) != 0
- && ELF64_ST_TYPE (sym->st_info) != STT_SECTION
- && ELF64_ST_TYPE (sym->st_info) != STT_OBJECT)
- {
- warn (_("skipping unexpected symbol type %s in relocation in section .rela.%s\n"),
- get_symbol_type (ELF64_ST_TYPE (sym->st_info)),
- SECTION_NAME (section));
- continue;
- }
- }
-
- byte_put (loc, rp->r_addend, reloc_size);
- }
-
- free (symtab);
- free (rela);
- break;
- }
- return 1;
-}
-
-int
-load_debug_section (enum dwarf_section_display_enum debug, void *file)
-{
- struct dwarf_section *section = &debug_displays [debug].section;
- Elf_Internal_Shdr *sec;
- char buf [64];
-
- /* If it is already loaded, do nothing. */
- if (section->start != NULL)
- return 1;
-
- /* Locate the debug section. */
- sec = find_section (section->name);
- if (sec == NULL)
- return 0;
-
- snprintf (buf, sizeof (buf), _("%s section data"), section->name);
- section->address = sec->sh_addr;
- section->size = sec->sh_size;
- section->start = get_data (NULL, file, sec->sh_offset, 1,
- sec->sh_size, buf);
-
- if (debug_displays [debug].relocate)
- debug_apply_rela_addends (file, sec, section->start);
-
- return section->start != NULL;
-}
-
-void
-free_debug_section (enum dwarf_section_display_enum debug)
-{
- struct dwarf_section *section = &debug_displays [debug].section;
-
- if (section->start == NULL)
- return;
-
- free ((char *) section->start);
- section->start = NULL;
- section->address = 0;
- section->size = 0;
-}
-
-static int
-display_debug_section (Elf_Internal_Shdr *section, FILE *file)
-{
- char *name = SECTION_NAME (section);
- bfd_size_type length;
- int result = 1;
- enum dwarf_section_display_enum i;
-
- length = section->sh_size;
- if (length == 0)
- {
- printf (_("\nSection '%s' has no debugging data.\n"), name);
- return 0;
- }
-
- if (strneq (name, ".gnu.linkonce.wi.", 17))
- name = ".debug_info";
-
- /* See if we know how to display the contents of this section. */
- for (i = 0; i < max; i++)
- if (streq (debug_displays[i].section.name, name))
- {
- struct dwarf_section *sec = &debug_displays [i].section;
-
- if (load_debug_section (i, file))
- {
- result &= debug_displays[i].display (sec, file);
-
- if (i != info && i != abbrev)
- free_debug_section (i);
- }
-
- break;
- }
-
- if (i == max)
- {
- printf (_("Unrecognized debug section: %s\n"), name);
- result = 0;
- }
-
- return result;
-}
-
-/* Set DUMP_SECTS for all sections where dumps were requested
- based on section name. */
-
-static void
-initialise_dumps_byname (void)
-{
- struct dump_list_entry *cur;
-
- for (cur = dump_sects_byname; cur; cur = cur->next)
- {
- unsigned int i;
- int any;
-
- for (i = 0, any = 0; i < elf_header.e_shnum; i++)
- if (streq (SECTION_NAME (section_headers + i), cur->name))
- {
- request_dump (i, cur->type);
- any = 1;
- }
-
- if (!any)
- warn (_("Section '%s' was not dumped because it does not exist!\n"),
- cur->name);
- }
-}
-
-static void
-process_section_contents (FILE *file)
-{
- Elf_Internal_Shdr *section;
- unsigned int i;
-
- if (! do_dump)
- return;
-
- initialise_dumps_byname ();
-
- for (i = 0, section = section_headers;
- i < elf_header.e_shnum && i < num_dump_sects;
- i++, section++)
- {
-#ifdef SUPPORT_DISASSEMBLY
- if (dump_sects[i] & DISASS_DUMP)
- disassemble_section (section, file);
-#endif
- if (dump_sects[i] & HEX_DUMP)
- dump_section (section, file);
-
- if (dump_sects[i] & DEBUG_DUMP)
- display_debug_section (section, file);
- }
-
- /* Check to see if the user requested a
- dump of a section that does not exist. */
- while (i++ < num_dump_sects)
- if (dump_sects[i])
- warn (_("Section %d was not dumped because it does not exist!\n"), i);
-}
-
-static void
-process_mips_fpe_exception (int mask)
-{
- if (mask)
- {
- int first = 1;
- if (mask & OEX_FPU_INEX)
- fputs ("INEX", stdout), first = 0;
- if (mask & OEX_FPU_UFLO)
- printf ("%sUFLO", first ? "" : "|"), first = 0;
- if (mask & OEX_FPU_OFLO)
- printf ("%sOFLO", first ? "" : "|"), first = 0;
- if (mask & OEX_FPU_DIV0)
- printf ("%sDIV0", first ? "" : "|"), first = 0;
- if (mask & OEX_FPU_INVAL)
- printf ("%sINVAL", first ? "" : "|");
- }
- else
- fputs ("0", stdout);
-}
-
-/* ARM EABI attributes section. */
-typedef struct
-{
- int tag;
- const char *name;
- /* 0 = special, 1 = string, 2 = uleb123, > 0x80 == table lookup. */
- int type;
- const char **table;
-} arm_attr_public_tag;
-
-static const char *arm_attr_tag_CPU_arch[] =
- {"Pre-v4", "v4", "v4T", "v5T", "v5TE", "v5TEJ", "v6", "v6KZ", "v6T2",
- "v6K", "v7"};
-static const char *arm_attr_tag_ARM_ISA_use[] = {"No", "Yes"};
-static const char *arm_attr_tag_THUMB_ISA_use[] =
- {"No", "Thumb-1", "Thumb-2"};
-static const char *arm_attr_tag_VFP_arch[] = {"No", "VFPv1", "VFPv2"};
-static const char *arm_attr_tag_WMMX_arch[] = {"No", "WMMXv1"};
-static const char *arm_attr_tag_NEON_arch[] = {"No", "NEONv1"};
-static const char *arm_attr_tag_ABI_PCS_config[] =
- {"None", "Bare platform", "Linux application", "Linux DSO", "PalmOS 2004",
- "PalmOS (reserved)", "SymbianOS 2004", "SymbianOS (reserved)"};
-static const char *arm_attr_tag_ABI_PCS_R9_use[] =
- {"V6", "SB", "TLS", "Unused"};
-static const char *arm_attr_tag_ABI_PCS_RW_data[] =
- {"Absolute", "PC-relative", "SB-relative", "None"};
-static const char *arm_attr_tag_ABI_PCS_RO_DATA[] =
- {"Absolute", "PC-relative", "None"};
-static const char *arm_attr_tag_ABI_PCS_GOT_use[] =
- {"None", "direct", "GOT-indirect"};
-static const char *arm_attr_tag_ABI_PCS_wchar_t[] =
- {"None", "??? 1", "2", "??? 3", "4"};
-static const char *arm_attr_tag_ABI_FP_rounding[] = {"Unused", "Needed"};
-static const char *arm_attr_tag_ABI_FP_denormal[] = {"Unused", "Needed"};
-static const char *arm_attr_tag_ABI_FP_exceptions[] = {"Unused", "Needed"};
-static const char *arm_attr_tag_ABI_FP_user_exceptions[] = {"Unused", "Needed"};
-static const char *arm_attr_tag_ABI_FP_number_model[] =
- {"Unused", "Finite", "RTABI", "IEEE 754"};
-static const char *arm_attr_tag_ABI_align8_needed[] = {"No", "Yes", "4-byte"};
-static const char *arm_attr_tag_ABI_align8_preserved[] =
- {"No", "Yes, except leaf SP", "Yes"};
-static const char *arm_attr_tag_ABI_enum_size[] =
- {"Unused", "small", "int", "forced to int"};
-static const char *arm_attr_tag_ABI_HardFP_use[] =
- {"As Tag_VFP_arch", "SP only", "DP only", "SP and DP"};
-static const char *arm_attr_tag_ABI_VFP_args[] =
- {"AAPCS", "VFP registers", "custom"};
-static const char *arm_attr_tag_ABI_WMMX_args[] =
- {"AAPCS", "WMMX registers", "custom"};
-static const char *arm_attr_tag_ABI_optimization_goals[] =
- {"None", "Prefer Speed", "Aggressive Speed", "Prefer Size",
- "Aggressive Size", "Prefer Debug", "Aggressive Debug"};
-static const char *arm_attr_tag_ABI_FP_optimization_goals[] =
- {"None", "Prefer Speed", "Aggressive Speed", "Prefer Size",
- "Aggressive Size", "Prefer Accuracy", "Aggressive Accuracy"};
-
-#define LOOKUP(id, name) \
- {id, #name, 0x80 | ARRAY_SIZE(arm_attr_tag_##name), arm_attr_tag_##name}
-static arm_attr_public_tag arm_attr_public_tags[] =
-{
- {4, "CPU_raw_name", 1, NULL},
- {5, "CPU_name", 1, NULL},
- LOOKUP(6, CPU_arch),
- {7, "CPU_arch_profile", 0, NULL},
- LOOKUP(8, ARM_ISA_use),
- LOOKUP(9, THUMB_ISA_use),
- LOOKUP(10, VFP_arch),
- LOOKUP(11, WMMX_arch),
- LOOKUP(12, NEON_arch),
- LOOKUP(13, ABI_PCS_config),
- LOOKUP(14, ABI_PCS_R9_use),
- LOOKUP(15, ABI_PCS_RW_data),
- LOOKUP(16, ABI_PCS_RO_DATA),
- LOOKUP(17, ABI_PCS_GOT_use),
- LOOKUP(18, ABI_PCS_wchar_t),
- LOOKUP(19, ABI_FP_rounding),
- LOOKUP(20, ABI_FP_denormal),
- LOOKUP(21, ABI_FP_exceptions),
- LOOKUP(22, ABI_FP_user_exceptions),
- LOOKUP(23, ABI_FP_number_model),
- LOOKUP(24, ABI_align8_needed),
- LOOKUP(25, ABI_align8_preserved),
- LOOKUP(26, ABI_enum_size),
- LOOKUP(27, ABI_HardFP_use),
- LOOKUP(28, ABI_VFP_args),
- LOOKUP(29, ABI_WMMX_args),
- LOOKUP(30, ABI_optimization_goals),
- LOOKUP(31, ABI_FP_optimization_goals),
- {32, "compatibility", 0, NULL}
-};
-#undef LOOKUP
-
-/* Read an unsigned LEB128 encoded value from p. Set *PLEN to the number of
- bytes read. */
-static unsigned int
-read_uleb128 (unsigned char *p, unsigned int *plen)
-{
- unsigned char c;
- unsigned int val;
- int shift;
- int len;
-
- val = 0;
- shift = 0;
- len = 0;
- do
- {
- c = *(p++);
- len++;
- val |= ((unsigned int)c & 0x7f) << shift;
- shift += 7;
- }
- while (c & 0x80);
-
- *plen = len;
- return val;
-}
-
-static unsigned char *
-display_arm_attribute (unsigned char *p)
-{
- int tag;
- unsigned int len;
- int val;
- arm_attr_public_tag *attr;
- unsigned i;
- int type;
-
- tag = read_uleb128 (p, &len);
- p += len;
- attr = NULL;
- for (i = 0; i < ARRAY_SIZE(arm_attr_public_tags); i++)
- {
- if (arm_attr_public_tags[i].tag == tag)
- {
- attr = &arm_attr_public_tags[i];
- break;
- }
- }
-
- if (attr)
- {
- printf (" Tag_%s: ", attr->name);
- switch (attr->type)
- {
- case 0:
- switch (tag)
- {
- case 7: /* Tag_CPU_arch_profile. */
- val = read_uleb128 (p, &len);
- p += len;
- switch (val)
- {
- case 0: printf ("None\n"); break;
- case 'A': printf ("Application\n"); break;
- case 'R': printf ("Realtime\n"); break;
- case 'M': printf ("Microcontroller\n"); break;
- default: printf ("??? (%d)\n", val); break;
- }
- break;
-
- case 32: /* Tag_compatibility. */
- val = read_uleb128 (p, &len);
- p += len;
- printf ("flag = %d, vendor = %s\n", val, p);
- p += strlen((char *)p) + 1;
- break;
-
- default:
- abort();
- }
- return p;
-
- case 1:
- case 2:
- type = attr->type;
- break;
-
- default:
- assert (attr->type & 0x80);
- val = read_uleb128 (p, &len);
- p += len;
- type = attr->type & 0x7f;
- if (val >= type)
- printf ("??? (%d)\n", val);
- else
- printf ("%s\n", attr->table[val]);
- return p;
- }
- }
- else
- {
- if (tag & 1)
- type = 1; /* String. */
- else
- type = 2; /* uleb128. */
- printf (" Tag_unknown_%d: ", tag);
- }
-
- if (type == 1)
- {
- printf ("\"%s\"\n", p);
- p += strlen((char *)p) + 1;
- }
- else
- {
- val = read_uleb128 (p, &len);
- p += len;
- printf ("%d (0x%x)\n", val, val);
- }
-
- return p;
-}
-
-static int
-process_arm_specific (FILE *file)
-{
- Elf_Internal_Shdr *sect;
- unsigned char *contents;
- unsigned char *p;
- unsigned char *end;
- bfd_vma section_len;
- bfd_vma len;
- unsigned i;
-
- /* Find the section header so that we get the size. */
- for (i = 0, sect = section_headers;
- i < elf_header.e_shnum;
- i++, sect++)
- {
- if (sect->sh_type != SHT_ARM_ATTRIBUTES)
- continue;
-
- contents = get_data (NULL, file, sect->sh_offset, 1, sect->sh_size,
- _("attributes"));
-
- if (!contents)
- continue;
- p = contents;
- if (*p == 'A')
- {
- len = sect->sh_size - 1;
- p++;
- while (len > 0)
- {
- int namelen;
- bfd_boolean public_section;
-
- section_len = byte_get (p, 4);
- p += 4;
- if (section_len > len)
- {
- printf (_("ERROR: Bad section length (%d > %d)\n"),
- (int)section_len, (int)len);
- section_len = len;
- }
- len -= section_len;
- printf ("Attribute Section: %s\n", p);
- if (strcmp ((char *)p, "aeabi") == 0)
- public_section = TRUE;
- else
- public_section = FALSE;
- namelen = strlen ((char *)p) + 1;
- p += namelen;
- section_len -= namelen + 4;
- while (section_len > 0)
- {
- int tag = *(p++);
- int val;
- bfd_vma size;
- size = byte_get (p, 4);
- if (size > section_len)
- {
- printf (_("ERROR: Bad subsection length (%d > %d)\n"),
- (int)size, (int)section_len);
- size = section_len;
- }
- section_len -= size;
- end = p + size - 1;
- p += 4;
- switch (tag)
- {
- case 1:
- printf ("File Attributes\n");
- break;
- case 2:
- printf ("Section Attributes:");
- goto do_numlist;
- case 3:
- printf ("Symbol Attributes:");
- do_numlist:
- for (;;)
- {
- unsigned int i;
- val = read_uleb128 (p, &i);
- p += i;
- if (val == 0)
- break;
- printf (" %d", val);
- }
- printf ("\n");
- break;
- default:
- printf ("Unknown tag: %d\n", tag);
- public_section = FALSE;
- break;
- }
- if (public_section)
- {
- while (p < end)
- p = display_arm_attribute(p);
- }
- else
- {
- /* ??? Do something sensible, like dump hex. */
- printf (" Unknown section contexts\n");
- p = end;
- }
- }
- }
- }
- else
- {
- printf (_("Unknown format '%c'\n"), *p);
- }
-
- free(contents);
- }
- return 1;
-}
-
-static int
-process_mips_specific (FILE *file)
-{
- Elf_Internal_Dyn *entry;
- size_t liblist_offset = 0;
- size_t liblistno = 0;
- size_t conflictsno = 0;
- size_t options_offset = 0;
- size_t conflicts_offset = 0;
-
- /* We have a lot of special sections. Thanks SGI! */
- if (dynamic_section == NULL)
- /* No information available. */
- return 0;
-
- for (entry = dynamic_section; entry->d_tag != DT_NULL; ++entry)
- switch (entry->d_tag)
- {
- case DT_MIPS_LIBLIST:
- liblist_offset
- = offset_from_vma (file, entry->d_un.d_val,
- liblistno * sizeof (Elf32_External_Lib));
- break;
- case DT_MIPS_LIBLISTNO:
- liblistno = entry->d_un.d_val;
- break;
- case DT_MIPS_OPTIONS:
- options_offset = offset_from_vma (file, entry->d_un.d_val, 0);
- break;
- case DT_MIPS_CONFLICT:
- conflicts_offset
- = offset_from_vma (file, entry->d_un.d_val,
- conflictsno * sizeof (Elf32_External_Conflict));
- break;
- case DT_MIPS_CONFLICTNO:
- conflictsno = entry->d_un.d_val;
- break;
- default:
- break;
- }
-
- if (liblist_offset != 0 && liblistno != 0 && do_dynamic)
- {
- Elf32_External_Lib *elib;
- size_t cnt;
-
- elib = get_data (NULL, file, liblist_offset,
- liblistno, sizeof (Elf32_External_Lib),
- _("liblist"));
- if (elib)
- {
- printf ("\nSection '.liblist' contains %lu entries:\n",
- (unsigned long) liblistno);
- fputs (" Library Time Stamp Checksum Version Flags\n",
- stdout);
-
- for (cnt = 0; cnt < liblistno; ++cnt)
- {
- Elf32_Lib liblist;
- time_t time;
- char timebuf[20];
- struct tm *tmp;
-
- liblist.l_name = BYTE_GET (elib[cnt].l_name);
- time = BYTE_GET (elib[cnt].l_time_stamp);
- liblist.l_checksum = BYTE_GET (elib[cnt].l_checksum);
- liblist.l_version = BYTE_GET (elib[cnt].l_version);
- liblist.l_flags = BYTE_GET (elib[cnt].l_flags);
-
- tmp = gmtime (&time);
- snprintf (timebuf, sizeof (timebuf),
- "%04u-%02u-%02uT%02u:%02u:%02u",
- tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
- tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
-
- printf ("%3lu: ", (unsigned long) cnt);
- if (VALID_DYNAMIC_NAME (liblist.l_name))
- print_symbol (20, GET_DYNAMIC_NAME (liblist.l_name));
- else
- printf ("<corrupt: %9ld>", liblist.l_name);
- printf (" %s %#10lx %-7ld", timebuf, liblist.l_checksum,
- liblist.l_version);
-
- if (liblist.l_flags == 0)
- puts (" NONE");
- else
- {
- static const struct
- {
- const char *name;
- int bit;
- }
- l_flags_vals[] =
- {
- { " EXACT_MATCH", LL_EXACT_MATCH },
- { " IGNORE_INT_VER", LL_IGNORE_INT_VER },
- { " REQUIRE_MINOR", LL_REQUIRE_MINOR },
- { " EXPORTS", LL_EXPORTS },
- { " DELAY_LOAD", LL_DELAY_LOAD },
- { " DELTA", LL_DELTA }
- };
- int flags = liblist.l_flags;
- size_t fcnt;
-
- for (fcnt = 0;
- fcnt < sizeof (l_flags_vals) / sizeof (l_flags_vals[0]);
- ++fcnt)
- if ((flags & l_flags_vals[fcnt].bit) != 0)
- {
- fputs (l_flags_vals[fcnt].name, stdout);
- flags ^= l_flags_vals[fcnt].bit;
- }
- if (flags != 0)
- printf (" %#x", (unsigned int) flags);
-
- puts ("");
- }
- }
-
- free (elib);
- }
- }
-
- if (options_offset != 0)
- {
- Elf_External_Options *eopt;
- Elf_Internal_Shdr *sect = section_headers;
- Elf_Internal_Options *iopt;
- Elf_Internal_Options *option;
- size_t offset;
- int cnt;
-
- /* Find the section header so that we get the size. */
- while (sect->sh_type != SHT_MIPS_OPTIONS)
- ++sect;
-
- eopt = get_data (NULL, file, options_offset, 1, sect->sh_size,
- _("options"));
- if (eopt)
- {
- iopt = cmalloc ((sect->sh_size / sizeof (eopt)), sizeof (*iopt));
- if (iopt == NULL)
- {
- error (_("Out of memory"));
- return 0;
- }
-
- offset = cnt = 0;
- option = iopt;
-
- while (offset < sect->sh_size)
- {
- Elf_External_Options *eoption;
-
- eoption = (Elf_External_Options *) ((char *) eopt + offset);
-
- option->kind = BYTE_GET (eoption->kind);
- option->size = BYTE_GET (eoption->size);
- option->section = BYTE_GET (eoption->section);
- option->info = BYTE_GET (eoption->info);
-
- offset += option->size;
-
- ++option;
- ++cnt;
- }
-
- printf (_("\nSection '%s' contains %d entries:\n"),
- SECTION_NAME (sect), cnt);
-
- option = iopt;
-
- while (cnt-- > 0)
- {
- size_t len;
-
- switch (option->kind)
- {
- case ODK_NULL:
- /* This shouldn't happen. */
- printf (" NULL %d %lx", option->section, option->info);
- break;
- case ODK_REGINFO:
- printf (" REGINFO ");
- if (elf_header.e_machine == EM_MIPS)
- {
- /* 32bit form. */
- Elf32_External_RegInfo *ereg;
- Elf32_RegInfo reginfo;
-
- ereg = (Elf32_External_RegInfo *) (option + 1);
- reginfo.ri_gprmask = BYTE_GET (ereg->ri_gprmask);
- reginfo.ri_cprmask[0] = BYTE_GET (ereg->ri_cprmask[0]);
- reginfo.ri_cprmask[1] = BYTE_GET (ereg->ri_cprmask[1]);
- reginfo.ri_cprmask[2] = BYTE_GET (ereg->ri_cprmask[2]);
- reginfo.ri_cprmask[3] = BYTE_GET (ereg->ri_cprmask[3]);
- reginfo.ri_gp_value = BYTE_GET (ereg->ri_gp_value);
-
- printf ("GPR %08lx GP 0x%lx\n",
- reginfo.ri_gprmask,
- (unsigned long) reginfo.ri_gp_value);
- printf (" CPR0 %08lx CPR1 %08lx CPR2 %08lx CPR3 %08lx\n",
- reginfo.ri_cprmask[0], reginfo.ri_cprmask[1],
- reginfo.ri_cprmask[2], reginfo.ri_cprmask[3]);
- }
- else
- {
- /* 64 bit form. */
- Elf64_External_RegInfo *ereg;
- Elf64_Internal_RegInfo reginfo;
-
- ereg = (Elf64_External_RegInfo *) (option + 1);
- reginfo.ri_gprmask = BYTE_GET (ereg->ri_gprmask);
- reginfo.ri_cprmask[0] = BYTE_GET (ereg->ri_cprmask[0]);
- reginfo.ri_cprmask[1] = BYTE_GET (ereg->ri_cprmask[1]);
- reginfo.ri_cprmask[2] = BYTE_GET (ereg->ri_cprmask[2]);
- reginfo.ri_cprmask[3] = BYTE_GET (ereg->ri_cprmask[3]);
- reginfo.ri_gp_value = BYTE_GET (ereg->ri_gp_value);
-
- printf ("GPR %08lx GP 0x",
- reginfo.ri_gprmask);
- printf_vma (reginfo.ri_gp_value);
- printf ("\n");
-
- printf (" CPR0 %08lx CPR1 %08lx CPR2 %08lx CPR3 %08lx\n",
- reginfo.ri_cprmask[0], reginfo.ri_cprmask[1],
- reginfo.ri_cprmask[2], reginfo.ri_cprmask[3]);
- }
- ++option;
- continue;
- case ODK_EXCEPTIONS:
- fputs (" EXCEPTIONS fpe_min(", stdout);
- process_mips_fpe_exception (option->info & OEX_FPU_MIN);
- fputs (") fpe_max(", stdout);
- process_mips_fpe_exception ((option->info & OEX_FPU_MAX) >> 8);
- fputs (")", stdout);
-
- if (option->info & OEX_PAGE0)
- fputs (" PAGE0", stdout);
- if (option->info & OEX_SMM)
- fputs (" SMM", stdout);
- if (option->info & OEX_FPDBUG)
- fputs (" FPDBUG", stdout);
- if (option->info & OEX_DISMISS)
- fputs (" DISMISS", stdout);
- break;
- case ODK_PAD:
- fputs (" PAD ", stdout);
- if (option->info & OPAD_PREFIX)
- fputs (" PREFIX", stdout);
- if (option->info & OPAD_POSTFIX)
- fputs (" POSTFIX", stdout);
- if (option->info & OPAD_SYMBOL)
- fputs (" SYMBOL", stdout);
- break;
- case ODK_HWPATCH:
- fputs (" HWPATCH ", stdout);
- if (option->info & OHW_R4KEOP)
- fputs (" R4KEOP", stdout);
- if (option->info & OHW_R8KPFETCH)
- fputs (" R8KPFETCH", stdout);
- if (option->info & OHW_R5KEOP)
- fputs (" R5KEOP", stdout);
- if (option->info & OHW_R5KCVTL)
- fputs (" R5KCVTL", stdout);
- break;
- case ODK_FILL:
- fputs (" FILL ", stdout);
- /* XXX Print content of info word? */
- break;
- case ODK_TAGS:
- fputs (" TAGS ", stdout);
- /* XXX Print content of info word? */
- break;
- case ODK_HWAND:
- fputs (" HWAND ", stdout);
- if (option->info & OHWA0_R4KEOP_CHECKED)
- fputs (" R4KEOP_CHECKED", stdout);
- if (option->info & OHWA0_R4KEOP_CLEAN)
- fputs (" R4KEOP_CLEAN", stdout);
- break;
- case ODK_HWOR:
- fputs (" HWOR ", stdout);
- if (option->info & OHWA0_R4KEOP_CHECKED)
- fputs (" R4KEOP_CHECKED", stdout);
- if (option->info & OHWA0_R4KEOP_CLEAN)
- fputs (" R4KEOP_CLEAN", stdout);
- break;
- case ODK_GP_GROUP:
- printf (" GP_GROUP %#06lx self-contained %#06lx",
- option->info & OGP_GROUP,
- (option->info & OGP_SELF) >> 16);
- break;
- case ODK_IDENT:
- printf (" IDENT %#06lx self-contained %#06lx",
- option->info & OGP_GROUP,
- (option->info & OGP_SELF) >> 16);
- break;
- default:
- /* This shouldn't happen. */
- printf (" %3d ??? %d %lx",
- option->kind, option->section, option->info);
- break;
- }
-
- len = sizeof (*eopt);
- while (len < option->size)
- if (((char *) option)[len] >= ' '
- && ((char *) option)[len] < 0x7f)
- printf ("%c", ((char *) option)[len++]);
- else
- printf ("\\%03o", ((char *) option)[len++]);
-
- fputs ("\n", stdout);
- ++option;
- }
-
- free (eopt);
- }
- }
-
- if (conflicts_offset != 0 && conflictsno != 0)
- {
- Elf32_Conflict *iconf;
- size_t cnt;
-
- if (dynamic_symbols == NULL)
- {
- error (_("conflict list found without a dynamic symbol table"));
- return 0;
- }
-
- iconf = cmalloc (conflictsno, sizeof (*iconf));
- if (iconf == NULL)
- {
- error (_("Out of memory"));
- return 0;
- }
-
- if (is_32bit_elf)
- {
- Elf32_External_Conflict *econf32;
-
- econf32 = get_data (NULL, file, conflicts_offset,
- conflictsno, sizeof (*econf32), _("conflict"));
- if (!econf32)
- return 0;
-
- for (cnt = 0; cnt < conflictsno; ++cnt)
- iconf[cnt] = BYTE_GET (econf32[cnt]);
-
- free (econf32);
- }
- else
- {
- Elf64_External_Conflict *econf64;
-
- econf64 = get_data (NULL, file, conflicts_offset,
- conflictsno, sizeof (*econf64), _("conflict"));
- if (!econf64)
- return 0;
-
- for (cnt = 0; cnt < conflictsno; ++cnt)
- iconf[cnt] = BYTE_GET (econf64[cnt]);
-
- free (econf64);
- }
-
- printf (_("\nSection '.conflict' contains %lu entries:\n"),
- (unsigned long) conflictsno);
- puts (_(" Num: Index Value Name"));
-
- for (cnt = 0; cnt < conflictsno; ++cnt)
- {
- Elf_Internal_Sym *psym = & dynamic_symbols[iconf[cnt]];
-
- printf ("%5lu: %8lu ", (unsigned long) cnt, iconf[cnt]);
- print_vma (psym->st_value, FULL_HEX);
- putchar (' ');
- if (VALID_DYNAMIC_NAME (psym->st_name))
- print_symbol (25, GET_DYNAMIC_NAME (psym->st_name));
- else
- printf ("<corrupt: %14ld>", psym->st_name);
- putchar ('\n');
- }
-
- free (iconf);
- }
-
- return 1;
-}
-
-static int
-process_gnu_liblist (FILE *file)
-{
- Elf_Internal_Shdr *section, *string_sec;
- Elf32_External_Lib *elib;
- char *strtab;
- size_t strtab_size;
- size_t cnt;
- unsigned i;
-
- if (! do_arch)
- return 0;
-
- for (i = 0, section = section_headers;
- i < elf_header.e_shnum;
- i++, section++)
- {
- switch (section->sh_type)
- {
- case SHT_GNU_LIBLIST:
- if (SECTION_HEADER_INDEX (section->sh_link) >= elf_header.e_shnum)
- break;
-
- elib = get_data (NULL, file, section->sh_offset, 1, section->sh_size,
- _("liblist"));
-
- if (elib == NULL)
- break;
- string_sec = SECTION_HEADER (section->sh_link);
-
- strtab = get_data (NULL, file, string_sec->sh_offset, 1,
- string_sec->sh_size, _("liblist string table"));
- strtab_size = string_sec->sh_size;
-
- if (strtab == NULL
- || section->sh_entsize != sizeof (Elf32_External_Lib))
- {
- free (elib);
- break;
- }
-
- printf (_("\nLibrary list section '%s' contains %lu entries:\n"),
- SECTION_NAME (section),
- (long) (section->sh_size / sizeof (Elf32_External_Lib)));
-
- puts (" Library Time Stamp Checksum Version Flags");
-
- for (cnt = 0; cnt < section->sh_size / sizeof (Elf32_External_Lib);
- ++cnt)
- {
- Elf32_Lib liblist;
- time_t time;
- char timebuf[20];
- struct tm *tmp;
-
- liblist.l_name = BYTE_GET (elib[cnt].l_name);
- time = BYTE_GET (elib[cnt].l_time_stamp);
- liblist.l_checksum = BYTE_GET (elib[cnt].l_checksum);
- liblist.l_version = BYTE_GET (elib[cnt].l_version);
- liblist.l_flags = BYTE_GET (elib[cnt].l_flags);
-
- tmp = gmtime (&time);
- snprintf (timebuf, sizeof (timebuf),
- "%04u-%02u-%02uT%02u:%02u:%02u",
- tmp->tm_year + 1900, tmp->tm_mon + 1, tmp->tm_mday,
- tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
-
- printf ("%3lu: ", (unsigned long) cnt);
- if (do_wide)
- printf ("%-20s", liblist.l_name < strtab_size
- ? strtab + liblist.l_name : "<corrupt>");
- else
- printf ("%-20.20s", liblist.l_name < strtab_size
- ? strtab + liblist.l_name : "<corrupt>");
- printf (" %s %#010lx %-7ld %-7ld\n", timebuf, liblist.l_checksum,
- liblist.l_version, liblist.l_flags);
- }
-
- free (elib);
- }
- }
-
- return 1;
-}
-
-static const char *
-get_note_type (unsigned e_type)
-{
- static char buff[64];
-
- if (elf_header.e_type == ET_CORE)
- switch (e_type)
- {
- case NT_AUXV:
- return _("NT_AUXV (auxiliary vector)");
- case NT_PRSTATUS:
- return _("NT_PRSTATUS (prstatus structure)");
- case NT_FPREGSET:
- return _("NT_FPREGSET (floating point registers)");
- case NT_PRPSINFO:
- return _("NT_PRPSINFO (prpsinfo structure)");
- case NT_TASKSTRUCT:
- return _("NT_TASKSTRUCT (task structure)");
- case NT_PRXFPREG:
- return _("NT_PRXFPREG (user_xfpregs structure)");
- case NT_PSTATUS:
- return _("NT_PSTATUS (pstatus structure)");
- case NT_FPREGS:
- return _("NT_FPREGS (floating point registers)");
- case NT_PSINFO:
- return _("NT_PSINFO (psinfo structure)");
- case NT_LWPSTATUS:
- return _("NT_LWPSTATUS (lwpstatus_t structure)");
- case NT_LWPSINFO:
- return _("NT_LWPSINFO (lwpsinfo_t structure)");
- case NT_WIN32PSTATUS:
- return _("NT_WIN32PSTATUS (win32_pstatus structure)");
- default:
- break;
- }
- else
- switch (e_type)
- {
- case NT_VERSION:
- return _("NT_VERSION (version)");
- case NT_ARCH:
- return _("NT_ARCH (architecture)");
- default:
- break;
- }
-
- snprintf (buff, sizeof (buff), _("Unknown note type: (0x%08x)"), e_type);
- return buff;
-}
-
-static const char *
-get_netbsd_elfcore_note_type (unsigned e_type)
-{
- static char buff[64];
-
- if (e_type == NT_NETBSDCORE_PROCINFO)
- {
- /* NetBSD core "procinfo" structure. */
- return _("NetBSD procinfo structure");
- }
-
- /* As of Jan 2002 there are no other machine-independent notes
- defined for NetBSD core files. If the note type is less
- than the start of the machine-dependent note types, we don't
- understand it. */
-
- if (e_type < NT_NETBSDCORE_FIRSTMACH)
- {
- snprintf (buff, sizeof (buff), _("Unknown note type: (0x%08x)"), e_type);
- return buff;
- }
-
- switch (elf_header.e_machine)
- {
- /* On the Alpha, SPARC (32-bit and 64-bit), PT_GETREGS == mach+0
- and PT_GETFPREGS == mach+2. */
-
- case EM_OLD_ALPHA:
- case EM_ALPHA:
- case EM_SPARC:
- case EM_SPARC32PLUS:
- case EM_SPARCV9:
- switch (e_type)
- {
- case NT_NETBSDCORE_FIRSTMACH+0:
- return _("PT_GETREGS (reg structure)");
- case NT_NETBSDCORE_FIRSTMACH+2:
- return _("PT_GETFPREGS (fpreg structure)");
- default:
- break;
- }
- break;
-
- /* On all other arch's, PT_GETREGS == mach+1 and
- PT_GETFPREGS == mach+3. */
- default:
- switch (e_type)
- {
- case NT_NETBSDCORE_FIRSTMACH+1:
- return _("PT_GETREGS (reg structure)");
- case NT_NETBSDCORE_FIRSTMACH+3:
- return _("PT_GETFPREGS (fpreg structure)");
- default:
- break;
- }
- }
-
- snprintf (buff, sizeof (buff), _("PT_FIRSTMACH+%d"),
- e_type - NT_NETBSDCORE_FIRSTMACH);
- return buff;
-}
-
-/* Note that by the ELF standard, the name field is already null byte
- terminated, and namesz includes the terminating null byte.
- I.E. the value of namesz for the name "FSF" is 4.
-
- If the value of namesz is zero, there is no name present. */
-static int
-process_note (Elf_Internal_Note *pnote)
-{
- const char *nt;
-
- if (pnote->namesz == 0)
- /* If there is no note name, then use the default set of
- note type strings. */
- nt = get_note_type (pnote->type);
-
- else if (strneq (pnote->namedata, "NetBSD-CORE", 11))
- /* NetBSD-specific core file notes. */
- nt = get_netbsd_elfcore_note_type (pnote->type);
-
- else
- /* Don't recognize this note name; just use the default set of
- note type strings. */
- nt = get_note_type (pnote->type);
-
- printf (" %s\t\t0x%08lx\t%s\n",
- pnote->namesz ? pnote->namedata : "(NONE)",
- pnote->descsz, nt);
- return 1;
-}
-
-
-static int
-process_corefile_note_segment (FILE *file, bfd_vma offset, bfd_vma length)
-{
- Elf_External_Note *pnotes;
- Elf_External_Note *external;
- int res = 1;
-
- if (length <= 0)
- return 0;
-
- pnotes = get_data (NULL, file, offset, 1, length, _("notes"));
- if (!pnotes)
- return 0;
-
- external = pnotes;
-
- printf (_("\nNotes at offset 0x%08lx with length 0x%08lx:\n"),
- (unsigned long) offset, (unsigned long) length);
- printf (_(" Owner\t\tData size\tDescription\n"));
-
- while (external < (Elf_External_Note *)((char *) pnotes + length))
- {
- Elf_External_Note *next;
- Elf_Internal_Note inote;
- char *temp = NULL;
-
- inote.type = BYTE_GET (external->type);
- inote.namesz = BYTE_GET (external->namesz);
- inote.namedata = external->name;
- inote.descsz = BYTE_GET (external->descsz);
- inote.descdata = inote.namedata + align_power (inote.namesz, 2);
- inote.descpos = offset + (inote.descdata - (char *) pnotes);
-
- next = (Elf_External_Note *)(inote.descdata + align_power (inote.descsz, 2));
-
- if (((char *) next) > (((char *) pnotes) + length))
- {
- warn (_("corrupt note found at offset %lx into core notes\n"),
- (long)((char *)external - (char *)pnotes));
- warn (_(" type: %lx, namesize: %08lx, descsize: %08lx\n"),
- inote.type, inote.namesz, inote.descsz);
- break;
- }
-
- external = next;
-
- /* Verify that name is null terminated. It appears that at least
- one version of Linux (RedHat 6.0) generates corefiles that don't
- comply with the ELF spec by failing to include the null byte in
- namesz. */
- if (inote.namedata[inote.namesz] != '\0')
- {
- temp = malloc (inote.namesz + 1);
-
- if (temp == NULL)
- {
- error (_("Out of memory\n"));
- res = 0;
- break;
- }
-
- strncpy (temp, inote.namedata, inote.namesz);
- temp[inote.namesz] = 0;
-
- /* warn (_("'%s' NOTE name not properly null terminated\n"), temp); */
- inote.namedata = temp;
- }
-
- res &= process_note (& inote);
-
- if (temp != NULL)
- {
- free (temp);
- temp = NULL;
- }
- }
-
- free (pnotes);
-
- return res;
-}
-
-static int
-process_corefile_note_segments (FILE *file)
-{
- Elf_Internal_Phdr *segment;
- unsigned int i;
- int res = 1;
-
- if (! get_program_headers (file))
- return 0;
-
- for (i = 0, segment = program_headers;
- i < elf_header.e_phnum;
- i++, segment++)
- {
- if (segment->p_type == PT_NOTE)
- res &= process_corefile_note_segment (file,
- (bfd_vma) segment->p_offset,
- (bfd_vma) segment->p_filesz);
- }
-
- return res;
-}
-
-static int
-process_note_sections (FILE *file)
-{
- Elf_Internal_Shdr *section;
- unsigned long i;
- int res = 1;
-
- for (i = 0, section = section_headers;
- i < elf_header.e_shnum;
- i++, section++)
- if (section->sh_type == SHT_NOTE)
- res &= process_corefile_note_segment (file,
- (bfd_vma) section->sh_offset,
- (bfd_vma) section->sh_size);
-
- return res;
-}
-
-static int
-process_notes (FILE *file)
-{
- /* If we have not been asked to display the notes then do nothing. */
- if (! do_notes)
- return 1;
-
- if (elf_header.e_type != ET_CORE)
- return process_note_sections (file);
-
- /* No program headers means no NOTE segment. */
- if (elf_header.e_phnum > 0)
- return process_corefile_note_segments (file);
-
- printf (_("No note segments present in the core file.\n"));
- return 1;
-}
-
-static int
-process_arch_specific (FILE *file)
-{
- if (! do_arch)
- return 1;
-
- switch (elf_header.e_machine)
- {
- case EM_ARM:
- return process_arm_specific (file);
- case EM_MIPS:
- case EM_MIPS_RS3_LE:
- return process_mips_specific (file);
- break;
- default:
- break;
- }
- return 1;
-}
-
-static int
-get_file_header (FILE *file)
-{
- /* Read in the identity array. */
- if (fread (elf_header.e_ident, EI_NIDENT, 1, file) != 1)
- return 0;
-
- /* Determine how to read the rest of the header. */
- switch (elf_header.e_ident[EI_DATA])
- {
- default: /* fall through */
- case ELFDATANONE: /* fall through */
- case ELFDATA2LSB:
- byte_get = byte_get_little_endian;
- byte_put = byte_put_little_endian;
- break;
- case ELFDATA2MSB:
- byte_get = byte_get_big_endian;
- byte_put = byte_put_big_endian;
- break;
- }
-
- /* For now we only support 32 bit and 64 bit ELF files. */
- is_32bit_elf = (elf_header.e_ident[EI_CLASS] != ELFCLASS64);
-
- /* Read in the rest of the header. */
- if (is_32bit_elf)
- {
- Elf32_External_Ehdr ehdr32;
-
- if (fread (ehdr32.e_type, sizeof (ehdr32) - EI_NIDENT, 1, file) != 1)
- return 0;
-
- elf_header.e_type = BYTE_GET (ehdr32.e_type);
- elf_header.e_machine = BYTE_GET (ehdr32.e_machine);
- elf_header.e_version = BYTE_GET (ehdr32.e_version);
- elf_header.e_entry = BYTE_GET (ehdr32.e_entry);
- elf_header.e_phoff = BYTE_GET (ehdr32.e_phoff);
- elf_header.e_shoff = BYTE_GET (ehdr32.e_shoff);
- elf_header.e_flags = BYTE_GET (ehdr32.e_flags);
- elf_header.e_ehsize = BYTE_GET (ehdr32.e_ehsize);
- elf_header.e_phentsize = BYTE_GET (ehdr32.e_phentsize);
- elf_header.e_phnum = BYTE_GET (ehdr32.e_phnum);
- elf_header.e_shentsize = BYTE_GET (ehdr32.e_shentsize);
- elf_header.e_shnum = BYTE_GET (ehdr32.e_shnum);
- elf_header.e_shstrndx = BYTE_GET (ehdr32.e_shstrndx);
- }
- else
- {
- Elf64_External_Ehdr ehdr64;
-
- /* If we have been compiled with sizeof (bfd_vma) == 4, then
- we will not be able to cope with the 64bit data found in
- 64 ELF files. Detect this now and abort before we start
- overwriting things. */
- if (sizeof (bfd_vma) < 8)
- {
- error (_("This instance of readelf has been built without support for a\n\
-64 bit data type and so it cannot read 64 bit ELF files.\n"));
- return 0;
- }
-
- if (fread (ehdr64.e_type, sizeof (ehdr64) - EI_NIDENT, 1, file) != 1)
- return 0;
-
- elf_header.e_type = BYTE_GET (ehdr64.e_type);
- elf_header.e_machine = BYTE_GET (ehdr64.e_machine);
- elf_header.e_version = BYTE_GET (ehdr64.e_version);
- elf_header.e_entry = BYTE_GET (ehdr64.e_entry);
- elf_header.e_phoff = BYTE_GET (ehdr64.e_phoff);
- elf_header.e_shoff = BYTE_GET (ehdr64.e_shoff);
- elf_header.e_flags = BYTE_GET (ehdr64.e_flags);
- elf_header.e_ehsize = BYTE_GET (ehdr64.e_ehsize);
- elf_header.e_phentsize = BYTE_GET (ehdr64.e_phentsize);
- elf_header.e_phnum = BYTE_GET (ehdr64.e_phnum);
- elf_header.e_shentsize = BYTE_GET (ehdr64.e_shentsize);
- elf_header.e_shnum = BYTE_GET (ehdr64.e_shnum);
- elf_header.e_shstrndx = BYTE_GET (ehdr64.e_shstrndx);
- }
-
- if (elf_header.e_shoff)
- {
- /* There may be some extensions in the first section header. Don't
- bomb if we can't read it. */
- if (is_32bit_elf)
- get_32bit_section_headers (file, 1);
- else
- get_64bit_section_headers (file, 1);
- }
-
- is_relocatable = elf_header.e_type == ET_REL;
-
- return 1;
-}
-
-/* Process one ELF object file according to the command line options.
- This file may actually be stored in an archive. The file is
- positioned at the start of the ELF object. */
-
-static int
-process_object (char *file_name, FILE *file)
-{
- unsigned int i;
-
- if (! get_file_header (file))
- {
- error (_("%s: Failed to read file header\n"), file_name);
- return 1;
- }
-
- /* Initialise per file variables. */
- for (i = NUM_ELEM (version_info); i--;)
- version_info[i] = 0;
-
- for (i = NUM_ELEM (dynamic_info); i--;)
- dynamic_info[i] = 0;
-
- /* Process the file. */
- if (show_name)
- printf (_("\nFile: %s\n"), file_name);
-
- /* Initialise the dump_sects array from the cmdline_dump_sects array.
- Note we do this even if cmdline_dump_sects is empty because we
- must make sure that the dump_sets array is zeroed out before each
- object file is processed. */
- if (num_dump_sects > num_cmdline_dump_sects)
- memset (dump_sects, 0, num_dump_sects);
-
- if (num_cmdline_dump_sects > 0)
- {
- if (num_dump_sects == 0)
- /* A sneaky way of allocating the dump_sects array. */
- request_dump (num_cmdline_dump_sects, 0);
-
- assert (num_dump_sects >= num_cmdline_dump_sects);
- memcpy (dump_sects, cmdline_dump_sects, num_cmdline_dump_sects);
- }
-
- if (! process_file_header ())
- return 1;
-
- if (! process_section_headers (file))
- {
- /* Without loaded section headers we cannot process lots of
- things. */
- do_unwind = do_version = do_dump = do_arch = 0;
-
- if (! do_using_dynamic)
- do_syms = do_reloc = 0;
- }
-
- if (! process_section_groups (file))
- {
- /* Without loaded section groups we cannot process unwind. */
- do_unwind = 0;
- }
-
- if (process_program_headers (file))
- process_dynamic_section (file);
-
- process_relocs (file);
-
- process_unwind (file);
-
- process_symbol_table (file);
-
- process_syminfo (file);
-
- process_version_sections (file);
-
- process_section_contents (file);
-
- process_notes (file);
-
- process_gnu_liblist (file);
-
- process_arch_specific (file);
-
- if (program_headers)
- {
- free (program_headers);
- program_headers = NULL;
- }
-
- if (section_headers)
- {
- free (section_headers);
- section_headers = NULL;
- }
-
- if (string_table)
- {
- free (string_table);
- string_table = NULL;
- string_table_length = 0;
- }
-
- if (dynamic_strings)
- {
- free (dynamic_strings);
- dynamic_strings = NULL;
- dynamic_strings_length = 0;
- }
-
- if (dynamic_symbols)
- {
- free (dynamic_symbols);
- dynamic_symbols = NULL;
- num_dynamic_syms = 0;
- }
-
- if (dynamic_syminfo)
- {
- free (dynamic_syminfo);
- dynamic_syminfo = NULL;
- }
-
- if (section_headers_groups)
- {
- free (section_headers_groups);
- section_headers_groups = NULL;
- }
-
- if (section_groups)
- {
- struct group_list *g, *next;
-
- for (i = 0; i < group_count; i++)
- {
- for (g = section_groups [i].root; g != NULL; g = next)
- {
- next = g->next;
- free (g);
- }
- }
-
- free (section_groups);
- section_groups = NULL;
- }
-
- free_debug_memory ();
-
- return 0;
-}
-
-/* Process an ELF archive. The file is positioned just after the
- ARMAG string. */
-
-static int
-process_archive (char *file_name, FILE *file)
-{
- struct ar_hdr arhdr;
- size_t got;
- unsigned long size;
- char *longnames = NULL;
- unsigned long longnames_size = 0;
- size_t file_name_size;
- int ret;
-
- show_name = 1;
-
- got = fread (&arhdr, 1, sizeof arhdr, file);
- if (got != sizeof arhdr)
- {
- if (got == 0)
- return 0;
-
- error (_("%s: failed to read archive header\n"), file_name);
- return 1;
- }
-
- if (memcmp (arhdr.ar_name, "/ ", 16) == 0)
- {
- /* This is the archive symbol table. Skip it.
- FIXME: We should have an option to dump it. */
- size = strtoul (arhdr.ar_size, NULL, 10);
- if (fseek (file, size + (size & 1), SEEK_CUR) != 0)
- {
- error (_("%s: failed to skip archive symbol table\n"), file_name);
- return 1;
- }
-
- got = fread (&arhdr, 1, sizeof arhdr, file);
- if (got != sizeof arhdr)
- {
- if (got == 0)
- return 0;
-
- error (_("%s: failed to read archive header\n"), file_name);
- return 1;
- }
- }
-
- if (memcmp (arhdr.ar_name, "// ", 16) == 0)
- {
- /* This is the archive string table holding long member
- names. */
-
- longnames_size = strtoul (arhdr.ar_size, NULL, 10);
-
- longnames = malloc (longnames_size);
- if (longnames == NULL)
- {
- error (_("Out of memory\n"));
- return 1;
- }
-
- if (fread (longnames, longnames_size, 1, file) != 1)
- {
- free (longnames);
- error (_("%s: failed to read string table\n"), file_name);
- return 1;
- }
-
- if ((longnames_size & 1) != 0)
- getc (file);
-
- got = fread (&arhdr, 1, sizeof arhdr, file);
- if (got != sizeof arhdr)
- {
- free (longnames);
-
- if (got == 0)
- return 0;
-
- error (_("%s: failed to read archive header\n"), file_name);
- return 1;
- }
- }
-
- file_name_size = strlen (file_name);
- ret = 0;
-
- while (1)
- {
- char *name;
- char *nameend;
- char *namealc;
-
- if (arhdr.ar_name[0] == '/')
- {
- unsigned long off;
-
- off = strtoul (arhdr.ar_name + 1, NULL, 10);
- if (off >= longnames_size)
- {
- error (_("%s: invalid archive string table offset %lu\n"), file_name, off);
- ret = 1;
- break;
- }
-
- name = longnames + off;
- nameend = memchr (name, '/', longnames_size - off);
- }
- else
- {
- name = arhdr.ar_name;
- nameend = memchr (name, '/', 16);
- }
-
- if (nameend == NULL)
- {
- error (_("%s: bad archive file name\n"), file_name);
- ret = 1;
- break;
- }
-
- namealc = malloc (file_name_size + (nameend - name) + 3);
- if (namealc == NULL)
- {
- error (_("Out of memory\n"));
- ret = 1;
- break;
- }
-
- memcpy (namealc, file_name, file_name_size);
- namealc[file_name_size] = '(';
- memcpy (namealc + file_name_size + 1, name, nameend - name);
- namealc[file_name_size + 1 + (nameend - name)] = ')';
- namealc[file_name_size + 2 + (nameend - name)] = '\0';
-
- archive_file_offset = ftell (file);
- archive_file_size = strtoul (arhdr.ar_size, NULL, 10);
-
- ret |= process_object (namealc, file);
-
- free (namealc);
-
- if (fseek (file,
- (archive_file_offset
- + archive_file_size
- + (archive_file_size & 1)),
- SEEK_SET) != 0)
- {
- error (_("%s: failed to seek to next archive header\n"), file_name);
- ret = 1;
- break;
- }
-
- got = fread (&arhdr, 1, sizeof arhdr, file);
- if (got != sizeof arhdr)
- {
- if (got == 0)
- break;
-
- error (_("%s: failed to read archive header\n"), file_name);
- ret = 1;
- break;
- }
- }
-
- if (longnames != 0)
- free (longnames);
-
- return ret;
-}
-
-static int
-process_file (char *file_name)
-{
- FILE *file;
- struct stat statbuf;
- char armag[SARMAG];
- int ret;
-
- if (stat (file_name, &statbuf) < 0)
- {
- if (errno == ENOENT)
- error (_("'%s': No such file\n"), file_name);
- else
- error (_("Could not locate '%s'. System error message: %s\n"),
- file_name, strerror (errno));
- return 1;
- }
-
- if (! S_ISREG (statbuf.st_mode))
- {
- error (_("'%s' is not an ordinary file\n"), file_name);
- return 1;
- }
-
- file = fopen (file_name, "rb");
- if (file == NULL)
- {
- error (_("Input file '%s' is not readable.\n"), file_name);
- return 1;
- }
-
- if (fread (armag, SARMAG, 1, file) != 1)
- {
- error (_("%s: Failed to read file header\n"), file_name);
- fclose (file);
- return 1;
- }
-
- if (memcmp (armag, ARMAG, SARMAG) == 0)
- ret = process_archive (file_name, file);
- else
- {
- rewind (file);
- archive_file_size = archive_file_offset = 0;
- ret = process_object (file_name, file);
- }
-
- fclose (file);
-
- return ret;
-}
-
-#ifdef SUPPORT_DISASSEMBLY
-/* Needed by the i386 disassembler. For extra credit, someone could
- fix this so that we insert symbolic addresses here, esp for GOT/PLT
- symbols. */
-
-void
-print_address (unsigned int addr, FILE *outfile)
-{
- fprintf (outfile,"0x%8.8x", addr);
-}
-
-/* Needed by the i386 disassembler. */
-void
-db_task_printsym (unsigned int addr)
-{
- print_address (addr, stderr);
-}
-#endif
-
-int
-main (int argc, char **argv)
-{
- int err;
-
-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- expandargv (&argc, &argv);
-
- parse_args (argc, argv);
-
- if (num_dump_sects > 0)
- {
- /* Make a copy of the dump_sects array. */
- cmdline_dump_sects = malloc (num_dump_sects);
- if (cmdline_dump_sects == NULL)
- error (_("Out of memory allocating dump request table."));
- else
- {
- memcpy (cmdline_dump_sects, dump_sects, num_dump_sects);
- num_cmdline_dump_sects = num_dump_sects;
- }
- }
-
- if (optind < (argc - 1))
- show_name = 1;
-
- err = 0;
- while (optind < argc)
- err |= process_file (argv[optind++]);
-
- if (dump_sects != NULL)
- free (dump_sects);
- if (cmdline_dump_sects != NULL)
- free (cmdline_dump_sects);
-
- return err;
-}
diff --git a/binutils-2.17/binutils/rename.c b/binutils-2.17/binutils/rename.c
deleted file mode 100644
index 7d21cb34..00000000
--- a/binutils-2.17/binutils/rename.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/* rename.c -- rename a file, preserving symlinks.
- Copyright 1999, 2002, 2003 Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#include "bfd.h"
-#include "bucomm.h"
-
-#include <sys/stat.h>
-
-#ifdef HAVE_GOOD_UTIME_H
-#include <utime.h>
-#else /* ! HAVE_GOOD_UTIME_H */
-#ifdef HAVE_UTIMES
-#include <sys/time.h>
-#endif /* HAVE_UTIMES */
-#endif /* ! HAVE_GOOD_UTIME_H */
-
-/* We need to open the file in binary modes on system where that makes
- a difference. */
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-#if ! defined (_WIN32) || defined (__CYGWIN32__)
-static int simple_copy (const char *, const char *);
-
-/* The number of bytes to copy at once. */
-#define COPY_BUF 8192
-
-/* Copy file FROM to file TO, performing no translations.
- Return 0 if ok, -1 if error. */
-
-static int
-simple_copy (const char *from, const char *to)
-{
- int fromfd, tofd, nread;
- int saved;
- char buf[COPY_BUF];
-
- fromfd = open (from, O_RDONLY | O_BINARY);
- if (fromfd < 0)
- return -1;
-#ifdef O_CREAT
- tofd = open (to, O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0777);
-#else
- tofd = creat (to, 0777);
-#endif
- if (tofd < 0)
- {
- saved = errno;
- close (fromfd);
- errno = saved;
- return -1;
- }
- while ((nread = read (fromfd, buf, sizeof buf)) > 0)
- {
- if (write (tofd, buf, nread) != nread)
- {
- saved = errno;
- close (fromfd);
- close (tofd);
- errno = saved;
- return -1;
- }
- }
- saved = errno;
- close (fromfd);
- close (tofd);
- if (nread < 0)
- {
- errno = saved;
- return -1;
- }
- return 0;
-}
-#endif /* __CYGWIN32__ or not _WIN32 */
-
-/* Set the times of the file DESTINATION to be the same as those in
- STATBUF. */
-
-void
-set_times (const char *destination, const struct stat *statbuf)
-{
- int result;
-
- {
-#ifdef HAVE_GOOD_UTIME_H
- struct utimbuf tb;
-
- tb.actime = statbuf->st_atime;
- tb.modtime = statbuf->st_mtime;
- result = utime (destination, &tb);
-#else /* ! HAVE_GOOD_UTIME_H */
-#ifndef HAVE_UTIMES
- long tb[2];
-
- tb[0] = statbuf->st_atime;
- tb[1] = statbuf->st_mtime;
- result = utime (destination, tb);
-#else /* HAVE_UTIMES */
- struct timeval tv[2];
-
- tv[0].tv_sec = statbuf->st_atime;
- tv[0].tv_usec = 0;
- tv[1].tv_sec = statbuf->st_mtime;
- tv[1].tv_usec = 0;
- result = utimes (destination, tv);
-#endif /* HAVE_UTIMES */
-#endif /* ! HAVE_GOOD_UTIME_H */
- }
-
- if (result != 0)
- non_fatal (_("%s: cannot set time: %s"), destination, strerror (errno));
-}
-
-#ifndef S_ISLNK
-#ifdef S_IFLNK
-#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
-#else
-#define S_ISLNK(m) 0
-#define lstat stat
-#endif
-#endif
-
-/* Rename FROM to TO, copying if TO is a link.
- Return 0 if ok, -1 if error. */
-
-int
-smart_rename (const char *from, const char *to, int preserve_dates ATTRIBUTE_UNUSED)
-{
- bfd_boolean exists;
- struct stat s;
- int ret = 0;
-
- exists = lstat (to, &s) == 0;
-
-#if defined (_WIN32) && !defined (__CYGWIN32__)
- /* Win32, unlike unix, will not erase `to' in `rename(from, to)' but
- fail instead. Also, chown is not present. */
-
- if (exists)
- remove (to);
-
- ret = rename (from, to);
- if (ret != 0)
- {
- /* We have to clean up here. */
- non_fatal (_("unable to rename '%s' reason: %s"), to, strerror (errno));
- unlink (from);
- }
-#else
- /* Use rename only if TO is not a symbolic link and has
- only one hard link, and we have permission to write to it. */
- if (! exists
- || (!S_ISLNK (s.st_mode)
- && S_ISREG (s.st_mode)
- && (s.st_mode & S_IWUSR)
- && s.st_nlink == 1)
- )
- {
- ret = rename (from, to);
- if (ret == 0)
- {
- if (exists)
- {
- /* Try to preserve the permission bits and ownership of
- TO. First get the mode right except for the setuid
- bit. Then change the ownership. Then fix the setuid
- bit. We do the chmod before the chown because if the
- chown succeeds, and we are a normal user, we won't be
- able to do the chmod afterward. We don't bother to
- fix the setuid bit first because that might introduce
- a fleeting security problem, and because the chown
- will clear the setuid bit anyhow. We only fix the
- setuid bit if the chown succeeds, because we don't
- want to introduce an unexpected setuid file owned by
- the user running objcopy. */
- chmod (to, s.st_mode & 0777);
- if (chown (to, s.st_uid, s.st_gid) >= 0)
- chmod (to, s.st_mode & 07777);
- }
- }
- else
- {
- /* We have to clean up here. */
- non_fatal (_("unable to rename '%s' reason: %s"), to, strerror (errno));
- unlink (from);
- }
- }
- else
- {
- ret = simple_copy (from, to);
- if (ret != 0)
- non_fatal (_("unable to copy file '%s' reason: %s"), to, strerror (errno));
-
- if (preserve_dates)
- set_times (to, &s);
- unlink (from);
- }
-#endif /* _WIN32 && !__CYGWIN32__ */
-
- return ret;
-}
diff --git a/binutils-2.17/binutils/resbin.c b/binutils-2.17/binutils/resbin.c
deleted file mode 100644
index 80c2596a..00000000
--- a/binutils-2.17/binutils/resbin.c
+++ /dev/null
@@ -1,2318 +0,0 @@
-/* resbin.c -- manipulate the Windows binary resource format.
- Copyright 1997, 1998, 1999, 2002, 2003
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Cygnus Support.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This file contains functions to convert between the binary resource
- format and the internal structures that we want to use. The same
- binary resource format is used in both res and COFF files. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "windres.h"
-
-/* Macros to swap in values. */
-
-#define get_8(s) (*((unsigned char *)(s)))
-#define get_16(be, s) ((be) ? bfd_getb16 (s) : bfd_getl16 (s))
-#define get_32(be, s) ((be) ? bfd_getb32 (s) : bfd_getl32 (s))
-
-/* Local functions. */
-
-static void toosmall (const char *);
-
-static unichar *get_unicode
- (const unsigned char *, unsigned long, int, int *);
-static int get_resid
- (struct res_id *, const unsigned char *, unsigned long, int);
-static struct res_resource *bin_to_res_generic
- (enum res_type, const unsigned char *, unsigned long);
-static struct res_resource *bin_to_res_cursor
- (const unsigned char *, unsigned long, int);
-static struct res_resource *bin_to_res_menu
- (const unsigned char *, unsigned long, int);
-static struct menuitem *bin_to_res_menuitems
- (const unsigned char *, unsigned long, int, int *);
-static struct menuitem *bin_to_res_menuexitems
- (const unsigned char *, unsigned long, int, int *);
-static struct res_resource *bin_to_res_dialog
- (const unsigned char *, unsigned long, int);
-static struct res_resource *bin_to_res_string
- (const unsigned char *, unsigned long, int);
-static struct res_resource *bin_to_res_fontdir
- (const unsigned char *, unsigned long, int);
-static struct res_resource *bin_to_res_accelerators
- (const unsigned char *, unsigned long, int);
-static struct res_resource *bin_to_res_rcdata
- (const unsigned char *, unsigned long, int);
-static struct res_resource *bin_to_res_group_cursor
- (const unsigned char *, unsigned long, int);
-static struct res_resource *bin_to_res_group_icon
- (const unsigned char *, unsigned long, int);
-static struct res_resource *bin_to_res_version
- (const unsigned char *, unsigned long, int);
-static struct res_resource *bin_to_res_userdata
- (const unsigned char *, unsigned long, int);
-static void get_version_header
- (const unsigned char *, unsigned long, int, const char *,
- unichar **, int *, int *, int *, int *);
-
-/* Given a resource type ID, a pointer to data, a length, return a
- res_resource structure which represents that resource. The caller
- is responsible for initializing the res_info and coff_info fields
- of the returned structure. */
-
-struct res_resource *
-bin_to_res (struct res_id type, const unsigned char *data,
- unsigned long length, int big_endian)
-{
- if (type.named)
- return bin_to_res_userdata (data, length, big_endian);
- else
- {
- switch (type.u.id)
- {
- default:
- return bin_to_res_userdata (data, length, big_endian);
- case RT_CURSOR:
- return bin_to_res_cursor (data, length, big_endian);
- case RT_BITMAP:
- return bin_to_res_generic (RES_TYPE_BITMAP, data, length);
- case RT_ICON:
- return bin_to_res_generic (RES_TYPE_ICON, data, length);
- case RT_MENU:
- return bin_to_res_menu (data, length, big_endian);
- case RT_DIALOG:
- return bin_to_res_dialog (data, length, big_endian);
- case RT_STRING:
- return bin_to_res_string (data, length, big_endian);
- case RT_FONTDIR:
- return bin_to_res_fontdir (data, length, big_endian);
- case RT_FONT:
- return bin_to_res_generic (RES_TYPE_FONT, data, length);
- case RT_ACCELERATOR:
- return bin_to_res_accelerators (data, length, big_endian);
- case RT_RCDATA:
- return bin_to_res_rcdata (data, length, big_endian);
- case RT_MESSAGETABLE:
- return bin_to_res_generic (RES_TYPE_MESSAGETABLE, data, length);
- case RT_GROUP_CURSOR:
- return bin_to_res_group_cursor (data, length, big_endian);
- case RT_GROUP_ICON:
- return bin_to_res_group_icon (data, length, big_endian);
- case RT_VERSION:
- return bin_to_res_version (data, length, big_endian);
- }
- }
-}
-
-/* Give an error if the binary data is too small. */
-
-static void
-toosmall (const char *msg)
-{
- fatal (_("%s: not enough binary data"), msg);
-}
-
-/* Swap in a NULL terminated unicode string. */
-
-static unichar *
-get_unicode (const unsigned char *data, unsigned long length,
- int big_endian, int *retlen)
-{
- int c, i;
- unichar *ret;
-
- c = 0;
- while (1)
- {
- if (length < (unsigned long) c * 2 + 2)
- toosmall (_("null terminated unicode string"));
- if (get_16 (big_endian, data + c * 2) == 0)
- break;
- ++c;
- }
-
- ret = (unichar *) res_alloc ((c + 1) * sizeof (unichar));
-
- for (i = 0; i < c; i++)
- ret[i] = get_16 (big_endian, data + i * 2);
- ret[i] = 0;
-
- if (retlen != NULL)
- *retlen = c;
-
- return ret;
-}
-
-/* Get a resource identifier. This returns the number of bytes used. */
-
-static int
-get_resid (struct res_id *id, const unsigned char *data,
- unsigned long length, int big_endian)
-{
- int first;
-
- if (length < 2)
- toosmall (_("resource ID"));
-
- first = get_16 (big_endian, data);
- if (first == 0xffff)
- {
- if (length < 4)
- toosmall (_("resource ID"));
- id->named = 0;
- id->u.id = get_16 (big_endian, data + 2);
- return 4;
- }
- else
- {
- id->named = 1;
- id->u.n.name = get_unicode (data, length, big_endian, &id->u.n.length);
- return id->u.n.length * 2 + 2;
- }
-}
-
-/* Convert a resource which just stores uninterpreted data from
- binary. */
-
-struct res_resource *
-bin_to_res_generic (enum res_type type, const unsigned char *data,
- unsigned long length)
-{
- struct res_resource *r;
-
- r = (struct res_resource *) res_alloc (sizeof *r);
- r->type = type;
- r->u.data.data = data;
- r->u.data.length = length;
-
- return r;
-}
-
-/* Convert a cursor resource from binary. */
-
-struct res_resource *
-bin_to_res_cursor (const unsigned char *data, unsigned long length,
- int big_endian)
-{
- struct cursor *c;
- struct res_resource *r;
-
- if (length < 4)
- toosmall (_("cursor"));
-
- c = (struct cursor *) res_alloc (sizeof *c);
- c->xhotspot = get_16 (big_endian, data);
- c->yhotspot = get_16 (big_endian, data + 2);
- c->length = length - 4;
- c->data = data + 4;
-
- r = (struct res_resource *) res_alloc (sizeof *r);
- r->type = RES_TYPE_CURSOR;
- r->u.cursor = c;
-
- return r;
-}
-
-/* Convert a menu resource from binary. */
-
-struct res_resource *
-bin_to_res_menu (const unsigned char *data, unsigned long length,
- int big_endian)
-{
- struct res_resource *r;
- struct menu *m;
- int version, read;
-
- r = (struct res_resource *) res_alloc (sizeof *r);
- r->type = RES_TYPE_MENU;
-
- m = (struct menu *) res_alloc (sizeof *m);
- r->u.menu = m;
-
- if (length < 2)
- toosmall (_("menu header"));
-
- version = get_16 (big_endian, data);
-
- if (version == 0)
- {
- if (length < 4)
- toosmall (_("menu header"));
- m->help = 0;
- m->items = bin_to_res_menuitems (data + 4, length - 4, big_endian,
- &read);
- }
- else if (version == 1)
- {
- unsigned int offset;
-
- if (length < 8)
- toosmall (_("menuex header"));
- m->help = get_32 (big_endian, data + 4);
- offset = get_16 (big_endian, data + 2);
- if (offset + 4 >= length)
- toosmall (_("menuex offset"));
- m->items = bin_to_res_menuexitems (data + 4 + offset,
- length - (4 + offset),
- big_endian,
- &read);
- }
- else
- fatal (_("unsupported menu version %d"), version);
-
- return r;
-}
-
-/* Convert menu items from binary. */
-
-static struct menuitem *
-bin_to_res_menuitems (const unsigned char *data, unsigned long length,
- int big_endian, int *read)
-{
- struct menuitem *first, **pp;
-
- first = NULL;
- pp = &first;
-
- *read = 0;
-
- while (length > 0)
- {
- int flags, slen, itemlen;
- unsigned int stroff;
- struct menuitem *mi;
-
- if (length < 4)
- toosmall (_("menuitem header"));
-
- mi = (struct menuitem *) res_alloc (sizeof *mi);
- mi->state = 0;
- mi->help = 0;
-
- flags = get_16 (big_endian, data);
- mi->type = flags &~ (MENUITEM_POPUP | MENUITEM_ENDMENU);
-
- if ((flags & MENUITEM_POPUP) == 0)
- stroff = 4;
- else
- stroff = 2;
-
- if (length < stroff + 2)
- toosmall (_("menuitem header"));
-
- if (get_16 (big_endian, data + stroff) == 0)
- {
- slen = 0;
- mi->text = NULL;
- }
- else
- mi->text = get_unicode (data + stroff, length - stroff, big_endian,
- &slen);
-
- itemlen = stroff + slen * 2 + 2;
-
- if ((flags & MENUITEM_POPUP) == 0)
- {
- mi->popup = NULL;
- mi->id = get_16 (big_endian, data + 2);
- }
- else
- {
- int subread;
-
- mi->id = 0;
- mi->popup = bin_to_res_menuitems (data + itemlen, length - itemlen,
- big_endian, &subread);
- itemlen += subread;
- }
-
- mi->next = NULL;
- *pp = mi;
- pp = &mi->next;
-
- data += itemlen;
- length -= itemlen;
- *read += itemlen;
-
- if ((flags & MENUITEM_ENDMENU) != 0)
- return first;
- }
-
- return first;
-}
-
-/* Convert menuex items from binary. */
-
-static struct menuitem *
-bin_to_res_menuexitems (const unsigned char *data, unsigned long length,
- int big_endian, int *read)
-{
- struct menuitem *first, **pp;
-
- first = NULL;
- pp = &first;
-
- *read = 0;
-
- while (length > 0)
- {
- int flags, slen;
- unsigned int itemlen;
- struct menuitem *mi;
-
- if (length < 14)
- toosmall (_("menuitem header"));
-
- mi = (struct menuitem *) res_alloc (sizeof *mi);
- mi->type = get_32 (big_endian, data);
- mi->state = get_32 (big_endian, data + 4);
- mi->id = get_16 (big_endian, data + 8);
-
- flags = get_16 (big_endian, data + 10);
-
- if (get_16 (big_endian, data + 12) == 0)
- {
- slen = 0;
- mi->text = NULL;
- }
- else
- mi->text = get_unicode (data + 12, length - 12, big_endian, &slen);
-
- itemlen = 12 + slen * 2 + 2;
- itemlen = (itemlen + 3) &~ 3;
-
- if ((flags & 1) == 0)
- {
- mi->popup = NULL;
- mi->help = 0;
- }
- else
- {
- int subread;
-
- if (length < itemlen + 4)
- toosmall (_("menuitem"));
- mi->help = get_32 (big_endian, data + itemlen);
- itemlen += 4;
-
- mi->popup = bin_to_res_menuexitems (data + itemlen,
- length - itemlen,
- big_endian, &subread);
- itemlen += subread;
- }
-
- mi->next = NULL;
- *pp = mi;
- pp = &mi->next;
-
- data += itemlen;
- length -= itemlen;
- *read += itemlen;
-
- if ((flags & 0x80) != 0)
- return first;
- }
-
- return first;
-}
-
-/* Convert a dialog resource from binary. */
-
-static struct res_resource *
-bin_to_res_dialog (const unsigned char *data, unsigned long length,
- int big_endian)
-{
- int signature;
- struct dialog *d;
- int c, sublen, i;
- unsigned int off;
- struct dialog_control **pp;
- struct res_resource *r;
-
- if (length < 18)
- toosmall (_("dialog header"));
-
- d = (struct dialog *) res_alloc (sizeof *d);
-
- signature = get_16 (big_endian, data + 2);
- if (signature != 0xffff)
- {
- d->ex = NULL;
- d->style = get_32 (big_endian, data);
- d->exstyle = get_32 (big_endian, data + 4);
- off = 8;
- }
- else
- {
- int version;
-
- version = get_16 (big_endian, data);
- if (version != 1)
- fatal (_("unexpected DIALOGEX version %d"), version);
-
- d->ex = (struct dialog_ex *) res_alloc (sizeof (struct dialog_ex));
- d->ex->help = get_32 (big_endian, data + 4);
- d->exstyle = get_32 (big_endian, data + 8);
- d->style = get_32 (big_endian, data + 12);
- off = 16;
- }
-
- if (length < off + 10)
- toosmall (_("dialog header"));
-
- c = get_16 (big_endian, data + off);
- d->x = get_16 (big_endian, data + off + 2);
- d->y = get_16 (big_endian, data + off + 4);
- d->width = get_16 (big_endian, data + off + 6);
- d->height = get_16 (big_endian, data + off + 8);
-
- off += 10;
-
- sublen = get_resid (&d->menu, data + off, length - off, big_endian);
- off += sublen;
-
- sublen = get_resid (&d->class, data + off, length - off, big_endian);
- off += sublen;
-
- d->caption = get_unicode (data + off, length - off, big_endian, &sublen);
- off += sublen * 2 + 2;
- if (sublen == 0)
- d->caption = NULL;
-
- if ((d->style & DS_SETFONT) == 0)
- {
- d->pointsize = 0;
- d->font = NULL;
- if (d->ex != NULL)
- {
- d->ex->weight = 0;
- d->ex->italic = 0;
- d->ex->charset = 1; /* Default charset. */
- }
- }
- else
- {
- if (length < off + 2)
- toosmall (_("dialog font point size"));
-
- d->pointsize = get_16 (big_endian, data + off);
- off += 2;
-
- if (d->ex != NULL)
- {
- if (length < off + 4)
- toosmall (_("dialogex font information"));
- d->ex->weight = get_16 (big_endian, data + off);
- d->ex->italic = get_8 (data + off + 2);
- d->ex->charset = get_8 (data + off + 3);
- off += 4;
- }
-
- d->font = get_unicode (data + off, length - off, big_endian, &sublen);
- off += sublen * 2 + 2;
- }
-
- d->controls = NULL;
- pp = &d->controls;
-
- for (i = 0; i < c; i++)
- {
- struct dialog_control *dc;
- int datalen;
-
- off = (off + 3) &~ 3;
-
- dc = (struct dialog_control *) res_alloc (sizeof *dc);
-
- if (d->ex == NULL)
- {
- if (length < off + 8)
- toosmall (_("dialog control"));
-
- dc->style = get_32 (big_endian, data + off);
- dc->exstyle = get_32 (big_endian, data + off + 4);
- dc->help = 0;
- off += 8;
- }
- else
- {
- if (length < off + 12)
- toosmall (_("dialogex control"));
- dc->help = get_32 (big_endian, data + off);
- dc->exstyle = get_32 (big_endian, data + off + 4);
- dc->style = get_32 (big_endian, data + off + 8);
- off += 12;
- }
-
- if (length < off + 10)
- toosmall (_("dialog control"));
-
- dc->x = get_16 (big_endian, data + off);
- dc->y = get_16 (big_endian, data + off + 2);
- dc->width = get_16 (big_endian, data + off + 4);
- dc->height = get_16 (big_endian, data + off + 6);
-
- if (d->ex != NULL)
- dc->id = get_32 (big_endian, data + off + 8);
- else
- dc->id = get_16 (big_endian, data + off + 8);
-
- off += 10 + (d->ex != NULL ? 2 : 0);
-
- sublen = get_resid (&dc->class, data + off, length - off, big_endian);
- off += sublen;
-
- sublen = get_resid (&dc->text, data + off, length - off, big_endian);
- off += sublen;
-
- if (length < off + 2)
- toosmall (_("dialog control end"));
-
- datalen = get_16 (big_endian, data + off);
- off += 2;
-
- if (datalen == 0)
- dc->data = NULL;
- else
- {
- off = (off + 3) &~ 3;
-
- if (length < off + datalen)
- toosmall (_("dialog control data"));
-
- dc->data = ((struct rcdata_item *)
- res_alloc (sizeof (struct rcdata_item)));
- dc->data->next = NULL;
- dc->data->type = RCDATA_BUFFER;
- dc->data->u.buffer.length = datalen;
- dc->data->u.buffer.data = data + off;
-
- off += datalen;
- }
-
- dc->next = NULL;
- *pp = dc;
- pp = &dc->next;
- }
-
- r = (struct res_resource *) res_alloc (sizeof *r);
- r->type = RES_TYPE_DIALOG;
- r->u.dialog = d;
-
- return r;
-}
-
-/* Convert a stringtable resource from binary. */
-
-static struct res_resource *
-bin_to_res_string (const unsigned char *data, unsigned long length,
- int big_endian)
-{
- struct stringtable *st;
- int i;
- struct res_resource *r;
-
- st = (struct stringtable *) res_alloc (sizeof *st);
-
- for (i = 0; i < 16; i++)
- {
- unsigned int slen;
-
- if (length < 2)
- toosmall (_("stringtable string length"));
- slen = get_16 (big_endian, data);
- st->strings[i].length = slen;
-
- if (slen > 0)
- {
- unichar *s;
- unsigned int j;
-
- if (length < 2 + 2 * slen)
- toosmall (_("stringtable string"));
-
- s = (unichar *) res_alloc (slen * sizeof (unichar));
- st->strings[i].string = s;
-
- for (j = 0; j < slen; j++)
- s[j] = get_16 (big_endian, data + 2 + j * 2);
- }
-
- data += 2 + 2 * slen;
- length -= 2 + 2 * slen;
- }
-
- r = (struct res_resource *) res_alloc (sizeof *r);
- r->type = RES_TYPE_STRINGTABLE;
- r->u.stringtable = st;
-
- return r;
-}
-
-/* Convert a fontdir resource from binary. */
-
-static struct res_resource *
-bin_to_res_fontdir (const unsigned char *data, unsigned long length,
- int big_endian)
-{
- int c, i;
- struct fontdir *first, **pp;
- struct res_resource *r;
-
- if (length < 2)
- toosmall (_("fontdir header"));
-
- c = get_16 (big_endian, data);
-
- first = NULL;
- pp = &first;
-
- for (i = 0; i < c; i++)
- {
- struct fontdir *fd;
- unsigned int off;
-
- if (length < 56)
- toosmall (_("fontdir"));
-
- fd = (struct fontdir *) res_alloc (sizeof *fd);
- fd->index = get_16 (big_endian, data);
-
- /* To work out the length of the fontdir data, we must get the
- length of the device name and face name strings, even though
- we don't store them in the fontdir structure. The
- documentation says that these are NULL terminated char
- strings, not Unicode strings. */
-
- off = 56;
-
- while (off < length && data[off] != '\0')
- ++off;
- if (off >= length)
- toosmall (_("fontdir device name"));
- ++off;
-
- while (off < length && data[off] != '\0')
- ++off;
- if (off >= length)
- toosmall (_("fontdir face name"));
- ++off;
-
- fd->length = off;
- fd->data = data;
-
- fd->next = NULL;
- *pp = fd;
- pp = &fd->next;
-
- /* The documentation does not indicate that any rounding is
- required. */
-
- data += off;
- length -= off;
- }
-
- r = (struct res_resource *) res_alloc (sizeof *r);
- r->type = RES_TYPE_FONTDIR;
- r->u.fontdir = first;
-
- return r;
-}
-
-/* Convert an accelerators resource from binary. */
-
-static struct res_resource *
-bin_to_res_accelerators (const unsigned char *data, unsigned long length,
- int big_endian)
-{
- struct accelerator *first, **pp;
- struct res_resource *r;
-
- first = NULL;
- pp = &first;
-
- while (1)
- {
- struct accelerator *a;
-
- if (length < 8)
- toosmall (_("accelerator"));
-
- a = (struct accelerator *) res_alloc (sizeof *a);
-
- a->flags = get_16 (big_endian, data);
- a->key = get_16 (big_endian, data + 2);
- a->id = get_16 (big_endian, data + 4);
-
- a->next = NULL;
- *pp = a;
- pp = &a->next;
-
- if ((a->flags & ACC_LAST) != 0)
- break;
-
- data += 8;
- length -= 8;
- }
-
- r = (struct res_resource *) res_alloc (sizeof *r);
- r->type = RES_TYPE_ACCELERATOR;
- r->u.acc = first;
-
- return r;
-}
-
-/* Convert an rcdata resource from binary. */
-
-static struct res_resource *
-bin_to_res_rcdata (const unsigned char *data, unsigned long length,
- int big_endian ATTRIBUTE_UNUSED)
-{
- struct rcdata_item *ri;
- struct res_resource *r;
-
- ri = (struct rcdata_item *) res_alloc (sizeof *ri);
-
- ri->next = NULL;
- ri->type = RCDATA_BUFFER;
- ri->u.buffer.length = length;
- ri->u.buffer.data = data;
-
- r = (struct res_resource *) res_alloc (sizeof *r);
- r->type = RES_TYPE_RCDATA;
- r->u.rcdata = ri;
-
- return r;
-}
-
-/* Convert a group cursor resource from binary. */
-
-static struct res_resource *
-bin_to_res_group_cursor (const unsigned char *data, unsigned long length,
- int big_endian)
-{
- int type, c, i;
- struct group_cursor *first, **pp;
- struct res_resource *r;
-
- if (length < 6)
- toosmall (_("group cursor header"));
-
- type = get_16 (big_endian, data + 2);
- if (type != 2)
- fatal (_("unexpected group cursor type %d"), type);
-
- c = get_16 (big_endian, data + 4);
-
- data += 6;
- length -= 6;
-
- first = NULL;
- pp = &first;
-
- for (i = 0; i < c; i++)
- {
- struct group_cursor *gc;
-
- if (length < 14)
- toosmall (_("group cursor"));
-
- gc = (struct group_cursor *) res_alloc (sizeof *gc);
-
- gc->width = get_16 (big_endian, data);
- gc->height = get_16 (big_endian, data + 2);
- gc->planes = get_16 (big_endian, data + 4);
- gc->bits = get_16 (big_endian, data + 6);
- gc->bytes = get_32 (big_endian, data + 8);
- gc->index = get_16 (big_endian, data + 12);
-
- gc->next = NULL;
- *pp = gc;
- pp = &gc->next;
-
- data += 14;
- length -= 14;
- }
-
- r = (struct res_resource *) res_alloc (sizeof *r);
- r->type = RES_TYPE_GROUP_CURSOR;
- r->u.group_cursor = first;
-
- return r;
-}
-
-/* Convert a group icon resource from binary. */
-
-static struct res_resource *
-bin_to_res_group_icon (const unsigned char *data, unsigned long length,
- int big_endian)
-{
- int type, c, i;
- struct group_icon *first, **pp;
- struct res_resource *r;
-
- if (length < 6)
- toosmall (_("group icon header"));
-
- type = get_16 (big_endian, data + 2);
- if (type != 1)
- fatal (_("unexpected group icon type %d"), type);
-
- c = get_16 (big_endian, data + 4);
-
- data += 6;
- length -= 6;
-
- first = NULL;
- pp = &first;
-
- for (i = 0; i < c; i++)
- {
- struct group_icon *gi;
-
- if (length < 14)
- toosmall (_("group icon"));
-
- gi = (struct group_icon *) res_alloc (sizeof *gi);
-
- gi->width = data[0];
- gi->height = data[1];
- gi->colors = data[2];
- gi->planes = get_16 (big_endian, data + 4);
- gi->bits = get_16 (big_endian, data + 6);
- gi->bytes = get_32 (big_endian, data + 8);
- gi->index = get_16 (big_endian, data + 12);
-
- gi->next = NULL;
- *pp = gi;
- pp = &gi->next;
-
- data += 14;
- length -= 14;
- }
-
- r = (struct res_resource *) res_alloc (sizeof *r);
- r->type = RES_TYPE_GROUP_ICON;
- r->u.group_icon = first;
-
- return r;
-}
-
-/* Extract data from a version header. If KEY is not NULL, then the
- key must be KEY; otherwise, the key is returned in *PKEY. This
- sets *LEN to the total length, *VALLEN to the value length, *TYPE
- to the type, and *OFF to the offset to the children. */
-
-static void
-get_version_header (const unsigned char *data, unsigned long length,
- int big_endian, const char *key, unichar **pkey,
- int *len, int *vallen, int *type, int *off)
-{
- if (length < 8)
- toosmall (key);
-
- *len = get_16 (big_endian, data);
- *vallen = get_16 (big_endian, data + 2);
- *type = get_16 (big_endian, data + 4);
-
- *off = 6;
-
- length -= 6;
- data += 6;
-
- if (key == NULL)
- {
- int sublen;
-
- *pkey = get_unicode (data, length, big_endian, &sublen);
- *off += sublen * 2 + 2;
- }
- else
- {
- while (1)
- {
- if (length < 2)
- toosmall (key);
- if (get_16 (big_endian, data) != (unsigned char) *key)
- fatal (_("unexpected version string"));
-
- *off += 2;
- length -= 2;
- data += 2;
-
- if (*key == '\0')
- break;
-
- ++key;
- }
- }
-
- *off = (*off + 3) &~ 3;
-}
-
-/* Convert a version resource from binary. */
-
-static struct res_resource *
-bin_to_res_version (const unsigned char *data, unsigned long length,
- int big_endian)
-{
- int verlen, vallen, type, off;
- struct fixed_versioninfo *fi;
- struct ver_info *first, **pp;
- struct versioninfo *v;
- struct res_resource *r;
-
- get_version_header (data, length, big_endian, "VS_VERSION_INFO",
- (unichar **) NULL, &verlen, &vallen, &type, &off);
-
- if ((unsigned int) verlen != length)
- fatal (_("version length %d does not match resource length %lu"),
- verlen, length);
-
- if (type != 0)
- fatal (_("unexpected version type %d"), type);
-
- data += off;
- length -= off;
-
- if (vallen == 0)
- fi = NULL;
- else
- {
- unsigned long signature, fiv;
-
- if (vallen != 52)
- fatal (_("unexpected fixed version information length %d"), vallen);
-
- if (length < 52)
- toosmall (_("fixed version info"));
-
- signature = get_32 (big_endian, data);
- if (signature != 0xfeef04bd)
- fatal (_("unexpected fixed version signature %lu"), signature);
-
- fiv = get_32 (big_endian, data + 4);
- if (fiv != 0 && fiv != 0x10000)
- fatal (_("unexpected fixed version info version %lu"), fiv);
-
- fi = (struct fixed_versioninfo *) res_alloc (sizeof *fi);
-
- fi->file_version_ms = get_32 (big_endian, data + 8);
- fi->file_version_ls = get_32 (big_endian, data + 12);
- fi->product_version_ms = get_32 (big_endian, data + 16);
- fi->product_version_ls = get_32 (big_endian, data + 20);
- fi->file_flags_mask = get_32 (big_endian, data + 24);
- fi->file_flags = get_32 (big_endian, data + 28);
- fi->file_os = get_32 (big_endian, data + 32);
- fi->file_type = get_32 (big_endian, data + 36);
- fi->file_subtype = get_32 (big_endian, data + 40);
- fi->file_date_ms = get_32 (big_endian, data + 44);
- fi->file_date_ls = get_32 (big_endian, data + 48);
-
- data += 52;
- length -= 52;
- }
-
- first = NULL;
- pp = &first;
-
- while (length > 0)
- {
- struct ver_info *vi;
- int ch;
-
- if (length < 8)
- toosmall (_("version var info"));
-
- vi = (struct ver_info *) res_alloc (sizeof *vi);
-
- ch = get_16 (big_endian, data + 6);
-
- if (ch == 'S')
- {
- struct ver_stringinfo **ppvs;
-
- vi->type = VERINFO_STRING;
-
- get_version_header (data, length, big_endian, "StringFileInfo",
- (unichar **) NULL, &verlen, &vallen, &type,
- &off);
-
- if (vallen != 0)
- fatal (_("unexpected stringfileinfo value length %d"), vallen);
-
- data += off;
- length -= off;
-
- get_version_header (data, length, big_endian, (const char *) NULL,
- &vi->u.string.language, &verlen, &vallen,
- &type, &off);
-
- if (vallen != 0)
- fatal (_("unexpected version stringtable value length %d"), vallen);
-
- data += off;
- length -= off;
- verlen -= off;
-
- vi->u.string.strings = NULL;
- ppvs = &vi->u.string.strings;
-
- /* It's convenient to round verlen to a 4 byte alignment,
- since we round the subvariables in the loop. */
- verlen = (verlen + 3) &~ 3;
-
- while (verlen > 0)
- {
- struct ver_stringinfo *vs;
- int subverlen, vslen, valoff;
-
- vs = (struct ver_stringinfo *) res_alloc (sizeof *vs);
-
- get_version_header (data, length, big_endian,
- (const char *) NULL, &vs->key, &subverlen,
- &vallen, &type, &off);
-
- subverlen = (subverlen + 3) &~ 3;
-
- data += off;
- length -= off;
-
- vs->value = get_unicode (data, length, big_endian, &vslen);
- valoff = vslen * 2 + 2;
- valoff = (valoff + 3) &~ 3;
-
- if (off + valoff != subverlen)
- fatal (_("unexpected version string length %d != %d + %d"),
- subverlen, off, valoff);
-
- vs->next = NULL;
- *ppvs = vs;
- ppvs = &vs->next;
-
- data += valoff;
- length -= valoff;
-
- if (verlen < subverlen)
- fatal (_("unexpected version string length %d < %d"),
- verlen, subverlen);
-
- verlen -= subverlen;
- }
- }
- else if (ch == 'V')
- {
- struct ver_varinfo **ppvv;
-
- vi->type = VERINFO_VAR;
-
- get_version_header (data, length, big_endian, "VarFileInfo",
- (unichar **) NULL, &verlen, &vallen, &type,
- &off);
-
- if (vallen != 0)
- fatal (_("unexpected varfileinfo value length %d"), vallen);
-
- data += off;
- length -= off;
-
- get_version_header (data, length, big_endian, (const char *) NULL,
- &vi->u.var.key, &verlen, &vallen, &type, &off);
-
- data += off;
- length -= off;
-
- vi->u.var.var = NULL;
- ppvv = &vi->u.var.var;
-
- while (vallen > 0)
- {
- struct ver_varinfo *vv;
-
- if (length < 4)
- toosmall (_("version varfileinfo"));
-
- vv = (struct ver_varinfo *) res_alloc (sizeof *vv);
-
- vv->language = get_16 (big_endian, data);
- vv->charset = get_16 (big_endian, data + 2);
-
- vv->next = NULL;
- *ppvv = vv;
- ppvv = &vv->next;
-
- data += 4;
- length -= 4;
-
- if (vallen < 4)
- fatal (_("unexpected version value length %d"), vallen);
-
- vallen -= 4;
- }
- }
- else
- fatal (_("unexpected version string"));
-
- vi->next = NULL;
- *pp = vi;
- pp = &vi->next;
- }
-
- v = (struct versioninfo *) res_alloc (sizeof *v);
- v->fixed = fi;
- v->var = first;
-
- r = (struct res_resource *) res_alloc (sizeof *r);
- r->type = RES_TYPE_VERSIONINFO;
- r->u.versioninfo = v;
-
- return r;
-}
-
-/* Convert an arbitrary user defined resource from binary. */
-
-static struct res_resource *
-bin_to_res_userdata (const unsigned char *data, unsigned long length,
- int big_endian ATTRIBUTE_UNUSED)
-{
- struct rcdata_item *ri;
- struct res_resource *r;
-
- ri = (struct rcdata_item *) res_alloc (sizeof *ri);
-
- ri->next = NULL;
- ri->type = RCDATA_BUFFER;
- ri->u.buffer.length = length;
- ri->u.buffer.data = data;
-
- r = (struct res_resource *) res_alloc (sizeof *r);
- r->type = RES_TYPE_USERDATA;
- r->u.rcdata = ri;
-
- return r;
-}
-
-/* Macros to swap out values. */
-
-#define put_8(v, s) (*((unsigned char *) (s)) = (unsigned char) (v))
-#define put_16(be, v, s) ((be) ? bfd_putb16 ((v), (s)) : bfd_putl16 ((v), (s)))
-#define put_32(be, v, s) ((be) ? bfd_putb32 ((v), (s)) : bfd_putl32 ((v), (s)))
-
-/* Local functions used to convert resources to binary format. */
-
-static void dword_align_bin (struct bindata ***, unsigned long *);
-static struct bindata *resid_to_bin (struct res_id, int);
-static struct bindata *unicode_to_bin (const unichar *, int);
-static struct bindata *res_to_bin_accelerator
- (const struct accelerator *, int);
-static struct bindata *res_to_bin_cursor
- (const struct cursor *, int);
-static struct bindata *res_to_bin_group_cursor
- (const struct group_cursor *, int);
-static struct bindata *res_to_bin_dialog
- (const struct dialog *, int);
-static struct bindata *res_to_bin_fontdir
- (const struct fontdir *, int);
-static struct bindata *res_to_bin_group_icon
- (const struct group_icon *, int);
-static struct bindata *res_to_bin_menu
- (const struct menu *, int);
-static struct bindata *res_to_bin_menuitems
- (const struct menuitem *, int);
-static struct bindata *res_to_bin_menuexitems
- (const struct menuitem *, int);
-static struct bindata *res_to_bin_rcdata
- (const struct rcdata_item *, int);
-static struct bindata *res_to_bin_stringtable
- (const struct stringtable *, int);
-static struct bindata *string_to_unicode_bin (const char *, int);
-static struct bindata *res_to_bin_versioninfo
- (const struct versioninfo *, int);
-static struct bindata *res_to_bin_generic
- (unsigned long, const unsigned char *);
-
-/* Convert a resource to binary. */
-
-struct bindata *
-res_to_bin (const struct res_resource *res, int big_endian)
-{
- switch (res->type)
- {
- default:
- abort ();
- case RES_TYPE_BITMAP:
- case RES_TYPE_FONT:
- case RES_TYPE_ICON:
- case RES_TYPE_MESSAGETABLE:
- return res_to_bin_generic (res->u.data.length, res->u.data.data);
- case RES_TYPE_ACCELERATOR:
- return res_to_bin_accelerator (res->u.acc, big_endian);
- case RES_TYPE_CURSOR:
- return res_to_bin_cursor (res->u.cursor, big_endian);
- case RES_TYPE_GROUP_CURSOR:
- return res_to_bin_group_cursor (res->u.group_cursor, big_endian);
- case RES_TYPE_DIALOG:
- return res_to_bin_dialog (res->u.dialog, big_endian);
- case RES_TYPE_FONTDIR:
- return res_to_bin_fontdir (res->u.fontdir, big_endian);
- case RES_TYPE_GROUP_ICON:
- return res_to_bin_group_icon (res->u.group_icon, big_endian);
- case RES_TYPE_MENU:
- return res_to_bin_menu (res->u.menu, big_endian);
- case RES_TYPE_RCDATA:
- return res_to_bin_rcdata (res->u.rcdata, big_endian);
- case RES_TYPE_STRINGTABLE:
- return res_to_bin_stringtable (res->u.stringtable, big_endian);
- case RES_TYPE_USERDATA:
- return res_to_bin_rcdata (res->u.rcdata, big_endian);
- case RES_TYPE_VERSIONINFO:
- return res_to_bin_versioninfo (res->u.versioninfo, big_endian);
- }
-}
-
-/* Align to a 32 bit boundary. PPP points to the of a list of bindata
- structures. LENGTH points to the length of the structures. If
- necessary, this adds a new bindata to bring length up to a 32 bit
- boundary. It updates *PPP and *LENGTH. */
-
-static void
-dword_align_bin (struct bindata ***ppp, unsigned long *length)
-{
- int add;
- struct bindata *d;
-
- if ((*length & 3) == 0)
- return;
-
- add = 4 - (*length & 3);
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = add;
- d->data = (unsigned char *) reswr_alloc (add);
- memset (d->data, 0, add);
-
- d->next = NULL;
- **ppp = d;
- *ppp = &(**ppp)->next;
-
- *length += add;
-}
-
-/* Convert a resource ID to binary. This always returns exactly one
- bindata structure. */
-
-static struct bindata *
-resid_to_bin (struct res_id id, int big_endian)
-{
- struct bindata *d;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
-
- if (! id.named)
- {
- d->length = 4;
- d->data = (unsigned char *) reswr_alloc (d->length);
- put_16 (big_endian, 0xffff, d->data);
- put_16 (big_endian, id.u.id, d->data + 2);
- }
- else
- {
- int i;
-
- d->length = id.u.n.length * 2 + 2;
- d->data = (unsigned char *) reswr_alloc (d->length);
- for (i = 0; i < id.u.n.length; i++)
- put_16 (big_endian, id.u.n.name[i], d->data + i * 2);
- put_16 (big_endian, 0, d->data + i * 2);
- }
-
- d->next = NULL;
-
- return d;
-}
-
-/* Convert a null terminated unicode string to binary. This always
- returns exactly one bindata structure. */
-
-static struct bindata *
-unicode_to_bin (const unichar *str, int big_endian)
-{
- int len;
- struct bindata *d;
-
- len = 0;
- if (str != NULL)
- {
- const unichar *s;
-
- for (s = str; *s != 0; s++)
- ++len;
- }
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = len * 2 + 2;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- if (str == NULL)
- put_16 (big_endian, 0, d->data);
- else
- {
- const unichar *s;
- int i;
-
- for (s = str, i = 0; *s != 0; s++, i++)
- put_16 (big_endian, *s, d->data + i * 2);
- put_16 (big_endian, 0, d->data + i * 2);
- }
-
- d->next = NULL;
-
- return d;
-}
-
-/* Convert an accelerator resource to binary. */
-
-static struct bindata *
-res_to_bin_accelerator (const struct accelerator *accelerators,
- int big_endian)
-{
- struct bindata *first, **pp;
- const struct accelerator *a;
-
- first = NULL;
- pp = &first;
-
- for (a = accelerators; a != NULL; a = a->next)
- {
- struct bindata *d;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = 8;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- put_16 (big_endian,
- a->flags | (a->next != NULL ? 0 : ACC_LAST),
- d->data);
- put_16 (big_endian, a->key, d->data + 2);
- put_16 (big_endian, a->id, d->data + 4);
- put_16 (big_endian, 0, d->data + 6);
-
- d->next = NULL;
- *pp = d;
- pp = &d->next;
- }
-
- return first;
-}
-
-/* Convert a cursor resource to binary. */
-
-static struct bindata *
-res_to_bin_cursor (const struct cursor *c, int big_endian)
-{
- struct bindata *d;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = 4;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- put_16 (big_endian, c->xhotspot, d->data);
- put_16 (big_endian, c->yhotspot, d->data + 2);
-
- d->next = (struct bindata *) reswr_alloc (sizeof *d);
- d->next->length = c->length;
- d->next->data = (unsigned char *) c->data;
- d->next->next = NULL;
-
- return d;
-}
-
-/* Convert a group cursor resource to binary. */
-
-static struct bindata *
-res_to_bin_group_cursor (const struct group_cursor *group_cursors,
- int big_endian)
-{
- struct bindata *first, **pp;
- int c;
- const struct group_cursor *gc;
-
- first = (struct bindata *) reswr_alloc (sizeof *first);
- first->length = 6;
- first->data = (unsigned char *) reswr_alloc (first->length);
-
- put_16 (big_endian, 0, first->data);
- put_16 (big_endian, 2, first->data + 2);
-
- first->next = NULL;
- pp = &first->next;
-
- c = 0;
- for (gc = group_cursors; gc != NULL; gc = gc->next)
- {
- struct bindata *d;
-
- ++c;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = 14;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- put_16 (big_endian, gc->width, d->data);
- put_16 (big_endian, gc->height, d->data + 2);
- put_16 (big_endian, gc->planes, d->data + 4);
- put_16 (big_endian, gc->bits, d->data + 6);
- put_32 (big_endian, gc->bytes, d->data + 8);
- put_16 (big_endian, gc->index, d->data + 12);
-
- d->next = NULL;
- *pp = d;
- pp = &d->next;
- }
-
- put_16 (big_endian, c, first->data + 4);
-
- return first;
-}
-
-/* Convert a dialog resource to binary. */
-
-static struct bindata *
-res_to_bin_dialog (const struct dialog *dialog, int big_endian)
-{
- int dialogex;
- struct bindata *first, **pp;
- unsigned long length;
- int off, c;
- struct dialog_control *dc;
-
- dialogex = extended_dialog (dialog);
-
- first = (struct bindata *) reswr_alloc (sizeof *first);
- first->length = dialogex ? 26 : 18;
- first->data = (unsigned char *) reswr_alloc (first->length);
-
- length = first->length;
-
- if (! dialogex)
- {
- put_32 (big_endian, dialog->style, first->data);
- put_32 (big_endian, dialog->exstyle, first->data + 4);
- off = 8;
- }
- else
- {
- put_16 (big_endian, 1, first->data);
- put_16 (big_endian, 0xffff, first->data + 2);
-
- if (dialog->ex == NULL)
- put_32 (big_endian, 0, first->data + 4);
- else
- put_32 (big_endian, dialog->ex->help, first->data + 4);
- put_32 (big_endian, dialog->exstyle, first->data + 8);
- put_32 (big_endian, dialog->style, first->data + 12);
- off = 16;
- }
-
- put_16 (big_endian, dialog->x, first->data + off + 2);
- put_16 (big_endian, dialog->y, first->data + off + 4);
- put_16 (big_endian, dialog->width, first->data + off + 6);
- put_16 (big_endian, dialog->height, first->data + off + 8);
-
- pp = &first->next;
-
- *pp = resid_to_bin (dialog->menu, big_endian);
- length += (*pp)->length;
- pp = &(*pp)->next;
-
- *pp = resid_to_bin (dialog->class, big_endian);
- length += (*pp)->length;
- pp = &(*pp)->next;
-
- *pp = unicode_to_bin (dialog->caption, big_endian);
- length += (*pp)->length;
- pp = &(*pp)->next;
-
- if ((dialog->style & DS_SETFONT) != 0)
- {
- struct bindata *d;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = dialogex ? 6 : 2;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- length += d->length;
-
- put_16 (big_endian, dialog->pointsize, d->data);
-
- if (dialogex)
- {
- if (dialog->ex == NULL)
- {
- put_16 (big_endian, 0, d->data + 2);
- put_8 (0, d->data + 4);
- put_8 (1, d->data + 5);
- }
- else
- {
- put_16 (big_endian, dialog->ex->weight, d->data + 2);
- put_8 (dialog->ex->italic, d->data + 4);
- put_8 (dialog->ex->charset, d->data + 5);
- }
- }
-
- *pp = d;
- pp = &d->next;
-
- *pp = unicode_to_bin (dialog->font, big_endian);
- length += (*pp)->length;
- pp = &(*pp)->next;
- }
-
- c = 0;
- for (dc = dialog->controls; dc != NULL; dc = dc->next)
- {
- struct bindata *d;
- int dcoff;
-
- ++c;
-
- dword_align_bin (&pp, &length);
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = dialogex ? 24 : 18;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- length += d->length;
-
- if (! dialogex)
- {
- put_32 (big_endian, dc->style, d->data);
- put_32 (big_endian, dc->exstyle, d->data + 4);
- dcoff = 8;
- }
- else
- {
- put_32 (big_endian, dc->help, d->data);
- put_32 (big_endian, dc->exstyle, d->data + 4);
- put_32 (big_endian, dc->style, d->data + 8);
- dcoff = 12;
- }
-
- put_16 (big_endian, dc->x, d->data + dcoff);
- put_16 (big_endian, dc->y, d->data + dcoff + 2);
- put_16 (big_endian, dc->width, d->data + dcoff + 4);
- put_16 (big_endian, dc->height, d->data + dcoff + 6);
-
- if (dialogex)
- put_32 (big_endian, dc->id, d->data + dcoff + 8);
- else
- put_16 (big_endian, dc->id, d->data + dcoff + 8);
-
- *pp = d;
- pp = &d->next;
-
- *pp = resid_to_bin (dc->class, big_endian);
- length += (*pp)->length;
- pp = &(*pp)->next;
-
- *pp = resid_to_bin (dc->text, big_endian);
- length += (*pp)->length;
- pp = &(*pp)->next;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = 2;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- length += 2;
-
- d->next = NULL;
- *pp = d;
- pp = &d->next;
-
- if (dc->data == NULL)
- put_16 (big_endian, 0, d->data);
- else
- {
- unsigned long sublen;
-
- dword_align_bin (&pp, &length);
-
- *pp = res_to_bin_rcdata (dc->data, big_endian);
- sublen = 0;
- while (*pp != NULL)
- {
- sublen += (*pp)->length;
- pp = &(*pp)->next;
- }
-
- put_16 (big_endian, sublen, d->data);
-
- length += sublen;
- }
- }
- put_16 (big_endian, c, first->data + off);
-
- return first;
-}
-
-/* Convert a fontdir resource to binary. */
-
-static struct bindata *
-res_to_bin_fontdir (const struct fontdir *fontdirs, int big_endian)
-{
- struct bindata *first, **pp;
- int c;
- const struct fontdir *fd;
-
- first = (struct bindata *) reswr_alloc (sizeof *first);
- first->length = 2;
- first->data = (unsigned char *) reswr_alloc (first->length);
-
- first->next = NULL;
- pp = &first->next;
-
- c = 0;
- for (fd = fontdirs; fd != NULL; fd = fd->next)
- {
- struct bindata *d;
-
- ++c;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = 2;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- put_16 (big_endian, fd->index, d->data);
-
- *pp = d;
- pp = &d->next;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = fd->length;
- d->data = (unsigned char *) fd->data;
-
- d->next = NULL;
- *pp = d;
- pp = &d->next;
- }
-
- put_16 (big_endian, c, first->data);
-
- return first;
-}
-
-/* Convert a group icon resource to binary. */
-
-static struct bindata *
-res_to_bin_group_icon (const struct group_icon *group_icons, int big_endian)
-{
- struct bindata *first, **pp;
- int c;
- const struct group_icon *gi;
-
- first = (struct bindata *) reswr_alloc (sizeof *first);
- first->length = 6;
- first->data = (unsigned char *) reswr_alloc (first->length);
-
- put_16 (big_endian, 0, first->data);
- put_16 (big_endian, 1, first->data + 2);
-
- first->next = NULL;
- pp = &first->next;
-
- c = 0;
- for (gi = group_icons; gi != NULL; gi = gi->next)
- {
- struct bindata *d;
-
- ++c;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = 14;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- d->data[0] = gi->width;
- d->data[1] = gi->height;
- d->data[2] = gi->colors;
- d->data[3] = 0;
- put_16 (big_endian, gi->planes, d->data + 4);
- put_16 (big_endian, gi->bits, d->data + 6);
- put_32 (big_endian, gi->bytes, d->data + 8);
- put_16 (big_endian, gi->index, d->data + 12);
-
- d->next = NULL;
- *pp = d;
- pp = &d->next;
- }
-
- put_16 (big_endian, c, first->data + 4);
-
- return first;
-}
-
-/* Convert a menu resource to binary. */
-
-static struct bindata *
-res_to_bin_menu (const struct menu *menu, int big_endian)
-{
- int menuex;
- struct bindata *d;
-
- menuex = extended_menu (menu);
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = menuex ? 8 : 4;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- if (! menuex)
- {
- put_16 (big_endian, 0, d->data);
- put_16 (big_endian, 0, d->data + 2);
-
- d->next = res_to_bin_menuitems (menu->items, big_endian);
- }
- else
- {
- put_16 (big_endian, 1, d->data);
- put_16 (big_endian, 4, d->data + 2);
- put_32 (big_endian, menu->help, d->data + 4);
-
- d->next = res_to_bin_menuexitems (menu->items, big_endian);
- }
-
- return d;
-}
-
-/* Convert menu items to binary. */
-
-static struct bindata *
-res_to_bin_menuitems (const struct menuitem *items, int big_endian)
-{
- struct bindata *first, **pp;
- const struct menuitem *mi;
-
- first = NULL;
- pp = &first;
-
- for (mi = items; mi != NULL; mi = mi->next)
- {
- struct bindata *d;
- int flags;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = mi->popup == NULL ? 4 : 2;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- flags = mi->type;
- if (mi->next == NULL)
- flags |= MENUITEM_ENDMENU;
- if (mi->popup != NULL)
- flags |= MENUITEM_POPUP;
-
- put_16 (big_endian, flags, d->data);
-
- if (mi->popup == NULL)
- put_16 (big_endian, mi->id, d->data + 2);
-
- *pp = d;
- pp = &d->next;
-
- *pp = unicode_to_bin (mi->text, big_endian);
- pp = &(*pp)->next;
-
- if (mi->popup != NULL)
- {
- *pp = res_to_bin_menuitems (mi->popup, big_endian);
- while (*pp != NULL)
- pp = &(*pp)->next;
- }
- }
-
- return first;
-}
-
-/* Convert menuex items to binary. */
-
-static struct bindata *
-res_to_bin_menuexitems (const struct menuitem *items, int big_endian)
-{
- struct bindata *first, **pp;
- unsigned long length;
- const struct menuitem *mi;
-
- first = NULL;
- pp = &first;
-
- length = 0;
-
- for (mi = items; mi != NULL; mi = mi->next)
- {
- struct bindata *d;
- int flags;
-
- dword_align_bin (&pp, &length);
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = 12;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- length += 12;
-
- put_32 (big_endian, mi->type, d->data);
- put_32 (big_endian, mi->state, d->data + 4);
- put_16 (big_endian, mi->id, d->data + 8);
-
- flags = 0;
- if (mi->next == NULL)
- flags |= 0x80;
- if (mi->popup != NULL)
- flags |= 1;
- put_16 (big_endian, flags, d->data + 10);
-
- *pp = d;
- pp = &d->next;
-
- *pp = unicode_to_bin (mi->text, big_endian);
- length += (*pp)->length;
- pp = &(*pp)->next;
-
- if (mi->popup != NULL)
- {
- dword_align_bin (&pp, &length);
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = 4;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- put_32 (big_endian, mi->help, d->data);
-
- *pp = d;
- pp = &d->next;
-
- *pp = res_to_bin_menuexitems (mi->popup, big_endian);
- while (*pp != NULL)
- {
- length += (*pp)->length;
- pp = &(*pp)->next;
- }
- }
- }
-
- return first;
-}
-
-/* Convert an rcdata resource to binary. This is also used to convert
- other information which happens to be stored in rcdata_item lists
- to binary. */
-
-static struct bindata *
-res_to_bin_rcdata (const struct rcdata_item *items, int big_endian)
-{
- struct bindata *first, **pp;
- const struct rcdata_item *ri;
-
- first = NULL;
- pp = &first;
-
- for (ri = items; ri != NULL; ri = ri->next)
- {
- struct bindata *d;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
-
- switch (ri->type)
- {
- default:
- abort ();
-
- case RCDATA_WORD:
- d->length = 2;
- d->data = (unsigned char *) reswr_alloc (d->length);
- put_16 (big_endian, ri->u.word, d->data);
- break;
-
- case RCDATA_DWORD:
- d->length = 4;
- d->data = (unsigned char *) reswr_alloc (d->length);
- put_32 (big_endian, ri->u.dword, d->data);
- break;
-
- case RCDATA_STRING:
- d->length = ri->u.string.length;
- d->data = (unsigned char *) ri->u.string.s;
- break;
-
- case RCDATA_WSTRING:
- {
- unsigned long i;
-
- d->length = ri->u.wstring.length * 2;
- d->data = (unsigned char *) reswr_alloc (d->length);
- for (i = 0; i < ri->u.wstring.length; i++)
- put_16 (big_endian, ri->u.wstring.w[i], d->data + i * 2);
- break;
- }
-
- case RCDATA_BUFFER:
- d->length = ri->u.buffer.length;
- d->data = (unsigned char *) ri->u.buffer.data;
- break;
- }
-
- d->next = NULL;
- *pp = d;
- pp = &d->next;
- }
-
- return first;
-}
-
-/* Convert a stringtable resource to binary. */
-
-static struct bindata *
-res_to_bin_stringtable (const struct stringtable *st, int big_endian)
-{
- struct bindata *first, **pp;
- int i;
-
- first = NULL;
- pp = &first;
-
- for (i = 0; i < 16; i++)
- {
- int slen, j;
- struct bindata *d;
- unichar *s;
-
- slen = st->strings[i].length;
- s = st->strings[i].string;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = 2 + slen * 2;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- put_16 (big_endian, slen, d->data);
-
- for (j = 0; j < slen; j++)
- put_16 (big_endian, s[j], d->data + 2 + j * 2);
-
- d->next = NULL;
- *pp = d;
- pp = &d->next;
- }
-
- return first;
-}
-
-/* Convert an ASCII string to a unicode binary string. This always
- returns exactly one bindata structure. */
-
-static struct bindata *
-string_to_unicode_bin (const char *s, int big_endian)
-{
- size_t len, i;
- struct bindata *d;
-
- len = strlen (s);
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = len * 2 + 2;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- for (i = 0; i < len; i++)
- put_16 (big_endian, s[i], d->data + i * 2);
- put_16 (big_endian, 0, d->data + i * 2);
-
- d->next = NULL;
-
- return d;
-}
-
-/* Convert a versioninfo resource to binary. */
-
-static struct bindata *
-res_to_bin_versioninfo (const struct versioninfo *versioninfo, int big_endian)
-{
- struct bindata *first, **pp;
- unsigned long length;
- struct ver_info *vi;
-
- first = (struct bindata *) reswr_alloc (sizeof *first);
- first->length = 6;
- first->data = (unsigned char *) reswr_alloc (first->length);
-
- length = 6;
-
- if (versioninfo->fixed == NULL)
- put_16 (big_endian, 0, first->data + 2);
- else
- put_16 (big_endian, 52, first->data + 2);
-
- put_16 (big_endian, 0, first->data + 4);
-
- pp = &first->next;
-
- *pp = string_to_unicode_bin ("VS_VERSION_INFO", big_endian);
- length += (*pp)->length;
- pp = &(*pp)->next;
-
- dword_align_bin (&pp, &length);
-
- if (versioninfo->fixed != NULL)
- {
- const struct fixed_versioninfo *fi;
- struct bindata *d;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = 52;
- d->data = (unsigned char *) reswr_alloc (d->length);
-
- length += 52;
-
- fi = versioninfo->fixed;
-
- put_32 (big_endian, 0xfeef04bd, d->data);
- put_32 (big_endian, 0x10000, d->data + 4);
- put_32 (big_endian, fi->file_version_ms, d->data + 8);
- put_32 (big_endian, fi->file_version_ls, d->data + 12);
- put_32 (big_endian, fi->product_version_ms, d->data + 16);
- put_32 (big_endian, fi->product_version_ls, d->data + 20);
- put_32 (big_endian, fi->file_flags_mask, d->data + 24);
- put_32 (big_endian, fi->file_flags, d->data + 28);
- put_32 (big_endian, fi->file_os, d->data + 32);
- put_32 (big_endian, fi->file_type, d->data + 36);
- put_32 (big_endian, fi->file_subtype, d->data + 40);
- put_32 (big_endian, fi->file_date_ms, d->data + 44);
- put_32 (big_endian, fi->file_date_ls, d->data + 48);
-
- d->next = NULL;
- *pp = d;
- pp = &d->next;
- }
-
- for (vi = versioninfo->var; vi != NULL; vi = vi->next)
- {
- struct bindata *vid;
- unsigned long vilen;
-
- dword_align_bin (&pp, &length);
-
- vid = (struct bindata *) reswr_alloc (sizeof *vid);
- vid->length = 6;
- vid->data = (unsigned char *) reswr_alloc (vid->length);
-
- length += 6;
- vilen = 6;
-
- put_16 (big_endian, 0, vid->data + 2);
- put_16 (big_endian, 0, vid->data + 4);
-
- *pp = vid;
- pp = &vid->next;
-
- switch (vi->type)
- {
- default:
- abort ();
-
- case VERINFO_STRING:
- {
- unsigned long hold, vslen;
- struct bindata *vsd;
- const struct ver_stringinfo *vs;
-
- *pp = string_to_unicode_bin ("StringFileInfo", big_endian);
- length += (*pp)->length;
- vilen += (*pp)->length;
- pp = &(*pp)->next;
-
- hold = length;
- dword_align_bin (&pp, &length);
- vilen += length - hold;
-
- vsd = (struct bindata *) reswr_alloc (sizeof *vsd);
- vsd->length = 6;
- vsd->data = (unsigned char *) reswr_alloc (vsd->length);
-
- length += 6;
- vilen += 6;
- vslen = 6;
-
- put_16 (big_endian, 0, vsd->data + 2);
- put_16 (big_endian, 0, vsd->data + 4);
-
- *pp = vsd;
- pp = &vsd->next;
-
- *pp = unicode_to_bin (vi->u.string.language, big_endian);
- length += (*pp)->length;
- vilen += (*pp)->length;
- vslen += (*pp)->length;
- pp = &(*pp)->next;
-
- for (vs = vi->u.string.strings; vs != NULL; vs = vs->next)
- {
- struct bindata *vssd;
- unsigned long vsslen;
-
- hold = length;
- dword_align_bin (&pp, &length);
- vilen += length - hold;
- vslen += length - hold;
-
- vssd = (struct bindata *) reswr_alloc (sizeof *vssd);
- vssd->length = 6;
- vssd->data = (unsigned char *) reswr_alloc (vssd->length);
-
- length += 6;
- vilen += 6;
- vslen += 6;
- vsslen = 6;
-
- put_16 (big_endian, 1, vssd->data + 4);
-
- *pp = vssd;
- pp = &vssd->next;
-
- *pp = unicode_to_bin (vs->key, big_endian);
- length += (*pp)->length;
- vilen += (*pp)->length;
- vslen += (*pp)->length;
- vsslen += (*pp)->length;
- pp = &(*pp)->next;
-
- hold = length;
- dword_align_bin (&pp, &length);
- vilen += length - hold;
- vslen += length - hold;
- vsslen += length - hold;
-
- *pp = unicode_to_bin (vs->value, big_endian);
- put_16 (big_endian, (*pp)->length / 2, vssd->data + 2);
- length += (*pp)->length;
- vilen += (*pp)->length;
- vslen += (*pp)->length;
- vsslen += (*pp)->length;
- pp = &(*pp)->next;
-
- put_16 (big_endian, vsslen, vssd->data);
- }
-
- put_16 (big_endian, vslen, vsd->data);
-
- break;
- }
-
- case VERINFO_VAR:
- {
- unsigned long hold, vvlen, vvvlen;
- struct bindata *vvd;
- const struct ver_varinfo *vv;
-
- *pp = string_to_unicode_bin ("VarFileInfo", big_endian);
- length += (*pp)->length;
- vilen += (*pp)->length;
- pp = &(*pp)->next;
-
- hold = length;
- dword_align_bin (&pp, &length);
- vilen += length - hold;
-
- vvd = (struct bindata *) reswr_alloc (sizeof *vvd);
- vvd->length = 6;
- vvd->data = (unsigned char *) reswr_alloc (vvd->length);
-
- length += 6;
- vilen += 6;
- vvlen = 6;
-
- put_16 (big_endian, 0, vvd->data + 4);
-
- *pp = vvd;
- pp = &vvd->next;
-
- *pp = unicode_to_bin (vi->u.var.key, big_endian);
- length += (*pp)->length;
- vilen += (*pp)->length;
- vvlen += (*pp)->length;
- pp = &(*pp)->next;
-
- hold = length;
- dword_align_bin (&pp, &length);
- vilen += length - hold;
- vvlen += length - hold;
-
- vvvlen = 0;
-
- for (vv = vi->u.var.var; vv != NULL; vv = vv->next)
- {
- struct bindata *vvsd;
-
- vvsd = (struct bindata *) reswr_alloc (sizeof *vvsd);
- vvsd->length = 4;
- vvsd->data = (unsigned char *) reswr_alloc (vvsd->length);
-
- length += 4;
- vilen += 4;
- vvlen += 4;
- vvvlen += 4;
-
- put_16 (big_endian, vv->language, vvsd->data);
- put_16 (big_endian, vv->charset, vvsd->data + 2);
-
- vvsd->next = NULL;
- *pp = vvsd;
- pp = &vvsd->next;
- }
-
- put_16 (big_endian, vvlen, vvd->data);
- put_16 (big_endian, vvvlen, vvd->data + 2);
-
- break;
- }
- }
-
- put_16 (big_endian, vilen, vid->data);
- }
-
- put_16 (big_endian, length, first->data);
-
- return first;
-}
-
-/* Convert a generic resource to binary. */
-
-static struct bindata *
-res_to_bin_generic (unsigned long length, const unsigned char *data)
-{
- struct bindata *d;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
- d->length = length;
- d->data = (unsigned char *) data;
-
- d->next = NULL;
-
- return d;
-}
diff --git a/binutils-2.17/binutils/rescoff.c b/binutils-2.17/binutils/rescoff.c
deleted file mode 100644
index fdd9aad9..00000000
--- a/binutils-2.17/binutils/rescoff.c
+++ /dev/null
@@ -1,766 +0,0 @@
-/* rescoff.c -- read and write resources in Windows COFF files.
- Copyright 1997, 1998, 1999, 2000, 2003
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Cygnus Support.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This file contains function that read and write Windows resources
- in COFF files. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "windres.h"
-
-#include <assert.h>
-
-/* In order to use the address of a resource data entry, we need to
- get the image base of the file. Right now we extract it from
- internal BFD information. FIXME. */
-
-#include "coff/internal.h"
-#include "libcoff.h"
-
-/* Information we extract from the file. */
-
-struct coff_file_info
-{
- /* File name. */
- const char *filename;
- /* Data read from the file. */
- const bfd_byte *data;
- /* End of data read from file. */
- const bfd_byte *data_end;
- /* Address of the resource section minus the image base of the file. */
- bfd_vma secaddr;
- /* Non-zero if the file is big endian. */
- int big_endian;
-};
-
-/* A resource directory table in a COFF file. */
-
-struct extern_res_directory
-{
- /* Characteristics. */
- bfd_byte characteristics[4];
- /* Time stamp. */
- bfd_byte time[4];
- /* Major version number. */
- bfd_byte major[2];
- /* Minor version number. */
- bfd_byte minor[2];
- /* Number of named directory entries. */
- bfd_byte name_count[2];
- /* Number of directory entries with IDs. */
- bfd_byte id_count[2];
-};
-
-/* A resource directory entry in a COFF file. */
-
-struct extern_res_entry
-{
- /* Name or ID. */
- bfd_byte name[4];
- /* Address of resource entry or subdirectory. */
- bfd_byte rva[4];
-};
-
-/* A resource data entry in a COFF file. */
-
-struct extern_res_data
-{
- /* Address of resource data. This is apparently a file relative
- address, rather than a section offset. */
- bfd_byte rva[4];
- /* Size of resource data. */
- bfd_byte size[4];
- /* Code page. */
- bfd_byte codepage[4];
- /* Reserved. */
- bfd_byte reserved[4];
-};
-
-/* Macros to swap in values. */
-
-#define getfi_16(fi, s) ((fi)->big_endian ? bfd_getb16 (s) : bfd_getl16 (s))
-#define getfi_32(fi, s) ((fi)->big_endian ? bfd_getb32 (s) : bfd_getl32 (s))
-
-/* Local functions. */
-
-static void overrun (const struct coff_file_info *, const char *);
-static struct res_directory *read_coff_res_dir
- (const bfd_byte *, const struct coff_file_info *,
- const struct res_id *, int);
-static struct res_resource *read_coff_data_entry
- (const bfd_byte *, const struct coff_file_info *, const struct res_id *);
-
-/* Read the resources in a COFF file. */
-
-struct res_directory *
-read_coff_rsrc (const char *filename, const char *target)
-{
- bfd *abfd;
- char **matching;
- asection *sec;
- bfd_size_type size;
- bfd_byte *data;
- struct coff_file_info finfo;
-
- if (filename == NULL)
- fatal (_("filename required for COFF input"));
-
- abfd = bfd_openr (filename, target);
- if (abfd == NULL)
- bfd_fatal (filename);
-
- if (! bfd_check_format_matches (abfd, bfd_object, &matching))
- {
- bfd_nonfatal (bfd_get_filename (abfd));
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- list_matching_formats (matching);
- xexit (1);
- }
-
- sec = bfd_get_section_by_name (abfd, ".rsrc");
- if (sec == NULL)
- {
- fatal (_("%s: no resource section"), filename);
- }
-
- size = bfd_section_size (abfd, sec);
- data = (bfd_byte *) res_alloc (size);
-
- if (! bfd_get_section_contents (abfd, sec, data, 0, size))
- bfd_fatal (_("can't read resource section"));
-
- finfo.filename = filename;
- finfo.data = data;
- finfo.data_end = data + size;
- finfo.secaddr = (bfd_get_section_vma (abfd, sec)
- - pe_data (abfd)->pe_opthdr.ImageBase);
- finfo.big_endian = bfd_big_endian (abfd);
-
- bfd_close (abfd);
-
- /* Now just read in the top level resource directory. Note that we
- don't free data, since we create resource entries that point into
- it. If we ever want to free up the resource information we read,
- this will have to be cleaned up. */
-
- return read_coff_res_dir (data, &finfo, (const struct res_id *) NULL, 0);
-}
-
-/* Give an error if we are out of bounds. */
-
-static void
-overrun (const struct coff_file_info *finfo, const char *msg)
-{
- fatal (_("%s: %s: address out of bounds"), finfo->filename, msg);
-}
-
-/* Read a resource directory. */
-
-static struct res_directory *
-read_coff_res_dir (const bfd_byte *data, const struct coff_file_info *finfo,
- const struct res_id *type, int level)
-{
- const struct extern_res_directory *erd;
- struct res_directory *rd;
- int name_count, id_count, i;
- struct res_entry **pp;
- const struct extern_res_entry *ere;
-
- if ((size_t) (finfo->data_end - data) < sizeof (struct extern_res_directory))
- overrun (finfo, _("directory"));
-
- erd = (const struct extern_res_directory *) data;
-
- rd = (struct res_directory *) res_alloc (sizeof *rd);
- rd->characteristics = getfi_32 (finfo, erd->characteristics);
- rd->time = getfi_32 (finfo, erd->time);
- rd->major = getfi_16 (finfo, erd->major);
- rd->minor = getfi_16 (finfo, erd->minor);
- rd->entries = NULL;
-
- name_count = getfi_16 (finfo, erd->name_count);
- id_count = getfi_16 (finfo, erd->id_count);
-
- pp = &rd->entries;
-
- /* The resource directory entries immediately follow the directory
- table. */
- ere = (const struct extern_res_entry *) (erd + 1);
-
- for (i = 0; i < name_count; i++, ere++)
- {
- unsigned long name, rva;
- struct res_entry *re;
- const bfd_byte *ers;
- int length, j;
-
- if ((const bfd_byte *) ere >= finfo->data_end)
- overrun (finfo, _("named directory entry"));
-
- name = getfi_32 (finfo, ere->name);
- rva = getfi_32 (finfo, ere->rva);
-
- /* For some reason the high bit in NAME is set. */
- name &=~ 0x80000000;
-
- if (name > (size_t) (finfo->data_end - finfo->data))
- overrun (finfo, _("directory entry name"));
-
- ers = finfo->data + name;
-
- re = (struct res_entry *) res_alloc (sizeof *re);
- re->next = NULL;
- re->id.named = 1;
- length = getfi_16 (finfo, ers);
- re->id.u.n.length = length;
- re->id.u.n.name = (unichar *) res_alloc (length * sizeof (unichar));
- for (j = 0; j < length; j++)
- re->id.u.n.name[j] = getfi_16 (finfo, ers + j * 2 + 2);
-
- if (level == 0)
- type = &re->id;
-
- if ((rva & 0x80000000) != 0)
- {
- rva &=~ 0x80000000;
- if (rva >= (size_t) (finfo->data_end - finfo->data))
- overrun (finfo, _("named subdirectory"));
- re->subdir = 1;
- re->u.dir = read_coff_res_dir (finfo->data + rva, finfo, type,
- level + 1);
- }
- else
- {
- if (rva >= (size_t) (finfo->data_end - finfo->data))
- overrun (finfo, _("named resource"));
- re->subdir = 0;
- re->u.res = read_coff_data_entry (finfo->data + rva, finfo, type);
- }
-
- *pp = re;
- pp = &re->next;
- }
-
- for (i = 0; i < id_count; i++, ere++)
- {
- unsigned long name, rva;
- struct res_entry *re;
-
- if ((const bfd_byte *) ere >= finfo->data_end)
- overrun (finfo, _("ID directory entry"));
-
- name = getfi_32 (finfo, ere->name);
- rva = getfi_32 (finfo, ere->rva);
-
- re = (struct res_entry *) res_alloc (sizeof *re);
- re->next = NULL;
- re->id.named = 0;
- re->id.u.id = name;
-
- if (level == 0)
- type = &re->id;
-
- if ((rva & 0x80000000) != 0)
- {
- rva &=~ 0x80000000;
- if (rva >= (size_t) (finfo->data_end - finfo->data))
- overrun (finfo, _("ID subdirectory"));
- re->subdir = 1;
- re->u.dir = read_coff_res_dir (finfo->data + rva, finfo, type,
- level + 1);
- }
- else
- {
- if (rva >= (size_t) (finfo->data_end - finfo->data))
- overrun (finfo, _("ID resource"));
- re->subdir = 0;
- re->u.res = read_coff_data_entry (finfo->data + rva, finfo, type);
- }
-
- *pp = re;
- pp = &re->next;
- }
-
- return rd;
-}
-
-/* Read a resource data entry. */
-
-static struct res_resource *
-read_coff_data_entry (const bfd_byte *data, const struct coff_file_info *finfo, const struct res_id *type)
-{
- const struct extern_res_data *erd;
- struct res_resource *r;
- unsigned long size, rva;
- const bfd_byte *resdata;
-
- if (type == NULL)
- fatal (_("resource type unknown"));
-
- if ((size_t) (finfo->data_end - data) < sizeof (struct extern_res_data))
- overrun (finfo, _("data entry"));
-
- erd = (const struct extern_res_data *) data;
-
- size = getfi_32 (finfo, erd->size);
- rva = getfi_32 (finfo, erd->rva);
- if (rva < finfo->secaddr
- || rva - finfo->secaddr >= (size_t) (finfo->data_end - finfo->data))
- overrun (finfo, _("resource data"));
-
- resdata = finfo->data + (rva - finfo->secaddr);
-
- if (size > (size_t) (finfo->data_end - resdata))
- overrun (finfo, _("resource data size"));
-
- r = bin_to_res (*type, resdata, size, finfo->big_endian);
-
- memset (&r->res_info, 0, sizeof (struct res_res_info));
- r->coff_info.codepage = getfi_32 (finfo, erd->codepage);
- r->coff_info.reserved = getfi_32 (finfo, erd->reserved);
-
- return r;
-}
-
-/* This structure is used to build a list of bindata structures. */
-
-struct bindata_build
-{
- /* The data. */
- struct bindata *d;
- /* The last structure we have added to the list. */
- struct bindata *last;
- /* The size of the list as a whole. */
- unsigned long length;
-};
-
-/* This structure keeps track of information as we build the directory
- tree. */
-
-struct coff_write_info
-{
- /* These fields are based on the BFD. */
- /* The BFD itself. */
- bfd *abfd;
- /* Non-zero if the file is big endian. */
- int big_endian;
- /* Pointer to section symbol used to build RVA relocs. */
- asymbol **sympp;
-
- /* These fields are computed initially, and then not changed. */
- /* Length of directory tables and entries. */
- unsigned long dirsize;
- /* Length of directory entry strings. */
- unsigned long dirstrsize;
- /* Length of resource data entries. */
- unsigned long dataentsize;
-
- /* These fields are updated as we add data. */
- /* Directory tables and entries. */
- struct bindata_build dirs;
- /* Directory entry strings. */
- struct bindata_build dirstrs;
- /* Resource data entries. */
- struct bindata_build dataents;
- /* Actual resource data. */
- struct bindata_build resources;
- /* Relocations. */
- arelent **relocs;
- /* Number of relocations. */
- unsigned int reloc_count;
-};
-
-/* Macros to swap out values. */
-
-#define putcwi_16(cwi, v, s) \
- ((cwi->big_endian) ? bfd_putb16 ((v), (s)) : bfd_putl16 ((v), (s)))
-#define putcwi_32(cwi, v, s) \
- ((cwi->big_endian) ? bfd_putb32 ((v), (s)) : bfd_putl32 ((v), (s)))
-
-static void coff_bin_sizes
- (const struct res_directory *, struct coff_write_info *);
-static unsigned char *coff_alloc (struct bindata_build *, size_t);
-static void coff_to_bin
- (const struct res_directory *, struct coff_write_info *);
-static void coff_res_to_bin
- (const struct res_resource *, struct coff_write_info *);
-
-/* Write resources to a COFF file. RESOURCES should already be
- sorted.
-
- Right now we always create a new file. Someday we should also
- offer the ability to merge resources into an existing file. This
- would require doing the basic work of objcopy, just modifying or
- adding the .rsrc section. */
-
-void
-write_coff_file (const char *filename, const char *target,
- const struct res_directory *resources)
-{
- bfd *abfd;
- asection *sec;
- struct coff_write_info cwi;
- struct bindata *d;
- unsigned long length, offset;
-
- if (filename == NULL)
- fatal (_("filename required for COFF output"));
-
- abfd = bfd_openw (filename, target);
- if (abfd == NULL)
- bfd_fatal (filename);
-
- if (! bfd_set_format (abfd, bfd_object))
- bfd_fatal ("bfd_set_format");
-
-#if defined DLLTOOL_SH
- if (! bfd_set_arch_mach (abfd, bfd_arch_sh, 0))
- bfd_fatal ("bfd_set_arch_mach(sh)");
-#elif defined DLLTOOL_MIPS
- if (! bfd_set_arch_mach (abfd, bfd_arch_mips, 0))
- bfd_fatal ("bfd_set_arch_mach(mips)");
-#elif defined DLLTOOL_ARM
- if (! bfd_set_arch_mach (abfd, bfd_arch_arm, 0))
- bfd_fatal ("bfd_set_arch_mach(arm)");
-#else
- /* FIXME: This is obviously i386 specific. */
- if (! bfd_set_arch_mach (abfd, bfd_arch_i386, 0))
- bfd_fatal ("bfd_set_arch_mach(i386)");
-#endif
-
- if (! bfd_set_file_flags (abfd, HAS_SYMS | HAS_RELOC))
- bfd_fatal ("bfd_set_file_flags");
-
- sec = bfd_make_section (abfd, ".rsrc");
- if (sec == NULL)
- bfd_fatal ("bfd_make_section");
-
- if (! bfd_set_section_flags (abfd, sec,
- (SEC_HAS_CONTENTS | SEC_ALLOC
- | SEC_LOAD | SEC_DATA)))
- bfd_fatal ("bfd_set_section_flags");
-
- if (! bfd_set_symtab (abfd, sec->symbol_ptr_ptr, 1))
- bfd_fatal ("bfd_set_symtab");
-
- /* Requiring this is probably a bug in BFD. */
- sec->output_section = sec;
-
- /* The order of data in the .rsrc section is
- resource directory tables and entries
- resource directory strings
- resource data entries
- actual resource data
-
- We build these different types of data in different lists. */
-
- cwi.abfd = abfd;
- cwi.big_endian = bfd_big_endian (abfd);
- cwi.sympp = sec->symbol_ptr_ptr;
- cwi.dirsize = 0;
- cwi.dirstrsize = 0;
- cwi.dataentsize = 0;
- cwi.dirs.d = NULL;
- cwi.dirs.last = NULL;
- cwi.dirs.length = 0;
- cwi.dirstrs.d = NULL;
- cwi.dirstrs.last = NULL;
- cwi.dirstrs.length = 0;
- cwi.dataents.d = NULL;
- cwi.dataents.last = NULL;
- cwi.dataents.length = 0;
- cwi.resources.d = NULL;
- cwi.resources.last = NULL;
- cwi.resources.length = 0;
- cwi.relocs = NULL;
- cwi.reloc_count = 0;
-
- /* Work out the sizes of the resource directory entries, so that we
- know the various offsets we will need. */
- coff_bin_sizes (resources, &cwi);
-
- /* Force the directory strings to be 32 bit aligned. Every other
- structure is 32 bit aligned anyhow. */
- cwi.dirstrsize = (cwi.dirstrsize + 3) &~ 3;
-
- /* Actually convert the resources to binary. */
- coff_to_bin (resources, &cwi);
-
- /* Add another 2 bytes to the directory strings if needed for
- alignment. */
- if ((cwi.dirstrs.length & 3) != 0)
- {
- unsigned char *ex;
-
- ex = coff_alloc (&cwi.dirstrs, 2);
- ex[0] = 0;
- ex[1] = 0;
- }
-
- /* Make sure that the data we built came out to the same size as we
- calculated initially. */
- assert (cwi.dirs.length == cwi.dirsize);
- assert (cwi.dirstrs.length == cwi.dirstrsize);
- assert (cwi.dataents.length == cwi.dataentsize);
-
- length = (cwi.dirsize
- + cwi.dirstrsize
- + cwi.dataentsize
- + cwi.resources.length);
-
- if (! bfd_set_section_size (abfd, sec, length))
- bfd_fatal ("bfd_set_section_size");
-
- bfd_set_reloc (abfd, sec, cwi.relocs, cwi.reloc_count);
-
- offset = 0;
- for (d = cwi.dirs.d; d != NULL; d = d->next)
- {
- if (! bfd_set_section_contents (abfd, sec, d->data, offset, d->length))
- bfd_fatal ("bfd_set_section_contents");
- offset += d->length;
- }
- for (d = cwi.dirstrs.d; d != NULL; d = d->next)
- {
- if (! bfd_set_section_contents (abfd, sec, d->data, offset, d->length))
- bfd_fatal ("bfd_set_section_contents");
- offset += d->length;
- }
- for (d = cwi.dataents.d; d != NULL; d = d->next)
- {
- if (! bfd_set_section_contents (abfd, sec, d->data, offset, d->length))
- bfd_fatal ("bfd_set_section_contents");
- offset += d->length;
- }
- for (d = cwi.resources.d; d != NULL; d = d->next)
- {
- if (! bfd_set_section_contents (abfd, sec, d->data, offset, d->length))
- bfd_fatal ("bfd_set_section_contents");
- offset += d->length;
- }
-
- assert (offset == length);
-
- if (! bfd_close (abfd))
- bfd_fatal ("bfd_close");
-
- /* We allocated the relocs array using malloc. */
- free (cwi.relocs);
-}
-
-/* Work out the sizes of the various fixed size resource directory
- entries. This updates fields in CWI. */
-
-static void
-coff_bin_sizes (const struct res_directory *resdir,
- struct coff_write_info *cwi)
-{
- const struct res_entry *re;
-
- cwi->dirsize += sizeof (struct extern_res_directory);
-
- for (re = resdir->entries; re != NULL; re = re->next)
- {
- cwi->dirsize += sizeof (struct extern_res_entry);
-
- if (re->id.named)
- cwi->dirstrsize += re->id.u.n.length * 2 + 2;
-
- if (re->subdir)
- coff_bin_sizes (re->u.dir, cwi);
- else
- cwi->dataentsize += sizeof (struct extern_res_data);
- }
-}
-
-/* Allocate data for a particular list. */
-
-static unsigned char *
-coff_alloc (struct bindata_build *bb, size_t size)
-{
- struct bindata *d;
-
- d = (struct bindata *) reswr_alloc (sizeof *d);
-
- d->next = NULL;
- d->data = (unsigned char *) reswr_alloc (size);
- d->length = size;
-
- if (bb->d == NULL)
- bb->d = d;
- else
- bb->last->next = d;
- bb->last = d;
- bb->length += size;
-
- return d->data;
-}
-
-/* Convert the resource directory RESDIR to binary. */
-
-static void
-coff_to_bin (const struct res_directory *resdir, struct coff_write_info *cwi)
-{
- struct extern_res_directory *erd;
- int ci, cn;
- const struct res_entry *e;
- struct extern_res_entry *ere;
-
- /* Write out the directory table. */
-
- erd = ((struct extern_res_directory *)
- coff_alloc (&cwi->dirs, sizeof (*erd)));
-
- putcwi_32 (cwi, resdir->characteristics, erd->characteristics);
- putcwi_32 (cwi, resdir->time, erd->time);
- putcwi_16 (cwi, resdir->major, erd->major);
- putcwi_16 (cwi, resdir->minor, erd->minor);
-
- ci = 0;
- cn = 0;
- for (e = resdir->entries; e != NULL; e = e->next)
- {
- if (e->id.named)
- ++cn;
- else
- ++ci;
- }
-
- putcwi_16 (cwi, cn, erd->name_count);
- putcwi_16 (cwi, ci, erd->id_count);
-
- /* Write out the data entries. Note that we allocate space for all
- the entries before writing them out. That permits a recursive
- call to work correctly when writing out subdirectories. */
-
- ere = ((struct extern_res_entry *)
- coff_alloc (&cwi->dirs, (ci + cn) * sizeof (*ere)));
- for (e = resdir->entries; e != NULL; e = e->next, ere++)
- {
- if (! e->id.named)
- putcwi_32 (cwi, e->id.u.id, ere->name);
- else
- {
- unsigned char *str;
- int i;
-
- /* For some reason existing files seem to have the high bit
- set on the address of the name, although that is not
- documented. */
- putcwi_32 (cwi,
- 0x80000000 | (cwi->dirsize + cwi->dirstrs.length),
- ere->name);
-
- str = coff_alloc (&cwi->dirstrs, e->id.u.n.length * 2 + 2);
- putcwi_16 (cwi, e->id.u.n.length, str);
- for (i = 0; i < e->id.u.n.length; i++)
- putcwi_16 (cwi, e->id.u.n.name[i], str + i * 2 + 2);
- }
-
- if (e->subdir)
- {
- putcwi_32 (cwi, 0x80000000 | cwi->dirs.length, ere->rva);
- coff_to_bin (e->u.dir, cwi);
- }
- else
- {
- putcwi_32 (cwi,
- cwi->dirsize + cwi->dirstrsize + cwi->dataents.length,
- ere->rva);
-
- coff_res_to_bin (e->u.res, cwi);
- }
- }
-}
-
-/* Convert the resource RES to binary. */
-
-static void
-coff_res_to_bin (const struct res_resource *res, struct coff_write_info *cwi)
-{
- arelent *r;
- struct extern_res_data *erd;
- struct bindata *d;
- unsigned long length;
-
- /* For some reason, although every other address is a section
- offset, the address of the resource data itself is an RVA. That
- means that we need to generate a relocation for it. We allocate
- the relocs array using malloc so that we can use realloc. FIXME:
- This relocation handling is correct for the i386, but probably
- not for any other target. */
-
- r = (arelent *) reswr_alloc (sizeof (arelent));
- r->sym_ptr_ptr = cwi->sympp;
- r->address = cwi->dirsize + cwi->dirstrsize + cwi->dataents.length;
- r->addend = 0;
- r->howto = bfd_reloc_type_lookup (cwi->abfd, BFD_RELOC_RVA);
- if (r->howto == NULL)
- bfd_fatal (_("can't get BFD_RELOC_RVA relocation type"));
-
- cwi->relocs = xrealloc (cwi->relocs,
- (cwi->reloc_count + 2) * sizeof (arelent *));
- cwi->relocs[cwi->reloc_count] = r;
- cwi->relocs[cwi->reloc_count + 1] = NULL;
- ++cwi->reloc_count;
-
- erd = (struct extern_res_data *) coff_alloc (&cwi->dataents, sizeof (*erd));
-
- putcwi_32 (cwi,
- (cwi->dirsize
- + cwi->dirstrsize
- + cwi->dataentsize
- + cwi->resources.length),
- erd->rva);
- putcwi_32 (cwi, res->coff_info.codepage, erd->codepage);
- putcwi_32 (cwi, res->coff_info.reserved, erd->reserved);
-
- d = res_to_bin (res, cwi->big_endian);
-
- if (cwi->resources.d == NULL)
- cwi->resources.d = d;
- else
- cwi->resources.last->next = d;
-
- length = 0;
- for (; d->next != NULL; d = d->next)
- length += d->length;
- length += d->length;
- cwi->resources.last = d;
- cwi->resources.length += length;
-
- putcwi_32 (cwi, length, erd->size);
-
- /* Force the next resource to have 32 bit alignment. */
-
- if ((length & 3) != 0)
- {
- int add;
- unsigned char *ex;
-
- add = 4 - (length & 3);
-
- ex = coff_alloc (&cwi->resources, add);
- memset (ex, 0, add);
- }
-}
diff --git a/binutils-2.17/binutils/resrc.c b/binutils-2.17/binutils/resrc.c
deleted file mode 100644
index 73b482cd..00000000
--- a/binutils-2.17/binutils/resrc.c
+++ /dev/null
@@ -1,2596 +0,0 @@
-/* resrc.c -- read and write Windows rc files.
- Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Cygnus Support.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This file contains functions that read and write Windows rc files.
- These are text files that represent resources. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "safe-ctype.h"
-#include "windres.h"
-
-#include <assert.h>
-#include <errno.h>
-#include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#else /* ! HAVE_SYS_WAIT_H */
-#if ! defined (_WIN32) || defined (__CYGWIN__)
-#ifndef WIFEXITED
-#define WIFEXITED(w) (((w)&0377) == 0)
-#endif
-#ifndef WIFSIGNALED
-#define WIFSIGNALED(w) (((w)&0377) != 0177 && ((w)&~0377) == 0)
-#endif
-#ifndef WTERMSIG
-#define WTERMSIG(w) ((w) & 0177)
-#endif
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(w) (((w) >> 8) & 0377)
-#endif
-#else /* defined (_WIN32) && ! defined (__CYGWIN__) */
-#ifndef WIFEXITED
-#define WIFEXITED(w) (((w) & 0xff) == 0)
-#endif
-#ifndef WIFSIGNALED
-#define WIFSIGNALED(w) (((w) & 0xff) != 0 && ((w) & 0xff) != 0x7f)
-#endif
-#ifndef WTERMSIG
-#define WTERMSIG(w) ((w) & 0x7f)
-#endif
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(w) (((w) & 0xff00) >> 8)
-#endif
-#endif /* defined (_WIN32) && ! defined (__CYGWIN__) */
-#endif /* ! HAVE_SYS_WAIT_H */
-
-#ifndef STDOUT_FILENO
-#define STDOUT_FILENO 1
-#endif
-
-#if defined (_WIN32) && ! defined (__CYGWIN__)
-#define popen _popen
-#define pclose _pclose
-#endif
-
-/* The default preprocessor. */
-
-#define DEFAULT_PREPROCESSOR "gcc -E -xc -DRC_INVOKED"
-
-/* We read the directory entries in a cursor or icon file into
- instances of this structure. */
-
-struct icondir
-{
- /* Width of image. */
- unsigned char width;
- /* Height of image. */
- unsigned char height;
- /* Number of colors in image. */
- unsigned char colorcount;
- union
- {
- struct
- {
- /* Color planes. */
- unsigned short planes;
- /* Bits per pixel. */
- unsigned short bits;
- } icon;
- struct
- {
- /* X coordinate of hotspot. */
- unsigned short xhotspot;
- /* Y coordinate of hotspot. */
- unsigned short yhotspot;
- } cursor;
- } u;
- /* Bytes in image. */
- unsigned long bytes;
- /* File offset of image. */
- unsigned long offset;
-};
-
-/* The name of the rc file we are reading. */
-
-char *rc_filename;
-
-/* The line number in the rc file. */
-
-int rc_lineno;
-
-/* The pipe we are reading from, so that we can close it if we exit. */
-
-static FILE *cpp_pipe;
-
-/* The temporary file used if we're not using popen, so we can delete it
- if we exit. */
-
-static char *cpp_temp_file;
-
-/* Input stream is either a file or a pipe. */
-
-static enum {ISTREAM_PIPE, ISTREAM_FILE} istream_type;
-
-/* As we read the rc file, we attach information to this structure. */
-
-static struct res_directory *resources;
-
-/* The number of cursor resources we have written out. */
-
-static int cursors;
-
-/* The number of font resources we have written out. */
-
-static int fonts;
-
-/* Font directory information. */
-
-struct fontdir *fontdirs;
-
-/* Resource info to use for fontdirs. */
-
-struct res_res_info fontdirs_resinfo;
-
-/* The number of icon resources we have written out. */
-
-static int icons;
-
-/* Local functions. */
-
-static int run_cmd (char *, const char *);
-static FILE *open_input_stream (char *);
-static FILE *look_for_default
- (char *, const char *, int, const char *, const char *);
-static void close_input_stream (void);
-static void unexpected_eof (const char *);
-static int get_word (FILE *, const char *);
-static unsigned long get_long (FILE *, const char *);
-static void get_data (FILE *, unsigned char *, unsigned long, const char *);
-static void define_fontdirs (void);
-
-/* Run `cmd' and redirect the output to `redir'. */
-
-static int
-run_cmd (char *cmd, const char *redir)
-{
- char *s;
- int pid, wait_status, retcode;
- int i;
- const char **argv;
- char *errmsg_fmt, *errmsg_arg;
- char *temp_base = choose_temp_base ();
- int in_quote;
- char sep;
- int redir_handle = -1;
- int stdout_save = -1;
-
- /* Count the args. */
- i = 0;
-
- for (s = cmd; *s; s++)
- if (*s == ' ')
- i++;
-
- i++;
- argv = alloca (sizeof (char *) * (i + 3));
- i = 0;
- s = cmd;
-
- while (1)
- {
- while (*s == ' ' && *s != 0)
- s++;
-
- if (*s == 0)
- break;
-
- in_quote = (*s == '\'' || *s == '"');
- sep = (in_quote) ? *s++ : ' ';
- argv[i++] = s;
-
- while (*s != sep && *s != 0)
- s++;
-
- if (*s == 0)
- break;
-
- *s++ = 0;
-
- if (in_quote)
- s++;
- }
- argv[i++] = NULL;
-
- /* Setup the redirection. We can't use the usual fork/exec and redirect
- since we may be running on non-POSIX Windows host. */
-
- fflush (stdout);
- fflush (stderr);
-
- /* Open temporary output file. */
- redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT, 0666);
- if (redir_handle == -1)
- fatal (_("can't open temporary file `%s': %s"), redir,
- strerror (errno));
-
- /* Duplicate the stdout file handle so it can be restored later. */
- stdout_save = dup (STDOUT_FILENO);
- if (stdout_save == -1)
- fatal (_("can't redirect stdout: `%s': %s"), redir, strerror (errno));
-
- /* Redirect stdout to our output file. */
- dup2 (redir_handle, STDOUT_FILENO);
-
- pid = pexecute (argv[0], (char * const *) argv, program_name, temp_base,
- &errmsg_fmt, &errmsg_arg, PEXECUTE_ONE | PEXECUTE_SEARCH);
-
- /* Restore stdout to its previous setting. */
- dup2 (stdout_save, STDOUT_FILENO);
-
- /* Close response file. */
- close (redir_handle);
-
- if (pid == -1)
- {
- fatal (_("%s %s: %s"), errmsg_fmt, errmsg_arg, strerror (errno));
- return 1;
- }
-
- retcode = 0;
- pid = pwait (pid, &wait_status, 0);
-
- if (pid == -1)
- {
- fatal (_("wait: %s"), strerror (errno));
- retcode = 1;
- }
- else if (WIFSIGNALED (wait_status))
- {
- fatal (_("subprocess got fatal signal %d"), WTERMSIG (wait_status));
- retcode = 1;
- }
- else if (WIFEXITED (wait_status))
- {
- if (WEXITSTATUS (wait_status) != 0)
- {
- fatal (_("%s exited with status %d"), cmd,
- WEXITSTATUS (wait_status));
- retcode = 1;
- }
- }
- else
- retcode = 1;
-
- return retcode;
-}
-
-static FILE *
-open_input_stream (char *cmd)
-{
- if (istream_type == ISTREAM_FILE)
- {
- char *fileprefix;
-
- fileprefix = choose_temp_base ();
- cpp_temp_file = (char *) xmalloc (strlen (fileprefix) + 5);
- sprintf (cpp_temp_file, "%s.irc", fileprefix);
- free (fileprefix);
-
- if (run_cmd (cmd, cpp_temp_file))
- fatal (_("can't execute `%s': %s"), cmd, strerror (errno));
-
- cpp_pipe = fopen (cpp_temp_file, FOPEN_RT);;
- if (cpp_pipe == NULL)
- fatal (_("can't open temporary file `%s': %s"),
- cpp_temp_file, strerror (errno));
-
- if (verbose)
- fprintf (stderr,
- _("Using temporary file `%s' to read preprocessor output\n"),
- cpp_temp_file);
- }
- else
- {
- cpp_pipe = popen (cmd, FOPEN_RT);
- if (cpp_pipe == NULL)
- fatal (_("can't popen `%s': %s"), cmd, strerror (errno));
- if (verbose)
- fprintf (stderr, _("Using popen to read preprocessor output\n"));
- }
-
- xatexit (close_input_stream);
- return cpp_pipe;
-}
-
-/* look for the preprocessor program */
-
-static FILE *
-look_for_default (char *cmd, const char *prefix, int end_prefix,
- const char *preprocargs, const char *filename)
-{
- char *space;
- int found;
- struct stat s;
-
- strcpy (cmd, prefix);
-
- sprintf (cmd + end_prefix, "%s", DEFAULT_PREPROCESSOR);
- space = strchr (cmd + end_prefix, ' ');
- if (space)
- *space = 0;
-
- if (
-#if defined (__DJGPP__) || defined (__CYGWIN__) || defined (_WIN32)
- strchr (cmd, '\\') ||
-#endif
- strchr (cmd, '/'))
- {
- found = (stat (cmd, &s) == 0
-#ifdef HAVE_EXECUTABLE_SUFFIX
- || stat (strcat (cmd, EXECUTABLE_SUFFIX), &s) == 0
-#endif
- );
-
- if (! found)
- {
- if (verbose)
- fprintf (stderr, _("Tried `%s'\n"), cmd);
- return NULL;
- }
- }
-
- strcpy (cmd, prefix);
-
- sprintf (cmd + end_prefix, "%s %s %s",
- DEFAULT_PREPROCESSOR, preprocargs, filename);
-
- if (verbose)
- fprintf (stderr, _("Using `%s'\n"), cmd);
-
- cpp_pipe = open_input_stream (cmd);
- return cpp_pipe;
-}
-
-/* Read an rc file. */
-
-struct res_directory *
-read_rc_file (const char *filename, const char *preprocessor,
- const char *preprocargs, int language, int use_temp_file)
-{
- char *cmd;
-
- istream_type = (use_temp_file) ? ISTREAM_FILE : ISTREAM_PIPE;
-
- if (preprocargs == NULL)
- preprocargs = "";
- if (filename == NULL)
- filename = "-";
-
- if (preprocessor)
- {
- cmd = xmalloc (strlen (preprocessor)
- + strlen (preprocargs)
- + strlen (filename)
- + 10);
- sprintf (cmd, "%s %s %s", preprocessor, preprocargs, filename);
-
- cpp_pipe = open_input_stream (cmd);
- }
- else
- {
- char *dash, *slash, *cp;
-
- preprocessor = DEFAULT_PREPROCESSOR;
-
- cmd = xmalloc (strlen (program_name)
- + strlen (preprocessor)
- + strlen (preprocargs)
- + strlen (filename)
-#ifdef HAVE_EXECUTABLE_SUFFIX
- + strlen (EXECUTABLE_SUFFIX)
-#endif
- + 10);
-
-
- dash = slash = 0;
- for (cp = program_name; *cp; cp++)
- {
- if (*cp == '-')
- dash = cp;
- if (
-#if defined (__DJGPP__) || defined (__CYGWIN__) || defined(_WIN32)
- *cp == ':' || *cp == '\\' ||
-#endif
- *cp == '/')
- {
- slash = cp;
- dash = 0;
- }
- }
-
- cpp_pipe = 0;
-
- if (dash)
- {
- /* First, try looking for a prefixed gcc in the windres
- directory, with the same prefix as windres */
-
- cpp_pipe = look_for_default (cmd, program_name, dash-program_name+1,
- preprocargs, filename);
- }
-
- if (slash && !cpp_pipe)
- {
- /* Next, try looking for a gcc in the same directory as
- that windres */
-
- cpp_pipe = look_for_default (cmd, program_name, slash-program_name+1,
- preprocargs, filename);
- }
-
- if (!cpp_pipe)
- {
- /* Sigh, try the default */
-
- cpp_pipe = look_for_default (cmd, "", 0, preprocargs, filename);
- }
-
- }
-
- free (cmd);
-
- rc_filename = xstrdup (filename);
- rc_lineno = 1;
- if (language != -1)
- rcparse_set_language (language);
- yyin = cpp_pipe;
- yyparse ();
- rcparse_discard_strings ();
-
- close_input_stream ();
-
- if (fontdirs != NULL)
- define_fontdirs ();
-
- free (rc_filename);
- rc_filename = NULL;
-
- return resources;
-}
-
-/* Close the input stream if it is open. */
-
-static void
-close_input_stream (void)
-{
- if (istream_type == ISTREAM_FILE)
- {
- if (cpp_pipe != NULL)
- fclose (cpp_pipe);
-
- if (cpp_temp_file != NULL)
- {
- int errno_save = errno;
-
- unlink (cpp_temp_file);
- errno = errno_save;
- free (cpp_temp_file);
- }
- }
- else
- {
- if (cpp_pipe != NULL)
- pclose (cpp_pipe);
- }
-
- /* Since this is also run via xatexit, safeguard. */
- cpp_pipe = NULL;
- cpp_temp_file = NULL;
-}
-
-/* Report an error while reading an rc file. */
-
-void
-yyerror (const char *msg)
-{
- fatal ("%s:%d: %s", rc_filename, rc_lineno, msg);
-}
-
-/* Issue a warning while reading an rc file. */
-
-void
-rcparse_warning (const char *msg)
-{
- fprintf (stderr, _("%s:%d: %s\n"), rc_filename, rc_lineno, msg);
-}
-
-/* Die if we get an unexpected end of file. */
-
-static void
-unexpected_eof (const char *msg)
-{
- fatal (_("%s: unexpected EOF"), msg);
-}
-
-/* Read a 16 bit word from a file. The data is assumed to be little
- endian. */
-
-static int
-get_word (FILE *e, const char *msg)
-{
- int b1, b2;
-
- b1 = getc (e);
- b2 = getc (e);
- if (feof (e))
- unexpected_eof (msg);
- return ((b2 & 0xff) << 8) | (b1 & 0xff);
-}
-
-/* Read a 32 bit word from a file. The data is assumed to be little
- endian. */
-
-static unsigned long
-get_long (FILE *e, const char *msg)
-{
- int b1, b2, b3, b4;
-
- b1 = getc (e);
- b2 = getc (e);
- b3 = getc (e);
- b4 = getc (e);
- if (feof (e))
- unexpected_eof (msg);
- return (((((((b4 & 0xff) << 8)
- | (b3 & 0xff)) << 8)
- | (b2 & 0xff)) << 8)
- | (b1 & 0xff));
-}
-
-/* Read data from a file. This is a wrapper to do error checking. */
-
-static void
-get_data (FILE *e, unsigned char *p, unsigned long c, const char *msg)
-{
- unsigned long got;
-
- got = fread (p, 1, c, e);
- if (got == c)
- return;
-
- fatal (_("%s: read of %lu returned %lu"), msg, c, got);
-}
-
-/* Define an accelerator resource. */
-
-void
-define_accelerator (struct res_id id, const struct res_res_info *resinfo,
- struct accelerator *data)
-{
- struct res_resource *r;
-
- r = define_standard_resource (&resources, RT_ACCELERATOR, id,
- resinfo->language, 0);
- r->type = RES_TYPE_ACCELERATOR;
- r->u.acc = data;
- r->res_info = *resinfo;
-}
-
-/* Define a bitmap resource. Bitmap data is stored in a file. The
- first 14 bytes of the file are a standard header, which is not
- included in the resource data. */
-
-#define BITMAP_SKIP (14)
-
-void
-define_bitmap (struct res_id id, const struct res_res_info *resinfo,
- const char *filename)
-{
- FILE *e;
- char *real_filename;
- struct stat s;
- unsigned char *data;
- int i;
- struct res_resource *r;
-
- e = open_file_search (filename, FOPEN_RB, "bitmap file", &real_filename);
-
- if (stat (real_filename, &s) < 0)
- fatal (_("stat failed on bitmap file `%s': %s"), real_filename,
- strerror (errno));
-
- data = (unsigned char *) res_alloc (s.st_size - BITMAP_SKIP);
-
- for (i = 0; i < BITMAP_SKIP; i++)
- getc (e);
-
- get_data (e, data, s.st_size - BITMAP_SKIP, real_filename);
-
- fclose (e);
- free (real_filename);
-
- r = define_standard_resource (&resources, RT_BITMAP, id,
- resinfo->language, 0);
-
- r->type = RES_TYPE_BITMAP;
- r->u.data.length = s.st_size - BITMAP_SKIP;
- r->u.data.data = data;
- r->res_info = *resinfo;
-}
-
-/* Define a cursor resource. A cursor file may contain a set of
- bitmaps, each representing the same cursor at various different
- resolutions. They each get written out with a different ID. The
- real cursor resource is then a group resource which can be used to
- select one of the actual cursors. */
-
-void
-define_cursor (struct res_id id, const struct res_res_info *resinfo,
- const char *filename)
-{
- FILE *e;
- char *real_filename;
- int type, count, i;
- struct icondir *icondirs;
- int first_cursor;
- struct res_resource *r;
- struct group_cursor *first, **pp;
-
- e = open_file_search (filename, FOPEN_RB, "cursor file", &real_filename);
-
- /* A cursor file is basically an icon file. The start of the file
- is a three word structure. The first word is ignored. The
- second word is the type of data. The third word is the number of
- entries. */
-
- get_word (e, real_filename);
- type = get_word (e, real_filename);
- count = get_word (e, real_filename);
- if (type != 2)
- fatal (_("cursor file `%s' does not contain cursor data"), real_filename);
-
- /* Read in the icon directory entries. */
-
- icondirs = (struct icondir *) xmalloc (count * sizeof *icondirs);
-
- for (i = 0; i < count; i++)
- {
- icondirs[i].width = getc (e);
- icondirs[i].height = getc (e);
- icondirs[i].colorcount = getc (e);
- getc (e);
- icondirs[i].u.cursor.xhotspot = get_word (e, real_filename);
- icondirs[i].u.cursor.yhotspot = get_word (e, real_filename);
- icondirs[i].bytes = get_long (e, real_filename);
- icondirs[i].offset = get_long (e, real_filename);
-
- if (feof (e))
- unexpected_eof (real_filename);
- }
-
- /* Define each cursor as a unique resource. */
-
- first_cursor = cursors;
-
- for (i = 0; i < count; i++)
- {
- unsigned char *data;
- struct res_id name;
- struct cursor *c;
-
- if (fseek (e, icondirs[i].offset, SEEK_SET) != 0)
- fatal (_("%s: fseek to %lu failed: %s"), real_filename,
- icondirs[i].offset, strerror (errno));
-
- data = (unsigned char *) res_alloc (icondirs[i].bytes);
-
- get_data (e, data, icondirs[i].bytes, real_filename);
-
- c = (struct cursor *) res_alloc (sizeof *c);
- c->xhotspot = icondirs[i].u.cursor.xhotspot;
- c->yhotspot = icondirs[i].u.cursor.yhotspot;
- c->length = icondirs[i].bytes;
- c->data = data;
-
- ++cursors;
-
- name.named = 0;
- name.u.id = cursors;
-
- r = define_standard_resource (&resources, RT_CURSOR, name,
- resinfo->language, 0);
- r->type = RES_TYPE_CURSOR;
- r->u.cursor = c;
- r->res_info = *resinfo;
- }
-
- fclose (e);
- free (real_filename);
-
- /* Define a cursor group resource. */
-
- first = NULL;
- pp = &first;
- for (i = 0; i < count; i++)
- {
- struct group_cursor *cg;
-
- cg = (struct group_cursor *) res_alloc (sizeof *cg);
- cg->next = NULL;
- cg->width = icondirs[i].width;
- cg->height = 2 * icondirs[i].height;
-
- /* FIXME: What should these be set to? */
- cg->planes = 1;
- cg->bits = 1;
-
- cg->bytes = icondirs[i].bytes + 4;
- cg->index = first_cursor + i + 1;
-
- *pp = cg;
- pp = &(*pp)->next;
- }
-
- free (icondirs);
-
- r = define_standard_resource (&resources, RT_GROUP_CURSOR, id,
- resinfo->language, 0);
- r->type = RES_TYPE_GROUP_CURSOR;
- r->u.group_cursor = first;
- r->res_info = *resinfo;
-}
-
-/* Define a dialog resource. */
-
-void
-define_dialog (struct res_id id, const struct res_res_info *resinfo,
- const struct dialog *dialog)
-{
- struct dialog *copy;
- struct res_resource *r;
-
- copy = (struct dialog *) res_alloc (sizeof *copy);
- *copy = *dialog;
-
- r = define_standard_resource (&resources, RT_DIALOG, id,
- resinfo->language, 0);
- r->type = RES_TYPE_DIALOG;
- r->u.dialog = copy;
- r->res_info = *resinfo;
-}
-
-/* Define a dialog control. This does not define a resource, but
- merely allocates and fills in a structure. */
-
-struct dialog_control *
-define_control (const struct res_id iid, unsigned long id, unsigned long x,
- unsigned long y, unsigned long width, unsigned long height,
- unsigned long class, unsigned long style,
- unsigned long exstyle)
-{
- struct dialog_control *n;
-
- n = (struct dialog_control *) res_alloc (sizeof *n);
- n->next = NULL;
- n->id = id;
- n->style = style;
- n->exstyle = exstyle;
- n->x = x;
- n->y = y;
- n->width = width;
- n->height = height;
- n->class.named = 0;
- n->class.u.id = class;
- n->text = iid;
- n->data = NULL;
- n->help = 0;
-
- return n;
-}
-
-struct dialog_control *
-define_icon_control (struct res_id iid, unsigned long id, unsigned long x,
- unsigned long y, unsigned long style,
- unsigned long exstyle, unsigned long help,
- struct rcdata_item *data, struct dialog_ex *ex)
-{
- struct dialog_control *n;
- struct res_id tid;
-
- if (style == 0)
- style = SS_ICON | WS_CHILD | WS_VISIBLE;
- res_string_to_id (&tid, "");
- n = define_control (tid, id, x, y, 0, 0, CTL_STATIC, style, exstyle);
- n->text = iid;
- if (help && !ex)
- rcparse_warning (_("help ID requires DIALOGEX"));
- if (data && !ex)
- rcparse_warning (_("control data requires DIALOGEX"));
- n->help = help;
- n->data = data;
-
- return n;
-}
-
-/* Define a font resource. */
-
-void
-define_font (struct res_id id, const struct res_res_info *resinfo,
- const char *filename)
-{
- FILE *e;
- char *real_filename;
- struct stat s;
- unsigned char *data;
- struct res_resource *r;
- long offset;
- long fontdatalength;
- unsigned char *fontdata;
- struct fontdir *fd;
- const char *device, *face;
- struct fontdir **pp;
-
- e = open_file_search (filename, FOPEN_RB, "font file", &real_filename);
-
- if (stat (real_filename, &s) < 0)
- fatal (_("stat failed on font file `%s': %s"), real_filename,
- strerror (errno));
-
- data = (unsigned char *) res_alloc (s.st_size);
-
- get_data (e, data, s.st_size, real_filename);
-
- fclose (e);
- free (real_filename);
-
- r = define_standard_resource (&resources, RT_FONT, id,
- resinfo->language, 0);
-
- r->type = RES_TYPE_FONT;
- r->u.data.length = s.st_size;
- r->u.data.data = data;
- r->res_info = *resinfo;
-
- /* For each font resource, we must add an entry in the FONTDIR
- resource. The FONTDIR resource includes some strings in the font
- file. To find them, we have to do some magic on the data we have
- read. */
-
- offset = ((((((data[47] << 8)
- | data[46]) << 8)
- | data[45]) << 8)
- | data[44]);
- if (offset > 0 && offset < s.st_size)
- device = (char *) data + offset;
- else
- device = "";
-
- offset = ((((((data[51] << 8)
- | data[50]) << 8)
- | data[49]) << 8)
- | data[48]);
- if (offset > 0 && offset < s.st_size)
- face = (char *) data + offset;
- else
- face = "";
-
- ++fonts;
-
- fontdatalength = 58 + strlen (device) + strlen (face);
- fontdata = (unsigned char *) res_alloc (fontdatalength);
- memcpy (fontdata, data, 56);
- strcpy ((char *) fontdata + 56, device);
- strcpy ((char *) fontdata + 57 + strlen (device), face);
-
- fd = (struct fontdir *) res_alloc (sizeof *fd);
- fd->next = NULL;
- fd->index = fonts;
- fd->length = fontdatalength;
- fd->data = fontdata;
-
- for (pp = &fontdirs; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = fd;
-
- /* For the single fontdirs resource, we always use the resource
- information of the last font. I don't know what else to do. */
- fontdirs_resinfo = *resinfo;
-}
-
-/* Define the fontdirs resource. This is called after the entire rc
- file has been parsed, if any font resources were seen. */
-
-static void
-define_fontdirs (void)
-{
- struct res_resource *r;
- struct res_id id;
-
- id.named = 0;
- id.u.id = 1;
-
- r = define_standard_resource (&resources, RT_FONTDIR, id, 0x409, 0);
-
- r->type = RES_TYPE_FONTDIR;
- r->u.fontdir = fontdirs;
- r->res_info = fontdirs_resinfo;
-}
-
-/* Define an icon resource. An icon file may contain a set of
- bitmaps, each representing the same icon at various different
- resolutions. They each get written out with a different ID. The
- real icon resource is then a group resource which can be used to
- select one of the actual icon bitmaps. */
-
-void
-define_icon (struct res_id id, const struct res_res_info *resinfo,
- const char *filename)
-{
- FILE *e;
- char *real_filename;
- int type, count, i;
- struct icondir *icondirs;
- int first_icon;
- struct res_resource *r;
- struct group_icon *first, **pp;
-
- e = open_file_search (filename, FOPEN_RB, "icon file", &real_filename);
-
- /* The start of an icon file is a three word structure. The first
- word is ignored. The second word is the type of data. The third
- word is the number of entries. */
-
- get_word (e, real_filename);
- type = get_word (e, real_filename);
- count = get_word (e, real_filename);
- if (type != 1)
- fatal (_("icon file `%s' does not contain icon data"), real_filename);
-
- /* Read in the icon directory entries. */
-
- icondirs = (struct icondir *) xmalloc (count * sizeof *icondirs);
-
- for (i = 0; i < count; i++)
- {
- icondirs[i].width = getc (e);
- icondirs[i].height = getc (e);
- icondirs[i].colorcount = getc (e);
- getc (e);
- icondirs[i].u.icon.planes = get_word (e, real_filename);
- icondirs[i].u.icon.bits = get_word (e, real_filename);
- icondirs[i].bytes = get_long (e, real_filename);
- icondirs[i].offset = get_long (e, real_filename);
-
- if (feof (e))
- unexpected_eof (real_filename);
- }
-
- /* Define each icon as a unique resource. */
-
- first_icon = icons;
-
- for (i = 0; i < count; i++)
- {
- unsigned char *data;
- struct res_id name;
-
- if (fseek (e, icondirs[i].offset, SEEK_SET) != 0)
- fatal (_("%s: fseek to %lu failed: %s"), real_filename,
- icondirs[i].offset, strerror (errno));
-
- data = (unsigned char *) res_alloc (icondirs[i].bytes);
-
- get_data (e, data, icondirs[i].bytes, real_filename);
-
- ++icons;
-
- name.named = 0;
- name.u.id = icons;
-
- r = define_standard_resource (&resources, RT_ICON, name,
- resinfo->language, 0);
- r->type = RES_TYPE_ICON;
- r->u.data.length = icondirs[i].bytes;
- r->u.data.data = data;
- r->res_info = *resinfo;
- }
-
- fclose (e);
- free (real_filename);
-
- /* Define an icon group resource. */
-
- first = NULL;
- pp = &first;
- for (i = 0; i < count; i++)
- {
- struct group_icon *cg;
-
- /* For some reason, at least in some files the planes and bits
- are zero. We instead set them from the color. This is
- copied from rcl. */
-
- cg = (struct group_icon *) res_alloc (sizeof *cg);
- cg->next = NULL;
- cg->width = icondirs[i].width;
- cg->height = icondirs[i].height;
- cg->colors = icondirs[i].colorcount;
-
- if (icondirs[i].u.icon.planes)
- cg->planes = icondirs[i].u.icon.planes;
- else
- cg->planes = 1;
-
- if (icondirs[i].u.icon.bits)
- cg->bits = icondirs[i].u.icon.bits;
- else
- {
- cg->bits = 0;
-
- while ((1L << cg->bits) < cg->colors)
- ++cg->bits;
- }
-
- cg->bytes = icondirs[i].bytes;
- cg->index = first_icon + i + 1;
-
- *pp = cg;
- pp = &(*pp)->next;
- }
-
- free (icondirs);
-
- r = define_standard_resource (&resources, RT_GROUP_ICON, id,
- resinfo->language, 0);
- r->type = RES_TYPE_GROUP_ICON;
- r->u.group_icon = first;
- r->res_info = *resinfo;
-}
-
-/* Define a menu resource. */
-
-void
-define_menu (struct res_id id, const struct res_res_info *resinfo,
- struct menuitem *menuitems)
-{
- struct menu *m;
- struct res_resource *r;
-
- m = (struct menu *) res_alloc (sizeof *m);
- m->items = menuitems;
- m->help = 0;
-
- r = define_standard_resource (&resources, RT_MENU, id, resinfo->language, 0);
- r->type = RES_TYPE_MENU;
- r->u.menu = m;
- r->res_info = *resinfo;
-}
-
-/* Define a menu item. This does not define a resource, but merely
- allocates and fills in a structure. */
-
-struct menuitem *
-define_menuitem (const char *text, int menuid, unsigned long type,
- unsigned long state, unsigned long help,
- struct menuitem *menuitems)
-{
- struct menuitem *mi;
-
- mi = (struct menuitem *) res_alloc (sizeof *mi);
- mi->next = NULL;
- mi->type = type;
- mi->state = state;
- mi->id = menuid;
- if (text == NULL)
- mi->text = NULL;
- else
- unicode_from_ascii ((int *) NULL, &mi->text, text);
- mi->help = help;
- mi->popup = menuitems;
- return mi;
-}
-
-/* Define a messagetable resource. */
-
-void
-define_messagetable (struct res_id id, const struct res_res_info *resinfo,
- const char *filename)
-{
- FILE *e;
- char *real_filename;
- struct stat s;
- unsigned char *data;
- struct res_resource *r;
-
- e = open_file_search (filename, FOPEN_RB, "messagetable file",
- &real_filename);
-
- if (stat (real_filename, &s) < 0)
- fatal (_("stat failed on bitmap file `%s': %s"), real_filename,
- strerror (errno));
-
- data = (unsigned char *) res_alloc (s.st_size);
-
- get_data (e, data, s.st_size, real_filename);
-
- fclose (e);
- free (real_filename);
-
- r = define_standard_resource (&resources, RT_MESSAGETABLE, id,
- resinfo->language, 0);
-
- r->type = RES_TYPE_MESSAGETABLE;
- r->u.data.length = s.st_size;
- r->u.data.data = data;
- r->res_info = *resinfo;
-}
-
-/* Define an rcdata resource. */
-
-void
-define_rcdata (struct res_id id, const struct res_res_info *resinfo,
- struct rcdata_item *data)
-{
- struct res_resource *r;
-
- r = define_standard_resource (&resources, RT_RCDATA, id,
- resinfo->language, 0);
- r->type = RES_TYPE_RCDATA;
- r->u.rcdata = data;
- r->res_info = *resinfo;
-}
-
-/* Create an rcdata item holding a string. */
-
-struct rcdata_item *
-define_rcdata_string (const char *string, unsigned long len)
-{
- struct rcdata_item *ri;
- char *s;
-
- ri = (struct rcdata_item *) res_alloc (sizeof *ri);
- ri->next = NULL;
- ri->type = RCDATA_STRING;
- ri->u.string.length = len;
- s = (char *) res_alloc (len);
- memcpy (s, string, len);
- ri->u.string.s = s;
-
- return ri;
-}
-
-/* Create an rcdata item holding a number. */
-
-struct rcdata_item *
-define_rcdata_number (unsigned long val, int dword)
-{
- struct rcdata_item *ri;
-
- ri = (struct rcdata_item *) res_alloc (sizeof *ri);
- ri->next = NULL;
- ri->type = dword ? RCDATA_DWORD : RCDATA_WORD;
- ri->u.word = val;
-
- return ri;
-}
-
-/* Define a stringtable resource. This is called for each string
- which appears in a STRINGTABLE statement. */
-
-void
-define_stringtable (const struct res_res_info *resinfo,
- unsigned long stringid, const char *string)
-{
- struct res_id id;
- struct res_resource *r;
-
- id.named = 0;
- id.u.id = (stringid >> 4) + 1;
- r = define_standard_resource (&resources, RT_STRING, id,
- resinfo->language, 1);
-
- if (r->type == RES_TYPE_UNINITIALIZED)
- {
- int i;
-
- r->type = RES_TYPE_STRINGTABLE;
- r->u.stringtable = ((struct stringtable *)
- res_alloc (sizeof (struct stringtable)));
- for (i = 0; i < 16; i++)
- {
- r->u.stringtable->strings[i].length = 0;
- r->u.stringtable->strings[i].string = NULL;
- }
-
- r->res_info = *resinfo;
- }
-
- unicode_from_ascii (&r->u.stringtable->strings[stringid & 0xf].length,
- &r->u.stringtable->strings[stringid & 0xf].string,
- string);
-}
-
-/* Define a user data resource where the data is in the rc file. */
-
-void
-define_user_data (struct res_id id, struct res_id type,
- const struct res_res_info *resinfo,
- struct rcdata_item *data)
-{
- struct res_id ids[3];
- struct res_resource *r;
-
- ids[0] = type;
- ids[1] = id;
- ids[2].named = 0;
- ids[2].u.id = resinfo->language;
-
- r = define_resource (& resources, 3, ids, 0);
- r->type = RES_TYPE_USERDATA;
- r->u.userdata = data;
- r->res_info = *resinfo;
-}
-
-void
-define_rcdata_file (struct res_id id, const struct res_res_info *resinfo,
- const char *filename)
-{
- struct rcdata_item *ri;
- FILE *e;
- char *real_filename;
- struct stat s;
- unsigned char *data;
-
- e = open_file_search (filename, FOPEN_RB, "file", &real_filename);
-
-
- if (stat (real_filename, &s) < 0)
- fatal (_("stat failed on file `%s': %s"), real_filename,
- strerror (errno));
-
- data = (unsigned char *) res_alloc (s.st_size);
-
- get_data (e, data, s.st_size, real_filename);
-
- fclose (e);
- free (real_filename);
-
- ri = (struct rcdata_item *) res_alloc (sizeof *ri);
- ri->next = NULL;
- ri->type = RCDATA_BUFFER;
- ri->u.buffer.length = s.st_size;
- ri->u.buffer.data = data;
-
- define_rcdata (id, resinfo, ri);
-}
-
-/* Define a user data resource where the data is in a file. */
-
-void
-define_user_file (struct res_id id, struct res_id type,
- const struct res_res_info *resinfo, const char *filename)
-{
- FILE *e;
- char *real_filename;
- struct stat s;
- unsigned char *data;
- struct res_id ids[3];
- struct res_resource *r;
-
- e = open_file_search (filename, FOPEN_RB, "file", &real_filename);
-
- if (stat (real_filename, &s) < 0)
- fatal (_("stat failed on file `%s': %s"), real_filename,
- strerror (errno));
-
- data = (unsigned char *) res_alloc (s.st_size);
-
- get_data (e, data, s.st_size, real_filename);
-
- fclose (e);
- free (real_filename);
-
- ids[0] = type;
- ids[1] = id;
- ids[2].named = 0;
- ids[2].u.id = resinfo->language;
-
- r = define_resource (&resources, 3, ids, 0);
- r->type = RES_TYPE_USERDATA;
- r->u.userdata = ((struct rcdata_item *)
- res_alloc (sizeof (struct rcdata_item)));
- r->u.userdata->next = NULL;
- r->u.userdata->type = RCDATA_BUFFER;
- r->u.userdata->u.buffer.length = s.st_size;
- r->u.userdata->u.buffer.data = data;
- r->res_info = *resinfo;
-}
-
-/* Define a versioninfo resource. */
-
-void
-define_versioninfo (struct res_id id, int language,
- struct fixed_versioninfo *fixedverinfo,
- struct ver_info *verinfo)
-{
- struct res_resource *r;
-
- r = define_standard_resource (&resources, RT_VERSION, id, language, 0);
- r->type = RES_TYPE_VERSIONINFO;
- r->u.versioninfo = ((struct versioninfo *)
- res_alloc (sizeof (struct versioninfo)));
- r->u.versioninfo->fixed = fixedverinfo;
- r->u.versioninfo->var = verinfo;
- r->res_info.language = language;
-}
-
-/* Add string version info to a list of version information. */
-
-struct ver_info *
-append_ver_stringfileinfo (struct ver_info *verinfo, const char *language,
- struct ver_stringinfo *strings)
-{
- struct ver_info *vi, **pp;
-
- vi = (struct ver_info *) res_alloc (sizeof *vi);
- vi->next = NULL;
- vi->type = VERINFO_STRING;
- unicode_from_ascii ((int *) NULL, &vi->u.string.language, language);
- vi->u.string.strings = strings;
-
- for (pp = &verinfo; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = vi;
-
- return verinfo;
-}
-
-/* Add variable version info to a list of version information. */
-
-struct ver_info *
-append_ver_varfileinfo (struct ver_info *verinfo, const char *key,
- struct ver_varinfo *var)
-{
- struct ver_info *vi, **pp;
-
- vi = (struct ver_info *) res_alloc (sizeof *vi);
- vi->next = NULL;
- vi->type = VERINFO_VAR;
- unicode_from_ascii ((int *) NULL, &vi->u.var.key, key);
- vi->u.var.var = var;
-
- for (pp = &verinfo; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = vi;
-
- return verinfo;
-}
-
-/* Append version string information to a list. */
-
-struct ver_stringinfo *
-append_verval (struct ver_stringinfo *strings, const char *key,
- const char *value)
-{
- struct ver_stringinfo *vs, **pp;
-
- vs = (struct ver_stringinfo *) res_alloc (sizeof *vs);
- vs->next = NULL;
- unicode_from_ascii ((int *) NULL, &vs->key, key);
- unicode_from_ascii ((int *) NULL, &vs->value, value);
-
- for (pp = &strings; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = vs;
-
- return strings;
-}
-
-/* Append version variable information to a list. */
-
-struct ver_varinfo *
-append_vertrans (struct ver_varinfo *var, unsigned long language,
- unsigned long charset)
-{
- struct ver_varinfo *vv, **pp;
-
- vv = (struct ver_varinfo *) res_alloc (sizeof *vv);
- vv->next = NULL;
- vv->language = language;
- vv->charset = charset;
-
- for (pp = &var; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = vv;
-
- return var;
-}
-
-/* Local functions used to write out an rc file. */
-
-static void indent (FILE *, int);
-static void write_rc_directory
- (FILE *, const struct res_directory *, const struct res_id *,
- const struct res_id *, int *, int);
-static void write_rc_subdir
- (FILE *, const struct res_entry *, const struct res_id *,
- const struct res_id *, int *, int);
-static void write_rc_resource
- (FILE *, const struct res_id *, const struct res_id *,
- const struct res_resource *, int *);
-static void write_rc_accelerators (FILE *, const struct accelerator *);
-static void write_rc_cursor (FILE *, const struct cursor *);
-static void write_rc_group_cursor (FILE *, const struct group_cursor *);
-static void write_rc_dialog (FILE *, const struct dialog *);
-static void write_rc_dialog_control (FILE *, const struct dialog_control *);
-static void write_rc_fontdir (FILE *, const struct fontdir *);
-static void write_rc_group_icon (FILE *, const struct group_icon *);
-static void write_rc_menu (FILE *, const struct menu *, int);
-static void write_rc_menuitems (FILE *, const struct menuitem *, int, int);
-static void write_rc_rcdata (FILE *, const struct rcdata_item *, int);
-static void write_rc_stringtable
- (FILE *, const struct res_id *, const struct stringtable *);
-static void write_rc_versioninfo (FILE *, const struct versioninfo *);
-static void write_rc_filedata (FILE *, unsigned long, const unsigned char *);
-
-/* Indent a given number of spaces. */
-
-static void
-indent (FILE *e, int c)
-{
- int i;
-
- for (i = 0; i < c; i++)
- putc (' ', e);
-}
-
-/* Dump the resources we have read in the format of an rc file.
-
- Actually, we don't use the format of an rc file, because it's way
- too much of a pain--for example, we'd have to write icon resources
- into a file and refer to that file. We just generate a readable
- format that kind of looks like an rc file, and is useful for
- understanding the contents of a resource file. Someday we may want
- to generate an rc file which the rc compiler can read; if that day
- comes, this code will have to be fixed up. */
-
-void
-write_rc_file (const char *filename, const struct res_directory *resources)
-{
- FILE *e;
- int language;
-
- if (filename == NULL)
- e = stdout;
- else
- {
- e = fopen (filename, FOPEN_WT);
- if (e == NULL)
- fatal (_("can't open `%s' for output: %s"), filename, strerror (errno));
- }
-
- language = -1;
- write_rc_directory (e, resources, (const struct res_id *) NULL,
- (const struct res_id *) NULL, &language, 1);
-}
-
-/* Write out a directory. E is the file to write to. RD is the
- directory. TYPE is a pointer to the level 1 ID which serves as the
- resource type. NAME is a pointer to the level 2 ID which serves as
- an individual resource name. LANGUAGE is a pointer to the current
- language. LEVEL is the level in the tree. */
-
-static void
-write_rc_directory (FILE *e, const struct res_directory *rd,
- const struct res_id *type, const struct res_id *name,
- int *language, int level)
-{
- const struct res_entry *re;
-
- /* Print out some COFF information that rc files can't represent. */
-
- if (rd->time != 0)
- fprintf (e, "// Time stamp: %lu\n", rd->time);
- if (rd->characteristics != 0)
- fprintf (e, "// Characteristics: %lu\n", rd->characteristics);
- if (rd->major != 0 || rd->minor != 0)
- fprintf (e, "// Version: %d %d\n", rd->major, rd->minor);
-
- for (re = rd->entries; re != NULL; re = re->next)
- {
- switch (level)
- {
- case 1:
- /* If we're at level 1, the key of this resource is the
- type. This normally duplicates the information we have
- stored with the resource itself, but we need to remember
- the type if this is a user define resource type. */
- type = &re->id;
- break;
-
- case 2:
- /* If we're at level 2, the key of this resource is the name
- we are going to use in the rc printout. */
- name = &re->id;
- break;
-
- case 3:
- /* If we're at level 3, then this key represents a language.
- Use it to update the current language. */
- if (! re->id.named
- && re->id.u.id != (unsigned long) (unsigned int) *language
- && (re->id.u.id & 0xffff) == re->id.u.id)
- {
- fprintf (e, "LANGUAGE %lu, %lu\n",
- re->id.u.id & ((1 << SUBLANG_SHIFT) - 1),
- (re->id.u.id >> SUBLANG_SHIFT) & 0xff);
- *language = re->id.u.id;
- }
- break;
-
- default:
- break;
- }
-
- if (re->subdir)
- write_rc_subdir (e, re, type, name, language, level);
- else
- {
- if (level == 3)
- {
- /* This is the normal case: the three levels are
- TYPE/NAME/LANGUAGE. NAME will have been set at level
- 2, and represents the name to use. We probably just
- set LANGUAGE, and it will probably match what the
- resource itself records if anything. */
- write_rc_resource (e, type, name, re->u.res, language);
- }
- else
- {
- fprintf (e, "// Resource at unexpected level %d\n", level);
- write_rc_resource (e, type, (struct res_id *) NULL, re->u.res,
- language);
- }
- }
- }
-}
-
-/* Write out a subdirectory entry. E is the file to write to. RE is
- the subdirectory entry. TYPE and NAME are pointers to higher level
- IDs, or NULL. LANGUAGE is a pointer to the current language.
- LEVEL is the level in the tree. */
-
-static void
-write_rc_subdir (FILE *e, const struct res_entry *re,
- const struct res_id *type, const struct res_id *name,
- int *language, int level)
-{
- fprintf (e, "\n");
- switch (level)
- {
- case 1:
- fprintf (e, "// Type: ");
- if (re->id.named)
- res_id_print (e, re->id, 1);
- else
- {
- const char *s;
-
- switch (re->id.u.id)
- {
- case RT_CURSOR: s = "cursor"; break;
- case RT_BITMAP: s = "bitmap"; break;
- case RT_ICON: s = "icon"; break;
- case RT_MENU: s = "menu"; break;
- case RT_DIALOG: s = "dialog"; break;
- case RT_STRING: s = "stringtable"; break;
- case RT_FONTDIR: s = "fontdir"; break;
- case RT_FONT: s = "font"; break;
- case RT_ACCELERATOR: s = "accelerators"; break;
- case RT_RCDATA: s = "rcdata"; break;
- case RT_MESSAGETABLE: s = "messagetable"; break;
- case RT_GROUP_CURSOR: s = "group cursor"; break;
- case RT_GROUP_ICON: s = "group icon"; break;
- case RT_VERSION: s = "version"; break;
- case RT_DLGINCLUDE: s = "dlginclude"; break;
- case RT_PLUGPLAY: s = "plugplay"; break;
- case RT_VXD: s = "vxd"; break;
- case RT_ANICURSOR: s = "anicursor"; break;
- case RT_ANIICON: s = "aniicon"; break;
- default: s = NULL; break;
- }
-
- if (s != NULL)
- fprintf (e, "%s", s);
- else
- res_id_print (e, re->id, 1);
- }
- fprintf (e, "\n");
- break;
-
- case 2:
- fprintf (e, "// Name: ");
- res_id_print (e, re->id, 1);
- fprintf (e, "\n");
- break;
-
- case 3:
- fprintf (e, "// Language: ");
- res_id_print (e, re->id, 1);
- fprintf (e, "\n");
- break;
-
- default:
- fprintf (e, "// Level %d: ", level);
- res_id_print (e, re->id, 1);
- fprintf (e, "\n");
- }
-
- write_rc_directory (e, re->u.dir, type, name, language, level + 1);
-}
-
-/* Write out a single resource. E is the file to write to. TYPE is a
- pointer to the type of the resource. NAME is a pointer to the name
- of the resource; it will be NULL if there is a level mismatch. RES
- is the resource data. LANGUAGE is a pointer to the current
- language. */
-
-static void
-write_rc_resource (FILE *e, const struct res_id *type,
- const struct res_id *name, const struct res_resource *res,
- int *language)
-{
- const char *s;
- int rt;
- int menuex = 0;
-
- fprintf (e, "\n");
-
- switch (res->type)
- {
- default:
- abort ();
-
- case RES_TYPE_ACCELERATOR:
- s = "ACCELERATOR";
- rt = RT_ACCELERATOR;
- break;
-
- case RES_TYPE_BITMAP:
- s = "BITMAP";
- rt = RT_BITMAP;
- break;
-
- case RES_TYPE_CURSOR:
- s = "CURSOR";
- rt = RT_CURSOR;
- break;
-
- case RES_TYPE_GROUP_CURSOR:
- s = "GROUP_CURSOR";
- rt = RT_GROUP_CURSOR;
- break;
-
- case RES_TYPE_DIALOG:
- if (extended_dialog (res->u.dialog))
- s = "DIALOGEX";
- else
- s = "DIALOG";
- rt = RT_DIALOG;
- break;
-
- case RES_TYPE_FONT:
- s = "FONT";
- rt = RT_FONT;
- break;
-
- case RES_TYPE_FONTDIR:
- s = "FONTDIR";
- rt = RT_FONTDIR;
- break;
-
- case RES_TYPE_ICON:
- s = "ICON";
- rt = RT_ICON;
- break;
-
- case RES_TYPE_GROUP_ICON:
- s = "GROUP_ICON";
- rt = RT_GROUP_ICON;
- break;
-
- case RES_TYPE_MENU:
- if (extended_menu (res->u.menu))
- {
- s = "MENUEX";
- menuex = 1;
- }
- else
- {
- s = "MENU";
- menuex = 0;
- }
- rt = RT_MENU;
- break;
-
- case RES_TYPE_MESSAGETABLE:
- s = "MESSAGETABLE";
- rt = RT_MESSAGETABLE;
- break;
-
- case RES_TYPE_RCDATA:
- s = "RCDATA";
- rt = RT_RCDATA;
- break;
-
- case RES_TYPE_STRINGTABLE:
- s = "STRINGTABLE";
- rt = RT_STRING;
- break;
-
- case RES_TYPE_USERDATA:
- s = NULL;
- rt = 0;
- break;
-
- case RES_TYPE_VERSIONINFO:
- s = "VERSIONINFO";
- rt = RT_VERSION;
- break;
- }
-
- if (rt != 0
- && type != NULL
- && (type->named || type->u.id != (unsigned long) rt))
- {
- fprintf (e, "// Unexpected resource type mismatch: ");
- res_id_print (e, *type, 1);
- fprintf (e, " != %d", rt);
- }
-
- if (res->coff_info.codepage != 0)
- fprintf (e, "// Code page: %lu\n", res->coff_info.codepage);
- if (res->coff_info.reserved != 0)
- fprintf (e, "// COFF reserved value: %lu\n", res->coff_info.reserved);
-
- if (name != NULL)
- res_id_print (e, *name, 0);
- else
- fprintf (e, "??Unknown-Name??");
-
- fprintf (e, " ");
- if (s != NULL)
- fprintf (e, "%s", s);
- else if (type != NULL)
- res_id_print (e, *type, 0);
- else
- fprintf (e, "??Unknown-Type??");
-
- if (res->res_info.memflags != 0)
- {
- if ((res->res_info.memflags & MEMFLAG_MOVEABLE) != 0)
- fprintf (e, " MOVEABLE");
- if ((res->res_info.memflags & MEMFLAG_PURE) != 0)
- fprintf (e, " PURE");
- if ((res->res_info.memflags & MEMFLAG_PRELOAD) != 0)
- fprintf (e, " PRELOAD");
- if ((res->res_info.memflags & MEMFLAG_DISCARDABLE) != 0)
- fprintf (e, " DISCARDABLE");
- }
-
- if (res->type == RES_TYPE_DIALOG)
- {
- fprintf (e, " %d, %d, %d, %d", res->u.dialog->x, res->u.dialog->y,
- res->u.dialog->width, res->u.dialog->height);
- if (res->u.dialog->ex != NULL
- && res->u.dialog->ex->help != 0)
- fprintf (e, ", %lu", res->u.dialog->ex->help);
- }
-
- fprintf (e, "\n");
-
- if ((res->res_info.language != 0 && res->res_info.language != *language)
- || res->res_info.characteristics != 0
- || res->res_info.version != 0)
- {
- int modifiers;
-
- switch (res->type)
- {
- case RES_TYPE_ACCELERATOR:
- case RES_TYPE_DIALOG:
- case RES_TYPE_MENU:
- case RES_TYPE_RCDATA:
- case RES_TYPE_STRINGTABLE:
- modifiers = 1;
- break;
-
- default:
- modifiers = 0;
- break;
- }
-
- if (res->res_info.language != 0 && res->res_info.language != *language)
- fprintf (e, "%sLANGUAGE %d, %d\n",
- modifiers ? "// " : "",
- res->res_info.language & ((1<<SUBLANG_SHIFT)-1),
- (res->res_info.language >> SUBLANG_SHIFT) & 0xff);
- if (res->res_info.characteristics != 0)
- fprintf (e, "%sCHARACTERISTICS %lu\n",
- modifiers ? "// " : "",
- res->res_info.characteristics);
- if (res->res_info.version != 0)
- fprintf (e, "%sVERSION %lu\n",
- modifiers ? "// " : "",
- res->res_info.version);
- }
-
- switch (res->type)
- {
- default:
- abort ();
-
- case RES_TYPE_ACCELERATOR:
- write_rc_accelerators (e, res->u.acc);
- break;
-
- case RES_TYPE_CURSOR:
- write_rc_cursor (e, res->u.cursor);
- break;
-
- case RES_TYPE_GROUP_CURSOR:
- write_rc_group_cursor (e, res->u.group_cursor);
- break;
-
- case RES_TYPE_DIALOG:
- write_rc_dialog (e, res->u.dialog);
- break;
-
- case RES_TYPE_FONTDIR:
- write_rc_fontdir (e, res->u.fontdir);
- break;
-
- case RES_TYPE_GROUP_ICON:
- write_rc_group_icon (e, res->u.group_icon);
- break;
-
- case RES_TYPE_MENU:
- write_rc_menu (e, res->u.menu, menuex);
- break;
-
- case RES_TYPE_RCDATA:
- write_rc_rcdata (e, res->u.rcdata, 0);
- break;
-
- case RES_TYPE_STRINGTABLE:
- write_rc_stringtable (e, name, res->u.stringtable);
- break;
-
- case RES_TYPE_USERDATA:
- write_rc_rcdata (e, res->u.userdata, 0);
- break;
-
- case RES_TYPE_VERSIONINFO:
- write_rc_versioninfo (e, res->u.versioninfo);
- break;
-
- case RES_TYPE_BITMAP:
- case RES_TYPE_FONT:
- case RES_TYPE_ICON:
- case RES_TYPE_MESSAGETABLE:
- write_rc_filedata (e, res->u.data.length, res->u.data.data);
- break;
- }
-}
-
-/* Write out accelerator information. */
-
-static void
-write_rc_accelerators (FILE *e, const struct accelerator *accelerators)
-{
- const struct accelerator *acc;
-
- fprintf (e, "BEGIN\n");
- for (acc = accelerators; acc != NULL; acc = acc->next)
- {
- int printable;
-
- fprintf (e, " ");
-
- if ((acc->key & 0x7f) == acc->key
- && ISPRINT (acc->key)
- && (acc->flags & ACC_VIRTKEY) == 0)
- {
- fprintf (e, "\"%c\"", acc->key);
- printable = 1;
- }
- else
- {
- fprintf (e, "%d", acc->key);
- printable = 0;
- }
-
- fprintf (e, ", %d", acc->id);
-
- if (! printable)
- {
- if ((acc->flags & ACC_VIRTKEY) != 0)
- fprintf (e, ", VIRTKEY");
- else
- fprintf (e, ", ASCII");
- }
-
- if ((acc->flags & ACC_SHIFT) != 0)
- fprintf (e, ", SHIFT");
- if ((acc->flags & ACC_CONTROL) != 0)
- fprintf (e, ", CONTROL");
- if ((acc->flags & ACC_ALT) != 0)
- fprintf (e, ", ALT");
-
- fprintf (e, "\n");
- }
-
- fprintf (e, "END\n");
-}
-
-/* Write out cursor information. This would normally be in a separate
- file, which the rc file would include. */
-
-static void
-write_rc_cursor (FILE *e, const struct cursor *cursor)
-{
- fprintf (e, "// Hotspot: x: %d; y: %d\n", cursor->xhotspot,
- cursor->yhotspot);
- write_rc_filedata (e, cursor->length, cursor->data);
-}
-
-/* Write out group cursor data. This would normally be built from the
- cursor data. */
-
-static void
-write_rc_group_cursor (FILE *e, const struct group_cursor *group_cursor)
-{
- const struct group_cursor *gc;
-
- for (gc = group_cursor; gc != NULL; gc = gc->next)
- {
- fprintf (e, "// width: %d; height %d; planes %d; bits %d\n",
- gc->width, gc->height, gc->planes, gc->bits);
- fprintf (e, "// data bytes: %lu; index: %d\n",
- gc->bytes, gc->index);
- }
-}
-
-/* Write dialog data. */
-
-static void
-write_rc_dialog (FILE *e, const struct dialog *dialog)
-{
- const struct dialog_control *control;
-
- fprintf (e, "STYLE 0x%lx\n", dialog->style);
-
- if (dialog->exstyle != 0)
- fprintf (e, "EXSTYLE 0x%lx\n", dialog->exstyle);
-
- if ((dialog->class.named && dialog->class.u.n.length > 0)
- || dialog->class.u.id != 0)
- {
- fprintf (e, "CLASS ");
- res_id_print (e, dialog->class, 1);
- fprintf (e, "\n");
- }
-
- if (dialog->caption != NULL)
- {
- fprintf (e, "CAPTION \"");
- unicode_print (e, dialog->caption, -1);
- fprintf (e, "\"\n");
- }
-
- if ((dialog->menu.named && dialog->menu.u.n.length > 0)
- || dialog->menu.u.id != 0)
- {
- fprintf (e, "MENU ");
- res_id_print (e, dialog->menu, 0);
- fprintf (e, "\n");
- }
-
- if (dialog->font != NULL)
- {
- fprintf (e, "FONT %d, \"", dialog->pointsize);
- unicode_print (e, dialog->font, -1);
- fprintf (e, "\"");
- if (dialog->ex != NULL
- && (dialog->ex->weight != 0
- || dialog->ex->italic != 0
- || dialog->ex->charset != 1))
- fprintf (e, ", %d, %d, %d",
- dialog->ex->weight, dialog->ex->italic, dialog->ex->charset);
- fprintf (e, "\n");
- }
-
- fprintf (e, "BEGIN\n");
-
- for (control = dialog->controls; control != NULL; control = control->next)
- write_rc_dialog_control (e, control);
-
- fprintf (e, "END\n");
-}
-
-/* For each predefined control keyword, this table provides the class
- and the style. */
-
-struct control_info
-{
- const char *name;
- unsigned short class;
- unsigned long style;
-};
-
-static const struct control_info control_info[] =
-{
- { "AUTO3STATE", CTL_BUTTON, BS_AUTO3STATE },
- { "AUTOCHECKBOX", CTL_BUTTON, BS_AUTOCHECKBOX },
- { "AUTORADIOBUTTON", CTL_BUTTON, BS_AUTORADIOBUTTON },
- { "CHECKBOX", CTL_BUTTON, BS_CHECKBOX },
- { "COMBOBOX", CTL_COMBOBOX, (unsigned long) -1 },
- { "CTEXT", CTL_STATIC, SS_CENTER },
- { "DEFPUSHBUTTON", CTL_BUTTON, BS_DEFPUSHBUTTON },
- { "EDITTEXT", CTL_EDIT, (unsigned long) -1 },
- { "GROUPBOX", CTL_BUTTON, BS_GROUPBOX },
- { "ICON", CTL_STATIC, SS_ICON },
- { "LISTBOX", CTL_LISTBOX, (unsigned long) -1 },
- { "LTEXT", CTL_STATIC, SS_LEFT },
- { "PUSHBOX", CTL_BUTTON, BS_PUSHBOX },
- { "PUSHBUTTON", CTL_BUTTON, BS_PUSHBUTTON },
- { "RADIOBUTTON", CTL_BUTTON, BS_RADIOBUTTON },
- { "RTEXT", CTL_STATIC, SS_RIGHT },
- { "SCROLLBAR", CTL_SCROLLBAR, (unsigned long) -1 },
- { "STATE3", CTL_BUTTON, BS_3STATE },
- /* It's important that USERBUTTON come after all the other button
- types, so that it won't be matched too early. */
- { "USERBUTTON", CTL_BUTTON, (unsigned long) -1 },
- { NULL, 0, 0 }
-};
-
-/* Write a dialog control. */
-
-static void
-write_rc_dialog_control (FILE *e, const struct dialog_control *control)
-{
- const struct control_info *ci;
-
- fprintf (e, " ");
-
- if (control->class.named)
- ci = NULL;
- else
- {
- for (ci = control_info; ci->name != NULL; ++ci)
- if (ci->class == control->class.u.id
- && (ci->style == (unsigned long) -1
- || ci->style == (control->style & 0xff)))
- break;
- }
- if (ci == NULL)
- fprintf (e, "CONTROL");
- else if (ci->name != NULL)
- fprintf (e, "%s", ci->name);
- else
- fprintf (e, "CONTROL");
-
- if (control->text.named || control->text.u.id != 0)
- {
- fprintf (e, " ");
- res_id_print (e, control->text, 1);
- fprintf (e, ",");
- }
-
- fprintf (e, " %d, ", control->id);
-
- if (ci == NULL)
- {
- if (control->class.named)
- fprintf (e, "\"");
- res_id_print (e, control->class, 0);
- if (control->class.named)
- fprintf (e, "\"");
- fprintf (e, ", 0x%lx, ", control->style);
- }
-
- fprintf (e, "%d, %d", control->x, control->y);
-
- if (control->style != SS_ICON
- || control->exstyle != 0
- || control->width != 0
- || control->height != 0
- || control->help != 0)
- {
- fprintf (e, ", %d, %d", control->width, control->height);
-
- /* FIXME: We don't need to print the style if it is the default.
- More importantly, in certain cases we actually need to turn
- off parts of the forced style, by using NOT. */
- fprintf (e, ", 0x%lx", control->style);
-
- if (control->exstyle != 0 || control->help != 0)
- fprintf (e, ", 0x%lx, %lu", control->exstyle, control->help);
- }
-
- fprintf (e, "\n");
-
- if (control->data != NULL)
- write_rc_rcdata (e, control->data, 2);
-}
-
-/* Write out font directory data. This would normally be built from
- the font data. */
-
-static void
-write_rc_fontdir (FILE *e, const struct fontdir *fontdir)
-{
- const struct fontdir *fc;
-
- for (fc = fontdir; fc != NULL; fc = fc->next)
- {
- fprintf (e, "// Font index: %d\n", fc->index);
- write_rc_filedata (e, fc->length, fc->data);
- }
-}
-
-/* Write out group icon data. This would normally be built from the
- icon data. */
-
-static void
-write_rc_group_icon (FILE *e, const struct group_icon *group_icon)
-{
- const struct group_icon *gi;
-
- for (gi = group_icon; gi != NULL; gi = gi->next)
- {
- fprintf (e, "// width: %d; height %d; colors: %d; planes %d; bits %d\n",
- gi->width, gi->height, gi->colors, gi->planes, gi->bits);
- fprintf (e, "// data bytes: %lu; index: %d\n",
- gi->bytes, gi->index);
- }
-}
-
-/* Write out a menu resource. */
-
-static void
-write_rc_menu (FILE *e, const struct menu *menu, int menuex)
-{
- if (menu->help != 0)
- fprintf (e, "// Help ID: %lu\n", menu->help);
- write_rc_menuitems (e, menu->items, menuex, 0);
-}
-
-/* Write out menuitems. */
-
-static void
-write_rc_menuitems (FILE *e, const struct menuitem *menuitems, int menuex,
- int ind)
-{
- const struct menuitem *mi;
-
- indent (e, ind);
- fprintf (e, "BEGIN\n");
-
- for (mi = menuitems; mi != NULL; mi = mi->next)
- {
- indent (e, ind + 2);
-
- if (mi->popup == NULL)
- fprintf (e, "MENUITEM");
- else
- fprintf (e, "POPUP");
-
- if (! menuex
- && mi->popup == NULL
- && mi->text == NULL
- && mi->type == 0
- && mi->id == 0)
- {
- fprintf (e, " SEPARATOR\n");
- continue;
- }
-
- if (mi->text == NULL)
- fprintf (e, " \"\"");
- else
- {
- fprintf (e, " \"");
- unicode_print (e, mi->text, -1);
- fprintf (e, "\"");
- }
-
- if (! menuex)
- {
- if (mi->popup == NULL)
- fprintf (e, ", %d", mi->id);
-
- if ((mi->type & MENUITEM_CHECKED) != 0)
- fprintf (e, ", CHECKED");
- if ((mi->type & MENUITEM_GRAYED) != 0)
- fprintf (e, ", GRAYED");
- if ((mi->type & MENUITEM_HELP) != 0)
- fprintf (e, ", HELP");
- if ((mi->type & MENUITEM_INACTIVE) != 0)
- fprintf (e, ", INACTIVE");
- if ((mi->type & MENUITEM_MENUBARBREAK) != 0)
- fprintf (e, ", MENUBARBREAK");
- if ((mi->type & MENUITEM_MENUBREAK) != 0)
- fprintf (e, ", MENUBREAK");
- }
- else
- {
- if (mi->id != 0 || mi->type != 0 || mi->state != 0 || mi->help != 0)
- {
- fprintf (e, ", %d", mi->id);
- if (mi->type != 0 || mi->state != 0 || mi->help != 0)
- {
- fprintf (e, ", %lu", mi->type);
- if (mi->state != 0 || mi->help != 0)
- {
- fprintf (e, ", %lu", mi->state);
- if (mi->help != 0)
- fprintf (e, ", %lu", mi->help);
- }
- }
- }
- }
-
- fprintf (e, "\n");
-
- if (mi->popup != NULL)
- write_rc_menuitems (e, mi->popup, menuex, ind + 2);
- }
-
- indent (e, ind);
- fprintf (e, "END\n");
-}
-
-/* Write out an rcdata resource. This is also used for other types of
- resources that need to print arbitrary data. */
-
-static void
-write_rc_rcdata (FILE *e, const struct rcdata_item *rcdata, int ind)
-{
- const struct rcdata_item *ri;
-
- indent (e, ind);
- fprintf (e, "BEGIN\n");
-
- for (ri = rcdata; ri != NULL; ri = ri->next)
- {
- if (ri->type == RCDATA_BUFFER && ri->u.buffer.length == 0)
- continue;
-
- indent (e, ind + 2);
-
- switch (ri->type)
- {
- default:
- abort ();
-
- case RCDATA_WORD:
- fprintf (e, "%d", ri->u.word);
- break;
-
- case RCDATA_DWORD:
- fprintf (e, "%luL", ri->u.dword);
- break;
-
- case RCDATA_STRING:
- {
- const char *s;
- unsigned long i;
-
- fprintf (e, "\"");
- s = ri->u.string.s;
- for (i = 0; i < ri->u.string.length; i++)
- {
- if (ISPRINT (*s))
- putc (*s, e);
- else
- fprintf (e, "\\%03o", *s);
- }
- fprintf (e, "\"");
- break;
- }
-
- case RCDATA_WSTRING:
- fprintf (e, "L\"");
- unicode_print (e, ri->u.wstring.w, ri->u.wstring.length);
- fprintf (e, "\"");
- break;
-
- case RCDATA_BUFFER:
- {
- unsigned long i;
- int first;
-
- /* Assume little endian data. */
-
- first = 1;
- for (i = 0; i + 3 < ri->u.buffer.length; i += 4)
- {
- unsigned long l;
- int j;
-
- if (! first)
- indent (e, ind + 2);
- l = ((((((ri->u.buffer.data[i + 3] << 8)
- | ri->u.buffer.data[i + 2]) << 8)
- | ri->u.buffer.data[i + 1]) << 8)
- | ri->u.buffer.data[i]);
- fprintf (e, "%luL", l);
- if (i + 4 < ri->u.buffer.length || ri->next != NULL)
- fprintf (e, ",");
- for (j = 0; j < 4; ++j)
- if (! ISPRINT (ri->u.buffer.data[i + j])
- && ri->u.buffer.data[i + j] != 0)
- break;
- if (j >= 4)
- {
- fprintf (e, "\t// ");
- for (j = 0; j < 4; ++j)
- {
- if (! ISPRINT (ri->u.buffer.data[i + j]))
- fprintf (e, "\\%03o", ri->u.buffer.data[i + j]);
- else
- {
- if (ri->u.buffer.data[i + j] == '\\')
- fprintf (e, "\\");
- fprintf (e, "%c", ri->u.buffer.data[i + j]);
- }
- }
- }
- fprintf (e, "\n");
- first = 0;
- }
-
- if (i + 1 < ri->u.buffer.length)
- {
- int s;
- int j;
-
- if (! first)
- indent (e, ind + 2);
- s = (ri->u.buffer.data[i + 1] << 8) | ri->u.buffer.data[i];
- fprintf (e, "%d", s);
- if (i + 2 < ri->u.buffer.length || ri->next != NULL)
- fprintf (e, ",");
- for (j = 0; j < 2; ++j)
- if (! ISPRINT (ri->u.buffer.data[i + j])
- && ri->u.buffer.data[i + j] != 0)
- break;
- if (j >= 2)
- {
- fprintf (e, "\t// ");
- for (j = 0; j < 2; ++j)
- {
- if (! ISPRINT (ri->u.buffer.data[i + j]))
- fprintf (e, "\\%03o", ri->u.buffer.data[i + j]);
- else
- {
- if (ri->u.buffer.data[i + j] == '\\')
- fprintf (e, "\\");
- fprintf (e, "%c", ri->u.buffer.data[i + j]);
- }
- }
- }
- fprintf (e, "\n");
- i += 2;
- first = 0;
- }
-
- if (i < ri->u.buffer.length)
- {
- if (! first)
- indent (e, ind + 2);
- if ((ri->u.buffer.data[i] & 0x7f) == ri->u.buffer.data[i]
- && ISPRINT (ri->u.buffer.data[i]))
- fprintf (e, "\"%c\"", ri->u.buffer.data[i]);
- else
- fprintf (e, "\"\\%03o\"", ri->u.buffer.data[i]);
- if (ri->next != NULL)
- fprintf (e, ",");
- fprintf (e, "\n");
- first = 0;
- }
-
- break;
- }
- }
-
- if (ri->type != RCDATA_BUFFER)
- {
- if (ri->next != NULL)
- fprintf (e, ",");
- fprintf (e, "\n");
- }
- }
-
- indent (e, ind);
- fprintf (e, "END\n");
-}
-
-/* Write out a stringtable resource. */
-
-static void
-write_rc_stringtable (FILE *e, const struct res_id *name,
- const struct stringtable *stringtable)
-{
- unsigned long offset;
- int i;
-
- if (name != NULL && ! name->named)
- offset = (name->u.id - 1) << 4;
- else
- {
- fprintf (e, "// %s string table name\n",
- name == NULL ? "Missing" : "Invalid");
- offset = 0;
- }
-
- fprintf (e, "BEGIN\n");
-
- for (i = 0; i < 16; i++)
- {
- if (stringtable->strings[i].length != 0)
- {
- fprintf (e, " %lu, \"", offset + i);
- unicode_print (e, stringtable->strings[i].string,
- stringtable->strings[i].length);
- fprintf (e, "\"\n");
- }
- }
-
- fprintf (e, "END\n");
-}
-
-/* Write out a versioninfo resource. */
-
-static void
-write_rc_versioninfo (FILE *e, const struct versioninfo *versioninfo)
-{
- const struct fixed_versioninfo *f;
- const struct ver_info *vi;
-
- f = versioninfo->fixed;
- if (f->file_version_ms != 0 || f->file_version_ls != 0)
- fprintf (e, " FILEVERSION %lu, %lu, %lu, %lu\n",
- (f->file_version_ms >> 16) & 0xffff,
- f->file_version_ms & 0xffff,
- (f->file_version_ls >> 16) & 0xffff,
- f->file_version_ls & 0xffff);
- if (f->product_version_ms != 0 || f->product_version_ls != 0)
- fprintf (e, " PRODUCTVERSION %lu, %lu, %lu, %lu\n",
- (f->product_version_ms >> 16) & 0xffff,
- f->product_version_ms & 0xffff,
- (f->product_version_ls >> 16) & 0xffff,
- f->product_version_ls & 0xffff);
- if (f->file_flags_mask != 0)
- fprintf (e, " FILEFLAGSMASK 0x%lx\n", f->file_flags_mask);
- if (f->file_flags != 0)
- fprintf (e, " FILEFLAGS 0x%lx\n", f->file_flags);
- if (f->file_os != 0)
- fprintf (e, " FILEOS 0x%lx\n", f->file_os);
- if (f->file_type != 0)
- fprintf (e, " FILETYPE 0x%lx\n", f->file_type);
- if (f->file_subtype != 0)
- fprintf (e, " FILESUBTYPE 0x%lx\n", f->file_subtype);
- if (f->file_date_ms != 0 || f->file_date_ls != 0)
- fprintf (e, "// Date: %lu, %lu\n", f->file_date_ms, f->file_date_ls);
-
- fprintf (e, "BEGIN\n");
-
- for (vi = versioninfo->var; vi != NULL; vi = vi->next)
- {
- switch (vi->type)
- {
- case VERINFO_STRING:
- {
- const struct ver_stringinfo *vs;
-
- fprintf (e, " BLOCK \"StringFileInfo\"\n");
- fprintf (e, " BEGIN\n");
- fprintf (e, " BLOCK \"");
- unicode_print (e, vi->u.string.language, -1);
- fprintf (e, "\"\n");
- fprintf (e, " BEGIN\n");
-
- for (vs = vi->u.string.strings; vs != NULL; vs = vs->next)
- {
- fprintf (e, " VALUE \"");
- unicode_print (e, vs->key, -1);
- fprintf (e, "\", \"");
- unicode_print (e, vs->value, -1);
- fprintf (e, "\"\n");
- }
-
- fprintf (e, " END\n");
- fprintf (e, " END\n");
- break;
- }
-
- case VERINFO_VAR:
- {
- const struct ver_varinfo *vv;
-
- fprintf (e, " BLOCK \"VarFileInfo\"\n");
- fprintf (e, " BEGIN\n");
- fprintf (e, " VALUE \"");
- unicode_print (e, vi->u.var.key, -1);
- fprintf (e, "\"");
-
- for (vv = vi->u.var.var; vv != NULL; vv = vv->next)
- fprintf (e, ", 0x%x, %d", (unsigned int) vv->language,
- vv->charset);
-
- fprintf (e, "\n END\n");
-
- break;
- }
- }
- }
-
- fprintf (e, "END\n");
-}
-
-/* Write out data which would normally be read from a file. */
-
-static void
-write_rc_filedata (FILE *e, unsigned long length, const unsigned char *data)
-{
- unsigned long i;
-
- for (i = 0; i + 15 < length; i += 16)
- {
- fprintf (e, "// %4lx: ", i);
- fprintf (e, "%02x %02x %02x %02x %02x %02x %02x %02x ",
- data[i + 0], data[i + 1], data[i + 2], data[i + 3],
- data[i + 4], data[i + 5], data[i + 6], data[i + 7]);
- fprintf (e, "%02x %02x %02x %02x %02x %02x %02x %02x\n",
- data[i + 8], data[i + 9], data[i + 10], data[i + 11],
- data[i + 12], data[i + 13], data[i + 14], data[i + 15]);
- }
-
- if (i < length)
- {
- fprintf (e, "// %4lx:", i);
- while (i < length)
- {
- fprintf (e, " %02x", data[i]);
- ++i;
- }
- fprintf (e, "\n");
- }
-}
diff --git a/binutils-2.17/binutils/resres.c b/binutils-2.17/binutils/resres.c
deleted file mode 100644
index 1489d5ee..00000000
--- a/binutils-2.17/binutils/resres.c
+++ /dev/null
@@ -1,663 +0,0 @@
-/* resres.c: read_res_file and write_res_file implementation for windres.
- Copyright 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
- Written by Anders Norlander <anorland@hem2.passagen.se>.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* FIXME: This file does not work correctly in a cross configuration.
- It assumes that it can use fread and fwrite to read and write
- integers. It does no swapping. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "windres.h"
-
-#include <assert.h>
-#include <time.h>
-
-struct res_hdr
- {
- unsigned long data_size;
- unsigned long header_size;
- };
-
-static void write_res_directory
- PARAMS ((const struct res_directory *,
- const struct res_id *, const struct res_id *,
- int *, int));
-static void write_res_resource
- PARAMS ((const struct res_id *, const struct res_id *,
- const struct res_resource *, int *));
-static void write_res_bin
- PARAMS ((const struct res_resource *, const struct res_id *,
- const struct res_id *, const struct res_res_info *));
-
-static void write_res_id PARAMS ((const struct res_id *));
-static void write_res_info PARAMS ((const struct res_res_info *));
-static void write_res_data PARAMS ((const void *, size_t, int));
-static void write_res_header
- PARAMS ((unsigned long, const struct res_id *, const struct res_id *,
- const struct res_res_info *));
-
-static int read_resource_entry PARAMS ((void));
-static void read_res_data PARAMS ((void *, size_t, int));
-static void read_res_id PARAMS ((struct res_id *));
-static unichar *read_unistring PARAMS ((int *));
-static void skip_null_resource PARAMS ((void));
-
-static unsigned long get_id_size PARAMS ((const struct res_id *));
-static void res_align_file PARAMS ((void));
-
-static void
- res_add_resource
- PARAMS ((struct res_resource *, const struct res_id *,
- const struct res_id *, int, int));
-
-void
- res_append_resource
- PARAMS ((struct res_directory **, struct res_resource *,
- int, const struct res_id *, int));
-
-static struct res_directory *resources = NULL;
-
-static FILE *fres;
-static const char *filename;
-
-extern char *program_name;
-
-/* Read resource file */
-struct res_directory *
-read_res_file (fn)
- const char *fn;
-{
- filename = fn;
- fres = fopen (filename, "rb");
- if (fres == NULL)
- fatal ("can't open `%s' for output: %s", filename, strerror (errno));
-
- skip_null_resource ();
-
- while (read_resource_entry ())
- ;
-
- fclose (fres);
-
- return resources;
-}
-
-/* Write resource file */
-void
-write_res_file (fn, resdir)
- const char *fn;
- const struct res_directory *resdir;
-{
- int language;
- static const unsigned char sign[] =
- {0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
- long fpos;
-
- filename = fn;
-
- fres = fopen (filename, "wb");
- if (fres == NULL)
- fatal ("can't open `%s' for output: %s", filename, strerror (errno));
-
- /* Write 32 bit resource signature */
- write_res_data (sign, sizeof (sign), 1);
-
- /* write resources */
-
- language = -1;
- write_res_directory (resdir, (const struct res_id *) NULL,
- (const struct res_id *) NULL, &language, 1);
-
- /* end file on DWORD boundary */
- fpos = ftell (fres);
- if (fpos % 4)
- write_res_data (sign, fpos % 4, 1);
-
- fclose (fres);
-}
-
-/* Read a resource entry, returns 0 when all resources are read */
-static int
-read_resource_entry (void)
-{
- struct res_id type;
- struct res_id name;
- struct res_res_info resinfo;
- struct res_hdr reshdr;
- long version;
- void *buff;
-
- struct res_resource *r;
-
- res_align_file ();
-
- /* Read header */
- if (fread (&reshdr, sizeof (reshdr), 1, fres) != 1)
- return 0;
-
- /* read resource type */
- read_res_id (&type);
- /* read resource id */
- read_res_id (&name);
-
- res_align_file ();
-
- /* Read additional resource header */
- read_res_data (&resinfo.version, sizeof (resinfo.version), 1);
- read_res_data (&resinfo.memflags, sizeof (resinfo.memflags), 1);
- read_res_data (&resinfo.language, sizeof (resinfo.language), 1);
- read_res_data (&version, sizeof (version), 1);
- read_res_data (&resinfo.characteristics, sizeof (resinfo.characteristics), 1);
-
- res_align_file ();
-
- /* Allocate buffer for data */
- buff = res_alloc (reshdr.data_size);
- /* Read data */
- read_res_data (buff, reshdr.data_size, 1);
- /* Convert binary data to resource */
- r = bin_to_res (type, buff, reshdr.data_size, 0);
- r->res_info = resinfo;
- /* Add resource to resource directory */
- res_add_resource (r, &type, &name, resinfo.language, 0);
-
- return 1;
-}
-
-/* write resource directory to binary resource file */
-static void
-write_res_directory (rd, type, name, language, level)
- const struct res_directory *rd;
- const struct res_id *type;
- const struct res_id *name;
- int *language;
- int level;
-{
- const struct res_entry *re;
-
- for (re = rd->entries; re != NULL; re = re->next)
- {
- switch (level)
- {
- case 1:
- /* If we're at level 1, the key of this resource is the
- type. This normally duplicates the information we have
- stored with the resource itself, but we need to remember
- the type if this is a user define resource type. */
- type = &re->id;
- break;
-
- case 2:
- /* If we're at level 2, the key of this resource is the name
- we are going to use in the rc printout. */
- name = &re->id;
- break;
-
- case 3:
- /* If we're at level 3, then this key represents a language.
- Use it to update the current language. */
- if (!re->id.named
- && re->id.u.id != (unsigned long) *language
- && (re->id.u.id & 0xffff) == re->id.u.id)
- {
- *language = re->id.u.id;
- }
- break;
-
- default:
- break;
- }
-
- if (re->subdir)
- write_res_directory (re->u.dir, type, name, language, level + 1);
- else
- {
- if (level == 3)
- {
- /* This is the normal case: the three levels are
- TYPE/NAME/LANGUAGE. NAME will have been set at level
- 2, and represents the name to use. We probably just
- set LANGUAGE, and it will probably match what the
- resource itself records if anything. */
- write_res_resource (type, name, re->u.res, language);
- }
- else
- {
- fprintf (stderr, "// Resource at unexpected level %d\n", level);
- write_res_resource (type, (struct res_id *) NULL, re->u.res,
- language);
- }
- }
- }
-
-}
-
-static void
-write_res_resource (type, name, res, language)
- const struct res_id *type;
- const struct res_id *name;
- const struct res_resource *res;
- int *language ATTRIBUTE_UNUSED;
-{
- int rt;
-
- switch (res->type)
- {
- default:
- abort ();
-
- case RES_TYPE_ACCELERATOR:
- rt = RT_ACCELERATOR;
- break;
-
- case RES_TYPE_BITMAP:
- rt = RT_BITMAP;
- break;
-
- case RES_TYPE_CURSOR:
- rt = RT_CURSOR;
- break;
-
- case RES_TYPE_GROUP_CURSOR:
- rt = RT_GROUP_CURSOR;
- break;
-
- case RES_TYPE_DIALOG:
- rt = RT_DIALOG;
- break;
-
- case RES_TYPE_FONT:
- rt = RT_FONT;
- break;
-
- case RES_TYPE_FONTDIR:
- rt = RT_FONTDIR;
- break;
-
- case RES_TYPE_ICON:
- rt = RT_ICON;
- break;
-
- case RES_TYPE_GROUP_ICON:
- rt = RT_GROUP_ICON;
- break;
-
- case RES_TYPE_MENU:
- rt = RT_MENU;
- break;
-
- case RES_TYPE_MESSAGETABLE:
- rt = RT_MESSAGETABLE;
- break;
-
- case RES_TYPE_RCDATA:
- rt = RT_RCDATA;
- break;
-
- case RES_TYPE_STRINGTABLE:
- rt = RT_STRING;
- break;
-
- case RES_TYPE_USERDATA:
- rt = 0;
- break;
-
- case RES_TYPE_VERSIONINFO:
- rt = RT_VERSION;
- break;
- }
-
- if (rt != 0
- && type != NULL
- && (type->named || type->u.id != (unsigned long) rt))
- {
- fprintf (stderr, "// Unexpected resource type mismatch: ");
- res_id_print (stderr, *type, 1);
- fprintf (stderr, " != %d", rt);
- abort ();
- }
-
- write_res_bin (res, type, name, &res->res_info);
- return;
-}
-
-/* Write a resource in binary resource format */
-static void
-write_res_bin (res, type, name, resinfo)
- const struct res_resource *res;
- const struct res_id *type;
- const struct res_id *name;
- const struct res_res_info *resinfo;
-{
- unsigned long datasize = 0;
- const struct bindata *bin_rep, *data;
-
- bin_rep = res_to_bin (res, 0);
- for (data = bin_rep; data != NULL; data = data->next)
- datasize += data->length;
-
- write_res_header (datasize, type, name, resinfo);
-
- for (data = bin_rep; data != NULL; data = data->next)
- write_res_data (data->data, data->length, 1);
-}
-
-/* Get number of bytes needed to store an id in binary format */
-static unsigned long
-get_id_size (id)
- const struct res_id *id;
-{
- if (id->named)
- return sizeof (unichar) * (id->u.n.length + 1);
- else
- return sizeof (unichar) * 2;
-}
-
-/* Write a resource header */
-static void
-write_res_header (datasize, type, name, resinfo)
- unsigned long datasize;
- const struct res_id *type;
- const struct res_id *name;
- const struct res_res_info *resinfo;
-{
- struct res_hdr reshdr;
- reshdr.data_size = datasize;
- reshdr.header_size = 24 + get_id_size (type) + get_id_size (name);
-
- reshdr.header_size = (reshdr.header_size + 3) & ~3;
-
- res_align_file ();
- write_res_data (&reshdr, sizeof (reshdr), 1);
- write_res_id (type);
- write_res_id (name);
-
- res_align_file ();
-
- write_res_info (resinfo);
- res_align_file ();
-}
-
-
-/* Write data to file, abort on failure */
-static void
-write_res_data (data, size, count)
- const void *data;
- size_t size;
- int count;
-{
- if ((size_t) fwrite (data, size, count, fres) != (size_t) count)
- fatal ("%s: could not write to file", filename);
-}
-
-/* Read data from file, abort on failure */
-static void
-read_res_data (data, size, count)
- void *data;
- size_t size;
- int count;
-{
- if (fread (data, size, count, fres) != (size_t) count)
- fatal ("%s: unexpected end of file", filename);
-}
-
-/* Write a resource id */
-static void
-write_res_id (id)
- const struct res_id *id;
-{
- if (id->named)
- {
- unsigned long len = id->u.n.length;
- unichar null_term = 0;
- write_res_data (id->u.n.name, len * sizeof (unichar), 1);
- write_res_data (&null_term, sizeof (null_term), 1);
- }
- else
- {
- unsigned short i = 0xFFFF;
- write_res_data (&i, sizeof (i), 1);
- i = id->u.id;
- write_res_data (&i, sizeof (i), 1);
- }
-}
-
-/* Write resource info */
-static void
-write_res_info (info)
- const struct res_res_info *info;
-{
- write_res_data (&info->version, sizeof (info->version), 1);
- write_res_data (&info->memflags, sizeof (info->memflags), 1);
- write_res_data (&info->language, sizeof (info->language), 1);
- write_res_data (&info->version, sizeof (info->version), 1);
- write_res_data (&info->characteristics, sizeof (info->characteristics), 1);
-}
-
-/* read a resource identifier */
-void
-read_res_id (id)
- struct res_id *id;
-{
- unsigned short ord;
- unichar *id_s = NULL;
- int len;
-
- read_res_data (&ord, sizeof (ord), 1);
- if (ord == 0xFFFF) /* an ordinal id */
- {
- read_res_data (&ord, sizeof (ord), 1);
- id->named = 0;
- id->u.id = ord;
- }
- else
- /* named id */
- {
- if (fseek (fres, -sizeof (ord), SEEK_CUR) != 0)
- fatal ("%s: %s: could not seek in file", program_name, filename);
- id_s = read_unistring (&len);
- id->named = 1;
- id->u.n.length = len;
- id->u.n.name = id_s;
- }
-}
-
-/* Read a null terminated UNICODE string */
-static unichar *
-read_unistring (len)
- int *len;
-{
- unichar *s;
- unichar c;
- unichar *p;
- int l;
-
- *len = 0;
- l = 0;
-
- /* there are hardly any names longer than 256 characters */
- p = s = (unichar *) xmalloc (sizeof (unichar) * 256);
- do
- {
- read_res_data (&c, sizeof (c), 1);
- *p++ = c;
- if (c != 0)
- l++;
- }
- while (c != 0);
- *len = l;
- return s;
-}
-
-/* align file on DWORD boundary */
-static void
-res_align_file (void)
-{
- int pos = ftell (fres);
- int skip = ((pos + 3) & ~3) - pos;
- if (fseek (fres, skip, SEEK_CUR) != 0)
- fatal ("%s: %s: unable to align file", program_name, filename);
-}
-
-/* Check if file is a win32 binary resource file, if so
- skip past the null resource. Returns 0 if successful, -1 on
- error.
- */
-static void
-skip_null_resource (void)
-{
- struct res_hdr reshdr =
- {0, 0};
- read_res_data (&reshdr, sizeof (reshdr), 1);
- if ((reshdr.data_size != 0) || (reshdr.header_size != 0x20))
- goto skip_err;
-
- /* Subtract size of HeaderSize and DataSize */
- if (fseek (fres, reshdr.header_size - 8, SEEK_CUR) != 0)
- goto skip_err;
-
- return;
-
-skip_err:
- fprintf (stderr, "%s: %s: Not a valid WIN32 resource file\n", program_name,
- filename);
- xexit (1);
-}
-
-/* Add a resource to resource directory */
-void
-res_add_resource (r, type, id, language, dupok)
- struct res_resource *r;
- const struct res_id *type;
- const struct res_id *id;
- int language;
- int dupok;
-{
- struct res_id a[3];
-
- a[0] = *type;
- a[1] = *id;
- a[2].named = 0;
- a[2].u.id = language;
- res_append_resource (&resources, r, 3, a, dupok);
-}
-
-/* Append a resource to resource directory.
- This is just copied from define_resource
- and modified to add an existing resource.
- */
-void
-res_append_resource (resources, resource, cids, ids, dupok)
- struct res_directory **resources;
- struct res_resource *resource;
- int cids;
- const struct res_id *ids;
- int dupok;
-{
- struct res_entry *re = NULL;
- int i;
-
- assert (cids > 0);
- for (i = 0; i < cids; i++)
- {
- struct res_entry **pp;
-
- if (*resources == NULL)
- {
- static unsigned long timeval;
-
- /* Use the same timestamp for every resource created in a
- single run. */
- if (timeval == 0)
- timeval = time (NULL);
-
- *resources = ((struct res_directory *)
- res_alloc (sizeof **resources));
- (*resources)->characteristics = 0;
- (*resources)->time = timeval;
- (*resources)->major = 0;
- (*resources)->minor = 0;
- (*resources)->entries = NULL;
- }
-
- for (pp = &(*resources)->entries; *pp != NULL; pp = &(*pp)->next)
- if (res_id_cmp ((*pp)->id, ids[i]) == 0)
- break;
-
- if (*pp != NULL)
- re = *pp;
- else
- {
- re = (struct res_entry *) res_alloc (sizeof *re);
- re->next = NULL;
- re->id = ids[i];
- if ((i + 1) < cids)
- {
- re->subdir = 1;
- re->u.dir = NULL;
- }
- else
- {
- re->subdir = 0;
- re->u.res = NULL;
- }
-
- *pp = re;
- }
-
- if ((i + 1) < cids)
- {
- if (!re->subdir)
- {
- fprintf (stderr, "%s: ", program_name);
- res_ids_print (stderr, i, ids);
- fprintf (stderr, ": expected to be a directory\n");
- xexit (1);
- }
-
- resources = &re->u.dir;
- }
- }
-
- if (re->subdir)
- {
- fprintf (stderr, "%s: ", program_name);
- res_ids_print (stderr, cids, ids);
- fprintf (stderr, ": expected to be a leaf\n");
- xexit (1);
- }
-
- if (re->u.res != NULL)
- {
- if (dupok)
- return;
-
- fprintf (stderr, "%s: warning: ", program_name);
- res_ids_print (stderr, cids, ids);
- fprintf (stderr, ": duplicate value\n");
- }
-
- re->u.res = resource;
-}
diff --git a/binutils-2.17/binutils/sanity.sh b/binutils-2.17/binutils/sanity.sh
deleted file mode 100755
index 942cabf9..00000000
--- a/binutils-2.17/binutils/sanity.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh
-### quick sanity test for the binutils.
-###
-### This file was written and is maintained by K. Richard Pixley,
-### rich@cygnus.com.
-
-### fail on errors
-set -e
-
-### first arg is directory in which binaries to be tested reside.
-case "$1" in
-"") BIN=. ;;
-*) BIN="$1" ;;
-esac
-
-### size
-for i in size objdump nm ar strip ranlib ; do
- ${BIN}/size ${BIN}/$i > /dev/null
-done
-
-### objdump
-for i in size objdump nm ar strip ranlib ; do
- ${BIN}/objdump -ahifdrtxsl ${BIN}/$i > /dev/null
-done
-
-### nm
-for i in size objdump nm ar strip ranlib ; do
- ${BIN}/nm ${BIN}/$i > /dev/null
-done
-
-### strip
-TMPDIR=./binutils-$$
-mkdir ${TMPDIR}
-
-cp ${BIN}/strip ${TMPDIR}/strip
-
-for i in size objdump nm ar ranlib ; do
- cp ${BIN}/$i ${TMPDIR}/$i
- ${BIN}/strip ${TMPDIR}/$i
- cp ${BIN}/$i ${TMPDIR}/$i
- ${TMPDIR}/strip ${TMPDIR}/$i
-done
-
-### ar
-
-### ranlib
-
-rm -rf ${TMPDIR}
-
-exit 0
diff --git a/binutils-2.17/binutils/size.c b/binutils-2.17/binutils/size.c
deleted file mode 100644
index b78cba02..00000000
--- a/binutils-2.17/binutils/size.c
+++ /dev/null
@@ -1,552 +0,0 @@
-/* size.c -- report size of various sections of an executable file.
- Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-/* Extensions/incompatibilities:
- o - BSD output has filenames at the end.
- o - BSD output can appear in different radicies.
- o - SysV output has less redundant whitespace. Filename comes at end.
- o - SysV output doesn't show VMA which is always the same as the PMA.
- o - We also handle core files.
- o - We also handle archives.
- If you write shell scripts which manipulate this info then you may be
- out of luck; there's no --compatibility or --pedantic option. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "getopt.h"
-
-#ifndef BSD_DEFAULT
-#define BSD_DEFAULT 1
-#endif
-
-/* Program options. */
-
-enum
- {
- decimal, octal, hex
- }
-radix = decimal;
-
-/* 0 means use AT&T-style output. */
-static int berkeley_format = BSD_DEFAULT;
-
-int show_version = 0;
-int show_help = 0;
-int show_totals = 0;
-
-static bfd_size_type total_bsssize;
-static bfd_size_type total_datasize;
-static bfd_size_type total_textsize;
-
-/* Program exit status. */
-int return_code = 0;
-
-static char *target = NULL;
-
-/* Static declarations. */
-
-static void usage (FILE *, int);
-static void display_file (char *);
-static void display_bfd (bfd *);
-static void display_archive (bfd *);
-static int size_number (bfd_size_type);
-static void rprint_number (int, bfd_size_type);
-static void print_berkeley_format (bfd *);
-static void sysv_internal_sizer (bfd *, asection *, void *);
-static void sysv_internal_printer (bfd *, asection *, void *);
-static void print_sysv_format (bfd *);
-static void print_sizes (bfd * file);
-static void berkeley_sum (bfd *, sec_ptr, void *);
-
-static void
-usage (FILE *stream, int status)
-{
- fprintf (stream, _("Usage: %s [option(s)] [file(s)]\n"), program_name);
- fprintf (stream, _(" Displays the sizes of sections inside binary files\n"));
- fprintf (stream, _(" If no input file(s) are specified, a.out is assumed\n"));
- fprintf (stream, _(" The options are:\n\
- -A|-B --format={sysv|berkeley} Select output style (default is %s)\n\
- -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n\
- -t --totals Display the total sizes (Berkeley only)\n\
- --target=<bfdname> Set the binary file format\n\
- @<file> Read options from <file>\n\
- -h --help Display this information\n\
- -v --version Display the program's version\n\
-\n"),
-#if BSD_DEFAULT
- "berkeley"
-#else
- "sysv"
-#endif
-);
- list_supported_targets (program_name, stream);
- if (status == 0)
- fprintf (stream, _("Report bugs to %s\n"), REPORT_BUGS_TO);
- exit (status);
-}
-
-static struct option long_options[] =
-{
- {"format", required_argument, 0, 200},
- {"radix", required_argument, 0, 201},
- {"target", required_argument, 0, 202},
- {"totals", no_argument, &show_totals, 1},
- {"version", no_argument, &show_version, 1},
- {"help", no_argument, &show_help, 1},
- {0, no_argument, 0, 0}
-};
-
-int main (int, char **);
-
-int
-main (int argc, char **argv)
-{
- int temp;
- int c;
-
-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- program_name = *argv;
- xmalloc_set_program_name (program_name);
-
- expandargv (&argc, &argv);
-
- bfd_init ();
- set_default_bfd_target ();
-
- while ((c = getopt_long (argc, argv, "ABHhVvdfotx", long_options,
- (int *) 0)) != EOF)
- switch (c)
- {
- case 200: /* --format */
- switch (*optarg)
- {
- case 'B':
- case 'b':
- berkeley_format = 1;
- break;
- case 'S':
- case 's':
- berkeley_format = 0;
- break;
- default:
- non_fatal (_("invalid argument to --format: %s"), optarg);
- usage (stderr, 1);
- }
- break;
-
- case 202: /* --target */
- target = optarg;
- break;
-
- case 201: /* --radix */
-#ifdef ANSI_LIBRARIES
- temp = strtol (optarg, NULL, 10);
-#else
- temp = atol (optarg);
-#endif
- switch (temp)
- {
- case 10:
- radix = decimal;
- break;
- case 8:
- radix = octal;
- break;
- case 16:
- radix = hex;
- break;
- default:
- non_fatal (_("Invalid radix: %s\n"), optarg);
- usage (stderr, 1);
- }
- break;
-
- case 'A':
- berkeley_format = 0;
- break;
- case 'B':
- berkeley_format = 1;
- break;
- case 'v':
- case 'V':
- show_version = 1;
- break;
- case 'd':
- radix = decimal;
- break;
- case 'x':
- radix = hex;
- break;
- case 'o':
- radix = octal;
- break;
- case 't':
- show_totals = 1;
- break;
- case 'f': /* FIXME : For sysv68, `-f' means `full format', i.e.
- `[fname:] M(.text) + N(.data) + O(.bss) + P(.comment) = Q'
- where `fname: ' appears only if there are >= 2 input files,
- and M, N, O, P, Q are expressed in decimal by default,
- hexa or octal if requested by `-x' or `-o'.
- Just to make things interesting, Solaris also accepts -f,
- which prints out the size of each allocatable section, the
- name of the section, and the total of the section sizes. */
- /* For the moment, accept `-f' silently, and ignore it. */
- break;
- case 0:
- break;
- case 'h':
- case 'H':
- case '?':
- usage (stderr, 1);
- }
-
- if (show_version)
- print_version ("size");
- if (show_help)
- usage (stdout, 0);
-
- if (optind == argc)
- display_file ("a.out");
- else
- for (; optind < argc;)
- display_file (argv[optind++]);
-
- if (show_totals && berkeley_format)
- {
- bfd_size_type total = total_textsize + total_datasize + total_bsssize;
-
- rprint_number (7, total_textsize);
- putchar('\t');
- rprint_number (7, total_datasize);
- putchar('\t');
- rprint_number (7, total_bsssize);
- printf (((radix == octal) ? "\t%7lo\t%7lx\t" : "\t%7lu\t%7lx\t"),
- (unsigned long) total, (unsigned long) total);
- fputs ("(TOTALS)\n", stdout);
- }
-
- return return_code;
-}
-
-/* Display stats on file or archive member ABFD. */
-
-static void
-display_bfd (bfd *abfd)
-{
- char **matching;
-
- if (bfd_check_format (abfd, bfd_archive))
- /* An archive within an archive. */
- return;
-
- if (bfd_check_format_matches (abfd, bfd_object, &matching))
- {
- print_sizes (abfd);
- printf ("\n");
- return;
- }
-
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- {
- bfd_nonfatal (bfd_get_filename (abfd));
- list_matching_formats (matching);
- free (matching);
- return_code = 3;
- return;
- }
-
- if (bfd_check_format_matches (abfd, bfd_core, &matching))
- {
- const char *core_cmd;
-
- print_sizes (abfd);
- fputs (" (core file", stdout);
-
- core_cmd = bfd_core_file_failing_command (abfd);
- if (core_cmd)
- printf (" invoked as %s", core_cmd);
-
- puts (")\n");
- return;
- }
-
- bfd_nonfatal (bfd_get_filename (abfd));
-
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- {
- list_matching_formats (matching);
- free (matching);
- }
-
- return_code = 3;
-}
-
-static void
-display_archive (bfd *file)
-{
- bfd *arfile = (bfd *) NULL;
- bfd *last_arfile = (bfd *) NULL;
-
- for (;;)
- {
- bfd_set_error (bfd_error_no_error);
-
- arfile = bfd_openr_next_archived_file (file, arfile);
- if (arfile == NULL)
- {
- if (bfd_get_error () != bfd_error_no_more_archived_files)
- {
- bfd_nonfatal (bfd_get_filename (file));
- return_code = 2;
- }
- break;
- }
-
- display_bfd (arfile);
-
- if (last_arfile != NULL)
- bfd_close (last_arfile);
- last_arfile = arfile;
- }
-
- if (last_arfile != NULL)
- bfd_close (last_arfile);
-}
-
-static void
-display_file (char *filename)
-{
- bfd *file;
-
- if (get_file_size (filename) < 1)
- return;
-
- file = bfd_openr (filename, target);
- if (file == NULL)
- {
- bfd_nonfatal (filename);
- return_code = 1;
- return;
- }
-
- if (bfd_check_format (file, bfd_archive))
- display_archive (file);
- else
- display_bfd (file);
-
- if (!bfd_close (file))
- {
- bfd_nonfatal (filename);
- return_code = 1;
- return;
- }
-}
-
-/* This is what lexical functions are for. */
-
-static int
-size_number (bfd_size_type num)
-{
- char buffer[40];
-
- sprintf (buffer,
- (radix == decimal ? "%lu" :
- ((radix == octal) ? "0%lo" : "0x%lx")),
- (unsigned long) num);
-
- return strlen (buffer);
-}
-
-static void
-rprint_number (int width, bfd_size_type num)
-{
- char buffer[40];
-
- sprintf (buffer,
- (radix == decimal ? "%lu" :
- ((radix == octal) ? "0%lo" : "0x%lx")),
- (unsigned long) num);
-
- printf ("%*s", width, buffer);
-}
-
-static bfd_size_type bsssize;
-static bfd_size_type datasize;
-static bfd_size_type textsize;
-
-static void
-berkeley_sum (bfd *abfd ATTRIBUTE_UNUSED, sec_ptr sec,
- void *ignore ATTRIBUTE_UNUSED)
-{
- flagword flags;
- bfd_size_type size;
-
- flags = bfd_get_section_flags (abfd, sec);
- if ((flags & SEC_ALLOC) == 0)
- return;
-
- size = bfd_get_section_size (sec);
- if ((flags & SEC_CODE) != 0 || (flags & SEC_READONLY) != 0)
- textsize += size;
- else if ((flags & SEC_HAS_CONTENTS) != 0)
- datasize += size;
- else
- bsssize += size;
-}
-
-static void
-print_berkeley_format (bfd *abfd)
-{
- static int files_seen = 0;
- bfd_size_type total;
-
- bsssize = 0;
- datasize = 0;
- textsize = 0;
-
- bfd_map_over_sections (abfd, berkeley_sum, NULL);
-
- if (files_seen++ == 0)
- puts ((radix == octal) ? " text\t data\t bss\t oct\t hex\tfilename" :
- " text\t data\t bss\t dec\t hex\tfilename");
-
- total = textsize + datasize + bsssize;
-
- if (show_totals)
- {
- total_textsize += textsize;
- total_datasize += datasize;
- total_bsssize += bsssize;
- }
-
- rprint_number (7, textsize);
- putchar ('\t');
- rprint_number (7, datasize);
- putchar ('\t');
- rprint_number (7, bsssize);
- printf (((radix == octal) ? "\t%7lo\t%7lx\t" : "\t%7lu\t%7lx\t"),
- (unsigned long) total, (unsigned long) total);
-
- fputs (bfd_get_filename (abfd), stdout);
-
- if (bfd_my_archive (abfd))
- printf (" (ex %s)", bfd_get_filename (bfd_my_archive (abfd)));
-}
-
-/* I REALLY miss lexical functions! */
-bfd_size_type svi_total = 0;
-bfd_vma svi_maxvma = 0;
-int svi_namelen = 0;
-int svi_vmalen = 0;
-int svi_sizelen = 0;
-
-static void
-sysv_internal_sizer (bfd *file ATTRIBUTE_UNUSED, sec_ptr sec,
- void *ignore ATTRIBUTE_UNUSED)
-{
- bfd_size_type size = bfd_section_size (file, sec);
-
- if ( ! bfd_is_abs_section (sec)
- && ! bfd_is_com_section (sec)
- && ! bfd_is_und_section (sec))
- {
- int namelen = strlen (bfd_section_name (file, sec));
-
- if (namelen > svi_namelen)
- svi_namelen = namelen;
-
- svi_total += size;
-
- if (bfd_section_vma (file, sec) > svi_maxvma)
- svi_maxvma = bfd_section_vma (file, sec);
- }
-}
-
-static void
-sysv_internal_printer (bfd *file ATTRIBUTE_UNUSED, sec_ptr sec,
- void *ignore ATTRIBUTE_UNUSED)
-{
- bfd_size_type size = bfd_section_size (file, sec);
-
- if ( ! bfd_is_abs_section (sec)
- && ! bfd_is_com_section (sec)
- && ! bfd_is_und_section (sec))
- {
- svi_total += size;
-
- printf ("%-*s ", svi_namelen, bfd_section_name (file, sec));
- rprint_number (svi_sizelen, size);
- printf (" ");
- rprint_number (svi_vmalen, bfd_section_vma (file, sec));
- printf ("\n");
- }
-}
-
-static void
-print_sysv_format (bfd *file)
-{
- /* Size all of the columns. */
- svi_total = 0;
- svi_maxvma = 0;
- svi_namelen = 0;
- bfd_map_over_sections (file, sysv_internal_sizer, NULL);
- svi_vmalen = size_number ((bfd_size_type)svi_maxvma);
-
- if ((size_t) svi_vmalen < sizeof ("addr") - 1)
- svi_vmalen = sizeof ("addr")-1;
-
- svi_sizelen = size_number (svi_total);
- if ((size_t) svi_sizelen < sizeof ("size") - 1)
- svi_sizelen = sizeof ("size")-1;
-
- svi_total = 0;
- printf ("%s ", bfd_get_filename (file));
-
- if (bfd_my_archive (file))
- printf (" (ex %s)", bfd_get_filename (bfd_my_archive (file)));
-
- printf (":\n%-*s %*s %*s\n", svi_namelen, "section",
- svi_sizelen, "size", svi_vmalen, "addr");
-
- bfd_map_over_sections (file, sysv_internal_printer, NULL);
-
- printf ("%-*s ", svi_namelen, "Total");
- rprint_number (svi_sizelen, svi_total);
- printf ("\n\n");
-}
-
-static void
-print_sizes (bfd *file)
-{
- if (berkeley_format)
- print_berkeley_format (file);
- else
- print_sysv_format (file);
-}
diff --git a/binutils-2.17/binutils/srconv.c b/binutils-2.17/binutils/srconv.c
deleted file mode 100644
index d1f3efdb..00000000
--- a/binutils-2.17/binutils/srconv.c
+++ /dev/null
@@ -1,1881 +0,0 @@
-/* srconv.c -- Sysroff conversion program
- Copyright 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005 Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* Written by Steve Chamberlain (sac@cygnus.com)
-
- This program can be used to convert a coff object file
- into a Hitachi OM/LM (Sysroff) format.
-
- All debugging information is preserved */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "sysroff.h"
-#include "coffgrok.h"
-#include "libiberty.h"
-#include "getopt.h"
-
-#include "coff/internal.h"
-#include "../bfd/libcoff.h"
-
-/*#define FOOP1 1 */
-
-static int addrsize;
-static char *toolname;
-static char **rnames;
-
-static int get_member_id (int);
-static int get_ordinary_id (int);
-static char *section_translate (char *);
-static char *strip_suffix (char *);
-static void checksum (FILE *, unsigned char *, int, int);
-static void writeINT (int, unsigned char *, int *, int, FILE *);
-static void writeBITS (int, unsigned char *, int *, int);
-static void writeBARRAY (barray, unsigned char *, int *, int, FILE *);
-static void writeCHARS (char *, unsigned char *, int *, int, FILE *);
-static void wr_tr (void);
-static void wr_un (struct coff_ofile *, struct coff_sfile *, int, int);
-static void wr_hd (struct coff_ofile *);
-static void wr_sh (struct coff_ofile *, struct coff_section *);
-static void wr_ob (struct coff_ofile *, struct coff_section *);
-static void wr_rl (struct coff_ofile *, struct coff_section *);
-static void wr_object_body (struct coff_ofile *);
-static void wr_dps_start
- (struct coff_sfile *, struct coff_section *, struct coff_scope *, int, int);
-static void wr_dps_end (struct coff_section *, struct coff_scope *, int);
-static int *nints (int);
-static void walk_tree_type_1
- (struct coff_sfile *, struct coff_symbol *, struct coff_type *, int);
-static void walk_tree_type
- (struct coff_sfile *, struct coff_symbol *, struct coff_type *, int);
-static void walk_tree_symbol
- (struct coff_sfile *, struct coff_section *, struct coff_symbol *, int);
-static void walk_tree_scope
- (struct coff_section *, struct coff_sfile *, struct coff_scope *, int, int);
-static void walk_tree_sfile (struct coff_section *, struct coff_sfile *);
-static void wr_program_structure (struct coff_ofile *, struct coff_sfile *);
-static void wr_du (struct coff_ofile *, struct coff_sfile *, int);
-static void wr_dus (struct coff_ofile *, struct coff_sfile *);
-static int find_base (struct coff_sfile *, struct coff_section *);
-static void wr_dln (struct coff_ofile *, struct coff_sfile *, int);
-static void wr_globals (struct coff_ofile *, struct coff_sfile *, int);
-static void wr_debug (struct coff_ofile *);
-static void wr_cs (void);
-static int wr_sc (struct coff_ofile *, struct coff_sfile *);
-static void wr_er (struct coff_ofile *, struct coff_sfile *, int);
-static void wr_ed (struct coff_ofile *, struct coff_sfile *, int);
-static void wr_unit_info (struct coff_ofile *);
-static void wr_module (struct coff_ofile *);
-static int align (int);
-static void prescan (struct coff_ofile *);
-static void show_usage (FILE *, int);
-extern int main (int, char **);
-
-static FILE *file;
-static bfd *abfd;
-static int debug = 0;
-static int quick = 0;
-static int noprescan = 0;
-static struct coff_ofile *tree;
-/* Obsolete ??
- static int absolute_p;
- */
-
-static int segmented_p;
-static int code;
-
-static int ids1[20000];
-static int ids2[20000];
-
-static int base1 = 0x18;
-static int base2 = 0x2018;
-
-static int
-get_member_id (int x)
-{
- if (ids2[x])
- return ids2[x];
-
- ids2[x] = base2++;
- return ids2[x];
-}
-
-static int
-get_ordinary_id (int x)
-{
- if (ids1[x])
- return ids1[x];
-
- ids1[x] = base1++;
- return ids1[x];
-}
-static char *
-section_translate (char *n)
-{
- if (strcmp (n, ".text") == 0)
- return "P";
- if (strcmp (n, ".data") == 0)
- return "D";
- if (strcmp (n, ".bss") == 0)
- return "B";
- return n;
-}
-
-#define DATE "940201073000"; /* Just a time on my birthday */
-
-static
-char *
-strip_suffix (char *name)
-{
- int i;
- char *res;
-
- for (i = 0; name[i] != 0 && name[i] != '.'; i++)
- ;
- res = (char *) xmalloc (i + 1);
- memcpy (res, name, i);
- res[i] = 0;
- return res;
-}
-
-/* IT LEN stuff CS */
-static void
-checksum (FILE *file, unsigned char *ptr, int size, int code)
-{
- int j;
- int last;
- int sum = 0;
- int bytes = size / 8;
-
- last = !(code & 0xff00);
- if (size & 0x7)
- abort ();
- ptr[0] = code | (last ? 0x80 : 0);
- ptr[1] = bytes + 1;
-
- for (j = 0; j < bytes; j++)
- sum += ptr[j];
-
- /* Glue on a checksum too. */
- ptr[bytes] = ~sum;
- fwrite (ptr, bytes + 1, 1, file);
-}
-
-
-static void
-writeINT (int n, unsigned char *ptr, int *idx, int size, FILE *file)
-{
- int byte = *idx / 8;
-
- if (size == -2)
- size = addrsize;
- else if (size == -1)
- size = 0;
-
- if (byte > 240)
- {
- /* Lets write out that record and do another one. */
- checksum (file, ptr, *idx, code | 0x1000);
- *idx = 16;
- byte = *idx / 8;
- }
-
- switch (size)
- {
- case 0:
- break;
- case 1:
- ptr[byte] = n;
- break;
- case 2:
- ptr[byte + 0] = n >> 8;
- ptr[byte + 1] = n;
- break;
- case 4:
- ptr[byte + 0] = n >> 24;
- ptr[byte + 1] = n >> 16;
- ptr[byte + 2] = n >> 8;
- ptr[byte + 3] = n >> 0;
- break;
- default:
- abort ();
- }
- *idx += size * 8;
-}
-
-static void
-writeBITS (int val, unsigned char *ptr, int *idx, int size)
-{
- int byte = *idx / 8;
- int bit = *idx % 8;
- int old;
-
- *idx += size;
-
- old = ptr[byte];
- /* Turn off all about to change bits. */
- old &= ~((~0 >> (8 - bit - size)) & ((1 << size) - 1));
- /* Turn on the bits we want. */
- old |= (val & ((1 << size) - 1)) << (8 - bit - size);
- ptr[byte] = old;
-}
-
-static void
-writeBARRAY (barray data, unsigned char *ptr, int *idx,
- int size ATTRIBUTE_UNUSED, FILE *file)
-{
- int i;
-
- writeINT (data.len, ptr, idx, 1, file);
- for (i = 0; i < data.len; i++)
- writeINT (data.data[i], ptr, idx, 1, file);
-}
-
-static void
-writeCHARS (char *string, unsigned char *ptr, int *idx, int size, FILE *file)
-{
- int i = *idx / 8;
-
- if (i > 240)
- {
- /* Lets write out that record and do another one. */
- checksum (file, ptr, *idx, code | 0x1000);
- *idx = 16;
- i = *idx / 8;
- }
-
- if (size == 0)
- {
- /* Variable length string. */
- size = strlen (string);
- ptr[i++] = size;
- }
-
- /* BUG WAITING TO HAPPEN. */
- memcpy (ptr + i, string, size);
- i += size;
- *idx = i * 8;
-}
-
-#define SYSROFF_SWAP_OUT
-#include "sysroff.c"
-
-static char *rname_sh[] =
-{
- "R0", "R1", "R2", "R3", "R4", "R5", "R6", "R7", "R8", "R9", "R10", "R11", "R12", "R13", "R14", "R15"
-};
-
-static char *rname_h8300[] =
-{
- "ER0", "ER1", "ER2", "ER3", "ER4", "ER5", "ER6", "ER7", "PC", "CCR"
-};
-
-static void
-wr_tr (void)
-{
- /* The TR block is not normal - it doesn't have any contents. */
-
- static char b[] =
- {
- 0xff, /* IT */
- 0x03, /* RL */
- 0xfd, /* CS */
- };
- fwrite (b, 1, sizeof (b), file);
-}
-
-static void
-wr_un (struct coff_ofile *ptr, struct coff_sfile *sfile, int first,
- int nsecs ATTRIBUTE_UNUSED)
-{
- struct IT_un un;
- struct coff_symbol *s;
-
- un.spare1 = 0;
-
- if (bfd_get_file_flags (abfd) & EXEC_P)
- un.format = FORMAT_LM;
- else
- un.format = FORMAT_OM;
- un.spare1 = 0;
-
- /* Don't count the abs section. */
- un.nsections = ptr->nsections - 1;
-
- un.nextdefs = 0;
- un.nextrefs = 0;
- /* Count all the undefined and defined variables with global scope. */
-
- if (first)
- {
- for (s = ptr->symbol_list_head; s; s = s->next_in_ofile_list)
- {
- if (s->visible->type == coff_vis_ext_def
- || s->visible->type == coff_vis_common)
- un.nextdefs++;
-
- if (s->visible->type == coff_vis_ext_ref)
- un.nextrefs++;
- }
- }
- un.tool = toolname;
- un.tcd = DATE;
- un.linker = "L_GX00";
- un.lcd = DATE;
- un.name = sfile->name;
- sysroff_swap_un_out (file, &un);
-}
-
-static void
-wr_hd (struct coff_ofile *p)
-{
- struct IT_hd hd;
-
- hd.spare1 = 0;
- if (bfd_get_file_flags (abfd) & EXEC_P)
- hd.mt = MTYPE_ABS_LM;
- else
- hd.mt = MTYPE_OMS_OR_LMS;
-
- hd.cd = DATE;
-
- hd.nu = p->nsources; /* Always one unit */
- hd.code = 0; /* Always ASCII */
- hd.ver = "0200"; /* Version 2.00 */
-
- switch (bfd_get_arch (abfd))
- {
- case bfd_arch_h8300:
- hd.au = 8;
- hd.si = 0;
- hd.spcsz = 32;
- hd.segsz = 0;
- hd.segsh = 0;
- switch (bfd_get_mach (abfd))
- {
- case bfd_mach_h8300:
- hd.cpu = "H8300";
- hd.afl = 2;
- addrsize = 2;
- toolname = "C_H8/300";
- break;
- case bfd_mach_h8300h:
- hd.cpu = "H8300H";
- hd.afl = 4;
- addrsize = 4;
- toolname = "C_H8/300H";
- break;
- case bfd_mach_h8300s:
- hd.cpu = "H8300S";
- hd.afl = 4;
- addrsize = 4;
- toolname = "C_H8/300S";
- break;
- default:
- abort();
- }
- rnames = rname_h8300;
- break;
- case bfd_arch_sh:
- hd.au = 8;
- hd.si = 0;
- hd.afl = 4;
- hd.spcsz = 32;
- hd.segsz = 0;
- hd.segsh = 0;
- hd.cpu = "SH";
- addrsize = 4;
- toolname = "C_SH";
- rnames = rname_sh;
- break;
- default:
- abort ();
- }
-
- if (! bfd_get_file_flags(abfd) & EXEC_P)
- {
- hd.ep = 0;
- }
- else
- {
- hd.ep = 1;
- hd.uan = 0;
- hd.sa = 0;
- hd.sad = 0;
- hd.address = bfd_get_start_address (abfd);
- }
-
- hd.os = "";
- hd.sys = "";
- hd.mn = strip_suffix (bfd_get_filename (abfd));
-
- sysroff_swap_hd_out (file, &hd);
-}
-
-
-static void
-wr_sh (struct coff_ofile *p ATTRIBUTE_UNUSED, struct coff_section *sec)
-{
- struct IT_sh sh;
- sh.unit = 0;
- sh.section = sec->number;
-#ifdef FOOP1
- sh.section = 0;
-#endif
- sysroff_swap_sh_out (file, &sh);
-}
-
-
-static void
-wr_ob (struct coff_ofile *p ATTRIBUTE_UNUSED, struct coff_section *section)
-{
- bfd_size_type i;
- int first = 1;
- unsigned char stuff[200];
-
- i = 0;
- while (i < bfd_get_section_size (section->bfd_section))
- {
- struct IT_ob ob;
- int todo = 200; /* Copy in 200 byte lumps. */
-
- ob.spare = 0;
- if (i + todo > bfd_get_section_size (section->bfd_section))
- todo = bfd_get_section_size (section->bfd_section) - i;
-
- if (first)
- {
- ob.saf = 1;
- if (bfd_get_file_flags (abfd) & EXEC_P)
- ob.address = section->address;
- else
- ob.address = 0;
-
- first = 0;
- }
- else
- {
- ob.saf = 0;
- }
-
- ob.cpf = 0; /* Never compress. */
- ob.data.len = todo;
- bfd_get_section_contents (abfd, section->bfd_section, stuff, i, todo);
- ob.data.data = stuff;
- sysroff_swap_ob_out (file, &ob /*, i + todo < section->size */ );
- i += todo;
- }
-
- /* Now fill the rest with blanks. */
- while (i < (bfd_size_type) section->size)
- {
- struct IT_ob ob;
- int todo = 200; /* Copy in 200 byte lumps. */
-
- ob.spare = 0;
- if (i + todo > (bfd_size_type) section->size)
- todo = section->size - i;
- ob.saf = 0;
-
- ob.cpf = 0; /* Never compress. */
- ob.data.len = todo;
- memset (stuff, 0, todo);
- ob.data.data = stuff;
- sysroff_swap_ob_out (file, &ob);
- i += todo;
- }
- /* Now fill the rest with blanks. */
-}
-
-static void
-wr_rl (struct coff_ofile *ptr ATTRIBUTE_UNUSED, struct coff_section *sec)
-{
- int nr = sec->nrelocs;
- int i;
-
- for (i = 0; i < nr; i++)
- {
- struct coff_reloc *r = sec->relocs + i;
- struct coff_symbol *ref;
- struct IT_rl rl;
-
- rl.apol = 0;
- rl.boundary = 0;
- rl.segment = 1;
- rl.sign = 0;
- rl.check = 0;
- rl.addr = r->offset;
- rl.bitloc = 0;
- rl.flen = 32; /* SH Specific. */
-
- /* What sort of reloc ? Look in the section to find out. */
- ref = r->symbol;
- if (ref->visible->type == coff_vis_ext_ref)
- {
- rl.bcount = 4; /* Always 4 for us. */
- rl.op = OP_EXT_REF;
- rl.symn = ref->er_number;
- }
- else if (ref->visible->type == coff_vis_common)
- {
- rl.bcount = 11; /* Always 11 for us. */
- rl.op = OP_SEC_REF;
- rl.secn = ref->where->section->number;
- rl.copcode_is_3 = 3;
- rl.alength_is_4 = 4;
- rl.addend = ref->where->offset - ref->where->section->address;
- rl.aopcode_is_0x20 = 0x20;
- }
- else
- {
- rl.bcount = 11; /* Always 11 for us. */
- rl.op = OP_SEC_REF;
- rl.secn = ref->where->section->number;
- rl.copcode_is_3 = 3;
- rl.alength_is_4 = 4;
- rl.addend = -ref->where->section->address;
- rl.aopcode_is_0x20 = 0x20;
- }
-
- rl.end = 0xff;
-
- if ( rl.op == OP_SEC_REF
- || rl.op == OP_EXT_REF)
- sysroff_swap_rl_out (file, &rl);
- }
-}
-
-static void
-wr_object_body (struct coff_ofile *p)
-{
- int i;
-
- for (i = 1; i < p->nsections; i++)
- {
- wr_sh (p, p->sections + i);
- wr_ob (p, p->sections + i);
- wr_rl (p, p->sections + i);
- }
-}
-
-static void
-wr_dps_start (struct coff_sfile *sfile,
- struct coff_section *section ATTRIBUTE_UNUSED,
- struct coff_scope *scope, int type, int nest)
-{
- struct IT_dps dps;
-
- dps.end = 0;
- dps.opt = 0;
- dps.type = type;
-
- if (scope->sec)
- {
- dps.san = scope->sec->number;
- dps.address = scope->offset - find_base (sfile, scope->sec);
- dps.block_size = scope->size;
-
- if (debug)
- {
- printf ("DPS %s %d %x\n",
- sfile->name,
- nest,
- dps.address);
- }
- }
- else
- {
- dps.san = 0;
- dps.address = 0;
- dps.block_size = 0;
- }
-
- dps.nesting = nest;
- dps.neg = 0x1001;
- sysroff_swap_dps_out (file, &dps);
-}
-
-static void
-wr_dps_end (struct coff_section *section ATTRIBUTE_UNUSED,
- struct coff_scope *scope ATTRIBUTE_UNUSED, int type)
-{
- struct IT_dps dps;
-
- dps.end = 1;
- dps.type = type;
- sysroff_swap_dps_out (file, &dps);
-}
-
-static int *
-nints (int x)
-{
- return (int *) (xcalloc (sizeof (int), x));
-}
-
-static void
-walk_tree_type_1 (struct coff_sfile *sfile, struct coff_symbol *symbol,
- struct coff_type *type, int nest)
-{
- switch (type->type)
- {
- case coff_secdef_type:
- case coff_basic_type:
- {
- struct IT_dbt dbt;
-
- switch (type->u.basic)
- {
- case T_NULL:
- case T_VOID:
- dbt.btype = BTYPE_VOID;
- dbt.sign = BTYPE_UNSPEC;
- dbt.fptype = FPTYPE_NOTSPEC;
- break;
-
- case T_CHAR:
- dbt.btype = BTYPE_CHAR;
- dbt.sign = BTYPE_UNSPEC;
- dbt.fptype = FPTYPE_NOTSPEC;
- break;
-
- case T_SHORT:
- case T_INT:
- case T_LONG:
- dbt.btype = BTYPE_INT;
- dbt.sign = SIGN_SIGNED;
- dbt.fptype = FPTYPE_NOTSPEC;
- break;
-
- case T_FLOAT:
- dbt.btype = BTYPE_FLOAT;
- dbt.fptype = FPTYPE_SINGLE;
- break;
-
- case T_DOUBLE:
- dbt.btype = BTYPE_FLOAT;
- dbt.fptype = FPTYPE_DOUBLE;
- break;
-
- case T_LNGDBL:
- dbt.btype = BTYPE_FLOAT;
- dbt.fptype = FPTYPE_EXTENDED;
- break;
-
- case T_UCHAR:
- dbt.btype = BTYPE_CHAR;
- dbt.sign = SIGN_UNSIGNED;
- dbt.fptype = FPTYPE_NOTSPEC;
- break;
-
- case T_USHORT:
- case T_UINT:
- case T_ULONG:
- dbt.btype = BTYPE_INT;
- dbt.sign = SIGN_UNSIGNED;
- dbt.fptype = FPTYPE_NOTSPEC;
- break;
- }
-
- dbt.bitsize = type->size;
- dbt.neg = 0x1001;
- sysroff_swap_dbt_out (file, &dbt);
- break;
- }
-
- case coff_pointer_type:
- {
- struct IT_dpt dpt;
-
- walk_tree_type_1 (sfile, symbol, type->u.pointer.points_to, nest + 1);
- dpt.neg = 0x1001;
- sysroff_swap_dpt_out (file, &dpt);
- break;
- }
-
- case coff_function_type:
- {
- struct IT_dfp dfp;
- struct coff_symbol *param;
-
- dfp.end = 0;
- dfp.spare = 0;
- dfp.nparams = type->u.function.parameters->nvars;
- dfp.neg = 0x1001;
-
- walk_tree_type_1 (sfile, symbol, type->u.function.function_returns, nest + 1);
-
- sysroff_swap_dfp_out (file, &dfp);
-
- for (param = type->u.function.parameters->vars_head;
- param;
- param = param->next)
- walk_tree_symbol (sfile, 0, param, nest);
-
- dfp.end = 1;
- sysroff_swap_dfp_out (file, &dfp);
- break;
- }
-
- case coff_structdef_type:
- {
- struct IT_dbt dbt;
- struct IT_dds dds;
- struct coff_symbol *member;
-
- dds.spare = 0;
- dbt.btype = BTYPE_STRUCT;
- dbt.bitsize = type->size;
- dbt.sign = SIGN_UNSPEC;
- dbt.fptype = FPTYPE_NOTSPEC;
- dbt.sid = get_member_id (type->u.astructdef.idx);
- dbt.neg = 0x1001;
- sysroff_swap_dbt_out (file, &dbt);
- dds.end = 0;
- dds.neg = 0x1001;
- sysroff_swap_dds_out (file, &dds);
-
- for (member = type->u.astructdef.elements->vars_head;
- member;
- member = member->next)
- walk_tree_symbol (sfile, 0, member, nest + 1);
-
- dds.end = 1;
- sysroff_swap_dds_out (file, &dds);
-
- }
- break;
-
- case coff_structref_type:
- {
- struct IT_dbt dbt;
-
- dbt.btype = BTYPE_TAG;
- dbt.bitsize = type->size;
- dbt.sign = SIGN_UNSPEC;
- dbt.fptype = FPTYPE_NOTSPEC;
-
- if (type->u.astructref.ref)
- dbt.sid = get_member_id (type->u.astructref.ref->number);
- else
- dbt.sid = 0;
-
- dbt.neg = 0x1001;
- sysroff_swap_dbt_out (file, &dbt);
- }
- break;
-
- case coff_array_type:
- {
- struct IT_dar dar;
- int j;
- int dims = 1; /* Only output one dimension at a time. */
-
- dar.dims = dims;
- dar.variable = nints (dims);
- dar.subtype = nints (dims);
- dar.spare = nints (dims);
- dar.max_variable = nints (dims);
- dar.maxspare = nints (dims);
- dar.max = nints (dims);
- dar.min_variable = nints (dims);
- dar.min = nints (dims);
- dar.minspare = nints (dims);
- dar.neg = 0x1001;
- dar.length = type->size / type->u.array.dim;
-
- for (j = 0; j < dims; j++)
- {
- dar.variable[j] = VARIABLE_FIXED;
- dar.subtype[j] = SUB_INTEGER;
- dar.spare[j] = 0;
- dar.max_variable[j] = 0;
- dar.max[j] = type->u.array.dim;
- dar.min_variable[j] = 0;
- dar.min[j] = 1; /* Why isn't this 0 ? */
- }
- walk_tree_type_1 (sfile, symbol, type->u.array.array_of, nest + 1);
- sysroff_swap_dar_out (file, &dar);
- }
- break;
-
- case coff_enumdef_type:
- {
- struct IT_dbt dbt;
- struct IT_den den;
- struct coff_symbol *member;
-
- dbt.btype = BTYPE_ENUM;
- dbt.bitsize = type->size;
- dbt.sign = SIGN_UNSPEC;
- dbt.fptype = FPTYPE_NOTSPEC;
- dbt.sid = get_member_id (type->u.aenumdef.idx);
- dbt.neg = 0x1001;
- sysroff_swap_dbt_out (file, &dbt);
-
- den.end = 0;
- den.neg = 0x1001;
- den.spare = 0;
- sysroff_swap_den_out (file, &den);
-
- for (member = type->u.aenumdef.elements->vars_head;
- member;
- member = member->next)
- walk_tree_symbol (sfile, 0, member, nest + 1);
-
- den.end = 1;
- sysroff_swap_den_out (file, &den);
- }
- break;
-
- case coff_enumref_type:
- {
- struct IT_dbt dbt;
-
- dbt.btype = BTYPE_TAG;
- dbt.bitsize = type->size;
- dbt.sign = SIGN_UNSPEC;
- dbt.fptype = FPTYPE_NOTSPEC;
- dbt.sid = get_member_id (type->u.aenumref.ref->number);
- dbt.neg = 0x1001;
- sysroff_swap_dbt_out (file, &dbt);
- }
- break;
-
- default:
- abort ();
- }
-}
-
-/* Obsolete ?
- static void
- dty_start ()
- {
- struct IT_dty dty;
- dty.end = 0;
- dty.neg = 0x1001;
- dty.spare = 0;
- sysroff_swap_dty_out (file, &dty);
- }
-
- static void
- dty_stop ()
- {
- struct IT_dty dty;
- dty.end = 0;
- dty.neg = 0x1001;
- dty.end = 1;
- sysroff_swap_dty_out (file, &dty);
- }
-
-
- static void
- dump_tree_structure (sfile, symbol, type, nest)
- struct coff_sfile *sfile;
- struct coff_symbol *symbol;
- struct coff_type *type;
- int nest;
- {
- if (symbol->type->type == coff_function_type)
- {
-
-
- }
-
- }
- */
-
-static void
-walk_tree_type (struct coff_sfile *sfile, struct coff_symbol *symbol,
- struct coff_type *type, int nest)
-{
- if (symbol->type->type == coff_function_type)
- {
- struct IT_dty dty;
-
- dty.end = 0;
- dty.neg = 0x1001;
-
- sysroff_swap_dty_out (file, &dty);
- walk_tree_type_1 (sfile, symbol, type, nest);
- dty.end = 1;
- sysroff_swap_dty_out (file, &dty);
-
- wr_dps_start (sfile,
- symbol->where->section,
- symbol->type->u.function.code,
- BLOCK_TYPE_FUNCTION, nest);
- wr_dps_start (sfile, symbol->where->section,
- symbol->type->u.function.code,
- BLOCK_TYPE_BLOCK, nest);
- walk_tree_scope (symbol->where->section,
- sfile,
- symbol->type->u.function.code,
- nest + 1, BLOCK_TYPE_BLOCK);
-
- wr_dps_end (symbol->where->section,
- symbol->type->u.function.code,
- BLOCK_TYPE_BLOCK);
- wr_dps_end (symbol->where->section,
- symbol->type->u.function.code, BLOCK_TYPE_FUNCTION);
- }
- else
- {
- struct IT_dty dty;
-
- dty.end = 0;
- dty.neg = 0x1001;
- sysroff_swap_dty_out (file, &dty);
- walk_tree_type_1 (sfile, symbol, type, nest);
- dty.end = 1;
- sysroff_swap_dty_out (file, &dty);
- }
-}
-
-static void
-walk_tree_symbol (struct coff_sfile *sfile, struct coff_section *section ATTRIBUTE_UNUSED, struct coff_symbol *symbol, int nest)
-{
- struct IT_dsy dsy;
-
- memset (&dsy, 0, sizeof(dsy));
- dsy.nesting = nest;
-
- switch (symbol->type->type)
- {
- case coff_function_type:
- dsy.type = STYPE_FUNC;
- dsy.assign = 1;
- break;
-
- case coff_structref_type:
- case coff_pointer_type:
- case coff_array_type:
- case coff_basic_type:
- case coff_enumref_type:
- dsy.type = STYPE_VAR;
- dsy.assign = 1;
- break;
-
- case coff_enumdef_type:
- dsy.type = STYPE_TAG;
- dsy.assign = 0;
- dsy.magic = 2;
- break;
-
- case coff_structdef_type:
- dsy.type = STYPE_TAG;
- dsy.assign = 0;
- dsy.magic = symbol->type->u.astructdef.isstruct ? 0 : 1;
- break;
-
- case coff_secdef_type:
- return;
-
- default:
- abort ();
- }
-
- if (symbol->where->where == coff_where_member_of_struct)
- {
- dsy.assign = 0;
- dsy.type = STYPE_MEMBER;
- }
-
- if (symbol->where->where == coff_where_member_of_enum)
- {
- dsy.type = STYPE_ENUM;
- dsy.assign = 0;
- dsy.evallen = 4;
- dsy.evalue = symbol->where->offset;
- }
-
- if (symbol->type->type == coff_structdef_type
- || symbol->where->where == coff_where_entag
- || symbol->where->where == coff_where_strtag)
- {
- dsy.snumber = get_member_id (symbol->number);
- }
- else
- {
- dsy.snumber = get_ordinary_id (symbol->number);
- }
-
- dsy.sname = symbol->name[0] == '_' ? symbol->name + 1 : symbol->name;
-
- switch (symbol->visible->type)
- {
- case coff_vis_common:
- case coff_vis_ext_def:
- dsy.ainfo = AINFO_STATIC_EXT_DEF;
- break;
-
- case coff_vis_ext_ref:
- dsy.ainfo = AINFO_STATIC_EXT_REF;
- break;
-
- case coff_vis_int_def:
- dsy.ainfo = AINFO_STATIC_INT;
- break;
-
- case coff_vis_auto:
- case coff_vis_autoparam:
- dsy.ainfo = AINFO_AUTO;
- break;
-
- case coff_vis_register:
- case coff_vis_regparam:
- dsy.ainfo = AINFO_REG;
- break;
- break;
-
- case coff_vis_tag:
- case coff_vis_member_of_struct:
- case coff_vis_member_of_enum:
- break;
-
- default:
- abort ();
- }
-
- dsy.dlength = symbol->type->size;
-
- switch (symbol->where->where)
- {
- case coff_where_memory:
-
- dsy.section = symbol->where->section->number;
-#ifdef FOOP
- dsy.section = 0;
-#endif
- break;
-
- case coff_where_member_of_struct:
- case coff_where_member_of_enum:
- case coff_where_stack:
- case coff_where_register:
- case coff_where_unknown:
- case coff_where_strtag:
- case coff_where_entag:
- case coff_where_typedef:
- break;
-
- default:
- abort ();
- }
-
- switch (symbol->where->where)
- {
- case coff_where_memory:
- dsy.address = symbol->where->offset - find_base (sfile, symbol->where->section);
- break;
-
- case coff_where_stack:
- dsy.address = symbol->where->offset;
- break;
-
- case coff_where_member_of_struct:
- if (symbol->where->bitsize)
- {
- int bits = (symbol->where->offset * 8 + symbol->where->bitoffset);
- dsy.bitunit = 1;
- dsy.field_len = symbol->where->bitsize;
- dsy.field_off = (bits / 32) * 4;
- dsy.field_bitoff = bits % 32;
- }
- else
- {
- dsy.bitunit = 0;
-
- dsy.field_len = symbol->type->size;
- dsy.field_off = symbol->where->offset;
- }
- break;
-
- case coff_where_member_of_enum:
- /* dsy.bitunit = 0;
- dsy.field_len = symbol->type->size;
- dsy.field_off = symbol->where->offset; */
- break;
-
- case coff_where_register:
- case coff_where_unknown:
- case coff_where_strtag:
- case coff_where_entag:
- case coff_where_typedef:
- break;
-
- default:
- abort ();
- }
-
- if (symbol->where->where == coff_where_register)
- dsy.reg = rnames[symbol->where->offset];
-
- switch (symbol->visible->type)
- {
- case coff_vis_common:
- /* We do this 'cause common C symbols are treated as extdefs. */
- case coff_vis_ext_def:
- case coff_vis_ext_ref:
- dsy.ename = symbol->name;
- break;
-
- case coff_vis_regparam:
- case coff_vis_autoparam:
- dsy.type = STYPE_PARAMETER;
- break;
-
- case coff_vis_int_def:
- case coff_vis_auto:
- case coff_vis_register:
- case coff_vis_tag:
- case coff_vis_member_of_struct:
- case coff_vis_member_of_enum:
- break;
-
- default:
- abort ();
- }
-
- dsy.sfn = 0;
- dsy.sln = 2;
- dsy.neg = 0x1001;
-
- sysroff_swap_dsy_out (file, &dsy);
-
- walk_tree_type (sfile, symbol, symbol->type, nest);
-}
-
-static void
-walk_tree_scope (struct coff_section *section, struct coff_sfile *sfile, struct coff_scope *scope, int nest, int type)
-{
- struct coff_symbol *vars;
- struct coff_scope *child;
-
- if (scope->vars_head
- || (scope->list_head && scope->list_head->vars_head))
- {
- wr_dps_start (sfile, section, scope, type, nest);
-
- if (nest == 0)
- wr_globals (tree, sfile, nest + 1);
-
- for (vars = scope->vars_head; vars; vars = vars->next)
- walk_tree_symbol (sfile, section, vars, nest);
-
- for (child = scope->list_head; child; child = child->next)
- walk_tree_scope (section, sfile, child, nest + 1, BLOCK_TYPE_BLOCK);
-
- wr_dps_end (section, scope, type);
- }
-}
-
-static void
-walk_tree_sfile (struct coff_section *section, struct coff_sfile *sfile)
-{
- walk_tree_scope (section, sfile, sfile->scope, 0, BLOCK_TYPE_COMPUNIT);
-}
-
-static void
-wr_program_structure (struct coff_ofile *p, struct coff_sfile *sfile)
-{
- walk_tree_sfile (p->sections + 4, sfile);
-}
-
-static void
-wr_du (struct coff_ofile *p, struct coff_sfile *sfile, int n)
-{
- struct IT_du du;
- int lim;
- int i;
- int j;
- unsigned int *lowest = (unsigned *) nints (p->nsections);
- unsigned int *highest = (unsigned *) nints (p->nsections);
-
- du.format = bfd_get_file_flags (abfd) & EXEC_P ? 0 : 1;
- du.optimized = 0;
- du.stackfrmt = 0;
- du.spare = 0;
- du.unit = n;
- du.sections = p->nsections - 1;
- du.san = (int *) xcalloc (sizeof (int), du.sections);
- du.address = nints (du.sections);
- du.length = nints (du.sections);
-
- for (i = 0; i < du.sections; i++)
- {
- lowest[i] = ~0;
- highest[i] = 0;
- }
-
- lim = du.sections;
- for (j = 0; j < lim; j++)
- {
- int src = j;
- int dst = j;
-
- du.san[dst] = dst;
-
- if (sfile->section[src].init)
- {
- du.length[dst]
- = sfile->section[src].high - sfile->section[src].low + 1;
- du.address[dst]
- = sfile->section[src].low;
- }
- else
- {
- du.length[dst] = 0;
- du.address[dst] = 0;
- }
-
- if (debug)
- {
- if (sfile->section[src].parent)
- {
- printf (" section %6s 0x%08x..0x%08x\n",
- sfile->section[src].parent->name,
- du.address[dst],
- du.address[dst] + du.length[dst] - 1);
- }
- }
-
- du.sections = dst + 1;
- }
-
- du.tool = "c_gcc";
- du.date = DATE;
-
- sysroff_swap_du_out (file, &du);
-}
-
-static void
-wr_dus (struct coff_ofile *p ATTRIBUTE_UNUSED, struct coff_sfile *sfile)
-{
- struct IT_dus dus;
-
- dus.efn = 0x1001;
- dus.ns = 1; /* p->nsources; sac 14 jul 94 */
- dus.drb = nints (dus.ns);
- dus.fname = (char **) xcalloc (sizeof (char *), dus.ns);
- dus.spare = nints (dus.ns);
- dus.ndir = 0;
- /* Find the filenames. */
- dus.drb[0] = 0;
- dus.fname[0] = sfile->name;
-
- sysroff_swap_dus_out (file, &dus);
-
-}
-
-/* Find the offset of the .text section for this sfile in the
- .text section for the output file. */
-
-static int
-find_base (struct coff_sfile *sfile, struct coff_section *section)
-{
- return sfile->section[section->number].low;
-}
-
-static void
-wr_dln (struct coff_ofile *p ATTRIBUTE_UNUSED, struct coff_sfile *sfile,
- int n ATTRIBUTE_UNUSED)
-{
- /* Count up all the linenumbers */
-
- struct coff_symbol *sy;
- int lc = 0;
- struct IT_dln dln;
-
- int idx;
-
- for (sy = sfile->scope->vars_head;
- sy;
- sy = sy->next)
- {
- struct coff_type *t = sy->type;
- if (t->type == coff_function_type)
- {
- struct coff_line *l = t->u.function.lines;
- if (l)
- lc += l->nlines;
- }
- }
-
- dln.sfn = nints (lc);
- dln.sln = nints (lc);
- dln.cc = nints (lc);
- dln.section = nints (lc);
-
- dln.from_address = nints (lc);
- dln.to_address = nints (lc);
-
-
- dln.neg = 0x1001;
-
- dln.nln = lc;
-
- /* Run through once more and fill up the structure */
- idx = 0;
- for (sy = sfile->scope->vars_head;
- sy;
- sy = sy->next)
- {
- if (sy->type->type == coff_function_type)
- {
- int i;
- struct coff_line *l = sy->type->u.function.lines;
- if (l)
- {
- int base = find_base (sfile, sy->where->section);
- for (i = 0; i < l->nlines; i++)
- {
- dln.section[idx] = sy->where->section->number;
- dln.sfn[idx] = 0;
- dln.sln[idx] = l->lines[i];
- dln.from_address[idx] =
- l->addresses[i] + sy->where->section->address - base;
- dln.cc[idx] = 0;
- if (idx)
- dln.to_address[idx - 1] = dln.from_address[idx];
- idx++;
-
- }
- dln.to_address[idx - 1] = dln.from_address[idx - 1] + 2;
- }
- }
- }
- if (lc)
- sysroff_swap_dln_out (file, &dln);
-}
-
-/* Write the global symbols out to the debug info. */
-
-static void
-wr_globals (struct coff_ofile *p, struct coff_sfile *sfile,
- int n ATTRIBUTE_UNUSED)
-{
- struct coff_symbol *sy;
-
- for (sy = p->symbol_list_head;
- sy;
- sy = sy->next_in_ofile_list)
- {
- if (sy->visible->type == coff_vis_ext_def
- || sy->visible->type == coff_vis_ext_ref)
- {
- /* Only write out symbols if they belong to
- the current source file. */
- if (sy->sfile == sfile)
- walk_tree_symbol (sfile, 0, sy, 0);
- }
- }
-}
-
-static void
-wr_debug (struct coff_ofile *p)
-{
- struct coff_sfile *sfile;
- int n = 0;
-
- for (sfile = p->source_head;
- sfile;
- sfile = sfile->next)
- {
- if (debug)
- printf ("%s\n", sfile->name);
-
- wr_du (p, sfile, n);
- wr_dus (p, sfile);
- wr_program_structure (p, sfile);
- wr_dln (p, sfile, n);
- n++;
- }
-}
-
-static void
-wr_cs (void)
-{
- /* It seems that the CS struct is not normal - the size is wrong
- heres one I prepared earlier. */
- static char b[] =
- {
- 0x80, /* IT */
- 0x21, /* RL */
- 0x00, /* number of chars in variable length part */
- 0x80, /* hd */
- 0x00, /* hs */
- 0x80, /* un */
- 0x00, /* us */
- 0x80, /* sc */
- 0x00, /* ss */
- 0x80, /* er */
- 0x80, /* ed */
- 0x80, /* sh */
- 0x80, /* ob */
- 0x80, /* rl */
- 0x80, /* du */
- 0x80, /* dps */
- 0x80, /* dsy */
- 0x80, /* dty */
- 0x80, /* dln */
- 0x80, /* dso */
- 0x80, /* dus */
- 0x00, /* dss */
- 0x80, /* dbt */
- 0x00, /* dpp */
- 0x80, /* dfp */
- 0x80, /* den */
- 0x80, /* dds */
- 0x80, /* dar */
- 0x80, /* dpt */
- 0x00, /* dul */
- 0x00, /* dse */
- 0x00, /* dot */
- 0xDE /* CS */
- };
- fwrite (b, 1, sizeof (b), file);
-}
-
-/* Write out the SC records for a unit. Create an SC
- for all the sections which appear in the output file, even
- if there isn't an equivalent one on the input. */
-
-static int
-wr_sc (struct coff_ofile *ptr, struct coff_sfile *sfile)
-{
- int i;
- int scount = 0;
- /* First work out the total number of sections. */
- int total_sec = ptr->nsections;
- struct myinfo
- {
- struct coff_section *sec;
- struct coff_symbol *symbol;
- };
- struct coff_symbol *symbol;
- struct myinfo *info
- = (struct myinfo *) calloc (total_sec, sizeof (struct myinfo));
-
-
- for (i = 0; i < total_sec; i++)
- {
- info[i].sec = ptr->sections + i;
- info[i].symbol = 0;
- }
-
- for (symbol = sfile->scope->vars_head;
- symbol;
- symbol = symbol->next)
- {
-
- if (symbol->type->type == coff_secdef_type)
- {
- for (i = 0; i < total_sec; i++)
- {
- if (symbol->where->section == info[i].sec)
- {
- info[i].symbol = symbol;
- break;
- }
- }
- }
- }
-
- /* Now output all the section info, and fake up some stuff for sections
- we don't have. */
- for (i = 1; i < total_sec; i++)
- {
- struct IT_sc sc;
- char *name;
-
- symbol = info[i].symbol;
- sc.spare = 0;
- sc.spare1 = 0;
-
- if (!symbol)
- {
- /* Don't have a symbol set aside for this section, which means
- that nothing in this file does anything for the section. */
- sc.format = !(bfd_get_file_flags (abfd) & EXEC_P);
- sc.addr = 0;
- sc.length = 0;
- name = info[i].sec->name;
- }
- else
- {
- if (bfd_get_file_flags (abfd) & EXEC_P)
- {
- sc.format = 0;
- sc.addr = symbol->where->offset;
- }
- else
- {
- sc.format = 1;
- sc.addr = 0;
- }
- sc.length = symbol->type->size;
- name = symbol->name;
- }
-
- sc.align = 4;
- sc.concat = CONCAT_SIMPLE;
- sc.read = 3;
- sc.write = 3;
- sc.exec = 3;
- sc.init = 3;
- sc.mode = 3;
- sc.spare = 0;
- sc.segadd = 0;
- sc.spare1 = 0; /* If not zero, then it doesn't work. */
- sc.name = section_translate (name);
-
- if (strlen (sc.name) == 1)
- {
- switch (sc.name[0])
- {
- case 'D':
- case 'B':
- sc.contents = CONTENTS_DATA;
- break;
-
- default:
- sc.contents = CONTENTS_CODE;
- }
- }
- else
- {
- sc.contents = CONTENTS_CODE;
- }
-
- sysroff_swap_sc_out (file, &sc);
- scount++;
- }
- return scount;
-}
-
-/* Write out the ER records for a unit. */
-
-static void
-wr_er (struct coff_ofile *ptr, struct coff_sfile *sfile ATTRIBUTE_UNUSED,
- int first)
-{
- int idx = 0;
- struct coff_symbol *sym;
-
- if (first)
- {
- for (sym = ptr->symbol_list_head; sym; sym = sym->next_in_ofile_list)
- {
- if (sym->visible->type == coff_vis_ext_ref)
- {
- struct IT_er er;
-
- er.spare = 0;
- er.type = ER_NOTSPEC;
- er.name = sym->name;
- sysroff_swap_er_out (file, &er);
- sym->er_number = idx++;
- }
- }
- }
-}
-
-/* Write out the ED records for a unit. */
-
-static void
-wr_ed (struct coff_ofile *ptr, struct coff_sfile *sfile ATTRIBUTE_UNUSED,
- int first)
-{
- struct coff_symbol *s;
-
- if (first)
- {
- for (s = ptr->symbol_list_head; s; s = s->next_in_ofile_list)
- {
- if (s->visible->type == coff_vis_ext_def
- || s->visible->type == coff_vis_common)
- {
- struct IT_ed ed;
-
- ed.section = s->where->section->number;
- ed.spare = 0;
-
- if (s->where->section->data)
- {
- ed.type = ED_TYPE_DATA;
- }
- else if (s->where->section->code & SEC_CODE)
- {
- ed.type = ED_TYPE_ENTRY;
- }
- else
- {
- ed.type = ED_TYPE_NOTSPEC;
- ed.type = ED_TYPE_DATA;
- }
-
- ed.address = s->where->offset - s->where->section->address;
- ed.name = s->name;
- sysroff_swap_ed_out (file, &ed);
- }
- }
- }
-}
-
-static void
-wr_unit_info (struct coff_ofile *ptr)
-{
- struct coff_sfile *sfile;
- int first = 1;
-
- for (sfile = ptr->source_head;
- sfile;
- sfile = sfile->next)
- {
- long p1;
- long p2;
- int nsecs;
-
- p1 = ftell (file);
- wr_un (ptr, sfile, first, 0);
- nsecs = wr_sc (ptr, sfile);
- p2 = ftell (file);
- fseek (file, p1, SEEK_SET);
- wr_un (ptr, sfile, first, nsecs);
- fseek (file, p2, SEEK_SET);
- wr_er (ptr, sfile, first);
- wr_ed (ptr, sfile, first);
- first = 0;
- }
-}
-
-static void
-wr_module (struct coff_ofile *p)
-{
- wr_cs ();
- wr_hd (p);
- wr_unit_info (p);
- wr_object_body (p);
- wr_debug (p);
- wr_tr ();
-}
-
-static int
-align (int x)
-{
- return (x + 3) & ~3;
-}
-
-/* Find all the common variables and turn them into
- ordinary defs - dunno why, but thats what hitachi does with 'em. */
-
-static void
-prescan (struct coff_ofile *tree)
-{
- struct coff_symbol *s;
- struct coff_section *common_section;
-
- /* Find the common section - always section 3. */
- common_section = tree->sections + 3;
-
- for (s = tree->symbol_list_head;
- s;
- s = s->next_in_ofile_list)
- {
- if (s->visible->type == coff_vis_common)
- {
- struct coff_where *w = s->where;
- /* s->visible->type = coff_vis_ext_def; leave it as common */
- common_section->size = align (common_section->size);
- w->offset = common_section->size + common_section->address;
- w->section = common_section;
- common_section->size += s->type->size;
- common_section->size = align (common_section->size);
- }
- }
-}
-
-char *program_name;
-
-static void
-show_usage (FILE *file, int status)
-{
- fprintf (file, _("Usage: %s [option(s)] in-file [out-file]\n"), program_name);
- fprintf (file, _("Convert a COFF object file into a SYSROFF object file\n"));
- fprintf (file, _(" The options are:\n\
- -q --quick (Obsolete - ignored)\n\
- -n --noprescan Do not perform a scan to convert commons into defs\n\
- -d --debug Display information about what is being done\n\
- @<file> Read options from <file>\n\
- -h --help Display this information\n\
- -v --version Print the program's version number\n"));
-
- if (status == 0)
- fprintf (file, _("Report bugs to %s\n"), REPORT_BUGS_TO);
- exit (status);
-}
-
-int
-main (int ac, char **av)
-{
- int opt;
- static struct option long_options[] =
- {
- {"debug", no_argument, 0, 'd'},
- {"quick", no_argument, 0, 'q'},
- {"noprescan", no_argument, 0, 'n'},
- {"help", no_argument, 0, 'h'},
- {"version", no_argument, 0, 'V'},
- {NULL, no_argument, 0, 0}
- };
- char **matching;
- char *input_file;
- char *output_file;
-
-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- program_name = av[0];
- xmalloc_set_program_name (program_name);
-
- expandargv (&ac, &av);
-
- while ((opt = getopt_long (ac, av, "dHhVvqn", long_options,
- (int *) NULL))
- != EOF)
- {
- switch (opt)
- {
- case 'q':
- quick = 1;
- break;
- case 'n':
- noprescan = 1;
- break;
- case 'd':
- debug = 1;
- break;
- case 'H':
- case 'h':
- show_usage (stdout, 0);
- /*NOTREACHED */
- case 'v':
- case 'V':
- print_version ("srconv");
- exit (0);
- /*NOTREACHED */
- case 0:
- break;
- default:
- show_usage (stderr, 1);
- /*NOTREACHED */
- }
- }
-
- /* The input and output files may be named on the command line. */
- output_file = NULL;
- if (optind < ac)
- {
- input_file = av[optind];
- ++optind;
- if (optind < ac)
- {
- output_file = av[optind];
- ++optind;
- if (optind < ac)
- show_usage (stderr, 1);
- if (strcmp (input_file, output_file) == 0)
- {
- fatal (_("input and output files must be different"));
- }
- }
- }
- else
- input_file = 0;
-
- if (!input_file)
- {
- fatal (_("no input file specified"));
- }
-
- if (!output_file)
- {
- /* Take a .o off the input file and stick on a .obj. If
- it doesn't end in .o, then stick a .obj on anyway */
-
- int len = strlen (input_file);
-
- output_file = xmalloc (len + 5);
- strcpy (output_file, input_file);
-
- if (len > 3
- && output_file[len - 2] == '.'
- && output_file[len - 1] == 'o')
- {
- output_file[len] = 'b';
- output_file[len + 1] = 'j';
- output_file[len + 2] = 0;
- }
- else
- {
- strcat (output_file, ".obj");
- }
- }
-
- abfd = bfd_openr (input_file, 0);
-
- if (!abfd)
- bfd_fatal (input_file);
-
- if (!bfd_check_format_matches (abfd, bfd_object, &matching))
- {
- bfd_nonfatal (input_file);
-
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- {
- list_matching_formats (matching);
- free (matching);
- }
- exit (1);
- }
-
- file = fopen (output_file, FOPEN_WB);
-
- if (!file)
- fatal (_("unable to open output file %s"), output_file);
-
- if (debug)
- printf ("ids %d %d\n", base1, base2);
-
- tree = coff_grok (abfd);
-
- if (!noprescan)
- prescan (tree);
-
- wr_module (tree);
- return 0;
-}
diff --git a/binutils-2.17/binutils/stabs.c b/binutils-2.17/binutils/stabs.c
deleted file mode 100644
index 879a3e2c..00000000
--- a/binutils-2.17/binutils/stabs.c
+++ /dev/null
@@ -1,5399 +0,0 @@
-/* stabs.c -- Parse stabs debugging information
- Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor <ian@cygnus.com>.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This file contains code which parses stabs debugging information.
- The organization of this code is based on the gdb stabs reading
- code. The job it does is somewhat different, because it is not
- trying to identify the correct address for anything. */
-
-#include <stdio.h>
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "safe-ctype.h"
-#include "demangle.h"
-#include "debug.h"
-#include "budbg.h"
-#include "filenames.h"
-#include "aout/aout64.h"
-#include "aout/stab_gnu.h"
-
-/* The number of predefined XCOFF types. */
-
-#define XCOFF_TYPE_COUNT 34
-
-/* This structure is used as a handle so that the stab parsing doesn't
- need to use any static variables. */
-
-struct stab_handle
-{
- /* The BFD. */
- bfd *abfd;
- /* TRUE if this is stabs in sections. */
- bfd_boolean sections;
- /* The symbol table. */
- asymbol **syms;
- /* The number of symbols. */
- long symcount;
- /* The accumulated file name string. */
- char *so_string;
- /* The value of the last N_SO symbol. */
- bfd_vma so_value;
- /* The value of the start of the file, so that we can handle file
- relative N_LBRAC and N_RBRAC symbols. */
- bfd_vma file_start_offset;
- /* The offset of the start of the function, so that we can handle
- function relative N_LBRAC and N_RBRAC symbols. */
- bfd_vma function_start_offset;
- /* The version number of gcc which compiled the current compilation
- unit, 0 if not compiled by gcc. */
- int gcc_compiled;
- /* Whether an N_OPT symbol was seen that was not generated by gcc,
- so that we can detect the SunPRO compiler. */
- bfd_boolean n_opt_found;
- /* The main file name. */
- char *main_filename;
- /* A stack of unfinished N_BINCL files. */
- struct bincl_file *bincl_stack;
- /* A list of finished N_BINCL files. */
- struct bincl_file *bincl_list;
- /* Whether we are inside a function or not. */
- bfd_boolean within_function;
- /* The address of the end of the function, used if we have seen an
- N_FUN symbol while in a function. This is -1 if we have not seen
- an N_FUN (the normal case). */
- bfd_vma function_end;
- /* The depth of block nesting. */
- int block_depth;
- /* List of pending variable definitions. */
- struct stab_pending_var *pending;
- /* Number of files for which we have types. */
- unsigned int files;
- /* Lists of types per file. */
- struct stab_types **file_types;
- /* Predefined XCOFF types. */
- debug_type xcoff_types[XCOFF_TYPE_COUNT];
- /* Undefined tags. */
- struct stab_tag *tags;
- /* Set by parse_stab_type if it sees a structure defined as a cross
- reference to itself. Reset by parse_stab_type otherwise. */
- bfd_boolean self_crossref;
-};
-
-/* A list of these structures is used to hold pending variable
- definitions seen before the N_LBRAC of a block. */
-
-struct stab_pending_var
-{
- /* Next pending variable definition. */
- struct stab_pending_var *next;
- /* Name. */
- const char *name;
- /* Type. */
- debug_type type;
- /* Kind. */
- enum debug_var_kind kind;
- /* Value. */
- bfd_vma val;
-};
-
-/* A list of these structures is used to hold the types for a single
- file. */
-
-struct stab_types
-{
- /* Next set of slots for this file. */
- struct stab_types *next;
- /* Types indexed by type number. */
-#define STAB_TYPES_SLOTS (16)
- debug_type types[STAB_TYPES_SLOTS];
-};
-
-/* We keep a list of undefined tags that we encounter, so that we can
- fill them in if the tag is later defined. */
-
-struct stab_tag
-{
- /* Next undefined tag. */
- struct stab_tag *next;
- /* Tag name. */
- const char *name;
- /* Type kind. */
- enum debug_type_kind kind;
- /* Slot to hold real type when we discover it. If we don't, we fill
- in an undefined tag type. */
- debug_type slot;
- /* Indirect type we have created to point at slot. */
- debug_type type;
-};
-
-static char *savestring (const char *, int);
-static bfd_vma parse_number (const char **, bfd_boolean *);
-static void bad_stab (const char *);
-static void warn_stab (const char *, const char *);
-static bfd_boolean parse_stab_string
- (void *, struct stab_handle *, int, int, bfd_vma, const char *);
-static debug_type parse_stab_type
- (void *, struct stab_handle *, const char *, const char **, debug_type **);
-static bfd_boolean parse_stab_type_number (const char **, int *);
-static debug_type parse_stab_range_type
- (void *, struct stab_handle *, const char *, const char **, const int *);
-static debug_type parse_stab_sun_builtin_type (void *, const char **);
-static debug_type parse_stab_sun_floating_type (void *, const char **);
-static debug_type parse_stab_enum_type (void *, const char **);
-static debug_type parse_stab_struct_type
- (void *, struct stab_handle *, const char *, const char **,
- bfd_boolean, const int *);
-static bfd_boolean parse_stab_baseclasses
- (void *, struct stab_handle *, const char **, debug_baseclass **);
-static bfd_boolean parse_stab_struct_fields
- (void *, struct stab_handle *, const char **, debug_field **, bfd_boolean *);
-static bfd_boolean parse_stab_cpp_abbrev
- (void *, struct stab_handle *, const char **, debug_field *);
-static bfd_boolean parse_stab_one_struct_field
- (void *, struct stab_handle *, const char **, const char *,
- debug_field *, bfd_boolean *);
-static bfd_boolean parse_stab_members
- (void *, struct stab_handle *, const char *, const char **, const int *,
- debug_method **);
-static debug_type parse_stab_argtypes
- (void *, struct stab_handle *, debug_type, const char *, const char *,
- debug_type, const char *, bfd_boolean, bfd_boolean, const char **);
-static bfd_boolean parse_stab_tilde_field
- (void *, struct stab_handle *, const char **, const int *, debug_type *,
- bfd_boolean *);
-static debug_type parse_stab_array_type
- (void *, struct stab_handle *, const char **, bfd_boolean);
-static void push_bincl (struct stab_handle *, const char *, bfd_vma);
-static const char *pop_bincl (struct stab_handle *);
-static bfd_boolean find_excl (struct stab_handle *, const char *, bfd_vma);
-static bfd_boolean stab_record_variable
- (void *, struct stab_handle *, const char *, debug_type,
- enum debug_var_kind, bfd_vma);
-static bfd_boolean stab_emit_pending_vars (void *, struct stab_handle *);
-static debug_type *stab_find_slot (struct stab_handle *, const int *);
-static debug_type stab_find_type (void *, struct stab_handle *, const int *);
-static bfd_boolean stab_record_type
- (void *, struct stab_handle *, const int *, debug_type);
-static debug_type stab_xcoff_builtin_type
- (void *, struct stab_handle *, int);
-static debug_type stab_find_tagged_type
- (void *, struct stab_handle *, const char *, int, enum debug_type_kind);
-static debug_type *stab_demangle_argtypes
- (void *, struct stab_handle *, const char *, bfd_boolean *, unsigned int);
-static debug_type *stab_demangle_v3_argtypes
- (void *, struct stab_handle *, const char *, bfd_boolean *);
-static debug_type *stab_demangle_v3_arglist
- (void *, struct stab_handle *, struct demangle_component *, bfd_boolean *);
-static debug_type stab_demangle_v3_arg
- (void *, struct stab_handle *, struct demangle_component *, debug_type,
- bfd_boolean *);
-
-/* Save a string in memory. */
-
-static char *
-savestring (const char *start, int len)
-{
- char *ret;
-
- ret = (char *) xmalloc (len + 1);
- memcpy (ret, start, len);
- ret[len] = '\0';
- return ret;
-}
-
-/* Read a number from a string. */
-
-static bfd_vma
-parse_number (const char **pp, bfd_boolean *poverflow)
-{
- unsigned long ul;
- const char *orig;
-
- if (poverflow != NULL)
- *poverflow = FALSE;
-
- orig = *pp;
-
- errno = 0;
- ul = strtoul (*pp, (char **) pp, 0);
- if (ul + 1 != 0 || errno == 0)
- {
- /* If bfd_vma is larger than unsigned long, and the number is
- meant to be negative, we have to make sure that we sign
- extend properly. */
- if (*orig == '-')
- return (bfd_vma) (bfd_signed_vma) (long) ul;
- return (bfd_vma) ul;
- }
-
- /* Note that even though strtoul overflowed, it should have set *pp
- to the end of the number, which is where we want it. */
- if (sizeof (bfd_vma) > sizeof (unsigned long))
- {
- const char *p;
- bfd_boolean neg;
- int base;
- bfd_vma over, lastdig;
- bfd_boolean overflow;
- bfd_vma v;
-
- /* Our own version of strtoul, for a bfd_vma. */
- p = orig;
-
- neg = FALSE;
- if (*p == '+')
- ++p;
- else if (*p == '-')
- {
- neg = TRUE;
- ++p;
- }
-
- base = 10;
- if (*p == '0')
- {
- if (p[1] == 'x' || p[1] == 'X')
- {
- base = 16;
- p += 2;
- }
- else
- {
- base = 8;
- ++p;
- }
- }
-
- over = ((bfd_vma) (bfd_signed_vma) -1) / (bfd_vma) base;
- lastdig = ((bfd_vma) (bfd_signed_vma) -1) % (bfd_vma) base;
-
- overflow = FALSE;
- v = 0;
- while (1)
- {
- int d;
-
- d = *p++;
- if (ISDIGIT (d))
- d -= '0';
- else if (ISUPPER (d))
- d -= 'A';
- else if (ISLOWER (d))
- d -= 'a';
- else
- break;
-
- if (d >= base)
- break;
-
- if (v > over || (v == over && (bfd_vma) d > lastdig))
- {
- overflow = TRUE;
- break;
- }
- }
-
- if (! overflow)
- {
- if (neg)
- v = - v;
- return v;
- }
- }
-
- /* If we get here, the number is too large to represent in a
- bfd_vma. */
- if (poverflow != NULL)
- *poverflow = TRUE;
- else
- warn_stab (orig, _("numeric overflow"));
-
- return 0;
-}
-
-/* Give an error for a bad stab string. */
-
-static void
-bad_stab (const char *p)
-{
- fprintf (stderr, _("Bad stab: %s\n"), p);
-}
-
-/* Warn about something in a stab string. */
-
-static void
-warn_stab (const char *p, const char *err)
-{
- fprintf (stderr, _("Warning: %s: %s\n"), err, p);
-}
-
-/* Create a handle to parse stabs symbols with. */
-
-void *
-start_stab (void *dhandle ATTRIBUTE_UNUSED, bfd *abfd, bfd_boolean sections,
- asymbol **syms, long symcount)
-{
- struct stab_handle *ret;
-
- ret = (struct stab_handle *) xmalloc (sizeof *ret);
- memset (ret, 0, sizeof *ret);
- ret->abfd = abfd;
- ret->sections = sections;
- ret->syms = syms;
- ret->symcount = symcount;
- ret->files = 1;
- ret->file_types = (struct stab_types **) xmalloc (sizeof *ret->file_types);
- ret->file_types[0] = NULL;
- ret->function_end = (bfd_vma) -1;
- return (void *) ret;
-}
-
-/* When we have processed all the stabs information, we need to go
- through and fill in all the undefined tags. */
-
-bfd_boolean
-finish_stab (void *dhandle, void *handle)
-{
- struct stab_handle *info = (struct stab_handle *) handle;
- struct stab_tag *st;
-
- if (info->within_function)
- {
- if (! stab_emit_pending_vars (dhandle, info)
- || ! debug_end_function (dhandle, info->function_end))
- return FALSE;
- info->within_function = FALSE;
- info->function_end = (bfd_vma) -1;
- }
-
- for (st = info->tags; st != NULL; st = st->next)
- {
- enum debug_type_kind kind;
-
- kind = st->kind;
- if (kind == DEBUG_KIND_ILLEGAL)
- kind = DEBUG_KIND_STRUCT;
- st->slot = debug_make_undefined_tagged_type (dhandle, st->name, kind);
- if (st->slot == DEBUG_TYPE_NULL)
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Handle a single stabs symbol. */
-
-bfd_boolean
-parse_stab (void *dhandle, void *handle, int type, int desc, bfd_vma value,
- const char *string)
-{
- struct stab_handle *info = (struct stab_handle *) handle;
-
- /* gcc will emit two N_SO strings per compilation unit, one for the
- directory name and one for the file name. We just collect N_SO
- strings as we see them, and start the new compilation unit when
- we see a non N_SO symbol. */
- if (info->so_string != NULL
- && (type != N_SO || *string == '\0' || value != info->so_value))
- {
- if (! debug_set_filename (dhandle, info->so_string))
- return FALSE;
- info->main_filename = info->so_string;
-
- info->gcc_compiled = 0;
- info->n_opt_found = FALSE;
-
- /* Generally, for stabs in the symbol table, the N_LBRAC and
- N_RBRAC symbols are relative to the N_SO symbol value. */
- if (! info->sections)
- info->file_start_offset = info->so_value;
-
- /* We need to reset the mapping from type numbers to types. We
- can't free the old mapping, because of the use of
- debug_make_indirect_type. */
- info->files = 1;
- info->file_types = ((struct stab_types **)
- xmalloc (sizeof *info->file_types));
- info->file_types[0] = NULL;
-
- info->so_string = NULL;
-
- /* Now process whatever type we just got. */
- }
-
- switch (type)
- {
- case N_FN:
- case N_FN_SEQ:
- break;
-
- case N_LBRAC:
- /* Ignore extra outermost context from SunPRO cc and acc. */
- if (info->n_opt_found && desc == 1)
- break;
-
- if (! info->within_function)
- {
- fprintf (stderr, _("N_LBRAC not within function\n"));
- return FALSE;
- }
-
- /* Start an inner lexical block. */
- if (! debug_start_block (dhandle,
- (value
- + info->file_start_offset
- + info->function_start_offset)))
- return FALSE;
-
- /* Emit any pending variable definitions. */
- if (! stab_emit_pending_vars (dhandle, info))
- return FALSE;
-
- ++info->block_depth;
- break;
-
- case N_RBRAC:
- /* Ignore extra outermost context from SunPRO cc and acc. */
- if (info->n_opt_found && desc == 1)
- break;
-
- /* We shouldn't have any pending variable definitions here, but,
- if we do, we probably need to emit them before closing the
- block. */
- if (! stab_emit_pending_vars (dhandle, info))
- return FALSE;
-
- /* End an inner lexical block. */
- if (! debug_end_block (dhandle,
- (value
- + info->file_start_offset
- + info->function_start_offset)))
- return FALSE;
-
- --info->block_depth;
- if (info->block_depth < 0)
- {
- fprintf (stderr, _("Too many N_RBRACs\n"));
- return FALSE;
- }
- break;
-
- case N_SO:
- /* This always ends a function. */
- if (info->within_function)
- {
- bfd_vma endval;
-
- endval = value;
- if (*string != '\0'
- && info->function_end != (bfd_vma) -1
- && info->function_end < endval)
- endval = info->function_end;
- if (! stab_emit_pending_vars (dhandle, info)
- || ! debug_end_function (dhandle, endval))
- return FALSE;
- info->within_function = FALSE;
- info->function_end = (bfd_vma) -1;
- }
-
- /* An empty string is emitted by gcc at the end of a compilation
- unit. */
- if (*string == '\0')
- return TRUE;
-
- /* Just accumulate strings until we see a non N_SO symbol. If
- the string starts with a directory separator or some other
- form of absolute path specification, we discard the previously
- accumulated strings. */
- if (info->so_string == NULL)
- info->so_string = xstrdup (string);
- else
- {
- char *f;
-
- f = info->so_string;
-
- if (IS_ABSOLUTE_PATH (string))
- info->so_string = xstrdup (string);
- else
- info->so_string = concat (info->so_string, string,
- (const char *) NULL);
- free (f);
- }
-
- info->so_value = value;
-
- break;
-
- case N_SOL:
- /* Start an include file. */
- if (! debug_start_source (dhandle, string))
- return FALSE;
- break;
-
- case N_BINCL:
- /* Start an include file which may be replaced. */
- push_bincl (info, string, value);
- if (! debug_start_source (dhandle, string))
- return FALSE;
- break;
-
- case N_EINCL:
- /* End an N_BINCL include. */
- if (! debug_start_source (dhandle, pop_bincl (info)))
- return FALSE;
- break;
-
- case N_EXCL:
- /* This is a duplicate of a header file named by N_BINCL which
- was eliminated by the linker. */
- if (! find_excl (info, string, value))
- return FALSE;
- break;
-
- case N_SLINE:
- if (! debug_record_line (dhandle, desc,
- value + (info->within_function
- ? info->function_start_offset : 0)))
- return FALSE;
- break;
-
- case N_BCOMM:
- if (! debug_start_common_block (dhandle, string))
- return FALSE;
- break;
-
- case N_ECOMM:
- if (! debug_end_common_block (dhandle, string))
- return FALSE;
- break;
-
- case N_FUN:
- if (*string == '\0')
- {
- if (info->within_function)
- {
- /* This always marks the end of a function; we don't
- need to worry about info->function_end. */
- if (info->sections)
- value += info->function_start_offset;
- if (! stab_emit_pending_vars (dhandle, info)
- || ! debug_end_function (dhandle, value))
- return FALSE;
- info->within_function = FALSE;
- info->function_end = (bfd_vma) -1;
- }
- break;
- }
-
- /* A const static symbol in the .text section will have an N_FUN
- entry. We need to use these to mark the end of the function,
- in case we are looking at gcc output before it was changed to
- always emit an empty N_FUN. We can't call debug_end_function
- here, because it might be a local static symbol. */
- if (info->within_function
- && (info->function_end == (bfd_vma) -1
- || value < info->function_end))
- info->function_end = value;
-
- /* Fall through. */
- /* FIXME: gdb checks the string for N_STSYM, N_LCSYM or N_ROSYM
- symbols, and if it does not start with :S, gdb relocates the
- value to the start of the section. gcc always seems to use
- :S, so we don't worry about this. */
- /* Fall through. */
- default:
- {
- const char *colon;
-
- colon = strchr (string, ':');
- if (colon != NULL
- && (colon[1] == 'f' || colon[1] == 'F'))
- {
- if (info->within_function)
- {
- bfd_vma endval;
-
- endval = value;
- if (info->function_end != (bfd_vma) -1
- && info->function_end < endval)
- endval = info->function_end;
- if (! stab_emit_pending_vars (dhandle, info)
- || ! debug_end_function (dhandle, endval))
- return FALSE;
- info->function_end = (bfd_vma) -1;
- }
- /* For stabs in sections, line numbers and block addresses
- are offsets from the start of the function. */
- if (info->sections)
- info->function_start_offset = value;
- info->within_function = TRUE;
- }
-
- if (! parse_stab_string (dhandle, info, type, desc, value, string))
- return FALSE;
- }
- break;
-
- case N_OPT:
- if (string != NULL && strcmp (string, "gcc2_compiled.") == 0)
- info->gcc_compiled = 2;
- else if (string != NULL && strcmp (string, "gcc_compiled.") == 0)
- info->gcc_compiled = 1;
- else
- info->n_opt_found = TRUE;
- break;
-
- case N_OBJ:
- case N_ENDM:
- case N_MAIN:
- case N_WARNING:
- break;
- }
-
- return TRUE;
-}
-
-/* Parse the stabs string. */
-
-static bfd_boolean
-parse_stab_string (void *dhandle, struct stab_handle *info, int stabtype,
- int desc, bfd_vma value, const char *string)
-{
- const char *p;
- char *name;
- int type;
- debug_type dtype;
- bfd_boolean synonym;
- bfd_boolean self_crossref;
- unsigned int lineno;
- debug_type *slot;
-
- p = strchr (string, ':');
- if (p == NULL)
- return TRUE;
-
- while (p[1] == ':')
- {
- p += 2;
- p = strchr (p, ':');
- if (p == NULL)
- {
- bad_stab (string);
- return FALSE;
- }
- }
-
- /* GCC 2.x puts the line number in desc. SunOS apparently puts in
- the number of bytes occupied by a type or object, which we
- ignore. */
- if (info->gcc_compiled >= 2)
- lineno = desc;
- else
- lineno = 0;
-
- /* FIXME: Sometimes the special C++ names start with '.'. */
- name = NULL;
- if (string[0] == '$')
- {
- switch (string[1])
- {
- case 't':
- name = "this";
- break;
- case 'v':
- /* Was: name = "vptr"; */
- break;
- case 'e':
- name = "eh_throw";
- break;
- case '_':
- /* This was an anonymous type that was never fixed up. */
- break;
- case 'X':
- /* SunPRO (3.0 at least) static variable encoding. */
- break;
- default:
- warn_stab (string, _("unknown C++ encoded name"));
- break;
- }
- }
-
- if (name == NULL)
- {
- if (p == string || (string[0] == ' ' && p == string + 1))
- name = NULL;
- else
- name = savestring (string, p - string);
- }
-
- ++p;
- if (ISDIGIT (*p) || *p == '(' || *p == '-')
- type = 'l';
- else
- type = *p++;
-
- switch (type)
- {
- case 'c':
- /* c is a special case, not followed by a type-number.
- SYMBOL:c=iVALUE for an integer constant symbol.
- SYMBOL:c=rVALUE for a floating constant symbol.
- SYMBOL:c=eTYPE,INTVALUE for an enum constant symbol.
- e.g. "b:c=e6,0" for "const b = blob1"
- (where type 6 is defined by "blobs:t6=eblob1:0,blob2:1,;"). */
- if (*p != '=')
- {
- bad_stab (string);
- return FALSE;
- }
- ++p;
- switch (*p++)
- {
- case 'r':
- /* Floating point constant. */
- if (! debug_record_float_const (dhandle, name, atof (p)))
- return FALSE;
- break;
- case 'i':
- /* Integer constant. */
- /* Defining integer constants this way is kind of silly,
- since 'e' constants allows the compiler to give not only
- the value, but the type as well. C has at least int,
- long, unsigned int, and long long as constant types;
- other languages probably should have at least unsigned as
- well as signed constants. */
- if (! debug_record_int_const (dhandle, name, atoi (p)))
- return FALSE;
- break;
- case 'e':
- /* SYMBOL:c=eTYPE,INTVALUE for a constant symbol whose value
- can be represented as integral.
- e.g. "b:c=e6,0" for "const b = blob1"
- (where type 6 is defined by "blobs:t6=eblob1:0,blob2:1,;"). */
- dtype = parse_stab_type (dhandle, info, (const char *) NULL,
- &p, (debug_type **) NULL);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (*p != ',')
- {
- bad_stab (string);
- return FALSE;
- }
- if (! debug_record_typed_const (dhandle, name, dtype, atoi (p)))
- return FALSE;
- break;
- default:
- bad_stab (string);
- return FALSE;
- }
-
- break;
-
- case 'C':
- /* The name of a caught exception. */
- dtype = parse_stab_type (dhandle, info, (const char *) NULL,
- &p, (debug_type **) NULL);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (! debug_record_label (dhandle, name, dtype, value))
- return FALSE;
- break;
-
- case 'f':
- case 'F':
- /* A function definition. */
- dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (! debug_record_function (dhandle, name, dtype, type == 'F', value))
- return FALSE;
-
- /* Sun acc puts declared types of arguments here. We don't care
- about their actual types (FIXME -- we should remember the whole
- function prototype), but the list may define some new types
- that we have to remember, so we must scan it now. */
- while (*p == ';')
- {
- ++p;
- if (parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL)
- == DEBUG_TYPE_NULL)
- return FALSE;
- }
-
- break;
-
- case 'G':
- {
- char leading;
- long c;
- asymbol **ps;
-
- /* A global symbol. The value must be extracted from the
- symbol table. */
- dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- leading = bfd_get_symbol_leading_char (info->abfd);
- for (c = info->symcount, ps = info->syms; c > 0; --c, ++ps)
- {
- const char *n;
-
- n = bfd_asymbol_name (*ps);
- if (leading != '\0' && *n == leading)
- ++n;
- if (*n == *name && strcmp (n, name) == 0)
- break;
- }
- if (c > 0)
- value = bfd_asymbol_value (*ps);
- if (! stab_record_variable (dhandle, info, name, dtype, DEBUG_GLOBAL,
- value))
- return FALSE;
- }
- break;
-
- /* This case is faked by a conditional above, when there is no
- code letter in the dbx data. Dbx data never actually
- contains 'l'. */
- case 'l':
- case 's':
- dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (! stab_record_variable (dhandle, info, name, dtype, DEBUG_LOCAL,
- value))
- return FALSE;
- break;
-
- case 'p':
- /* A function parameter. */
- if (*p != 'F')
- dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL);
- else
- {
- /* pF is a two-letter code that means a function parameter in
- Fortran. The type-number specifies the type of the return
- value. Translate it into a pointer-to-function type. */
- ++p;
- dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL);
- if (dtype != DEBUG_TYPE_NULL)
- {
- debug_type ftype;
-
- ftype = debug_make_function_type (dhandle, dtype,
- (debug_type *) NULL, FALSE);
- dtype = debug_make_pointer_type (dhandle, ftype);
- }
- }
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (! debug_record_parameter (dhandle, name, dtype, DEBUG_PARM_STACK,
- value))
- return FALSE;
-
- /* FIXME: At this point gdb considers rearranging the parameter
- address on a big endian machine if it is smaller than an int.
- We have no way to do that, since we don't really know much
- about the target. */
- break;
-
- case 'P':
- if (stabtype == N_FUN)
- {
- /* Prototype of a function referenced by this file. */
- while (*p == ';')
- {
- ++p;
- if (parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL)
- == DEBUG_TYPE_NULL)
- return FALSE;
- }
- break;
- }
- /* Fall through. */
- case 'R':
- /* Parameter which is in a register. */
- dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (! debug_record_parameter (dhandle, name, dtype, DEBUG_PARM_REG,
- value))
- return FALSE;
- break;
-
- case 'r':
- /* Register variable (either global or local). */
- dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (! stab_record_variable (dhandle, info, name, dtype, DEBUG_REGISTER,
- value))
- return FALSE;
-
- /* FIXME: At this point gdb checks to combine pairs of 'p' and
- 'r' stabs into a single 'P' stab. */
- break;
-
- case 'S':
- /* Static symbol at top level of file. */
- dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (! stab_record_variable (dhandle, info, name, dtype, DEBUG_STATIC,
- value))
- return FALSE;
- break;
-
- case 't':
- /* A typedef. */
- dtype = parse_stab_type (dhandle, info, name, &p, &slot);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (name == NULL)
- {
- /* A nameless type. Nothing to do. */
- return TRUE;
- }
-
- dtype = debug_name_type (dhandle, name, dtype);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
-
- if (slot != NULL)
- *slot = dtype;
-
- break;
-
- case 'T':
- /* Struct, union, or enum tag. For GNU C++, this can be be followed
- by 't' which means we are typedef'ing it as well. */
- if (*p != 't')
- {
- synonym = FALSE;
- /* FIXME: gdb sets synonym to TRUE if the current language
- is C++. */
- }
- else
- {
- synonym = TRUE;
- ++p;
- }
-
- dtype = parse_stab_type (dhandle, info, name, &p, &slot);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (name == NULL)
- return TRUE;
-
- /* INFO->SELF_CROSSREF is set by parse_stab_type if this type is
- a cross reference to itself. These are generated by some
- versions of g++. */
- self_crossref = info->self_crossref;
-
- dtype = debug_tag_type (dhandle, name, dtype);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (slot != NULL)
- *slot = dtype;
-
- /* See if we have a cross reference to this tag which we can now
- fill in. Avoid filling in a cross reference to ourselves,
- because that would lead to circular debugging information. */
- if (! self_crossref)
- {
- register struct stab_tag **pst;
-
- for (pst = &info->tags; *pst != NULL; pst = &(*pst)->next)
- {
- if ((*pst)->name[0] == name[0]
- && strcmp ((*pst)->name, name) == 0)
- {
- (*pst)->slot = dtype;
- *pst = (*pst)->next;
- break;
- }
- }
- }
-
- if (synonym)
- {
- dtype = debug_name_type (dhandle, name, dtype);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
-
- if (slot != NULL)
- *slot = dtype;
- }
-
- break;
-
- case 'V':
- /* Static symbol of local scope */
- dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- /* FIXME: gdb checks os9k_stabs here. */
- if (! stab_record_variable (dhandle, info, name, dtype,
- DEBUG_LOCAL_STATIC, value))
- return FALSE;
- break;
-
- case 'v':
- /* Reference parameter. */
- dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (! debug_record_parameter (dhandle, name, dtype, DEBUG_PARM_REFERENCE,
- value))
- return FALSE;
- break;
-
- case 'a':
- /* Reference parameter which is in a register. */
- dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (! debug_record_parameter (dhandle, name, dtype, DEBUG_PARM_REF_REG,
- value))
- return FALSE;
- break;
-
- case 'X':
- /* This is used by Sun FORTRAN for "function result value".
- Sun claims ("dbx and dbxtool interfaces", 2nd ed)
- that Pascal uses it too, but when I tried it Pascal used
- "x:3" (local symbol) instead. */
- dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p,
- (debug_type **) NULL);
- if (dtype == DEBUG_TYPE_NULL)
- return FALSE;
- if (! stab_record_variable (dhandle, info, name, dtype, DEBUG_LOCAL,
- value))
- return FALSE;
- break;
-
- default:
- bad_stab (string);
- return FALSE;
- }
-
- /* FIXME: gdb converts structure values to structure pointers in a
- couple of cases, depending upon the target. */
-
- return TRUE;
-}
-
-/* Parse a stabs type. The typename argument is non-NULL if this is a
- typedef or a tag definition. The pp argument points to the stab
- string, and is updated. The slotp argument points to a place to
- store the slot used if the type is being defined. */
-
-static debug_type
-parse_stab_type (void *dhandle, struct stab_handle *info, const char *typename, const char **pp, debug_type **slotp)
-{
- const char *orig;
- int typenums[2];
- int size;
- bfd_boolean stringp;
- int descriptor;
- debug_type dtype;
-
- if (slotp != NULL)
- *slotp = NULL;
-
- orig = *pp;
-
- size = -1;
- stringp = FALSE;
-
- info->self_crossref = FALSE;
-
- /* Read type number if present. The type number may be omitted.
- for instance in a two-dimensional array declared with type
- "ar1;1;10;ar1;1;10;4". */
- if (! ISDIGIT (**pp) && **pp != '(' && **pp != '-')
- {
- /* 'typenums=' not present, type is anonymous. Read and return
- the definition, but don't put it in the type vector. */
- typenums[0] = typenums[1] = -1;
- }
- else
- {
- if (! parse_stab_type_number (pp, typenums))
- return DEBUG_TYPE_NULL;
-
- if (**pp != '=')
- /* Type is not being defined here. Either it already
- exists, or this is a forward reference to it. */
- return stab_find_type (dhandle, info, typenums);
-
- /* Only set the slot if the type is being defined. This means
- that the mapping from type numbers to types will only record
- the name of the typedef which defines a type. If we don't do
- this, then something like
- typedef int foo;
- int i;
- will record that i is of type foo. Unfortunately, stabs
- information is ambiguous about variable types. For this code,
- typedef int foo;
- int i;
- foo j;
- the stabs information records both i and j as having the same
- type. This could be fixed by patching the compiler. */
- if (slotp != NULL && typenums[0] >= 0 && typenums[1] >= 0)
- *slotp = stab_find_slot (info, typenums);
-
- /* Type is being defined here. */
- /* Skip the '='. */
- ++*pp;
-
- while (**pp == '@')
- {
- const char *p = *pp + 1;
- const char *attr;
-
- if (ISDIGIT (*p) || *p == '(' || *p == '-')
- /* Member type. */
- break;
-
- /* Type attributes. */
- attr = p;
-
- for (; *p != ';'; ++p)
- {
- if (*p == '\0')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- }
- *pp = p + 1;
-
- switch (*attr)
- {
- case 's':
- size = atoi (attr + 1);
- size /= 8; /* Size is in bits. We store it in bytes. */
- if (size <= 0)
- size = -1;
- break;
-
- case 'S':
- stringp = TRUE;
- break;
-
- default:
- /* Ignore unrecognized type attributes, so future
- compilers can invent new ones. */
- break;
- }
- }
- }
-
- descriptor = **pp;
- ++*pp;
-
- switch (descriptor)
- {
- case 'x':
- {
- enum debug_type_kind code;
- const char *q1, *q2, *p;
-
- /* A cross reference to another type. */
- switch (**pp)
- {
- case 's':
- code = DEBUG_KIND_STRUCT;
- break;
- case 'u':
- code = DEBUG_KIND_UNION;
- break;
- case 'e':
- code = DEBUG_KIND_ENUM;
- break;
- default:
- /* Complain and keep going, so compilers can invent new
- cross-reference types. */
- warn_stab (orig, _("unrecognized cross reference type"));
- code = DEBUG_KIND_STRUCT;
- break;
- }
- ++*pp;
-
- q1 = strchr (*pp, '<');
- p = strchr (*pp, ':');
- if (p == NULL)
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- if (q1 != NULL && p > q1 && p[1] == ':')
- {
- int nest = 0;
-
- for (q2 = q1; *q2 != '\0'; ++q2)
- {
- if (*q2 == '<')
- ++nest;
- else if (*q2 == '>')
- --nest;
- else if (*q2 == ':' && nest == 0)
- break;
- }
- p = q2;
- if (*p != ':')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- }
-
- /* Some versions of g++ can emit stabs like
- fleep:T20=xsfleep:
- which define structures in terms of themselves. We need to
- tell the caller to avoid building a circular structure. */
- if (typename != NULL
- && strncmp (typename, *pp, p - *pp) == 0
- && typename[p - *pp] == '\0')
- info->self_crossref = TRUE;
-
- dtype = stab_find_tagged_type (dhandle, info, *pp, p - *pp, code);
-
- *pp = p + 1;
- }
- break;
-
- case '-':
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- case '(':
- {
- const char *hold;
- int xtypenums[2];
-
- /* This type is defined as another type. */
- (*pp)--;
- hold = *pp;
-
- /* Peek ahead at the number to detect void. */
- if (! parse_stab_type_number (pp, xtypenums))
- return DEBUG_TYPE_NULL;
-
- if (typenums[0] == xtypenums[0] && typenums[1] == xtypenums[1])
- {
- /* This type is being defined as itself, which means that
- it is void. */
- dtype = debug_make_void_type (dhandle);
- }
- else
- {
- *pp = hold;
-
- /* Go back to the number and have parse_stab_type get it.
- This means that we can deal with something like
- t(1,2)=(3,4)=... which the Lucid compiler uses. */
- dtype = parse_stab_type (dhandle, info, (const char *) NULL,
- pp, (debug_type **) NULL);
- if (dtype == DEBUG_TYPE_NULL)
- return DEBUG_TYPE_NULL;
- }
-
- if (typenums[0] != -1)
- {
- if (! stab_record_type (dhandle, info, typenums, dtype))
- return DEBUG_TYPE_NULL;
- }
-
- break;
- }
-
- case '*':
- dtype = debug_make_pointer_type (dhandle,
- parse_stab_type (dhandle, info,
- (const char *) NULL,
- pp,
- (debug_type **) NULL));
- break;
-
- case '&':
- /* Reference to another type. */
- dtype = (debug_make_reference_type
- (dhandle,
- parse_stab_type (dhandle, info, (const char *) NULL, pp,
- (debug_type **) NULL)));
- break;
-
- case 'f':
- /* Function returning another type. */
- /* FIXME: gdb checks os9k_stabs here. */
- dtype = (debug_make_function_type
- (dhandle,
- parse_stab_type (dhandle, info, (const char *) NULL, pp,
- (debug_type **) NULL),
- (debug_type *) NULL, FALSE));
- break;
-
- case 'k':
- /* Const qualifier on some type (Sun). */
- /* FIXME: gdb accepts 'c' here if os9k_stabs. */
- dtype = debug_make_const_type (dhandle,
- parse_stab_type (dhandle, info,
- (const char *) NULL,
- pp,
- (debug_type **) NULL));
- break;
-
- case 'B':
- /* Volatile qual on some type (Sun). */
- /* FIXME: gdb accepts 'i' here if os9k_stabs. */
- dtype = (debug_make_volatile_type
- (dhandle,
- parse_stab_type (dhandle, info, (const char *) NULL, pp,
- (debug_type **) NULL)));
- break;
-
- case '@':
- /* Offset (class & variable) type. This is used for a pointer
- relative to an object. */
- {
- debug_type domain;
- debug_type memtype;
-
- /* Member type. */
-
- domain = parse_stab_type (dhandle, info, (const char *) NULL, pp,
- (debug_type **) NULL);
- if (domain == DEBUG_TYPE_NULL)
- return DEBUG_TYPE_NULL;
-
- if (**pp != ',')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
-
- memtype = parse_stab_type (dhandle, info, (const char *) NULL, pp,
- (debug_type **) NULL);
- if (memtype == DEBUG_TYPE_NULL)
- return DEBUG_TYPE_NULL;
-
- dtype = debug_make_offset_type (dhandle, domain, memtype);
- }
- break;
-
- case '#':
- /* Method (class & fn) type. */
- if (**pp == '#')
- {
- debug_type return_type;
-
- ++*pp;
- return_type = parse_stab_type (dhandle, info, (const char *) NULL,
- pp, (debug_type **) NULL);
- if (return_type == DEBUG_TYPE_NULL)
- return DEBUG_TYPE_NULL;
- if (**pp != ';')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
- dtype = debug_make_method_type (dhandle, return_type,
- DEBUG_TYPE_NULL,
- (debug_type *) NULL, FALSE);
- }
- else
- {
- debug_type domain;
- debug_type return_type;
- debug_type *args;
- unsigned int n;
- unsigned int alloc;
- bfd_boolean varargs;
-
- domain = parse_stab_type (dhandle, info, (const char *) NULL,
- pp, (debug_type **) NULL);
- if (domain == DEBUG_TYPE_NULL)
- return DEBUG_TYPE_NULL;
-
- if (**pp != ',')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
-
- return_type = parse_stab_type (dhandle, info, (const char *) NULL,
- pp, (debug_type **) NULL);
- if (return_type == DEBUG_TYPE_NULL)
- return DEBUG_TYPE_NULL;
-
- alloc = 10;
- args = (debug_type *) xmalloc (alloc * sizeof *args);
- n = 0;
- while (**pp != ';')
- {
- if (**pp != ',')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
-
- if (n + 1 >= alloc)
- {
- alloc += 10;
- args = ((debug_type *)
- xrealloc (args, alloc * sizeof *args));
- }
-
- args[n] = parse_stab_type (dhandle, info, (const char *) NULL,
- pp, (debug_type **) NULL);
- if (args[n] == DEBUG_TYPE_NULL)
- return DEBUG_TYPE_NULL;
- ++n;
- }
- ++*pp;
-
- /* If the last type is not void, then this function takes a
- variable number of arguments. Otherwise, we must strip
- the void type. */
- if (n == 0
- || debug_get_type_kind (dhandle, args[n - 1]) != DEBUG_KIND_VOID)
- varargs = TRUE;
- else
- {
- --n;
- varargs = FALSE;
- }
-
- args[n] = DEBUG_TYPE_NULL;
-
- dtype = debug_make_method_type (dhandle, return_type, domain, args,
- varargs);
- }
- break;
-
- case 'r':
- /* Range type. */
- dtype = parse_stab_range_type (dhandle, info, typename, pp, typenums);
- break;
-
- case 'b':
- /* FIXME: gdb checks os9k_stabs here. */
- /* Sun ACC builtin int type. */
- dtype = parse_stab_sun_builtin_type (dhandle, pp);
- break;
-
- case 'R':
- /* Sun ACC builtin float type. */
- dtype = parse_stab_sun_floating_type (dhandle, pp);
- break;
-
- case 'e':
- /* Enumeration type. */
- dtype = parse_stab_enum_type (dhandle, pp);
- break;
-
- case 's':
- case 'u':
- /* Struct or union type. */
- dtype = parse_stab_struct_type (dhandle, info, typename, pp,
- descriptor == 's', typenums);
- break;
-
- case 'a':
- /* Array type. */
- if (**pp != 'r')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
-
- dtype = parse_stab_array_type (dhandle, info, pp, stringp);
- break;
-
- case 'S':
- dtype = debug_make_set_type (dhandle,
- parse_stab_type (dhandle, info,
- (const char *) NULL,
- pp,
- (debug_type **) NULL),
- stringp);
- break;
-
- default:
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
-
- if (dtype == DEBUG_TYPE_NULL)
- return DEBUG_TYPE_NULL;
-
- if (typenums[0] != -1)
- {
- if (! stab_record_type (dhandle, info, typenums, dtype))
- return DEBUG_TYPE_NULL;
- }
-
- if (size != -1)
- {
- if (! debug_record_type_size (dhandle, dtype, (unsigned int) size))
- return DEBUG_TYPE_NULL;
- }
-
- return dtype;
-}
-
-/* Read a number by which a type is referred to in dbx data, or
- perhaps read a pair (FILENUM, TYPENUM) in parentheses. Just a
- single number N is equivalent to (0,N). Return the two numbers by
- storing them in the vector TYPENUMS. */
-
-static bfd_boolean
-parse_stab_type_number (const char **pp, int *typenums)
-{
- const char *orig;
-
- orig = *pp;
-
- if (**pp != '(')
- {
- typenums[0] = 0;
- typenums[1] = (int) parse_number (pp, (bfd_boolean *) NULL);
- }
- else
- {
- ++*pp;
- typenums[0] = (int) parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ',')
- {
- bad_stab (orig);
- return FALSE;
- }
- ++*pp;
- typenums[1] = (int) parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ')')
- {
- bad_stab (orig);
- return FALSE;
- }
- ++*pp;
- }
-
- return TRUE;
-}
-
-/* Parse a range type. */
-
-static debug_type
-parse_stab_range_type (void *dhandle, struct stab_handle *info, const char *typename, const char **pp, const int *typenums)
-{
- const char *orig;
- int rangenums[2];
- bfd_boolean self_subrange;
- debug_type index_type;
- const char *s2, *s3;
- bfd_signed_vma n2, n3;
- bfd_boolean ov2, ov3;
-
- orig = *pp;
-
- index_type = DEBUG_TYPE_NULL;
-
- /* First comes a type we are a subrange of.
- In C it is usually 0, 1 or the type being defined. */
- if (! parse_stab_type_number (pp, rangenums))
- return DEBUG_TYPE_NULL;
-
- self_subrange = (rangenums[0] == typenums[0]
- && rangenums[1] == typenums[1]);
-
- if (**pp == '=')
- {
- *pp = orig;
- index_type = parse_stab_type (dhandle, info, (const char *) NULL,
- pp, (debug_type **) NULL);
- if (index_type == DEBUG_TYPE_NULL)
- return DEBUG_TYPE_NULL;
- }
-
- if (**pp == ';')
- ++*pp;
-
- /* The remaining two operands are usually lower and upper bounds of
- the range. But in some special cases they mean something else. */
- s2 = *pp;
- n2 = parse_number (pp, &ov2);
- if (**pp != ';')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
-
- s3 = *pp;
- n3 = parse_number (pp, &ov3);
- if (**pp != ';')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
-
- if (ov2 || ov3)
- {
- /* gcc will emit range stabs for long long types. Handle this
- as a special case. FIXME: This needs to be more general. */
-#define LLLOW "01000000000000000000000;"
-#define LLHIGH "0777777777777777777777;"
-#define ULLHIGH "01777777777777777777777;"
- if (index_type == DEBUG_TYPE_NULL)
- {
- if (strncmp (s2, LLLOW, sizeof LLLOW - 1) == 0
- && strncmp (s3, LLHIGH, sizeof LLHIGH - 1) == 0)
- return debug_make_int_type (dhandle, 8, FALSE);
- if (! ov2
- && n2 == 0
- && strncmp (s3, ULLHIGH, sizeof ULLHIGH - 1) == 0)
- return debug_make_int_type (dhandle, 8, TRUE);
- }
-
- warn_stab (orig, _("numeric overflow"));
- }
-
- if (index_type == DEBUG_TYPE_NULL)
- {
- /* A type defined as a subrange of itself, with both bounds 0,
- is void. */
- if (self_subrange && n2 == 0 && n3 == 0)
- return debug_make_void_type (dhandle);
-
- /* A type defined as a subrange of itself, with n2 positive and
- n3 zero, is a complex type, and n2 is the number of bytes. */
- if (self_subrange && n3 == 0 && n2 > 0)
- return debug_make_complex_type (dhandle, n2);
-
- /* If n3 is zero and n2 is positive, this is a floating point
- type, and n2 is the number of bytes. */
- if (n3 == 0 && n2 > 0)
- return debug_make_float_type (dhandle, n2);
-
- /* If the upper bound is -1, this is an unsigned int. */
- if (n2 == 0 && n3 == -1)
- {
- /* When gcc is used with -gstabs, but not -gstabs+, it will emit
- long long int:t6=r1;0;-1;
- long long unsigned int:t7=r1;0;-1;
- We hack here to handle this reasonably. */
- if (typename != NULL)
- {
- if (strcmp (typename, "long long int") == 0)
- return debug_make_int_type (dhandle, 8, FALSE);
- else if (strcmp (typename, "long long unsigned int") == 0)
- return debug_make_int_type (dhandle, 8, TRUE);
- }
- /* FIXME: The size here really depends upon the target. */
- return debug_make_int_type (dhandle, 4, TRUE);
- }
-
- /* A range of 0 to 127 is char. */
- if (self_subrange && n2 == 0 && n3 == 127)
- return debug_make_int_type (dhandle, 1, FALSE);
-
- /* FIXME: gdb checks for the language CHILL here. */
-
- if (n2 == 0)
- {
- if (n3 < 0)
- return debug_make_int_type (dhandle, - n3, TRUE);
- else if (n3 == 0xff)
- return debug_make_int_type (dhandle, 1, TRUE);
- else if (n3 == 0xffff)
- return debug_make_int_type (dhandle, 2, TRUE);
- else if (n3 == (bfd_signed_vma) 0xffffffff)
- return debug_make_int_type (dhandle, 4, TRUE);
-#ifdef BFD64
- else if (n3 == ((((bfd_signed_vma) 0xffffffff) << 32) | 0xffffffff))
- return debug_make_int_type (dhandle, 8, TRUE);
-#endif
- }
- else if (n3 == 0
- && n2 < 0
- && (self_subrange || n2 == -8))
- return debug_make_int_type (dhandle, - n2, TRUE);
- else if (n2 == - n3 - 1 || n2 == n3 + 1)
- {
- if (n3 == 0x7f)
- return debug_make_int_type (dhandle, 1, FALSE);
- else if (n3 == 0x7fff)
- return debug_make_int_type (dhandle, 2, FALSE);
- else if (n3 == 0x7fffffff)
- return debug_make_int_type (dhandle, 4, FALSE);
-#ifdef BFD64
- else if (n3 == ((((bfd_vma) 0x7fffffff) << 32) | 0xffffffff))
- return debug_make_int_type (dhandle, 8, FALSE);
-#endif
- }
- }
-
- /* At this point I don't have the faintest idea how to deal with a
- self_subrange type; I'm going to assume that this is used as an
- idiom, and that all of them are special cases. So . . . */
- if (self_subrange)
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
-
- index_type = stab_find_type (dhandle, info, rangenums);
- if (index_type == DEBUG_TYPE_NULL)
- {
- /* Does this actually ever happen? Is that why we are worrying
- about dealing with it rather than just calling error_type? */
- warn_stab (orig, _("missing index type"));
- index_type = debug_make_int_type (dhandle, 4, FALSE);
- }
-
- return debug_make_range_type (dhandle, index_type, n2, n3);
-}
-
-/* Sun's ACC uses a somewhat saner method for specifying the builtin
- typedefs in every file (for int, long, etc):
-
- type = b <signed> <width>; <offset>; <nbits>
- signed = u or s. Possible c in addition to u or s (for char?).
- offset = offset from high order bit to start bit of type.
- width is # bytes in object of this type, nbits is # bits in type.
-
- The width/offset stuff appears to be for small objects stored in
- larger ones (e.g. `shorts' in `int' registers). We ignore it for now,
- FIXME. */
-
-static debug_type
-parse_stab_sun_builtin_type (void *dhandle, const char **pp)
-{
- const char *orig;
- bfd_boolean unsignedp;
- bfd_vma bits;
-
- orig = *pp;
-
- switch (**pp)
- {
- case 's':
- unsignedp = FALSE;
- break;
- case 'u':
- unsignedp = TRUE;
- break;
- default:
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
-
- /* For some odd reason, all forms of char put a c here. This is strange
- because no other type has this honor. We can safely ignore this because
- we actually determine 'char'acterness by the number of bits specified in
- the descriptor. */
- if (**pp == 'c')
- ++*pp;
-
- /* The first number appears to be the number of bytes occupied
- by this type, except that unsigned short is 4 instead of 2.
- Since this information is redundant with the third number,
- we will ignore it. */
- (void) parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ';')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
-
- /* The second number is always 0, so ignore it too. */
- (void) parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ';')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
-
- /* The third number is the number of bits for this type. */
- bits = parse_number (pp, (bfd_boolean *) NULL);
-
- /* The type *should* end with a semicolon. If it are embedded
- in a larger type the semicolon may be the only way to know where
- the type ends. If this type is at the end of the stabstring we
- can deal with the omitted semicolon (but we don't have to like
- it). Don't bother to complain(), Sun's compiler omits the semicolon
- for "void". */
- if (**pp == ';')
- ++*pp;
-
- if (bits == 0)
- return debug_make_void_type (dhandle);
-
- return debug_make_int_type (dhandle, bits / 8, unsignedp);
-}
-
-/* Parse a builtin floating type generated by the Sun compiler. */
-
-static debug_type
-parse_stab_sun_floating_type (void *dhandle, const char **pp)
-{
- const char *orig;
- bfd_vma details;
- bfd_vma bytes;
-
- orig = *pp;
-
- /* The first number has more details about the type, for example
- FN_COMPLEX. */
- details = parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ';')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
-
- /* The second number is the number of bytes occupied by this type */
- bytes = parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ';')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
-
- if (details == NF_COMPLEX
- || details == NF_COMPLEX16
- || details == NF_COMPLEX32)
- return debug_make_complex_type (dhandle, bytes);
-
- return debug_make_float_type (dhandle, bytes);
-}
-
-/* Handle an enum type. */
-
-static debug_type
-parse_stab_enum_type (void *dhandle, const char **pp)
-{
- const char *orig;
- const char **names;
- bfd_signed_vma *values;
- unsigned int n;
- unsigned int alloc;
-
- orig = *pp;
-
- /* FIXME: gdb checks os9k_stabs here. */
-
- /* The aix4 compiler emits an extra field before the enum members;
- my guess is it's a type of some sort. Just ignore it. */
- if (**pp == '-')
- {
- while (**pp != ':')
- ++*pp;
- ++*pp;
- }
-
- /* Read the value-names and their values.
- The input syntax is NAME:VALUE,NAME:VALUE, and so on.
- A semicolon or comma instead of a NAME means the end. */
- alloc = 10;
- names = (const char **) xmalloc (alloc * sizeof *names);
- values = (bfd_signed_vma *) xmalloc (alloc * sizeof *values);
- n = 0;
- while (**pp != '\0' && **pp != ';' && **pp != ',')
- {
- const char *p;
- char *name;
- bfd_signed_vma val;
-
- p = *pp;
- while (*p != ':')
- ++p;
-
- name = savestring (*pp, p - *pp);
-
- *pp = p + 1;
- val = (bfd_signed_vma) parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ',')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
-
- if (n + 1 >= alloc)
- {
- alloc += 10;
- names = ((const char **)
- xrealloc (names, alloc * sizeof *names));
- values = ((bfd_signed_vma *)
- xrealloc (values, alloc * sizeof *values));
- }
-
- names[n] = name;
- values[n] = val;
- ++n;
- }
-
- names[n] = NULL;
- values[n] = 0;
-
- if (**pp == ';')
- ++*pp;
-
- return debug_make_enum_type (dhandle, names, values);
-}
-
-/* Read the description of a structure (or union type) and return an object
- describing the type.
-
- PP points to a character pointer that points to the next unconsumed token
- in the stabs string. For example, given stabs "A:T4=s4a:1,0,32;;",
- *PP will point to "4a:1,0,32;;". */
-
-static debug_type
-parse_stab_struct_type (void *dhandle, struct stab_handle *info,
- const char *tagname, const char **pp,
- bfd_boolean structp, const int *typenums)
-{
- const char *orig;
- bfd_vma size;
- debug_baseclass *baseclasses;
- debug_field *fields;
- bfd_boolean statics;
- debug_method *methods;
- debug_type vptrbase;
- bfd_boolean ownvptr;
-
- orig = *pp;
-
- /* Get the size. */
- size = parse_number (pp, (bfd_boolean *) NULL);
-
- /* Get the other information. */
- if (! parse_stab_baseclasses (dhandle, info, pp, &baseclasses)
- || ! parse_stab_struct_fields (dhandle, info, pp, &fields, &statics)
- || ! parse_stab_members (dhandle, info, tagname, pp, typenums, &methods)
- || ! parse_stab_tilde_field (dhandle, info, pp, typenums, &vptrbase,
- &ownvptr))
- return DEBUG_TYPE_NULL;
-
- if (! statics
- && baseclasses == NULL
- && methods == NULL
- && vptrbase == DEBUG_TYPE_NULL
- && ! ownvptr)
- return debug_make_struct_type (dhandle, structp, size, fields);
-
- return debug_make_object_type (dhandle, structp, size, fields, baseclasses,
- methods, vptrbase, ownvptr);
-}
-
-/* The stabs for C++ derived classes contain baseclass information which
- is marked by a '!' character after the total size. This function is
- called when we encounter the baseclass marker, and slurps up all the
- baseclass information.
-
- Immediately following the '!' marker is the number of base classes that
- the class is derived from, followed by information for each base class.
- For each base class, there are two visibility specifiers, a bit offset
- to the base class information within the derived class, a reference to
- the type for the base class, and a terminating semicolon.
-
- A typical example, with two base classes, would be "!2,020,19;0264,21;".
- ^^ ^ ^ ^ ^ ^ ^
- Baseclass information marker __________________|| | | | | | |
- Number of baseclasses __________________________| | | | | | |
- Visibility specifiers (2) ________________________| | | | | |
- Offset in bits from start of class _________________| | | | |
- Type number for base class ___________________________| | | |
- Visibility specifiers (2) _______________________________| | |
- Offset in bits from start of class ________________________| |
- Type number of base class ____________________________________|
-
- Return TRUE for success, FALSE for failure. */
-
-static bfd_boolean
-parse_stab_baseclasses (void *dhandle, struct stab_handle *info,
- const char **pp, debug_baseclass **retp)
-{
- const char *orig;
- unsigned int c, i;
- debug_baseclass *classes;
-
- *retp = NULL;
-
- orig = *pp;
-
- if (**pp != '!')
- {
- /* No base classes. */
- return TRUE;
- }
- ++*pp;
-
- c = (unsigned int) parse_number (pp, (bfd_boolean *) NULL);
-
- if (**pp != ',')
- {
- bad_stab (orig);
- return FALSE;
- }
- ++*pp;
-
- classes = (debug_baseclass *) xmalloc ((c + 1) * sizeof (**retp));
-
- for (i = 0; i < c; i++)
- {
- bfd_boolean virtual;
- enum debug_visibility visibility;
- bfd_vma bitpos;
- debug_type type;
-
- switch (**pp)
- {
- case '0':
- virtual = FALSE;
- break;
- case '1':
- virtual = TRUE;
- break;
- default:
- warn_stab (orig, _("unknown virtual character for baseclass"));
- virtual = FALSE;
- break;
- }
- ++*pp;
-
- switch (**pp)
- {
- case '0':
- visibility = DEBUG_VISIBILITY_PRIVATE;
- break;
- case '1':
- visibility = DEBUG_VISIBILITY_PROTECTED;
- break;
- case '2':
- visibility = DEBUG_VISIBILITY_PUBLIC;
- break;
- default:
- warn_stab (orig, _("unknown visibility character for baseclass"));
- visibility = DEBUG_VISIBILITY_PUBLIC;
- break;
- }
- ++*pp;
-
- /* The remaining value is the bit offset of the portion of the
- object corresponding to this baseclass. Always zero in the
- absence of multiple inheritance. */
- bitpos = parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ',')
- {
- bad_stab (orig);
- return FALSE;
- }
- ++*pp;
-
- type = parse_stab_type (dhandle, info, (const char *) NULL, pp,
- (debug_type **) NULL);
- if (type == DEBUG_TYPE_NULL)
- return FALSE;
-
- classes[i] = debug_make_baseclass (dhandle, type, bitpos, virtual,
- visibility);
- if (classes[i] == DEBUG_BASECLASS_NULL)
- return FALSE;
-
- if (**pp != ';')
- return FALSE;
- ++*pp;
- }
-
- classes[i] = DEBUG_BASECLASS_NULL;
-
- *retp = classes;
-
- return TRUE;
-}
-
-/* Read struct or class data fields. They have the form:
-
- NAME : [VISIBILITY] TYPENUM , BITPOS , BITSIZE ;
-
- At the end, we see a semicolon instead of a field.
-
- In C++, this may wind up being NAME:?TYPENUM:PHYSNAME; for
- a static field.
-
- The optional VISIBILITY is one of:
-
- '/0' (VISIBILITY_PRIVATE)
- '/1' (VISIBILITY_PROTECTED)
- '/2' (VISIBILITY_PUBLIC)
- '/9' (VISIBILITY_IGNORE)
-
- or nothing, for C style fields with public visibility.
-
- Returns 1 for success, 0 for failure. */
-
-static bfd_boolean
-parse_stab_struct_fields (void *dhandle, struct stab_handle *info,
- const char **pp, debug_field **retp,
- bfd_boolean *staticsp)
-{
- const char *orig;
- const char *p;
- debug_field *fields;
- unsigned int c;
- unsigned int alloc;
-
- *retp = NULL;
- *staticsp = FALSE;
-
- orig = *pp;
-
- c = 0;
- alloc = 10;
- fields = (debug_field *) xmalloc (alloc * sizeof *fields);
- while (**pp != ';')
- {
- /* FIXME: gdb checks os9k_stabs here. */
-
- p = *pp;
-
- /* Add 1 to c to leave room for NULL pointer at end. */
- if (c + 1 >= alloc)
- {
- alloc += 10;
- fields = ((debug_field *)
- xrealloc (fields, alloc * sizeof *fields));
- }
-
- /* If it starts with CPLUS_MARKER it is a special abbreviation,
- unless the CPLUS_MARKER is followed by an underscore, in
- which case it is just the name of an anonymous type, which we
- should handle like any other type name. We accept either '$'
- or '.', because a field name can never contain one of these
- characters except as a CPLUS_MARKER. */
-
- if ((*p == '$' || *p == '.') && p[1] != '_')
- {
- ++*pp;
- if (! parse_stab_cpp_abbrev (dhandle, info, pp, fields + c))
- return FALSE;
- ++c;
- continue;
- }
-
- /* Look for the ':' that separates the field name from the field
- values. Data members are delimited by a single ':', while member
- functions are delimited by a pair of ':'s. When we hit the member
- functions (if any), terminate scan loop and return. */
-
- p = strchr (p, ':');
- if (p == NULL)
- {
- bad_stab (orig);
- return FALSE;
- }
-
- if (p[1] == ':')
- break;
-
- if (! parse_stab_one_struct_field (dhandle, info, pp, p, fields + c,
- staticsp))
- return FALSE;
-
- ++c;
- }
-
- fields[c] = DEBUG_FIELD_NULL;
-
- *retp = fields;
-
- return TRUE;
-}
-
-/* Special GNU C++ name. */
-
-static bfd_boolean
-parse_stab_cpp_abbrev (void *dhandle, struct stab_handle *info,
- const char **pp, debug_field *retp)
-{
- const char *orig;
- int cpp_abbrev;
- debug_type context;
- const char *name;
- const char *typename;
- debug_type type;
- bfd_vma bitpos;
-
- *retp = DEBUG_FIELD_NULL;
-
- orig = *pp;
-
- if (**pp != 'v')
- {
- bad_stab (*pp);
- return FALSE;
- }
- ++*pp;
-
- cpp_abbrev = **pp;
- ++*pp;
-
- /* At this point, *pp points to something like "22:23=*22...", where
- the type number before the ':' is the "context" and everything
- after is a regular type definition. Lookup the type, find it's
- name, and construct the field name. */
-
- context = parse_stab_type (dhandle, info, (const char *) NULL, pp,
- (debug_type **) NULL);
- if (context == DEBUG_TYPE_NULL)
- return FALSE;
-
- switch (cpp_abbrev)
- {
- case 'f':
- /* $vf -- a virtual function table pointer. */
- name = "_vptr$";
- break;
- case 'b':
- /* $vb -- a virtual bsomethingorother */
- typename = debug_get_type_name (dhandle, context);
- if (typename == NULL)
- {
- warn_stab (orig, _("unnamed $vb type"));
- typename = "FOO";
- }
- name = concat ("_vb$", typename, (const char *) NULL);
- break;
- default:
- warn_stab (orig, _("unrecognized C++ abbreviation"));
- name = "INVALID_CPLUSPLUS_ABBREV";
- break;
- }
-
- if (**pp != ':')
- {
- bad_stab (orig);
- return FALSE;
- }
- ++*pp;
-
- type = parse_stab_type (dhandle, info, (const char *) NULL, pp,
- (debug_type **) NULL);
- if (**pp != ',')
- {
- bad_stab (orig);
- return FALSE;
- }
- ++*pp;
-
- bitpos = parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ';')
- {
- bad_stab (orig);
- return FALSE;
- }
- ++*pp;
-
- *retp = debug_make_field (dhandle, name, type, bitpos, 0,
- DEBUG_VISIBILITY_PRIVATE);
- if (*retp == DEBUG_FIELD_NULL)
- return FALSE;
-
- return TRUE;
-}
-
-/* Parse a single field in a struct or union. */
-
-static bfd_boolean
-parse_stab_one_struct_field (void *dhandle, struct stab_handle *info,
- const char **pp, const char *p,
- debug_field *retp, bfd_boolean *staticsp)
-{
- const char *orig;
- char *name;
- enum debug_visibility visibility;
- debug_type type;
- bfd_vma bitpos;
- bfd_vma bitsize;
-
- orig = *pp;
-
- /* FIXME: gdb checks ARM_DEMANGLING here. */
-
- name = savestring (*pp, p - *pp);
-
- *pp = p + 1;
-
- if (**pp != '/')
- visibility = DEBUG_VISIBILITY_PUBLIC;
- else
- {
- ++*pp;
- switch (**pp)
- {
- case '0':
- visibility = DEBUG_VISIBILITY_PRIVATE;
- break;
- case '1':
- visibility = DEBUG_VISIBILITY_PROTECTED;
- break;
- case '2':
- visibility = DEBUG_VISIBILITY_PUBLIC;
- break;
- default:
- warn_stab (orig, _("unknown visibility character for field"));
- visibility = DEBUG_VISIBILITY_PUBLIC;
- break;
- }
- ++*pp;
- }
-
- type = parse_stab_type (dhandle, info, (const char *) NULL, pp,
- (debug_type **) NULL);
- if (type == DEBUG_TYPE_NULL)
- return FALSE;
-
- if (**pp == ':')
- {
- char *varname;
-
- /* This is a static class member. */
- ++*pp;
- p = strchr (*pp, ';');
- if (p == NULL)
- {
- bad_stab (orig);
- return FALSE;
- }
-
- varname = savestring (*pp, p - *pp);
-
- *pp = p + 1;
-
- *retp = debug_make_static_member (dhandle, name, type, varname,
- visibility);
- *staticsp = TRUE;
-
- return TRUE;
- }
-
- if (**pp != ',')
- {
- bad_stab (orig);
- return FALSE;
- }
- ++*pp;
-
- bitpos = parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ',')
- {
- bad_stab (orig);
- return FALSE;
- }
- ++*pp;
-
- bitsize = parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ';')
- {
- bad_stab (orig);
- return FALSE;
- }
- ++*pp;
-
- if (bitpos == 0 && bitsize == 0)
- {
- /* This can happen in two cases: (1) at least for gcc 2.4.5 or
- so, it is a field which has been optimized out. The correct
- stab for this case is to use VISIBILITY_IGNORE, but that is a
- recent invention. (2) It is a 0-size array. For example
- union { int num; char str[0]; } foo. Printing "<no value>"
- for str in "p foo" is OK, since foo.str (and thus foo.str[3])
- will continue to work, and a 0-size array as a whole doesn't
- have any contents to print.
-
- I suspect this probably could also happen with gcc -gstabs
- (not -gstabs+) for static fields, and perhaps other C++
- extensions. Hopefully few people use -gstabs with gdb, since
- it is intended for dbx compatibility. */
- visibility = DEBUG_VISIBILITY_IGNORE;
- }
-
- /* FIXME: gdb does some stuff here to mark fields as unpacked. */
-
- *retp = debug_make_field (dhandle, name, type, bitpos, bitsize, visibility);
-
- return TRUE;
-}
-
-/* Read member function stabs info for C++ classes. The form of each member
- function data is:
-
- NAME :: TYPENUM[=type definition] ARGS : PHYSNAME ;
-
- An example with two member functions is:
-
- afunc1::20=##15;:i;2A.;afunc2::20:i;2A.;
-
- For the case of overloaded operators, the format is op$::*.funcs, where
- $ is the CPLUS_MARKER (usually '$'), `*' holds the place for an operator
- name (such as `+=') and `.' marks the end of the operator name. */
-
-static bfd_boolean
-parse_stab_members (void *dhandle, struct stab_handle *info,
- const char *tagname, const char **pp,
- const int *typenums, debug_method **retp)
-{
- const char *orig;
- debug_method *methods;
- unsigned int c;
- unsigned int alloc;
-
- *retp = NULL;
-
- orig = *pp;
-
- alloc = 0;
- methods = NULL;
- c = 0;
-
- while (**pp != ';')
- {
- const char *p;
- char *name;
- debug_method_variant *variants;
- unsigned int cvars;
- unsigned int allocvars;
- debug_type look_ahead_type;
-
- p = strchr (*pp, ':');
- if (p == NULL || p[1] != ':')
- break;
-
- /* FIXME: Some systems use something other than '$' here. */
- if ((*pp)[0] != 'o' || (*pp)[1] != 'p' || (*pp)[2] != '$')
- {
- name = savestring (*pp, p - *pp);
- *pp = p + 2;
- }
- else
- {
- /* This is a completely weird case. In order to stuff in the
- names that might contain colons (the usual name delimiter),
- Mike Tiemann defined a different name format which is
- signalled if the identifier is "op$". In that case, the
- format is "op$::XXXX." where XXXX is the name. This is
- used for names like "+" or "=". YUUUUUUUK! FIXME! */
- *pp = p + 2;
- for (p = *pp; *p != '.' && *p != '\0'; p++)
- ;
- if (*p != '.')
- {
- bad_stab (orig);
- return FALSE;
- }
- name = savestring (*pp, p - *pp);
- *pp = p + 1;
- }
-
- allocvars = 10;
- variants = ((debug_method_variant *)
- xmalloc (allocvars * sizeof *variants));
- cvars = 0;
-
- look_ahead_type = DEBUG_TYPE_NULL;
-
- do
- {
- debug_type type;
- bfd_boolean stub;
- char *argtypes;
- enum debug_visibility visibility;
- bfd_boolean constp, volatilep, staticp;
- bfd_vma voffset;
- debug_type context;
- const char *physname;
- bfd_boolean varargs;
-
- if (look_ahead_type != DEBUG_TYPE_NULL)
- {
- /* g++ version 1 kludge */
- type = look_ahead_type;
- look_ahead_type = DEBUG_TYPE_NULL;
- }
- else
- {
- type = parse_stab_type (dhandle, info, (const char *) NULL, pp,
- (debug_type **) NULL);
- if (type == DEBUG_TYPE_NULL)
- return FALSE;
- if (**pp != ':')
- {
- bad_stab (orig);
- return FALSE;
- }
- }
-
- ++*pp;
- p = strchr (*pp, ';');
- if (p == NULL)
- {
- bad_stab (orig);
- return FALSE;
- }
-
- stub = FALSE;
- if (debug_get_type_kind (dhandle, type) == DEBUG_KIND_METHOD
- && debug_get_parameter_types (dhandle, type, &varargs) == NULL)
- stub = TRUE;
-
- argtypes = savestring (*pp, p - *pp);
- *pp = p + 1;
-
- switch (**pp)
- {
- case '0':
- visibility = DEBUG_VISIBILITY_PRIVATE;
- break;
- case '1':
- visibility = DEBUG_VISIBILITY_PROTECTED;
- break;
- default:
- visibility = DEBUG_VISIBILITY_PUBLIC;
- break;
- }
- ++*pp;
-
- constp = FALSE;
- volatilep = FALSE;
- switch (**pp)
- {
- case 'A':
- /* Normal function. */
- ++*pp;
- break;
- case 'B':
- /* const member function. */
- constp = TRUE;
- ++*pp;
- break;
- case 'C':
- /* volatile member function. */
- volatilep = TRUE;
- ++*pp;
- break;
- case 'D':
- /* const volatile member function. */
- constp = TRUE;
- volatilep = TRUE;
- ++*pp;
- break;
- case '*':
- case '?':
- case '.':
- /* File compiled with g++ version 1; no information. */
- break;
- default:
- warn_stab (orig, _("const/volatile indicator missing"));
- break;
- }
-
- staticp = FALSE;
- switch (**pp)
- {
- case '*':
- /* virtual member function, followed by index. The sign
- bit is supposedly set to distinguish
- pointers-to-methods from virtual function indicies. */
- ++*pp;
- voffset = parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ';')
- {
- bad_stab (orig);
- return FALSE;
- }
- ++*pp;
- voffset &= 0x7fffffff;
-
- if (**pp == ';' || *pp == '\0')
- {
- /* Must be g++ version 1. */
- context = DEBUG_TYPE_NULL;
- }
- else
- {
- /* Figure out from whence this virtual function
- came. It may belong to virtual function table of
- one of its baseclasses. */
- look_ahead_type = parse_stab_type (dhandle, info,
- (const char *) NULL,
- pp,
- (debug_type **) NULL);
- if (**pp == ':')
- {
- /* g++ version 1 overloaded methods. */
- context = DEBUG_TYPE_NULL;
- }
- else
- {
- context = look_ahead_type;
- look_ahead_type = DEBUG_TYPE_NULL;
- if (**pp != ';')
- {
- bad_stab (orig);
- return FALSE;
- }
- ++*pp;
- }
- }
- break;
-
- case '?':
- /* static member function. */
- ++*pp;
- staticp = TRUE;
- voffset = 0;
- context = DEBUG_TYPE_NULL;
- if (strncmp (argtypes, name, strlen (name)) != 0)
- stub = TRUE;
- break;
-
- default:
- warn_stab (orig, "member function type missing");
- voffset = 0;
- context = DEBUG_TYPE_NULL;
- break;
-
- case '.':
- ++*pp;
- voffset = 0;
- context = DEBUG_TYPE_NULL;
- break;
- }
-
- /* If the type is not a stub, then the argtypes string is
- the physical name of the function. Otherwise the
- argtypes string is the mangled form of the argument
- types, and the full type and the physical name must be
- extracted from them. */
- if (! stub)
- physname = argtypes;
- else
- {
- debug_type class_type, return_type;
-
- class_type = stab_find_type (dhandle, info, typenums);
- if (class_type == DEBUG_TYPE_NULL)
- return FALSE;
- return_type = debug_get_return_type (dhandle, type);
- if (return_type == DEBUG_TYPE_NULL)
- {
- bad_stab (orig);
- return FALSE;
- }
- type = parse_stab_argtypes (dhandle, info, class_type, name,
- tagname, return_type, argtypes,
- constp, volatilep, &physname);
- if (type == DEBUG_TYPE_NULL)
- return FALSE;
- }
-
- if (cvars + 1 >= allocvars)
- {
- allocvars += 10;
- variants = ((debug_method_variant *)
- xrealloc (variants,
- allocvars * sizeof *variants));
- }
-
- if (! staticp)
- variants[cvars] = debug_make_method_variant (dhandle, physname,
- type, visibility,
- constp, volatilep,
- voffset, context);
- else
- variants[cvars] = debug_make_static_method_variant (dhandle,
- physname,
- type,
- visibility,
- constp,
- volatilep);
- if (variants[cvars] == DEBUG_METHOD_VARIANT_NULL)
- return FALSE;
-
- ++cvars;
- }
- while (**pp != ';' && **pp != '\0');
-
- variants[cvars] = DEBUG_METHOD_VARIANT_NULL;
-
- if (**pp != '\0')
- ++*pp;
-
- if (c + 1 >= alloc)
- {
- alloc += 10;
- methods = ((debug_method *)
- xrealloc (methods, alloc * sizeof *methods));
- }
-
- methods[c] = debug_make_method (dhandle, name, variants);
-
- ++c;
- }
-
- if (methods != NULL)
- methods[c] = DEBUG_METHOD_NULL;
-
- *retp = methods;
-
- return TRUE;
-}
-
-/* Parse a string representing argument types for a method. Stabs
- tries to save space by packing argument types into a mangled
- string. This string should give us enough information to extract
- both argument types and the physical name of the function, given
- the tag name. */
-
-static debug_type
-parse_stab_argtypes (void *dhandle, struct stab_handle *info,
- debug_type class_type, const char *fieldname,
- const char *tagname, debug_type return_type,
- const char *argtypes, bfd_boolean constp,
- bfd_boolean volatilep, const char **pphysname)
-{
- bfd_boolean is_full_physname_constructor;
- bfd_boolean is_constructor;
- bfd_boolean is_destructor;
- bfd_boolean is_v3;
- debug_type *args;
- bfd_boolean varargs;
- unsigned int physname_len = 0;
-
- /* Constructors are sometimes handled specially. */
- is_full_physname_constructor = ((argtypes[0] == '_'
- && argtypes[1] == '_'
- && (ISDIGIT (argtypes[2])
- || argtypes[2] == 'Q'
- || argtypes[2] == 't'))
- || strncmp (argtypes, "__ct", 4) == 0);
-
- is_constructor = (is_full_physname_constructor
- || (tagname != NULL
- && strcmp (fieldname, tagname) == 0));
- is_destructor = ((argtypes[0] == '_'
- && (argtypes[1] == '$' || argtypes[1] == '.')
- && argtypes[2] == '_')
- || strncmp (argtypes, "__dt", 4) == 0);
- is_v3 = argtypes[0] == '_' && argtypes[1] == 'Z';
-
- if (is_destructor || is_full_physname_constructor || is_v3)
- *pphysname = argtypes;
- else
- {
- unsigned int len;
- const char *const_prefix;
- const char *volatile_prefix;
- char buf[20];
- unsigned int mangled_name_len;
- char *physname;
-
- len = tagname == NULL ? 0 : strlen (tagname);
- const_prefix = constp ? "C" : "";
- volatile_prefix = volatilep ? "V" : "";
-
- if (len == 0)
- sprintf (buf, "__%s%s", const_prefix, volatile_prefix);
- else if (tagname != NULL && strchr (tagname, '<') != NULL)
- {
- /* Template methods are fully mangled. */
- sprintf (buf, "__%s%s", const_prefix, volatile_prefix);
- tagname = NULL;
- len = 0;
- }
- else
- sprintf (buf, "__%s%s%d", const_prefix, volatile_prefix, len);
-
- mangled_name_len = ((is_constructor ? 0 : strlen (fieldname))
- + strlen (buf)
- + len
- + strlen (argtypes)
- + 1);
-
- if (fieldname[0] == 'o'
- && fieldname[1] == 'p'
- && (fieldname[2] == '$' || fieldname[2] == '.'))
- {
- const char *opname;
-
- opname = cplus_mangle_opname (fieldname + 3, 0);
- if (opname == NULL)
- {
- fprintf (stderr, _("No mangling for \"%s\"\n"), fieldname);
- return DEBUG_TYPE_NULL;
- }
- mangled_name_len += strlen (opname);
- physname = (char *) xmalloc (mangled_name_len);
- strncpy (physname, fieldname, 3);
- strcpy (physname + 3, opname);
- }
- else
- {
- physname = (char *) xmalloc (mangled_name_len);
- if (is_constructor)
- physname[0] = '\0';
- else
- strcpy (physname, fieldname);
- }
-
- physname_len = strlen (physname);
- strcat (physname, buf);
- if (tagname != NULL)
- strcat (physname, tagname);
- strcat (physname, argtypes);
-
- *pphysname = physname;
- }
-
- if (*argtypes == '\0' || is_destructor)
- {
- args = (debug_type *) xmalloc (sizeof *args);
- *args = NULL;
- return debug_make_method_type (dhandle, return_type, class_type, args,
- FALSE);
- }
-
- args = stab_demangle_argtypes (dhandle, info, *pphysname, &varargs, physname_len);
- if (args == NULL)
- return DEBUG_TYPE_NULL;
-
- return debug_make_method_type (dhandle, return_type, class_type, args,
- varargs);
-}
-
-/* The tail end of stabs for C++ classes that contain a virtual function
- pointer contains a tilde, a %, and a type number.
- The type number refers to the base class (possibly this class itself) which
- contains the vtable pointer for the current class.
-
- This function is called when we have parsed all the method declarations,
- so we can look for the vptr base class info. */
-
-static bfd_boolean
-parse_stab_tilde_field (void *dhandle, struct stab_handle *info,
- const char **pp, const int *typenums,
- debug_type *retvptrbase, bfd_boolean *retownvptr)
-{
- const char *orig;
- const char *hold;
- int vtypenums[2];
-
- *retvptrbase = DEBUG_TYPE_NULL;
- *retownvptr = FALSE;
-
- orig = *pp;
-
- /* If we are positioned at a ';', then skip it. */
- if (**pp == ';')
- ++*pp;
-
- if (**pp != '~')
- return TRUE;
-
- ++*pp;
-
- if (**pp == '=' || **pp == '+' || **pp == '-')
- {
- /* Obsolete flags that used to indicate the presence of
- constructors and/or destructors. */
- ++*pp;
- }
-
- if (**pp != '%')
- return TRUE;
-
- ++*pp;
-
- hold = *pp;
-
- /* The next number is the type number of the base class (possibly
- our own class) which supplies the vtable for this class. */
- if (! parse_stab_type_number (pp, vtypenums))
- return FALSE;
-
- if (vtypenums[0] == typenums[0]
- && vtypenums[1] == typenums[1])
- *retownvptr = TRUE;
- else
- {
- debug_type vtype;
- const char *p;
-
- *pp = hold;
-
- vtype = parse_stab_type (dhandle, info, (const char *) NULL, pp,
- (debug_type **) NULL);
- for (p = *pp; *p != ';' && *p != '\0'; p++)
- ;
- if (*p != ';')
- {
- bad_stab (orig);
- return FALSE;
- }
-
- *retvptrbase = vtype;
-
- *pp = p + 1;
- }
-
- return TRUE;
-}
-
-/* Read a definition of an array type. */
-
-static debug_type
-parse_stab_array_type (void *dhandle, struct stab_handle *info,
- const char **pp, bfd_boolean stringp)
-{
- const char *orig;
- const char *p;
- int typenums[2];
- debug_type index_type;
- bfd_boolean adjustable;
- bfd_signed_vma lower, upper;
- debug_type element_type;
-
- /* Format of an array type:
- "ar<index type>;lower;upper;<array_contents_type>".
- OS9000: "arlower,upper;<array_contents_type>".
-
- Fortran adjustable arrays use Adigits or Tdigits for lower or upper;
- for these, produce a type like float[][]. */
-
- orig = *pp;
-
- /* FIXME: gdb checks os9k_stabs here. */
-
- /* If the index type is type 0, we take it as int. */
- p = *pp;
- if (! parse_stab_type_number (&p, typenums))
- return DEBUG_TYPE_NULL;
- if (typenums[0] == 0 && typenums[1] == 0 && **pp != '=')
- {
- index_type = debug_find_named_type (dhandle, "int");
- if (index_type == DEBUG_TYPE_NULL)
- {
- index_type = debug_make_int_type (dhandle, 4, FALSE);
- if (index_type == DEBUG_TYPE_NULL)
- return DEBUG_TYPE_NULL;
- }
- *pp = p;
- }
- else
- {
- index_type = parse_stab_type (dhandle, info, (const char *) NULL, pp,
- (debug_type **) NULL);
- }
-
- if (**pp != ';')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
-
- adjustable = FALSE;
-
- if (! ISDIGIT (**pp) && **pp != '-')
- {
- ++*pp;
- adjustable = TRUE;
- }
-
- lower = (bfd_signed_vma) parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ';')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
-
- if (! ISDIGIT (**pp) && **pp != '-')
- {
- ++*pp;
- adjustable = TRUE;
- }
-
- upper = (bfd_signed_vma) parse_number (pp, (bfd_boolean *) NULL);
- if (**pp != ';')
- {
- bad_stab (orig);
- return DEBUG_TYPE_NULL;
- }
- ++*pp;
-
- element_type = parse_stab_type (dhandle, info, (const char *) NULL, pp,
- (debug_type **) NULL);
- if (element_type == DEBUG_TYPE_NULL)
- return DEBUG_TYPE_NULL;
-
- if (adjustable)
- {
- lower = 0;
- upper = -1;
- }
-
- return debug_make_array_type (dhandle, element_type, index_type, lower,
- upper, stringp);
-}
-
-/* This struct holds information about files we have seen using
- N_BINCL. */
-
-struct bincl_file
-{
- /* The next N_BINCL file. */
- struct bincl_file *next;
- /* The next N_BINCL on the stack. */
- struct bincl_file *next_stack;
- /* The file name. */
- const char *name;
- /* The hash value. */
- bfd_vma hash;
- /* The file index. */
- unsigned int file;
- /* The list of types defined in this file. */
- struct stab_types *file_types;
-};
-
-/* Start a new N_BINCL file, pushing it onto the stack. */
-
-static void
-push_bincl (struct stab_handle *info, const char *name, bfd_vma hash)
-{
- struct bincl_file *n;
-
- n = (struct bincl_file *) xmalloc (sizeof *n);
- n->next = info->bincl_list;
- n->next_stack = info->bincl_stack;
- n->name = name;
- n->hash = hash;
- n->file = info->files;
- n->file_types = NULL;
- info->bincl_list = n;
- info->bincl_stack = n;
-
- ++info->files;
- info->file_types = ((struct stab_types **)
- xrealloc (info->file_types,
- (info->files
- * sizeof *info->file_types)));
- info->file_types[n->file] = NULL;
-}
-
-/* Finish an N_BINCL file, at an N_EINCL, popping the name off the
- stack. */
-
-static const char *
-pop_bincl (struct stab_handle *info)
-{
- struct bincl_file *o;
-
- o = info->bincl_stack;
- if (o == NULL)
- return info->main_filename;
- info->bincl_stack = o->next_stack;
-
- o->file_types = info->file_types[o->file];
-
- if (info->bincl_stack == NULL)
- return info->main_filename;
- return info->bincl_stack->name;
-}
-
-/* Handle an N_EXCL: get the types from the corresponding N_BINCL. */
-
-static bfd_boolean
-find_excl (struct stab_handle *info, const char *name, bfd_vma hash)
-{
- struct bincl_file *l;
-
- ++info->files;
- info->file_types = ((struct stab_types **)
- xrealloc (info->file_types,
- (info->files
- * sizeof *info->file_types)));
-
- for (l = info->bincl_list; l != NULL; l = l->next)
- if (l->hash == hash && strcmp (l->name, name) == 0)
- break;
- if (l == NULL)
- {
- warn_stab (name, _("Undefined N_EXCL"));
- info->file_types[info->files - 1] = NULL;
- return TRUE;
- }
-
- info->file_types[info->files - 1] = l->file_types;
-
- return TRUE;
-}
-
-/* Handle a variable definition. gcc emits variable definitions for a
- block before the N_LBRAC, so we must hold onto them until we see
- it. The SunPRO compiler emits variable definitions after the
- N_LBRAC, so we can call debug_record_variable immediately. */
-
-static bfd_boolean
-stab_record_variable (void *dhandle, struct stab_handle *info,
- const char *name, debug_type type,
- enum debug_var_kind kind, bfd_vma val)
-{
- struct stab_pending_var *v;
-
- if ((kind == DEBUG_GLOBAL || kind == DEBUG_STATIC)
- || ! info->within_function
- || (info->gcc_compiled == 0 && info->n_opt_found))
- return debug_record_variable (dhandle, name, type, kind, val);
-
- v = (struct stab_pending_var *) xmalloc (sizeof *v);
- memset (v, 0, sizeof *v);
-
- v->next = info->pending;
- v->name = name;
- v->type = type;
- v->kind = kind;
- v->val = val;
- info->pending = v;
-
- return TRUE;
-}
-
-/* Emit pending variable definitions. This is called after we see the
- N_LBRAC that starts the block. */
-
-static bfd_boolean
-stab_emit_pending_vars (void *dhandle, struct stab_handle *info)
-{
- struct stab_pending_var *v;
-
- v = info->pending;
- while (v != NULL)
- {
- struct stab_pending_var *next;
-
- if (! debug_record_variable (dhandle, v->name, v->type, v->kind, v->val))
- return FALSE;
-
- next = v->next;
- free (v);
- v = next;
- }
-
- info->pending = NULL;
-
- return TRUE;
-}
-
-/* Find the slot for a type in the database. */
-
-static debug_type *
-stab_find_slot (struct stab_handle *info, const int *typenums)
-{
- int filenum;
- int index;
- struct stab_types **ps;
-
- filenum = typenums[0];
- index = typenums[1];
-
- if (filenum < 0 || (unsigned int) filenum >= info->files)
- {
- fprintf (stderr, _("Type file number %d out of range\n"), filenum);
- return NULL;
- }
- if (index < 0)
- {
- fprintf (stderr, _("Type index number %d out of range\n"), index);
- return NULL;
- }
-
- ps = info->file_types + filenum;
-
- while (index >= STAB_TYPES_SLOTS)
- {
- if (*ps == NULL)
- {
- *ps = (struct stab_types *) xmalloc (sizeof **ps);
- memset (*ps, 0, sizeof **ps);
- }
- ps = &(*ps)->next;
- index -= STAB_TYPES_SLOTS;
- }
- if (*ps == NULL)
- {
- *ps = (struct stab_types *) xmalloc (sizeof **ps);
- memset (*ps, 0, sizeof **ps);
- }
-
- return (*ps)->types + index;
-}
-
-/* Find a type given a type number. If the type has not been
- allocated yet, create an indirect type. */
-
-static debug_type
-stab_find_type (void *dhandle, struct stab_handle *info, const int *typenums)
-{
- debug_type *slot;
-
- if (typenums[0] == 0 && typenums[1] < 0)
- {
- /* A negative type number indicates an XCOFF builtin type. */
- return stab_xcoff_builtin_type (dhandle, info, typenums[1]);
- }
-
- slot = stab_find_slot (info, typenums);
- if (slot == NULL)
- return DEBUG_TYPE_NULL;
-
- if (*slot == DEBUG_TYPE_NULL)
- return debug_make_indirect_type (dhandle, slot, (const char *) NULL);
-
- return *slot;
-}
-
-/* Record that a given type number refers to a given type. */
-
-static bfd_boolean
-stab_record_type (void *dhandle ATTRIBUTE_UNUSED, struct stab_handle *info,
- const int *typenums, debug_type type)
-{
- debug_type *slot;
-
- slot = stab_find_slot (info, typenums);
- if (slot == NULL)
- return FALSE;
-
- /* gdb appears to ignore type redefinitions, so we do as well. */
-
- *slot = type;
-
- return TRUE;
-}
-
-/* Return an XCOFF builtin type. */
-
-static debug_type
-stab_xcoff_builtin_type (void *dhandle, struct stab_handle *info,
- int typenum)
-{
- debug_type rettype;
- const char *name;
-
- if (typenum >= 0 || typenum < -XCOFF_TYPE_COUNT)
- {
- fprintf (stderr, _("Unrecognized XCOFF type %d\n"), typenum);
- return DEBUG_TYPE_NULL;
- }
- if (info->xcoff_types[-typenum] != NULL)
- return info->xcoff_types[-typenum];
-
- switch (-typenum)
- {
- case 1:
- /* The size of this and all the other types are fixed, defined
- by the debugging format. */
- name = "int";
- rettype = debug_make_int_type (dhandle, 4, FALSE);
- break;
- case 2:
- name = "char";
- rettype = debug_make_int_type (dhandle, 1, FALSE);
- break;
- case 3:
- name = "short";
- rettype = debug_make_int_type (dhandle, 2, FALSE);
- break;
- case 4:
- name = "long";
- rettype = debug_make_int_type (dhandle, 4, FALSE);
- break;
- case 5:
- name = "unsigned char";
- rettype = debug_make_int_type (dhandle, 1, TRUE);
- break;
- case 6:
- name = "signed char";
- rettype = debug_make_int_type (dhandle, 1, FALSE);
- break;
- case 7:
- name = "unsigned short";
- rettype = debug_make_int_type (dhandle, 2, TRUE);
- break;
- case 8:
- name = "unsigned int";
- rettype = debug_make_int_type (dhandle, 4, TRUE);
- break;
- case 9:
- name = "unsigned";
- rettype = debug_make_int_type (dhandle, 4, TRUE);
- case 10:
- name = "unsigned long";
- rettype = debug_make_int_type (dhandle, 4, TRUE);
- break;
- case 11:
- name = "void";
- rettype = debug_make_void_type (dhandle);
- break;
- case 12:
- /* IEEE single precision (32 bit). */
- name = "float";
- rettype = debug_make_float_type (dhandle, 4);
- break;
- case 13:
- /* IEEE double precision (64 bit). */
- name = "double";
- rettype = debug_make_float_type (dhandle, 8);
- break;
- case 14:
- /* This is an IEEE double on the RS/6000, and different machines
- with different sizes for "long double" should use different
- negative type numbers. See stabs.texinfo. */
- name = "long double";
- rettype = debug_make_float_type (dhandle, 8);
- break;
- case 15:
- name = "integer";
- rettype = debug_make_int_type (dhandle, 4, FALSE);
- break;
- case 16:
- name = "boolean";
- rettype = debug_make_bool_type (dhandle, 4);
- break;
- case 17:
- name = "short real";
- rettype = debug_make_float_type (dhandle, 4);
- break;
- case 18:
- name = "real";
- rettype = debug_make_float_type (dhandle, 8);
- break;
- case 19:
- /* FIXME */
- name = "stringptr";
- rettype = NULL;
- break;
- case 20:
- /* FIXME */
- name = "character";
- rettype = debug_make_int_type (dhandle, 1, TRUE);
- break;
- case 21:
- name = "logical*1";
- rettype = debug_make_bool_type (dhandle, 1);
- break;
- case 22:
- name = "logical*2";
- rettype = debug_make_bool_type (dhandle, 2);
- break;
- case 23:
- name = "logical*4";
- rettype = debug_make_bool_type (dhandle, 4);
- break;
- case 24:
- name = "logical";
- rettype = debug_make_bool_type (dhandle, 4);
- break;
- case 25:
- /* Complex type consisting of two IEEE single precision values. */
- name = "complex";
- rettype = debug_make_complex_type (dhandle, 8);
- break;
- case 26:
- /* Complex type consisting of two IEEE double precision values. */
- name = "double complex";
- rettype = debug_make_complex_type (dhandle, 16);
- break;
- case 27:
- name = "integer*1";
- rettype = debug_make_int_type (dhandle, 1, FALSE);
- break;
- case 28:
- name = "integer*2";
- rettype = debug_make_int_type (dhandle, 2, FALSE);
- break;
- case 29:
- name = "integer*4";
- rettype = debug_make_int_type (dhandle, 4, FALSE);
- break;
- case 30:
- /* FIXME */
- name = "wchar";
- rettype = debug_make_int_type (dhandle, 2, FALSE);
- break;
- case 31:
- name = "long long";
- rettype = debug_make_int_type (dhandle, 8, FALSE);
- break;
- case 32:
- name = "unsigned long long";
- rettype = debug_make_int_type (dhandle, 8, TRUE);
- break;
- case 33:
- name = "logical*8";
- rettype = debug_make_bool_type (dhandle, 8);
- break;
- case 34:
- name = "integer*8";
- rettype = debug_make_int_type (dhandle, 8, FALSE);
- break;
- default:
- abort ();
- }
-
- rettype = debug_name_type (dhandle, name, rettype);
-
- info->xcoff_types[-typenum] = rettype;
-
- return rettype;
-}
-
-/* Find or create a tagged type. */
-
-static debug_type
-stab_find_tagged_type (void *dhandle, struct stab_handle *info,
- const char *p, int len, enum debug_type_kind kind)
-{
- char *name;
- debug_type dtype;
- struct stab_tag *st;
-
- name = savestring (p, len);
-
- /* We pass DEBUG_KIND_ILLEGAL because we want all tags in the same
- namespace. This is right for C, and I don't know how to handle
- other languages. FIXME. */
- dtype = debug_find_tagged_type (dhandle, name, DEBUG_KIND_ILLEGAL);
- if (dtype != DEBUG_TYPE_NULL)
- {
- free (name);
- return dtype;
- }
-
- /* We need to allocate an entry on the undefined tag list. */
- for (st = info->tags; st != NULL; st = st->next)
- {
- if (st->name[0] == name[0]
- && strcmp (st->name, name) == 0)
- {
- if (st->kind == DEBUG_KIND_ILLEGAL)
- st->kind = kind;
- free (name);
- break;
- }
- }
- if (st == NULL)
- {
- st = (struct stab_tag *) xmalloc (sizeof *st);
- memset (st, 0, sizeof *st);
-
- st->next = info->tags;
- st->name = name;
- st->kind = kind;
- st->slot = DEBUG_TYPE_NULL;
- st->type = debug_make_indirect_type (dhandle, &st->slot, name);
- info->tags = st;
- }
-
- return st->type;
-}
-
-/* In order to get the correct argument types for a stubbed method, we
- need to extract the argument types from a C++ mangled string.
- Since the argument types can refer back to the return type, this
- means that we must demangle the entire physical name. In gdb this
- is done by calling cplus_demangle and running the results back
- through the C++ expression parser. Since we have no expression
- parser, we must duplicate much of the work of cplus_demangle here.
-
- We assume that GNU style demangling is used, since this is only
- done for method stubs, and only g++ should output that form of
- debugging information. */
-
-/* This structure is used to hold a pointer to type information which
- demangling a string. */
-
-struct stab_demangle_typestring
-{
- /* The start of the type. This is not null terminated. */
- const char *typestring;
- /* The length of the type. */
- unsigned int len;
-};
-
-/* This structure is used to hold information while demangling a
- string. */
-
-struct stab_demangle_info
-{
- /* The debugging information handle. */
- void *dhandle;
- /* The stab information handle. */
- struct stab_handle *info;
- /* The array of arguments we are building. */
- debug_type *args;
- /* Whether the method takes a variable number of arguments. */
- bfd_boolean varargs;
- /* The array of types we have remembered. */
- struct stab_demangle_typestring *typestrings;
- /* The number of typestrings. */
- unsigned int typestring_count;
- /* The number of typestring slots we have allocated. */
- unsigned int typestring_alloc;
-};
-
-static void stab_bad_demangle (const char *);
-static unsigned int stab_demangle_count (const char **);
-static bfd_boolean stab_demangle_get_count (const char **, unsigned int *);
-static bfd_boolean stab_demangle_prefix
- (struct stab_demangle_info *, const char **, unsigned int);
-static bfd_boolean stab_demangle_function_name
- (struct stab_demangle_info *, const char **, const char *);
-static bfd_boolean stab_demangle_signature
- (struct stab_demangle_info *, const char **);
-static bfd_boolean stab_demangle_qualified
- (struct stab_demangle_info *, const char **, debug_type *);
-static bfd_boolean stab_demangle_template
- (struct stab_demangle_info *, const char **, char **);
-static bfd_boolean stab_demangle_class
- (struct stab_demangle_info *, const char **, const char **);
-static bfd_boolean stab_demangle_args
- (struct stab_demangle_info *, const char **, debug_type **, bfd_boolean *);
-static bfd_boolean stab_demangle_arg
- (struct stab_demangle_info *, const char **, debug_type **,
- unsigned int *, unsigned int *);
-static bfd_boolean stab_demangle_type
- (struct stab_demangle_info *, const char **, debug_type *);
-static bfd_boolean stab_demangle_fund_type
- (struct stab_demangle_info *, const char **, debug_type *);
-static bfd_boolean stab_demangle_remember_type
- (struct stab_demangle_info *, const char *, int);
-
-/* Warn about a bad demangling. */
-
-static void
-stab_bad_demangle (const char *s)
-{
- fprintf (stderr, _("bad mangled name `%s'\n"), s);
-}
-
-/* Get a count from a stab string. */
-
-static unsigned int
-stab_demangle_count (const char **pp)
-{
- unsigned int count;
-
- count = 0;
- while (ISDIGIT (**pp))
- {
- count *= 10;
- count += **pp - '0';
- ++*pp;
- }
- return count;
-}
-
-/* Require a count in a string. The count may be multiple digits, in
- which case it must end in an underscore. */
-
-static bfd_boolean
-stab_demangle_get_count (const char **pp, unsigned int *pi)
-{
- if (! ISDIGIT (**pp))
- return FALSE;
-
- *pi = **pp - '0';
- ++*pp;
- if (ISDIGIT (**pp))
- {
- unsigned int count;
- const char *p;
-
- count = *pi;
- p = *pp;
- do
- {
- count *= 10;
- count += *p - '0';
- ++p;
- }
- while (ISDIGIT (*p));
- if (*p == '_')
- {
- *pp = p + 1;
- *pi = count;
- }
- }
-
- return TRUE;
-}
-
-/* This function demangles a physical name, returning a NULL
- terminated array of argument types. */
-
-static debug_type *
-stab_demangle_argtypes (void *dhandle, struct stab_handle *info,
- const char *physname, bfd_boolean *pvarargs,
- unsigned int physname_len)
-{
- struct stab_demangle_info minfo;
-
- /* Check for the g++ V3 ABI. */
- if (physname[0] == '_' && physname[1] == 'Z')
- return stab_demangle_v3_argtypes (dhandle, info, physname, pvarargs);
-
- minfo.dhandle = dhandle;
- minfo.info = info;
- minfo.args = NULL;
- minfo.varargs = FALSE;
- minfo.typestring_alloc = 10;
- minfo.typestrings = ((struct stab_demangle_typestring *)
- xmalloc (minfo.typestring_alloc
- * sizeof *minfo.typestrings));
- minfo.typestring_count = 0;
-
- /* cplus_demangle checks for special GNU mangled forms, but we can't
- see any of them in mangled method argument types. */
-
- if (! stab_demangle_prefix (&minfo, &physname, physname_len))
- goto error_return;
-
- if (*physname != '\0')
- {
- if (! stab_demangle_signature (&minfo, &physname))
- goto error_return;
- }
-
- free (minfo.typestrings);
- minfo.typestrings = NULL;
-
- if (minfo.args == NULL)
- fprintf (stderr, _("no argument types in mangled string\n"));
-
- *pvarargs = minfo.varargs;
- return minfo.args;
-
- error_return:
- if (minfo.typestrings != NULL)
- free (minfo.typestrings);
- return NULL;
-}
-
-/* Demangle the prefix of the mangled name. */
-
-static bfd_boolean
-stab_demangle_prefix (struct stab_demangle_info *minfo, const char **pp,
- unsigned int physname_len)
-{
- const char *scan;
- unsigned int i;
-
- /* cplus_demangle checks for global constructors and destructors,
- but we can't see them in mangled argument types. */
-
- if (physname_len)
- scan = *pp + physname_len;
- else
- {
- /* Look for `__'. */
- scan = *pp;
- do
- scan = strchr (scan, '_');
- while (scan != NULL && *++scan != '_');
-
- if (scan == NULL)
- {
- stab_bad_demangle (*pp);
- return FALSE;
- }
-
- --scan;
-
- /* We found `__'; move ahead to the last contiguous `__' pair. */
- i = strspn (scan, "_");
- if (i > 2)
- scan += i - 2;
- }
-
- if (scan == *pp
- && (ISDIGIT (scan[2])
- || scan[2] == 'Q'
- || scan[2] == 't'))
- {
- /* This is a GNU style constructor name. */
- *pp = scan + 2;
- return TRUE;
- }
- else if (scan == *pp
- && ! ISDIGIT (scan[2])
- && scan[2] != 't')
- {
- /* Look for the `__' that separates the prefix from the
- signature. */
- while (*scan == '_')
- ++scan;
- scan = strstr (scan, "__");
- if (scan == NULL || scan[2] == '\0')
- {
- stab_bad_demangle (*pp);
- return FALSE;
- }
-
- return stab_demangle_function_name (minfo, pp, scan);
- }
- else if (scan[2] != '\0')
- {
- /* The name doesn't start with `__', but it does contain `__'. */
- return stab_demangle_function_name (minfo, pp, scan);
- }
- else
- {
- stab_bad_demangle (*pp);
- return FALSE;
- }
- /*NOTREACHED*/
-}
-
-/* Demangle a function name prefix. The scan argument points to the
- double underscore which separates the function name from the
- signature. */
-
-static bfd_boolean
-stab_demangle_function_name (struct stab_demangle_info *minfo,
- const char **pp, const char *scan)
-{
- const char *name;
-
- /* The string from *pp to scan is the name of the function. We
- don't care about the name, since we just looking for argument
- types. However, for conversion operators, the name may include a
- type which we must remember in order to handle backreferences. */
-
- name = *pp;
- *pp = scan + 2;
-
- if (*pp - name >= 5
- && strncmp (name, "type", 4) == 0
- && (name[4] == '$' || name[4] == '.'))
- {
- const char *tem;
-
- /* This is a type conversion operator. */
- tem = name + 5;
- if (! stab_demangle_type (minfo, &tem, (debug_type *) NULL))
- return FALSE;
- }
- else if (name[0] == '_'
- && name[1] == '_'
- && name[2] == 'o'
- && name[3] == 'p')
- {
- const char *tem;
-
- /* This is a type conversion operator. */
- tem = name + 4;
- if (! stab_demangle_type (minfo, &tem, (debug_type *) NULL))
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Demangle the signature. This is where the argument types are
- found. */
-
-static bfd_boolean
-stab_demangle_signature (struct stab_demangle_info *minfo, const char **pp)
-{
- const char *orig;
- bfd_boolean expect_func, func_done;
- const char *hold;
-
- orig = *pp;
-
- expect_func = FALSE;
- func_done = FALSE;
- hold = NULL;
-
- while (**pp != '\0')
- {
- switch (**pp)
- {
- case 'Q':
- hold = *pp;
- if (! stab_demangle_qualified (minfo, pp, (debug_type *) NULL)
- || ! stab_demangle_remember_type (minfo, hold, *pp - hold))
- return FALSE;
- expect_func = TRUE;
- hold = NULL;
- break;
-
- case 'S':
- /* Static member function. FIXME: Can this happen? */
- if (hold == NULL)
- hold = *pp;
- ++*pp;
- break;
-
- case 'C':
- /* Const member function. */
- if (hold == NULL)
- hold = *pp;
- ++*pp;
- break;
-
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- if (hold == NULL)
- hold = *pp;
- if (! stab_demangle_class (minfo, pp, (const char **) NULL)
- || ! stab_demangle_remember_type (minfo, hold, *pp - hold))
- return FALSE;
- expect_func = TRUE;
- hold = NULL;
- break;
-
- case 'F':
- /* Function. I don't know if this actually happens with g++
- output. */
- hold = NULL;
- func_done = TRUE;
- ++*pp;
- if (! stab_demangle_args (minfo, pp, &minfo->args, &minfo->varargs))
- return FALSE;
- break;
-
- case 't':
- /* Template. */
- if (hold == NULL)
- hold = *pp;
- if (! stab_demangle_template (minfo, pp, (char **) NULL)
- || ! stab_demangle_remember_type (minfo, hold, *pp - hold))
- return FALSE;
- hold = NULL;
- expect_func = TRUE;
- break;
-
- case '_':
- /* At the outermost level, we cannot have a return type
- specified, so if we run into another '_' at this point we
- are dealing with a mangled name that is either bogus, or
- has been mangled by some algorithm we don't know how to
- deal with. So just reject the entire demangling. */
- stab_bad_demangle (orig);
- return FALSE;
-
- default:
- /* Assume we have stumbled onto the first outermost function
- argument token, and start processing args. */
- func_done = TRUE;
- if (! stab_demangle_args (minfo, pp, &minfo->args, &minfo->varargs))
- return FALSE;
- break;
- }
-
- if (expect_func)
- {
- func_done = TRUE;
- if (! stab_demangle_args (minfo, pp, &minfo->args, &minfo->varargs))
- return FALSE;
- }
- }
-
- if (! func_done)
- {
- /* With GNU style demangling, bar__3foo is 'foo::bar(void)', and
- bar__3fooi is 'foo::bar(int)'. We get here when we find the
- first case, and need to ensure that the '(void)' gets added
- to the current declp. */
- if (! stab_demangle_args (minfo, pp, &minfo->args, &minfo->varargs))
- return FALSE;
- }
-
- return TRUE;
-}
-
-/* Demangle a qualified name, such as "Q25Outer5Inner" which is the
- mangled form of "Outer::Inner". */
-
-static bfd_boolean
-stab_demangle_qualified (struct stab_demangle_info *minfo, const char **pp,
- debug_type *ptype)
-{
- const char *orig;
- const char *p;
- unsigned int qualifiers;
- debug_type context;
-
- orig = *pp;
-
- switch ((*pp)[1])
- {
- case '_':
- /* GNU mangled name with more than 9 classes. The count is
- preceded by an underscore (to distinguish it from the <= 9
- case) and followed by an underscore. */
- p = *pp + 2;
- if (! ISDIGIT (*p) || *p == '0')
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- qualifiers = atoi (p);
- while (ISDIGIT (*p))
- ++p;
- if (*p != '_')
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- *pp = p + 1;
- break;
-
- case '1': case '2': case '3': case '4': case '5':
- case '6': case '7': case '8': case '9':
- qualifiers = (*pp)[1] - '0';
- /* Skip an optional underscore after the count. */
- if ((*pp)[2] == '_')
- ++*pp;
- *pp += 2;
- break;
-
- case '0':
- default:
- stab_bad_demangle (orig);
- return FALSE;
- }
-
- context = DEBUG_TYPE_NULL;
-
- /* Pick off the names. */
- while (qualifiers-- > 0)
- {
- if (**pp == '_')
- ++*pp;
- if (**pp == 't')
- {
- char *name;
-
- if (! stab_demangle_template (minfo, pp,
- ptype != NULL ? &name : NULL))
- return FALSE;
-
- if (ptype != NULL)
- {
- context = stab_find_tagged_type (minfo->dhandle, minfo->info,
- name, strlen (name),
- DEBUG_KIND_CLASS);
- free (name);
- if (context == DEBUG_TYPE_NULL)
- return FALSE;
- }
- }
- else
- {
- unsigned int len;
-
- len = stab_demangle_count (pp);
- if (strlen (*pp) < len)
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
-
- if (ptype != NULL)
- {
- const debug_field *fields;
-
- fields = NULL;
- if (context != DEBUG_TYPE_NULL)
- fields = debug_get_fields (minfo->dhandle, context);
-
- context = DEBUG_TYPE_NULL;
-
- if (fields != NULL)
- {
- char *name;
-
- /* Try to find the type by looking through the
- fields of context until we find a field with the
- same type. This ought to work for a class
- defined within a class, but it won't work for,
- e.g., an enum defined within a class. stabs does
- not give us enough information to figure out the
- latter case. */
-
- name = savestring (*pp, len);
-
- for (; *fields != DEBUG_FIELD_NULL; fields++)
- {
- debug_type ft;
- const char *dn;
-
- ft = debug_get_field_type (minfo->dhandle, *fields);
- if (ft == NULL)
- return FALSE;
- dn = debug_get_type_name (minfo->dhandle, ft);
- if (dn != NULL && strcmp (dn, name) == 0)
- {
- context = ft;
- break;
- }
- }
-
- free (name);
- }
-
- if (context == DEBUG_TYPE_NULL)
- {
- /* We have to fall back on finding the type by name.
- If there are more types to come, then this must
- be a class. Otherwise, it could be anything. */
-
- if (qualifiers == 0)
- {
- char *name;
-
- name = savestring (*pp, len);
- context = debug_find_named_type (minfo->dhandle,
- name);
- free (name);
- }
-
- if (context == DEBUG_TYPE_NULL)
- {
- context = stab_find_tagged_type (minfo->dhandle,
- minfo->info,
- *pp, len,
- (qualifiers == 0
- ? DEBUG_KIND_ILLEGAL
- : DEBUG_KIND_CLASS));
- if (context == DEBUG_TYPE_NULL)
- return FALSE;
- }
- }
- }
-
- *pp += len;
- }
- }
-
- if (ptype != NULL)
- *ptype = context;
-
- return TRUE;
-}
-
-/* Demangle a template. If PNAME is not NULL, this sets *PNAME to a
- string representation of the template. */
-
-static bfd_boolean
-stab_demangle_template (struct stab_demangle_info *minfo, const char **pp,
- char **pname)
-{
- const char *orig;
- unsigned int r, i;
-
- orig = *pp;
-
- ++*pp;
-
- /* Skip the template name. */
- r = stab_demangle_count (pp);
- if (r == 0 || strlen (*pp) < r)
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- *pp += r;
-
- /* Get the size of the parameter list. */
- if (stab_demangle_get_count (pp, &r) == 0)
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
-
- for (i = 0; i < r; i++)
- {
- if (**pp == 'Z')
- {
- /* This is a type parameter. */
- ++*pp;
- if (! stab_demangle_type (minfo, pp, (debug_type *) NULL))
- return FALSE;
- }
- else
- {
- const char *old_p;
- bfd_boolean pointerp, realp, integralp, charp, boolp;
- bfd_boolean done;
-
- old_p = *pp;
- pointerp = FALSE;
- realp = FALSE;
- integralp = FALSE;
- charp = FALSE;
- boolp = FALSE;
- done = FALSE;
-
- /* This is a value parameter. */
-
- if (! stab_demangle_type (minfo, pp, (debug_type *) NULL))
- return FALSE;
-
- while (*old_p != '\0' && ! done)
- {
- switch (*old_p)
- {
- case 'P':
- case 'p':
- case 'R':
- pointerp = TRUE;
- done = TRUE;
- break;
- case 'C': /* Const. */
- case 'S': /* Signed. */
- case 'U': /* Unsigned. */
- case 'V': /* Volatile. */
- case 'F': /* Function. */
- case 'M': /* Member function. */
- case 'O': /* ??? */
- ++old_p;
- break;
- case 'Q': /* Qualified name. */
- integralp = TRUE;
- done = TRUE;
- break;
- case 'T': /* Remembered type. */
- abort ();
- case 'v': /* Void. */
- abort ();
- case 'x': /* Long long. */
- case 'l': /* Long. */
- case 'i': /* Int. */
- case 's': /* Short. */
- case 'w': /* Wchar_t. */
- integralp = TRUE;
- done = TRUE;
- break;
- case 'b': /* Bool. */
- boolp = TRUE;
- done = TRUE;
- break;
- case 'c': /* Char. */
- charp = TRUE;
- done = TRUE;
- break;
- case 'r': /* Long double. */
- case 'd': /* Double. */
- case 'f': /* Float. */
- realp = TRUE;
- done = TRUE;
- break;
- default:
- /* Assume it's a user defined integral type. */
- integralp = TRUE;
- done = TRUE;
- break;
- }
- }
-
- if (integralp)
- {
- if (**pp == 'm')
- ++*pp;
- while (ISDIGIT (**pp))
- ++*pp;
- }
- else if (charp)
- {
- unsigned int val;
-
- if (**pp == 'm')
- ++*pp;
- val = stab_demangle_count (pp);
- if (val == 0)
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- }
- else if (boolp)
- {
- unsigned int val;
-
- val = stab_demangle_count (pp);
- if (val != 0 && val != 1)
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- }
- else if (realp)
- {
- if (**pp == 'm')
- ++*pp;
- while (ISDIGIT (**pp))
- ++*pp;
- if (**pp == '.')
- {
- ++*pp;
- while (ISDIGIT (**pp))
- ++*pp;
- }
- if (**pp == 'e')
- {
- ++*pp;
- while (ISDIGIT (**pp))
- ++*pp;
- }
- }
- else if (pointerp)
- {
- unsigned int len;
-
- len = stab_demangle_count (pp);
- if (len == 0)
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- *pp += len;
- }
- }
- }
-
- /* We can translate this to a string fairly easily by invoking the
- regular demangling routine. */
- if (pname != NULL)
- {
- char *s1, *s2, *s3, *s4 = NULL;
- char *from, *to;
-
- s1 = savestring (orig, *pp - orig);
-
- s2 = concat ("NoSuchStrinG__", s1, (const char *) NULL);
-
- free (s1);
-
- s3 = cplus_demangle (s2, DMGL_ANSI);
-
- free (s2);
-
- if (s3 != NULL)
- s4 = strstr (s3, "::NoSuchStrinG");
- if (s3 == NULL || s4 == NULL)
- {
- stab_bad_demangle (orig);
- if (s3 != NULL)
- free (s3);
- return FALSE;
- }
-
- /* Eliminating all spaces, except those between > characters,
- makes it more likely that the demangled name will match the
- name which g++ used as the structure name. */
- for (from = to = s3; from != s4; ++from)
- if (*from != ' '
- || (from[1] == '>' && from > s3 && from[-1] == '>'))
- *to++ = *from;
-
- *pname = savestring (s3, to - s3);
-
- free (s3);
- }
-
- return TRUE;
-}
-
-/* Demangle a class name. */
-
-static bfd_boolean
-stab_demangle_class (struct stab_demangle_info *minfo ATTRIBUTE_UNUSED,
- const char **pp, const char **pstart)
-{
- const char *orig;
- unsigned int n;
-
- orig = *pp;
-
- n = stab_demangle_count (pp);
- if (strlen (*pp) < n)
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
-
- if (pstart != NULL)
- *pstart = *pp;
-
- *pp += n;
-
- return TRUE;
-}
-
-/* Demangle function arguments. If the pargs argument is not NULL, it
- is set to a NULL terminated array holding the arguments. */
-
-static bfd_boolean
-stab_demangle_args (struct stab_demangle_info *minfo, const char **pp,
- debug_type **pargs, bfd_boolean *pvarargs)
-{
- const char *orig;
- unsigned int alloc, count;
-
- orig = *pp;
-
- alloc = 10;
- if (pargs != NULL)
- {
- *pargs = (debug_type *) xmalloc (alloc * sizeof **pargs);
- *pvarargs = FALSE;
- }
- count = 0;
-
- while (**pp != '_' && **pp != '\0' && **pp != 'e')
- {
- if (**pp == 'N' || **pp == 'T')
- {
- char temptype;
- unsigned int r, t;
-
- temptype = **pp;
- ++*pp;
-
- if (temptype == 'T')
- r = 1;
- else
- {
- if (! stab_demangle_get_count (pp, &r))
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- }
-
- if (! stab_demangle_get_count (pp, &t))
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
-
- if (t >= minfo->typestring_count)
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- while (r-- > 0)
- {
- const char *tem;
-
- tem = minfo->typestrings[t].typestring;
- if (! stab_demangle_arg (minfo, &tem, pargs, &count, &alloc))
- return FALSE;
- }
- }
- else
- {
- if (! stab_demangle_arg (minfo, pp, pargs, &count, &alloc))
- return FALSE;
- }
- }
-
- if (pargs != NULL)
- (*pargs)[count] = DEBUG_TYPE_NULL;
-
- if (**pp == 'e')
- {
- if (pargs != NULL)
- *pvarargs = TRUE;
- ++*pp;
- }
-
- return TRUE;
-}
-
-/* Demangle a single argument. */
-
-static bfd_boolean
-stab_demangle_arg (struct stab_demangle_info *minfo, const char **pp,
- debug_type **pargs, unsigned int *pcount,
- unsigned int *palloc)
-{
- const char *start;
- debug_type type;
-
- start = *pp;
- if (! stab_demangle_type (minfo, pp,
- pargs == NULL ? (debug_type *) NULL : &type)
- || ! stab_demangle_remember_type (minfo, start, *pp - start))
- return FALSE;
-
- if (pargs != NULL)
- {
- if (type == DEBUG_TYPE_NULL)
- return FALSE;
-
- if (*pcount + 1 >= *palloc)
- {
- *palloc += 10;
- *pargs = ((debug_type *)
- xrealloc (*pargs, *palloc * sizeof **pargs));
- }
- (*pargs)[*pcount] = type;
- ++*pcount;
- }
-
- return TRUE;
-}
-
-/* Demangle a type. If the ptype argument is not NULL, *ptype is set
- to the newly allocated type. */
-
-static bfd_boolean
-stab_demangle_type (struct stab_demangle_info *minfo, const char **pp,
- debug_type *ptype)
-{
- const char *orig;
-
- orig = *pp;
-
- switch (**pp)
- {
- case 'P':
- case 'p':
- /* A pointer type. */
- ++*pp;
- if (! stab_demangle_type (minfo, pp, ptype))
- return FALSE;
- if (ptype != NULL)
- *ptype = debug_make_pointer_type (minfo->dhandle, *ptype);
- break;
-
- case 'R':
- /* A reference type. */
- ++*pp;
- if (! stab_demangle_type (minfo, pp, ptype))
- return FALSE;
- if (ptype != NULL)
- *ptype = debug_make_reference_type (minfo->dhandle, *ptype);
- break;
-
- case 'A':
- /* An array. */
- {
- unsigned long high;
-
- ++*pp;
- high = 0;
- while (**pp != '\0' && **pp != '_')
- {
- if (! ISDIGIT (**pp))
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- high *= 10;
- high += **pp - '0';
- ++*pp;
- }
- if (**pp != '_')
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- ++*pp;
-
- if (! stab_demangle_type (minfo, pp, ptype))
- return FALSE;
- if (ptype != NULL)
- {
- debug_type int_type;
-
- int_type = debug_find_named_type (minfo->dhandle, "int");
- if (int_type == NULL)
- int_type = debug_make_int_type (minfo->dhandle, 4, FALSE);
- *ptype = debug_make_array_type (minfo->dhandle, *ptype, int_type,
- 0, high, FALSE);
- }
- }
- break;
-
- case 'T':
- /* A back reference to a remembered type. */
- {
- unsigned int i;
- const char *p;
-
- ++*pp;
- if (! stab_demangle_get_count (pp, &i))
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- if (i >= minfo->typestring_count)
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- p = minfo->typestrings[i].typestring;
- if (! stab_demangle_type (minfo, &p, ptype))
- return FALSE;
- }
- break;
-
- case 'F':
- /* A function. */
- {
- debug_type *args;
- bfd_boolean varargs;
-
- ++*pp;
- if (! stab_demangle_args (minfo, pp,
- (ptype == NULL
- ? (debug_type **) NULL
- : &args),
- (ptype == NULL
- ? (bfd_boolean *) NULL
- : &varargs)))
- return FALSE;
- if (**pp != '_')
- {
- /* cplus_demangle will accept a function without a return
- type, but I don't know when that will happen, or what
- to do if it does. */
- stab_bad_demangle (orig);
- return FALSE;
- }
- ++*pp;
- if (! stab_demangle_type (minfo, pp, ptype))
- return FALSE;
- if (ptype != NULL)
- *ptype = debug_make_function_type (minfo->dhandle, *ptype, args,
- varargs);
-
- }
- break;
-
- case 'M':
- case 'O':
- {
- bfd_boolean memberp, constp, volatilep;
- debug_type class_type = DEBUG_TYPE_NULL;
- debug_type *args;
- bfd_boolean varargs;
- unsigned int n;
- const char *name;
-
- memberp = **pp == 'M';
- constp = FALSE;
- volatilep = FALSE;
- args = NULL;
- varargs = FALSE;
-
- ++*pp;
- if (ISDIGIT (**pp))
- {
- n = stab_demangle_count (pp);
- if (strlen (*pp) < n)
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- name = *pp;
- *pp += n;
-
- if (ptype != NULL)
- {
- class_type = stab_find_tagged_type (minfo->dhandle,
- minfo->info,
- name, (int) n,
- DEBUG_KIND_CLASS);
- if (class_type == DEBUG_TYPE_NULL)
- return FALSE;
- }
- }
- else if (**pp == 'Q')
- {
- if (! stab_demangle_qualified (minfo, pp,
- (ptype == NULL
- ? (debug_type *) NULL
- : &class_type)))
- return FALSE;
- }
- else
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
-
- if (memberp)
- {
- if (**pp == 'C')
- {
- constp = TRUE;
- ++*pp;
- }
- else if (**pp == 'V')
- {
- volatilep = TRUE;
- ++*pp;
- }
- if (**pp != 'F')
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- ++*pp;
- if (! stab_demangle_args (minfo, pp,
- (ptype == NULL
- ? (debug_type **) NULL
- : &args),
- (ptype == NULL
- ? (bfd_boolean *) NULL
- : &varargs)))
- return FALSE;
- }
-
- if (**pp != '_')
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- ++*pp;
-
- if (! stab_demangle_type (minfo, pp, ptype))
- return FALSE;
-
- if (ptype != NULL)
- {
- if (! memberp)
- *ptype = debug_make_offset_type (minfo->dhandle, class_type,
- *ptype);
- else
- {
- /* FIXME: We have no way to record constp or
- volatilep. */
- *ptype = debug_make_method_type (minfo->dhandle, *ptype,
- class_type, args, varargs);
- }
- }
- }
- break;
-
- case 'G':
- ++*pp;
- if (! stab_demangle_type (minfo, pp, ptype))
- return FALSE;
- break;
-
- case 'C':
- ++*pp;
- if (! stab_demangle_type (minfo, pp, ptype))
- return FALSE;
- if (ptype != NULL)
- *ptype = debug_make_const_type (minfo->dhandle, *ptype);
- break;
-
- case 'Q':
- {
- const char *hold;
-
- hold = *pp;
- if (! stab_demangle_qualified (minfo, pp, ptype))
- return FALSE;
- }
- break;
-
- default:
- if (! stab_demangle_fund_type (minfo, pp, ptype))
- return FALSE;
- break;
- }
-
- return TRUE;
-}
-
-/* Demangle a fundamental type. If the ptype argument is not NULL,
- *ptype is set to the newly allocated type. */
-
-static bfd_boolean
-stab_demangle_fund_type (struct stab_demangle_info *minfo, const char **pp,
- debug_type *ptype)
-{
- const char *orig;
- bfd_boolean constp, volatilep, unsignedp, signedp;
- bfd_boolean done;
-
- orig = *pp;
-
- constp = FALSE;
- volatilep = FALSE;
- unsignedp = FALSE;
- signedp = FALSE;
-
- done = FALSE;
- while (! done)
- {
- switch (**pp)
- {
- case 'C':
- constp = TRUE;
- ++*pp;
- break;
-
- case 'U':
- unsignedp = TRUE;
- ++*pp;
- break;
-
- case 'S':
- signedp = TRUE;
- ++*pp;
- break;
-
- case 'V':
- volatilep = TRUE;
- ++*pp;
- break;
-
- default:
- done = TRUE;
- break;
- }
- }
-
- switch (**pp)
- {
- case '\0':
- case '_':
- /* cplus_demangle permits this, but I don't know what it means. */
- stab_bad_demangle (orig);
- break;
-
- case 'v': /* void */
- if (ptype != NULL)
- {
- *ptype = debug_find_named_type (minfo->dhandle, "void");
- if (*ptype == DEBUG_TYPE_NULL)
- *ptype = debug_make_void_type (minfo->dhandle);
- }
- ++*pp;
- break;
-
- case 'x': /* long long */
- if (ptype != NULL)
- {
- *ptype = debug_find_named_type (minfo->dhandle,
- (unsignedp
- ? "long long unsigned int"
- : "long long int"));
- if (*ptype == DEBUG_TYPE_NULL)
- *ptype = debug_make_int_type (minfo->dhandle, 8, unsignedp);
- }
- ++*pp;
- break;
-
- case 'l': /* long */
- if (ptype != NULL)
- {
- *ptype = debug_find_named_type (minfo->dhandle,
- (unsignedp
- ? "long unsigned int"
- : "long int"));
- if (*ptype == DEBUG_TYPE_NULL)
- *ptype = debug_make_int_type (minfo->dhandle, 4, unsignedp);
- }
- ++*pp;
- break;
-
- case 'i': /* int */
- if (ptype != NULL)
- {
- *ptype = debug_find_named_type (minfo->dhandle,
- (unsignedp
- ? "unsigned int"
- : "int"));
- if (*ptype == DEBUG_TYPE_NULL)
- *ptype = debug_make_int_type (minfo->dhandle, 4, unsignedp);
- }
- ++*pp;
- break;
-
- case 's': /* short */
- if (ptype != NULL)
- {
- *ptype = debug_find_named_type (minfo->dhandle,
- (unsignedp
- ? "short unsigned int"
- : "short int"));
- if (*ptype == DEBUG_TYPE_NULL)
- *ptype = debug_make_int_type (minfo->dhandle, 2, unsignedp);
- }
- ++*pp;
- break;
-
- case 'b': /* bool */
- if (ptype != NULL)
- {
- *ptype = debug_find_named_type (minfo->dhandle, "bool");
- if (*ptype == DEBUG_TYPE_NULL)
- *ptype = debug_make_bool_type (minfo->dhandle, 4);
- }
- ++*pp;
- break;
-
- case 'c': /* char */
- if (ptype != NULL)
- {
- *ptype = debug_find_named_type (minfo->dhandle,
- (unsignedp
- ? "unsigned char"
- : (signedp
- ? "signed char"
- : "char")));
- if (*ptype == DEBUG_TYPE_NULL)
- *ptype = debug_make_int_type (minfo->dhandle, 1, unsignedp);
- }
- ++*pp;
- break;
-
- case 'w': /* wchar_t */
- if (ptype != NULL)
- {
- *ptype = debug_find_named_type (minfo->dhandle, "__wchar_t");
- if (*ptype == DEBUG_TYPE_NULL)
- *ptype = debug_make_int_type (minfo->dhandle, 2, TRUE);
- }
- ++*pp;
- break;
-
- case 'r': /* long double */
- if (ptype != NULL)
- {
- *ptype = debug_find_named_type (minfo->dhandle, "long double");
- if (*ptype == DEBUG_TYPE_NULL)
- *ptype = debug_make_float_type (minfo->dhandle, 8);
- }
- ++*pp;
- break;
-
- case 'd': /* double */
- if (ptype != NULL)
- {
- *ptype = debug_find_named_type (minfo->dhandle, "double");
- if (*ptype == DEBUG_TYPE_NULL)
- *ptype = debug_make_float_type (minfo->dhandle, 8);
- }
- ++*pp;
- break;
-
- case 'f': /* float */
- if (ptype != NULL)
- {
- *ptype = debug_find_named_type (minfo->dhandle, "float");
- if (*ptype == DEBUG_TYPE_NULL)
- *ptype = debug_make_float_type (minfo->dhandle, 4);
- }
- ++*pp;
- break;
-
- case 'G':
- ++*pp;
- if (! ISDIGIT (**pp))
- {
- stab_bad_demangle (orig);
- return FALSE;
- }
- /* Fall through. */
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- {
- const char *hold;
-
- if (! stab_demangle_class (minfo, pp, &hold))
- return FALSE;
- if (ptype != NULL)
- {
- char *name;
-
- name = savestring (hold, *pp - hold);
- *ptype = debug_find_named_type (minfo->dhandle, name);
- free (name);
- if (*ptype == DEBUG_TYPE_NULL)
- {
- /* FIXME: It is probably incorrect to assume that
- undefined types are tagged types. */
- *ptype = stab_find_tagged_type (minfo->dhandle, minfo->info,
- hold, *pp - hold,
- DEBUG_KIND_ILLEGAL);
- if (*ptype == DEBUG_TYPE_NULL)
- return FALSE;
- }
- }
- }
- break;
-
- case 't':
- {
- char *name;
-
- if (! stab_demangle_template (minfo, pp,
- ptype != NULL ? &name : NULL))
- return FALSE;
- if (ptype != NULL)
- {
- *ptype = stab_find_tagged_type (minfo->dhandle, minfo->info,
- name, strlen (name),
- DEBUG_KIND_CLASS);
- free (name);
- if (*ptype == DEBUG_TYPE_NULL)
- return FALSE;
- }
- }
- break;
-
- default:
- stab_bad_demangle (orig);
- return FALSE;
- }
-
- if (ptype != NULL)
- {
- if (constp)
- *ptype = debug_make_const_type (minfo->dhandle, *ptype);
- if (volatilep)
- *ptype = debug_make_volatile_type (minfo->dhandle, *ptype);
- }
-
- return TRUE;
-}
-
-/* Remember a type string in a demangled string. */
-
-static bfd_boolean
-stab_demangle_remember_type (struct stab_demangle_info *minfo,
- const char *p, int len)
-{
- if (minfo->typestring_count >= minfo->typestring_alloc)
- {
- minfo->typestring_alloc += 10;
- minfo->typestrings = ((struct stab_demangle_typestring *)
- xrealloc (minfo->typestrings,
- (minfo->typestring_alloc
- * sizeof *minfo->typestrings)));
- }
-
- minfo->typestrings[minfo->typestring_count].typestring = p;
- minfo->typestrings[minfo->typestring_count].len = (unsigned int) len;
- ++minfo->typestring_count;
-
- return TRUE;
-}
-
-/* Demangle names encoded using the g++ V3 ABI. The newer versions of
- g++ which use this ABI do not encode ordinary method argument types
- in a mangled name; they simply output the argument types. However,
- for a static method, g++ simply outputs the return type and the
- physical name. So in that case we need to demangle the name here.
- Here PHYSNAME is the physical name of the function, and we set the
- variable pointed at by PVARARGS to indicate whether this function
- is varargs. This returns NULL, or a NULL terminated array of
- argument types. */
-
-static debug_type *
-stab_demangle_v3_argtypes (void *dhandle, struct stab_handle *info,
- const char *physname, bfd_boolean *pvarargs)
-{
- struct demangle_component *dc;
- void *mem;
- debug_type *pargs;
-
- dc = cplus_demangle_v3_components (physname, DMGL_PARAMS | DMGL_ANSI, &mem);
- if (dc == NULL)
- {
- stab_bad_demangle (physname);
- return NULL;
- }
-
- /* We expect to see TYPED_NAME, and the right subtree describes the
- function type. */
- if (dc->type != DEMANGLE_COMPONENT_TYPED_NAME
- || dc->u.s_binary.right->type != DEMANGLE_COMPONENT_FUNCTION_TYPE)
- {
- fprintf (stderr, _("Demangled name is not a function\n"));
- free (mem);
- return NULL;
- }
-
- pargs = stab_demangle_v3_arglist (dhandle, info,
- dc->u.s_binary.right->u.s_binary.right,
- pvarargs);
-
- free (mem);
-
- return pargs;
-}
-
-/* Demangle an argument list in a struct demangle_component tree.
- Returns a DEBUG_TYPE_NULL terminated array of argument types, and
- sets *PVARARGS to indicate whether this is a varargs function. */
-
-static debug_type *
-stab_demangle_v3_arglist (void *dhandle, struct stab_handle *info,
- struct demangle_component *arglist,
- bfd_boolean *pvarargs)
-{
- struct demangle_component *dc;
- unsigned int alloc, count;
- debug_type *pargs;
-
- alloc = 10;
- pargs = (debug_type *) xmalloc (alloc * sizeof *pargs);
- *pvarargs = FALSE;
-
- count = 0;
-
- for (dc = arglist;
- dc != NULL;
- dc = dc->u.s_binary.right)
- {
- debug_type arg;
- bfd_boolean varargs;
-
- if (dc->type != DEMANGLE_COMPONENT_ARGLIST)
- {
- fprintf (stderr, _("Unexpected type in v3 arglist demangling\n"));
- free (pargs);
- return NULL;
- }
-
- arg = stab_demangle_v3_arg (dhandle, info, dc->u.s_binary.left,
- NULL, &varargs);
- if (arg == NULL)
- {
- if (varargs)
- {
- *pvarargs = TRUE;
- continue;
- }
- free (pargs);
- return NULL;
- }
-
- if (count + 1 >= alloc)
- {
- alloc += 10;
- pargs = (debug_type *) xrealloc (pargs, alloc * sizeof *pargs);
- }
-
- pargs[count] = arg;
- ++count;
- }
-
- pargs[count] = DEBUG_TYPE_NULL;
-
- return pargs;
-}
-
-/* Convert a struct demangle_component tree describing an argument
- type into a debug_type. */
-
-static debug_type
-stab_demangle_v3_arg (void *dhandle, struct stab_handle *info,
- struct demangle_component *dc, debug_type context,
- bfd_boolean *pvarargs)
-{
- debug_type dt;
-
- if (pvarargs != NULL)
- *pvarargs = FALSE;
-
- switch (dc->type)
- {
- /* FIXME: These are demangle component types which we probably
- need to handle one way or another. */
- case DEMANGLE_COMPONENT_LOCAL_NAME:
- case DEMANGLE_COMPONENT_TYPED_NAME:
- case DEMANGLE_COMPONENT_TEMPLATE_PARAM:
- case DEMANGLE_COMPONENT_CTOR:
- case DEMANGLE_COMPONENT_DTOR:
- case DEMANGLE_COMPONENT_JAVA_CLASS:
- case DEMANGLE_COMPONENT_RESTRICT_THIS:
- case DEMANGLE_COMPONENT_VOLATILE_THIS:
- case DEMANGLE_COMPONENT_CONST_THIS:
- case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
- case DEMANGLE_COMPONENT_COMPLEX:
- case DEMANGLE_COMPONENT_IMAGINARY:
- case DEMANGLE_COMPONENT_VENDOR_TYPE:
- case DEMANGLE_COMPONENT_ARRAY_TYPE:
- case DEMANGLE_COMPONENT_PTRMEM_TYPE:
- case DEMANGLE_COMPONENT_ARGLIST:
- default:
- fprintf (stderr, _("Unrecognized demangle component %d\n"),
- (int) dc->type);
- return NULL;
-
- case DEMANGLE_COMPONENT_NAME:
- if (context != NULL)
- {
- const debug_field *fields;
-
- fields = debug_get_fields (dhandle, context);
- if (fields != NULL)
- {
- /* Try to find this type by looking through the context
- class. */
- for (; *fields != DEBUG_FIELD_NULL; fields++)
- {
- debug_type ft;
- const char *dn;
-
- ft = debug_get_field_type (dhandle, *fields);
- if (ft == NULL)
- return NULL;
- dn = debug_get_type_name (dhandle, ft);
- if (dn != NULL
- && (int) strlen (dn) == dc->u.s_name.len
- && strncmp (dn, dc->u.s_name.s, dc->u.s_name.len) == 0)
- return ft;
- }
- }
- }
- return stab_find_tagged_type (dhandle, info, dc->u.s_name.s,
- dc->u.s_name.len, DEBUG_KIND_ILLEGAL);
-
- case DEMANGLE_COMPONENT_QUAL_NAME:
- context = stab_demangle_v3_arg (dhandle, info, dc->u.s_binary.left,
- context, NULL);
- if (context == NULL)
- return NULL;
- return stab_demangle_v3_arg (dhandle, info, dc->u.s_binary.right,
- context, NULL);
-
- case DEMANGLE_COMPONENT_TEMPLATE:
- {
- char *p;
- size_t alc;
-
- /* We print this component to get a class name which we can
- use. FIXME: This probably won't work if the template uses
- template parameters which refer to an outer template. */
- p = cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI, dc, 20, &alc);
- if (p == NULL)
- {
- fprintf (stderr, _("Failed to print demangled template\n"));
- return NULL;
- }
- dt = stab_find_tagged_type (dhandle, info, p, strlen (p),
- DEBUG_KIND_CLASS);
- free (p);
- return dt;
- }
-
- case DEMANGLE_COMPONENT_SUB_STD:
- return stab_find_tagged_type (dhandle, info, dc->u.s_string.string,
- dc->u.s_string.len, DEBUG_KIND_ILLEGAL);
-
- case DEMANGLE_COMPONENT_RESTRICT:
- case DEMANGLE_COMPONENT_VOLATILE:
- case DEMANGLE_COMPONENT_CONST:
- case DEMANGLE_COMPONENT_POINTER:
- case DEMANGLE_COMPONENT_REFERENCE:
- dt = stab_demangle_v3_arg (dhandle, info, dc->u.s_binary.left, NULL,
- NULL);
- if (dt == NULL)
- return NULL;
-
- switch (dc->type)
- {
- default:
- abort ();
- case DEMANGLE_COMPONENT_RESTRICT:
- /* FIXME: We have no way to represent restrict. */
- return dt;
- case DEMANGLE_COMPONENT_VOLATILE:
- return debug_make_volatile_type (dhandle, dt);
- case DEMANGLE_COMPONENT_CONST:
- return debug_make_const_type (dhandle, dt);
- case DEMANGLE_COMPONENT_POINTER:
- return debug_make_pointer_type (dhandle, dt);
- case DEMANGLE_COMPONENT_REFERENCE:
- return debug_make_reference_type (dhandle, dt);
- }
-
- case DEMANGLE_COMPONENT_FUNCTION_TYPE:
- {
- debug_type *pargs;
- bfd_boolean varargs;
-
- if (dc->u.s_binary.left == NULL)
- {
- /* In this case the return type is actually unknown.
- However, I'm not sure this will ever arise in practice;
- normally an unknown return type would only appear at
- the top level, which is handled above. */
- dt = debug_make_void_type (dhandle);
- }
- else
- dt = stab_demangle_v3_arg (dhandle, info, dc->u.s_binary.left, NULL,
- NULL);
- if (dt == NULL)
- return NULL;
-
- pargs = stab_demangle_v3_arglist (dhandle, info,
- dc->u.s_binary.right,
- &varargs);
- if (pargs == NULL)
- return NULL;
-
- return debug_make_function_type (dhandle, dt, pargs, varargs);
- }
-
- case DEMANGLE_COMPONENT_BUILTIN_TYPE:
- {
- char *p;
- size_t alc;
- debug_type ret;
-
- /* We print this component in order to find out the type name.
- FIXME: Should we instead expose the
- demangle_builtin_type_info structure? */
- p = cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI, dc, 20, &alc);
- if (p == NULL)
- {
- fprintf (stderr, _("Couldn't get demangled builtin type\n"));
- return NULL;
- }
-
- /* The mangling is based on the type, but does not itself
- indicate what the sizes are. So we have to guess. */
- if (strcmp (p, "signed char") == 0)
- ret = debug_make_int_type (dhandle, 1, FALSE);
- else if (strcmp (p, "bool") == 0)
- ret = debug_make_bool_type (dhandle, 1);
- else if (strcmp (p, "char") == 0)
- ret = debug_make_int_type (dhandle, 1, FALSE);
- else if (strcmp (p, "double") == 0)
- ret = debug_make_float_type (dhandle, 8);
- else if (strcmp (p, "long double") == 0)
- ret = debug_make_float_type (dhandle, 8);
- else if (strcmp (p, "float") == 0)
- ret = debug_make_float_type (dhandle, 4);
- else if (strcmp (p, "__float128") == 0)
- ret = debug_make_float_type (dhandle, 16);
- else if (strcmp (p, "unsigned char") == 0)
- ret = debug_make_int_type (dhandle, 1, TRUE);
- else if (strcmp (p, "int") == 0)
- ret = debug_make_int_type (dhandle, 4, FALSE);
- else if (strcmp (p, "unsigned int") == 0)
- ret = debug_make_int_type (dhandle, 4, TRUE);
- else if (strcmp (p, "long") == 0)
- ret = debug_make_int_type (dhandle, 4, FALSE);
- else if (strcmp (p, "unsigned long") == 0)
- ret = debug_make_int_type (dhandle, 4, TRUE);
- else if (strcmp (p, "__int128") == 0)
- ret = debug_make_int_type (dhandle, 16, FALSE);
- else if (strcmp (p, "unsigned __int128") == 0)
- ret = debug_make_int_type (dhandle, 16, TRUE);
- else if (strcmp (p, "short") == 0)
- ret = debug_make_int_type (dhandle, 2, FALSE);
- else if (strcmp (p, "unsigned short") == 0)
- ret = debug_make_int_type (dhandle, 2, TRUE);
- else if (strcmp (p, "void") == 0)
- ret = debug_make_void_type (dhandle);
- else if (strcmp (p, "wchar_t") == 0)
- ret = debug_make_int_type (dhandle, 4, TRUE);
- else if (strcmp (p, "long long") == 0)
- ret = debug_make_int_type (dhandle, 8, FALSE);
- else if (strcmp (p, "unsigned long long") == 0)
- ret = debug_make_int_type (dhandle, 8, TRUE);
- else if (strcmp (p, "...") == 0)
- {
- if (pvarargs == NULL)
- fprintf (stderr, _("Unexpected demangled varargs\n"));
- else
- *pvarargs = TRUE;
- ret = NULL;
- }
- else
- {
- fprintf (stderr, _("Unrecognized demangled builtin type\n"));
- ret = NULL;
- }
-
- free (p);
-
- return ret;
- }
- }
-}
diff --git a/binutils-2.17/binutils/stamp-h.in b/binutils-2.17/binutils/stamp-h.in
deleted file mode 100644
index 9788f702..00000000
--- a/binutils-2.17/binutils/stamp-h.in
+++ /dev/null
@@ -1 +0,0 @@
-timestamp
diff --git a/binutils-2.17/binutils/strings.c b/binutils-2.17/binutils/strings.c
deleted file mode 100644
index a04cb581..00000000
--- a/binutils-2.17/binutils/strings.c
+++ /dev/null
@@ -1,727 +0,0 @@
-/* strings -- print the strings of printable characters in files
- Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* Usage: strings [options] file...
-
- Options:
- --all
- -a
- - Do not scan only the initialized data section of object files.
-
- --print-file-name
- -f Print the name of the file before each string.
-
- --bytes=min-len
- -n min-len
- -min-len Print graphic char sequences, MIN-LEN or more bytes long,
- that are followed by a NUL or a newline. Default is 4.
-
- --radix={o,x,d}
- -t {o,x,d} Print the offset within the file before each string,
- in octal/hex/decimal.
-
- -o Like -to. (Some other implementations have -o like -to,
- others like -td. We chose one arbitrarily.)
-
- --encoding={s,S,b,l,B,L}
- -e {s,S,b,l,B,L}
- Select character encoding: 7-bit-character, 8-bit-character,
- bigendian 16-bit, littleendian 16-bit, bigendian 32-bit,
- littleendian 32-bit.
-
- --target=BFDNAME
- Specify a non-default object file format.
-
- --help
- -h Print the usage message on the standard output.
-
- --version
- -v Print the program version number.
-
- Written by Richard Stallman <rms@gnu.ai.mit.edu>
- and David MacKenzie <djm@gnu.ai.mit.edu>. */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include "bfd.h"
-#include <stdio.h>
-#include "getopt.h"
-#include <errno.h>
-#include "bucomm.h"
-#include "libiberty.h"
-#include "safe-ctype.h"
-#include <sys/stat.h>
-
-/* Some platforms need to put stdin into binary mode, to read
- binary files. */
-#ifdef HAVE_SETMODE
-#ifndef O_BINARY
-#ifdef _O_BINARY
-#define O_BINARY _O_BINARY
-#define setmode _setmode
-#else
-#define O_BINARY 0
-#endif
-#endif
-#if O_BINARY
-#include <io.h>
-#define SET_BINARY(f) do { if (!isatty (f)) setmode (f,O_BINARY); } while (0)
-#endif
-#endif
-
-#define STRING_ISGRAPHIC(c) \
- ( (c) >= 0 \
- && (c) <= 255 \
- && ((c) == '\t' || ISPRINT (c) || (encoding == 'S' && (c) > 127)))
-
-#ifndef errno
-extern int errno;
-#endif
-
-/* The BFD section flags that identify an initialized data section. */
-#define DATA_FLAGS (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS)
-
-#ifdef HAVE_FOPEN64
-typedef off64_t file_off;
-#define file_open(s,m) fopen64(s, m)
-#else
-typedef off_t file_off;
-#define file_open(s,m) fopen(s, m)
-#endif
-#ifdef HAVE_STAT64
-typedef struct stat64 statbuf;
-#define file_stat(f,s) stat64(f, s)
-#else
-typedef struct stat statbuf;
-#define file_stat(f,s) stat(f, s)
-#endif
-
-/* Radix for printing addresses (must be 8, 10 or 16). */
-static int address_radix;
-
-/* Minimum length of sequence of graphic chars to trigger output. */
-static int string_min;
-
-/* TRUE means print address within file for each string. */
-static bfd_boolean print_addresses;
-
-/* TRUE means print filename for each string. */
-static bfd_boolean print_filenames;
-
-/* TRUE means for object files scan only the data section. */
-static bfd_boolean datasection_only;
-
-/* TRUE if we found an initialized data section in the current file. */
-static bfd_boolean got_a_section;
-
-/* The BFD object file format. */
-static char *target;
-
-/* The character encoding format. */
-static char encoding;
-static int encoding_bytes;
-
-static struct option long_options[] =
-{
- {"all", no_argument, NULL, 'a'},
- {"print-file-name", no_argument, NULL, 'f'},
- {"bytes", required_argument, NULL, 'n'},
- {"radix", required_argument, NULL, 't'},
- {"encoding", required_argument, NULL, 'e'},
- {"target", required_argument, NULL, 'T'},
- {"help", no_argument, NULL, 'h'},
- {"version", no_argument, NULL, 'v'},
- {NULL, 0, NULL, 0}
-};
-
-/* Records the size of a named file so that we
- do not repeatedly run bfd_stat() on it. */
-
-typedef struct
-{
- const char * filename;
- bfd_size_type filesize;
-} filename_and_size_t;
-
-static void strings_a_section (bfd *, asection *, void *);
-static bfd_boolean strings_object_file (const char *);
-static bfd_boolean strings_file (char *file);
-static int integer_arg (char *s);
-static void print_strings (const char *, FILE *, file_off, int, int, char *);
-static void usage (FILE *, int);
-static long get_char (FILE *, file_off *, int *, char **);
-
-int main (int, char **);
-
-int
-main (int argc, char **argv)
-{
- int optc;
- int exit_status = 0;
- bfd_boolean files_given = FALSE;
-
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_ALL, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- program_name = argv[0];
- xmalloc_set_program_name (program_name);
-
- expandargv (&argc, &argv);
-
- string_min = -1;
- print_addresses = FALSE;
- print_filenames = FALSE;
- datasection_only = TRUE;
- target = NULL;
- encoding = 's';
-
- while ((optc = getopt_long (argc, argv, "afhHn:ot:e:Vv0123456789",
- long_options, (int *) 0)) != EOF)
- {
- switch (optc)
- {
- case 'a':
- datasection_only = FALSE;
- break;
-
- case 'f':
- print_filenames = TRUE;
- break;
-
- case 'H':
- case 'h':
- usage (stdout, 0);
-
- case 'n':
- string_min = integer_arg (optarg);
- if (string_min < 1)
- fatal (_("invalid number %s"), optarg);
- break;
-
- case 'o':
- print_addresses = TRUE;
- address_radix = 8;
- break;
-
- case 't':
- print_addresses = TRUE;
- if (optarg[1] != '\0')
- usage (stderr, 1);
- switch (optarg[0])
- {
- case 'o':
- address_radix = 8;
- break;
-
- case 'd':
- address_radix = 10;
- break;
-
- case 'x':
- address_radix = 16;
- break;
-
- default:
- usage (stderr, 1);
- }
- break;
-
- case 'T':
- target = optarg;
- break;
-
- case 'e':
- if (optarg[1] != '\0')
- usage (stderr, 1);
- encoding = optarg[0];
- break;
-
- case 'V':
- case 'v':
- print_version ("strings");
- break;
-
- case '?':
- usage (stderr, 1);
-
- default:
- if (string_min < 0)
- string_min = optc - '0';
- else
- string_min = string_min * 10 + optc - '0';
- break;
- }
- }
-
- if (string_min < 0)
- string_min = 4;
-
- switch (encoding)
- {
- case 'S':
- case 's':
- encoding_bytes = 1;
- break;
- case 'b':
- case 'l':
- encoding_bytes = 2;
- break;
- case 'B':
- case 'L':
- encoding_bytes = 4;
- break;
- default:
- usage (stderr, 1);
- }
-
- bfd_init ();
- set_default_bfd_target ();
-
- if (optind >= argc)
- {
- datasection_only = FALSE;
-#ifdef SET_BINARY
- SET_BINARY (fileno (stdin));
-#endif
- print_strings ("{standard input}", stdin, 0, 0, 0, (char *) NULL);
- files_given = TRUE;
- }
- else
- {
- for (; optind < argc; ++optind)
- {
- if (strcmp (argv[optind], "-") == 0)
- datasection_only = FALSE;
- else
- {
- files_given = TRUE;
- exit_status |= strings_file (argv[optind]) == FALSE;
- }
- }
- }
-
- if (!files_given)
- usage (stderr, 1);
-
- return (exit_status);
-}
-
-/* Scan section SECT of the file ABFD, whose printable name is in
- ARG->filename and whose size might be in ARG->filesize. If it
- contains initialized data set `got_a_section' and print the
- strings in it.
-
- FIXME: We ought to be able to return error codes/messages for
- certain conditions. */
-
-static void
-strings_a_section (bfd *abfd, asection *sect, void *arg)
-{
- filename_and_size_t * filename_and_sizep;
- bfd_size_type *filesizep;
- bfd_size_type sectsize;
- void *mem;
-
- if ((sect->flags & DATA_FLAGS) != DATA_FLAGS)
- return;
-
- sectsize = bfd_get_section_size (sect);
-
- if (sectsize <= 0)
- return;
-
- /* Get the size of the file. This might have been cached for us. */
- filename_and_sizep = (filename_and_size_t *) arg;
- filesizep = & filename_and_sizep->filesize;
-
- if (*filesizep == 0)
- {
- struct stat st;
-
- if (bfd_stat (abfd, &st))
- return;
-
- /* Cache the result so that we do not repeatedly stat this file. */
- *filesizep = st.st_size;
- }
-
- /* Compare the size of the section against the size of the file.
- If the section is bigger then the file must be corrupt and
- we should not try dumping it. */
- if (sectsize >= *filesizep)
- return;
-
- mem = xmalloc (sectsize);
-
- if (bfd_get_section_contents (abfd, sect, mem, (file_ptr) 0, sectsize))
- {
- got_a_section = TRUE;
-
- print_strings (filename_and_sizep->filename, NULL, sect->filepos,
- 0, sectsize, mem);
- }
-
- free (mem);
-}
-
-/* Scan all of the sections in FILE, and print the strings
- in the initialized data section(s).
-
- Return TRUE if successful,
- FALSE if not (such as if FILE is not an object file). */
-
-static bfd_boolean
-strings_object_file (const char *file)
-{
- filename_and_size_t filename_and_size;
- bfd *abfd;
-
- abfd = bfd_openr (file, target);
-
- if (abfd == NULL)
- /* Treat the file as a non-object file. */
- return FALSE;
-
- /* This call is mainly for its side effect of reading in the sections.
- We follow the traditional behavior of `strings' in that we don't
- complain if we don't recognize a file to be an object file. */
- if (!bfd_check_format (abfd, bfd_object))
- {
- bfd_close (abfd);
- return FALSE;
- }
-
- got_a_section = FALSE;
- filename_and_size.filename = file;
- filename_and_size.filesize = 0;
- bfd_map_over_sections (abfd, strings_a_section, & filename_and_size);
-
- if (!bfd_close (abfd))
- {
- bfd_nonfatal (file);
- return FALSE;
- }
-
- return got_a_section;
-}
-
-/* Print the strings in FILE. Return TRUE if ok, FALSE if an error occurs. */
-
-static bfd_boolean
-strings_file (char *file)
-{
- statbuf st;
-
- if (file_stat (file, &st) < 0)
- {
- if (errno == ENOENT)
- non_fatal (_("'%s': No such file"), file);
- else
- non_fatal (_("Warning: could not locate '%s'. reason: %s"),
- file, strerror (errno));
- return FALSE;
- }
-
- /* If we weren't told to scan the whole file,
- try to open it as an object file and only look at
- initialized data sections. If that fails, fall back to the
- whole file. */
- if (!datasection_only || !strings_object_file (file))
- {
- FILE *stream;
-
- stream = file_open (file, FOPEN_RB);
- if (stream == NULL)
- {
- fprintf (stderr, "%s: ", program_name);
- perror (file);
- return FALSE;
- }
-
- print_strings (file, stream, (file_off) 0, 0, 0, (char *) 0);
-
- if (fclose (stream) == EOF)
- {
- fprintf (stderr, "%s: ", program_name);
- perror (file);
- return FALSE;
- }
- }
-
- return TRUE;
-}
-
-/* Read the next character, return EOF if none available.
- Assume that STREAM is positioned so that the next byte read
- is at address ADDRESS in the file.
-
- If STREAM is NULL, do not read from it.
- The caller can supply a buffer of characters
- to be processed before the data in STREAM.
- MAGIC is the address of the buffer and
- MAGICCOUNT is how many characters are in it. */
-
-static long
-get_char (FILE *stream, file_off *address, int *magiccount, char **magic)
-{
- int c, i;
- long r = EOF;
- unsigned char buf[4];
-
- for (i = 0; i < encoding_bytes; i++)
- {
- if (*magiccount)
- {
- (*magiccount)--;
- c = *(*magic)++;
- }
- else
- {
- if (stream == NULL)
- return EOF;
-
- /* Only use getc_unlocked if we found a declaration for it.
- Otherwise, libc is not thread safe by default, and we
- should not use it. */
-
-#if defined(HAVE_GETC_UNLOCKED) && HAVE_DECL_GETC_UNLOCKED
- c = getc_unlocked (stream);
-#else
- c = getc (stream);
-#endif
- if (c == EOF)
- return EOF;
- }
-
- (*address)++;
- buf[i] = c;
- }
-
- switch (encoding)
- {
- case 'S':
- case 's':
- r = buf[0];
- break;
- case 'b':
- r = (buf[0] << 8) | buf[1];
- break;
- case 'l':
- r = buf[0] | (buf[1] << 8);
- break;
- case 'B':
- r = ((long) buf[0] << 24) | ((long) buf[1] << 16) |
- ((long) buf[2] << 8) | buf[3];
- break;
- case 'L':
- r = buf[0] | ((long) buf[1] << 8) | ((long) buf[2] << 16) |
- ((long) buf[3] << 24);
- break;
- }
-
- if (r == EOF)
- return 0;
-
- return r;
-}
-
-/* Find the strings in file FILENAME, read from STREAM.
- Assume that STREAM is positioned so that the next byte read
- is at address ADDRESS in the file.
- Stop reading at address STOP_POINT in the file, if nonzero.
-
- If STREAM is NULL, do not read from it.
- The caller can supply a buffer of characters
- to be processed before the data in STREAM.
- MAGIC is the address of the buffer and
- MAGICCOUNT is how many characters are in it.
- Those characters come at address ADDRESS and the data in STREAM follow. */
-
-static void
-print_strings (const char *filename, FILE *stream, file_off address,
- int stop_point, int magiccount, char *magic)
-{
- char *buf = (char *) xmalloc (sizeof (char) * (string_min + 1));
-
- while (1)
- {
- file_off start;
- int i;
- long c;
-
- /* See if the next `string_min' chars are all graphic chars. */
- tryline:
- if (stop_point && address >= stop_point)
- break;
- start = address;
- for (i = 0; i < string_min; i++)
- {
- c = get_char (stream, &address, &magiccount, &magic);
- if (c == EOF)
- return;
- if (! STRING_ISGRAPHIC (c))
- /* Found a non-graphic. Try again starting with next char. */
- goto tryline;
- buf[i] = c;
- }
-
- /* We found a run of `string_min' graphic characters. Print up
- to the next non-graphic character. */
-
- if (print_filenames)
- printf ("%s: ", filename);
- if (print_addresses)
- switch (address_radix)
- {
- case 8:
-#if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2)
- if (sizeof (start) > sizeof (long))
- printf ("%7Lo ", (unsigned long long) start);
- else
-#else
-# if !BFD_HOST_64BIT_LONG
- if (start != (unsigned long) start)
- printf ("++%7lo ", (unsigned long) start);
- else
-# endif
-#endif
- printf ("%7lo ", (unsigned long) start);
- break;
-
- case 10:
-#if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2)
- if (sizeof (start) > sizeof (long))
- printf ("%7Ld ", (unsigned long long) start);
- else
-#else
-# if !BFD_HOST_64BIT_LONG
- if (start != (unsigned long) start)
- printf ("++%7ld ", (unsigned long) start);
- else
-# endif
-#endif
- printf ("%7ld ", (long) start);
- break;
-
- case 16:
-#if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2)
- if (sizeof (start) > sizeof (long))
- printf ("%7Lx ", (unsigned long long) start);
- else
-#else
-# if !BFD_HOST_64BIT_LONG
- if (start != (unsigned long) start)
- printf ("%lx%8.8lx ", (unsigned long) (start >> 32),
- (unsigned long) (start & 0xffffffff));
- else
-# endif
-#endif
- printf ("%7lx ", (unsigned long) start);
- break;
- }
-
- buf[i] = '\0';
- fputs (buf, stdout);
-
- while (1)
- {
- c = get_char (stream, &address, &magiccount, &magic);
- if (c == EOF)
- break;
- if (! STRING_ISGRAPHIC (c))
- break;
- putchar (c);
- }
-
- putchar ('\n');
- }
-}
-
-/* Parse string S as an integer, using decimal radix by default,
- but allowing octal and hex numbers as in C. */
-
-static int
-integer_arg (char *s)
-{
- int value;
- int radix = 10;
- char *p = s;
- int c;
-
- if (*p != '0')
- radix = 10;
- else if (*++p == 'x')
- {
- radix = 16;
- p++;
- }
- else
- radix = 8;
-
- value = 0;
- while (((c = *p++) >= '0' && c <= '9')
- || (radix == 16 && (c & ~40) >= 'A' && (c & ~40) <= 'Z'))
- {
- value *= radix;
- if (c >= '0' && c <= '9')
- value += c - '0';
- else
- value += (c & ~40) - 'A';
- }
-
- if (c == 'b')
- value *= 512;
- else if (c == 'B')
- value *= 1024;
- else
- p--;
-
- if (*p)
- fatal (_("invalid integer argument %s"), s);
-
- return value;
-}
-
-static void
-usage (FILE *stream, int status)
-{
- fprintf (stream, _("Usage: %s [option(s)] [file(s)]\n"), program_name);
- fprintf (stream, _(" Display printable strings in [file(s)] (stdin by default)\n"));
- fprintf (stream, _(" The options are:\n\
- -a - --all Scan the entire file, not just the data section\n\
- -f --print-file-name Print the name of the file before each string\n\
- -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n\
- -<number> least [number] characters (default 4).\n\
- -t --radix={o,d,x} Print the location of the string in base 8, 10 or 16\n\
- -o An alias for --radix=o\n\
- -T --target=<BFDNAME> Specify the binary file format\n\
- -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n\
- s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n\
- @<file> Read options from <file>\n\
- -h --help Display this information\n\
- -v --version Print the program's version number\n"));
- list_supported_targets (program_name, stream);
- if (status == 0)
- fprintf (stream, _("Report bugs to %s\n"), REPORT_BUGS_TO);
- exit (status);
-}
diff --git a/binutils-2.17/binutils/sysdump.c b/binutils-2.17/binutils/sysdump.c
deleted file mode 100644
index ec194725..00000000
--- a/binutils-2.17/binutils/sysdump.c
+++ /dev/null
@@ -1,714 +0,0 @@
-/* Sysroff object format dumper.
- Copyright 1994, 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2005
- Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-
-/* Written by Steve Chamberlain <sac@cygnus.com>.
-
- This program reads a SYSROFF object file and prints it in an
- almost human readable form to stdout. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "safe-ctype.h"
-
-#include <stdio.h>
-#include "libiberty.h"
-#include "getopt.h"
-#include "sysroff.h"
-
-static int dump = 1;
-static int segmented_p;
-static int code;
-static int addrsize = 4;
-static FILE *file;
-
-static void dh (unsigned char *, int);
-static void itheader (char *, int);
-static void p (void);
-static void tabout (void);
-static void pbarray (barray *);
-static int getone (int);
-static int opt (int);
-static void must (int);
-static void tab (int, char *);
-static void dump_symbol_info (void);
-static void derived_type (void);
-static void module (void);
-static void show_usage (FILE *, int);
-
-extern int main (int, char **);
-
-static char *
-getCHARS (unsigned char *ptr, int *idx, int size, int max)
-{
- int oc = *idx / 8;
- char *r;
- int b = size;
-
- if (b >= max)
- return "*undefined*";
-
- if (b == 0)
- {
- /* Got to work out the length of the string from self. */
- b = ptr[oc++];
- (*idx) += 8;
- }
-
- *idx += b * 8;
- r = xcalloc (b + 1, 1);
- memcpy (r, ptr + oc, b);
- r[b] = 0;
-
- return r;
-}
-
-static void
-dh (unsigned char *ptr, int size)
-{
- int i;
- int j;
- int span = 16;
-
- printf ("\n************************************************************\n");
-
- for (i = 0; i < size; i += span)
- {
- for (j = 0; j < span; j++)
- {
- if (j + i < size)
- printf ("%02x ", ptr[i + j]);
- else
- printf (" ");
- }
-
- for (j = 0; j < span && j + i < size; j++)
- {
- int c = ptr[i + j];
-
- if (c < 32 || c > 127)
- c = '.';
- printf ("%c", c);
- }
-
- printf ("\n");
- }
-}
-
-static int
-fillup (unsigned char *ptr)
-{
- int size;
- int sum;
- int i;
-
- size = getc (file) - 2;
- fread (ptr, 1, size, file);
- sum = code + size + 2;
-
- for (i = 0; i < size; i++)
- sum += ptr[i];
-
- if ((sum & 0xff) != 0xff)
- printf ("SUM IS %x\n", sum);
-
- if (dump)
- dh (ptr, size);
-
- return size - 1;
-}
-
-static barray
-getBARRAY (unsigned char *ptr, int *idx, int dsize ATTRIBUTE_UNUSED,
- int max ATTRIBUTE_UNUSED)
-{
- barray res;
- int i;
- int byte = *idx / 8;
- int size = ptr[byte++];
-
- res.len = size;
- res.data = (unsigned char *) xmalloc (size);
-
- for (i = 0; i < size; i++)
- res.data[i] = ptr[byte++];
-
- return res;
-}
-
-static int
-getINT (unsigned char *ptr, int *idx, int size, int max)
-{
- int n = 0;
- int byte = *idx / 8;
-
- if (byte >= max)
- return 0;
-
- if (size == -2)
- size = addrsize;
-
- if (size == -1)
- size = 0;
-
- switch (size)
- {
- case 0:
- return 0;
- case 1:
- n = (ptr[byte]);
- break;
- case 2:
- n = (ptr[byte + 0] << 8) + ptr[byte + 1];
- break;
- case 4:
- n = (ptr[byte + 0] << 24) + (ptr[byte + 1] << 16) + (ptr[byte + 2] << 8) + (ptr[byte + 3]);
- break;
- default:
- abort ();
- }
-
- *idx += size * 8;
- return n;
-}
-
-static int
-getBITS (unsigned char *ptr, int *idx, int size, int max)
-{
- int byte = *idx / 8;
- int bit = *idx % 8;
-
- if (byte >= max)
- return 0;
-
- *idx += size;
-
- return (ptr[byte] >> (8 - bit - size)) & ((1 << size) - 1);
-}
-
-static void
-itheader (char *name, int code)
-{
- printf ("\n%s 0x%02x\n", name, code);
-}
-
-static int indent;
-
-static void
-p (void)
-{
- int i;
-
- for (i = 0; i < indent; i++)
- printf ("| ");
-
- printf ("> ");
-}
-
-static void
-tabout (void)
-{
- p ();
-}
-
-static void
-pbarray (barray *y)
-{
- int x;
-
- printf ("%d (", y->len);
-
- for (x = 0; x < y->len; x++)
- printf ("(%02x %c)", y->data[x],
- ISPRINT (y->data[x]) ? y->data[x] : '.');
-
- printf (")\n");
-}
-
-#define SYSROFF_PRINT
-#define SYSROFF_SWAP_IN
-
-#include "sysroff.c"
-
-/* FIXME: sysinfo, which generates sysroff.[ch] from sysroff.info, can't
- hack the special case of the tr block, which has no contents. So we
- implement our own functions for reading in and printing out the tr
- block. */
-
-#define IT_tr_CODE 0x7f
-
-static void
-sysroff_swap_tr_in (void)
-{
- unsigned char raw[255];
-
- memset (raw, 0, 255);
- fillup (raw);
-}
-
-static void
-sysroff_print_tr_out (void)
-{
- itheader ("tr", IT_tr_CODE);
-}
-
-static int
-getone (int type)
-{
- int c = getc (file);
-
- code = c;
-
- if ((c & 0x7f) != type)
- {
- ungetc (c, file);
- return 0;
- }
-
- switch (c & 0x7f)
- {
- case IT_cs_CODE:
- {
- struct IT_cs dummy;
- sysroff_swap_cs_in (&dummy);
- sysroff_print_cs_out (&dummy);
- }
- break;
-
- case IT_dln_CODE:
- {
- struct IT_dln dummy;
- sysroff_swap_dln_in (&dummy);
- sysroff_print_dln_out (&dummy);
- }
- break;
-
- case IT_hd_CODE:
- {
- struct IT_hd dummy;
- sysroff_swap_hd_in (&dummy);
- addrsize = dummy.afl;
- sysroff_print_hd_out (&dummy);
- }
- break;
-
- case IT_dar_CODE:
- {
- struct IT_dar dummy;
- sysroff_swap_dar_in (&dummy);
- sysroff_print_dar_out (&dummy);
- }
- break;
-
- case IT_dsy_CODE:
- {
- struct IT_dsy dummy;
- sysroff_swap_dsy_in (&dummy);
- sysroff_print_dsy_out (&dummy);
- }
- break;
-
- case IT_dfp_CODE:
- {
- struct IT_dfp dummy;
- sysroff_swap_dfp_in (&dummy);
- sysroff_print_dfp_out (&dummy);
- }
- break;
-
- case IT_dso_CODE:
- {
- struct IT_dso dummy;
- sysroff_swap_dso_in (&dummy);
- sysroff_print_dso_out (&dummy);
- }
- break;
-
- case IT_dpt_CODE:
- {
- struct IT_dpt dummy;
- sysroff_swap_dpt_in (&dummy);
- sysroff_print_dpt_out (&dummy);
- }
- break;
-
- case IT_den_CODE:
- {
- struct IT_den dummy;
- sysroff_swap_den_in (&dummy);
- sysroff_print_den_out (&dummy);
- }
- break;
-
- case IT_dbt_CODE:
- {
- struct IT_dbt dummy;
- sysroff_swap_dbt_in (&dummy);
- sysroff_print_dbt_out (&dummy);
- }
- break;
-
- case IT_dty_CODE:
- {
- struct IT_dty dummy;
- sysroff_swap_dty_in (&dummy);
- sysroff_print_dty_out (&dummy);
- }
- break;
-
- case IT_un_CODE:
- {
- struct IT_un dummy;
- sysroff_swap_un_in (&dummy);
- sysroff_print_un_out (&dummy);
- }
- break;
-
- case IT_sc_CODE:
- {
- struct IT_sc dummy;
- sysroff_swap_sc_in (&dummy);
- sysroff_print_sc_out (&dummy);
- }
- break;
-
- case IT_er_CODE:
- {
- struct IT_er dummy;
- sysroff_swap_er_in (&dummy);
- sysroff_print_er_out (&dummy);
- }
- break;
-
- case IT_ed_CODE:
- {
- struct IT_ed dummy;
- sysroff_swap_ed_in (&dummy);
- sysroff_print_ed_out (&dummy);
- }
- break;
-
- case IT_sh_CODE:
- {
- struct IT_sh dummy;
- sysroff_swap_sh_in (&dummy);
- sysroff_print_sh_out (&dummy);
- }
- break;
-
- case IT_ob_CODE:
- {
- struct IT_ob dummy;
- sysroff_swap_ob_in (&dummy);
- sysroff_print_ob_out (&dummy);
- }
- break;
-
- case IT_rl_CODE:
- {
- struct IT_rl dummy;
- sysroff_swap_rl_in (&dummy);
- sysroff_print_rl_out (&dummy);
- }
- break;
-
- case IT_du_CODE:
- {
- struct IT_du dummy;
- sysroff_swap_du_in (&dummy);
-
- sysroff_print_du_out (&dummy);
- }
- break;
-
- case IT_dus_CODE:
- {
- struct IT_dus dummy;
- sysroff_swap_dus_in (&dummy);
- sysroff_print_dus_out (&dummy);
- }
- break;
-
- case IT_dul_CODE:
- {
- struct IT_dul dummy;
- sysroff_swap_dul_in (&dummy);
- sysroff_print_dul_out (&dummy);
- }
- break;
-
- case IT_dss_CODE:
- {
- struct IT_dss dummy;
- sysroff_swap_dss_in (&dummy);
- sysroff_print_dss_out (&dummy);
- }
- break;
-
- case IT_hs_CODE:
- {
- struct IT_hs dummy;
- sysroff_swap_hs_in (&dummy);
- sysroff_print_hs_out (&dummy);
- }
- break;
-
- case IT_dps_CODE:
- {
- struct IT_dps dummy;
- sysroff_swap_dps_in (&dummy);
- sysroff_print_dps_out (&dummy);
- }
- break;
-
- case IT_tr_CODE:
- sysroff_swap_tr_in ();
- sysroff_print_tr_out ();
- break;
-
- case IT_dds_CODE:
- {
- struct IT_dds dummy;
-
- sysroff_swap_dds_in (&dummy);
- sysroff_print_dds_out (&dummy);
- }
- break;
-
- default:
- printf ("GOT A %x\n", c);
- return 0;
- break;
- }
-
- return 1;
-}
-
-static int
-opt (int x)
-{
- return getone (x);
-}
-
-static void
-must (int x)
-{
- if (!getone (x))
- printf ("WANTED %x!!\n", x);
-}
-
-static void
-tab (int i, char *s)
-{
- indent += i;
-
- if (s)
- {
- p ();
- printf (s);
- printf ("\n");
- }
-}
-
-static void
-dump_symbol_info (void)
-{
- tab (1, "SYMBOL INFO");
-
- while (opt (IT_dsy_CODE))
- {
- if (opt (IT_dty_CODE))
- {
- must (IT_dbt_CODE);
- derived_type ();
- must (IT_dty_CODE);
- }
- }
-
- tab (-1, "");
-}
-
-static void
-derived_type (void)
-{
- tab (1, "DERIVED TYPE");
-
- while (1)
- {
- if (opt (IT_dpp_CODE))
- {
- dump_symbol_info ();
- must (IT_dpp_CODE);
- }
- else if (opt (IT_dfp_CODE))
- {
- dump_symbol_info ();
- must (IT_dfp_CODE);
- }
- else if (opt (IT_den_CODE))
- {
- dump_symbol_info ();
- must (IT_den_CODE);
- }
- else if (opt (IT_den_CODE))
- {
- dump_symbol_info ();
- must (IT_den_CODE);
- }
- else if (opt (IT_dds_CODE))
- {
- dump_symbol_info ();
- must (IT_dds_CODE);
- }
- else if (opt (IT_dar_CODE))
- {
- }
- else if (opt (IT_dpt_CODE))
- {
- }
- else if (opt (IT_dul_CODE))
- {
- }
- else if (opt (IT_dse_CODE))
- {
- }
- else if (opt (IT_dot_CODE))
- {
- }
- else
- break;
- }
-
- tab (-1, "");
-}
-
-static void
-module (void)
-{
- int c = 0;
- int l = 0;
-
- tab (1, "MODULE***\n");
-
- do
- {
- c = getc (file);
- ungetc (c, file);
-
- c &= 0x7f;
- }
- while (getone (c) && c != IT_tr_CODE);
-
- tab (-1, "");
-
- c = getc (file);
- while (c != EOF)
- {
- printf ("%02x ", c);
- l++;
- if (l == 32)
- {
- printf ("\n");
- l = 0;
- }
- c = getc (file);
- }
-}
-
-char *program_name;
-
-static void
-show_usage (FILE *file, int status)
-{
- fprintf (file, _("Usage: %s [option(s)] in-file\n"), program_name);
- fprintf (file, _("Print a human readable interpretation of a SYSROFF object file\n"));
- fprintf (file, _(" The options are:\n\
- -h --help Display this information\n\
- -v --version Print the program's version number\n"));
-
- if (status == 0)
- fprintf (file, _("Report bugs to %s\n"), REPORT_BUGS_TO);
- exit (status);
-}
-
-int
-main (int ac, char **av)
-{
- char *input_file = NULL;
- int opt;
- static struct option long_options[] =
- {
- {"help", no_argument, 0, 'h'},
- {"version", no_argument, 0, 'V'},
- {NULL, no_argument, 0, 0}
- };
-
-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- program_name = av[0];
- xmalloc_set_program_name (program_name);
-
- expandargv (&ac, &av);
-
- while ((opt = getopt_long (ac, av, "HhVv", long_options, (int *) NULL)) != EOF)
- {
- switch (opt)
- {
- case 'H':
- case 'h':
- show_usage (stdout, 0);
- /*NOTREACHED*/
- case 'v':
- case 'V':
- print_version ("sysdump");
- exit (0);
- /*NOTREACHED*/
- case 0:
- break;
- default:
- show_usage (stderr, 1);
- /*NOTREACHED*/
- }
- }
-
- /* The input and output files may be named on the command line. */
-
- if (optind < ac)
- input_file = av[optind];
-
- if (!input_file)
- fatal (_("no input file specified"));
-
- file = fopen (input_file, FOPEN_RB);
-
- if (!file)
- fatal (_("cannot open input file %s"), input_file);
-
- module ();
- return 0;
-}
diff --git a/binutils-2.17/binutils/sysinfo.c b/binutils-2.17/binutils/sysinfo.c
deleted file mode 100644
index a8426ff7..00000000
--- a/binutils-2.17/binutils/sysinfo.c
+++ /dev/null
@@ -1,1804 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.1. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, 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
-
-/* Bison version. */
-#define YYBISON_VERSION "2.1"
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- COND = 258,
- REPEAT = 259,
- TYPE = 260,
- NAME = 261,
- NUMBER = 262,
- UNIT = 263
- };
-#endif
-/* Tokens. */
-#define COND 258
-#define REPEAT 259
-#define TYPE 260
-#define NAME 261
-#define NUMBER 262
-#define UNIT 263
-
-
-
-
-/* Copy the first part of user declarations. */
-#line 20 "sysinfo.y"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-static char writecode;
-static char *it;
-static int code;
-static char * repeat;
-static char *oldrepeat;
-static char *name;
-static int rdepth;
-static char *names[] = {" ","[n]","[n][m]"};
-static char *pnames[]= {"","*","**"};
-
-static int yyerror (char *s);
-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
-
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 39 "sysinfo.y"
-typedef union YYSTYPE {
- int i;
- char *s;
-} YYSTYPE;
-/* Line 196 of yacc.c. */
-#line 124 "sysinfo.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 219 of yacc.c. */
-#line 136 "sysinfo.c"
-
-#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) && (defined (__STDC__) || defined (__cplusplus))
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
-#ifndef YY_
-# if YYENABLE_NLS
-# if ENABLE_NLS
-# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-# define YY_(msgid) dgettext ("bison-runtime", msgid)
-# endif
-# endif
-# ifndef YY_
-# define YY_(msgid) msgid
-# endif
-#endif
-
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# else
-# define YYSTACK_ALLOC alloca
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# define YYINCLUDED_STDLIB_H
-# endif
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# ifndef YYSTACK_ALLOC_MAXIMUM
- /* The OS might guarantee only one guard page at the bottom of the stack,
- and a page size can be as small as 4096 bytes. So we cannot safely
- invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
- to allow for a few compiler-allocated temporary stack slots. */
-# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
-# endif
-# else
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# ifndef YYSTACK_ALLOC_MAXIMUM
-# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
-# endif
-# ifdef __cplusplus
-extern "C" {
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
- && (defined (__STDC__) || defined (__cplusplus)))
-void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifndef YYFREE
-# define YYFREE free
-# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
- && (defined (__STDC__) || defined (__cplusplus)))
-void free (void *); /* INFRINGES ON USER NAME SPACE */
-# endif
-# endif
-# ifdef __cplusplus
-}
-# endif
-# 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 int 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 int) + 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 \
- { \
- 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 int yysigned_char;
-#endif
-
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 3
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 38
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 11
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 19
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 27
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 55
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 263
-
-#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, 2, 2,
- 5, 6, 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, 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,
- 7, 8, 9, 10
-};
-
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const unsigned char yyprhs[] =
-{
- 0, 0, 3, 4, 7, 10, 11, 12, 19, 22,
- 25, 28, 29, 30, 37, 38, 45, 46, 57, 59,
- 60, 64, 67, 71, 72, 73, 77, 78
-};
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yysigned_char yyrhs[] =
-{
- 12, 0, -1, -1, 13, 14, -1, 15, 14, -1,
- -1, -1, 5, 8, 9, 16, 17, 6, -1, 22,
- 17, -1, 20, 17, -1, 18, 17, -1, -1, -1,
- 5, 4, 8, 19, 17, 6, -1, -1, 5, 3,
- 8, 21, 17, 6, -1, -1, 5, 25, 5, 24,
- 26, 6, 27, 23, 28, 6, -1, 7, -1, -1,
- 5, 8, 6, -1, 9, 10, -1, 5, 8, 6,
- -1, -1, -1, 5, 29, 6, -1, -1, 29, 5,
- 8, 8, 6, -1
-};
-
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const unsigned short int yyrline[] =
-{
- 0, 53, 53, 53, 91, 92, 97, 96, 174, 175,
- 176, 177, 181, 180, 228, 227, 255, 254, 362, 363,
- 367, 372, 378, 379, 382, 383, 385, 387
-};
-#endif
-
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-/* YYTNAME[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", "COND", "REPEAT", "'('", "')'", "TYPE",
- "NAME", "NUMBER", "UNIT", "$accept", "top", "@1", "it_list", "it", "@2",
- "it_field_list", "repeat_it_field", "@3", "cond_it_field", "@4",
- "it_field", "@5", "attr_type", "attr_desc", "attr_size", "attr_id",
- "enums", "enum_list", 0
-};
-#endif
-
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
-static const unsigned short int yytoknum[] =
-{
- 0, 256, 257, 258, 259, 40, 41, 260, 261, 262,
- 263
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const unsigned char yyr1[] =
-{
- 0, 11, 13, 12, 14, 14, 16, 15, 17, 17,
- 17, 17, 19, 18, 21, 20, 23, 22, 24, 24,
- 25, 26, 27, 27, 28, 28, 29, 29
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const unsigned char yyr2[] =
-{
- 0, 2, 0, 2, 2, 0, 0, 6, 2, 2,
- 2, 0, 0, 6, 0, 6, 0, 10, 1, 0,
- 3, 2, 3, 0, 0, 3, 0, 5
-};
-
-/* 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[] =
-{
- 2, 0, 5, 1, 0, 3, 5, 0, 4, 6,
- 11, 0, 0, 11, 11, 11, 0, 0, 0, 0,
- 7, 10, 9, 8, 14, 12, 0, 19, 11, 11,
- 20, 18, 0, 0, 0, 0, 0, 15, 13, 21,
- 23, 0, 16, 0, 24, 22, 26, 0, 0, 17,
- 0, 25, 0, 0, 27
-};
-
-/* YYDEFGOTO[NTERM-NUM]. */
-static const yysigned_char yydefgoto[] =
-{
- -1, 1, 2, 5, 6, 10, 12, 13, 29, 14,
- 28, 15, 44, 32, 19, 36, 42, 47, 48
-};
-
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-#define YYPACT_NINF -14
-static const yysigned_char yypact[] =
-{
- -14, 8, 4, -14, 2, -14, 4, 3, -14, -14,
- 6, 0, 7, 6, 6, 6, 9, 10, 11, 15,
- -14, -14, -14, -14, -14, -14, 16, 14, 6, 6,
- -14, -14, 5, 17, 18, 19, 20, -14, -14, -14,
- 22, 23, -14, 24, 27, -14, -14, 28, 1, -14,
- 25, -14, 29, 30, -14
-};
-
-/* YYPGOTO[NTERM-NUM]. */
-static const yysigned_char yypgoto[] =
-{
- -14, -14, -14, 32, -14, -14, -13, -14, -14, -14,
- -14, -14, -14, -14, -14, -14, -14, -14, -14
-};
-
-/* 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[] =
-{
- 21, 22, 23, 16, 17, 18, 50, 51, 3, 4,
- 7, 11, 9, 20, 35, 33, 34, 24, 25, 26,
- 27, 31, 30, 37, 38, 0, 40, 41, 0, 39,
- 45, 43, 46, 52, 49, 0, 54, 53, 8
-};
-
-static const yysigned_char yycheck[] =
-{
- 13, 14, 15, 3, 4, 5, 5, 6, 0, 5,
- 8, 5, 9, 6, 9, 28, 29, 8, 8, 8,
- 5, 7, 6, 6, 6, -1, 6, 5, -1, 10,
- 6, 8, 5, 8, 6, -1, 6, 8, 6
-};
-
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const unsigned char yystos[] =
-{
- 0, 12, 13, 0, 5, 14, 15, 8, 14, 9,
- 16, 5, 17, 18, 20, 22, 3, 4, 5, 25,
- 6, 17, 17, 17, 8, 8, 8, 5, 21, 19,
- 6, 7, 24, 17, 17, 9, 26, 6, 6, 10,
- 6, 5, 27, 8, 23, 6, 5, 28, 29, 6,
- 5, 6, 8, 8, 6
-};
-
-#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 (YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
-while (0)
-
-
-#define YYTERROR 1
-#define YYERRCODE 256
-
-
-/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
- If N is 0, then set CURRENT to the empty location which ends
- the previous symbol: RHS[0] (always defined). */
-
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- do \
- if (N) \
- { \
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
- } \
- else \
- { \
- (Current).first_line = (Current).last_line = \
- YYRHSLOC (Rhs, 0).last_line; \
- (Current).first_column = (Current).last_column = \
- YYRHSLOC (Rhs, 0).last_column; \
- } \
- while (0)
-#endif
-
-
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
-
-#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
-#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 YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yysymprint (stderr, \
- Type, 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 int *bottom, short int *top)
-#else
-static void
-yy_stack_print (bottom, top)
- short int *bottom;
- short int *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 long int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
- 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 YY_SYMBOL_PRINT(Title, Type, 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
- YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
-#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
-{
- 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
-{
- char *yyd = yydest;
- const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
-}
-# endif
-# endif
-
-# ifndef yytnamerr
-/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
-static YYSIZE_T
-yytnamerr (char *yyres, const char *yystr)
-{
- if (*yystr == '"')
- {
- size_t yyn = 0;
- char const *yyp = yystr;
-
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
-
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
-
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
- }
-
- if (! yyres)
- return yystrlen (yystr);
-
- return yystpcpy (yyres, yystr) - yyres;
-}
-# 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]);
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
-
-# ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
- switch (yytype)
- {
- default:
- break;
- }
- YYFPRINTF (yyoutput, ")");
-}
-
-#endif /* ! YYDEBUG */
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yymsg, yytype, yyvaluep)
- const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
-{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
-
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- 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 look-ahead symbol. */
-int yychar;
-
-/* The semantic value of the look-ahead 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
-{
-
- int yystate;
- int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Look-ahead 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 int yyssa[YYINITDEPTH];
- short int *yyss = yyssa;
- short int *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
- 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 int *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 (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
- &yystacksize);
-
- yyss = yyss1;
- yyvs = yyvs1;
- }
-#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyexhaustedlab;
-# else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
- short int *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyexhaustedlab;
- 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 look-ahead token if we need one and don't already have one. */
-/* yyresume: */
-
- /* First try to decide what to do without reference to look-ahead token. */
-
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
- /* Not known => get a look-ahead token if don't already have one. */
-
- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead 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);
- YY_SYMBOL_PRINT ("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 look-ahead token. */
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-
- /* 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 2:
-#line 53 "sysinfo.y"
- {
- switch (writecode)
- {
- case 'i':
- printf("#ifdef SYSROFF_SWAP_IN\n");
- break;
- case 'p':
- printf("#ifdef SYSROFF_p\n");
- break;
- case 'd':
- break;
- case 'g':
- printf("#ifdef SYSROFF_SWAP_OUT\n");
- break;
- case 'c':
- printf("#ifdef SYSROFF_PRINT\n");
- printf("#include <stdio.h>\n");
- printf("#include <stdlib.h>\n");
- printf("#include <ansidecl.h>\n");
- break;
- }
- }
- break;
-
- case 3:
-#line 75 "sysinfo.y"
- {
- switch (writecode) {
- case 'i':
- case 'p':
- case 'g':
- case 'c':
- printf("#endif\n");
- break;
- case 'd':
- break;
- }
-}
- break;
-
- case 6:
-#line 97 "sysinfo.y"
- {
- it = (yyvsp[-1].s); code = (yyvsp[0].i);
- switch (writecode)
- {
- case 'd':
- printf("\n\n\n#define IT_%s_CODE 0x%x\n", it,code);
- printf("struct IT_%s;\n", it);
- printf("extern void sysroff_swap_%s_in PARAMS ((struct IT_%s *));\n",
- (yyvsp[-1].s), it);
- printf("extern void sysroff_swap_%s_out PARAMS ((FILE *, struct IT_%s *));\n",
- (yyvsp[-1].s), it);
- printf("extern void sysroff_print_%s_out PARAMS ((struct IT_%s *));\n",
- (yyvsp[-1].s), it);
- printf("struct IT_%s { \n", it);
- break;
- case 'i':
- printf("void sysroff_swap_%s_in(ptr)\n",(yyvsp[-1].s));
- printf("struct IT_%s *ptr;\n", it);
- printf("{\n");
- printf("unsigned char raw[255];\n");
- printf("\tint idx = 0 ;\n");
- printf("\tint size;\n");
- printf("memset(raw,0,255);\n");
- printf("memset(ptr,0,sizeof(*ptr));\n");
- printf("size = fillup(raw);\n");
- break;
- case 'g':
- printf("void sysroff_swap_%s_out(file,ptr)\n",(yyvsp[-1].s));
- printf("FILE * file;\n");
- printf("struct IT_%s *ptr;\n", it);
- printf("{\n");
- printf("\tunsigned char raw[255];\n");
- printf("\tint idx = 16 ;\n");
- printf("\tmemset (raw, 0, 255);\n");
- printf("\tcode = IT_%s_CODE;\n", it);
- break;
- case 'o':
- printf("void sysroff_swap_%s_out(abfd,ptr)\n",(yyvsp[-1].s));
- printf("bfd * abfd;\n");
- printf("struct IT_%s *ptr;\n",it);
- printf("{\n");
- printf("int idx = 0 ;\n");
- break;
- case 'c':
- printf("void sysroff_print_%s_out(ptr)\n",(yyvsp[-1].s));
- printf("struct IT_%s *ptr;\n", it);
- printf("{\n");
- printf("itheader(\"%s\", IT_%s_CODE);\n",(yyvsp[-1].s),(yyvsp[-1].s));
- break;
-
- case 't':
- break;
- }
-
- }
- break;
-
- case 7:
-#line 154 "sysinfo.y"
- {
- switch (writecode) {
- case 'd':
- printf("};\n");
- break;
- case 'g':
- printf("\tchecksum(file,raw, idx, IT_%s_CODE);\n", it);
-
- case 'i':
-
- case 'o':
- case 'c':
- printf("}\n");
- }
-}
- break;
-
- case 12:
-#line 181 "sysinfo.y"
- {
- rdepth++;
- switch (writecode)
- {
- case 'c':
- if (rdepth==1)
- printf("\tprintf(\"repeat %%d\\n\", %s);\n",(yyvsp[0].s));
- if (rdepth==2)
- printf("\tprintf(\"repeat %%d\\n\", %s[n]);\n",(yyvsp[0].s));
- case 'i':
- case 'g':
- case 'o':
-
- if (rdepth==1)
- {
- printf("\t{ int n; for (n = 0; n < %s; n++) {\n", (yyvsp[0].s));
- }
- if (rdepth == 2) {
- printf("\t{ int m; for (m = 0; m < %s[n]; m++) {\n", (yyvsp[0].s));
- }
-
- break;
- }
-
- oldrepeat = repeat;
- repeat = (yyvsp[0].s);
- }
- break;
-
- case 13:
-#line 211 "sysinfo.y"
- {
- repeat = oldrepeat;
- oldrepeat =0;
- rdepth--;
- switch (writecode)
- {
- case 'i':
- case 'g':
- case 'o':
- case 'c':
- printf("\t}}\n");
- }
- }
- break;
-
- case 14:
-#line 228 "sysinfo.y"
- {
- switch (writecode)
- {
- case 'i':
- case 'g':
- case 'o':
- case 'c':
- printf("\tif (%s) {\n", (yyvsp[0].s));
- break;
- }
- }
- break;
-
- case 15:
-#line 241 "sysinfo.y"
- {
- switch (writecode)
- {
- case 'i':
- case 'g':
- case 'o':
- case 'c':
- printf("\t}\n");
- }
- }
- break;
-
- case 16:
-#line 255 "sysinfo.y"
- {name = (yyvsp[0].s); }
- break;
-
- case 17:
-#line 257 "sysinfo.y"
- {
- char *desc = (yyvsp[-8].s);
- char *type = (yyvsp[-6].s);
- int size = (yyvsp[-5].i);
- char *id = (yyvsp[-3].s);
-char *p = names[rdepth];
-char *ptr = pnames[rdepth];
- switch (writecode)
- {
- case 'g':
- if (size % 8)
- {
-
- printf("\twriteBITS(ptr->%s%s,raw,&idx,%d);\n",
- id,
- names[rdepth], size);
-
- }
- else {
- printf("\twrite%s(ptr->%s%s,raw,&idx,%d,file);\n",
- type,
- id,
- names[rdepth],size/8);
- }
- break;
- case 'i':
- {
-
- if (rdepth >= 1)
-
- {
- printf("if (!ptr->%s) ptr->%s = (%s*)xcalloc(%s, sizeof(ptr->%s[0]));\n",
- id,
- id,
- type,
- repeat,
- id);
- }
-
- if (rdepth == 2)
- {
- printf("if (!ptr->%s[n]) ptr->%s[n] = (%s**)xcalloc(%s[n], sizeof(ptr->%s[n][0]));\n",
- id,
- id,
- type,
- repeat,
- id);
- }
-
- }
-
- if (size % 8)
- {
- printf("\tptr->%s%s = getBITS(raw,&idx, %d,size);\n",
- id,
- names[rdepth],
- size);
- }
- else {
- printf("\tptr->%s%s = get%s(raw,&idx, %d,size);\n",
- id,
- names[rdepth],
- type,
- size/8);
- }
- break;
- case 'o':
- printf("\tput%s(raw,%d,%d,&idx,ptr->%s%s);\n", type,size/8,size%8,id,names[rdepth]);
- break;
- case 'd':
- if (repeat)
- printf("\t/* repeat %s */\n", repeat);
-
- if (type[0] == 'I') {
- printf("\tint %s%s; \t/* %s */\n",ptr,id, desc);
- }
- else if (type[0] =='C') {
- printf("\tchar %s*%s;\t /* %s */\n",ptr,id, desc);
- }
- else {
- printf("\tbarray %s%s;\t /* %s */\n",ptr,id, desc);
- }
- break;
- case 'c':
- printf("tabout();\n");
- printf("\tprintf(\"/*%-30s*/ ptr->%s = \");\n", desc, id);
-
- if (type[0] == 'I')
- printf("\tprintf(\"%%d\\n\",ptr->%s%s);\n", id,p);
- else if (type[0] == 'C')
- printf("\tprintf(\"%%s\\n\",ptr->%s%s);\n", id,p);
-
- else if (type[0] == 'B')
- {
- printf("\tpbarray(&ptr->%s%s);\n", id,p);
- }
- else abort();
- break;
- }
- }
- break;
-
- case 18:
-#line 362 "sysinfo.y"
- { (yyval.s) = (yyvsp[0].s); }
- break;
-
- case 19:
-#line 363 "sysinfo.y"
- { (yyval.s) = "INT";}
- break;
-
- case 20:
-#line 368 "sysinfo.y"
- { (yyval.s) = (yyvsp[-1].s); }
- break;
-
- case 21:
-#line 373 "sysinfo.y"
- { (yyval.i) = (yyvsp[-1].i) * (yyvsp[0].i); }
- break;
-
- case 22:
-#line 378 "sysinfo.y"
- { (yyval.s) = (yyvsp[-1].s); }
- break;
-
- case 23:
-#line 379 "sysinfo.y"
- { (yyval.s) = "dummy";}
- break;
-
- case 27:
-#line 387 "sysinfo.y"
- {
- switch (writecode)
- {
- case 'd':
- printf("#define %s %s\n", (yyvsp[-2].s),(yyvsp[-1].s));
- break;
- case 'c':
- printf("if (ptr->%s%s == %s) { tabout(); printf(\"%s\\n\");}\n", name, names[rdepth],(yyvsp[-1].s),(yyvsp[-2].s));
- }
- }
- break;
-
-
- default: break;
- }
-
-/* Line 1126 of yacc.c. */
-#line 1503 "sysinfo.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)
- {
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- char *yymsg = 0;
-# define YYERROR_VERBOSE_ARGS_MAXIMUM 5
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-#if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-#endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* 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 = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= yysize1 < yysize;
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
-
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= yysize1 < yysize;
- yysize = yysize1;
-
- if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
- yymsg = (char *) YYSTACK_ALLOC (yysize);
- if (yymsg)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yymsg;
- int yyi = 0;
- while ((*yyp = *yyf))
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- yyerror (yymsg);
- YYSTACK_FREE (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- goto yyexhaustedlab;
- }
- }
- else
-#endif /* YYERROR_VERBOSE */
- yyerror (YY_("syntax error"));
- }
-
-
-
- if (yyerrstatus == 3)
- {
- /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
- {
- /* Return failure if at end of input. */
- if (yychar == YYEOF)
- YYABORT;
- }
- else
- {
- yydestruct ("Error: discarding", yytoken, &yylval);
- yychar = YYEMPTY;
- }
- }
-
- /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
-
- /* Pacify compilers like GCC when the user code never invokes
- YYERROR and the label yyerrorlab therefore never appears in user
- code. */
- if (0)
- goto yyerrorlab;
-
-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;
-
-
- yydestruct ("Error: popping", yystos[yystate], yyvsp);
- YYPOPSTACK;
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- *++yyvsp = yylval;
-
-
- /* Shift the error token. */
- YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-
- yystate = yyn;
- goto yynewstate;
-
-
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-#ifndef yyoverflow
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
-yyexhaustedlab:
- yyerror (YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
-#endif
-
-yyreturn:
- if (yychar != YYEOF && yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
- while (yyssp != yyss)
- {
- yydestruct ("Cleanup: popping",
- yystos[*yyssp], yyvsp);
- YYPOPSTACK;
- }
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
-#endif
- return yyresult;
-}
-
-
-#line 402 "sysinfo.y"
-
-/* four modes
-
- -d write structure definitions for sysroff in host format
- -i write functions to swap into sysroff format in
- -o write functions to swap into sysroff format out
- -c write code to print info in human form */
-
-int yydebug;
-
-int
-main (int ac, char **av)
-{
- yydebug=0;
- if (ac > 1)
- writecode = av[1][1];
-if (writecode == 'd')
- {
- printf("typedef struct { unsigned char *data; int len; } barray; \n");
- printf("typedef int INT;\n");
- printf("typedef char * CHARS;\n");
-
- }
- yyparse();
-return 0;
-}
-
-static int
-yyerror (char *s)
-{
- fprintf(stderr, "%s\n" , s);
- return 0;
-}
-
diff --git a/binutils-2.17/binutils/sysinfo.h b/binutils-2.17/binutils/sysinfo.h
deleted file mode 100644
index a608d69f..00000000
--- a/binutils-2.17/binutils/sysinfo.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* A Bison parser, made by GNU Bison 2.1. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, 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 {
- COND = 258,
- REPEAT = 259,
- TYPE = 260,
- NAME = 261,
- NUMBER = 262,
- UNIT = 263
- };
-#endif
-/* Tokens. */
-#define COND 258
-#define REPEAT 259
-#define TYPE 260
-#define NAME 261
-#define NUMBER 262
-#define UNIT 263
-
-
-
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 39 "sysinfo.y"
-typedef union YYSTYPE {
- int i;
- char *s;
-} YYSTYPE;
-/* Line 1447 of yacc.c. */
-#line 59 "sysinfo.h"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-extern YYSTYPE yylval;
-
-
-
diff --git a/binutils-2.17/binutils/sysinfo.y b/binutils-2.17/binutils/sysinfo.y
deleted file mode 100644
index a7077480..00000000
--- a/binutils-2.17/binutils/sysinfo.y
+++ /dev/null
@@ -1,434 +0,0 @@
-/* Copyright 2001, 2003, 2005 Free Software Foundation, Inc.
- Written by Steve Chamberlain of Cygnus Support (steve@cygnus.com).
-
-This file is part of GNU binutils.
-
-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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-%{
-#include <stdio.h>
-#include <stdlib.h>
-
-static char writecode;
-static char *it;
-static int code;
-static char * repeat;
-static char *oldrepeat;
-static char *name;
-static int rdepth;
-static char *names[] = {" ","[n]","[n][m]"};
-static char *pnames[]= {"","*","**"};
-
-static int yyerror (char *s);
-extern int yylex (void);
-%}
-
-
-%union {
- int i;
- char *s;
-}
-%token COND
-%token REPEAT
-%token '(' ')'
-%token <s> TYPE
-%token <s> NAME
-%token <i> NUMBER UNIT
-%type <i> attr_size
-%type <s> attr_desc attr_id attr_type
-%%
-
-top: {
- switch (writecode)
- {
- case 'i':
- printf("#ifdef SYSROFF_SWAP_IN\n");
- break;
- case 'p':
- printf("#ifdef SYSROFF_p\n");
- break;
- case 'd':
- break;
- case 'g':
- printf("#ifdef SYSROFF_SWAP_OUT\n");
- break;
- case 'c':
- printf("#ifdef SYSROFF_PRINT\n");
- printf("#include <stdio.h>\n");
- printf("#include <stdlib.h>\n");
- printf("#include <ansidecl.h>\n");
- break;
- }
- }
-it_list {
- switch (writecode) {
- case 'i':
- case 'p':
- case 'g':
- case 'c':
- printf("#endif\n");
- break;
- case 'd':
- break;
- }
-}
-
- ;
-
-
-it_list: it it_list
- |
- ;
-
-it:
- '(' NAME NUMBER
- {
- it = $2; code = $3;
- switch (writecode)
- {
- case 'd':
- printf("\n\n\n#define IT_%s_CODE 0x%x\n", it,code);
- printf("struct IT_%s;\n", it);
- printf("extern void sysroff_swap_%s_in PARAMS ((struct IT_%s *));\n",
- $2, it);
- printf("extern void sysroff_swap_%s_out PARAMS ((FILE *, struct IT_%s *));\n",
- $2, it);
- printf("extern void sysroff_print_%s_out PARAMS ((struct IT_%s *));\n",
- $2, it);
- printf("struct IT_%s { \n", it);
- break;
- case 'i':
- printf("void sysroff_swap_%s_in(ptr)\n",$2);
- printf("struct IT_%s *ptr;\n", it);
- printf("{\n");
- printf("unsigned char raw[255];\n");
- printf("\tint idx = 0 ;\n");
- printf("\tint size;\n");
- printf("memset(raw,0,255);\n");
- printf("memset(ptr,0,sizeof(*ptr));\n");
- printf("size = fillup(raw);\n");
- break;
- case 'g':
- printf("void sysroff_swap_%s_out(file,ptr)\n",$2);
- printf("FILE * file;\n");
- printf("struct IT_%s *ptr;\n", it);
- printf("{\n");
- printf("\tunsigned char raw[255];\n");
- printf("\tint idx = 16 ;\n");
- printf("\tmemset (raw, 0, 255);\n");
- printf("\tcode = IT_%s_CODE;\n", it);
- break;
- case 'o':
- printf("void sysroff_swap_%s_out(abfd,ptr)\n",$2);
- printf("bfd * abfd;\n");
- printf("struct IT_%s *ptr;\n",it);
- printf("{\n");
- printf("int idx = 0 ;\n");
- break;
- case 'c':
- printf("void sysroff_print_%s_out(ptr)\n",$2);
- printf("struct IT_%s *ptr;\n", it);
- printf("{\n");
- printf("itheader(\"%s\", IT_%s_CODE);\n",$2,$2);
- break;
-
- case 't':
- break;
- }
-
- }
- it_field_list
-')'
-{
- switch (writecode) {
- case 'd':
- printf("};\n");
- break;
- case 'g':
- printf("\tchecksum(file,raw, idx, IT_%s_CODE);\n", it);
-
- case 'i':
-
- case 'o':
- case 'c':
- printf("}\n");
- }
-}
-;
-
-
-
-it_field_list:
- it_field it_field_list
- | cond_it_field it_field_list
- | repeat_it_field it_field_list
- |
- ;
-
-repeat_it_field: '(' REPEAT NAME
- {
- rdepth++;
- switch (writecode)
- {
- case 'c':
- if (rdepth==1)
- printf("\tprintf(\"repeat %%d\\n\", %s);\n",$3);
- if (rdepth==2)
- printf("\tprintf(\"repeat %%d\\n\", %s[n]);\n",$3);
- case 'i':
- case 'g':
- case 'o':
-
- if (rdepth==1)
- {
- printf("\t{ int n; for (n = 0; n < %s; n++) {\n", $3);
- }
- if (rdepth == 2) {
- printf("\t{ int m; for (m = 0; m < %s[n]; m++) {\n", $3);
- }
-
- break;
- }
-
- oldrepeat = repeat;
- repeat = $3;
- }
-
- it_field_list ')'
-
- {
- repeat = oldrepeat;
- oldrepeat =0;
- rdepth--;
- switch (writecode)
- {
- case 'i':
- case 'g':
- case 'o':
- case 'c':
- printf("\t}}\n");
- }
- }
- ;
-
-
-cond_it_field: '(' COND NAME
- {
- switch (writecode)
- {
- case 'i':
- case 'g':
- case 'o':
- case 'c':
- printf("\tif (%s) {\n", $3);
- break;
- }
- }
-
- it_field_list ')'
- {
- switch (writecode)
- {
- case 'i':
- case 'g':
- case 'o':
- case 'c':
- printf("\t}\n");
- }
- }
- ;
-
-it_field:
- '(' attr_desc '(' attr_type attr_size ')' attr_id
- {name = $7; }
- enums ')'
- {
- char *desc = $2;
- char *type = $4;
- int size = $5;
- char *id = $7;
-char *p = names[rdepth];
-char *ptr = pnames[rdepth];
- switch (writecode)
- {
- case 'g':
- if (size % 8)
- {
-
- printf("\twriteBITS(ptr->%s%s,raw,&idx,%d);\n",
- id,
- names[rdepth], size);
-
- }
- else {
- printf("\twrite%s(ptr->%s%s,raw,&idx,%d,file);\n",
- type,
- id,
- names[rdepth],size/8);
- }
- break;
- case 'i':
- {
-
- if (rdepth >= 1)
-
- {
- printf("if (!ptr->%s) ptr->%s = (%s*)xcalloc(%s, sizeof(ptr->%s[0]));\n",
- id,
- id,
- type,
- repeat,
- id);
- }
-
- if (rdepth == 2)
- {
- printf("if (!ptr->%s[n]) ptr->%s[n] = (%s**)xcalloc(%s[n], sizeof(ptr->%s[n][0]));\n",
- id,
- id,
- type,
- repeat,
- id);
- }
-
- }
-
- if (size % 8)
- {
- printf("\tptr->%s%s = getBITS(raw,&idx, %d,size);\n",
- id,
- names[rdepth],
- size);
- }
- else {
- printf("\tptr->%s%s = get%s(raw,&idx, %d,size);\n",
- id,
- names[rdepth],
- type,
- size/8);
- }
- break;
- case 'o':
- printf("\tput%s(raw,%d,%d,&idx,ptr->%s%s);\n", type,size/8,size%8,id,names[rdepth]);
- break;
- case 'd':
- if (repeat)
- printf("\t/* repeat %s */\n", repeat);
-
- if (type[0] == 'I') {
- printf("\tint %s%s; \t/* %s */\n",ptr,id, desc);
- }
- else if (type[0] =='C') {
- printf("\tchar %s*%s;\t /* %s */\n",ptr,id, desc);
- }
- else {
- printf("\tbarray %s%s;\t /* %s */\n",ptr,id, desc);
- }
- break;
- case 'c':
- printf("tabout();\n");
- printf("\tprintf(\"/*%-30s*/ ptr->%s = \");\n", desc, id);
-
- if (type[0] == 'I')
- printf("\tprintf(\"%%d\\n\",ptr->%s%s);\n", id,p);
- else if (type[0] == 'C')
- printf("\tprintf(\"%%s\\n\",ptr->%s%s);\n", id,p);
-
- else if (type[0] == 'B')
- {
- printf("\tpbarray(&ptr->%s%s);\n", id,p);
- }
- else abort();
- break;
- }
- }
-
- ;
-
-
-attr_type:
- TYPE { $$ = $1; }
- | { $$ = "INT";}
- ;
-
-attr_desc:
- '(' NAME ')'
- { $$ = $2; }
- ;
-
-attr_size:
- NUMBER UNIT
- { $$ = $1 * $2; }
- ;
-
-
-attr_id:
- '(' NAME ')' { $$ = $2; }
- | { $$ = "dummy";}
- ;
-
-enums:
- | '(' enum_list ')' ;
-
-enum_list:
- |
- enum_list '(' NAME NAME ')' {
- switch (writecode)
- {
- case 'd':
- printf("#define %s %s\n", $3,$4);
- break;
- case 'c':
- printf("if (ptr->%s%s == %s) { tabout(); printf(\"%s\\n\");}\n", name, names[rdepth],$4,$3);
- }
- }
-
- ;
-
-
-
-%%
-/* four modes
-
- -d write structure definitions for sysroff in host format
- -i write functions to swap into sysroff format in
- -o write functions to swap into sysroff format out
- -c write code to print info in human form */
-
-int yydebug;
-
-int
-main (int ac, char **av)
-{
- yydebug=0;
- if (ac > 1)
- writecode = av[1][1];
-if (writecode == 'd')
- {
- printf("typedef struct { unsigned char *data; int len; } barray; \n");
- printf("typedef int INT;\n");
- printf("typedef char * CHARS;\n");
-
- }
- yyparse();
-return 0;
-}
-
-static int
-yyerror (char *s)
-{
- fprintf(stderr, "%s\n" , s);
- return 0;
-}
diff --git a/binutils-2.17/binutils/syslex.c b/binutils-2.17/binutils/syslex.c
deleted file mode 100644
index 48aab40d..00000000
--- a/binutils-2.17/binutils/syslex.c
+++ /dev/null
@@ -1,1729 +0,0 @@
-/* A lexical scanner generated by flex */
-
-/* Scanner skeleton version:
- * $Header: /cvs/src/src/binutils/Attic/syslex.c,v 1.1.16.1 2006/04/16 18:36:41 drow Exp $
- */
-
-#define FLEX_SCANNER
-#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-
-#include <stdio.h>
-#include <errno.h>
-
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
-#endif
-
-
-#ifdef __cplusplus
-
-#include <stdlib.h>
-#ifndef _WIN32
-#include <unistd.h>
-#endif
-
-/* 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)
-
-typedef unsigned char YY_CHAR;
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-typedef int yy_state_type;
-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 25
-#define YY_END_OF_BUFFER 26
-static yyconst short int yy_accept[81] =
- { 0,
- 0, 0, 26, 25, 7, 8, 5, 25, 1, 2,
- 11, 11, 6, 3, 4, 25, 25, 25, 25, 25,
- 25, 25, 0, 9, 11, 0, 6, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 10, 0, 0,
- 13, 0, 0, 0, 0, 16, 0, 0, 0, 0,
- 0, 12, 15, 0, 23, 0, 0, 0, 0, 0,
- 0, 14, 18, 0, 0, 0, 0, 0, 17, 0,
- 24, 0, 0, 0, 20, 22, 0, 21, 19, 0
- } ;
-
-static yyconst int yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 1, 5, 1, 1, 1, 1, 1, 6,
- 7, 1, 1, 1, 1, 1, 1, 8, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 1, 10, 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,
- 11, 1, 12, 1, 1, 1, 13, 14, 15, 16,
-
- 17, 18, 19, 20, 21, 1, 1, 22, 1, 23,
- 24, 25, 1, 26, 27, 28, 29, 30, 1, 31,
- 32, 33, 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, 1, 1, 1, 1
- } ;
-
-static yyconst int yy_meta[34] =
- { 0,
- 1, 1, 2, 1, 1, 1, 1, 3, 3, 1,
- 1, 1, 3, 3, 3, 3, 3, 3, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1
- } ;
-
-static yyconst short int yy_base[84] =
- { 0,
- 0, 0, 100, 101, 101, 101, 101, 94, 101, 101,
- 26, 28, 0, 101, 101, 82, 26, 18, 74, 79,
- 78, 81, 88, 101, 32, 0, 0, 76, 65, 62,
- 61, 75, 20, 59, 61, 66, 58, 0, 57, 56,
- 54, 63, 53, 62, 54, 101, 59, 48, 53, 46,
- 59, 101, 44, 43, 101, 41, 55, 46, 53, 44,
- 31, 101, 101, 39, 27, 21, 39, 19, 101, 35,
- 101, 33, 26, 29, 101, 101, 28, 101, 101, 101,
- 58, 61, 41
- } ;
-
-static yyconst short int yy_def[84] =
- { 0,
- 80, 1, 80, 80, 80, 80, 80, 81, 80, 80,
- 80, 80, 82, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 81, 80, 80, 83, 82, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 83, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 0,
- 80, 80, 80
- } ;
-
-static yyconst short int yy_nxt[135] =
- { 0,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 4, 4, 4, 4, 4,
- 19, 4, 4, 4, 4, 20, 21, 4, 4, 22,
- 4, 4, 4, 25, 25, 25, 25, 32, 29, 25,
- 25, 33, 44, 38, 79, 78, 30, 77, 45, 76,
- 75, 74, 73, 72, 71, 70, 26, 31, 23, 23,
- 23, 27, 69, 27, 68, 67, 66, 65, 64, 63,
- 62, 61, 60, 59, 58, 57, 56, 55, 54, 53,
- 52, 51, 50, 49, 48, 47, 46, 43, 42, 41,
- 40, 39, 24, 37, 36, 35, 34, 28, 24, 80,
-
- 3, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80
- } ;
-
-static yyconst short int yy_chk[135] =
- { 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, 11, 11, 12, 12, 18, 17, 25,
- 25, 18, 33, 83, 77, 74, 17, 73, 33, 72,
- 70, 68, 67, 66, 65, 64, 11, 17, 81, 81,
- 81, 82, 61, 82, 60, 59, 58, 57, 56, 54,
- 53, 51, 50, 49, 48, 47, 45, 44, 43, 42,
- 41, 40, 39, 37, 36, 35, 34, 32, 31, 30,
- 29, 28, 23, 22, 21, 20, 19, 16, 8, 3,
-
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80
- } ;
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-#define YY_RESTORE_YY_MORE_OFFSET
-char *yytext;
-#line 1 "syslex.l"
-#define INITIAL 0
-#line 2 "syslex.l"
-/* Copyright 2001, 2003, 2005 Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-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 GLD; see the file COPYING. If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-02110-1301, USA. */
-
-#include "config.h"
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-#include "sysinfo.h"
-
-#define YY_NO_UNPUT
-
-#ifndef yywrap
-static int yywrap (void) { return 1; }
-#endif
-
-extern int yylex (void);
-#line 457 "syslex.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 \
- { \
- errno=0; \
- while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
- { \
- if( errno != EINTR) \
- { \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- break; \
- } \
- errno=0; \
- clearerr(yyin); \
- } \
- }
-#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 \
- YY_USER_ACTION
-
-YY_DECL
- {
- register yy_state_type yy_current_state;
- register char *yy_cp, *yy_bp;
- register int yy_act;
-
-#line 39 "syslex.l"
-
-#line 621 "syslex.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_match:
- do
- {
- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = 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 >= 81 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- ++yy_cp;
- }
- while ( yy_base[yy_current_state] != 101 );
-
-yy_find_action:
- yy_act = yy_accept[yy_current_state];
- if ( yy_act == 0 )
- { /* have to back up */
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- yy_act = yy_accept[yy_current_state];
- }
-
- YY_DO_BEFORE_ACTION;
-
-
-do_action: /* This label is used only to access EOF actions. */
-
-
- switch ( yy_act )
- { /* beginning of action switch */
- case 0: /* must back up */
- /* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = yy_hold_char;
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- goto yy_find_action;
-
-case 1:
-YY_RULE_SETUP
-#line 40 "syslex.l"
-{ return '(';}
- YY_BREAK
-case 2:
-YY_RULE_SETUP
-#line 41 "syslex.l"
-{ return ')';}
- YY_BREAK
-case 3:
-YY_RULE_SETUP
-#line 42 "syslex.l"
-{ return '[';}
- YY_BREAK
-case 4:
-YY_RULE_SETUP
-#line 43 "syslex.l"
-{ return ']';}
- YY_BREAK
-case 5:
-YY_RULE_SETUP
-#line 44 "syslex.l"
-{ ; }
- YY_BREAK
-case 6:
-YY_RULE_SETUP
-#line 45 "syslex.l"
-{ ; }
- YY_BREAK
-case 7:
-YY_RULE_SETUP
-#line 46 "syslex.l"
-{ ; }
- YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 47 "syslex.l"
-{ ; }
- YY_BREAK
-case 9:
-YY_RULE_SETUP
-#line 48 "syslex.l"
-{
- yylval.s = malloc (yyleng - 1);
- memcpy (yylval.s, yytext + 1, yyleng - 2);
- yylval.s[yyleng - 2] = '\0';
- return NAME;
- }
- YY_BREAK
-case 10:
-YY_RULE_SETUP
-#line 55 "syslex.l"
-{
- yylval.i = strtol(yytext,0,16);
- return NUMBER;
- }
- YY_BREAK
-case 11:
-YY_RULE_SETUP
-#line 60 "syslex.l"
-{
- yylval.i = atoi(yytext);
- return NUMBER;
- }
- YY_BREAK
-case 12:
-YY_RULE_SETUP
-#line 66 "syslex.l"
-{ yylval.i =1 ;return UNIT;}
- YY_BREAK
-case 13:
-YY_RULE_SETUP
-#line 67 "syslex.l"
-{ yylval.i = 1; return UNIT;}
- YY_BREAK
-case 14:
-YY_RULE_SETUP
-#line 68 "syslex.l"
-{ yylval.i= 8; return UNIT;}
- YY_BREAK
-case 15:
-YY_RULE_SETUP
-#line 69 "syslex.l"
-{ yylval.i = 8; return UNIT;}
- YY_BREAK
-case 16:
-YY_RULE_SETUP
-#line 71 "syslex.l"
-{ yylval.s = "INT"; return TYPE;}
- YY_BREAK
-case 17:
-YY_RULE_SETUP
-#line 72 "syslex.l"
-{ yylval.s = "BARRAY"; return TYPE;}
- YY_BREAK
-case 18:
-YY_RULE_SETUP
-#line 73 "syslex.l"
-{ yylval.s = "CHARS"; return TYPE;}
- YY_BREAK
-case 19:
-YY_RULE_SETUP
-#line 74 "syslex.l"
-{ yylval.i = 0; return NUMBER;}
- YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 75 "syslex.l"
-{ yylval.i = -4; return NUMBER;}
- YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 76 "syslex.l"
-{ yylval.i = -2; return NUMBER; }
- YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 77 "syslex.l"
-{ yylval.i = -1; return NUMBER; }
- YY_BREAK
-case 23:
-YY_RULE_SETUP
-#line 78 "syslex.l"
-{ return COND;}
- YY_BREAK
-case 24:
-YY_RULE_SETUP
-#line 79 "syslex.l"
-{ return REPEAT;}
- YY_BREAK
-case 25:
-YY_RULE_SETUP
-#line 80 "syslex.l"
-ECHO;
- YY_BREAK
-#line 840 "syslex.c"
-case YY_STATE_EOF(INITIAL):
- 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;
-
- 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);
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = 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 >= 81 )
- yy_c = yy_meta[(unsigned int) yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- }
-
- 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 char *yy_cp = yy_c_buf_p;
-
- register YY_CHAR yy_c = 1;
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = 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 >= 81 )
- 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 == 80);
-
- 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;
-
-
- yytext_ptr = yy_bp;
- yy_hold_char = *yy_cp;
- yy_c_buf_p = yy_cp;
- }
-#endif /* ifndef YY_NO_UNPUT */
-
-
-#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;
-
-
- return c;
- }
-
-
-#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 );
- }
-
-
-#ifndef _WIN32
-#include <unistd.h>
-#else
-#ifndef YY_ALWAYS_INTERACTIVE
-#ifndef YY_NEVER_INTERACTIVE
-extern int isatty YY_PROTO(( int ));
-#endif
-#endif
-#endif
-
-#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 80 "syslex.l"
diff --git a/binutils-2.17/binutils/syslex.l b/binutils-2.17/binutils/syslex.l
deleted file mode 100644
index 3a9306c4..00000000
--- a/binutils-2.17/binutils/syslex.l
+++ /dev/null
@@ -1,79 +0,0 @@
-%{
-/* Copyright 2001, 2003, 2005 Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-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 GLD; see the file COPYING. If not, write to the Free
-Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-02110-1301, USA. */
-
-#include "config.h"
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-#include "sysinfo.h"
-
-#define YY_NO_UNPUT
-
-#ifndef yywrap
-static int yywrap (void) { return 1; }
-#endif
-
-extern int yylex (void);
-%}
-%%
-"(" { return '(';}
-")" { return ')';}
-"[" { return '[';}
-"]" { return ']';}
-" " { ; }
-";".* { ; }
-"\t" { ; }
-"\n" { ; }
-"\""[^\"]*"\"" {
- yylval.s = malloc (yyleng - 1);
- memcpy (yylval.s, yytext + 1, yyleng - 2);
- yylval.s[yyleng - 2] = '\0';
- return NAME;
- }
-
-0x[0-9a-f]+ {
- yylval.i = strtol(yytext,0,16);
- return NUMBER;
- }
-
-[0-9]+ {
- yylval.i = atoi(yytext);
- return NUMBER;
- }
-
-
-"bits" { yylval.i =1 ;return UNIT;}
-"bit" { yylval.i = 1; return UNIT;}
-"bytes" { yylval.i= 8; return UNIT;}
-"byte" { yylval.i = 8; return UNIT;}
-
-"int" { yylval.s = "INT"; return TYPE;}
-"barray" { yylval.s = "BARRAY"; return TYPE;}
-"chars" { yylval.s = "CHARS"; return TYPE;}
-"variable" { yylval.i = 0; return NUMBER;}
-"counted" { yylval.i = -4; return NUMBER;}
-"addrsize" { yylval.i = -2; return NUMBER; }
-"segsize" { yylval.i = -1; return NUMBER; }
-"cond" { return COND;}
-"repeat" { return REPEAT;}
diff --git a/binutils-2.17/binutils/sysroff.info b/binutils-2.17/binutils/sysroff.info
deleted file mode 100644
index 390fe420..00000000
--- a/binutils-2.17/binutils/sysroff.info
+++ /dev/null
@@ -1,504 +0,0 @@
-("cs" 0x0
- (("size") (1 byte) ("size"))
-
- (("hd") (1 byte) ("hd"))
- (("hs") (1 byte) ("hs"))
- (("un") (1 byte) ("un"))
- (("us") (1 byte) ("us"))
-
- (("sc") (1 byte) ("sc"))
- (("ss") (1 byte) ("ss"))
- (("er") (1 byte) ("er"))
- (("ed") (1 byte) ("ed"))
-
- (("sh") (1 byte) ("sh"))
- (("ob") (1 byte) ("ob"))
- (("rl") (1 byte) ("rl"))
- (("du") (1 byte) ("du"))
-
- (("dps") (1 byte) ("dps"))
- (("dsy") (1 byte) ("dsy"))
- (("dty") (1 byte) ("dty"))
- (("dln") (1 byte) ("dln"))
-
- (("dso") (1 byte) ("dso"))
- (("dus") (1 byte) ("dus"))
- (("dss") (1 byte) ("dss"))
- (("dbt") (1 byte) ("dbt"))
-
- (("dpp") (1 byte) ("dpp"))
- (("dfp") (1 byte) ("dfp"))
- (("den") (1 byte) ("den"))
- (("dds") (1 byte) ("dds"))
-
- (("dar") (1 byte) ("dar"))
- (("dpt") (1 byte) ("dpt"))
- (("dul") (1 byte) ("dul"))
- (("dse") (1 byte) ("dse"))
-
- (("dot") (1 byte) ("dot")))
-
-
-("hd" 0x04
- (("module type") (4 bits) ("mt")
- (("MTYPE_ABS_LM" "0")
- ("MTYPE_REL_LM" "1")
- ("MTYPE_OMS_OR_LMS" "2")
- ("MTYPE_UNSPEC" "0xf")))
- (("spare")(4 bits) ("spare1"))
- (("creation date")( chars 12 bytes)( "cd"))
- (("number of units") (2 bytes) ("nu"))
- (("code") (1 byte) ("code"))
- (("version") (chars 4 bytes) ("ver"))
- (("address update") (1 byte) ("au"))
- (("segment identifier") (1 bit) ("si"))
- (("address field length") (4 bits) ("afl"))
- (("spare")(3 bits) ("spare2"))
- (("space size within segment") (1 byte) ("spcsz"))
- (("segment size") (1 byte) ("segsz"))
- (("segment shift") (1 byte) ("segsh"))
- (("entry point") (1 byte) ("ep"))
- (cond "ptr->ep"
- (cond "ptr->mt != MTYPE_ABS_LM"
- (("unit appearance number") (2 bytes) ("uan"))
- (("section appearance number") (2 bytes) ("sa")))
- (cond "segmented_p"
- (("segment address") (segsize bytes) ("sad")))
- (("address") (addrsize bytes) ("address")))
- (("os name") (chars variable bytes) ("os"))
- (("sys name") (chars variable bytes) ("sys"))
- (("module name") (chars variable bytes) ("mn"))
- (("cpu") (chars variable bytes) ("cpu")))
-
-
-("hs" 0x05
- (("neg number") (2 bytes) ("neg")))
-
-
-("un" 0x06
- (("format") (2 bits) ("format")
- (("FORMAT_LM" "0")
- ("FORMAT_OM" "1")
- ("FORMAT_OMS_OR_LMS" "2")))
- (("spare") (6 bits) ("spare1"))
- (("number of sections") (2 bytes) ("nsections"))
- (("number of external refs") (2 bytes) ("nextrefs"))
- (("number of external defs") (2 bytes) ("nextdefs"))
- (("unit name") (chars variable byte) ("name"))
- (("tool name") (chars variable byte) ("tool"))
- (("creation date") (chars 12 bytes) ("tcd"))
- (("linker name") (chars variable byte) ("linker"))
- (("creation date") (chars 12 bytes) ("lcd")))
-
-
-("us" 0x07
- (("negotiation number") (2 bytes) ("neg")))
-
-
-("sc" 0x08
- (("format") (2 bits) ("format"))
- (("spare") (6 bits) ("spare"))
- (("segment address") (segsize bytes) ("segadd"))
- (("address") (addrsize bytes) ("addr"))
- (("length") (addrsize bytes) ("length"))
- (("alignment") (addrsize bytes) ("align"))
- (("contents") (4 bits) ("contents")
- (("CONTENTS_CODE" "0")
- ("CONTENTS_DATA" "1")
- ("CONTENTS_STACK" "2")
- ("CONTENTS_DUMMY" "3")
- ("CONTENTS_SPECIAL" "4")
- ("CONTENTS_NONSPEC" "0xf")))
- (("concat") (4 bits) ("concat")
- (("CONCAT_SIMPLE" "0")
- ("CONCAT_SHAREDC" "1")
- ("CONCAT_DUMMY" "2")
- ("CONCAT_GROUP" "3")
- ("CONCAT_SHARED" "4")
- ("CONCAT_PRIVATE" "5")
- ("CONCAT_UNSPEC" "0xf")))
- (("read") (2 bits) ("read"))
- (("write") (2 bits) ("write"))
- (("exec") (2 bits) ("exec"))
- (("initialized") (2 bits) ("init"))
- (("mode") (2 bits) ("mode"))
- (("spare") (6 bits) ("spare1"))
- (("name") (chars variable byte) ("name")))
-
-
-("ss" 0x09
- (("neg number") (2 bytes) ("neg")))
-
-
-("er" 0x0c
- (("symbol type") (2 bits) ("type")
- (("ER_ENTRY" "0")
- ("ER_DATA" "1")
- ("ER_NOTDEF" "2")
- ("ER_NOTSPEC" "3")))
- (("spare") (6 bits) ("spare"))
- (("symbol name") (chars variable byte) ("name")))
-
-
-("ed" 0x14
- (("section appearance number") (2 bytes) ("section"))
- (("symbol type") (3 bits) ("type")
- (("ED_TYPE_ENTRY" "0")
- ("ED_TYPE_DATA" "1")
- ("ED_TYPE_CONST" "2")
- ("ED_TYPE_NOTSPEC" "7")))
- (("spare") (5 bits) ("spare"))
- (cond "ptr->type==ED_TYPE_ENTRY || ptr->type==ED_TYPE_DATA"
- (("symbol address") (addrsize bytes) ("address")))
- (cond "ptr->type==ED_TYPE_CONST"
- (("constant value") (addrsize bytes) ("constant")))
- (("symbol name") (chars variable byte) ("name")))
-
-
-("sh" 0x1a
- (("unit appearance number") (2 bytes) ("unit"))
- (("section appearance number") (2 bytes) ("section")))
-
-
-("ob" 0x1c
- (("starting address flag") (1 bit) ("saf"))
- (("compression flag") (1 bit) ("cpf"))
- (("spare") (6 bits) ("spare"))
- (cond "ptr->saf"
- ( ("starting address") (addrsize bytes) ("address")))
- (cond "ptr->cpf"
- (("comp reps") (addrsize bytes) ("compreps")))
- (("data") (barray counted byte) ("data")))
-
-
-("rl" 0x20
- (("boundary of relocatable area") (4 bits) ("boundary"))
- (("address polarity") (1 bit) ("apol"))
- (("segment number") (1 bit) ("segment"))
- (("sign of relocation") (1 bit) ("sign"))
- (("check range") (1 bit) ("check"))
- (("reloc address") (addrsize bytes) ("addr"))
-
- (("bit loc") (1 byte) ("bitloc"))
- (("field length") (1 byte) ("flen"))
- (("bcount") (1 byte) ("bcount"))
- (("operator") (1 byte) ("op")
- (("OP_RELOC_ADDR" "1")
- ("OP_SEC_REF" "0")
- ("OP_EXT_REF" "2")))
- (cond "ptr->op == OP_EXT_REF"
- (("symbol number") (2 bytes) ("symn")) )
-
- (cond "ptr->op == OP_SEC_REF"
- (("section number") (2 bytes) ("secn"))
- (("const opcode") (1 byte) ("copcode_is_3"))
- (("addend length") (1 byte) ("alength_is_4"))
- (("addend") (4 byte) ("addend"))
- (("plus opcode") (1 byte) ("aopcode_is_0x20")))
-
- (cond "ptr->op == OP_RELOC_ADDR"
- (("dunno") (2 bytes) ("dunno")))
-
- (("end") (1 byte) ("end")))
-
-
-("du" 0x30
- (("format") (2 bits) ("format"))
- (("optimized") (1 bit) ("optimized"))
- (("stackfrmt") (2 bits) ("stackfrmt"))
- (("spare") (3 bits) ("spare"))
- (("unit number") (2 bytes) ("unit"))
- (("sections") (2 bytes) ("sections"))
- (repeat "ptr->sections"
- (("section appearance number") (2 bytes) ("san"))
- (("address") (addrsize bytes) ("address"))
- (("section length") (addrsize bytes) ("length")))
- (("tool name") (chars variable byte) ("tool"))
- (("creation date") (chars 12 bytes) ("date")))
-
-
-("dsy" 0x34
- (("symbol type") (7 bits) ("type")
- (("STYPE_VAR" "0")
- ("STYPE_LAB" "1")
- ("STYPE_PROC" "2")
- ("STYPE_FUNC" "3")
- ("STYPE_TYPE" "4")
- ("STYPE_CONST" "5")
- ("STYPE_ENTRY" "6")
- ("STYPE_MEMBER" "7")
- ("STYPE_ENUM" "8")
- ("STYPE_TAG" "9")
- ("STYPE_PACKAGE" "10")
- ("STYPE_GENERIC" "11")
- ("STYPE_TASK" "12")
- ("STYPE_EXCEPTION" "13")
- ("STYPE_PARAMETER" "14")
- ("STYPE_EQUATE" "15")
- ("STYPE_UNSPEC" "0x7f")))
- (("assignment info") (1 bit) ("assign"))
- (("symbol id") (2 bytes) ("snumber"))
- (("symbol name") (chars variable bytes) ("sname"))
- (("nesting level") (2 bytes) ("nesting"))
- (cond "ptr->assign"
- (("assignment type") (1 byte) ("ainfo")
- (("AINFO_REG" "1")
- ("AINFO_STATIC_EXT_DEF" "2")
- ("AINFO_STATIC_EXT_REF" "3")
- ("AINFO_STATIC_INT" "4")
- ("AINFO_STATIC_COM" "5")
- ("AINFO_AUTO" "6")
- ("AINFO_CONST" "7")
- ("AINFO_UNSPEC" "0xff")))
- (("data length") (addrsize bytes) ("dlength"))
- (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF
- || ptr->ainfo == AINFO_STATIC_INT
- || ptr->ainfo == AINFO_STATIC_COM"
- (("section number") (2 bytes) ("section")))
- (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF
- || ptr->ainfo == AINFO_STATIC_INT
- || ptr->ainfo == AINFO_STATIC_COM
- || ptr->ainfo == AINFO_AUTO"
- (("address") (addrsize bytes) ("address")))
- (cond "ptr->ainfo == AINFO_REG"
- (("register name") (chars variable bytes) ("reg")))
- (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF
- || ptr->ainfo == AINFO_STATIC_EXT_REF"
- (("external name") (chars variable bytes) ("ename")))
- (cond "ptr->ainfo == AINFO_CONST"
- (("constant") (chars variable bytes) ("constant"))))
- (cond "ptr->type == STYPE_MEMBER"
- (("assignment unit") (1 bit) ("bitunit"))
- (("spare") (7 bits) ("spare2"))
- (("field length") (addrsize bytes) ("field_len"))
- (("field offset") (addrsize bytes) ("field_off"))
- (cond "ptr->bitunit"
- (("bit offset") (addrsize bytes) ("field_bitoff"))))
- (cond "ptr->type== STYPE_ENUM"
- (("value length") (1 byte) ("evallen"))
- (("value") (4 bytes) ("evalue")))
- (cond "ptr->type == STYPE_CONST"
- (("value") (chars variable bytes) ("cvalue")))
- (cond "ptr->type == STYPE_EQUATE"
- (("value length") (1 byte) ("qvallen"))
- (("value") (4 bytes) ("qvalue"))
- (("basic type") (1 byte) ("btype"))
- (("size information") (addrsize bytes) ("sizeinfo"))
- (("sign") (2 bits) ("sign"))
- (("floating point type") (6 bits) ("flt_type")))
- (("source file number") (2 bytes) ("sfn"))
- (("source line number") (2 bytes) ("sln"))
- (("negotiation number") (2 bytes) ("neg"))
- (cond "ptr->type == STYPE_TAG"
- (("magic") (1 byte) ("magic"))))
-
-
-
-("dul" 0x52
- (("max declaration type flag") (1 bit) ("max_variable"))
- (("max spare") (7 bits) ("maxspare"))
- (cond "ptr->max_variable == 0"
- (("maximum") (addrsize bytes) ("max"))
- (("max mode") (chars variable bytes) ("maxmode")))
-
- (("min declaration type flag") (1 bit) ("min_variable"))
- (("min spare") (7 bits) ("minspare"))
- (cond "ptr->min_variable == 0"
- (("minimum") (addrsize bytes) ("min"))
- (("min mode") (chars variable bytes) ("minmode"))))
-
-
-("dty" 0x36
- (("end flag") (1 bit) ("end"))
- (("spare") (7 bits) ("spare"))
- (cond "!ptr->end"
- (("negotiation") (2 bytes) ("neg"))))
-
-
-("dbt" 0x44
- (("basic type") (1 byte) ("btype")
- (("BTYPE_VOID" "0")
- ("BTYPE_UNDEF" "1")
- ("BTYPE_CHAR" "2")
- ("BTYPE_INT" "3")
- ("BTYPE_FLOAT" "4")
- ("BTYPE_BIT" "5")
- ("BTYPE_STRING" "6")
- ("BTYPE_DECIMAL" "7")
- ("BTYPE_ENUM" "8")
- ("BTYPE_STRUCT" "9")
- ("BTYPE_TYPE" "10")
- ("BTYPE_TAG" "11")
- ("BTYPE_UNSPEC" "0xff")))
- (("size info") (addrsize bytes) ("bitsize"))
- (("sign") (2 bits) ("sign")
- (("SIGN_SIGNED" "0")
- ("SIGN_UNSIGNED" "1")
- ("SIGN_UNSPEC" "3")))
- (("floating point type") (6 bits) ("fptype")
- (("FPTYPE_SINGLE" "0")
- ("FPTYPE_DOUBLE" "1")
- ("FPTYPE_EXTENDED" "2")
- ("FPTYPE_NOTSPEC" "0x3f")))
- (cond "ptr->btype==BTYPE_TAG || ptr->btype == BTYPE_TYPE"
- (("symbol id") (2 bytes) ("sid")))
- (("negotiation") (2 bytes) ("neg")))
-
-("dar" 0x4e
- (("element length" ) (addrsize bytes) ("length"))
- (("dims") (1 byte) ("dims"))
- (repeat "ptr->dims"
- (("variable flag") (1 bit) ("variable")
- (("VARIABLE_FIXED" "0")
- ("VARIABLE_VARIABLE" "1")))
-
- (("subscript type") (1 bit) ("subtype")
- (("SUB_INTEGER" "0")
- ("SUB_TYPE" "1")))
-
- (("spare") (6 bits) ("spare"))
-
- (cond "ptr->subtype[n] == SUB_TYPE"
- (("sub symbol id") (2 bytes) ("sid")))
-
- (cond "ptr->subtype[n] == SUB_INTEGER"
- (("max declaration type flag") (1 bit) ("max_variable"))
- (("max spare") (7 bits) ("maxspare"))
- ;; FIXME: next field should be conditional on max_variable,
- (("maximum") (addrsize bytes) ("max"))
-
- (("min declaration type flag") (1 bit) ("min_variable"))
- (("min spare") (7 bits) ("minspare"))
- ;; FIXME: next field should be conditional on min_variable
- (("minimum") (addrsize bytes) ("min"))))
- (("negotiation") (2 bytes) ("neg")))
-
-
-("dso" 0x3a
- (("function name") (2 bytes) ("sid"))
- (("sp update count") (4 bytes) ("spupdates"))
- (repeat "ptr->spupdates"
- (("update address") (addrsize bytes) ("address"))
- (("offset") (addrsize bytes) ("offset"))))
-
-("dln" 0x38
- (("number of lines") (2 bytes) ("nln"))
- (repeat "ptr->nln"
- (("source file number") (2 bytes) ("sfn"))
- (("source line number") (2 bytes) ("sln"))
- (("section number") (2 bytes) ("section"))
- (("from address") (addrsize bytes) ("from_address"))
- (("to address") (addrsize bytes) ("to_address"))
- (("call count") (2 bytes) ("cc"))
- )
- (("neg") (2 bytes) ("neg")))
-
-("dpp" 0x46
- (("start/end") (1 bit) ("end"))
- (("spare") (7 bits) ("spare"))
- (cond "!ptr->end"
- (("params") (1 byte) ("params"))
- (("neg number") (2 bytes) ("neg"))))
-
-("den" 0x4a
- (("start/end") (1 bit) ("end"))
- (("spare") (7 bits) ("spare"))
- (cond "!ptr->end"
- (("neg number") (2 bytes) ("neg"))))
-
-("dfp" 0x48
- (("start/end flag") (1 bit) ("end"))
- (("spare") (7 bits) ("spare"))
- (cond "!ptr->end"
- (("number of parameters") (1 byte) ("nparams"))
- (("neg number") (2 bytes) ("neg"))))
-
-("dds" 0x4c
- (("start/end") (1 bit) ("end"))
- (("spare") (7 bits) ("spare"))
- (cond "!ptr->end"
- (("neg number") (2 bytes) ("neg"))))
-
-("dpt" 0x50
- (("neg number") (2 bytes) ("neg"))
- (("dunno") (1 byte) ("dunno")))
-
-("dse" 0x54
- (("neg number") (2 bytes) ("neg"))
- (("dunno") (1 byte) ("dunno")))
-
-("dot" 0x56
- (("unknown") (1 byte) ("unknown")))
-; FIXME: unknown field should be repeated symbol number?
-
-
-("dss" 0x42
- (("type") (1 byte) ("type"))
- (("external/internal") (1 bit) ("internal"))
- (("spare") (7 bits) ("spare"))
- (cond "!ptr->internal"
- ( ("package name") (chars variable byte) ("package")))
- (cond "ptr->internal"
- (("symbol id") (2 bytes) ("id")))
- (("record type") (2 bytes) ("record"))
- (("rules") (chars variable byte) ("rules"))
- (("number of symbols") (2 bytes) ("nsymbols"))
- (("unknown" ) (2 bytes) ("fixme")))
-
-("pss" 0x40
- (("negotiation number") (2 bytes) ("efn"))
- (("number of source files") (2 bytes) ("ns"))
- (repeat "ptr->ns"
- (("directory reference bit") (1 bit) ("drb"))
- (("spare") (7 bits) ("spare"))
- (("completed file name") (chars variable byte) ("fname"))
- (cond "ptr->drb[n]"
- (("directory apperance number") (2 bytes) ("dan"))))
-
- (("number of directories") (2 bytes) ("ndir"))
- (repeat "ptr->ndir"
- (("directory name") (chars variable bytes) ("dname"))))
-
-
-; FIXME: the tr block has no contents. sysinfo, etc. aren't prepared
-; to deal with that.
-; ("tr" 0x7f)
-
-
-("dus" 0x40
- (("negotiation number") (2 bytes) ("efn"))
- (("number of source files") (2 bytes) ("ns"))
- (repeat "ptr->ns"
- (("directory reference bit") (1 bit) ("drb"))
- (("spare") (7 bits) ("spare"))
- (("completed file name") (chars variable byte) ("fname"))
- (cond "ptr->drb[n]"
- (("directory apperance number") (2 bytes) ("dan"))))
- (("number of directories") (2 bytes) ("ndir"))
- (repeat "ptr->ndir"
- (("directory name") (chars variable bytes) ("dname"))))
-
-
-("dps" 0x32
- (("start/end flag") (1 bit) ("end"))
- (("block type") (7 bits) ("type")
- (("BLOCK_TYPE_COMPUNIT" "0")
- ("BLOCK_TYPE_PROCEDURE" "2")
- ("BLOCK_TYPE_FUNCTION" "3")
- ("BLOCK_TYPE_BLOCK" "4")
- ("BLOCK_TYPE_BASIC" "9")))
- (cond "!ptr->end"
- (("optimization") (1 byte) ("opt"))
- (("section number") (2 bytes) ("san"))
- (("address") (addrsize bytes) ("address"))
- (("block size") (addrsize bytes) ("block_size"))
- (("nesting") (1 byte) ("nesting"))
- (cond "ptr->type == BLOCK_TYPE_PROCEDURE
- || ptr->type == BLOCK_TYPE_FUNCTION"
- (("return address") (1 bit) ("retaddr"))
- (("interrupt function flag") (1 bit) ("intrflag"))
- (("stack update flag") (1 bit) ("stackflag"))
- (("intra page JMP") (1 bit) ("intrpagejmp"))
- (("spare") (4 bits) ("spare")))
- (("neg number") (2 bytes) ("neg"))))
-
diff --git a/binutils-2.17/binutils/testsuite/ChangeLog b/binutils-2.17/binutils/testsuite/ChangeLog
deleted file mode 100644
index a7e6ad6d..00000000
--- a/binutils-2.17/binutils/testsuite/ChangeLog
+++ /dev/null
@@ -1,158 +0,0 @@
-2006-04-10 H.J. Lu <hongjiu.lu@intel.com>
-
- * lib/utils-lib.exp (default_binutils_run): Check exit status.
-
-2005-12-24 Ben Elliston <bje@gnu.org>
-
- * config/default.exp: Do not load the unneeded util-defs.exp.
-
-2005-11-15 Jan Beulich <jbeulich@novell.com>
-
- * config/default.exp (link_or_copy): New. Use it for setting
- up assembler and linker for the compiler to use.
-
-2005-10-20 H.J. Lu <hongjiu.lu@intel.com>
-
- PR ld/251
- * binutils-all/group.s: New file.
-
- * binutils-all/objcopy.exp (objcopy_test_readelf): New
- procedure.
- Use it to test ELF group.
-
-2005-10-19 H.J. Lu <hongjiu.lu@intel.com>
-
- PR ld/1487
- * binutils-all/objcopy.exp (objcopy_test): New procedure.
- Use it to test simple copy, ia64 link order and ELF unknown
- section type.
-
- * binutils-all/unknown.s: New file.
-
-2005-10-19 H.J. Lu <hongjiu.lu@intel.com>
-
- PR binutils/1321
- * binutils-all/link-order.s: New.
-
- * binutils-all/objcopy.exp: Check ia64 link order.
-
-2005-10-11 Danny Smith <dannysmith@users.sourceforge.net>
-
- * binutils-all/windres/escapex-2.rc: New file.
- * binutils-all/windres/escapex-2.rsd: Generate.
-
-2005-08-26 Christian Groessler <chris@groessler.org>
-
- * binutils-all/objcopy.exp: Don't setup_xfail "z8*-*".
-
-2005-08-18 Alan Modra <amodra@bigpond.net.au>
-
- * binutils-all/objcopy.exp: Remove a29k support.
- * binutils-all/objdump.exp: Likewise, alliant and convex too.
-
-2005-05-07 Nick Clifton <nickc@redhat.com>
-
- * Update the address and phone number of the FSF organization in
- the GPL notices in the following files:
- binutils-all/ar.exp, binutils-all/dlltool.exp,
- binutils-all/nm.exp, binutils-all/objcopy.exp,
- binutils-all/objdump.exp, binutils-all/readelf.exp,
- binutils-all/size.exp, binutils-all/hppa/objdump.exp,
- binutils-all/m68k/objdump.exp, binutils-all/vax/objdump.exp,
- binutils-all/windres/msupdate, binutils-all/windres/windres.exp,
- config/default.exp, lib/utils-lib.exp
-
-2005-04-04 Jan-Benedict Glaw <jbglaw@lug-owl.>
-
- * binutils-all/vax/objdump.exp: Condense the two tests into one
- and add a "-M entry:" for the second label.
-
-2005-03-29 Jan-Benedict Glaw <jbglaw@lug-owl.de>
-
- * binutils-all/vax: New directory.
- * binutils-all/vax/objdump.exp: New script. Test the -Mentry:
- switch added to the VAX disassembler.
- * binutils-all/vax/entrymask.s: New assembler source file.
-
-2005-03-08 Ben Elliston <bje@au.ibm.com>
-
- * config/default.exp: Remove send_user call for stray output.
-
-2005-01-04 Martin Koegler <mkoegler@auto.tuwien.ac.at>
-
- * binutils-all/testprog.c: Add prototype for printf() and make
- type of "string" array be "char" in order to avoid compile time
- warnings.
-
-2004-12-31 Alan Modra <amodra@bigpond.net.au>
-
- * binutils-all/readelf.ss: Allow for both .rel and .rela sections.
-
-2004-11-04 Hans-Peter Nilsson <hp@axis.com>
-
- * binutils-all/objdump.exp (cpus_expected): Append cris.
-
-2004-10-28 H.J. Lu <hongjiu.lu@intel.com>
-
- * binutils-all/dlltool.exp: Set XFAIL if $target_xfail is yes.
-
-2004-10-23 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
-
- * binutils-all/alias.def: New file.
- * binutils-all/dlltool.exp: Two new -p tests.
- * config/default.exp (dlltool_gas_flag): New variable.
- Copy gas and lds executables into tmpdir/gas directory rather than
- making symlinks which might not be supported by the host OS.
- Attempt to handle the case where the host OS does not use the .exe
- extension but the target OS does.
- * lib/utils-lib.exp (exe_ext): New procedure.
-
-2004-07-12 Nick Clifton <nickc@redhat.com>
-
- * binutils-all/dlltool.exp: Check that the -p switch is not
- rejected.
-
-2004-07-09 Andreas Schwab <schwab@suse.de>
-
- * binutils-all/m68k/movem.s: New file.
-
- * binutils-all/m68k/objdump.exp: New file.
-
-2004-05-15 Nick Clifton <nickc@redhat.com>
-
- * binutils-all/readelf.ss: Allow for ARM mapping symbols.
-
-2004-05-12 Ben Elliston <bje@au.ibm.com>
-
- * binutils-all/ar.exp: Remove stray semicolons.
- * binutils-all/dlltool.exp: Likewise.
- * binutils-all/objcopy.exp: Likewise.
- * binutils-all/readelf.exp: Likewise.
- * binutils-all/windres/windres.exp: Likewise.
- * lib/utils-lib.exp: Likewise.
-
-2004-04-14 Richard Sandiford <rsandifo@redhat.com>
-
- * binutils-all/readelf.ss-mips: Allow named section symbols.
-
-2004-03-30 Jakub Jelinek <jakub@redhat.com>
-
- * binutils-all/objcopy.exp: Accept main as a data symbol as well.
-
-2004-02-27 Andreas Schwab <schwab@suse.de>
-
- * binutils-all/ar.exp (argument_parsing): New test.
-
-2004-02-20 Nathan Sidwell <nathan@codesourcery.com>
-
- * binutils-all/objcopy.exp: Reorder arguments for POSIXLY_CORRECT
- systems.
-
-For older changes see ChangeLog-9303
-
-Local Variables:
-mode: change-log
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/binutils-2.17/binutils/testsuite/ChangeLog-9303 b/binutils-2.17/binutils/testsuite/ChangeLog-9303
deleted file mode 100644
index 50b4e336..00000000
--- a/binutils-2.17/binutils/testsuite/ChangeLog-9303
+++ /dev/null
@@ -1,1044 +0,0 @@
-2003-12-03 Nick Clifton <nickc@redhat.com>
-
- * binutils-all/objdump.exp (cpus_expected): Add "msp".
-
-2003-10-06 Dave Brolley <brolley@redhat.com>
-
- * binutils-all/objdump.exp (cpu_expected): Add fr550.
-
-2003-09-29 H.J. Lu <hongjiu.lu@intel.com>
-
- * binutils-all/readelf.exp: Use is_elf_format.
-
- * binutils-all/readelf.h: Support IA64/ILP32.
- * binutils-all/readelf.s: Likewise.
- * binutils-all/readelf.ss: Likewise.
-
- * lib/utils-lib.exp (proc is_elf_format): Copy from ld
- testsuite. Add ia64-*-hpux*.
-
-2003-06-29 Danny Smith <dannysmith@users.sourceforge.net>
-
- * binutils-all/objcopy.exp: Initialise $test_prog to
- testprog.exe on mingw targeted systems too.
-
-2003-06-28 Danny Smith <dannysmith@users.sourceforge.net>
-
- * binutils-all/windres/checkbox.rc: New file.
- * binutils-all/windres/checkbox.rsd: New file.
- * binutils-all/windres/combobox.rc: New file.
- * binutils-all/windres/combobox.rsd: New file.
- * binutils-all/windres/edittext.rc: New file.
- * binutils-all/windres/edittext.rsd: New file.
- * binutils-all/windres/listbox.rc: New file.
- * binutils-all/windres/listbox.rsd: New file.
- * binutils-all/windres/scrollbar.rc: New file.
- * binutils-all/windres/scrollbar.rsd: New file.
-
-2003-06-27 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * binutils-all/readelf.ss-tmips: Adjust symbol indices.
-
-2003-06-19 Nick Clifton <nickc@redhat.com>
-
- * binutils-all/objcopy.exp: Replace occurances of testprog with
- $test_prog. Initialise this variable to testprog.exe on Cygwin
- targeted systems.
-
-2003-04-26 Nick Clifton <nickc@redhat.com>
-
- * binutils-all/readelf.exp (prune_read_warnings): Rename to
- prune_readelf_wi_warnings.
- (readelf_wi_test): New proc: Test 'readelf -wi' by grepping
- through its output.
- Replace invocation of "readelf_test -wi" with "readelf_wi_test"
- * binutils-all/readelf.wi: Delete.
-
-2003-04-23 Nick Clifton <nickc@redhat.com>
-
- * binutils-all/readelf.exp (proc prune_readelf_warnings): New
- function.
- (proc readelf_test): Prune warning messages.
- (readelf_test -wi): Add more expected failures.
- * binutils-all/readelf.wi: Severly reduce expected output.
- * binutils-all/testprog.c (string): Explicitly use unsigned
- chars.
- (stdio.h, string.h): Remove inclusion.
-
-2003-04-23 J"orn Rennecke <joern.rennecke@superh.com>
-
- * binutils-all/readelf.wi: Update.
-
-2003-04-22 Dimitrie O. Paun <dpaun@rogers.com>
-
- * binutils-all/windres/windres.exp: Add test for the new -J
- option. Remove use of -I as it now generates a warning message.
-
-2003-04-03 Nick Clifton <nickc@redhat.com>
-
- * binutils-all/windres/dialogid.rc: Replace "Static" with
- "classname" so that compilation will match behaviour of the
- Windows resource compiler.
-
-2003-03-31 Nick Clifton <nickc@redhat.com>
-
- * binutils-all/windres/dialogid.rc: New test source file.
- * binutils-all/windres/dialogid.rsd: New test expected results.
-
-2002-11-07 Casper S. Hornstrup <chorns@users.sourceforge.net>
-
- * binutils-all/dlltool.exp: New file for testing dlltool.
- * binutils-all/fastcall.def: New file for testing fastcall
- exports.
- * config/default.exp: Set DLLTOOL variable.
-
-2002-08-27 Alan Modra <amodra@bigpond.net.au>
-
- * binutils-all/objcopy.exp: Revert last change.
-
-2002-08-26 Alan Modra <amodra@bigpond.net.au>
-
- * binutils-all/objcopy.exp (strip_test): Adjust for "no symbols" on
- stdout.
- (strip_executable): Likewise.
-
-2002-08-13 Alan Modra <amodra@bigpond.net.au>
-
- * binutils-all/objdump.exp (cpus_expected): Add fr500, ip2022,
- tic80, tms320c30.
- * binutils-all/objcopy.exp (simple copy): Revise xfails.
-
-2002-05-29 Alan Modra <amodra@bigpond.net.au>
-
- * binutils-all/objcopy.exp (strip_test_with_saving_a_symbol):
- Revert 2001-11-15. Instead allow `D main'.
-
-2002-04-16 Eric Kohl <ekohl@rz-online.de>
-
- * binutils-all/windres/dialog0.rc: New test case: Check default
- attributes for dialogs
- * binutils-all/windres/dialog0.rsd: New file: Expected output.
- * binutils-all/windres/dialog1.rc: New test case: Check
- DISCARDABLE flag is propogated.
- * binutils-all/windres/dialog1.rsd: New file: Expected output.
-
-2002-04-15 Eric Kohl <ekohl@rz-online.de>
-
- * binutils-all/windres/dlgfont.rc: New test case: Checks FONT
- statement in DIALOG and DIALOGEX resources.
- * binutils-all/windres/dlgfont.rsd: Expected output.
-
-2002-04-11 Nick Clifton <nickc@cambridge.redhat.com>
-
- * binutils-all/ar.exp (long_filenames): Use 'file delete' instead
- of 'exec rm -f'.
-
-2002-04-10 Nick Clifton <nickc@cambridge.redhat.com>
-
- * binutils-all/ar.exp (long_filenames): Delete the abc... files
- upon successfully completion of the test.
-
- * binutils-all/windres/capstyle.rsd: Regenerate using MSVC.
- * binutils-all/windres/deflang.rsd: Regenerate using MSVC.
- * binutils-all/windres/dialogsignature.rsd: Regenerate using MSVC.
- * binutils-all/windres/escapea.rsd: Regenerate using MSVC.
- * binutils-all/windres/escapex.rsd: Regenerate using MSVC.
- * binutils-all/windres/nocaption.rsd: Regenerate using MSVC.
- * binutils-all/windres/printstyle.rsd: Regenerate using MSVC.
- * binutils-all/windres/sublang.rsd: Regenerate using MSVC.
-
-2002-04-09 Nick Clifton <nickc@cambridge.redhat.com>
-
- * binutils-all/windres/capstyle.rc: New test case: Set default
- style for captions.
- * binutils-all/windres/capstyle.rsd: Expected output.
-
- * binutils-all/windres/deflang.rc: New test case: Check default
- language.
- * binutils-all/windres/deflang.rsd: Expected output.
-
- * binutils-all/windres/dialogsignature.rc: New test case for
- decoding the dialog signature.
- * binutils-all/windres/dialogsignature.rsd: Expected output.
-
- * binutils-all/windres/escapea.rc: New test case for encoding \a
- escape sequence.
- * binutils-all/windres/escapea.rsd: Expected output.
-
- * binutils-all/windres/escapex.rc: New test case for hex constants
- in strings.
- * binutils-all/windres/escapex.rsd: Expected output
-
- * binutils-all/windres/nocaption.rc: New test case dialogs without
- captions.
- * binutils-all/windres/nocaption.rsd: Expected output
-
- * binutils-all/windres/quoteclass.rc: New test case for quoted
- CLASS definitions in DIALOG resources.
-
- * binutils-all/windres/sublang.rc: New test case: Check assignment
- of sub-language.
- * binutils-all/windres/sublang.rsd: Expected output.
-
-2002-02-18 Timothy Daly <remote_bob@yahoo.com>
-
- * binutils-all/readelf.r: Change expected output to match new,
- narrowed-to-80-chars format.
- * binutils-all/readelf.r-64: Change expected output to match new,
- narrowed-to-80-chars format.
-
-2002-02-18 Hans-Peter Nilsson <hp@bitrange.com>
-
- * binutils-all/objcopy.exp
- (strip_executable_with_saving_a_symbol): Prune symbol Main in nm
- output for mmix-knuth-mmixware.
-
-2002-02-13 Nick Clifton <nickc@cambridge.redhat.com>
-
- * binutils-all/readelf.ss-mips: Do not expect an explicit
- ordering of the sections.
-
-2002-02-10 Nick Clifton <nickc@cambridge.redhat.com>
-
- * binutils-all/objdump.exp: Add 'xscale' to the list of expected
- CPUs.
-
-2002-01-14 Nick Clifton <nickc@cambridge.redhat.com>
-
- * binutils-all/objcopy.exp: Expect xscale-coff to fail simple
- objcopy test for the same reason as arm-coff.
-
-2001-11-29 H.J. Lu <hjl@gnu.org>
-
- * binutils-all/objcopy.exp (strip_test): Add strip on archive.
-
-2001-11-15 Alan Modra <amodra@bigpond.net.au>
-
- * binutils-all/objcopy.exp: (strip_test_with_saving_a_symbol):
- Allow '? main', to suit powerpc64.
-
-2001-11-14 Geoffrey Keating <geoffk@redhat.com>
-
- * binutils-all/readelf.exp: powerpc-*-eabi* is an ELF target.
-
-2001-10-03 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * binutils-all/readelf.exp: Exclude mips*-*-elf* from 'readelf -wi'
- test.
-
-Tue Sep 4 20:25:41 2001 Jeffrey A Law (law@cygnus.com)
-
- * binutils/all/readelf.exp: Expect readelf -wi to
- fail for the H8 series.
-
-2001-08-27 Alan Modra <amodra@bigpond.net.au>
-
- * binutils-all/readelf.s-64: Adjust offsets for powerpc64. Don't
- use constructs like [45][08] when all combinations are not valid.
- Instead use (48|50) to explicitly state which values are correct.
-
-2001-08-21 H.J. Lu <hjl@gnu.org>
-
- * binutils-all/readelf.r: Updated for the readelf change.
-
- * binutils-all/readelf.r-64: New for the readelf change.
-
-2001-07-27 H.J. Lu <hjl@gnu.org>
-
- * binutils-all/windres/windres.exp: Don't set xfail for
- bmpalign (compare) on none-ix86/pe targets.
-
-2001-07-24 H.J. Lu <hjl@gnu.org>
-
- * binutils-all/windres/windres.exp: Set xfail on none-ix86/pe
- targets.
-
-2001-07-18 DJ Delorie <dj@redhat.com>
-
- * config/default.exp (WINDRES): Add.
- * binutils-all/windres/windres.exp: New.
- * binutils-all/windres/README: New.
- * binutils-all/windres/bmp1.bmp: New.
- * binutils-all/windres/bmpalign.rc: New.
- * binutils-all/windres/bmpalign.rsd: New.
- * binutils-all/windres/lang.rc: New.
- * binutils-all/windres/lang.rsd: New.
- * binutils-all/windres/msupdate: New.
- * binutils-all/windres/strtab1.rc: New.
- * binutils-all/windres/strtab1.rsd: New.
-
-2001-07-05 Ben Elliston <bje@redhat.com>
-
- * lib/utils-lib.exp (target_assemble): Remove duplicate copy.
- (default_target_assemble): Likewise.
-
-2001-06-18 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
-
- * binutils-all/readelf.exp: Typo.
-
-2001-06-19 Andreas Jaeger <aj@suse.de>
-
- * binutils-all/readelf.r: Don't check for specific info value to
- pass testsuite on ia64 and alpha.
-
-2001-06-07 H.J. Lu <hjl@gnu.org>
-
- * binutils-all/readelf.ss-mips: Support stabs.
- * binutils-all/readelf.ss-tmips: Likewise.
-
-2001-05-25 H.J. Lu <hjl@gnu.org>
-
- * binutils-all/readelf.exp (readelf_test): Set target_machine
- to tmips for traditional mips.
-
- * binutils-all/readelf.s: Support traditional mips.
-
- * binutils-all/readelf.ss-tmips: New for traditional mips.
-
-2001-05-25 Alan Modra <amodra@one.net.au>
-
- * binutils-all/readelf.exp: Replace linuxoldld with linux*oldld
- and linuxaout with linux*aout.
- * binutils-all/objcopy.exp: Remove xfail for linuxaout.
-
-2001-05-24 H.J. Lu <hjl@gnu.org>
-
- * binutils-all/objdump.exp (cpus_expected): Add s390.
-
-2001-03-30 H.J. Lu <hjl@gnu.org>
-
- * binutils-all/readelf.exp: Run on more ELF targets.
-
-2001-02-11 H.J. Lu <hjl@gnu.org>
-
- * config/default.exp: Set up gcc_gas_flag.
-
- * binutils-all/objcopy.exp (copy_setup): Process gcc_gas_flag
- for Linux only.
-
- * binutils-all/testprog.c: Include <string.h> and don't use
- exit ().
-
-2001-01-16 Matthew Green <mrg@redhat.com>
-
- * binutils-all/readelf.s-64: Match readelf -S output.
-
-2000-12-09 Nick Clifton <nickc@redhat.com>
-
- * binutils-all/objdump.exp (cpus_expected): Add tic54x and
- tms320c54x.
-
-2000-11-28 Hans-Peter Nilsson <hp@axis.com>
-
- * binutils-all/readelf.s: Adjust to readelf.c formatting changes.
-
-2000-11-02 Chris Demetriou <cgd@sibyte.com>
-
- * binutils-all/readelf.exp (regexp_diff): Add code
- from gas testsuite to treat "#..." at beginning of line
- as an indicator to skip extra non-matching lines at that
- location.
- (readelf_test): Add support for using a machine-specific
- regexp comparison file.
- (readelf -S test, readelf -s test): Remove v850*-*-* and
- mips*-*-* from list of expected failures.
- * binutils-all/readelf.s: Accomodate changes due to
- additional sections (and therefore section numbering
- differences) on v850*-*-* and mips*-*-* targets.
- * binutils-all/readelf.ss: Likewise.
- * binutils-all/readelf.ss-mips: New file, which matches
- expected output of readelf -s test for mips*-*-*.
-
-2000-10-25 Hans-Peter Nilsson <hp@axis.com>
-
- * binutils-all/readelf.exp (-wi test): Add cris-*-* to xfails.
-
-2000-10-19 Chris Demetriou <cgd@sibyte.com>
-
- * binutils-all/readelf.exp (readelf_test): Work properly
- when multiple targets expect failtures.
- (readelf -S test, readelf -s test): Expect mips*-*-*
- to fail.
-
-2000-07-10 Alan Modra <alan@linuxcare.com.au>
-
- * lib/utils-lib.exp (default_binutils_assemble): Don't do the hppa
- sed fudges for hppa-linux.
-
-2000-07-01 Frank Ch. Eigler <fche@redhat.com>
-
- * binutils-all/objdump.exp (cpus_expected, cpus_regex): Reorganize
- syntax to display more tcl nature.
-
-2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
-
- * binutils-all/objdump.exp (cpus_expected): Recognize m68hc11 and
- m68hc12.
-
-2000-06-18 Nick Clifton <nickc@redhat.com>
-
- * binutils-all/readelf.wi: Do not assume the compilation tag to be
- unit 1.
-
- * binutils-all/objcopy.exp: Expect all arm variants to fail the
- copying executable test.
-
-2000-06-14 Hans-Peter Nilsson <hp@bitrange.com>
-
- * binutils-all/readelf.exp (regexp_diff): Do not break when a
- mismatching line is found.
- (readelf_find_size): New.
- (readelf_size): New global variable.
- (readelf_test): Add newline to send_log of command.
- If $srcdir/$subdir/$regexp_file-$readelf_size exists, use it
- instead of $srcdir/$subdir/$regexp_file.
- (*-*elf test): Fix typo in message.
- * binutils-all/readelf.s-64: New.
- * binutils-all/readelf.ss-64: New.
-
-2000-05-02 Alan Modra <alan@linuxcare.com.au>
-
- * binutils-all/objcopy.exp (simple copy): Clear xfail for hppa-linux.
-
- * binutils-all/hppa/objdump.exp: Disable test for elf.
-
-2000-03-13 Nick Clifton <nickc@cygnus.com>
-
- * binutils-all/readelf.s: Adjust to match new format of readelf
- output.
- * binutils-all/readelf.ss: Adjust to match new format of readelf
- output.
-
-1999-11-01 Nick Clifton <nickc@cygnus.com>
-
- * binutils-all/objcopy.exp: Expect simple objcopy test to fail
- for COFF based ARM and Thumb ports.
-
-Tue Sep 14 00:28:17 1999 Jeffrey A Law (law@cygnus.com)
-
- * binutils-all/hppa/objdump.exp: Do not run for PA64.
-
-1999-09-04 Steve Chamberlain <sac@pobox.com>
-
- * binutils-all/objdump.exp: Add pj to cpus_expected.
-
-Sat Aug 28 00:24:27 1999 Jerry Quinn <jquinn@nortelnetworks.com>
-
- * binutils-all/hppa/freg.s: New file.
- * binutils-all/hppa/objdump.exp: Add freg.s test.
-
-1999-08-09 Ian Lance Taylor <ian@zembu.com>
-
- * binutils-all/objcopy.exp: Add setup_xfail for simple copy test
- for i*86-*-msdos*.
-
-1999-07-21 H.J. Lu <hjl@gnu.org>
-
- * binutils-all/testprog.c: Include <stdio.h>.
-
-1999-06-29 Nick Clifton <nickc@cygnus.com>
-
- * binutils-all/objdump.exp: Add fr30 and MCore to expected cpus
- list.
-
- * binutils-all/readelf.r: Do not assume a fixed number of spaces
- in the output.
-
-1999-06-10 Nick Clifton <nickc@cygnus.com>
-
- * binutils-all/readelf.wi: Update to match latest output.
- * binutils-all/readelf.h: Update to match latest output.
-
-Wed Jun 9 11:59:22 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
-
- * binutils-all/objdump.exp: Tighten regexp to match `objdump -i'
- output to avoid massive exponential behaviour.
-
-1999-05-28 Ian Lance Taylor <ian@zembu.com>
-
- * binutils-all/readelf.h: Update for changes of 1999-04-08.
-
-1999-03-12 Nick Clifton <nickc@cygnus.com>
-
- * binutils-all/readelf.wi: Remove FR30 specific components.
- * binutils-all/readelf.s: Remove RELA specific components.
-
-1999-02-16 Nick Clifton <nickc@cygnus.com>
-
- * binutils-all/readelf.s: Do not assume section alignment is 4.
- * binutils-all/readelf.r: Do not assume rela's are being used.
- * binutils-all/readelf.exp: disable tests for non ELF based
- targets.
-
-1999-02-02 Nick Clifton <nickc@cygnus.com>
-
- * binutils-all/readelf.wi: Amend to match new readelf output.
- * binutils-all/readelf.r: Do not assume that RELAs will be used.
-
-1999-01-29 Nick Clifton <nickc@cygnus.com>
-
- * config/default.exp: Add definitions of READELF and READELFFLAGS.
-
- * binutils-all/readelf.exp: New file: Readelf tests
- * binutils-all/readelf.h: New file: Expected results for 'readelf -h'
- * binutils-all/readelf.s: New file: Expected results for 'readelf -S'
- * binutils-all/readelf.ss: New file: Expected results for 'readelf -s'
- * binutils-all/readelf.r: New file: Expected results for 'readelf -r'
- * binutils-all/readelf.wi: New file: Expected results for 'readelf -wi'
-
-Wed Dec 9 19:11:39 1998 Jeffrey A Law (law@cygnus.com)
-
- * binutils-all/objcopy.exp (copy_executable): Expect comparison
- failure for mips*-*-elf.
-
-Fri Oct 16 22:57:12 1998 Felix Lee <flee@cygnus.com>
-
- * binutils-all/objcopy.exp: fix "no symbols" message.
-
-Tue Jul 28 15:14:04 1998 Jeffrey A Law (law@cygnus.com)
-
- * binutils-all/objcopy.exp: Keep "main" and "_main" for strip with
- saving symbol tests. Look for either "main" or "_main" in the output
- file. Fix test for "no symbols" in the output file.
-
-1998-07-22 Vladimir N. Makarov <vmakarov@cygnus.com>
-
- * binutils-all/objcopy.exp: Polish output about fail for objcopy
- (simple copy), strip with/without saving a symbol for object file
- and executable.
-
-Wed Jul 1 16:27:40 1998 Nick Clifton <nickc@cygnus.com>
-
- * binutils-all/objcopy.exp: ARM simple objcopy now passes.
-
-Wed Jun 24 09:20:21 1998 Nick Clifton <nickc@cygnus.com>
-
- * binutils-all/objdump.exp: Look for '.data' rather than 'data'
- when parsing output of objdump -h.
- * binutils-all/size.exp: Look for '.data' rather than 'data' when
- parsing output of size -A.
-
-1998-07-20 Vladimir N. Makarov <vmakarov@cygnus.com>
-
- * binutils-all/objcopy.exp: Two new tests - strip object file with
- saving a symbol and strip executable file with saving a symbol.
-
-Fri May 29 14:50:24 1998 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: Don't xfail the simple objcopy test
- when cross compiling.
-
-Thu Nov 6 14:32:37 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * lib/utils-lib.exp: Temporary definition of target_assemble and
- default_target_assemble so that testing can work with older
- dejagnu versions.
-
-Wed Sep 24 12:09:15 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * binutils-all/objcopy.exp(strip_executable): Make a new copy of
- the executable being tested.
-
-Mon Sep 15 21:25:20 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * binutils-all/objcopy.exp: Compile the executables to be tested
- on the target with a status wrapper (as necessary).
-
- * binutils-all/ar.exp: If testing on a remote host, don't bother
- looking on the local host for the program being tested. Use the
- correct filenames on the remote host.
-
- * binutils-all/nm.exp: Ditto.
-
- * binutils-all/size.exp: Ditto.
-
- * binutils-all/objdump.exp: Ditto.
- (cpus_expected): Add the target CPU to the regexp of CPUs to be
- expected, if it's not already there.
-
-Thu Aug 28 09:57:27 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * binutils-all/objdump.exp (cpus_expected): Add arc.
-
-Tue Aug 5 00:03:20 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * config/default.exp: Look for nm-new and strip-new.
-
-Tue Jun 3 17:12:54 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * config/default.exp: Remove expect_before statement.
-
- * binutils-all/objcopy.exp: Don't use global exec_output variable;
- the output is returned from remote_load instead.
-
-Mon May 12 22:14:20 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * binutils-all/objcopy.exp(strip_test): Tests that
- fail to compile are untested, not unresolved.
- (copy_setup): Ditto.
-
- * lib/utils-lib.exp(default_binutils_assemble): Call
- target_assemble instead of target_compile.
-
-Wed Apr 30 20:37:51 1997 Bob Manson <manson@charmed.cygnus.com>
-
- Changes to support multilib and remote hosted testing, along with
- general cleanups and simplifications.
-
- * lib/utils-lib.exp(binutil_version): Use remote_exec.
- (default_binutils_run): Ditto.
- (default_binutils_assemble): Remove first argument; call
- target_compile to actually do the assembly.
- (default_binutils_compile,default_binutils_remove,prune_warnings):
- Delete.
-
- * config/default.exp: Remove AS and ASFLAGS.
- (binutils_compile,binutils_remove): Delete.
- (binutils_assemble): Remove first argument.
-
- * binutils-all/ar.exp: See if we're running the tests on
- a remote host, and download/upload files as appropriate.
- Replace calls to binutils_remove with remote_file. Replace
- calls to binutils_compile with target_compile. Remove initial
- argument to binutils_assemble. Use remote_load to execute
- programs on the target.
- * binutils-all/nm.exp: Ditto.
- * binutils-all/objcopy.exp: Ditto.
- * binutils-all/objdump.exp: Ditto.
- * binutils-all/size.exp: Ditto.
-
-Mon Apr 14 12:36:41 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/ar.exp (long_filenames): Check for a file system
- with a 14 character file name length limit.
-
-Tue Apr 1 09:52:15 1997 Jeffrey A Law (law@cygnus.com)
-
- * binutils-all/objdump.exp: Handle d10v.
-
-Fri Feb 7 16:45:34 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * binutils-all/ar.exp: Use prune_warnings instead of
- prune_system_crud.
- * binutils-all/objcopy.exp: Ditto.
-
-Wed Jan 29 00:16:43 1997 Bob Manson <manson@charmed.cygnus.com>
-
- * binutils-all/nm.exp: Use / between $srcdir and $subdir.
- * binutils-all/objcopy.exp: Ditto.
- * binutils-all/objdump.exp: Ditto.
- * binutils-all/size.exp: Ditto.
- * binutils-all/hppa/objdump.exp: Ditto.
-
-
-Wed Oct 16 22:57:59 1996 Jeffrey A Law (law@cygnus.com)
-
- * binutils-all/objdump.exp: Add mn10200 and mn10300 to expected
- cpus list.
-
-Tue Oct 1 15:06:55 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * lib/utils-lib.exp (binutil_version): Fix for current version
- printing.
-
-Sun Aug 4 22:25:40 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: Fix end of line matching in srec tests
- to work with TCL 7.5.
-
-Sat Jun 29 12:51:30 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: Simple copy test works for i960 b.out
- targets.
-
-Mon Jun 24 14:33:04 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: On OSF/1, the simple copy test will
- succeed with gas, and fail with /bin/as, so mark it as an expected
- failure only if it fails.
-
-Tue Mar 26 16:55:08 1996 Jeffrey A Law (law@cygnus.com)
-
- * binutils-all/objcopy.exp: No longer expect adjust-section-vma
- test to fail for hppa*-*-proelf*.
-
-Mon Mar 11 08:25:14 1996 Jeffrey A Law (law@cygnus.com)
-
- * binutils-all/objdump.exp: Look for "$CODE$", not just "CODE".
-
-Wed Jan 31 11:55:13 1996 Jeffrey A Law (law@cygnus.com)
-
- * binutils-all/objcopy.exp: Expect adjust-section-vma tests to
- fail for hppa*-*-proelf* targets.
-
-Thu Jan 25 13:53:04 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objdump.exp: Update for objdump -h format change.
- * binutils-all/objcopy.exp: Likewise.
-
-Mon Jan 15 18:14:14 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: Use the lma, not the vma, when testing
- address adjustments.
-
-Fri Dec 15 16:31:55 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objdump.exp: Update objdump -i test for current
- objdump output.
-
-Mon Nov 27 15:15:09 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: Correct fail calls to always use the
- same string as the pass call.
-
-Wed Nov 22 13:18:58 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * lib/utils-lib.exp (prune_system_crud): Discard -g -O warnings
- from native compilers on OSF/1 and SunOS.
-
-Fri Nov 17 10:36:09 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * lib/utils-lib.exp (default_binutils_compiler: Change error
- message to say compilation rather than assembly.
-
-Wed Nov 15 18:34:42 1995 Ken Raeburn <raeburn@cygnus.com>
-
- * binutils-all/objcopy.exp: Simple copy test does appear to work
- on i*86-svr4.
-
-Wed Nov 15 12:19:28 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: If assembly fails, call unresolved.
- Test running objcopy and strip on a final executable.
- * binutils-all/testprog.c: New file.
- * config/default.exp (STRIP, STRIPFLAGS): Define.
- (binutils_compile): New procedure.
- * lib/utils-lib.exp (default_binutils_compile): New procedure.
-
-Fri Nov 3 13:22:33 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * lib/utils-lib.exp (default_binutils_run): Don't use verbose
- -log, reverting part of Oct 2 change.
-
-Wed Nov 1 15:09:57 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de>
-
- * binutils-all/objcopy.exp: Add setup_xfails for
- m68*-motorola-sysv* and m88*-motorola-sysv*.
-
-Wed Oct 4 14:38:31 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/nm.exp: Add setup_xfails for XCOFF.
-
-Mon Oct 2 12:41:48 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/ar.exp: New file.
- * binutils-all/bintest.s: Make text_symbol and data_symbol global.
- Add new static symbols static_text_symbol and static_data_symbol.
- * binutils-all/nm.exp: Adjust accordingly.
- * config/default.exp (AR): Set if not set.
- (binutils_remove): New procedure.
- * lib/utils-lib.exp (default_binutils_run): Call
- prune_system_crud on program output. Use verbose -log instead of
- both verbose and send_log.
- (default_binutils_remove): New procedure.
-
- * lib/utils-lib.exp (default_binutils_assemble): Call
- prune_system_crud on assembler output.
-
-Tue Sep 26 14:07:05 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: Add setup_xfails for simple copy test
- for i386 COFF targets.
-
-Wed Sep 13 13:20:21 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * lib/utils-lib.exp (prune_system_crud): Define if not defined.
- * binutils-all/objcopy.exp: Call prune_system_crud on cmp output.
-
-Sat Aug 19 17:38:06 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: Add xfail for i*86-*-aout* for simple
- copy test.
-
-Wed Aug 16 16:52:53 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/nm.exp: Add setup_xfail for mips*-sony-bsd* for
- tests which fail on ECOFF targets.
-
- * binutils-all/objcopy.exp: Change i*86-*-linux xfail for simple
- copy test to check for i*86-*-linuxaout* instead.
-
-Tue Aug 8 17:48:37 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: Add setup_xfail for a29k-*-vxworks*
- for simple copy test.
-
-Tue Jul 25 11:57:12 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: Change setup_xfail for simple copy
- test from i960-*-vxworks5.1 to i960-*-vxworks*.
-
-Mon Jul 10 12:25:46 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: Add setup_xfail for z8*-*-coff for
- simple copy test.
- * binutils-all/objdump.exp (cpus_expected): Add z8001 and z8002.
-
-Sun May 21 20:32:53 1995 Jeff Law (law@snake.cs.utah.edu)
-
- * binutils-all/hppa/objdump.exp (addendbug): Handle PA ELF targets
- too.
- * binutils-all/objcopy.exp (simple copy): Don't expect PA ELF
- targets to fail.
-
-Tue Apr 4 14:52:08 1995 Jeff Law (law@snake.cs.utah.edu)
-
- * binutils-all/hppa: Renamed from binutils-hppa.
-
-Wed Mar 29 12:02:43 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: Add setup_xfail for simple copy test
- for h8500-*-hms and h8500-*-coff.
-
-Tue Mar 28 11:18:28 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: Add setup_xfail for simple copy test
- for m68*-ericsson-ose and m88*-*-coff.
-
-Mon Mar 27 11:27:31 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objcopy.exp: Add setup_xfail for simple copy test
- for m68*-*-vxworks*.
-
-Fri Mar 24 11:44:25 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-hppa/objdump.exp: Correct hppa*-*-* check.
-
-Tue Mar 21 10:48:45 1995 Jeff Law (law@snake.cs.utah.edu)
-
- * binutils-hppa/addendbug.s: New testcase.
- * binutils-hppa/objdump.exp: Run it.
-
-Mon Mar 20 11:31:05 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * lib/utils-lib.exp (default_binutils_run): Quote any dollar signs
- in progargs before passing it to exec.
-
-Fri Mar 17 16:39:31 1995 Jeff Law (law@snake.cs.utah.edu)
-
- * config/hppa.sed: Sed script to transform bintest.s into proper
- PA assembly code.
- * binutils-all/nm.exp: Enable these tests on the PA.
- * binutils-all/objcopy.exp: Enable these tests on the PA. Expect
- simple copy to fail.
- * binutils-all/objdump.exp: Enable these tests on the PA. Handle
- "CODE" as a section name.
- * binutils-all/size.exp: Enable these tests on the PA.
- * lib/utils-lib.exp (default_binutils_assemble): For "hppa*-*-*",
- run the assembly through a sed script before passing it to the
- assembler.
-
-Wed Mar 15 16:47:13 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/objdump.exp: Force section sizes to be interpreted
- in hex. Change objdump -h failure mode to always use the same
- string.
-
-Thu Jan 5 13:01:43 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * binutils-all/nm.exp: Just check for irix4*, rather than
- irix\[0-4\]*, to avoid DejaGnu bug.
-
-Thu Dec 15 19:35:31 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * binutils-all/objcopy.exp: Expect simple-objcopy test to fail
- for various other targets for which gas doesn't use bfd: sh-hms,
- m68k-hpux, m68k-sunos, m68k-coff, i386-linux, a29k-udi, a29k-coff,
- i960-vxworks5.1, i960-coff, h8300-hms, h8300-coff.
-
-Wed Dec 14 15:54:46 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * binutils-all/size.exp: Skip tests requiring bintest.o on hppa,
- since it (correctly) generates syntax errors on that platform.
- * binutils-all/objdump.exp: Ditto.
- * binutils-all/nm.exp: Ditto.
- * binutils-all/objcopy.exp: Ditto. Also, move setup_xfail for
- sh-coff to branch where objcopy execution produced no error
- messages. Expect failure for hp300 also.
-
-Thu Dec 8 14:36:15 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * binutils-all/objdump.exp (cpus_expected): New variable, taken
- from objdump -i test, added ns32k and powerpc, sorted.
- (objdump -i, -f tests): Use $cpus_expected.
-
- * binutils-all/objcopy.exp: For simple-copy test, expect failure
- for sh-coff.
-
-Tue Oct 25 16:00:14 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * binutils-all/objcopy.exp: Adjust --adjust-section-vma tests for
- new S-record section handling.
-
-Tue Oct 18 11:18:21 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- * binutils-all/nm.exp: nm with no arguments and nm -P do not work
- as expected on ECOFF targets; add calls to setup_xfail.
-
- * binutils-all/objcopy.exp: New file.
- * config/default.exp: Initialize OBJCOPY and OBJCOPYFLAGS.
-
-Fri Oct 14 14:46:22 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
-
- Rewrite testsuite.
- * configure.in, Makefile.in: Remove.
- * binutils-all/configure.in, binutils-all/Makefile.in: Remove.
- * binutils-all/bintest.c: Remove.
- * binutils-all/bintest.s: New file.
- * binutils-all/nm.exp, binutils-all/objdump.exp: Rewrite.
- * binutils-all/size.exp: Rewrite.
- * config/default.exp: Load utils-lib.exp. Set AS and ASFLAGS.
- Don't go up one directory from $base_dir. Create tmpdir.
- (binutils_run, binutils-assemble): New procedures.
- * config/unix.exp: Remove.
- * config/mt-a29k-udi, config/mt-i386-aout: Remove.
- * config/mt-i960-nindy, config/mt-lynx, config/mt-m68k: Remove.
- * config/mt-mips-ecoff, config/mt-slite: Remove.
- * config/mt-sparc-aout, config/mt-vxworks: Remove.
- * lib/utils-lib.exp (binutil_version): Don't redirect standard
- input when getting version. Don't unset errorInfo.
- (default_binutils_run): New procedure.
- (default_binutils_assemble): New procedure.
-
-Thu Sep 29 12:45:39 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * VMS does not permit `.' in directory names: renamed binutils.all
- to binutils-all.
- * configure.in (configdirs): Change binutils.all to binutils-all.
-
-Fri Sep 23 16:01:14 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * configure.in: Use mt-m68k for m68k*-*-aout* and m68k*-*-coff*,
- not for m68k-*-*.
-
-Fri Sep 23 13:54:50 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
-
- * binutils.all/objdump.exp: Added ARM to list of CPU types.
-
-Thu Sep 22 11:04:50 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * binutils.all/objdump.exp: Update for new usage message.
- * binutils.all/size.exp: Use a double backslash in the string to
- get a single backslash to the regexp matcher. Accept $TEXT$,
- $DATA$ and $BSS$ as well as .text, .data and .bss, for HP/UX.
-
-Fri Sep 2 12:53:10 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * config/unix.exp: If nm.new does not exist, use [transform nm].
- * config/default.exp: Likewise.
-
-Wed Aug 24 12:41:37 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * configure.in, binutils.all/configure.in: Change i386 to
- i[345]86.
-
-Tue Jul 19 15:23:53 1994 Bill Cox (bill@rtl.cygnus.com)
-
- * config/mt-mips-ecoff: Add -Tidp.ld option.
-
-Thu Jun 30 12:41:55 1994 J.T. Conklin (jtc@phishhead.cygnus.com)
-
- * config/default.exp: Use nm.new, not nm, from newly built tree.
-
-Tue May 17 14:04:05 1994 Bill Cox (bill@rtl.cygnus.com)
-
- * config/default.exp, config/unix.exp: Replace error
- proc calls with perror.
-
-Tue May 10 11:20:54 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * configure.in (sparclite): Match on sparclite*-*-*.
-
-Wed Apr 13 18:25:19 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * config/unix.exp: Use nm.new, not nm, from newly built tree.
-
- * binutils.all/objdump.exp: Add more wildcards to list of
- single-letter options in pattern for usage message.
-
- * binutils.all/nm.exp: Deleted debug-symbols test, since it only
- works for a.out/stabs systems. Fixed regexps to make underscores
- optional, since some C compilers don't prepend them. Deleted
- check for foo.o symbol, since again some systems don't generate
- it.
-
-Mon Apr 11 10:31:00 1994 Bill Cox (bill@rtl.cygnus.com)
-
- * Makefile.in (check): Set TCL_LIBRARY for runtest.
-
-Mon Feb 14 19:34:03 1994 Rob Savoye (rob@darkstar.cygnus.com)
-
- * Makefile.in: Use new config features of DejaGnu in site.exp
- file. "Make check" should now work for all crosses.
-
-Fri Jan 28 18:00:29 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * binutils.all/objdump.exp: In usage message, accept
- "section-name" as well as "section_name".
-
-Mon Jan 17 16:57:02 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * binutils.all/objdump.exp: Trim list of format names expected,
- and accept any known CPU type.
-
-Thu Dec 2 20:50:24 1993 Rob Savoye (rob@darkstar.cygnus.com)
-
- * Makefile.in: Remove some stuff from the site.exp file.
- * config/unix.exp: Add global before seeing if the variables for
- nm, objdump, and size exist.
-
-Wed Nov 3 11:12:32 1993 Rob Savoye (rob@darkstar.cygnus.com)
-
- * config/udi.exp,unix.exp: Transform tool name.
- * binutils.all/*.exp: Clear errorInfo after exec.
-
-Fri Jul 2 12:41:20 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * binutils.all/*.exp: Use -- for long arguments rather than +.
-
-Fri Jun 4 10:52:29 1993 david d `zoo' zuhn (zoo@cirdan.cygnus.com)
-
- * configure.in: change srctrigger to Makefile.in
-
-Wed May 26 17:27:46 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (FLAGS_TO_PASS): Pass down CC and CFLAGS.
-
-Fri May 7 13:58:44 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * binutils.all/objdump.exp: Update for new usage message.
-
-Mon Apr 19 14:08:52 1993 Rob Savoye (rob@darkstar.cygnus.com)
-
- * binutils.all/*.exp: Use the new util_test proc.
- * Makefile.in: Create a local site.exp file with config info.
-
-Thu Mar 25 05:38:47 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com)
-
- * nm.all/configure.in (srcname): Delete extra quote.
-
-Mon Feb 22 07:54:03 1993 Mike Werner (mtw@poseidon.cygnus.com)
-
- * binutils/testsuite: made modifications to testcases, etc., to allow
- them to work properly given the reorganization of deja-gnu and the
- relocation of the testcases from deja-gnu to a "tool" subdirectory.
-
-Sun Feb 21 10:55:55 1993 Mike Werner (mtw@poseidon.cygnus.com)
-
- * binutils/testsuite: Initial creation of binutils/testsuite.
- Migrated dejagnu testcases and support files for testing nm to
- binutils/testsuite from deja-gnu. These files were moved "as is"
- with no modifications. This migration is part of a major overhaul
- of dejagnu. The modifications to these testcases, etc., which
- will allow them to work with the new version of dejagnu will be
- made in a future update.
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/alias.def b/binutils-2.17/binutils/testsuite/binutils-all/alias.def
deleted file mode 100644
index d59d4a01..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/alias.def
+++ /dev/null
@@ -1,2 +0,0 @@
-EXPORTS
-symbol=nothing
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/ar.exp b/binutils-2.17/binutils/testsuite/binutils-all/ar.exp
deleted file mode 100644
index 02d12351..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/ar.exp
+++ /dev/null
@@ -1,256 +0,0 @@
-# Copyright 1995, 1997, 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; 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@prep.ai.mit.edu
-
-# Written by Ian Lance Taylor <ian@cygnus.com>
-
-if ![is_remote host] {
- if {[which $AR] == 0} then {
- perror "$AR does not exist"
- return
- }
-}
-
-# send_user "Version [binutil_version $AR]"
-
-# Test long file name support
-
-proc long_filenames { } {
- global AR
- global host_triplet
-
- set testname "ar long file names"
-
- set n1 "abcdefghijklmnopqrstuvwxyz1"
- set n2 "abcdefghijklmnopqrstuvwxyz2"
- set file1 tmpdir/$n1
- set file2 tmpdir/$n2
-
- remote_file build delete $file1
-
- # Some file systems truncate file names at 14 characters, which
- # makes it impossible to run this test. Check for that now.
- set status [catch "set f [open tmpdir/$n1 w]" errs]
- if { $status != 0 } {
- verbose -log "open tmpdir/$n1 returned $errs"
- unsupported $testname
- return
- }
- puts $f "first"
- close $f
-
-
- remote_file build delete $file2
-
- set status [catch "set f [open tmpdir/$n2 w]" errs]
- if { $status != 0 } {
- verbose -log "open tmpdir/$n2 returned $errs"
- unsupported $testname
- return
- }
- puts $f "second"
- close $f
-
- if [is_remote host] {
- set file1 [remote_download host $file1]
- set file2 [remote_download host $file2]
- set dest artest.a
- } else {
- set dest tmpdir/artest.a
- }
-
- remote_file host delete $dest
-
- set got [binutils_run $AR "rc $dest $file1 $file2"]
- if [is_remote host] {
- remote_upload host $file1 tmpdir/$n1
- }
-
- set f [open tmpdir/$n1 r]
- gets $f string
- close $f
- if ![string match "first" $string] {
- verbose -log "reading tmpdir/$n1 returned $string"
- unsupported $testname
- return
- }
-
- remote_file host delete $dest
- set got [binutils_run $AR "rc $dest $file1 $file2"]
-
- if ![string match "" $got] {
- fail $testname
- return
- }
-
- remote_file build delete tmpdir/$n1
- remote_file build delete tmpdir/$n2
-
- set got [binutils_run $AR "t $dest"]
- regsub "\[\r\n \t\]*$" "$got" "" got
- if ![string match "$n1*$n2" $got] {
- fail $testname
- return
- }
-
- if [is_remote host] {
- remote_file host delete $file1
- remote_file host delete $file2
- }
-
- verbose -log "$AR x $dest"
- set exec_output [binutils_run $AR "x $dest"]
- set exec_output [prune_warnings $exec_output]
- if ![string match "" $exec_output] {
- verbose -log $exec_output
- fail $testname
- return
- }
-
- if [is_remote host] {
- remote_upload host $n1 tmpdir/$n1
- remote_upload host $n2 tmpdir/$n2
- set file1 tmpdir/$n1
- set file2 tmpdir/$n2
- } else {
- set file1 $n1
- set file2 $n2
- }
-
- if ![file exists $file1] {
- verbose -log "$file1 does not exist"
- fail $testname
- return
- }
- if ![file exists $file2] {
- verbose -log "$file2 does not exist"
- fail $testname
- return
- }
-
- set f [open $file1 r]
- if { [gets $f line] == -1 || $line != "first" } {
- verbose -log "$file1 contents:"
- verbose -log "$line"
- close $f
- fail $testname
- return
- }
- close $f
-
- set f [open $file2 r]
- if { [gets $f line] == -1 || $line != "second" } {
- verbose -log "$file2 contents:"
- verbose -log "$line"
- close $f
- fail $testname
- return
- }
- close $f
-
- file delete $file1 $file2
- pass $testname
-}
-
-# Test building the symbol table.
-
-proc symbol_table { } {
- global AR
- global AS
- global NM
- global srcdir
- global subdir
-
- set testname "ar symbol table"
-
- if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] {
- unresolved $testname
- return
- }
-
- if [is_remote host] {
- set archive artest.a
- set objfile [remote_download host tmpdir/bintest.o]
- remote_file host delete $archive
- } else {
- set archive tmpdir/artest.a
- set objfile tmpdir/bintest.o
- }
-
- remote_file build delete tmpdir/artest.a
-
- set got [binutils_run $AR "rc $archive ${objfile}"]
- if ![string match "" $got] {
- fail $testname
- return
- }
-
- set got [binutils_run $NM "--print-armap $archive"]
- if { ![string match "*text_symbol in bintest.o*" $got] \
- || ![string match "*data_symbol in bintest.o*" $got] \
- || ![string match "*common_symbol in bintest.o*" $got] \
- || [string match "*static_text_symbol in bintest.o*" $got] \
- || [string match "*static_data_symbol in bintest.o*" $got] \
- || [string match "*external_symbol in bintest.o*" $got] } {
- fail $testname
- return
- }
-
- pass $testname
-}
-
-# Test POSIX-compatible argument parsing.
-
-proc argument_parsing { } {
- global AR
- global AS
- global srcdir
- global subdir
-
- set testname "ar argument parsing"
-
- if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] {
- unresolved $testname
- return
- }
-
- if [is_remote host] {
- set archive artest.a
- set objfile [remote_download host tmpdir/bintest.o]
- remote_file host delete $archive
- } else {
- set archive tmpdir/artest.a
- set objfile tmpdir/bintest.o
- }
-
- remote_file build delete tmpdir/artest.a
-
- set got [binutils_run $AR "-r -c $archive ${objfile}"]
- if ![string match "" $got] {
- fail $testname
- return
- }
-
- pass $testname
-}
-
-# Run the tests.
-
-long_filenames
-symbol_table
-argument_parsing
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/bintest.s b/binutils-2.17/binutils/testsuite/binutils-all/bintest.s
deleted file mode 100644
index 9e006502..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/bintest.s
+++ /dev/null
@@ -1,12 +0,0 @@
- .globl text_symbol
- .text
-text_symbol:
-static_text_symbol:
- .long 1
- .long external_symbol
- .globl data_symbol
- .data
-data_symbol:
-static_data_symbol:
- .long 2
- .comm common_symbol,4
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/dlltool.exp b/binutils-2.17/binutils/testsuite/binutils-all/dlltool.exp
deleted file mode 100644
index 6ddfcfae..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/dlltool.exp
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright 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; 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-if {![istarget "i*86-*-*"]} {
- return
-}
-
-if {![istarget "i*86-*-*pe*"] \
- && ![istarget "i*86-*-cygwin*"] \
- && ![istarget "i*86-*-mingw32*"] } {
- set target_xfail "yes"
-} else {
- set target_xfail "no"
-}
-
-if {![info exists DLLTOOL]} then {
- return
-}
-
-if {[which $DLLTOOL] == 0} then {
- return
-}
-
-verbose "$DLLTOOL -d $srcdir/$subdir/fastcall.def" 1
-catch "exec $DLLTOOL -d $srcdir/$subdir/fastcall.def" err
-
-if ![string match "" $err] then {
- send_log "$err\n"
- verbose "$err" 1
- fail "dlltool (fastcall export)"
-} else {
- pass "dlltool (fastcall export)"
-}
-
-if { "$target_xfail" == "yes" } {
- setup_xfail *-*
-}
-
-verbose "$DLLTOOL -p prefix -l tmpdir/libalias.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" 1
-catch "exec $DLLTOOL -p prefix -l tmpdir/libalias.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" err
-
-if ![string match "" $err] then {
- send_log "$err\n"
- verbose "$err" 1
- fail "dlltool -p (execution)"
- continue
-}
-
-pass "dlltool -p (execution)"
-
-set got [binutils_run $NM "tmpdir/libalias.a"]
-set want "00000000 I __imp__prefix_symbol.*00000000 T _prefix_symbol.*00000000 I __imp__symbol.*00000000 T _symbol"
-
-if [regexp $want $got] then {
- pass "dlltool -p (symbol names)"
-} else {
- fail "dlltool -p (symbol names)"
-}
-
-set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias.a"]
-set want "(Contents of section .idata\\\$6:.*\\.\\.symbol\\.\\..*){2,2}"
-
-if [regexp $want $got] then {
- pass "dlltool -p (import name)"
-} else {
- fail "dlltool -p (import name)"
-}
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/fastcall.def b/binutils-2.17/binutils/testsuite/binutils-all/fastcall.def
deleted file mode 100644
index bef49682..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/fastcall.def
+++ /dev/null
@@ -1,2 +0,0 @@
-EXPORTS
-@fastcall@4
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/group.s b/binutils-2.17/binutils/testsuite/binutils-all/group.s
deleted file mode 100644
index 21aa4be5..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/group.s
+++ /dev/null
@@ -1,8 +0,0 @@
- .section .text,"axG",%progbits,foo_group,comdat
- .global foo
-foo:
- .word 0
- .section .data,"awG",%progbits,foo_group,comdat
- .global bar
-bar:
- .word 0
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/hppa/addendbug.s b/binutils-2.17/binutils/testsuite/binutils-all/hppa/addendbug.s
deleted file mode 100644
index 659306f0..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/hppa/addendbug.s
+++ /dev/null
@@ -1,23 +0,0 @@
- .SPACE $PRIVATE$
- .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
- .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
- .SPACE $TEXT$
- .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
- .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
- .IMPORT $global$,DATA
- .IMPORT $$dyncall,MILLICODE
-; gcc_compiled.:
- .SPACE $TEXT$
- .SUBSPA $CODE$
-
- .align 4
- .EXPORT initialize_char_syntax,CODE
- .EXPORT initialize_char_syntax,ENTRY,PRIV_LEV=3,RTNVAL=GR
-initialize_char_syntax
- .PROC
- .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3
- .ENTRY
- addil L'is_idchar-$global$-32,%r27
- .EXIT
- .PROCEND
-is_idchar .comm 256
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/hppa/freg.s b/binutils-2.17/binutils/testsuite/binutils-all/hppa/freg.s
deleted file mode 100644
index 501e10f9..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/hppa/freg.s
+++ /dev/null
@@ -1,23 +0,0 @@
- .LEVEL 2.0
- .SPACE $PRIVATE$
- .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31
- .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82
- .SPACE $TEXT$
- .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44
- .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
- .IMPORT $global$,DATA
- .IMPORT $$dyncall,MILLICODE
-; gcc_compiled.:
- .SPACE $TEXT$
- .SUBSPA $CODE$
-
- .align 4
- .NSUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY
- .EXPORT main,ENTRY,PRIV_LEV=3,RTNVAL=GR
-main
- .PROC
- .CALLINFO FRAME=64,CALLS,SAVE_RP
- .ENTRY
- fmpyfadd,sgl %fr4L,%fr4R,%fr5R,%fr5L
- .EXIT
- .PROCEND
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/hppa/objdump.exp b/binutils-2.17/binutils/testsuite/binutils-all/hppa/objdump.exp
deleted file mode 100644
index a4451254..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/hppa/objdump.exp
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2002
-# 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@prep.ai.mit.edu
-
-# This file was written by Rob Savoye <rob@cygnus.com>
-# and rewritten by Ian Lance Taylor <ian@cygnus.com>
-
-if ![istarget hppa*-*-*] then {
- return
-}
-
-# These tests are not suitable for wide mode.
-if [istarget hppa*w-*-*] then {
- return
-}
-
-# elf hppa assembler doesn't support .subspa
-if {[istarget *64*-*-*] || [istarget *-*-*elf*] || [istarget *-*-linux*]} then {
- return
-}
-
-if {[which $OBJDUMP] == 0} then {
- perror "$OBJDUMP does not exist"
- return
-}
-
-send_user "Version [binutil_version $OBJDUMP]"
-
-if {![binutils_assemble $srcdir/$subdir/addendbug.s tmpdir/addendbug.o]} then {
- return
-}
-
-if [is_remote host] {
- set objfile [remote_download host tmpdir/addendbug.o]
-} else {
- set objfile tmpdir/addendbug.o
-}
-
-# Make sure the SOM BFD code sign extends constants in R_DATA_OVERRIDE fixups.
-
-set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -r $objfile"]
-
-if [istarget hppa*-*-*elf*] then {
- set want "00000000 R_PARISC_DPREL21L\[ \]+is_idchar\\+0xffffffe0.*"
-} else {
- set want "00000000 R_DP_RELATIVE\[ \]+is_idchar\\+0xffffffe0.*"
-}
-
-
-if [regexp $want $got] then {
- pass "addendbug test"
-} else {
- fail "addendbug test"
-}
-
-###########################
-# Set up the test of freg.s
-###########################
-
-if {![binutils_assemble $srcdir/$subdir/freg.s tmpdir/freg.o]} then {
- return
-}
-
-if [is_remote host] {
- set objfile [remote_download host tmpdir/freg.o]
-} else {
- set objfile tmpdir/freg.o
-}
-
-# Make sure that we get R float regs like we're supposed to
-
-set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble $objfile"]
-
-set want "fmpyfadd,sgl fr4,fr4R,fr5R,fr5"
-
-if [regexp $want $got] then {
- pass "freg test"
-} else {
- fail "freg test"
-}
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/link-order.s b/binutils-2.17/binutils/testsuite/binutils-all/link-order.s
deleted file mode 100644
index 5994cb81..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/link-order.s
+++ /dev/null
@@ -1,13 +0,0 @@
- .text
- .align 16
- .global foo#
- .proc foo#
-foo:
- .prologue 2, 2
- .vframe r2
- mov r2 = r12
- .body
- .restore sp
- mov r12 = r2
- br.ret.sptk.many b0
- .endp foo#
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/m68k/movem.s b/binutils-2.17/binutils/testsuite/binutils-all/m68k/movem.s
deleted file mode 100644
index b3718d50..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/m68k/movem.s
+++ /dev/null
@@ -1,2 +0,0 @@
- movem.l %d0-%d3,-(%sp)
- movem.l %d0-%d3,(%sp)
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/m68k/objdump.exp b/binutils-2.17/binutils/testsuite/binutils-all/m68k/objdump.exp
deleted file mode 100644
index 4f568893..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/m68k/objdump.exp
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-if {![istarget "m68*-*-*"] || [istarget "m68h*-*-*"] || [istarget "m681*-*-*"]} then {
- return
-}
-
-if {[which $OBJDUMP] == 0} then {
- perror "$OBJDUMP does not exist"
- return
-}
-
-send_user "Version [binutil_version $OBJDUMP]"
-
-###########################
-# Set up the test of movem.s
-###########################
-
-if {![binutils_assemble $srcdir/$subdir/movem.s tmpdir/movem.o]} then {
- return
-}
-
-if [is_remote host] {
- set objfile [remote_download host tmpdir/movem.o]
-} else {
- set objfile tmpdir/movem.o
-}
-
-# Make sure that the movem is correctly decoded.
-
-set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble $objfile"]
-
-set want "moveml %d0-%d3,%sp@-.*moveml %d0-%d3,%sp@\[\r\n\]"
-
-if [regexp $want $got] then {
- pass "movem test"
-} else {
- fail "movem test"
-}
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/nm.exp b/binutils-2.17/binutils/testsuite/binutils-all/nm.exp
deleted file mode 100644
index 865e5d3c..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/nm.exp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Copyright 1993, 1994, 1995, 1997 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@prep.ai.mit.edu
-
-# This file was written by Rob Savoye <rob@cygnus.com>
-# and rewritten by Ian Lance Taylor <ian@cygnus.com>
-
-if ![is_remote host] {
- if {[which $NM] == 0} then {
- perror "$NM does not exist"
- return
- }
-}
-
-send_user "Version [binutil_version $NM]"
-
-
-if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then {
- return
-}
-
-if [is_remote host] {
- set tempfile [remote_download host tmpdir/bintest.o]
-} else {
- set tempfile tmpdir/bintest.o
-}
-
-# Test nm with no arguments.
-
-# This test does not work correctly on ECOFF targets, because ECOFF
-# stores most symbols twice, which messes up the nm output.
-setup_xfail "alpha*-*-osf*" "alpha*-*-netware*"
-setup_xfail "mips*-*-ultrix*" "mips*-*-ecoff*" "mips*-*-irix4*"
-setup_xfail "mips*-*-riscos*" "mips*-*-sysv3*" "mips*-sony-bsd*"
-
-# This test does not work correctly on XCOFF targets, because XCOFF
-# does not enter static symbols in the symbol table.
-setup_xfail "*-*-aix*"
-
-set got [binutils_run $NM "$NMFLAGS $tempfile"]
-
-if [info exists vars] then { unset vars }
-while {[regexp "(\[a-zA-Z\]) (\[a-z_\]*_symbol)(.*)" $got all type symbol rest]} {
- set vars($symbol) $type
- set got $rest
-}
-
-if {![info exists vars(text_symbol)] \
- || $vars(text_symbol) != "T" \
- || ![info exists vars(data_symbol)] \
- || $vars(data_symbol) != "D" \
- || ![info exists vars(common_symbol)] \
- || $vars(common_symbol) != "C" \
- || ![info exists vars(external_symbol)] \
- || $vars(external_symbol) != "U" \
- || ![info exists vars(static_text_symbol)] \
- || $vars(static_text_symbol) != "t" \
- || ![info exists vars(static_data_symbol)] \
- || $vars(static_data_symbol) != "d"} {
- fail "nm (no arguments)"
-} else {
- pass "nm (no arguments)"
-}
-
-# Test nm -g
-
-set got [binutils_run $NM "$NMFLAGS -g $tempfile"]
-
-if [info exists vars] then { unset vars }
-while {[regexp "(\[a-z_\]*_symbol)(.*)" $got all symbol rest]} {
- set vars($symbol) 1
- set got $rest
-}
-
-if {![info exists vars(text_symbol)] \
- || ![info exists vars(data_symbol)] \
- || ![info exists vars(common_symbol)] \
- || ![info exists vars(external_symbol)] \
- || [info exists vars(static_text_symbol)] \
- || [info exists vars(static_data_symbol)]} {
- fail "nm -g"
-} else {
- pass "nm -g"
-}
-
-# Test nm -P
-
-# This test does not work correctly on ECOFF targets, because ECOFF
-# stores most symbols twice, which messes up the nm output.
-setup_xfail "alpha*-*-osf*" "alpha*-*-netware*"
-setup_xfail "mips*-*-ultrix*" "mips*-*-ecoff*" "mips*-*-irix4*"
-setup_xfail "mips*-*-riscos*" "mips*-*-sysv3*" "mips*-sony-bsd*"
-
-# This test does not work correctly on XCOFF targets, because XCOFF
-# does not enter static symbols in the symbol table.
-setup_xfail "*-*-aix*"
-
-set got [binutils_run $NM "$NMFLAGS -P $tempfile"]
-
-set want "common_symbol C \[0\]*4.*data_symbol D \[0-9a-fA-F\]*.*external_symbol U.*static_data_symbol d \[0-9a-fA-F\]*.*static_text_symbol t \[0-9a-fA-F\]*.*text_symbol T \[0-9a-fA-F\]*"
-
-if [regexp $want $got] then {
- pass "nm -P"
-} else {
- fail "nm -P"
-}
-
-# There are certainly other tests that could be run.
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/objcopy.exp b/binutils-2.17/binutils/testsuite/binutils-all/objcopy.exp
deleted file mode 100644
index 23e537ea..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/objcopy.exp
+++ /dev/null
@@ -1,720 +0,0 @@
-# Copyright 1994, 1995, 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@prep.ai.mit.edu
-
-# Written by Ian Lance Taylor <ian@cygnus.com>
-
-if ![is_remote host] {
- if {[which $OBJCOPY] == 0} then {
- perror "$OBJCOPY does not exist"
- return
- }
-}
-
-send_user "Version [binutil_version $OBJCOPY]"
-
-if ![is_remote host] {
- set tempfile tmpdir/bintest.o
- set copyfile tmpdir/copy
-} else {
- set tempfile [remote_download host tmpdir/bintest.o]
- set copyfile copy
-}
-
-# Test that objcopy does not modify a file when copying it.
-
-proc objcopy_test {testname srcfile} {
- global OBJCOPY
- global OBJCOPYFLAGS
- global srcdir
- global subdir
- global tempfile
- global copyfile
-
- if {![binutils_assemble $srcdir/$subdir/${srcfile} tmpdir/bintest.o]} then {
- perror "unresolved $testname"
- unresolved "objcopy ($testname)"
- return
- }
-
- set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS $tempfile ${copyfile}.o"]
-
- if ![string match "" $got] then {
- fail "objcopy ($testname)"
- } else {
- send_log "cmp $tempfile ${copyfile}.o\n"
- verbose "cmp $tempfile ${copyfile}.o"
- if [is_remote host] {
- set src1 tmpdir/bintest.o
- set src2 tmpdir/copy.o
- remote_upload host $tempfile $src1
- remote_upload host ${copyfile}.o $src2
- } else {
- set src1 ${tempfile}
- set src2 ${copyfile}.o
- }
- set status [remote_exec build cmp "${src1} ${src2}"]
- set exec_output [lindex $status 1]
- set exec_output [prune_warnings $exec_output]
-
- # On some systems the result of objcopy will not be identical.
- # Usually this is just because gas isn't using bfd to write the
- # files in the first place, and may order things a little
- # differently. Those systems should use setup_xfail here.
-
- setup_xfail "h8300-*-rtems*" "h8300-*-coff"
- setup_xfail "h8500-*-rtems*" "h8500-*-coff"
- setup_xfail "hppa*-*-*"
- setup_xfail "i960-*"
- setup_xfail "m68*-*-*coff" "m68*-*-hpux*" "m68*-*-lynxos*"
- setup_xfail "m68*-*-sysv*" "m68*-apple-aux*"
- setup_xfail "m8*-*"
- setup_xfail "or32-*-rtems*" "or32-*-coff"
- setup_xfail "sh-*-coff*" "sh-*-rtems*"
- setup_xfail "tic4x-*-*" "tic80-*-*" "w65-*"
-
- clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*"
- clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-rtems*" "*-*-*elf*"
- clear_xfail "m68*-*-sysv4*"
-
- if [string match "" $exec_output] then {
- pass "objcopy ($testname)"
- } else {
- send_log "$exec_output\n"
- verbose "$exec_output" 1
-
- # On OSF/1, this succeeds with gas and fails with /bin/as.
- setup_xfail "alpha*-*-osf*"
-
- # This fails for COFF i960-vxworks targets.
- setup_xfail "i960-*-vxworks*"
-
- fail "objcopy ($testname)"
- }
- }
-}
-
-objcopy_test "simple copy" bintest.s
-
-# Test generating S records.
-
-# We make the srec filename 8.3 compatible. Note that the header string
-# matched against depends on the name of the file. Ugh.
-
-if [is_remote host] {
- set srecfile copy.sre
- set header_string S00B0000636F70792E737265C1
-} else {
- set srecfile ${copyfile}.srec
- set header_string S0130000746D706469722F636F70792E7372656397
-}
-
-set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $tempfile ${srecfile}"]
-
-if ![string match "" $got] then {
- fail "objcopy -O srec"
-} else {
- if [is_remote host] {
- remote_upload host ${srecfile} tmpdir/copy.srec
- set srecfile tmpdir/copy.srec
- }
- set file [open ${srecfile} r]
-
- # The first S record is fixed by the file name we are using.
- gets $file line
- send_log "$line\n"
- verbose $line
- if ![regexp "$header_string.*" $line] {
- send_log "bad header\n"
- fail "objcopy -O srec"
- } else {
- while {[gets $file line] != -1 \
- && [regexp "^S\[123\]\[0-9a-fA-F\]+\[\r\n\]*$" $line]} {
- send_log "$line\n"
- verbose $line
- set line "**EOF**"
- }
- send_log "$line\n"
- verbose $line
- if ![regexp "^S\[789\]\[0-9a-fA-F\]+\[\r\n\]*$" $line] then {
- send_log "bad trailer\n"
- fail "objcopy -O srec"
- } else {
- if {[gets $file line] != -1} then {
- send_log "garbage at end\n"
- send_log "$line\n"
- verbose $line
- fail "objcopy -O srec"
- } else {
- set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f ${copyfile}.srec"]
- if ![regexp "file format srec" $got] then {
- send_log "objdump failed\n"
- fail "objcopy -O srec"
- } else {
- pass "objcopy -O srec"
- }
- }
- }
- }
-
- close $file
-}
-
-# Test setting and adjusting the start address. We only test this
-# while generating S records, because we may not be able to set the
-# start address for other object file formats, and the S record case
-# is the only useful one anyhow.
-
-set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f $tempfile"]
-if ![regexp "start address (\[0-9a-fA-FxX\]+)" $got all origstart] then {
- perror "objdump can not recognize bintest.o"
- set origstart ""
-} else {
- set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec --set-start 0x7654 $tempfile ${copyfile}.srec"]
- if ![string match "" $got] then {
- fail "objcopy --set-start"
- } else {
- set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f ${copyfile}.srec"]
- if ![regexp "file format srec.*start address (\[0-9a-fA-FxX\]+)" $got all srecstart] then {
- fail "objcopy --set-start"
- } else {
- if {$srecstart != 0x7654} then {
- send_log "$srecstart != 0x7654\n"
- fail "objcopy --set-start"
- } else {
- pass "objcopy --set-start"
- }
- }
- }
-
- set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec --adjust-start 0x123 $tempfile ${copyfile}.srec"]
- if ![string match "" $got] then {
- fail "objcopy --adjust-start"
- } else {
- set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f ${copyfile}.srec"]
- if ![regexp "file format srec.*start address (\[0-9a-fA-FxX\]+)" $got all srecstart] then {
- fail "objcopy --adjust-start"
- } else {
- if {$srecstart != $origstart + 0x123} then {
- send_log "$srecstart != $origstart + 0x123\n"
- fail "objcopy --adjust-start"
- } else {
- pass "objcopy --adjust-start"
- }
- }
- }
-}
-
-# Test adjusting the overall VMA, and adjusting the VMA of a
-# particular section. We again only test this when generating S
-# records.
-
-set low ""
-set lowname ""
-
-set headers [binutils_run $OBJDUMP "$OBJDUMPFLAGS -h $tempfile"]
-
-set headers_regexp "\[ 0-9\]+(\[^ \]+)\[ \]*(\[0-9a-fA-F\]+)\[ \]+\[0-9a-fA-F\]+\[ \]+(\[0-9a-fA-F\]+)\[ \]+\[0-9a-fA-F\]+\[ \]+2\[*\]\[*\]\[0-9\]+(.*)"
-
-set got $headers
-while {[regexp $headers_regexp $got all name size vma rest]} {
- set vma 0x$vma
- set size 0x$size
- if {$size != 0} {
- if {$low == "" || $vma < $low} {
- set low $vma
- set lowname $name
- }
- }
- set got $rest
-}
-
-if {$low == "" || $origstart == ""} then {
- perror "objdump can not recognize bintest.o"
-} else {
- set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec --adjust-vma 0x123 $tempfile ${copyfile}.srec"]
- if ![string match "" $got] then {
- fail "objcopy --adjust-vma"
- } else {
- set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -fh ${copyfile}.srec"]
- set want "file format srec.*start address\[ \]*(\[0-9a-fA-FxX\]+).*sec1\[ \]+\[0-9a-fA-F\]+\[ \]+(\[0-9a-fA-F\]+)"
- if ![regexp $want $got all start vma] then {
- fail "objcopy --adjust-vma"
- } else {
- set vma 0x$vma
- if {$vma != $low + 0x123} then {
- send_log "$vma != $low + 0x123\n"
- fail "objcopy --adjust-vma"
- } else {
- if {$start != $origstart + 0x123} then {
- send_log "$start != $origstart + 0x123\n"
- fail "objcopy --adjust-vma"
- } else {
- pass "objcopy --adjust-vma"
- }
- }
- }
- }
-
- set arg ""
- set got $headers
- while {[regexp $headers_regexp $got all name size vma rest]} {
- set vma 0x$vma
- if {$vma == $low} then {
- set arg "$arg --adjust-section-vma $name+4"
- }
- set got $rest
- }
-
- set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $arg $tempfile ${copyfile}.srec"]
- if ![string match "" $got] then {
- fail "objcopy --adjust-section-vma +"
- } else {
- set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -h ${copyfile}.srec"]
- set want "file format srec.*sec1\[ \]+\[0-9a-fA-F\]+\[ \]+(\[0-9a-fA-F\]+)"
- if ![regexp $want $got all vma] then {
- fail "objcopy --adjust-section-vma +"
- } else {
- set vma 0x$vma
- if {$vma != $low + 4} then {
- send_log "$vma != $low + 4\n"
- fail "objcopy --adjust-section-vma +"
- } else {
- pass "objcopy --adjust-section-vma +"
- }
- }
- }
-
- regsub -all "\\+4" $arg "=[expr $low + 4]" argeq
- set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $argeq $tempfile ${copyfile}.srec"]
- if ![string match "" $got] then {
- fail "objcopy --adjust-section-vma ="
- } else {
- set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -h ${copyfile}.srec"]
- set want "file format srec.*sec1\[ \]+\[0-9a-fA-F\]+\[ \]+(\[0-9a-fA-F\]+)"
- if ![regexp $want $got all vma] then {
- fail "objcopy --adjust-section-vma ="
- } else {
- set vma 0x$vma
- if {$vma != $low + 4} then {
- send_log "$vma != $low + 4\n"
- fail "objcopy --adjust-section-vma ="
- } else {
- pass "objcopy --adjust-section-vma ="
- }
- }
- }
-}
-
-# Test stripping an object.
-
-proc strip_test { } {
- global AR
- global CC
- global STRIP
- global STRIPFLAGS
- global NM
- global NMFLAGS
- global srcdir
- global subdir
-
- set test "strip"
-
- if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } {
- untested $test
- return
- }
-
- if [is_remote host] {
- set archive libstrip.a
- set objfile [remote_download host tmpdir/testprog.o]
- remote_file host delete $archive
- } else {
- set archive tmpdir/libstrip.a
- set objfile tmpdir/testprog.o
- }
-
- remote_file build delete tmpdir/libstrip.a
-
- set exec_output [binutils_run $AR "rc $archive ${objfile}"]
- if ![string match "" $exec_output] {
- fail $test
- return
- }
-
- set exec_output [binutils_run $STRIP "$STRIPFLAGS $archive"]
- if ![string match "" $exec_output] {
- fail $test
- return
- }
-
- if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } {
- untested $test
- return
- }
-
- if [is_remote host] {
- set objfile [remote_download host tmpdir/testprog.o]
- } else {
- set objfile tmpdir/testprog.o
- }
-
- set exec_output [binutils_run $STRIP "$STRIPFLAGS $objfile"]
- if ![string match "" $exec_output] {
- fail $test
- return
- }
-
- set exec_output [binutils_run $NM "-a $NMFLAGS $objfile"]
- if ![string match "*: no symbols*" $exec_output] {
- fail $test
- return
- }
-
- pass $test
-}
-
-strip_test
-
-# Test stripping an object file with saving a symbol
-
-proc strip_test_with_saving_a_symbol { } {
- global CC
- global STRIP
- global STRIPFLAGS
- global NM
- global NMFLAGS
- global srcdir
- global subdir
-
- set test "strip with saving a symbol"
-
- if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } {
- untested $test
- return
- }
-
- if [is_remote host] {
- set objfile [remote_download host tmpdir/testprog.o]
- } else {
- set objfile tmpdir/testprog.o
- }
-
- set exec_output [binutils_run $STRIP "$STRIPFLAGS -K main -K _main $objfile"]
- if ![string match "" $exec_output] {
- fail $test
- return
- }
-
- set exec_output [binutils_run $NM "$NMFLAGS $objfile"]
- if {![regexp {^([0-9a-fA-F]+)?[ ]+[TD] main} $exec_output] \
- && ![regexp {^([0-9a-fA-F]+)?[ ]+T _main} $exec_output]} {
- fail $test
- return
- }
-
- pass $test
-}
-
-strip_test_with_saving_a_symbol
-
-# Build a final executable.
-
-if { [istarget *-*-cygwin] || [istarget *-*-mingw32] } {
- set test_prog "testprog.exe"
-} else {
- set test_prog "testprog"
-}
-
-proc copy_setup { } {
- global srcdir
- global subdir
- global gcc_gas_flag
- global test_prog
-
- set res [build_wrapper testglue.o]
- set flags { debug }
-
- if { $res != "" } {
- lappend flags "additional_flags=[lindex $res 1]"
- set add_libs "testglue.o"
- } else {
- set add_libs ""
- }
-
- if { [istarget *-*-linux*] } {
- foreach i $gcc_gas_flag {
- set flags "additional_flags=$i $flags"
- }
- }
- if { [target_compile "$srcdir/$subdir/testprog.c $add_libs" tmpdir/$test_prog executable $flags] != "" } {
- return 2
- }
-
- set result [remote_load target tmpdir/$test_prog]
- set status [lindex $result 0]
-
- if { $status != "pass" } {
- perror "unresolved setup, status = $status"
- return 3
- }
-
- return 0
-}
-
-# Test copying an executable.
-
-proc copy_executable { prog flags test1 test2 } {
- global test_prog
-
- if [is_remote host] {
- set testfile [remote_download host tmpdir/$test_prog]
- set testcopy copyprog
- } else {
- set testfile tmpdir/$test_prog
- set testcopy tmpdir/copyprog
- }
- remote_file host delete $testcopy
-
- set exec_output [binutils_run $prog "$flags $testfile $testcopy"]
-
- if ![string match "" $exec_output] {
- fail $test1
- fail $test2
- return
- }
-
- if [is_remote host] {
- remote_upload host $testcopy tmpdir/copyprog
- }
-
- set status [remote_exec build "cmp" "tmpdir/$test_prog tmpdir/copyprog"]
- set exec_output [lindex $status 1]
-
- if [string match "" $exec_output] then {
- pass $test1
- } else {
- send_log "$exec_output\n"
- verbose "$exec_output"
-
- # This will fail for many reasons. For example, it will most
- # likely fail if a non-GNU linker is used. Therefore, we do
- # not insist that it pass. If you are using an assembler and
- # linker based on the same BFD as objcopy, it is worth
- # investigating to see why this failure occurs. If we are
- # cross compiling, we assume that a GNU linker is being used,
- # and expect it to succeed.
- if {[isnative]} then {
- setup_xfail "*-*-*"
- }
-
- # This also fails for mips*-*-elf targets. See elf32-mips.c
- # mips_elf_sym_is_global.
- setup_xfail "mips*-*-elf"
-
- setup_xfail "*arm*-*-coff"
- setup_xfail "xscale-*-coff"
- setup_xfail "arm*-*-pe"
- setup_xfail "thumb*-*-coff"
- setup_xfail "thumb*-*-pe"
-
- fail $test1
- }
-
- set output [remote_load target tmpdir/copyprog]
- set status [lindex $output 0]
- if { $status != "pass" } {
- fail $test2
- } else {
- pass $test2
- }
-}
-
-# Test stripping an executable
-
-proc strip_executable { prog flags test } {
- global NM
- global NMFLAGS
-
- remote_download build tmpdir/copyprog tmpdir/striprog
- if [is_remote host] {
- set copyfile [remote_download host tmpdir/striprog]
- } else {
- set copyfile tmpdir/striprog
- }
-
- set exec_output [binutils_run $prog "$flags ${copyfile}"]
- if ![string match "" $exec_output] {
- fail $test
- return
- }
-
- if [is_remote host] {
- remote_upload host ${copyfile} tmpdir/striprog
- }
-
- set result [remote_load target tmpdir/striprog]
- set status [lindex $result 0]
- if { $status != "pass" } {
- fail $test
- return
- }
-
- set exec_output [binutils_run $NM "$NMFLAGS ${copyfile}"]
- if ![string match "*: no symbols*" $exec_output] {
- fail $test
- return
- }
- pass $test
-}
-
-# Test stripping an executable with saving a symbol
-
-proc strip_executable_with_saving_a_symbol { prog flags test } {
- global NM
- global NMFLAGS
-
- remote_download build tmpdir/copyprog tmpdir/striprog
- if [is_remote host] {
- set copyfile [remote_download host tmpdir/striprog]
- } else {
- set copyfile tmpdir/striprog
- }
-
- set exec_output [binutils_run $prog "$flags ${copyfile}"]
- if ![string match "" $exec_output] {
- fail $test
- return
- }
-
- if [is_remote host] {
- remote_upload host ${copyfile} tmpdir/striprog
- }
-
- set result [remote_load target tmpdir/striprog]
- set status [lindex $result 0]
- if { $status != "pass" } {
- fail $test
- return
- }
-
- set exec_output [binutils_run $NM "$NMFLAGS ${copyfile}"]
- if { [istarget mmix-knuth-mmixware] } {
- # Whenever there's a symbol in the mmo format, there's the symbol
- # Main, so remove it manually from the expected output for sake of
- # this test.
-
- # Using "" not {} to get the \n and \r translated.
- regsub "^\[0-9a-fA-F\]+\[ \]+T Main\[\n\r\]+" $exec_output "" exec_output
- }
-
- if {![regexp {^([0-9a-fA-F]+)?[ ]+[TD] main} $exec_output] \
- && ![regexp {^([0-9a-fA-F]+)?[ ]+[TD] _main} $exec_output]} {
- fail $test
- return
- }
- pass $test
-}
-
-set test1 "simple objcopy of executable"
-set test2 "run objcopy of executable"
-set test3 "run stripped executable"
-set test4 "run stripped executable with saving a symbol"
-
-switch [copy_setup] {
- "1" {
- # do nothing
- }
- "2" {
- untested $test1
- untested $test2
- untested $test3
- untested $test4
- }
- "3" {
- unresolved $test1
- unresolved $test2
- unresolved $test3
- unresolved $test4
- }
- "0" {
- copy_executable "$OBJCOPY" "$OBJCOPYFLAGS" "$test1" "$test2"
- strip_executable "$STRIP" "$STRIPFLAGS" "$test3"
- strip_executable_with_saving_a_symbol "$STRIP" "-K main -K _main $STRIPFLAGS" "$test4"
- }
-}
-
-proc objcopy_test_readelf {testname srcfile} {
- global OBJCOPY
- global OBJCOPYFLAGS
- global READELF
- global srcdir
- global subdir
-
- if {![binutils_assemble $srcdir/$subdir/${srcfile} tmpdir/bintest.o]} then {
- unresolved "objcopy ($testname)"
- return
- }
-
- verbose -log "$OBJCOPY $OBJCOPYFLAGS tmpdir/bintest.o tmpdir/copy.o"
- catch "exec $OBJCOPY $OBJCOPYFLAGS tmpdir/bintest.o tmpdir/copy.o" exec_output
- if ![string match "" $exec_output] then {
- fail "objcopy ($testname)"
- return;
- }
-
- verbose -log "$READELF -a tmpdir/bintest.o > tmpdir/bintest.o.out"
- catch "exec $READELF -a tmpdir/bintest.o > tmpdir/bintest.o.out" exec_output
- set exec_output [prune_warnings $exec_output]
- if ![string match "" $exec_output] then {
- unresolved "objcopy ($testname)"
- return
- }
-
- verbose -log "$READELF -a tmpdir/copy.o > tmpdir/copy.o.out"
- catch "exec $READELF -a tmpdir/copy.o > tmpdir/copy.o.out" exec_output
- set exec_output [prune_warnings $exec_output]
- if ![string match "" $exec_output] then {
- unresolved "objcopy ($testname)"
- return
- }
-
- verbose -log "diff tmpdir/bintest.o.out tmpdir/copy.o.out"
- catch "exec diff tmpdir/bintest.o.out tmpdir/copy.o.out" exec_output
- set exec_output [prune_warnings $exec_output]
-
- if [string match "" $exec_output] then {
- pass "objcopy ($testname)"
- } else {
- fail "objcopy ($testname)"
- }
-}
-
-# ia64 specific tests
-if { ([istarget "ia64-*-elf*"]
- || [istarget "ia64-*-linux*"]) } {
- objcopy_test "ia64 link order" link-order.s
-}
-
-# ELF specific tests
-if [is_elf_format] {
- objcopy_test "ELF unknown section type" unknown.s
- objcopy_test_readelf "ELF group" group.s
-}
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/objdump.exp b/binutils-2.17/binutils/testsuite/binutils-all/objdump.exp
deleted file mode 100644
index 1774c854..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/objdump.exp
+++ /dev/null
@@ -1,164 +0,0 @@
-# Copyright 1993, 1994, 1995, 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@prep.ai.mit.edu
-
-# This file was written by Rob Savoye <rob@cygnus.com>
-# and rewritten by Ian Lance Taylor <ian@cygnus.com>
-
-if ![is_remote host] {
- if {[which $OBJDUMP] == 0} then {
- perror "$OBJDUMP does not exist"
- return
- }
-}
-
-send_user "Version [binutil_version $OBJDUMP]"
-
-# Simple test of objdump -i
-
-set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -i"]
-
-set cpus_expected [list]
-lappend cpus_expected alpha arc arm cris
-lappend cpus_expected d10v d30v fr30 fr500 fr550 h8 hppa i386 i860 i960 ip2022
-lappend cpus_expected m32r m68hc11 m68hc12 m68k m88k MCore
-lappend cpus_expected mips mn10200 mn10300 msp ns32k pj powerpc pyramid
-lappend cpus_expected romp rs6000 s390 sh sparc
-lappend cpus_expected tahoe tic54x tic80 tms320c30 tms320c4x tms320c54x v850
-lappend cpus_expected vax we32k x86-64 xscale z8k z8001 z8002
-
-# Make sure the target CPU shows up in the list.
-lappend cpus_expected ${target_cpu}
-
-# Create regexp
-set cpus_regex "([join $cpus_expected | ])"
-
-verbose -log "CPU regex: $cpus_regex"
-
-set want "BFD header file version.*srec\[^\n\]*\n\[^\n\]*header \[^\n\]*endian\[^\n\]*, data \[^\n\]*endian.*$cpus_regex"
-
-if [regexp $want $got] then {
- pass "objdump -i"
-} else {
- fail "objdump -i"
-}
-
-# The remaining tests require a test file.
-
-
-if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then {
- return
-}
-if [is_remote host] {
- set testfile [remote_download host tmpdir/bintest.o]
-} else {
- set testfile tmpdir/bintest.o
-}
-
-# Test objdump -f
-
-set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f $testfile"]
-
-set want "$testfile:\[ \]*file format.*architecture:\[ \]*${cpus_regex}.*HAS_RELOC.*HAS_SYMS"
-
-if ![regexp $want $got] then {
- fail "objdump -f"
-} else {
- pass "objdump -f"
-}
-
-# Test objdump -h
-
-set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -h $testfile"]
-
-set want "$testfile:\[ \]*file format.*Sections.*\[0-9\]+\[ \]+\[^ \]*(text|TEXT|\\\$CODE\\\$)\[^ \]*\[ \]*(\[0-9a-fA-F\]+).*\[0-9\]+\[ \]+\[^ \]*(\\.data|DATA)\[^ \]*\[ \]*(\[0-9a-fA-F\]+)"
-
-if ![regexp $want $got all text_name text_size data_name data_size] then {
- fail "objdump -h"
-} else {
- verbose "text name is $text_name size is $text_size"
- verbose "data name is $data_name size is $data_size"
- set ets 8
- set eds 4
- # The [ti]c4x target has the property sizeof(char)=sizeof(long)=1
- if [istarget *c4x*-*-*] then {
- set ets 2
- set eds 1
- }
- # c54x section sizes are in bytes, not octets; adjust accordingly
- if [istarget *c54x*-*-*] then {
- set ets 4
- set eds 2
- }
- if {[expr "0x$text_size"] < $ets || [expr "0x$data_size"] < $eds} then {
- send_log "sizes too small\n"
- fail "objdump -h"
- } else {
- pass "objdump -h"
- }
-}
-
-# Test objdump -t
-
-set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -t $testfile"]
-
-if [info exists vars] then { unset vars }
-while {[regexp "(\[a-z\]*_symbol)(.*)" $got all symbol rest]} {
- set vars($symbol) 1
- set got $rest
-}
-
-if {![info exists vars(text_symbol)] \
- || ![info exists vars(data_symbol)] \
- || ![info exists vars(common_symbol)] \
- || ![info exists vars(external_symbol)]} then {
- fail "objdump -t"
-} else {
- pass "objdump -t"
-}
-
-# Test objdump -r
-
-set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -r $testfile"]
-
-set want "$testfile:\[ \]*file format.*RELOCATION RECORDS FOR \\\[\[^\]\]*(text|TEXT|\\\$CODE\\\$)\[^\]\]*\\\].*external_symbol"
-
-if [regexp $want $got] then {
- pass "objdump -r"
-} else {
- fail "objdump -r"
-}
-
-# Test objdump -s
-
-set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -s $testfile"]
-
-set want "$testfile:\[ \]*file format.*Contents.*(text|TEXT|\\\$CODE\\\$)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000001|01000000|00000100).*Contents.*(data|DATA)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000002|02000000|00000200)"
-
-if [regexp $want $got] then {
- pass "objdump -s"
-} else {
- fail "objdump -s"
-}
-
-# Options which are not tested: -a -d -D -R -T -x -l --stabs
-# I don't see any generic way to test any of these other than -a.
-# Tests could be written for specific targets, and that should be done
-# if specific problems are found.
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/readelf.exp b/binutils-2.17/binutils/testsuite/binutils-all/readelf.exp
deleted file mode 100644
index 8815fee5..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/readelf.exp
+++ /dev/null
@@ -1,343 +0,0 @@
-# Copyright 1999, 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@prep.ai.mit.edu
-
-# Written by Nick Clifton <nickc@cygnus.com>
-# Based on scripts written by Ian Lance Taylor <ian@cygnus.com>
-# and Ken Raeburn <raeburn@cygnus.com>.
-
-# First some helpful procedures, then the tests themselves
-
-# Return the contents of the filename given
-proc file_contents { filename } {
- set file [open $filename r]
- set contents [read $file]
- close $file
- return $contents
-}
-
-# regexp_diff, based on simple_diff taken from ld test suite
-# compares two files line-by-line
-# file1 contains strings, file2 contains regexps and #-comments
-# blank lines are ignored in either file
-# returns non-zero if differences exist
-#
-proc regexp_diff { file_1 file_2 } {
-
- set eof -1
- set end_1 0
- set end_2 0
- set differences 0
- set diff_pass 0
-
- if [file exists $file_1] then {
- set file_a [open $file_1 r]
- } else {
- warning "$file_1 doesn't exist"
- return 1
- }
-
- if [file exists $file_2] then {
- set file_b [open $file_2 r]
- } else {
- fail "$file_2 doesn't exist"
- close $file_a
- return 1
- }
-
- verbose " Regexp-diff'ing: $file_1 $file_2" 2
-
- while { 1 } {
- set line_a ""
- set line_b ""
- while { [string length $line_a] == 0 } {
- if { [gets $file_a line_a] == $eof } {
- set end_1 1
- break
- }
- }
- while { [string length $line_b] == 0 || [string match "#*" $line_b] } {
- if [ string match "#pass" $line_b ] {
- set end_2 1
- set diff_pass 1
- break
- } elseif [ string match "#..." $line_b ] {
- if { [gets $file_b line_b] == $eof } {
- set end_2 1
- break
- }
- verbose "looking for \"^$line_b$\"" 3
- while { ![regexp "^$line_b$" "$line_a"] } {
- verbose "skipping \"$line_a\"" 3
- if { [gets $file_a line_a] == $eof } {
- set end_1 1
- break
- }
- }
- break
- }
- if { [gets $file_b line_b] == $eof } {
- set end_2 1
- break
- }
- }
-
- if { $diff_pass } {
- break
- } elseif { $end_1 && $end_2 } {
- break
- } elseif { $end_1 } {
- send_log "extra regexps in $file_2 starting with \"^$line_b$\"\nEOF from $file_1\n"
- verbose "extra regexps in $file_2 starting with \"^$line_b$\"\nEOF from $file_1" 3
- set differences 1
- break
- } elseif { $end_2 } {
- send_log "extra lines in $file_1 starting with \"^$line_a$\"\nEOF from $file_2\n"
- verbose "extra lines in $file_1 starting with \"^$line_a$\"\nEOF from $file_2\n" 3
- set differences 1
- break
- } else {
- verbose "regexp \"^$line_b$\"\nline \"$line_a\"" 3
- if ![regexp "^$line_b$" "$line_a"] {
- send_log "regexp_diff match failure\n"
- send_log "regexp \"^$line_b$\"\nline \"$line_a\"\n"
- set differences 1
- }
- }
- }
-
- if { $differences == 0 && !$diff_pass && [eof $file_a] != [eof $file_b] } {
- send_log "$file_1 and $file_2 are different lengths\n"
- verbose "$file_1 and $file_2 are different lengths" 3
- set differences 1
- }
-
- close $file_a
- close $file_b
-
- return $differences
-}
-
-# Find out the size by reading the output of the EI_CLASS field.
-# Similar to the test for readelf -h, but we're just looking for the
-# EI_CLASS line here.
-proc readelf_find_size { binary_file } {
- global READELF
- global READELFFLAGS
- global readelf_size
-
- set readelf_size ""
- set testname "finding out ELF size with readelf -h"
- catch "exec $READELF $READELFFLAGS -h $binary_file > readelf.out" got
-
- if ![string match "" $got] then {
- send_log $got
- fail $testname
- return
- }
-
- if { ! [regexp "\n\[ \]*Class:\[ \]*ELF(\[0-9\]+)\n" \
- [file_contents readelf.out] nil readelf_size] } {
- verbose -log "EI_CLASS field not found in output"
- verbose -log "output is \n[file_contents readelf.out]"
- fail $testname
- return
- } else {
- verbose -log "ELF size is $readelf_size"
- }
-
- pass $testname
-}
-
-# Run an individual readelf test.
-# Basically readelf is run on the binary_file with the given options.
-# Readelf's output is captured and then compared against the contents
-# of the regexp_file-readelf_size if it exists, else regexp_file.
-
-proc readelf_test { options binary_file regexp_file xfails } {
-
- global READELF
- global READELFFLAGS
- global readelf_size
- global srcdir
- global subdir
-
- send_log "exec $READELF $READELFFLAGS $options $binary_file > readelf.out\n"
- catch "exec $READELF $READELFFLAGS $options $binary_file > readelf.out" got
-
- foreach xfail $xfails {
- setup_xfail $xfail
- }
-
- if ![string match "" $got] then {
- fail "readelf $options (reason: unexpected output)"
- send_log $got
- send_log "\n"
- return
- }
-
- set target_machine ""
- if [istarget "mips*-*-*"] then {
- if { [istarget "mips*-*-*linux*"] } then {
- set target_machine tmips
- } else {
- set target_machine mips
- }
- }
-
- if { $target_machine != "" && [file exists $srcdir/$subdir/$regexp_file-$readelf_size-$target_machine] } then {
- set regexp_file $regexp_file-$readelf_size-$target_machine
- } elseif { $target_machine != "" && [file exists $srcdir/$subdir/$regexp_file-$target_machine] } then {
- set regexp_file $regexp_file-$target_machine
- } elseif { [file exists $srcdir/$subdir/$regexp_file-$readelf_size] } then {
- set regexp_file $regexp_file-$readelf_size
- }
-
- if { [regexp_diff readelf.out $srcdir/$subdir/$regexp_file] } then {
- fail "readelf $options"
- verbose "output is \n[file_contents readelf.out]" 2
- return
- }
-
- pass "readelf $options"
-}
-
-# Simple proc to skip certain expected warning messages.
-
-proc prune_readelf_wi_warnings { text } {
- regsub -all "(^|\n)(.*Skipping unexpected symbol type.*)" $text "\\1" text
- return $text
-}
-
-# Testing the "readelf -wi" option is difficult because there
-# is no guaranteed order to the output, and because some ports
-# will use indirect string references, whilst others will use
-# direct references. So instead of having an expected output
-# file, like the other readelf tests, we grep for strings that
-# really ought to be there.
-
-proc readelf_wi_test {} {
- global READELF
- global READELFFLAGS
- global srcdir
- global subdir
-
- # Compile the second test file.
- if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } {
- verbose "Unable to compile test file."
- untested "readelf -wi"
- return
- }
-
- # Download it.
- set tempfile [remote_download host tmpdir/testprog.o]
-
- # Run "readelf -wi" on it.
- send_log "exec $READELF $READELFFLAGS -wi $tempfile > readelf.out\n"
- catch "exec $READELF $READELFFLAGS -wi $tempfile > readelf.out" got
-
- # Upload the results.
- set output [remote_upload host readelf.out]
-
- file_on_host delete $tempfile
-
- # Strip any superflous warnings.
- set got [prune_readelf_wi_warnings $got]
-
- if ![string match "" $got] then {
- fail "readelf $options (reason: unexpected output)"
- send_log $got
- send_log "\n"
- return
- }
-
- if ![file size $output] then {
- # If the output file is empty, then this target does not
- # generate dwarf2 output. This is not a failure.
- verbose "No output from 'readelf -wi'"
- untested "readelf -wi"
- return
- }
-
- # Search for strings that should be in the output.
- set sought {
- ".*DW_TAG_compile_unit.*"
- ".*DW_TAG_subprogram.*"
- ".*DW_TAG_base_type.*"
- ".*DW_AT_producer.*(GNU C|indirect string).*"
- ".*DW_AT_language.*ANSI C.*"
- ".*DW_AT_name.*(testprog.c|indirect string).*"
- ".*DW_AT_name.*fn.*"
- ".*DW_AT_name.*(main|indirect string).*"
- ".*\(DW_OP_addr: 0\).*"
- }
-
- foreach looked_for $sought {
- set lines [grep $output $looked_for]
- if ![llength $lines] then {
- fail "readelf -wi: missing: $looked_for"
- send_log readelf.out
- return
- }
- }
-
- file_on_host delete $output
-
- # All done.
- pass "readelf -wi"
-}
-
-
-# Exclude non-ELF targets.
-if ![is_elf_format] {
- verbose "$READELF is only intended for ELF targets" 2
- return
-}
-
-if ![is_remote host] {
- if {[which $READELF] == 0} then {
- perror "$READELF does not exist"
- return
- }
-}
-
-send_user "Version [binutil_version $READELF]"
-
-# Assemble the test file.
-if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then {
- perror "unresolved 1"
- unresolved "readelf - failed to assemble"
- return
-}
-
-if ![is_remote host] {
- set tempfile tmpdir/bintest.o
-} else {
- set tempfile [remote_download host tmpdir/bintest.o]
-}
-
-# First, determine the size, so specific output matchers can be used.
-readelf_find_size $tempfile
-
-# Run the tests.
-readelf_test -h $tempfile readelf.h {}
-readelf_test -S $tempfile readelf.s {}
-readelf_test -s $tempfile readelf.ss {}
-readelf_test -r $tempfile readelf.r {}
-
-readelf_wi_test
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/readelf.h b/binutils-2.17/binutils/testsuite/binutils-all/readelf.h
deleted file mode 100644
index 01103fba..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/readelf.h
+++ /dev/null
@@ -1,20 +0,0 @@
-ELF Header:
- Magic: 7f 45 4c 46 0[12] 0[12] 01 .. .. 00 00 00 00 00 00 00
- Class: ELF[36][24]
- Data: 2's complement,.* endian
- Version: 1 \(current\)
- OS/ABI: .*
- ABI Version: .*
- Type: REL \(Relocatable file\)
- Machine: .*
- Version: 0x1
- Entry point address: 0x0
- Start of program headers: 0 \(bytes into file\)
- Start of section headers: .* \(bytes into file\)
- Flags: .*
- Size of this header: .* \(bytes\)
- Size of program headers: 0 \(bytes\)
- Number of program headers: 0
- Size of section headers: .* \(bytes\)
- Number of section headers: .*
- Section header string table index: .*
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/readelf.r b/binutils-2.17/binutils/testsuite/binutils-all/readelf.r
deleted file mode 100644
index 689049f1..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/readelf.r
+++ /dev/null
@@ -1,4 +0,0 @@
-
-Relocation section '.rel.*text' at offset 0x.* contains 1 entries:
- Offset Info Type Sym.Value Sym. Name.*
-00000004 [0-9A-Fa-f]+ *R_.*00000000 external_symbol.*
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/readelf.r-64 b/binutils-2.17/binutils/testsuite/binutils-all/readelf.r-64
deleted file mode 100644
index 3e3b0a4a..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/readelf.r-64
+++ /dev/null
@@ -1,4 +0,0 @@
-
-Relocation section '.rel.*text' at offset 0x.* contains 1 entries:
- Offset Info Type Sym. Value Sym. Name.*
-0+04 [0-9A-Fa-f]+ *R_.*0+00 external_symbol.*
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/readelf.s b/binutils-2.17/binutils/testsuite/binutils-all/readelf.s
deleted file mode 100644
index 985a48bf..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/readelf.s
+++ /dev/null
@@ -1,24 +0,0 @@
-There are .* section headers, starting at offset .*:
-
-Section Headers:
- \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
- \[ 0\] NULL 00000000 000000 000000 00 +0 +0 +0
-# On the normal MIPS systems, sections must be aligned to 16 byte
-# boundaries. On IA64, text sections are aligned to 16 byte boundaries.
- \[ 1\] .text PROGBITS 00000000 0000(34|40) 0000(08|10) 00 +AX +0 +0 +(.|..)
- \[ 2\] .rel.+text +REL. +0+ 0+.* 00000. 0. +. +1 +4
-# MIPS targets put .rela.text here.
-#...
- \[ .\] .data PROGBITS 00000000 0000(3c|48|50) 0000(04|10) 00 WA +0 +0 +(.|..)
- \[ .\] .bss NOBITS 00000000 0000(40|4c|60) 000000 00 WA +0 +0 +(.|..)
-# MIPS targets put .reginfo and .mdebug here.
-# v850 targets put .call_table_data and .call_table_text here.
-#...
- \[ .\] .shstrtab STRTAB 00000000 0+.* 0+.* 00 +0 +0 +.
- \[ .\] .symtab SYMTAB 00000000 0+.* 0+.* 10 +.. +. +4
- \[..\] .strtab STRTAB 00000000 0+.* 0+.* 00 +0 +0 +1
-Key to Flags:
- W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
- I \(info\), L \(link order\), G \(group\), x \(unknown\)
- O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
-
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/readelf.s-64 b/binutils-2.17/binutils/testsuite/binutils-all/readelf.s-64
deleted file mode 100644
index 5496b414..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/readelf.s-64
+++ /dev/null
@@ -1,25 +0,0 @@
-There are .* section headers, starting at offset .*:
-
-Section Headers:
- \[Nr\] Name Type Address Offset
- Size EntSize Flags Link Info Align
- \[ 0\] NULL 0000000000000000 00000000
- 0000000000000000 0000000000000000 0 0 0
- \[ 1\] .text PROGBITS 0000000000000000 00000040
- 00000000000000.. 0000000000000000 AX 0 0 .*
- \[ 2\] .rel.+text +REL. +0+ 0+.*
- 000000000000001. 000000000000001. . 1 8
- \[ 3\] .data PROGBITS 0000000000000000 000000(48|50)
- 000000000000000[48] 0000000000000000 WA 0 0 .*
- \[ 4\] .bss NOBITS 0000000000000000 000000(4c|50|54|58)
- 0000000000000000 0000000000000000 WA 0 0 .*
- \[ 5\] .shstrtab STRTAB 0000000000000000 000000(4c|50|54|58)
- 00000000000000.. 0000000000000000 0 0 .*
- \[ 6\] .symtab SYMTAB 0000000000000000 0+.*
- 0+.* 0000000000000018 7 6 8
- \[ 7\] .strtab STRTAB 0000000000000000 0+.*
- 0+.* 0000000000000000 0 0 1
-Key to Flags:
- W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\)
- I \(info\), L \(link order\), G \(group\), x \(unknown\)
- O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/readelf.ss b/binutils-2.17/binutils/testsuite/binutils-all/readelf.ss
deleted file mode 100644
index 7daee1b3..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/readelf.ss
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Symbol table '.symtab' contains .* entries:
- Num: Value Size Type Bind Vis Ndx Name
- 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
- 1: 00000000 0 SECTION LOCAL DEFAULT 1
- 2: 00000000 0 SECTION LOCAL DEFAULT [34]
- 3: 00000000 0 SECTION LOCAL DEFAULT [45]
- 4: 00000000 0 NOTYPE LOCAL DEFAULT 1 static_text_symbol
-# arm-elf targets add the $d mapping symbol here...
-#...
- .: 00000000 0 NOTYPE LOCAL DEFAULT [34] static_data_symbol
-# v850 targets include extra SECTION symbols here for the .call_table_data
-# and .call_table_text sections.
-#...
-.* .: 00000000 0 NOTYPE GLOBAL DEFAULT 1 text_symbol
- ..: 00000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol
- ..: 00000000 0 NOTYPE GLOBAL DEFAULT [34] data_symbol
- ..: 00000004 4 OBJECT GLOBAL DEFAULT ( COM|ANSI_COM) common_symbol
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/readelf.ss-64 b/binutils-2.17/binutils/testsuite/binutils-all/readelf.ss-64
deleted file mode 100644
index b29276d4..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/readelf.ss-64
+++ /dev/null
@@ -1,13 +0,0 @@
-
-Symbol table '.symtab' contains .* entries:
- Num: Value Size Type Bind Vis Ndx Name
- 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
- 1: 0000000000000000 0 SECTION LOCAL DEFAULT 1
- 2: 0000000000000000 0 SECTION LOCAL DEFAULT 3
- 3: 0000000000000000 0 SECTION LOCAL DEFAULT 4
- 4: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 static_text_symbol
- 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT 3 static_data_symbol
-.* .: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 1 text_symbol
- .: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol
- .: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 3 data_symbol
- .: 0000000000000004 4 OBJECT GLOBAL DEFAULT COM common_symbol
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/readelf.ss-mips b/binutils-2.17/binutils/testsuite/binutils-all/readelf.ss-mips
deleted file mode 100644
index 073ade01..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/readelf.ss-mips
+++ /dev/null
@@ -1,15 +0,0 @@
-
-Symbol table '.symtab' contains 12 entries:
- Num: Value Size Type Bind Vis Ndx Name
- 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
- 1: 00000000 0 SECTION LOCAL DEFAULT . (|\.text)
- 2: 00000000 0 SECTION LOCAL DEFAULT . (|\.data)
- 3: 00000000 0 SECTION LOCAL DEFAULT . (|\.bss)
- 4: 00000000 0 SECTION LOCAL DEFAULT . (|\.reginfo)
- 5: 00000000 0 SECTION LOCAL DEFAULT . (|\.pdr)
- 6: 00000000 0 OBJECT GLOBAL DEFAULT . text_symbol
- 7: 00000000 0 NOTYPE LOCAL DEFAULT . static_text_symbol
- 8: 00000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol
- 9: 00000000 0 OBJECT GLOBAL DEFAULT . data_symbol
- 10: 00000000 0 NOTYPE LOCAL DEFAULT . static_data_symbol
- 11: 00000004 4 OBJECT GLOBAL DEFAULT (PRC|COM) common_symbol
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/readelf.ss-tmips b/binutils-2.17/binutils/testsuite/binutils-all/readelf.ss-tmips
deleted file mode 100644
index 4f2fba22..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/readelf.ss-tmips
+++ /dev/null
@@ -1,15 +0,0 @@
-
-Symbol table '.symtab' contains 12 entries:
- Num: Value Size Type Bind Vis Ndx Name
- 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
- 1: 00000000 0 SECTION LOCAL DEFAULT 1
- 2: 00000000 0 SECTION LOCAL DEFAULT 3
- 3: 00000000 0 SECTION LOCAL DEFAULT 4
- 4: 00000000 0 NOTYPE LOCAL DEFAULT 1 static_text_symbol
- 5: 00000000 0 NOTYPE LOCAL DEFAULT 3 static_data_symbol
- 6: 00000000 0 SECTION LOCAL DEFAULT 5
- 7: 00000000 0 SECTION LOCAL DEFAULT 6
- 8: 00000000 0 OBJECT GLOBAL DEFAULT 1 text_symbol
- 9: 00000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol
- 10: 00000000 0 OBJECT GLOBAL DEFAULT 3 data_symbol
- 11: 00000004 4 OBJECT GLOBAL DEFAULT (PRC|COM) common_symbol
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/size.exp b/binutils-2.17/binutils/testsuite/binutils-all/size.exp
deleted file mode 100644
index de5c9b36..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/size.exp
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright 1993, 1994, 1995, 1997, 1998 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@prep.ai.mit.edu
-
-# This file was written by Rob Savoye <rob@cygnus.com>
-# and rewritten by Ian Lance Taylor <ian@cygnus.com>
-
-if ![is_remote host] {
- if {[which $SIZE] == 0} then {
- perror "$SIZE does not exist"
- return
- }
-}
-
-send_user "Version [binutil_version $SIZE]"
-
-
-if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then {
- return
-}
-
-if [is_remote host] {
- set testfile [remote_download host tmpdir/bintest.o]
-} else {
- set testfile tmpdir/bintest.o
-}
-
-set dec "\[0-9\]+"
-set hex "\[0-9a-fA-F\]+"
-
-# Test size with no arguments
-
-set got [binutils_run $SIZE "$SIZEFLAGS $testfile"]
-
-set want "($dec)\[ \]+($dec)\[ \]+($dec)\[ \]+($dec)\[ \]+($hex)\[ \]+${testfile}"
-
-if ![regexp $want $got all text data bss dtot hextot] then {
- fail "size (no arguments)"
-} else {
- if {$text < 8 || $data < 4} then {
- # The z80-coff port defaults to a "binary" like output
- # file format which does not include a data section.
- setup_xfail "z80-*-coff"
- fail "size (no arguments)"
- } else {
- pass "size (no arguments)"
- }
-}
-
-# Test size -A
-
-set got [binutils_run $SIZE "$SIZEFLAGS -A ${testfile}"]
-
-set want "${testfile}.*(text|TEXT)\[^\n\r\]*\[ \]($dec)\[ \]+$dec.*(\\.data|DATA)\[^\n\r\]*\[ \]($dec)\[ \]+$dec"
-
-if ![regexp $want $got all textname textsize dataname datasize] then {
- fail "size -A"
-} else {
- verbose "text size: $textsize"
- verbose "data size: $datasize"
- if {$textsize < 8 || $datasize < 4} then {
- fail "size -A"
- } else {
- pass "size -A"
- }
-}
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/testprog.c b/binutils-2.17/binutils/testsuite/binutils-all/testprog.c
deleted file mode 100644
index 6ead98e7..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/testprog.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* This program is used to test objcopy, readelf and strip. */
-
-extern int strcmp (char *, const char *);
-extern int printf (const char *, ...);
-
-int common;
-int global = 1;
-static int local = 2;
-static char string[] = "string";
-
-int
-fn (void)
-{
- return 3;
-}
-
-int
-main (void)
-{
- if (common != 0
- || global != 1
- || local != 2
- || strcmp (string, "string") != 0)
- {
- printf ("failed\n");
- return 1;
- }
-
- printf ("ok\n");
- return 0;
-}
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/unknown.s b/binutils-2.17/binutils/testsuite/binutils-all/unknown.s
deleted file mode 100644
index e1b53c01..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/unknown.s
+++ /dev/null
@@ -1,4 +0,0 @@
- .section .foo,"a","note"
- .global _start
-_start:
- .long 0
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/vax/entrymask.s b/binutils-2.17/binutils/testsuite/binutils-all/vax/entrymask.s
deleted file mode 100644
index 18f90106..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/vax/entrymask.s
+++ /dev/null
@@ -1,11 +0,0 @@
-.text
-
-.global label1
-label1:
- .word 0x0110
-
-.global label2
-.type label2,@function
-label2:
- .word 0x0224
-
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/vax/objdump.exp b/binutils-2.17/binutils/testsuite/binutils-all/vax/objdump.exp
deleted file mode 100644
index ada84bef..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/vax/objdump.exp
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2002, 2005
-# 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-#
-
-#
-# This file was written by Jan-Benedict Glaw <jbglaw@lug-owl.de>. It's goal
-# is to check the VAX-specific support of the -M entry:0xf00 switch, which
-# allows to force function entry masks at given addresses.
-#
-
-if ![istarget vax*-*-*] then {
- return
-}
-
-if {[which $OBJDUMP] == 0} then {
- perror "$OBJDUMP does not exist"
- return
-}
-
-send_user "Version [binutil_version $OBJDUMP]"
-
-if {![binutils_assemble $srcdir/$subdir/entrymask.s tmpdir/entrymask.o]} then {
- return
-}
-
-if [is_remote host] {
- set objfile [remote_download host tmpdir/entrymask.o]
-} else {
- set objfile tmpdir/entrymask.o
-}
-
-#
-# We check both function entry points. The second one at offset 2 will
-# show up automatically on ELF targets, but needs to be set on a.out
-# targets.
-#
-set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -d -M entry:0x0 -M entry:2 $objfile"]
-set want1 "\[ \]+0:\[ \]+10 01\[ \]+\\.word 0x0110.\*r8 r4"
-set want2 "\[ \]+2:\[ \]+24 02\[ \]+\\.word 0x0224.\*r9 r5 r2"
-if [regexp $want1 $got] then {
- pass "entrymask test 1"
-} else {
- fail "entrymask test 1"
-}
-if [regexp $want2 $got] then {
- pass "entrymask test 2"
-} else {
- fail "entrymask test 2"
-}
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/README b/binutils-2.17/binutils/testsuite/binutils-all/windres/README
deleted file mode 100644
index f9903494..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/README
+++ /dev/null
@@ -1,26 +0,0 @@
-Instructions for adding tests:
-
-The files *.rc are hand-edited or copied from elsewhere.
-
-The script msupdate is used to generate the *.rsd files, which are
-dumps of the RES formatted output of MSVC's RC utility.
-
-Within the *.rc file, the first N lines beginning with a special
-comment can control the test. Comments are // /* or # (// is
-recommended, as both rc and windres support those). Each line
-contains one command:
-
- // parse-only
- // xfail *-*-*
-
-parse-only must preceed any xfail commands, and indicates that a
-comparison with the *.rsd file will not happen. xfail indicates when
-a failure is expected. This should only be used for when you are
-adding a new test that is known to fail because of a bug in windres,
-and it should be removed when the bug is fixed.
-
-You can use pfail or cfail instead of xfail to indicate that only the
-parsing or comparing should be xfailed.
-
-The windres tests only run for ix86 targets, because the
-MSVC-generated *.rsd files are generated for that.
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/bmp1.bmp b/binutils-2.17/binutils/testsuite/binutils-all/windres/bmp1.bmp
deleted file mode 100644
index 208a8aa2..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/bmp1.bmp
+++ /dev/null
Binary files differ
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/bmpalign.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/bmpalign.rc
deleted file mode 100644
index 7cb5583d..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/bmpalign.rc
+++ /dev/null
@@ -1,9 +0,0 @@
-LANGUAGE 0, 0
-
-A BITMAP MOVEABLE PURE DISCARDABLE "bmp1.bmp"
-
-AB BITMAP MOVEABLE PURE DISCARDABLE "bmp1.bmp"
-
-ABC BITMAP MOVEABLE PURE DISCARDABLE "bmp1.bmp"
-
-ABCD BITMAP MOVEABLE PURE DISCARDABLE "bmp1.bmp"
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/bmpalign.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/bmpalign.rsd
deleted file mode 100644
index 3ee53965..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/bmpalign.rsd
+++ /dev/null
@@ -1,38 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 6c000000 20000000 ffff0200 41000000 l... .......A...
- 0030 00000000 30100000 00000000 00000000 ....0...........
- 0040 28000000 01000000 01000000 01000400 (...............
- 0050 00000000 04000000 00000000 00000000 ................
- 0060 00000000 00000000 00000000 00008000 ................
- 0070 00800000 00808000 80000000 80008000 ................
- 0080 80800000 c0c0c000 80808000 0000ff00 ................
- 0090 00ff0000 00ffff00 ff000000 ff00ff00 ................
- 00a0 ffff0000 ffffff00 90000000 6c000000 ............l...
- 00b0 24000000 ffff0200 41004200 00000000 $.......A.B.....
- 00c0 00000000 30100000 00000000 00000000 ....0...........
- 00d0 28000000 01000000 01000000 01000400 (...............
- 00e0 00000000 04000000 00000000 00000000 ................
- 00f0 00000000 00000000 00000000 00008000 ................
- 0100 00800000 00808000 80000000 80008000 ................
- 0110 80800000 c0c0c000 80808000 0000ff00 ................
- 0120 00ff0000 00ffff00 ff000000 ff00ff00 ................
- 0130 ffff0000 ffffff00 90000000 6c000000 ............l...
- 0140 24000000 ffff0200 41004200 43000000 $.......A.B.C...
- 0150 00000000 30100000 00000000 00000000 ....0...........
- 0160 28000000 01000000 01000000 01000400 (...............
- 0170 00000000 04000000 00000000 00000000 ................
- 0180 00000000 00000000 00000000 00008000 ................
- 0190 00800000 00808000 80000000 80008000 ................
- 01a0 80800000 c0c0c000 80808000 0000ff00 ................
- 01b0 00ff0000 00ffff00 ff000000 ff00ff00 ................
- 01c0 ffff0000 ffffff00 90000000 6c000000 ............l...
- 01d0 28000000 ffff0200 41004200 43004400 (.......A.B.C.D.
- 01e0 00000000 00000000 30100000 00000000 ........0.......
- 01f0 00000000 28000000 01000000 01000000 ....(...........
- 0200 01000400 00000000 04000000 00000000 ................
- 0210 00000000 00000000 00000000 00000000 ................
- 0220 00008000 00800000 00808000 80000000 ................
- 0230 80008000 80800000 c0c0c000 80808000 ................
- 0240 0000ff00 00ff0000 00ffff00 ff000000 ................
- 0250 ff00ff00 ffff0000 ffffff00 90000000 ................
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/capstyle.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/capstyle.rc
deleted file mode 100644
index 238d21ea..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/capstyle.rc
+++ /dev/null
@@ -1,5 +0,0 @@
-101 DIALOG DISCARDABLE 0, 0, 186, 95
-CAPTION ""
-BEGIN
- DEFPUSHBUTTON "OK",1,129,7,50,14
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/capstyle.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/capstyle.rsd
deleted file mode 100644
index fef81169..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/capstyle.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 0000c880 00000000 01000000 0000ba00 ................
- 0050 5f000000 00000000 01000150 00000000 _..........P....
- 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
- 0070 4b000000 00000000 K.......
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/checkbox.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/checkbox.rc
deleted file mode 100644
index a941d6a5..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/checkbox.rc
+++ /dev/null
@@ -1,5 +0,0 @@
-501 DIALOGEX DISCARDABLE 0, 0, 168, 137
-BEGIN
- CHECKBOX 108, 1002, 12, 76, 123, 41
- CHECKBOX "tick me", 1001, 12, 15, 123, 41
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/checkbox.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/checkbox.rsd
deleted file mode 100644
index f3ea5a04..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/checkbox.rsd
+++ /dev/null
@@ -1,12 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 72000000 20000000 ffff0500 fffff501 r... ...........
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 0100ffff 00000000 00000000 00008880 ................
- 0050 02000000 0000a800 89000000 00000000 ................
- 0060 00000000 00000000 02000150 0c004c00 ...........P..L.
- 0070 7b002900 ea030000 ffff8000 ffff6c00 {.)...........l.
- 0080 00000000 00000000 00000000 02000150 ...............P
- 0090 0c000f00 7b002900 e9030000 ffff8000 ....{.).........
- 00a0 74006900 63006b00 20006d00 65000000 t.i.c.k. .m.e...
- 00b0 00000000 ....
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/combobox.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/combobox.rc
deleted file mode 100644
index f9f52d18..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/combobox.rc
+++ /dev/null
@@ -1,8 +0,0 @@
-#define CBS_SIMPLE 0x1
-#define WS_TABSTOP 0x10000
-
-501 DIALOG DISCARDABLE 0, 0, 168, 137
-BEGIN
- COMBOBOX 1001,10,10,50,54, CBS_SIMPLE | WS_TABSTOP
-END
-
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/combobox.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/combobox.rsd
deleted file mode 100644
index 509c7382..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/combobox.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 32000000 20000000 ffff0500 fffff501 2... ...........
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 00008880 00000000 01000000 0000a800 ................
- 0050 89000000 00000000 01000150 00000000 ...........P....
- 0060 0a000a00 32003600 e903ffff 85000000 ....2.6.........
- 0070 00000000 ....
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/deflang.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/deflang.rc
deleted file mode 100644
index 1f3c20f5..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/deflang.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-101 DIALOG DISCARDABLE 0, 0, 186, 95
-BEGIN
- DEFPUSHBUTTON "OK",1,129,7,50,14
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/deflang.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/deflang.rsd
deleted file mode 100644
index 270b6223..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/deflang.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 00008880 00000000 01000000 0000ba00 ................
- 0050 5f000000 00000000 01000150 00000000 _..........P....
- 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
- 0070 4b000000 00000000 K.......
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialog0.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/dialog0.rc
deleted file mode 100644
index fba7ed77..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialog0.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-101 DIALOG 0, 0, 186, 95
-BEGIN
- DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialog0.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/dialog0.rsd
deleted file mode 100644
index 270b6223..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialog0.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 00008880 00000000 01000000 0000ba00 ................
- 0050 5f000000 00000000 01000150 00000000 _..........P....
- 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
- 0070 4b000000 00000000 K.......
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialog1.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/dialog1.rc
deleted file mode 100644
index 71deb4a5..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialog1.rc
+++ /dev/null
@@ -1,5 +0,0 @@
-101 DIALOG DISCARDABLE 0, 0, 186, 95
-BEGIN
- DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
-END
-
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialog1.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/dialog1.rsd
deleted file mode 100644
index 270b6223..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialog1.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 00008880 00000000 01000000 0000ba00 ................
- 0050 5f000000 00000000 01000150 00000000 _..........P....
- 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
- 0070 4b000000 00000000 K.......
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialogid.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/dialogid.rc
deleted file mode 100644
index 43bf1ec8..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialogid.rc
+++ /dev/null
@@ -1,9 +0,0 @@
-// Test created based on bug report submitted to binutils mailing list
-// See: http://sources.redhat.com/ml/binutils/2003-03/msg00312.html
-
-101 DIALOGEX 0, 0, 200, 200
-
-BEGIN
-CONTROL 108, -1, "classname", 77, 11, 11, 83, 162
-CONTROL "stringid", 102, "classname", 0x5000120e, 5, 5, 10, 10
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialogid.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/dialogid.rsd
deleted file mode 100644
index 1e6bb188..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialogid.rsd
+++ /dev/null
@@ -1,18 +0,0 @@
-
-fred.res: file format binary
-
-Contents of section .data:
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 94000000 20000000 ffff0500 ffff6500 .... .........e.
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 0100ffff 00000000 00000000 00008880 ................
- 0050 02000000 0000c800 c8000000 00000000 ................
- 0060 00000000 00000000 4d000050 0b000b00 ........M..P....
- 0070 5300a200 ffff0000 63006c00 61007300 S.......c.l.a.s.
- 0080 73006e00 61006d00 65000000 ffff6c00 s.n.a.m.e.....l.
- 0090 00000000 00000000 00000000 0e120050 ...............P
- 00a0 05000500 0a000a00 66000000 63006c00 ........f...c.l.
- 00b0 61007300 73006e00 61006d00 65000000 a.s.s.n.a.m.e...
- 00c0 73007400 72006900 6e006700 69006400 s.t.r.i.n.g.i.d.
- 00d0 00000000 ....
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialogsignature.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/dialogsignature.rc
deleted file mode 100644
index a05ce190..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialogsignature.rc
+++ /dev/null
@@ -1,5 +0,0 @@
-101 DIALOG DISCARDABLE 0, 0, 186, 95
-STYLE 1
-BEGIN
- DEFPUSHBUTTON "OK",1,129,7,50,14
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialogsignature.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/dialogsignature.rsd
deleted file mode 100644
index a01c14de..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/dialogsignature.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 01000000 00000000 01000000 0000ba00 ................
- 0050 5f000000 00000000 01000150 00000000 _..........P....
- 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
- 0070 4b000000 00000000 K.......
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/dlgfont.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/dlgfont.rc
deleted file mode 100644
index 9c763e59..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/dlgfont.rc
+++ /dev/null
@@ -1,29 +0,0 @@
-101 DIALOG DISCARDABLE 0, 0, 186, 95
-FONT 8, "Tahoma"
-BEGIN
- DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
-END
-
-102 DIALOGEX DISCARDABLE 0, 0, 186, 95
-FONT 8, "Tahoma"
-BEGIN
- DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
-END
-
-103 DIALOGEX DISCARDABLE 0, 0, 186, 95
-FONT 8, "Tahoma", 0
-BEGIN
- DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
-END
-
-104 DIALOGEX DISCARDABLE 0, 0, 186, 95
-FONT 8, "Tahoma", 0, 0
-BEGIN
- DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
-END
-
-105 DIALOGEX DISCARDABLE 0, 0, 186, 95
-FONT 8, "Tahoma", 0, 0, 1
-BEGIN
- DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/dlgfont.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/dlgfont.rsd
deleted file mode 100644
index 8a25cfa6..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/dlgfont.rsd
+++ /dev/null
@@ -1,39 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 46000000 20000000 ffff0500 ffff6500 F... .........e.
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 40008880 00000000 01000000 0000ba00 @...............
- 0050 5f000000 00000000 08005400 61006800 _.........T.a.h.
- 0060 6f006d00 61000000 01000150 00000000 o.m.a......P....
- 0070 81000700 32000e00 0100ffff 80004f00 ....2.........O.
- 0080 4b000000 00000000 58000000 20000000 K.......X... ...
- 0090 ffff0500 ffff6600 00000000 30100904 ......f.....0...
- 00a0 00000000 00000000 0100ffff 00000000 ................
- 00b0 00000000 40008880 01000000 0000ba00 ....@...........
- 00c0 5f000000 00000000 08000000 00015400 _.............T.
- 00d0 61006800 6f006d00 61000000 00000000 a.h.o.m.a.......
- 00e0 00000000 01000150 81000700 32000e00 .......P....2...
- 00f0 01000000 ffff8000 4f004b00 00000000 ........O.K.....
- 0100 58000000 20000000 ffff0500 ffff6700 X... .........g.
- 0110 00000000 30100904 00000000 00000000 ....0...........
- 0120 0100ffff 00000000 00000000 40008880 ............@...
- 0130 01000000 0000ba00 5f000000 00000000 ........_.......
- 0140 08000000 00015400 61006800 6f006d00 ......T.a.h.o.m.
- 0150 61000000 00000000 00000000 01000150 a..............P
- 0160 81000700 32000e00 01000000 ffff8000 ....2...........
- 0170 4f004b00 00000000 58000000 20000000 O.K.....X... ...
- 0180 ffff0500 ffff6800 00000000 30100904 ......h.....0...
- 0190 00000000 00000000 0100ffff 00000000 ................
- 01a0 00000000 40008880 01000000 0000ba00 ....@...........
- 01b0 5f000000 00000000 08000000 00015400 _.............T.
- 01c0 61006800 6f006d00 61000000 00000000 a.h.o.m.a.......
- 01d0 00000000 01000150 81000700 32000e00 .......P....2...
- 01e0 01000000 ffff8000 4f004b00 00000000 ........O.K.....
- 01f0 58000000 20000000 ffff0500 ffff6900 X... .........i.
- 0200 00000000 30100904 00000000 00000000 ....0...........
- 0210 0100ffff 00000000 00000000 40008880 ............@...
- 0220 01000000 0000ba00 5f000000 00000000 ........_.......
- 0230 08000000 00015400 61006800 6f006d00 ......T.a.h.o.m.
- 0240 61000000 00000000 00000000 01000150 a..............P
- 0250 81000700 32000e00 01000000 ffff8000 ....2...........
- 0260 4f004b00 00000000 O.K.....
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/edittext.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/edittext.rc
deleted file mode 100644
index 0fd70001..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/edittext.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-501 DIALOG DISCARDABLE 0, 0, 168, 137
-BEGIN
- EDITTEXT 1001, 28, 63, 137, 52
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/edittext.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/edittext.rsd
deleted file mode 100644
index 7132b20f..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/edittext.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 32000000 20000000 ffff0500 fffff501 2... ...........
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 00008880 00000000 01000000 0000a800 ................
- 0050 89000000 00000000 00008150 00000000 ...........P....
- 0060 1c003f00 89003400 e903ffff 81000000 ..?...4.........
- 0070 00000000 ....
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/escapea.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/escapea.rc
deleted file mode 100644
index 0e3e9670..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/escapea.rc
+++ /dev/null
@@ -1,7 +0,0 @@
-20 MENU DISCARDABLE
-BEGIN
- POPUP "&File"
- BEGIN
- MENUITEM "&Open\a^O", 17
- END
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/escapea.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/escapea.rsd
deleted file mode 100644
index c8a7f4eb..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/escapea.rsd
+++ /dev/null
@@ -1,7 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 28000000 20000000 ffff0400 ffff1400 (... ...........
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 00000000 90002600 46006900 6c006500 ......&.F.i.l.e.
- 0050 00008000 11002600 4f007000 65006e00 ......&.O.p.e.n.
- 0060 08005e00 4f000000 ..^.O...
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/escapex-2.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/escapex-2.rc
deleted file mode 100755
index ed35b214..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/escapex-2.rc
+++ /dev/null
@@ -1,5 +0,0 @@
-101 DIALOG DISCARDABLE 0, 0, 186, 95
-BEGIN
- LTEXT "\xB0ABC",-1,23,46,28,8
-END
-
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/escapex-2.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/escapex-2.rsd
deleted file mode 100644
index 774c648c..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/escapex-2.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 3a000000 20000000 ffff0500 ffff6500 :... .........e.
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 00008880 00000000 01000000 0000ba00 ................
- 0050 5f000000 00000000 00000250 00000000 _..........P....
- 0060 17002e00 1c000800 ffffffff 8200b000 ................
- 0070 41004200 43000000 00000000 A.B.C.......
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/escapex.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/escapex.rc
deleted file mode 100644
index 1a025f65..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/escapex.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-101 DIALOG DISCARDABLE 0, 0, 186, 95
-BEGIN
- LTEXT "\xB0",-1,23,46,28,8
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/escapex.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/escapex.rsd
deleted file mode 100644
index 280aead0..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/escapex.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 34000000 20000000 ffff0500 ffff6500 4... .........e.
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 00008880 00000000 01000000 0000ba00 ................
- 0050 5f000000 00000000 00000250 00000000 _..........P....
- 0060 17002e00 1c000800 ffffffff 8200b000 ................
- 0070 00000000 ....
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/lang.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/lang.rc
deleted file mode 100644
index d8943155..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/lang.rc
+++ /dev/null
@@ -1,15 +0,0 @@
-#include "windows.h"
-
-LANGUAGE 0, 0
-
-1 MENU MOVEABLE PURE DISCARDABLE
-LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
-BEGIN
- POPUP "&Datei" { MENUITEM "foo", 1 }
-END
-
-1 MENU MOVEABLE PURE DISCARDABLE
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-BEGIN
- POPUP "&File" { MENUITEM "foo", 1 }
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/lang.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/lang.rsd
deleted file mode 100644
index 9e0045f6..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/lang.rsd
+++ /dev/null
@@ -1,10 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 20000000 20000000 ffff0400 ffff0100 ... ...........
- 0030 00000000 30100704 00000000 00000000 ....0...........
- 0040 00000000 90002600 44006100 74006500 ......&.D.a.t.e.
- 0050 69000000 80000100 66006f00 6f000000 i.......f.o.o...
- 0060 1e000000 20000000 ffff0400 ffff0100 .... ...........
- 0070 00000000 30100904 00000000 00000000 ....0...........
- 0080 00000000 90002600 46006900 6c006500 ......&.F.i.l.e.
- 0090 00008000 01006600 6f006f00 00000000 ......f.o.o.....
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/listbox.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/listbox.rc
deleted file mode 100644
index bb7c121e..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/listbox.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-501 DIALOG DISCARDABLE 0, 0, 168, 137
-BEGIN
- LISTBOX 1001, 28, 63, 137, 52
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/listbox.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/listbox.rsd
deleted file mode 100644
index 4c3eadfc..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/listbox.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 32000000 20000000 ffff0500 fffff501 2... ...........
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 00008880 00000000 01000000 0000a800 ................
- 0050 89000000 00000000 01008050 00000000 ...........P....
- 0060 1c003f00 89003400 e903ffff 83000000 ..?...4.........
- 0070 00000000 ....
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/msupdate b/binutils-2.17/binutils/testsuite/binutils-all/windres/msupdate
deleted file mode 100755
index 31ceb07e..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/msupdate
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/sh
-# Copyright 2001 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@prep.ai.mit.edu
-
-# Written by DJ Delorie <dj@redhat.com>
-
-# Run this on a machine with Cygwin and Microsoft Visual C to create
-# the RES files we match against.
-
-RC="rc"
-if test x"$1" != x""
-then
- RC="$1"
-fi
-
-for i in *.rc
-do
- o=`echo $i | sed s/.rc/.res/`
- d=`echo $i | sed s/.rc/.rsd/`
- echo "$i -> $o -> $d"
- $RC /fo$o $i
- objdump -b binary -s $o | sed -n '/^ [0-9a-f][0-9a-f]* /p' > $d
- rm $o
-done
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/nocaption.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/nocaption.rc
deleted file mode 100644
index 1f3c20f5..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/nocaption.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-101 DIALOG DISCARDABLE 0, 0, 186, 95
-BEGIN
- DEFPUSHBUTTON "OK",1,129,7,50,14
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/nocaption.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/nocaption.rsd
deleted file mode 100644
index 270b6223..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/nocaption.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 00008880 00000000 01000000 0000ba00 ................
- 0050 5f000000 00000000 01000150 00000000 _..........P....
- 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
- 0070 4b000000 00000000 K.......
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/printstyle.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/printstyle.rc
deleted file mode 100644
index 0066c995..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/printstyle.rc
+++ /dev/null
@@ -1,6 +0,0 @@
-101 DIALOG DISCARDABLE 0, 0, 186, 95
-STYLE 0
-BEGIN
- DEFPUSHBUTTON "OK",1,129,7,50,14
-END
-
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/printstyle.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/printstyle.rsd
deleted file mode 100644
index 6a4a919c..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/printstyle.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 00000000 00000000 01000000 0000ba00 ................
- 0050 5f000000 00000000 01000150 00000000 _..........P....
- 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
- 0070 4b000000 00000000 K.......
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/quoteclass.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/quoteclass.rc
deleted file mode 100644
index c1f98e19..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/quoteclass.rc
+++ /dev/null
@@ -1,8 +0,0 @@
-// parse-only
-
-101 DIALOG DISCARDABLE 0, 0, 186, 95
-CLASS "myclass"
-BEGIN
- DEFPUSHBUTTON "OK",1,129,7,50,14
-END
-
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/scrollbar.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/scrollbar.rc
deleted file mode 100644
index 9391d1ab..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/scrollbar.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-501 DIALOGEX 0, 0, 168, 137
-BEGIN
- SCROLLBAR 1001,43,68,105,10,0,0,0x81f503e9
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/scrollbar.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/scrollbar.rsd
deleted file mode 100644
index c509c4cd..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/scrollbar.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 40000000 20000000 ffff0500 fffff501 @... ...........
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 0100ffff 00000000 00000000 00008880 ................
- 0050 01000000 0000a800 89000000 00000000 ................
- 0060 e903f581 00000000 00000050 2b004400 ...........P+.D.
- 0070 69000a00 e9030000 ffff8400 00000000 i...............
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/strtab1.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/strtab1.rc
deleted file mode 100644
index a1a246d8..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/strtab1.rc
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "windows.h"
-
-LANGUAGE 0, 0
-
-STRINGTABLE MOVEABLE PURE DISCARDABLE
-BEGIN
- 1 "hello, world"
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/strtab1.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/strtab1.rsd
deleted file mode 100644
index 4d610739..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/strtab1.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 38000000 20000000 ffff0600 ffff0100 8... ...........
- 0030 00000000 30100000 00000000 00000000 ....0...........
- 0040 00000c00 68006500 6c006c00 6f002c00 ....h.e.l.l.o.,.
- 0050 20007700 6f007200 6c006400 00000000 .w.o.r.l.d.....
- 0060 00000000 00000000 00000000 00000000 ................
- 0070 00000000 00000000 ........
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/sublang.rc b/binutils-2.17/binutils/testsuite/binutils-all/windres/sublang.rc
deleted file mode 100644
index a37921b3..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/sublang.rc
+++ /dev/null
@@ -1,5 +0,0 @@
-LANGUAGE 9, 1
-101 DIALOG DISCARDABLE 0, 0, 186, 95
-BEGIN
- DEFPUSHBUTTON "OK",1,129,7,50,14
-END
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/sublang.rsd b/binutils-2.17/binutils/testsuite/binutils-all/windres/sublang.rsd
deleted file mode 100644
index 270b6223..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/sublang.rsd
+++ /dev/null
@@ -1,8 +0,0 @@
- 0000 00000000 20000000 ffff0000 ffff0000 .... ...........
- 0010 00000000 00000000 00000000 00000000 ................
- 0020 36000000 20000000 ffff0500 ffff6500 6... .........e.
- 0030 00000000 30100904 00000000 00000000 ....0...........
- 0040 00008880 00000000 01000000 0000ba00 ................
- 0050 5f000000 00000000 01000150 00000000 _..........P....
- 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O.
- 0070 4b000000 00000000 K.......
diff --git a/binutils-2.17/binutils/testsuite/binutils-all/windres/windres.exp b/binutils-2.17/binutils/testsuite/binutils-all/windres/windres.exp
deleted file mode 100644
index 4189c551..00000000
--- a/binutils-2.17/binutils/testsuite/binutils-all/windres/windres.exp
+++ /dev/null
@@ -1,149 +0,0 @@
-# Copyright 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@prep.ai.mit.edu
-
-# Written by DJ Delorie <dj@redhat.com>
-
-if {![istarget "i*86-*-*"]} {
- return
-}
-
-if {![istarget "i*86-*-*pe*"] \
- && ![istarget "i*86-*-cygwin*"] \
- && ![istarget "i*86-*-mingw32*"] } {
- set target_xfail "yes"
-} else {
- set target_xfail "no"
-}
-
-if {![info exists WINDRES]} then {
- return
-}
-
-if {[which $WINDRES] == 0} then {
- return
-}
-
-set wr "$WINDRES --include-dir $srcdir/$subdir"
-
-if [file exists "$srcdir/../../winsup/w32api/include"] {
- set wr "$wr --include-dir $srcdir/../../winsup/w32api/include"
- set target_xfail "no"
-} else {
- send_log "\nWarning: Assuming windres can find the win32 headers\n\n"
-}
-
-set res_list [lsort [glob -nocomplain $srcdir/$subdir/*.rc]]
-
-proc oneline { file } {
- while { 1 } {
- if { [gets $file line] == -1 } {
- return ""
- }
- if [regexp "^ \[0-9a-z\]\[0-9a-z\]* " $line] {
- return $line
- }
- }
-}
-
-foreach res $res_list {
- set sroot [file rootname $res]
- set broot [file tail $sroot]
- set done 0
-
- set rc [open $res]
- while { [gets $rc line] != -1 } {
- if ![regexp "^(//|/\*|#)" $line] {
- break
- }
- if [regexp "\[xp\]fail *(\[^ \]*)" $line junk sys] {
- setup_xfail $sys
- continue
- }
- }
-
- if { "$broot" != "bmpalign" && "$target_xfail" == "yes" } {
- setup_xfail *-*
- }
-
- verbose "$wr -J rc -O res $res tmpdir/$broot.res" 1
- catch "exec $wr -J rc -O res $res tmpdir/$broot.res" err
-
- if ![string match "" $err] then {
- send_log "$err\n"
- verbose "$err" 1
- fail "windres/$broot (parse)"
- continue
- }
- pass "windres/$broot (parse)"
-
- set rc [open $res]
- while { [gets $rc line] != -1 } {
- if ![regexp "^(//|/\*|#)" $line] {
- break
- }
- if [regexp "parse-only" $line] {
- file delete "tmpdir/$broot.res"
- set done 1
- break
- }
- if [regexp "\[xc\]fail *(\[^ \]*)" $line junk sys] {
- setup_xfail $sys
- continue
- }
- }
- if { $done != 0 } {
- continue
- }
-
- if { "$broot" != "bmpalign" && "$target_xfail" == "yes" } {
- setup_xfail *-*
- }
-
- verbose "$OBJDUMP -b binary -s tmpdir/$broot.res > tmpdir/$broot.dump" 1
- catch "exec $OBJDUMP -b binary -s tmpdir/$broot.res > tmpdir/$broot.dump" err
-
- if ![string match "" $err] then {
- send_log "$err\n"
- verbose "$err" 1
- fail "windres/$broot (compare)"
- continue
- }
-
- set pat [open "$sroot.rsd"]
- set out [open "tmpdir/$broot.dump"]
- set patline "foo"
-
- while { ![string match $patline ""] } {
- set patline [oneline $pat]
- set outline [oneline $out]
-
- if ![string match $patline $outline] {
- send_log "< $patline\n"
- send_log "> $outline\n"
- fail "windres/$broot (compare)"
- set done 1
- break
- }
- }
- if { $done == 0 } {
- pass "windres/$broot (compare)"
- file delete "tmpdir/$broot.res"
- file delete "tmpdir/$broot.dump"
- }
-}
diff --git a/binutils-2.17/binutils/testsuite/config/default.exp b/binutils-2.17/binutils/testsuite/config/default.exp
deleted file mode 100644
index ff925ba7..00000000
--- a/binutils-2.17/binutils/testsuite/config/default.exp
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright 1993, 1994, 1995, 1997, 1999, 2001, 2002, 2004, 2005
-# 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@prep.ai.mit.edu
-
-# This file was written by Rob Savoye. (rob@cygnus.com)
-
-load_lib utils-lib.exp
-
-if ![info exists NM] then {
- set NM [findfile $base_dir/nm-new $base_dir/nm-new [transform nm]]
-}
-if ![info exists NMFLAGS] then {
- set NMFLAGS ""
-}
-if ![info exists SIZE] then {
- set SIZE [findfile $base_dir/size]
-}
-if ![info exists SIZEFLAGS] then {
- set SIZEFLAGS ""
-}
-if ![info exists OBJDUMP] then {
- set OBJDUMP [findfile $base_dir/objdump]
-}
-if ![info exists OBJDUMPFLAGS] then {
- set OBJDUMPFLAGS ""
-}
-if ![info exists OBJCOPY] then {
- set OBJCOPY [findfile $base_dir/objcopy]
-}
-if ![info exists OBJCOPYFLAGS] then {
- set OBJCOPYFLAGS ""
-}
-if ![info exists AR] then {
- set AR [findfile $base_dir/ar]
-}
-if ![info exists STRIP] then {
- set STRIP [findfile $base_dir/strip-new $base_dir/strip-new [transform strip]]
-}
-if ![info exists STRIPFLAGS] then {
- set STRIPFLAGS ""
-}
-if ![info exists READELF] then {
- set READELF [findfile $base_dir/readelf]
-}
-if ![info exists READELFFLAGS] then {
- set READELFFLAGS ""
-}
-if ![info exists WINDRES] then {
- set WINDRES [findfile $base_dir/windres]
-}
-if ![info exists DLLTOOL] then {
- set DLLTOOL [findfile $base_dir/dlltool]
-}
-
-if ![file isdirectory tmpdir] {catch "exec mkdir tmpdir" status}
-
-# Make a copy from tmpdir/gas/as and tmpdir/gas/ld to the assembler
-# and linker in the build tree, so that we can use a -B option to gcc
-# to force it to use the newly built assembler/linker.
-if {![file isdirectory tmpdir/gas]} {catch "exec mkdir tmpdir/gas" status}
-
-proc link_or_copy { src dst } {
- if ![catch "exec ln -sf ../../../$src tmpdir/gas/$dst" status] then {return 0}
- if ![catch "exec ln -f ../$src tmpdir/gas/$dst" status] then {return 0}
- catch "exec cp -fpu ../$src tmpdir/gas/$dst" status
-}
-
-if {[file isfile gas/as-new[exe_ext]]} then {
- link_or_copy gas/as-new[exe_ext] as[exe_ext]
-} else {
- # For non-Windows hosts there may be an executable
- # without a .exe suffix, so try copying that instead.
- link_or_copy gas/as-new as[exe_ext]
-}
-# This may not be needed any more...
-if {[file isfile ld/ld-new[exe_ext]]} then {
- link_or_copy ld/ld-new[exe_ext] ld[exe_ext]
-} else {
- link_or_copy ld/ld-new ld[exe_ext]
-}
-set gcc_gas_flag "-B[pwd]/tmpdir/gas/"
-set dlltool_gas_flag "-S [pwd]/tmpdir/gas/as[exe_ext]"
-
-#
-# binutils_run
-# run a program, returning the output
-# sets binutils_run_failed if the program does not exist
-#
-proc binutils_run { prog progargs } {
- default_binutils_run $prog $progargs
-}
-
-#
-# binutils_assemble
-# assemble a file
-#
-proc binutils_assemble { source object } {
- default_binutils_assemble $source $object
-}
diff --git a/binutils-2.17/binutils/testsuite/config/hppa.sed b/binutils-2.17/binutils/testsuite/config/hppa.sed
deleted file mode 100644
index d8607d85..00000000
--- a/binutils-2.17/binutils/testsuite/config/hppa.sed
+++ /dev/null
@@ -1,4 +0,0 @@
-s/# Old OSF sed blows up if you have a sed command starting with "#"//
-s/# Avoid it by putting the comments within real sed commands.//
-s/# Fix the definition of common_symbol to be correct for the PA assebmlers.//
-s/ \.comm common_symbol,4/common_symbol .comm 4/
diff --git a/binutils-2.17/binutils/testsuite/lib/utils-lib.exp b/binutils-2.17/binutils/testsuite/lib/utils-lib.exp
deleted file mode 100644
index f7970b29..00000000
--- a/binutils-2.17/binutils/testsuite/lib/utils-lib.exp
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright 1993, 1994, 1995, 1996, 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 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-dejagnu@prep.ai.mit.edu
-
-# This file was written by Rob Savoye <rob@cygnus.com>
-# and extended by Ian Lance Taylor <ian@cygnus.com>
-
-proc binutil_version { prog } {
- if ![is_remote host] {
- set path [which $prog]
- if {$path == 0} then {
- perror "$prog can't be run, file not found."
- return ""
- }
- } else {
- set path $prog
- }
- set state [remote_exec host $prog --version]
- set tmp "[lindex $state 1]\n"
- # Should find a way to discard constant parts, keep whatever's
- # left, so the version string could be almost anything at all...
- regexp "\[^\n\]* (cygnus-|)(\[-0-9.a-zA-Z-\]+)\[\r\n\].*" "$tmp" version cyg number
- if ![info exists number] then {
- return "$path (no version number)\n"
- }
- return "$path $number\n"
-}
-
-#
-# default_binutils_run
-# run a program, returning the output
-# sets binutils_run_failed if the program does not exist
-#
-proc default_binutils_run { prog progargs } {
- global binutils_run_failed
- global host_triplet
-
- set binutils_run_failed 0
-
- if ![is_remote host] {
- if {[which $prog] == 0} then {
- perror "$prog does not exist"
- set binutils_run_failed 1
- return ""
- }
- }
-
- send_log "$prog $progargs\n"
- verbose "$prog $progargs"
-
- # Gotta quote dollar-signs because they get mangled by the
- # shell otherwise.
- regsub -all "\\$" "$progargs" "\\$" progargs
-
- set state [remote_exec host $prog $progargs]
- set exec_output [prune_warnings [lindex $state 1]]
- if {![string match "" $exec_output]} then {
- send_log "$exec_output\n"
- verbose "$exec_output"
- } else {
- if { [lindex $state 0] != 0 } {
- set exec_output "$prog exited with status [lindex $state 0]"
- send_log "$exec_output\n"
- verbose "$exec_output"
- }
- }
- return $exec_output
-}
-
-#
-# default_binutils_assemble
-# assemble a file
-#
-proc default_binutils_assemble { source object } {
- global srcdir
- global host_triplet
-
- # The HPPA assembler syntax is a little different than most, to make
- # the test source file assemble we need to run it through sed.
- #
- # This is a hack in that it won't scale well if other targets need
- # similar transformations to assemble. We'll generalize the hack
- # if/when other targets need similar handling.
- if { [istarget "hppa*-*-*"] && ![istarget "*-*-linux*" ] } then {
- set sed_file $srcdir/config/hppa.sed
- send_log "sed -f $sed_file < $source > asm.s\n"
- verbose "sed -f $sed_file < $source > asm.s"
- catch "exec sed -f $sed_file < $source > asm.s"
- set source asm.s
- }
-
- set exec_output [target_assemble $source $object ""]
- set exec_output [prune_warnings $exec_output]
-
- if [string match "" $exec_output] {
- return 1
- } else {
- send_log "$exec_output\n"
- verbose "$exec_output"
- perror "$source: assembly failed"
- return 0
- }
-}
-
-#
-# is_elf_format
-# true if the object format is known to be ELF
-#
-proc is_elf_format {} {
- if { ![istarget *-*-sysv4*] \
- && ![istarget *-*-unixware*] \
- && ![istarget *-*-elf*] \
- && ![istarget *-*-eabi*] \
- && ![istarget hppa*64*-*-hpux*] \
- && ![istarget ia64-*-hpux*] \
- && ![istarget *-*-linux*] \
- && ![istarget *-*-irix5*] \
- && ![istarget *-*-irix6*] \
- && ![istarget *-*-netbsd*] \
- && ![istarget *-*-solaris2*] } {
- return 0
- }
-
- if { [istarget *-*-linux*aout*] \
- || [istarget *-*-linux*oldld*] } {
- return 0
- }
-
- if { ![istarget *-*-netbsdelf*] \
- && ([istarget *-*-netbsd*aout*] \
- || [istarget *-*-netbsdpe*] \
- || [istarget arm*-*-netbsd*] \
- || [istarget sparc-*-netbsd*] \
- || [istarget i*86-*-netbsd*] \
- || [istarget m68*-*-netbsd*] \
- || [istarget vax-*-netbsd*] \
- || [istarget ns32k-*-netbsd*]) } {
- return 0
- }
- return 1
-}
-
-#
-# exe_ext
-# Returns target executable extension, if any.
-#
-proc exe_ext {} {
- if { [istarget *-*-mingw32] || [istarget *-*-cygwin*] } {
- return ".exe"
- } else {
- return ""
- }
-}
diff --git a/binutils-2.17/binutils/unwind-ia64.c b/binutils-2.17/binutils/unwind-ia64.c
deleted file mode 100644
index c104e72b..00000000
--- a/binutils-2.17/binutils/unwind-ia64.c
+++ /dev/null
@@ -1,1082 +0,0 @@
-/* unwind-ia64.c -- utility routines to dump IA-64 unwind info for readelf.
- Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
-
-This file is part of GNU Binutils.
-
-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, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "unwind-ia64.h"
-#include <stdio.h>
-#include <string.h>
-
-#if __GNUC__ >= 2
-/* Define BFD64 here, even if our default architecture is 32 bit ELF
- as this will allow us to read in and parse 64bit and 32bit ELF files.
- Only do this if we believe that the compiler can support a 64 bit
- data type. For now we only rely on GCC being able to do this. */
-#define BFD64
-#endif
-#include "bfd.h"
-
-static bfd_vma unw_rlen = 0;
-
-static void unw_print_brmask (char *, unsigned int);
-static void unw_print_grmask (char *, unsigned int);
-static void unw_print_frmask (char *, unsigned int);
-static void unw_print_abreg (char *, unsigned int);
-static void unw_print_xyreg (char *, unsigned int, unsigned int);
-
-static void
-unw_print_brmask (char *cp, unsigned int mask)
-{
- int sep = 0;
- int i;
-
- for (i = 0; mask && (i < 5); ++i)
- {
- if (mask & 1)
- {
- if (sep)
- *cp++ = ',';
- *cp++ = 'b';
- *cp++ = i + 1 + '0';
- sep = 1;
- }
- mask >>= 1;
- }
- *cp = '\0';
-}
-
-static void
-unw_print_grmask (char *cp, unsigned int mask)
-{
- int sep = 0;
- int i;
-
- for (i = 0; i < 4; ++i)
- {
- if (mask & 1)
- {
- if (sep)
- *cp++ = ',';
- *cp++ = 'r';
- *cp++ = i + 4 + '0';
- sep = 1;
- }
- mask >>= 1;
- }
- *cp = '\0';
-}
-
-static void
-unw_print_frmask (char *cp, unsigned int mask)
-{
- int sep = 0;
- int i;
-
- for (i = 0; i < 20; ++i)
- {
- if (mask & 1)
- {
- if (sep)
- *cp++ = ',';
- *cp++ = 'f';
- if (i < 4)
- *cp++ = i + 2 + '0';
- else
- {
- *cp++ = (i + 2) / 10 + 1 + '0';
- *cp++ = (i + 2) % 10 + '0';
- }
- sep = 1;
- }
- mask >>= 1;
- }
- *cp = '\0';
-}
-
-static void
-unw_print_abreg (char *cp, unsigned int abreg)
-{
- static const char *special_reg[16] =
- {
- "pr", "psp", "@priunat", "rp", "ar.bsp", "ar.bspstore", "ar.rnat",
- "ar.unat", "ar.fpsr", "ar.pfs", "ar.lc",
- "Unknown11", "Unknown12", "Unknown13", "Unknown14", "Unknown15"
- };
-
- switch ((abreg >> 5) & 0x3)
- {
- case 0: /* gr */
- sprintf (cp, "r%u", (abreg & 0x1f));
- break;
-
- case 1: /* fr */
- sprintf (cp, "f%u", (abreg & 0x1f));
- break;
-
- case 2: /* br */
- sprintf (cp, "b%u", (abreg & 0x1f));
- break;
-
- case 3: /* special */
- strcpy (cp, special_reg[abreg & 0xf]);
- break;
- }
-}
-
-static void
-unw_print_xyreg (char *cp, unsigned int x, unsigned int ytreg)
-{
- switch ((x << 1) | ((ytreg >> 7) & 1))
- {
- case 0: /* gr */
- sprintf (cp, "r%u", (ytreg & 0x1f));
- break;
-
- case 1: /* fr */
- sprintf (cp, "f%u", (ytreg & 0x1f));
- break;
-
- case 2: /* br */
- sprintf (cp, "b%u", (ytreg & 0x1f));
- break;
- }
-}
-
-#define UNW_REG_BSP "bsp"
-#define UNW_REG_BSPSTORE "bspstore"
-#define UNW_REG_FPSR "fpsr"
-#define UNW_REG_LC "lc"
-#define UNW_REG_PFS "pfs"
-#define UNW_REG_PR "pr"
-#define UNW_REG_PSP "psp"
-#define UNW_REG_RNAT "rnat"
-#define UNW_REG_RP "rp"
-#define UNW_REG_UNAT "unat"
-
-typedef bfd_vma unw_word;
-
-#define UNW_DEC_BAD_CODE(code) \
- printf ("Unknown code 0x%02x\n", code)
-
-#define UNW_DEC_PROLOGUE(fmt, body, rlen, arg) \
- do \
- { \
- unw_rlen = rlen; \
- *(int *)arg = body; \
- printf (" %s:%s(rlen=%lu)\n", \
- fmt, body ? "body" : "prologue", (unsigned long) rlen); \
- } \
- while (0)
-
-#define UNW_DEC_PROLOGUE_GR(fmt, rlen, mask, grsave, arg) \
- do \
- { \
- char regname[16], maskstr[64], *sep; \
- \
- unw_rlen = rlen; \
- *(int *)arg = 0; \
- \
- maskstr[0] = '\0'; \
- sep = ""; \
- if (mask & 0x8) \
- { \
- strcat (maskstr, "rp"); \
- sep = ","; \
- } \
- if (mask & 0x4) \
- { \
- strcat (maskstr, sep); \
- strcat (maskstr, "ar.pfs"); \
- sep = ","; \
- } \
- if (mask & 0x2) \
- { \
- strcat (maskstr, sep); \
- strcat (maskstr, "psp"); \
- sep = ","; \
- } \
- if (mask & 0x1) \
- { \
- strcat (maskstr, sep); \
- strcat (maskstr, "pr"); \
- } \
- sprintf (regname, "r%u", grsave); \
- printf (" %s:prologue_gr(mask=[%s],grsave=%s,rlen=%lu)\n", \
- fmt, maskstr, regname, (unsigned long) rlen); \
- } \
- while (0)
-
-#define UNW_DEC_FR_MEM(fmt, frmask, arg) \
- do \
- { \
- char frstr[200]; \
- \
- unw_print_frmask (frstr, frmask); \
- printf ("\t%s:fr_mem(frmask=[%s])\n", fmt, frstr); \
- } \
- while (0)
-
-#define UNW_DEC_GR_MEM(fmt, grmask, arg) \
- do \
- { \
- char grstr[200]; \
- \
- unw_print_grmask (grstr, grmask); \
- printf ("\t%s:gr_mem(grmask=[%s])\n", fmt, grstr); \
- } \
- while (0)
-
-#define UNW_DEC_FRGR_MEM(fmt, grmask, frmask, arg) \
- do \
- { \
- char frstr[200], grstr[20]; \
- \
- unw_print_grmask (grstr, grmask); \
- unw_print_frmask (frstr, frmask); \
- printf ("\t%s:frgr_mem(grmask=[%s],frmask=[%s])\n", fmt, grstr, frstr); \
- } \
- while (0)
-
-#define UNW_DEC_BR_MEM(fmt, brmask, arg) \
- do \
- { \
- char brstr[20]; \
- \
- unw_print_brmask (brstr, brmask); \
- printf ("\t%s:br_mem(brmask=[%s])\n", fmt, brstr); \
- } \
- while (0)
-
-#define UNW_DEC_BR_GR(fmt, brmask, gr, arg) \
- do \
- { \
- char brstr[20]; \
- \
- unw_print_brmask (brstr, brmask); \
- printf ("\t%s:br_gr(brmask=[%s],gr=r%u)\n", fmt, brstr, gr); \
- } \
- while (0)
-
-#define UNW_DEC_REG_GR(fmt, src, dst, arg) \
- printf ("\t%s:%s_gr(reg=r%u)\n", fmt, src, dst)
-
-#define UNW_DEC_RP_BR(fmt, dst, arg) \
- printf ("\t%s:rp_br(reg=b%u)\n", fmt, dst)
-
-#define UNW_DEC_REG_WHEN(fmt, reg, t, arg) \
- printf ("\t%s:%s_when(t=%lu)\n", fmt, reg, (unsigned long) t)
-
-#define UNW_DEC_REG_SPREL(fmt, reg, spoff, arg) \
- printf ("\t%s:%s_sprel(spoff=0x%lx)\n", \
- fmt, reg, 4*(unsigned long)spoff)
-
-#define UNW_DEC_REG_PSPREL(fmt, reg, pspoff, arg) \
- printf ("\t%s:%s_psprel(pspoff=0x10-0x%lx)\n", \
- fmt, reg, 4*(unsigned long)pspoff)
-
-#define UNW_DEC_GR_GR(fmt, grmask, gr, arg) \
- do \
- { \
- char grstr[20]; \
- \
- unw_print_grmask (grstr, grmask); \
- printf ("\t%s:gr_gr(grmask=[%s],r%u)\n", fmt, grstr, gr); \
- } \
- while (0)
-
-#define UNW_DEC_ABI(fmt, abi, context, arg) \
- do \
- { \
- static const char *abiname[] = \
- { \
- "@svr4", "@hpux", "@nt" \
- }; \
- char buf[20]; \
- const char *abistr = buf; \
- \
- if (abi < 3) \
- abistr = abiname[abi]; \
- else \
- sprintf (buf, "0x%x", abi); \
- printf ("\t%s:unwabi(abi=%s,context=0x%02x)\n", \
- fmt, abistr, context); \
- } \
- while (0)
-
-#define UNW_DEC_PRIUNAT_GR(fmt, r, arg) \
- printf ("\t%s:priunat_gr(reg=r%u)\n", fmt, r)
-
-#define UNW_DEC_PRIUNAT_WHEN_GR(fmt, t, arg) \
- printf ("\t%s:priunat_when_gr(t=%lu)\n", fmt, (unsigned long) t)
-
-#define UNW_DEC_PRIUNAT_WHEN_MEM(fmt, t, arg) \
- printf ("\t%s:priunat_when_mem(t=%lu)\n", fmt, (unsigned long) t)
-
-#define UNW_DEC_PRIUNAT_PSPREL(fmt, pspoff, arg) \
- printf ("\t%s:priunat_psprel(pspoff=0x10-0x%lx)\n", \
- fmt, 4*(unsigned long)pspoff)
-
-#define UNW_DEC_PRIUNAT_SPREL(fmt, spoff, arg) \
- printf ("\t%s:priunat_sprel(spoff=0x%lx)\n", \
- fmt, 4*(unsigned long)spoff)
-
-#define UNW_DEC_MEM_STACK_F(fmt, t, size, arg) \
- printf ("\t%s:mem_stack_f(t=%lu,size=%lu)\n", \
- fmt, (unsigned long) t, 16*(unsigned long)size)
-
-#define UNW_DEC_MEM_STACK_V(fmt, t, arg) \
- printf ("\t%s:mem_stack_v(t=%lu)\n", fmt, (unsigned long) t)
-
-#define UNW_DEC_SPILL_BASE(fmt, pspoff, arg) \
- printf ("\t%s:spill_base(pspoff=0x10-0x%lx)\n", \
- fmt, 4*(unsigned long)pspoff)
-
-#define UNW_DEC_SPILL_MASK(fmt, dp, arg) \
- do \
- { \
- static const char *spill_type = "-frb"; \
- unsigned const char *imaskp = dp; \
- unsigned char mask = 0; \
- bfd_vma insn = 0; \
- \
- printf ("\t%s:spill_mask(imask=[", fmt); \
- for (insn = 0; insn < unw_rlen; ++insn) \
- { \
- if ((insn % 4) == 0) \
- mask = *imaskp++; \
- if (insn > 0 && (insn % 3) == 0) \
- putchar (','); \
- putchar (spill_type[(mask >> (2 * (3 - (insn & 0x3)))) & 0x3]); \
- } \
- printf ("])\n"); \
- dp = imaskp; \
- } \
- while (0)
-
-#define UNW_DEC_SPILL_SPREL(fmt, t, abreg, spoff, arg) \
- do \
- { \
- char regname[20]; \
- \
- unw_print_abreg (regname, abreg); \
- printf ("\t%s:spill_sprel(reg=%s,t=%lu,spoff=0x%lx)\n", \
- fmt, regname, (unsigned long) t, 4*(unsigned long)off); \
- } \
- while (0)
-
-#define UNW_DEC_SPILL_PSPREL(fmt, t, abreg, pspoff, arg) \
- do \
- { \
- char regname[20]; \
- \
- unw_print_abreg (regname, abreg); \
- printf ("\t%s:spill_psprel(reg=%s,t=%lu,pspoff=0x10-0x%lx)\n", \
- fmt, regname, (unsigned long) t, 4*(unsigned long)pspoff); \
- } \
- while (0)
-
-#define UNW_DEC_RESTORE(fmt, t, abreg, arg) \
- do \
- { \
- char regname[20]; \
- \
- unw_print_abreg (regname, abreg); \
- printf ("\t%s:restore(t=%lu,reg=%s)\n", \
- fmt, (unsigned long) t, regname); \
- } \
- while (0)
-
-#define UNW_DEC_SPILL_REG(fmt, t, abreg, x, ytreg, arg) \
- do \
- { \
- char abregname[20], tregname[20]; \
- \
- unw_print_abreg (abregname, abreg); \
- unw_print_xyreg (tregname, x, ytreg); \
- printf ("\t%s:spill_reg(t=%lu,reg=%s,treg=%s)\n", \
- fmt, (unsigned long) t, abregname, tregname); \
- } \
- while (0)
-
-#define UNW_DEC_SPILL_SPREL_P(fmt, qp, t, abreg, spoff, arg) \
- do \
- { \
- char regname[20]; \
- \
- unw_print_abreg (regname, abreg); \
- printf ("\t%s:spill_sprel_p(qp=p%u,t=%lu,reg=%s,spoff=0x%lx)\n", \
- fmt, qp, (unsigned long) t, regname, 4 * (unsigned long)spoff); \
- } \
- while (0)
-
-#define UNW_DEC_SPILL_PSPREL_P(fmt, qp, t, abreg, pspoff, arg) \
- do \
- { \
- char regname[20]; \
- \
- unw_print_abreg (regname, abreg); \
- printf ("\t%s:spill_psprel_p(qp=p%u,t=%lu,reg=%s,pspoff=0x10-0x%lx)\n",\
- fmt, qp, (unsigned long) t, regname, 4*(unsigned long)pspoff);\
- } \
- while (0)
-
-#define UNW_DEC_RESTORE_P(fmt, qp, t, abreg, arg) \
- do \
- { \
- char regname[20]; \
- \
- unw_print_abreg (regname, abreg); \
- printf ("\t%s:restore_p(qp=p%u,t=%lu,reg=%s)\n", \
- fmt, qp, (unsigned long) t, regname); \
- } \
- while (0)
-
-#define UNW_DEC_SPILL_REG_P(fmt, qp, t, abreg, x, ytreg, arg) \
- do \
- { \
- char regname[20], tregname[20]; \
- \
- unw_print_abreg (regname, abreg); \
- unw_print_xyreg (tregname, x, ytreg); \
- printf ("\t%s:spill_reg_p(qp=p%u,t=%lu,reg=%s,treg=%s)\n", \
- fmt, qp, (unsigned long) t, regname, tregname); \
- } \
- while (0)
-
-#define UNW_DEC_LABEL_STATE(fmt, label, arg) \
- printf ("\t%s:label_state(label=%lu)\n", fmt, (unsigned long) label)
-
-#define UNW_DEC_COPY_STATE(fmt, label, arg) \
- printf ("\t%s:copy_state(label=%lu)\n", fmt, (unsigned long) label)
-
-#define UNW_DEC_EPILOGUE(fmt, t, ecount, arg) \
- printf ("\t%s:epilogue(t=%lu,ecount=%lu)\n", \
- fmt, (unsigned long) t, (unsigned long) ecount)
-
-/*
- * Generic IA-64 unwind info decoder.
- *
- * This file is used both by the Linux kernel and objdump. Please
- * keep the two copies of this file in sync (modulo differences in the
- * prototypes...).
- *
- * You need to customize the decoder by defining the following
- * macros/constants before including this file:
- *
- * Types:
- * unw_word Unsigned integer type with at least 64 bits
- *
- * Register names:
- * UNW_REG_BSP
- * UNW_REG_BSPSTORE
- * UNW_REG_FPSR
- * UNW_REG_LC
- * UNW_REG_PFS
- * UNW_REG_PR
- * UNW_REG_RNAT
- * UNW_REG_PSP
- * UNW_REG_RP
- * UNW_REG_UNAT
- *
- * Decoder action macros:
- * UNW_DEC_BAD_CODE(code)
- * UNW_DEC_ABI(fmt,abi,context,arg)
- * UNW_DEC_BR_GR(fmt,brmask,gr,arg)
- * UNW_DEC_BR_MEM(fmt,brmask,arg)
- * UNW_DEC_COPY_STATE(fmt,label,arg)
- * UNW_DEC_EPILOGUE(fmt,t,ecount,arg)
- * UNW_DEC_FRGR_MEM(fmt,grmask,frmask,arg)
- * UNW_DEC_FR_MEM(fmt,frmask,arg)
- * UNW_DEC_GR_GR(fmt,grmask,gr,arg)
- * UNW_DEC_GR_MEM(fmt,grmask,arg)
- * UNW_DEC_LABEL_STATE(fmt,label,arg)
- * UNW_DEC_MEM_STACK_F(fmt,t,size,arg)
- * UNW_DEC_MEM_STACK_V(fmt,t,arg)
- * UNW_DEC_PRIUNAT_GR(fmt,r,arg)
- * UNW_DEC_PRIUNAT_WHEN_GR(fmt,t,arg)
- * UNW_DEC_PRIUNAT_WHEN_MEM(fmt,t,arg)
- * UNW_DEC_PRIUNAT_WHEN_PSPREL(fmt,pspoff,arg)
- * UNW_DEC_PRIUNAT_WHEN_SPREL(fmt,spoff,arg)
- * UNW_DEC_PROLOGUE(fmt,body,rlen,arg)
- * UNW_DEC_PROLOGUE_GR(fmt,rlen,mask,grsave,arg)
- * UNW_DEC_REG_PSPREL(fmt,reg,pspoff,arg)
- * UNW_DEC_REG_REG(fmt,src,dst,arg)
- * UNW_DEC_REG_SPREL(fmt,reg,spoff,arg)
- * UNW_DEC_REG_WHEN(fmt,reg,t,arg)
- * UNW_DEC_RESTORE(fmt,t,abreg,arg)
- * UNW_DEC_RESTORE_P(fmt,qp,t,abreg,arg)
- * UNW_DEC_SPILL_BASE(fmt,pspoff,arg)
- * UNW_DEC_SPILL_MASK(fmt,imaskp,arg)
- * UNW_DEC_SPILL_PSPREL(fmt,t,abreg,pspoff,arg)
- * UNW_DEC_SPILL_PSPREL_P(fmt,qp,t,abreg,pspoff,arg)
- * UNW_DEC_SPILL_REG(fmt,t,abreg,x,ytreg,arg)
- * UNW_DEC_SPILL_REG_P(fmt,qp,t,abreg,x,ytreg,arg)
- * UNW_DEC_SPILL_SPREL(fmt,t,abreg,spoff,arg)
- * UNW_DEC_SPILL_SPREL_P(fmt,qp,t,abreg,pspoff,arg)
- */
-
-static unw_word unw_decode_uleb128 (const unsigned char **);
-static const unsigned char *unw_decode_x1
- (const unsigned char *, unsigned int, void *);
-static const unsigned char *unw_decode_x2
- (const unsigned char *, unsigned int, void *);
-static const unsigned char *unw_decode_x3
- (const unsigned char *, unsigned int, void *);
-static const unsigned char *unw_decode_x4
- (const unsigned char *, unsigned int, void *);
-static const unsigned char *unw_decode_r1
- (const unsigned char *, unsigned int, void *);
-static const unsigned char *unw_decode_r2
- (const unsigned char *, unsigned int, void *);
-static const unsigned char *unw_decode_r3
- (const unsigned char *, unsigned int, void *);
-static const unsigned char *unw_decode_p1
- (const unsigned char *, unsigned int, void *);
-static const unsigned char *unw_decode_p2_p5
- (const unsigned char *, unsigned int, void *);
-static const unsigned char *unw_decode_p6
- (const unsigned char *, unsigned int, void *);
-static const unsigned char *unw_decode_p7_p10
- (const unsigned char *, unsigned int, void *);
-static const unsigned char *unw_decode_b1
- (const unsigned char *, unsigned int, void *);
-static const unsigned char *unw_decode_b2
- (const unsigned char *, unsigned int, void *);
-static const unsigned char *unw_decode_b3_x4
- (const unsigned char *, unsigned int, void *);
-
-static unw_word
-unw_decode_uleb128 (const unsigned char **dpp)
-{
- unsigned shift = 0;
- unw_word byte, result = 0;
- const unsigned char *bp = *dpp;
-
- while (1)
- {
- byte = *bp++;
- result |= (byte & 0x7f) << shift;
-
- if ((byte & 0x80) == 0)
- break;
-
- shift += 7;
- }
-
- *dpp = bp;
-
- return result;
-}
-
-static const unsigned char *
-unw_decode_x1 (const unsigned char *dp, unsigned int code ATTRIBUTE_UNUSED,
- void *arg ATTRIBUTE_UNUSED)
-{
- unsigned char byte1, abreg;
- unw_word t, off;
-
- byte1 = *dp++;
- t = unw_decode_uleb128 (&dp);
- off = unw_decode_uleb128 (&dp);
- abreg = (byte1 & 0x7f);
- if (byte1 & 0x80)
- UNW_DEC_SPILL_SPREL ("X1", t, abreg, off, arg);
- else
- UNW_DEC_SPILL_PSPREL ("X1", t, abreg, off, arg);
- return dp;
-}
-
-static const unsigned char *
-unw_decode_x2 (const unsigned char *dp, unsigned int code ATTRIBUTE_UNUSED,
- void *arg ATTRIBUTE_UNUSED)
-{
- unsigned char byte1, byte2, abreg, x, ytreg;
- unw_word t;
-
- byte1 = *dp++;
- byte2 = *dp++;
- t = unw_decode_uleb128 (&dp);
- abreg = (byte1 & 0x7f);
- ytreg = byte2;
- x = (byte1 >> 7) & 1;
- if ((byte1 & 0x80) == 0 && ytreg == 0)
- UNW_DEC_RESTORE ("X2", t, abreg, arg);
- else
- UNW_DEC_SPILL_REG ("X2", t, abreg, x, ytreg, arg);
- return dp;
-}
-
-static const unsigned char *
-unw_decode_x3 (const unsigned char *dp, unsigned int code ATTRIBUTE_UNUSED,
- void *arg ATTRIBUTE_UNUSED)
-{
- unsigned char byte1, byte2, abreg, qp;
- unw_word t, off;
-
- byte1 = *dp++;
- byte2 = *dp++;
- t = unw_decode_uleb128 (&dp);
- off = unw_decode_uleb128 (&dp);
-
- qp = (byte1 & 0x3f);
- abreg = (byte2 & 0x7f);
-
- if (byte1 & 0x80)
- UNW_DEC_SPILL_SPREL_P ("X3", qp, t, abreg, off, arg);
- else
- UNW_DEC_SPILL_PSPREL_P ("X3", qp, t, abreg, off, arg);
- return dp;
-}
-
-static const unsigned char *
-unw_decode_x4 (const unsigned char *dp, unsigned int code ATTRIBUTE_UNUSED,
- void *arg ATTRIBUTE_UNUSED)
-{
- unsigned char byte1, byte2, byte3, qp, abreg, x, ytreg;
- unw_word t;
-
- byte1 = *dp++;
- byte2 = *dp++;
- byte3 = *dp++;
- t = unw_decode_uleb128 (&dp);
-
- qp = (byte1 & 0x3f);
- abreg = (byte2 & 0x7f);
- x = (byte2 >> 7) & 1;
- ytreg = byte3;
-
- if ((byte2 & 0x80) == 0 && byte3 == 0)
- UNW_DEC_RESTORE_P ("X4", qp, t, abreg, arg);
- else
- UNW_DEC_SPILL_REG_P ("X4", qp, t, abreg, x, ytreg, arg);
- return dp;
-}
-
-static const unsigned char *
-unw_decode_r1 (const unsigned char *dp, unsigned int code, void *arg)
-{
- int body = (code & 0x20) != 0;
- unw_word rlen;
-
- rlen = (code & 0x1f);
- UNW_DEC_PROLOGUE ("R1", body, rlen, arg);
- return dp;
-}
-
-static const unsigned char *
-unw_decode_r2 (const unsigned char *dp, unsigned int code, void *arg)
-{
- unsigned char byte1, mask, grsave;
- unw_word rlen;
-
- byte1 = *dp++;
-
- mask = ((code & 0x7) << 1) | ((byte1 >> 7) & 1);
- grsave = (byte1 & 0x7f);
- rlen = unw_decode_uleb128 (& dp);
- UNW_DEC_PROLOGUE_GR ("R2", rlen, mask, grsave, arg);
- return dp;
-}
-
-static const unsigned char *
-unw_decode_r3 (const unsigned char *dp, unsigned int code, void *arg)
-{
- unw_word rlen;
-
- rlen = unw_decode_uleb128 (& dp);
- UNW_DEC_PROLOGUE ("R3", ((code & 0x3) == 1), rlen, arg);
- return dp;
-}
-
-static const unsigned char *
-unw_decode_p1 (const unsigned char *dp, unsigned int code,
- void *arg ATTRIBUTE_UNUSED)
-{
- unsigned char brmask = (code & 0x1f);
-
- UNW_DEC_BR_MEM ("P1", brmask, arg);
- return dp;
-}
-
-static const unsigned char *
-unw_decode_p2_p5 (const unsigned char *dp, unsigned int code,
- void *arg ATTRIBUTE_UNUSED)
-{
- if ((code & 0x10) == 0)
- {
- unsigned char byte1 = *dp++;
-
- UNW_DEC_BR_GR ("P2", ((code & 0xf) << 1) | ((byte1 >> 7) & 1),
- (byte1 & 0x7f), arg);
- }
- else if ((code & 0x08) == 0)
- {
- unsigned char byte1 = *dp++, r, dst;
-
- r = ((code & 0x7) << 1) | ((byte1 >> 7) & 1);
- dst = (byte1 & 0x7f);
- switch (r)
- {
- case 0:
- UNW_DEC_REG_GR ("P3", UNW_REG_PSP, dst, arg);
- break;
- case 1:
- UNW_DEC_REG_GR ("P3", UNW_REG_RP, dst, arg);
- break;
- case 2:
- UNW_DEC_REG_GR ("P3", UNW_REG_PFS, dst, arg);
- break;
- case 3:
- UNW_DEC_REG_GR ("P3", UNW_REG_PR, dst, arg);
- break;
- case 4:
- UNW_DEC_REG_GR ("P3", UNW_REG_UNAT, dst, arg);
- break;
- case 5:
- UNW_DEC_REG_GR ("P3", UNW_REG_LC, dst, arg);
- break;
- case 6:
- UNW_DEC_RP_BR ("P3", dst, arg);
- break;
- case 7:
- UNW_DEC_REG_GR ("P3", UNW_REG_RNAT, dst, arg);
- break;
- case 8:
- UNW_DEC_REG_GR ("P3", UNW_REG_BSP, dst, arg);
- break;
- case 9:
- UNW_DEC_REG_GR ("P3", UNW_REG_BSPSTORE, dst, arg);
- break;
- case 10:
- UNW_DEC_REG_GR ("P3", UNW_REG_FPSR, dst, arg);
- break;
- case 11:
- UNW_DEC_PRIUNAT_GR ("P3", dst, arg);
- break;
- default:
- UNW_DEC_BAD_CODE (r);
- break;
- }
- }
- else if ((code & 0x7) == 0)
- UNW_DEC_SPILL_MASK ("P4", dp, arg);
- else if ((code & 0x7) == 1)
- {
- unw_word grmask, frmask, byte1, byte2, byte3;
-
- byte1 = *dp++;
- byte2 = *dp++;
- byte3 = *dp++;
- grmask = ((byte1 >> 4) & 0xf);
- frmask = ((byte1 & 0xf) << 16) | (byte2 << 8) | byte3;
- UNW_DEC_FRGR_MEM ("P5", grmask, frmask, arg);
- }
- else
- UNW_DEC_BAD_CODE (code);
-
- return dp;
-}
-
-static const unsigned char *
-unw_decode_p6 (const unsigned char *dp, unsigned int code,
- void *arg ATTRIBUTE_UNUSED)
-{
- int gregs = (code & 0x10) != 0;
- unsigned char mask = (code & 0x0f);
-
- if (gregs)
- UNW_DEC_GR_MEM ("P6", mask, arg);
- else
- UNW_DEC_FR_MEM ("P6", mask, arg);
- return dp;
-}
-
-static const unsigned char *
-unw_decode_p7_p10 (const unsigned char *dp, unsigned int code, void *arg)
-{
- unsigned char r, byte1, byte2;
- unw_word t, size;
-
- if ((code & 0x10) == 0)
- {
- r = (code & 0xf);
- t = unw_decode_uleb128 (&dp);
- switch (r)
- {
- case 0:
- size = unw_decode_uleb128 (&dp);
- UNW_DEC_MEM_STACK_F ("P7", t, size, arg);
- break;
-
- case 1:
- UNW_DEC_MEM_STACK_V ("P7", t, arg);
- break;
- case 2:
- UNW_DEC_SPILL_BASE ("P7", t, arg);
- break;
- case 3:
- UNW_DEC_REG_SPREL ("P7", UNW_REG_PSP, t, arg);
- break;
- case 4:
- UNW_DEC_REG_WHEN ("P7", UNW_REG_RP, t, arg);
- break;
- case 5:
- UNW_DEC_REG_PSPREL ("P7", UNW_REG_RP, t, arg);
- break;
- case 6:
- UNW_DEC_REG_WHEN ("P7", UNW_REG_PFS, t, arg);
- break;
- case 7:
- UNW_DEC_REG_PSPREL ("P7", UNW_REG_PFS, t, arg);
- break;
- case 8:
- UNW_DEC_REG_WHEN ("P7", UNW_REG_PR, t, arg);
- break;
- case 9:
- UNW_DEC_REG_PSPREL ("P7", UNW_REG_PR, t, arg);
- break;
- case 10:
- UNW_DEC_REG_WHEN ("P7", UNW_REG_LC, t, arg);
- break;
- case 11:
- UNW_DEC_REG_PSPREL ("P7", UNW_REG_LC, t, arg);
- break;
- case 12:
- UNW_DEC_REG_WHEN ("P7", UNW_REG_UNAT, t, arg);
- break;
- case 13:
- UNW_DEC_REG_PSPREL ("P7", UNW_REG_UNAT, t, arg);
- break;
- case 14:
- UNW_DEC_REG_WHEN ("P7", UNW_REG_FPSR, t, arg);
- break;
- case 15:
- UNW_DEC_REG_PSPREL ("P7", UNW_REG_FPSR, t, arg);
- break;
- default:
- UNW_DEC_BAD_CODE (r);
- break;
- }
- }
- else
- {
- switch (code & 0xf)
- {
- case 0x0: /* p8 */
- {
- r = *dp++;
- t = unw_decode_uleb128 (&dp);
- switch (r)
- {
- case 1:
- UNW_DEC_REG_SPREL ("P8", UNW_REG_RP, t, arg);
- break;
- case 2:
- UNW_DEC_REG_SPREL ("P8", UNW_REG_PFS, t, arg);
- break;
- case 3:
- UNW_DEC_REG_SPREL ("P8", UNW_REG_PR, t, arg);
- break;
- case 4:
- UNW_DEC_REG_SPREL ("P8", UNW_REG_LC, t, arg);
- break;
- case 5:
- UNW_DEC_REG_SPREL ("P8", UNW_REG_UNAT, t, arg);
- break;
- case 6:
- UNW_DEC_REG_SPREL ("P8", UNW_REG_FPSR, t, arg);
- break;
- case 7:
- UNW_DEC_REG_WHEN ("P8", UNW_REG_BSP, t, arg);
- break;
- case 8:
- UNW_DEC_REG_PSPREL ("P8", UNW_REG_BSP, t, arg);
- break;
- case 9:
- UNW_DEC_REG_SPREL ("P8", UNW_REG_BSP, t, arg);
- break;
- case 10:
- UNW_DEC_REG_WHEN ("P8", UNW_REG_BSPSTORE, t, arg);
- break;
- case 11:
- UNW_DEC_REG_PSPREL ("P8", UNW_REG_BSPSTORE, t, arg);
- break;
- case 12:
- UNW_DEC_REG_SPREL ("P8", UNW_REG_BSPSTORE, t, arg);
- break;
- case 13:
- UNW_DEC_REG_WHEN ("P8", UNW_REG_RNAT, t, arg);
- break;
- case 14:
- UNW_DEC_REG_PSPREL ("P8", UNW_REG_RNAT, t, arg);
- break;
- case 15:
- UNW_DEC_REG_SPREL ("P8", UNW_REG_RNAT, t, arg);
- break;
- case 16:
- UNW_DEC_PRIUNAT_WHEN_GR ("P8", t, arg);
- break;
- case 17:
- UNW_DEC_PRIUNAT_PSPREL ("P8", t, arg);
- break;
- case 18:
- UNW_DEC_PRIUNAT_SPREL ("P8", t, arg);
- break;
- case 19:
- UNW_DEC_PRIUNAT_WHEN_MEM ("P8", t, arg);
- break;
- default:
- UNW_DEC_BAD_CODE (r);
- break;
- }
- }
- break;
-
- case 0x1:
- byte1 = *dp++;
- byte2 = *dp++;
- UNW_DEC_GR_GR ("P9", (byte1 & 0xf), (byte2 & 0x7f), arg);
- break;
-
- case 0xf: /* p10 */
- byte1 = *dp++;
- byte2 = *dp++;
- UNW_DEC_ABI ("P10", byte1, byte2, arg);
- break;
-
- case 0x9:
- return unw_decode_x1 (dp, code, arg);
-
- case 0xa:
- return unw_decode_x2 (dp, code, arg);
-
- case 0xb:
- return unw_decode_x3 (dp, code, arg);
-
- case 0xc:
- return unw_decode_x4 (dp, code, arg);
-
- default:
- UNW_DEC_BAD_CODE (code);
- break;
- }
- }
- return dp;
-}
-
-static const unsigned char *
-unw_decode_b1 (const unsigned char *dp, unsigned int code,
- void *arg ATTRIBUTE_UNUSED)
-{
- unw_word label = (code & 0x1f);
-
- if ((code & 0x20) != 0)
- UNW_DEC_COPY_STATE ("B1", label, arg);
- else
- UNW_DEC_LABEL_STATE ("B1", label, arg);
- return dp;
-}
-
-static const unsigned char *
-unw_decode_b2 (const unsigned char *dp, unsigned int code,
- void *arg ATTRIBUTE_UNUSED)
-{
- unw_word t;
-
- t = unw_decode_uleb128 (& dp);
- UNW_DEC_EPILOGUE ("B2", t, (code & 0x1f), arg);
- return dp;
-}
-
-static const unsigned char *
-unw_decode_b3_x4 (const unsigned char *dp, unsigned int code, void *arg)
-{
- unw_word t, ecount, label;
-
- if ((code & 0x10) == 0)
- {
- t = unw_decode_uleb128 (&dp);
- ecount = unw_decode_uleb128 (&dp);
- UNW_DEC_EPILOGUE ("B3", t, ecount, arg);
- }
- else if ((code & 0x07) == 0)
- {
- label = unw_decode_uleb128 (&dp);
- if ((code & 0x08) != 0)
- UNW_DEC_COPY_STATE ("B4", label, arg);
- else
- UNW_DEC_LABEL_STATE ("B4", label, arg);
- }
- else
- switch (code & 0x7)
- {
- case 1:
- return unw_decode_x1 (dp, code, arg);
- case 2:
- return unw_decode_x2 (dp, code, arg);
- case 3:
- return unw_decode_x3 (dp, code, arg);
- case 4:
- return unw_decode_x4 (dp, code, arg);
- default:
- UNW_DEC_BAD_CODE (code);
- break;
- }
- return dp;
-}
-
-typedef const unsigned char *(*unw_decoder)
- (const unsigned char *, unsigned int, void *);
-
-static unw_decoder unw_decode_table[2][8] =
- {
- /* prologue table: */
- {
- unw_decode_r1, /* 0 */
- unw_decode_r1,
- unw_decode_r2,
- unw_decode_r3,
- unw_decode_p1, /* 4 */
- unw_decode_p2_p5,
- unw_decode_p6,
- unw_decode_p7_p10
- },
- {
- unw_decode_r1, /* 0 */
- unw_decode_r1,
- unw_decode_r2,
- unw_decode_r3,
- unw_decode_b1, /* 4 */
- unw_decode_b1,
- unw_decode_b2,
- unw_decode_b3_x4
- }
- };
-
-/* Decode one descriptor and return address of next descriptor. */
-const unsigned char *
-unw_decode (const unsigned char *dp, int inside_body,
- void *ptr_inside_body)
-{
- unw_decoder decoder;
- unsigned char code;
-
- code = *dp++;
- decoder = unw_decode_table[inside_body][code >> 5];
- return (*decoder) (dp, code, ptr_inside_body);
-}
diff --git a/binutils-2.17/binutils/unwind-ia64.h b/binutils-2.17/binutils/unwind-ia64.h
deleted file mode 100644
index c2fb9b93..00000000
--- a/binutils-2.17/binutils/unwind-ia64.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* unwind-ia64.h -- dump IA-64 unwind info.
- Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
- Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
-
-This file is part of GNU Binutils.
-
-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, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include "elf/ia64.h"
-#include "ansidecl.h"
-
-#define UNW_VER(x) ((x) >> 48)
-#define UNW_FLAG_MASK 0x0000ffff00000000LL
-#define UNW_FLAG_OSMASK 0x0000f00000000000LL
-#define UNW_FLAG_EHANDLER(x) ((x) & 0x0000000100000000LL)
-#define UNW_FLAG_UHANDLER(x) ((x) & 0x0000000200000000LL)
-#define UNW_LENGTH(x) ((x) & 0x00000000ffffffffLL)
-
-extern const unsigned char *unw_decode (const unsigned char *, int, void *);
diff --git a/binutils-2.17/binutils/version.c b/binutils-2.17/binutils/version.c
deleted file mode 100644
index 2843e69f..00000000
--- a/binutils-2.17/binutils/version.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* version.c -- binutils version information
- Copyright 1991, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
- Free Software Foundation, Inc.
-
- This file is part of GNU Binutils.
-
- 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, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#include <stdio.h>
-#include "bfd.h"
-#include "bfdver.h"
-#include "bucomm.h"
-
-/* Print the version number and copyright information, and exit. This
- implements the --version option for the various programs. */
-
-void
-print_version (const char *name)
-{
- /* This output is intended to follow the GNU standards document. */
- /* xgettext:c-format */
- printf ("GNU %s %s\n", name, BFD_VERSION_STRING);
- printf (_("Copyright 2005 Free Software Foundation, Inc.\n"));
- printf (_("\
-This program is free software; you may redistribute it under the terms of\n\
-the GNU General Public License. This program has absolutely no warranty.\n"));
- exit (0);
-}
diff --git a/binutils-2.17/binutils/windres.c b/binutils-2.17/binutils/windres.c
deleted file mode 100644
index 50af427d..00000000
--- a/binutils-2.17/binutils/windres.c
+++ /dev/null
@@ -1,1010 +0,0 @@
-/* windres.c -- a program to manipulate Windows resources
- Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Cygnus Support.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This program can read and write Windows resources in various
- formats. In particular, it can act like the rc resource compiler
- program, and it can act like the cvtres res to COFF conversion
- program.
-
- It is based on information taken from the following sources:
-
- * Microsoft documentation.
-
- * The rcl program, written by Gunther Ebert
- <gunther.ebert@ixos-leipzig.de>.
-
- * The res2coff program, written by Pedro A. Aranda <paag@tid.es>. */
-
-#include "config.h"
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <assert.h>
-#include <time.h>
-#include "bfd.h"
-#include "getopt.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "safe-ctype.h"
-#include "obstack.h"
-#include "windres.h"
-
-/* Used by resrc.c at least. */
-
-int verbose = 0;
-
-/* An enumeration of format types. */
-
-enum res_format
-{
- /* Unknown format. */
- RES_FORMAT_UNKNOWN,
- /* Textual RC file. */
- RES_FORMAT_RC,
- /* Binary RES file. */
- RES_FORMAT_RES,
- /* COFF file. */
- RES_FORMAT_COFF
-};
-
-/* A structure used to map between format types and strings. */
-
-struct format_map
-{
- const char *name;
- enum res_format format;
-};
-
-/* A mapping between names and format types. */
-
-static const struct format_map format_names[] =
-{
- { "rc", RES_FORMAT_RC },
- { "res", RES_FORMAT_RES },
- { "coff", RES_FORMAT_COFF },
- { NULL, RES_FORMAT_UNKNOWN }
-};
-
-/* A mapping from file extensions to format types. */
-
-static const struct format_map format_fileexts[] =
-{
- { "rc", RES_FORMAT_RC },
- { "res", RES_FORMAT_RES },
- { "exe", RES_FORMAT_COFF },
- { "obj", RES_FORMAT_COFF },
- { "o", RES_FORMAT_COFF },
- { NULL, RES_FORMAT_UNKNOWN }
-};
-
-/* A list of include directories. */
-
-struct include_dir
-{
- struct include_dir *next;
- char *dir;
-};
-
-static struct include_dir *include_dirs;
-
-/* Static functions. */
-
-static void res_init (void);
-static int extended_menuitems (const struct menuitem *);
-static enum res_format format_from_name (const char *, int);
-static enum res_format format_from_filename (const char *, int);
-static void usage (FILE *, int);
-static int cmp_res_entry (const void *, const void *);
-static struct res_directory *sort_resources (struct res_directory *);
-static void reswr_init (void);
-static const char * quot (const char *);
-
-/* When we are building a resource tree, we allocate everything onto
- an obstack, so that we can free it all at once if we want. */
-
-#define obstack_chunk_alloc xmalloc
-#define obstack_chunk_free free
-
-/* The resource building obstack. */
-
-static struct obstack res_obstack;
-
-/* Initialize the resource building obstack. */
-
-static void
-res_init (void)
-{
- obstack_init (&res_obstack);
-}
-
-/* Allocate space on the resource building obstack. */
-
-void *
-res_alloc (size_t bytes)
-{
- return (void *) obstack_alloc (&res_obstack, bytes);
-}
-
-/* We also use an obstack to save memory used while writing out a set
- of resources. */
-
-static struct obstack reswr_obstack;
-
-/* Initialize the resource writing obstack. */
-
-static void
-reswr_init (void)
-{
- obstack_init (&reswr_obstack);
-}
-
-/* Allocate space on the resource writing obstack. */
-
-void *
-reswr_alloc (size_t bytes)
-{
- return (void *) obstack_alloc (&reswr_obstack, bytes);
-}
-
-/* Open a file using the include directory search list. */
-
-FILE *
-open_file_search (const char *filename, const char *mode, const char *errmsg,
- char **real_filename)
-{
- FILE *e;
- struct include_dir *d;
-
- e = fopen (filename, mode);
- if (e != NULL)
- {
- *real_filename = xstrdup (filename);
- return e;
- }
-
- if (errno == ENOENT)
- {
- for (d = include_dirs; d != NULL; d = d->next)
- {
- char *n;
-
- n = (char *) xmalloc (strlen (d->dir) + strlen (filename) + 2);
- sprintf (n, "%s/%s", d->dir, filename);
- e = fopen (n, mode);
- if (e != NULL)
- {
- *real_filename = n;
- return e;
- }
-
- if (errno != ENOENT)
- break;
- }
- }
-
- fatal (_("can't open %s `%s': %s"), errmsg, filename, strerror (errno));
-
- /* Return a value to avoid a compiler warning. */
- return NULL;
-}
-
-/* Compare two resource ID's. We consider name entries to come before
- numeric entries, because that is how they appear in the COFF .rsrc
- section. */
-
-int
-res_id_cmp (struct res_id a, struct res_id b)
-{
- if (! a.named)
- {
- if (b.named)
- return 1;
- if (a.u.id > b.u.id)
- return 1;
- else if (a.u.id < b.u.id)
- return -1;
- else
- return 0;
- }
- else
- {
- unichar *as, *ase, *bs, *bse;
-
- if (! b.named)
- return -1;
-
- as = a.u.n.name;
- ase = as + a.u.n.length;
- bs = b.u.n.name;
- bse = bs + b.u.n.length;
-
- while (as < ase)
- {
- int i;
-
- if (bs >= bse)
- return 1;
- i = (int) *as - (int) *bs;
- if (i != 0)
- return i;
- ++as;
- ++bs;
- }
-
- if (bs < bse)
- return -1;
-
- return 0;
- }
-}
-
-/* Print a resource ID. */
-
-void
-res_id_print (FILE *stream, struct res_id id, int quote)
-{
- if (! id.named)
- fprintf (stream, "%lu", id.u.id);
- else
- {
- if (quote)
- putc ('"', stream);
- unicode_print (stream, id.u.n.name, id.u.n.length);
- if (quote)
- putc ('"', stream);
- }
-}
-
-/* Print a list of resource ID's. */
-
-void
-res_ids_print (FILE *stream, int cids, const struct res_id *ids)
-{
- int i;
-
- for (i = 0; i < cids; i++)
- {
- res_id_print (stream, ids[i], 1);
- if (i + 1 < cids)
- fprintf (stream, ": ");
- }
-}
-
-/* Convert an ASCII string to a resource ID. */
-
-void
-res_string_to_id (struct res_id *res_id, const char *string)
-{
- res_id->named = 1;
- unicode_from_ascii (&res_id->u.n.length, &res_id->u.n.name, string);
-}
-
-/* Define a resource. The arguments are the resource tree, RESOURCES,
- and the location at which to put it in the tree, CIDS and IDS.
- This returns a newly allocated res_resource structure, which the
- caller is expected to initialize. If DUPOK is non-zero, then if a
- resource with this ID exists, it is returned. Otherwise, a warning
- is issued, and a new resource is created replacing the existing
- one. */
-
-struct res_resource *
-define_resource (struct res_directory **resources, int cids,
- const struct res_id *ids, int dupok)
-{
- struct res_entry *re = NULL;
- int i;
-
- assert (cids > 0);
- for (i = 0; i < cids; i++)
- {
- struct res_entry **pp;
-
- if (*resources == NULL)
- {
- static unsigned long timeval;
-
- /* Use the same timestamp for every resource created in a
- single run. */
- if (timeval == 0)
- timeval = time (NULL);
-
- *resources = ((struct res_directory *)
- res_alloc (sizeof **resources));
- (*resources)->characteristics = 0;
- (*resources)->time = timeval;
- (*resources)->major = 0;
- (*resources)->minor = 0;
- (*resources)->entries = NULL;
- }
-
- for (pp = &(*resources)->entries; *pp != NULL; pp = &(*pp)->next)
- if (res_id_cmp ((*pp)->id, ids[i]) == 0)
- break;
-
- if (*pp != NULL)
- re = *pp;
- else
- {
- re = (struct res_entry *) res_alloc (sizeof *re);
- re->next = NULL;
- re->id = ids[i];
- if ((i + 1) < cids)
- {
- re->subdir = 1;
- re->u.dir = NULL;
- }
- else
- {
- re->subdir = 0;
- re->u.res = NULL;
- }
-
- *pp = re;
- }
-
- if ((i + 1) < cids)
- {
- if (! re->subdir)
- {
- fprintf (stderr, "%s: ", program_name);
- res_ids_print (stderr, i, ids);
- fprintf (stderr, _(": expected to be a directory\n"));
- xexit (1);
- }
-
- resources = &re->u.dir;
- }
- }
-
- if (re->subdir)
- {
- fprintf (stderr, "%s: ", program_name);
- res_ids_print (stderr, cids, ids);
- fprintf (stderr, _(": expected to be a leaf\n"));
- xexit (1);
- }
-
- if (re->u.res != NULL)
- {
- if (dupok)
- return re->u.res;
-
- fprintf (stderr, _("%s: warning: "), program_name);
- res_ids_print (stderr, cids, ids);
- fprintf (stderr, _(": duplicate value\n"));
- }
-
- re->u.res = ((struct res_resource *)
- res_alloc (sizeof (struct res_resource)));
- memset (re->u.res, 0, sizeof (struct res_resource));
-
- re->u.res->type = RES_TYPE_UNINITIALIZED;
- return re->u.res;
-}
-
-/* Define a standard resource. This is a version of define_resource
- that just takes type, name, and language arguments. */
-
-struct res_resource *
-define_standard_resource (struct res_directory **resources, int type,
- struct res_id name, int language, int dupok)
-{
- struct res_id a[3];
-
- a[0].named = 0;
- a[0].u.id = type;
- a[1] = name;
- a[2].named = 0;
- a[2].u.id = language;
- return define_resource (resources, 3, a, dupok);
-}
-
-/* Comparison routine for resource sorting. */
-
-static int
-cmp_res_entry (const void *p1, const void *p2)
-{
- const struct res_entry **re1, **re2;
-
- re1 = (const struct res_entry **) p1;
- re2 = (const struct res_entry **) p2;
- return res_id_cmp ((*re1)->id, (*re2)->id);
-}
-
-/* Sort the resources. */
-
-static struct res_directory *
-sort_resources (struct res_directory *resdir)
-{
- int c, i;
- struct res_entry *re;
- struct res_entry **a;
-
- if (resdir->entries == NULL)
- return resdir;
-
- c = 0;
- for (re = resdir->entries; re != NULL; re = re->next)
- ++c;
-
- /* This is a recursive routine, so using xmalloc is probably better
- than alloca. */
- a = (struct res_entry **) xmalloc (c * sizeof (struct res_entry *));
-
- for (i = 0, re = resdir->entries; re != NULL; re = re->next, i++)
- a[i] = re;
-
- qsort (a, c, sizeof (struct res_entry *), cmp_res_entry);
-
- resdir->entries = a[0];
- for (i = 0; i < c - 1; i++)
- a[i]->next = a[i + 1];
- a[i]->next = NULL;
-
- free (a);
-
- /* Now sort the subdirectories. */
-
- for (re = resdir->entries; re != NULL; re = re->next)
- if (re->subdir)
- re->u.dir = sort_resources (re->u.dir);
-
- return resdir;
-}
-
-/* Return whether the dialog resource DIALOG is a DIALOG or a
- DIALOGEX. */
-
-int
-extended_dialog (const struct dialog *dialog)
-{
- const struct dialog_control *c;
-
- if (dialog->ex != NULL)
- return 1;
-
- for (c = dialog->controls; c != NULL; c = c->next)
- if (c->data != NULL || c->help != 0)
- return 1;
-
- return 0;
-}
-
-/* Return whether MENUITEMS are a MENU or a MENUEX. */
-
-int
-extended_menu (const struct menu *menu)
-{
- return extended_menuitems (menu->items);
-}
-
-static int
-extended_menuitems (const struct menuitem *menuitems)
-{
- const struct menuitem *mi;
-
- for (mi = menuitems; mi != NULL; mi = mi->next)
- {
- if (mi->help != 0 || mi->state != 0)
- return 1;
- if (mi->popup != NULL && mi->id != 0)
- return 1;
- if ((mi->type
- & ~ (MENUITEM_CHECKED
- | MENUITEM_GRAYED
- | MENUITEM_HELP
- | MENUITEM_INACTIVE
- | MENUITEM_MENUBARBREAK
- | MENUITEM_MENUBREAK))
- != 0)
- return 1;
- if (mi->popup != NULL)
- {
- if (extended_menuitems (mi->popup))
- return 1;
- }
- }
-
- return 0;
-}
-
-/* Convert a string to a format type, or exit if it can't be done. */
-
-static enum res_format
-format_from_name (const char *name, int exit_on_error)
-{
- const struct format_map *m;
-
- for (m = format_names; m->name != NULL; m++)
- if (strcasecmp (m->name, name) == 0)
- break;
-
- if (m->name == NULL && exit_on_error)
- {
- non_fatal (_("unknown format type `%s'"), name);
- fprintf (stderr, _("%s: supported formats:"), program_name);
- for (m = format_names; m->name != NULL; m++)
- fprintf (stderr, " %s", m->name);
- fprintf (stderr, "\n");
- xexit (1);
- }
-
- return m->format;
-}
-
-/* Work out a format type given a file name. If INPUT is non-zero,
- it's OK to look at the file itself. */
-
-static enum res_format
-format_from_filename (const char *filename, int input)
-{
- const char *ext;
- FILE *e;
- unsigned char b1, b2, b3, b4, b5;
- int magic;
-
- /* If we have an extension, see if we recognize it as implying a
- particular format. */
- ext = strrchr (filename, '.');
- if (ext != NULL)
- {
- const struct format_map *m;
-
- ++ext;
- for (m = format_fileexts; m->name != NULL; m++)
- if (strcasecmp (m->name, ext) == 0)
- return m->format;
- }
-
- /* If we don't recognize the name of an output file, assume it's a
- COFF file. */
- if (! input)
- return RES_FORMAT_COFF;
-
- /* Read the first few bytes of the file to see if we can guess what
- it is. */
- e = fopen (filename, FOPEN_RB);
- if (e == NULL)
- fatal ("%s: %s", filename, strerror (errno));
-
- b1 = getc (e);
- b2 = getc (e);
- b3 = getc (e);
- b4 = getc (e);
- b5 = getc (e);
-
- fclose (e);
-
- /* A PE executable starts with 0x4d 0x5a. */
- if (b1 == 0x4d && b2 == 0x5a)
- return RES_FORMAT_COFF;
-
- /* A COFF .o file starts with a COFF magic number. */
- magic = (b2 << 8) | b1;
- switch (magic)
- {
- case 0x14c: /* i386 */
- case 0x166: /* MIPS */
- case 0x184: /* Alpha */
- case 0x268: /* 68k */
- case 0x1f0: /* PowerPC */
- case 0x290: /* PA */
- return RES_FORMAT_COFF;
- }
-
- /* A RES file starts with 0x0 0x0 0x0 0x0 0x20 0x0 0x0 0x0. */
- if (b1 == 0 && b2 == 0 && b3 == 0 && b4 == 0 && b5 == 0x20)
- return RES_FORMAT_RES;
-
- /* If every character is printable or space, assume it's an RC file. */
- if ((ISPRINT (b1) || ISSPACE (b1))
- && (ISPRINT (b2) || ISSPACE (b2))
- && (ISPRINT (b3) || ISSPACE (b3))
- && (ISPRINT (b4) || ISSPACE (b4))
- && (ISPRINT (b5) || ISSPACE (b5)))
- return RES_FORMAT_RC;
-
- /* Otherwise, we give up. */
- fatal (_("can not determine type of file `%s'; use the -J option"),
- filename);
-
- /* Return something to silence the compiler warning. */
- return RES_FORMAT_UNKNOWN;
-}
-
-/* Print a usage message and exit. */
-
-static void
-usage (FILE *stream, int status)
-{
- fprintf (stream, _("Usage: %s [option(s)] [input-file] [output-file]\n"),
- program_name);
- fprintf (stream, _(" The options are:\n\
- -i --input=<file> Name input file\n\
- -o --output=<file> Name output file\n\
- -J --input-format=<format> Specify input format\n\
- -O --output-format=<format> Specify output format\n\
- -F --target=<target> Specify COFF target\n\
- --preprocessor=<program> Program to use to preprocess rc file\n\
- -I --include-dir=<dir> Include directory when preprocessing rc file\n\
- -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n\
- -U --undefine <sym> Undefine SYM when preprocessing rc file\n\
- -v --verbose Verbose - tells you what it's doing\n\
- -l --language=<val> Set language when reading rc file\n\
- --use-temp-file Use a temporary file instead of popen to read\n\
- the preprocessor output\n\
- --no-use-temp-file Use popen (default)\n"));
-#ifdef YYDEBUG
- fprintf (stream, _("\
- --yydebug Turn on parser debugging\n"));
-#endif
- fprintf (stream, _("\
- -r Ignored for compatibility with rc\n\
- @<file> Read options from <file>\n\
- -h --help Print this help message\n\
- -V --version Print version information\n"));
- fprintf (stream, _("\
-FORMAT is one of rc, res, or coff, and is deduced from the file name\n\
-extension if not specified. A single file name is an input file.\n\
-No input-file is stdin, default rc. No output-file is stdout, default rc.\n"));
-
- list_supported_targets (program_name, stream);
-
- if (status == 0)
- fprintf (stream, _("Report bugs to %s\n"), REPORT_BUGS_TO);
-
- exit (status);
-}
-
-/* Quote characters that will confuse the shell when we run the preprocessor. */
-
-static const char *
-quot (const char *string)
-{
- static char *buf = 0;
- static int buflen = 0;
- int slen = strlen (string);
- const char *src;
- char *dest;
-
- if ((buflen < slen * 2 + 2) || !buf)
- {
- buflen = slen * 2 + 2;
- if (buf)
- free (buf);
- buf = (char *) xmalloc (buflen);
- }
-
- for (src=string, dest=buf; *src; src++, dest++)
- {
- if (*src == '(' || *src == ')' || *src == ' ')
- *dest++ = '\\';
- *dest = *src;
- }
- *dest = 0;
- return buf;
-}
-
-/* Long options. */
-
-/* 150 isn't special; it's just an arbitrary non-ASCII char value. */
-
-#define OPTION_PREPROCESSOR 150
-#define OPTION_USE_TEMP_FILE (OPTION_PREPROCESSOR + 1)
-#define OPTION_NO_USE_TEMP_FILE (OPTION_USE_TEMP_FILE + 1)
-#define OPTION_YYDEBUG (OPTION_NO_USE_TEMP_FILE + 1)
-
-static const struct option long_options[] =
-{
- {"input", required_argument, 0, 'i'},
- {"output", required_argument, 0, 'o'},
- {"input-format", required_argument, 0, 'J'},
- {"output-format", required_argument, 0, 'O'},
- {"target", required_argument, 0, 'F'},
- {"preprocessor", required_argument, 0, OPTION_PREPROCESSOR},
- {"include-dir", required_argument, 0, 'I'},
- {"define", required_argument, 0, 'D'},
- {"undefine", required_argument, 0, 'U'},
- {"verbose", no_argument, 0, 'v'},
- {"language", required_argument, 0, 'l'},
- {"use-temp-file", no_argument, 0, OPTION_USE_TEMP_FILE},
- {"no-use-temp-file", no_argument, 0, OPTION_NO_USE_TEMP_FILE},
- {"yydebug", no_argument, 0, OPTION_YYDEBUG},
- {"version", no_argument, 0, 'V'},
- {"help", no_argument, 0, 'h'},
- {0, no_argument, 0, 0}
-};
-
-/* This keeps gcc happy when using -Wmissing-prototypes -Wstrict-prototypes. */
-int main (int, char **);
-
-/* The main function. */
-
-int
-main (int argc, char **argv)
-{
- int c;
- char *input_filename;
- char *output_filename;
- enum res_format input_format;
- enum res_format input_format_tmp;
- enum res_format output_format;
- char *target;
- char *preprocessor;
- char *preprocargs;
- const char *quotedarg;
- int language;
- struct res_directory *resources;
- int use_temp_file;
-
-#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
- setlocale (LC_MESSAGES, "");
-#endif
-#if defined (HAVE_SETLOCALE)
- setlocale (LC_CTYPE, "");
-#endif
- bindtextdomain (PACKAGE, LOCALEDIR);
- textdomain (PACKAGE);
-
- program_name = argv[0];
- xmalloc_set_program_name (program_name);
-
- expandargv (&argc, &argv);
-
- bfd_init ();
- set_default_bfd_target ();
-
- res_init ();
-
- input_filename = NULL;
- output_filename = NULL;
- input_format = RES_FORMAT_UNKNOWN;
- output_format = RES_FORMAT_UNKNOWN;
- target = NULL;
- preprocessor = NULL;
- preprocargs = NULL;
- language = 0x409; /* LANG_ENGLISH, SUBLANG_ENGLISH_US. */
- use_temp_file = 0;
-
- while ((c = getopt_long (argc, argv, "f:i:l:o:I:J:O:F:D:U:rhHvV", long_options,
- (int *) 0)) != EOF)
- {
- switch (c)
- {
- case 'i':
- input_filename = optarg;
- break;
-
- case 'f':
- /* For compatibility with rc we accept "-fo <name>" as being the
- equivalent of "-o <name>". We do not advertise this fact
- though, as we do not want users to use non-GNU like command
- line switches. */
- if (*optarg != 'o')
- fatal (_("invalid option -f\n"));
- optarg++;
- if (* optarg == 0)
- {
- if (optind == argc)
- fatal (_("No filename following the -fo option.\n"));
- optarg = argv [optind++];
- }
- /* Fall through. */
-
- case 'o':
- output_filename = optarg;
- break;
-
- case 'J':
- input_format = format_from_name (optarg, 1);
- break;
-
- case 'O':
- output_format = format_from_name (optarg, 1);
- break;
-
- case 'F':
- target = optarg;
- break;
-
- case OPTION_PREPROCESSOR:
- preprocessor = optarg;
- break;
-
- case 'D':
- case 'U':
- if (preprocargs == NULL)
- {
- quotedarg = quot (optarg);
- preprocargs = xmalloc (strlen (quotedarg) + 3);
- sprintf (preprocargs, "-%c%s", c, quotedarg);
- }
- else
- {
- char *n;
-
- quotedarg = quot (optarg);
- n = xmalloc (strlen (preprocargs) + strlen (quotedarg) + 4);
- sprintf (n, "%s -%c%s", preprocargs, c, quotedarg);
- free (preprocargs);
- preprocargs = n;
- }
- break;
-
- case 'r':
- /* Ignored for compatibility with rc. */
- break;
-
- case 'v':
- verbose ++;
- break;
-
- case 'I':
- /* For backward compatibility, should be removed in the future. */
- input_format_tmp = format_from_name (optarg, 0);
- if (input_format_tmp != RES_FORMAT_UNKNOWN)
- {
- fprintf (stderr, _("Option -I is deprecated for setting the input format, please use -J instead.\n"));
- input_format = input_format_tmp;
- break;
- }
-
- if (preprocargs == NULL)
- {
- quotedarg = quot (optarg);
- preprocargs = xmalloc (strlen (quotedarg) + 3);
- sprintf (preprocargs, "-I%s", quotedarg);
- }
- else
- {
- char *n;
-
- quotedarg = quot (optarg);
- n = xmalloc (strlen (preprocargs) + strlen (quotedarg) + 4);
- sprintf (n, "%s -I%s", preprocargs, quotedarg);
- free (preprocargs);
- preprocargs = n;
- }
-
- {
- struct include_dir *n, **pp;
-
- n = (struct include_dir *) xmalloc (sizeof *n);
- n->next = NULL;
- n->dir = optarg;
-
- for (pp = &include_dirs; *pp != NULL; pp = &(*pp)->next)
- ;
- *pp = n;
- }
-
- break;
-
- case 'l':
- language = strtol (optarg, (char **) NULL, 16);
- break;
-
- case OPTION_USE_TEMP_FILE:
- use_temp_file = 1;
- break;
-
- case OPTION_NO_USE_TEMP_FILE:
- use_temp_file = 0;
- break;
-
-#ifdef YYDEBUG
- case OPTION_YYDEBUG:
- yydebug = 1;
- break;
-#endif
-
- case 'h':
- case 'H':
- usage (stdout, 0);
- break;
-
- case 'V':
- print_version ("windres");
- break;
-
- default:
- usage (stderr, 1);
- break;
- }
- }
-
- if (input_filename == NULL && optind < argc)
- {
- input_filename = argv[optind];
- ++optind;
- }
-
- if (output_filename == NULL && optind < argc)
- {
- output_filename = argv[optind];
- ++optind;
- }
-
- if (argc != optind)
- usage (stderr, 1);
-
- if (input_format == RES_FORMAT_UNKNOWN)
- {
- if (input_filename == NULL)
- input_format = RES_FORMAT_RC;
- else
- input_format = format_from_filename (input_filename, 1);
- }
-
- if (output_format == RES_FORMAT_UNKNOWN)
- {
- if (output_filename == NULL)
- output_format = RES_FORMAT_RC;
- else
- output_format = format_from_filename (output_filename, 0);
- }
-
- /* Read the input file. */
- switch (input_format)
- {
- default:
- abort ();
- case RES_FORMAT_RC:
- resources = read_rc_file (input_filename, preprocessor, preprocargs,
- language, use_temp_file);
- break;
- case RES_FORMAT_RES:
- resources = read_res_file (input_filename);
- break;
- case RES_FORMAT_COFF:
- resources = read_coff_rsrc (input_filename, target);
- break;
- }
-
- if (resources == NULL)
- fatal (_("no resources"));
-
- /* Sort the resources. This is required for COFF, convenient for
- rc, and unimportant for res. */
- resources = sort_resources (resources);
-
- /* Write the output file. */
- reswr_init ();
-
- switch (output_format)
- {
- default:
- abort ();
- case RES_FORMAT_RC:
- write_rc_file (output_filename, resources);
- break;
- case RES_FORMAT_RES:
- write_res_file (output_filename, resources);
- break;
- case RES_FORMAT_COFF:
- write_coff_file (output_filename, target, resources);
- break;
- }
-
- xexit (0);
- return 0;
-}
diff --git a/binutils-2.17/binutils/windres.h b/binutils-2.17/binutils/windres.h
deleted file mode 100644
index 6a9dfa73..00000000
--- a/binutils-2.17/binutils/windres.h
+++ /dev/null
@@ -1,854 +0,0 @@
-/* windres.h -- header file for windres program.
- Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Cygnus Support.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#include "ansidecl.h"
-
-/* This is the header file for the windres program. It defines
- structures and declares functions used within the program. */
-
-#include "winduni.h"
-
-/* We represent resources internally as a tree, similar to the tree
- used in the .rsrc section of a COFF file. The root is a
- res_directory structure. */
-
-struct res_directory
-{
- /* Resource flags. According to the MS docs, this is currently
- always zero. */
- unsigned long characteristics;
- /* Time/date stamp. */
- unsigned long time;
- /* Major version number. */
- unsigned short major;
- /* Minor version number. */
- unsigned short minor;
- /* Directory entries. */
- struct res_entry *entries;
-};
-
-/* A resource ID is stored in a res_id structure. */
-
-struct res_id
-{
- /* Non-zero if this entry has a name rather than an ID. */
- unsigned int named : 1;
- union
- {
- /* If the named field is non-zero, this is the name. */
- struct
- {
- /* Length of the name. */
- int length;
- /* Pointer to the name, which is a Unicode string. */
- unichar *name;
- } n;
- /* If the named field is zero, this is the ID. */
- unsigned long id;
- } u;
-};
-
-/* Each entry in the tree is a res_entry structure. We mix
- directories and resources because in a COFF file all entries in a
- directory are sorted together, whether the entries are
- subdirectories or resources. */
-
-struct res_entry
-{
- /* Next entry. */
- struct res_entry *next;
- /* Resource ID. */
- struct res_id id;
- /* Non-zero if this entry is a subdirectory rather than a leaf. */
- unsigned int subdir : 1;
- union
- {
- /* If the subdir field is non-zero, this is a pointer to the
- subdirectory. */
- struct res_directory *dir;
- /* If the subdir field is zero, this is a pointer to the resource
- data. */
- struct res_resource *res;
- } u;
-};
-
-/* Types of resources. */
-
-enum res_type
-{
- RES_TYPE_UNINITIALIZED,
- RES_TYPE_ACCELERATOR,
- RES_TYPE_BITMAP,
- RES_TYPE_CURSOR,
- RES_TYPE_GROUP_CURSOR,
- RES_TYPE_DIALOG,
- RES_TYPE_FONT,
- RES_TYPE_FONTDIR,
- RES_TYPE_ICON,
- RES_TYPE_GROUP_ICON,
- RES_TYPE_MENU,
- RES_TYPE_MESSAGETABLE,
- RES_TYPE_RCDATA,
- RES_TYPE_STRINGTABLE,
- RES_TYPE_USERDATA,
- RES_TYPE_VERSIONINFO
-};
-
-/* A res file and a COFF file store information differently. The
- res_info structures holds data which in a res file is stored with
- each resource, but in a COFF file is stored elsewhere. */
-
-struct res_res_info
-{
- /* Language. In a COFF file, the third level of the directory is
- keyed by the language, so the language of a resource is defined
- by its location in the resource tree. */
- unsigned short language;
- /* Characteristics of the resource. Entirely user defined. In a
- COFF file, the res_directory structure has a characteristics
- field, but I don't know if it's related to the one in the res
- file. */
- unsigned long characteristics;
- /* Version of the resource. Entirely user defined. In a COFF file,
- the res_directory structure has a characteristics field, but I
- don't know if it's related to the one in the res file. */
- unsigned long version;
- /* Memory flags. This is a combination of the MEMFLAG values
- defined below. Most of these values are historical, and are not
- meaningful for win32. I don't think there is any way to store
- this information in a COFF file. */
- unsigned short memflags;
-};
-
-/* Each resource in a COFF file has some information which can does
- not appear in a res file. */
-
-struct res_coff_info
-{
- /* The code page used for the data. I don't really know what this
- should be. */
- unsigned long codepage;
- /* A resource entry in a COFF file has a reserved field, which we
- record here when reading a COFF file. When writing a COFF file,
- we set this field to zero. */
- unsigned long reserved;
-};
-
-/* Resource data is stored in a res_resource structure. */
-
-struct res_resource
-{
- /* The type of resource. */
- enum res_type type;
- /* The data for the resource. */
- union
- {
- struct
- {
- unsigned long length;
- const unsigned char *data;
- } data;
- struct accelerator *acc;
- struct cursor *cursor;
- struct group_cursor *group_cursor;
- struct dialog *dialog;
- struct fontdir *fontdir;
- struct group_icon *group_icon;
- struct menu *menu;
- struct rcdata_item *rcdata;
- struct stringtable *stringtable;
- struct rcdata_item *userdata;
- struct versioninfo *versioninfo;
- } u;
- /* Information from a res file. */
- struct res_res_info res_info;
- /* Information from a COFF file. */
- struct res_coff_info coff_info;
-};
-
-#define SUBLANG_SHIFT 10
-
-/* Memory flags in the memflags field of a struct res_resource. */
-
-#define MEMFLAG_MOVEABLE 0x10
-#define MEMFLAG_PURE 0x20
-#define MEMFLAG_PRELOAD 0x40
-#define MEMFLAG_DISCARDABLE 0x1000
-
-/* Standard resource type codes. These are used in the ID field of a
- res_entry structure. */
-
-#define RT_CURSOR 1
-#define RT_BITMAP 2
-#define RT_ICON 3
-#define RT_MENU 4
-#define RT_DIALOG 5
-#define RT_STRING 6
-#define RT_FONTDIR 7
-#define RT_FONT 8
-#define RT_ACCELERATOR 9
-#define RT_RCDATA 10
-#define RT_MESSAGETABLE 11
-#define RT_GROUP_CURSOR 12
-#define RT_GROUP_ICON 14
-#define RT_VERSION 16
-#define RT_DLGINCLUDE 17
-#define RT_PLUGPLAY 19
-#define RT_VXD 20
-#define RT_ANICURSOR 21
-#define RT_ANIICON 22
-
-/* An accelerator resource is a linked list of these structures. */
-
-struct accelerator
-{
- /* Next accelerator. */
- struct accelerator *next;
- /* Flags. A combination of the ACC values defined below. */
- unsigned short flags;
- /* Key value. */
- unsigned short key;
- /* Resource ID. */
- unsigned short id;
-};
-
-/* Accelerator flags in the flags field of a struct accelerator.
- These are the same values that appear in a res file. I hope. */
-
-#define ACC_VIRTKEY 0x01
-#define ACC_NOINVERT 0x02
-#define ACC_SHIFT 0x04
-#define ACC_CONTROL 0x08
-#define ACC_ALT 0x10
-#define ACC_LAST 0x80
-
-/* A cursor resource. */
-
-struct cursor
-{
- /* X coordinate of hotspot. */
- short xhotspot;
- /* Y coordinate of hotspot. */
- short yhotspot;
- /* Length of bitmap data. */
- unsigned long length;
- /* Data. */
- const unsigned char *data;
-};
-
-/* A group_cursor resource is a list of group_cursor structures. */
-
-struct group_cursor
-{
- /* Next cursor in group. */
- struct group_cursor *next;
- /* Width. */
- unsigned short width;
- /* Height. */
- unsigned short height;
- /* Planes. */
- unsigned short planes;
- /* Bits per pixel. */
- unsigned short bits;
- /* Number of bytes in cursor resource. */
- unsigned long bytes;
- /* Index of cursor resource. */
- unsigned short index;
-};
-
-/* A dialog resource. */
-
-struct dialog
-{
- /* Basic window style. */
- unsigned long style;
- /* Extended window style. */
- unsigned long exstyle;
- /* X coordinate. */
- unsigned short x;
- /* Y coordinate. */
- unsigned short y;
- /* Width. */
- unsigned short width;
- /* Height. */
- unsigned short height;
- /* Menu name. */
- struct res_id menu;
- /* Class name. */
- struct res_id class;
- /* Caption. */
- unichar *caption;
- /* Font point size. */
- unsigned short pointsize;
- /* Font name. */
- unichar *font;
- /* Extended information for a dialogex. */
- struct dialog_ex *ex;
- /* Controls. */
- struct dialog_control *controls;
-};
-
-/* An extended dialog has additional information. */
-
-struct dialog_ex
-{
- /* Help ID. */
- unsigned long help;
- /* Font weight. */
- unsigned short weight;
- /* Whether the font is italic. */
- unsigned char italic;
- /* Character set. */
- unsigned char charset;
-};
-
-/* Window style flags, from the winsup Defines.h header file. These
- can appear in the style field of a struct dialog or a struct
- dialog_control. */
-
-#define CW_USEDEFAULT (0x80000000)
-#define WS_BORDER (0x800000L)
-#define WS_CAPTION (0xc00000L)
-#define WS_CHILD (0x40000000L)
-#define WS_CHILDWINDOW (0x40000000L)
-#define WS_CLIPCHILDREN (0x2000000L)
-#define WS_CLIPSIBLINGS (0x4000000L)
-#define WS_DISABLED (0x8000000L)
-#define WS_DLGFRAME (0x400000L)
-#define WS_GROUP (0x20000L)
-#define WS_HSCROLL (0x100000L)
-#define WS_ICONIC (0x20000000L)
-#define WS_MAXIMIZE (0x1000000L)
-#define WS_MAXIMIZEBOX (0x10000L)
-#define WS_MINIMIZE (0x20000000L)
-#define WS_MINIMIZEBOX (0x20000L)
-#define WS_OVERLAPPED (0L)
-#define WS_OVERLAPPEDWINDOW (0xcf0000L)
-#define WS_POPUP (0x80000000L)
-#define WS_POPUPWINDOW (0x80880000L)
-#define WS_SIZEBOX (0x40000L)
-#define WS_SYSMENU (0x80000L)
-#define WS_TABSTOP (0x10000L)
-#define WS_THICKFRAME (0x40000L)
-#define WS_TILED (0L)
-#define WS_TILEDWINDOW (0xcf0000L)
-#define WS_VISIBLE (0x10000000L)
-#define WS_VSCROLL (0x200000L)
-#define MDIS_ALLCHILDSTYLES (0x1)
-#define BS_3STATE (0x5L)
-#define BS_AUTO3STATE (0x6L)
-#define BS_AUTOCHECKBOX (0x3L)
-#define BS_AUTORADIOBUTTON (0x9L)
-#define BS_BITMAP (0x80L)
-#define BS_BOTTOM (0x800L)
-#define BS_CENTER (0x300L)
-#define BS_CHECKBOX (0x2L)
-#define BS_DEFPUSHBUTTON (0x1L)
-#define BS_GROUPBOX (0x7L)
-#define BS_ICON (0x40L)
-#define BS_LEFT (0x100L)
-#define BS_LEFTTEXT (0x20L)
-#define BS_MULTILINE (0x2000L)
-#define BS_NOTIFY (0x4000L)
-#define BS_OWNERDRAW (0xbL)
-#define BS_PUSHBOX (0xcL) /* FIXME! What should this be? */
-#define BS_PUSHBUTTON (0L)
-#define BS_PUSHLIKE (0x1000L)
-#define BS_RADIOBUTTON (0x4L)
-#define BS_RIGHT (0x200L)
-#define BS_RIGHTBUTTON (0x20L)
-#define BS_TEXT (0L)
-#define BS_TOP (0x400L)
-#define BS_USERBUTTON (0x8L)
-#define BS_VCENTER (0xc00L)
-#define CBS_AUTOHSCROLL (0x40L)
-#define CBS_DISABLENOSCROLL (0x800L)
-#define CBS_DROPDOWN (0x2L)
-#define CBS_DROPDOWNLIST (0x3L)
-#define CBS_HASSTRINGS (0x200L)
-#define CBS_LOWERCASE (0x4000L)
-#define CBS_NOINTEGRALHEIGHT (0x400L)
-#define CBS_OEMCONVERT (0x80L)
-#define CBS_OWNERDRAWFIXED (0x10L)
-#define CBS_OWNERDRAWVARIABLE (0x20L)
-#define CBS_SIMPLE (0x1L)
-#define CBS_SORT (0x100L)
-#define CBS_UPPERCASE (0x2000L)
-#define ES_AUTOHSCROLL (0x80L)
-#define ES_AUTOVSCROLL (0x40L)
-#define ES_CENTER (0x1L)
-#define ES_LEFT (0L)
-#define ES_LOWERCASE (0x10L)
-#define ES_MULTILINE (0x4L)
-#define ES_NOHIDESEL (0x100L)
-#define ES_NUMBER (0x2000L)
-#define ES_OEMCONVERT (0x400L)
-#define ES_PASSWORD (0x20L)
-#define ES_READONLY (0x800L)
-#define ES_RIGHT (0x2L)
-#define ES_UPPERCASE (0x8L)
-#define ES_WANTRETURN (0x1000L)
-#define LBS_DISABLENOSCROLL (0x1000L)
-#define LBS_EXTENDEDSEL (0x800L)
-#define LBS_HASSTRINGS (0x40L)
-#define LBS_MULTICOLUMN (0x200L)
-#define LBS_MULTIPLESEL (0x8L)
-#define LBS_NODATA (0x2000L)
-#define LBS_NOINTEGRALHEIGHT (0x100L)
-#define LBS_NOREDRAW (0x4L)
-#define LBS_NOSEL (0x4000L)
-#define LBS_NOTIFY (0x1L)
-#define LBS_OWNERDRAWFIXED (0x10L)
-#define LBS_OWNERDRAWVARIABLE (0x20L)
-#define LBS_SORT (0x2L)
-#define LBS_STANDARD (0xa00003L)
-#define LBS_USETABSTOPS (0x80L)
-#define LBS_WANTKEYBOARDINPUT (0x400L)
-#define SBS_BOTTOMALIGN (0x4L)
-#define SBS_HORZ (0L)
-#define SBS_LEFTALIGN (0x2L)
-#define SBS_RIGHTALIGN (0x4L)
-#define SBS_SIZEBOX (0x8L)
-#define SBS_SIZEBOXBOTTOMRIGHTALIGN (0x4L)
-#define SBS_SIZEBOXTOPLEFTALIGN (0x2L)
-#define SBS_SIZEGRIP (0x10L)
-#define SBS_TOPALIGN (0x2L)
-#define SBS_VERT (0x1L)
-#define SS_BITMAP (0xeL)
-#define SS_BLACKFRAME (0x7L)
-#define SS_BLACKRECT (0x4L)
-#define SS_CENTER (0x1L)
-#define SS_CENTERIMAGE (0x200L)
-#define SS_ENHMETAFILE (0xfL)
-#define SS_ETCHEDFRAME (0x12L)
-#define SS_ETCHEDHORZ (0x10L)
-#define SS_ETCHEDVERT (0x11L)
-#define SS_GRAYFRAME (0x8L)
-#define SS_GRAYRECT (0x5L)
-#define SS_ICON (0x3L)
-#define SS_LEFT (0L)
-#define SS_LEFTNOWORDWRAP (0xcL)
-#define SS_NOPREFIX (0x80L)
-#define SS_NOTIFY (0x100L)
-#define SS_OWNERDRAW (0xdL)
-#define SS_REALSIZEIMAGE (0x800L)
-#define SS_RIGHT (0x2L)
-#define SS_RIGHTJUST (0x400L)
-#define SS_SIMPLE (0xbL)
-#define SS_SUNKEN (0x1000L)
-#define SS_USERITEM (0xaL)
-#define SS_WHITEFRAME (0x9L)
-#define SS_WHITERECT (0x6L)
-#define DS_3DLOOK (0x4L)
-#define DS_ABSALIGN (0x1L)
-#define DS_CENTER (0x800L)
-#define DS_CENTERMOUSE (0x1000L)
-#define DS_CONTEXTHELP (0x2000L)
-#define DS_CONTROL (0x400L)
-#define DS_FIXEDSYS (0x8L)
-#define DS_LOCALEDIT (0x20L)
-#define DS_MODALFRAME (0x80L)
-#define DS_NOFAILCREATE (0x10L)
-#define DS_NOIDLEMSG (0x100L)
-#define DS_SETFONT (0x40L)
-#define DS_SETFOREGROUND (0x200L)
-#define DS_SYSMODAL (0x2L)
-
-/* A dialog control. */
-
-struct dialog_control
-{
- /* Next control. */
- struct dialog_control *next;
- /* ID. */
- unsigned short id;
- /* Style. */
- unsigned long style;
- /* Extended style. */
- unsigned long exstyle;
- /* X coordinate. */
- unsigned short x;
- /* Y coordinate. */
- unsigned short y;
- /* Width. */
- unsigned short width;
- /* Height. */
- unsigned short height;
- /* Class name. */
- struct res_id class;
- /* Associated text. */
- struct res_id text;
- /* Extra data for the window procedure. */
- struct rcdata_item *data;
- /* Help ID. Only used in an extended dialog. */
- unsigned long help;
-};
-
-/* Control classes. These can be used as the ID field in a struct
- dialog_control. */
-
-#define CTL_BUTTON 0x80
-#define CTL_EDIT 0x81
-#define CTL_STATIC 0x82
-#define CTL_LISTBOX 0x83
-#define CTL_SCROLLBAR 0x84
-#define CTL_COMBOBOX 0x85
-
-/* A fontdir resource is a list of fontdir structures. */
-
-struct fontdir
-{
- struct fontdir *next;
- /* Index of font entry. */
- short index;
- /* Length of font information. */
- unsigned long length;
- /* Font information. */
- const unsigned char *data;
-};
-
-/* A group_icon resource is a list of group_icon structures. */
-
-struct group_icon
-{
- /* Next icon in group. */
- struct group_icon *next;
- /* Width. */
- unsigned char width;
- /* Height. */
- unsigned char height;
- /* Color count. */
- unsigned char colors;
- /* Planes. */
- unsigned short planes;
- /* Bits per pixel. */
- unsigned short bits;
- /* Number of bytes in cursor resource. */
- unsigned long bytes;
- /* Index of cursor resource. */
- unsigned short index;
-};
-
-/* A menu resource. */
-
-struct menu
-{
- /* List of menuitems. */
- struct menuitem *items;
- /* Help ID. I don't think there is any way to set this in an rc
- file, but it can appear in the binary format. */
- unsigned long help;
-};
-
-/* A menu resource is a list of menuitem structures. */
-
-struct menuitem
-{
- /* Next menuitem. */
- struct menuitem *next;
- /* Type. In a normal menu, rather than a menuex, this is the flags
- field. */
- unsigned long type;
- /* State. This is only used in a menuex. */
- unsigned long state;
- /* Id. */
- unsigned short id;
- /* Unicode text. */
- unichar *text;
- /* Popup menu items for a popup. */
- struct menuitem *popup;
- /* Help ID. This is only used in a menuex. */
- unsigned long help;
-};
-
-/* Menu item flags. These can appear in the flags field of a struct
- menuitem. */
-
-#define MENUITEM_GRAYED 0x001
-#define MENUITEM_INACTIVE 0x002
-#define MENUITEM_BITMAP 0x004
-#define MENUITEM_OWNERDRAW 0x100
-#define MENUITEM_CHECKED 0x008
-#define MENUITEM_POPUP 0x010
-#define MENUITEM_MENUBARBREAK 0x020
-#define MENUITEM_MENUBREAK 0x040
-#define MENUITEM_ENDMENU 0x080
-#define MENUITEM_HELP 0x4000
-
-/* An rcdata resource is a pointer to a list of rcdata_item
- structures. */
-
-struct rcdata_item
-{
- /* Next data item. */
- struct rcdata_item *next;
- /* Type of data. */
- enum
- {
- RCDATA_WORD,
- RCDATA_DWORD,
- RCDATA_STRING,
- RCDATA_WSTRING,
- RCDATA_BUFFER
- } type;
- union
- {
- unsigned int word;
- unsigned long dword;
- struct
- {
- unsigned long length;
- const char *s;
- } string;
- struct
- {
- unsigned long length;
- const unichar *w;
- } wstring;
- struct
- {
- unsigned long length;
- const unsigned char *data;
- } buffer;
- } u;
-};
-
-/* A stringtable resource is a pointer to a stringtable structure. */
-
-struct stringtable
-{
- /* Each stringtable resource is a list of 16 unicode strings. */
- struct
- {
- /* Length of string. */
- int length;
- /* String data if length > 0. */
- unichar *string;
- } strings[16];
-};
-
-/* A versioninfo resource points to a versioninfo structure. */
-
-struct versioninfo
-{
- /* Fixed version information. */
- struct fixed_versioninfo *fixed;
- /* Variable version information. */
- struct ver_info *var;
-};
-
-/* The fixed portion of a versioninfo resource. */
-
-struct fixed_versioninfo
-{
- /* The file version, which is two 32 bit integers. */
- unsigned long file_version_ms;
- unsigned long file_version_ls;
- /* The product version, which is two 32 bit integers. */
- unsigned long product_version_ms;
- unsigned long product_version_ls;
- /* The file flags mask. */
- unsigned long file_flags_mask;
- /* The file flags. */
- unsigned long file_flags;
- /* The OS type. */
- unsigned long file_os;
- /* The file type. */
- unsigned long file_type;
- /* The file subtype. */
- unsigned long file_subtype;
- /* The date, which in Windows is two 32 bit integers. */
- unsigned long file_date_ms;
- unsigned long file_date_ls;
-};
-
-/* A list of variable version information. */
-
-struct ver_info
-{
- /* Next item. */
- struct ver_info *next;
- /* Type of data. */
- enum { VERINFO_STRING, VERINFO_VAR } type;
- union
- {
- /* StringFileInfo data. */
- struct
- {
- /* Language. */
- unichar *language;
- /* Strings. */
- struct ver_stringinfo *strings;
- } string;
- /* VarFileInfo data. */
- struct
- {
- /* Key. */
- unichar *key;
- /* Values. */
- struct ver_varinfo *var;
- } var;
- } u;
-};
-
-/* A list of string version information. */
-
-struct ver_stringinfo
-{
- /* Next string. */
- struct ver_stringinfo *next;
- /* Key. */
- unichar *key;
- /* Value. */
- unichar *value;
-};
-
-/* A list of variable version information. */
-
-struct ver_varinfo
-{
- /* Next item. */
- struct ver_varinfo *next;
- /* Language ID. */
- unsigned short language;
- /* Character set ID. */
- unsigned short charset;
-};
-
-/* This structure is used when converting resource information to
- binary. */
-
-struct bindata
-{
- /* Next data. */
- struct bindata *next;
- /* Length of data. */
- unsigned long length;
- /* Data. */
- unsigned char *data;
-};
-
-extern int verbose;
-
-/* Function declarations. */
-
-extern struct res_directory *read_rc_file
- (const char *, const char *, const char *, int, int);
-extern struct res_directory *read_res_file (const char *);
-extern struct res_directory *read_coff_rsrc (const char *, const char *);
-extern void write_rc_file (const char *, const struct res_directory *);
-extern void write_res_file (const char *, const struct res_directory *);
-extern void write_coff_file
- (const char *, const char *, const struct res_directory *);
-
-extern struct res_resource *bin_to_res
- (struct res_id, const unsigned char *, unsigned long, int);
-extern struct bindata *res_to_bin (const struct res_resource *, int);
-
-extern FILE *open_file_search
- (const char *, const char *, const char *, char **);
-
-extern void *res_alloc (size_t);
-extern void *reswr_alloc (size_t);
-
-/* Resource ID handling. */
-
-extern int res_id_cmp (struct res_id, struct res_id);
-extern void res_id_print (FILE *, struct res_id, int);
-extern void res_ids_print (FILE *, int, const struct res_id *);
-extern void res_string_to_id (struct res_id *, const char *);
-
-/* Manipulation of the resource tree. */
-
-extern struct res_resource *define_resource
- (struct res_directory **, int, const struct res_id *, int);
-extern struct res_resource *define_standard_resource
- (struct res_directory **, int, struct res_id, int, int);
-
-extern int extended_dialog (const struct dialog *);
-extern int extended_menu (const struct menu *);
-
-/* Communication between the rc file support and the parser and lexer. */
-
-extern int yydebug;
-extern FILE *yyin;
-extern char *rc_filename;
-extern int rc_lineno;
-
-extern int yyparse (void);
-extern int yylex (void);
-extern void yyerror (const char *);
-extern void rcparse_warning (const char *);
-extern void rcparse_set_language (int);
-extern void rcparse_discard_strings (void);
-extern void rcparse_rcdata (void);
-extern void rcparse_normal (void);
-
-extern void define_accelerator
- (struct res_id, const struct res_res_info *, struct accelerator *);
-extern void define_bitmap
- (struct res_id, const struct res_res_info *, const char *);
-extern void define_cursor
- (struct res_id, const struct res_res_info *, const char *);
-extern void define_dialog
- (struct res_id, const struct res_res_info *, const struct dialog *);
-extern struct dialog_control *define_control
- (const struct res_id, unsigned long, unsigned long, unsigned long,
- unsigned long, unsigned long, unsigned long, unsigned long, unsigned long);
-extern struct dialog_control *define_icon_control
- (struct res_id, unsigned long, unsigned long, unsigned long, unsigned long,
- unsigned long, unsigned long, struct rcdata_item *, struct dialog_ex *);
-extern void define_font
- (struct res_id, const struct res_res_info *, const char *);
-extern void define_icon
- (struct res_id, const struct res_res_info *, const char *);
-extern void define_menu
- (struct res_id, const struct res_res_info *, struct menuitem *);
-extern struct menuitem *define_menuitem
- (const char *, int, unsigned long, unsigned long, unsigned long,
- struct menuitem *);
-extern void define_messagetable
- (struct res_id, const struct res_res_info *, const char *);
-extern void define_rcdata
- (struct res_id, const struct res_res_info *, struct rcdata_item *);
-extern void define_rcdata_file
- (struct res_id, const struct res_res_info *, const char *);
-extern struct rcdata_item *define_rcdata_string
- (const char *, unsigned long);
-extern struct rcdata_item *define_rcdata_number (unsigned long, int);
-extern void define_stringtable
- (const struct res_res_info *, unsigned long, const char *);
-extern void define_user_data
- (struct res_id, struct res_id, const struct res_res_info *,
- struct rcdata_item *);
-extern void define_user_file
- (struct res_id, struct res_id, const struct res_res_info *, const char *);
-extern void define_versioninfo
- (struct res_id, int, struct fixed_versioninfo *, struct ver_info *);
-extern struct ver_info *append_ver_stringfileinfo
- (struct ver_info *, const char *, struct ver_stringinfo *);
-extern struct ver_info *append_ver_varfileinfo
- (struct ver_info *, const char *, struct ver_varinfo *);
-extern struct ver_stringinfo *append_verval
- (struct ver_stringinfo *, const char *, const char *);
-extern struct ver_varinfo *append_vertrans
- (struct ver_varinfo *, unsigned long, unsigned long);
diff --git a/binutils-2.17/binutils/winduni.c b/binutils-2.17/binutils/winduni.c
deleted file mode 100644
index b172b5e2..00000000
--- a/binutils-2.17/binutils/winduni.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/* winduni.c -- unicode support for the windres program.
- Copyright 1997, 1998, 2000, 2001, 2003 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Cygnus Support.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This file contains unicode support routines for the windres
- program. Ideally, we would have generic unicode support which
- would work on all systems. However, we don't. Instead, on a
- Windows host, we are prepared to call some Windows routines. This
- means that we will generate different output on Windows and Unix
- hosts, but that seems better than not really supporting unicode at
- all. */
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "winduni.h"
-#include "safe-ctype.h"
-
-#ifdef _WIN32
-#include <windows.h>
-#endif
-
-/* Convert an ASCII string to a unicode string. We just copy it,
- expanding chars to shorts, rather than doing something intelligent. */
-
-void
-unicode_from_ascii (int *length, unichar **unicode, const char *ascii)
-{
- int len;
-#ifndef _WIN32
- const char *s;
- unsigned short *w;
-
- len = strlen (ascii);
- *unicode = ((unichar *) res_alloc ((len + 1) * sizeof (unichar)));
- for (s = ascii, w = *unicode; *s != '\0'; s++, w++)
- *w = *s & 0xff;
- *w = 0;
-#else
- /* We use MultiByteToWideChar rather than strlen to get the unicode
- string length to allow multibyte "ascii" chars. The value returned
- by this function includes the trailing '\0'. */
- len = MultiByteToWideChar (CP_ACP, 0, ascii, -1, NULL, 0);
- if (len)
- {
- *unicode = ((unichar *) res_alloc (len * sizeof (unichar)));
- MultiByteToWideChar (CP_ACP, 0, ascii, -1, *unicode, len);
- }
- /* Discount the trailing '/0'. If MultiByteToWideChar failed,
- this will set *length to -1. */
- len--;
-#endif
-
- if (length != NULL)
- *length = len;
-}
-
-/* Print the unicode string UNICODE to the file E. LENGTH is the
- number of characters to print, or -1 if we should print until the
- end of the string. FIXME: On a Windows host, we should be calling
- some Windows function, probably WideCharToMultiByte. */
-
-void
-unicode_print (FILE *e, const unichar *unicode, int length)
-{
- while (1)
- {
- unichar ch;
-
- if (length == 0)
- return;
- if (length > 0)
- --length;
-
- ch = *unicode;
-
- if (ch == 0 && length < 0)
- return;
-
- ++unicode;
-
- if ((ch & 0x7f) == ch)
- {
- if (ch == '\\')
- fputs ("\\", e);
- else if (ISPRINT (ch))
- putc (ch, e);
- else
- {
- switch (ch)
- {
- case ESCAPE_A:
- fputs ("\\a", e);
- break;
-
- case ESCAPE_B:
- fputs ("\\b", e);
- break;
-
- case ESCAPE_F:
- fputs ("\\f", e);
- break;
-
- case ESCAPE_N:
- fputs ("\\n", e);
- break;
-
- case ESCAPE_R:
- fputs ("\\r", e);
- break;
-
- case ESCAPE_T:
- fputs ("\\t", e);
- break;
-
- case ESCAPE_V:
- fputs ("\\v", e);
- break;
-
- default:
- fprintf (e, "\\%03o", (unsigned int) ch);
- break;
- }
- }
- }
- else if ((ch & 0xff) == ch)
- fprintf (e, "\\%03o", (unsigned int) ch);
- else
- fprintf (e, "\\x%x", (unsigned int) ch);
- }
-}
diff --git a/binutils-2.17/binutils/winduni.h b/binutils-2.17/binutils/winduni.h
deleted file mode 100644
index 71cd055a..00000000
--- a/binutils-2.17/binutils/winduni.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* winduni.h -- header file for unicode support for windres program.
- Copyright 1997, 1998, 2002 Free Software Foundation, Inc.
- Written by Ian Lance Taylor, Cygnus Support.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-#include "ansidecl.h"
-
-/* This header file declares the types and functions we use for
- unicode support in windres. Our unicode support is very limited at
- present.
-
- We don't put this stuff in windres.h so that winduni.c doesn't have
- to include windres.h. winduni.c needs to includes windows.h, and
- that would conflict with the definitions of Windows macros we
- already have in windres.h. */
-
-/* We use this type to hold a unicode character. */
-
-typedef unsigned short unichar;
-
-/* Escape character translations. */
-
-#define ESCAPE_A (007)
-#define ESCAPE_B (010)
-#define ESCAPE_F (014)
-#define ESCAPE_N (012)
-#define ESCAPE_R (015)
-#define ESCAPE_T (011)
-#define ESCAPE_V (013)
-
-/* Convert an ASCII string to a unicode string. */
-
-extern void unicode_from_ascii
- PARAMS ((int *, unichar **, const char *));
-
-/* Print a unicode string to a file. */
-
-extern void unicode_print PARAMS ((FILE *, const unichar *, int));
-
-/* Windres support routine called by unicode_from_ascii. This is both
- here and in windres.h. It should probably be in a separate header
- file, but it hardly seems worth it for one function. */
-
-extern PTR res_alloc PARAMS ((size_t));
diff --git a/binutils-2.17/binutils/wrstabs.c b/binutils-2.17/binutils/wrstabs.c
deleted file mode 100644
index b75d6df5..00000000
--- a/binutils-2.17/binutils/wrstabs.c
+++ /dev/null
@@ -1,2274 +0,0 @@
-/* wrstabs.c -- Output stabs debugging information
- Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2006
- Free Software Foundation, Inc.
- Written by Ian Lance Taylor <ian@cygnus.com>.
-
- This file is part of GNU Binutils.
-
- 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., 51 Franklin Street - Fifth Floor, Boston, MA
- 02110-1301, USA. */
-
-/* This file contains code which writes out stabs debugging
- information. */
-
-#include <stdio.h>
-#include <assert.h>
-
-#include "bfd.h"
-#include "bucomm.h"
-#include "libiberty.h"
-#include "safe-ctype.h"
-#include "debug.h"
-#include "budbg.h"
-#include "aout/aout64.h"
-#include "aout/stab_gnu.h"
-
-/* The size of a stabs symbol. This presumes 32 bit values. */
-
-#define STAB_SYMBOL_SIZE (12)
-
-/* An entry in a string hash table. */
-
-struct string_hash_entry
-{
- struct bfd_hash_entry root;
- /* Next string in this table. */
- struct string_hash_entry *next;
- /* Index in string table. */
- long index;
- /* Size of type if this is a typedef. */
- unsigned int size;
-};
-
-/* A string hash table. */
-
-struct string_hash_table
-{
- struct bfd_hash_table table;
-};
-
-/* The type stack. Each element on the stack is a string. */
-
-struct stab_type_stack
-{
- /* The next element on the stack. */
- struct stab_type_stack *next;
- /* This element as a string. */
- char *string;
- /* The type index of this element. */
- long index;
- /* The size of the type. */
- unsigned int size;
- /* Whether type string defines a new type. */
- bfd_boolean definition;
- /* String defining struct fields. */
- char *fields;
- /* NULL terminated array of strings defining base classes for a
- class. */
- char **baseclasses;
- /* String defining class methods. */
- char *methods;
- /* String defining vtable pointer for a class. */
- char *vtable;
-};
-
-/* This structure is used to keep track of type indices for tagged
- types. */
-
-struct stab_tag
-{
- /* The type index. */
- long index;
- /* The tag name. */
- const char *tag;
- /* The kind of type. This is set to DEBUG_KIND_ILLEGAL when the
- type is defined. */
- enum debug_type_kind kind;
- /* The size of the struct. */
- unsigned int size;
-};
-
-/* We remember various sorts of type indices. They are not related,
- but, for convenience, we keep all the information in this
- structure. */
-
-struct stab_type_cache
-{
- /* The void type index. */
- long void_type;
- /* Signed integer type indices, indexed by size - 1. */
- long signed_integer_types[8];
- /* Unsigned integer type indices, indexed by size - 1. */
- long unsigned_integer_types[8];
- /* Floating point types, indexed by size - 1. */
- long float_types[16];
- /* Pointers to types, indexed by the type index. */
- long *pointer_types;
- size_t pointer_types_alloc;
- /* Functions returning types, indexed by the type index. */
- long *function_types;
- size_t function_types_alloc;
- /* References to types, indexed by the type index. */
- long *reference_types;
- size_t reference_types_alloc;
- /* Struct/union/class type indices, indexed by the struct id. */
- struct stab_tag *struct_types;
- size_t struct_types_alloc;
-};
-
-/* This is the handle passed through debug_write. */
-
-struct stab_write_handle
-{
- /* The BFD. */
- bfd *abfd;
- /* This buffer holds the symbols. */
- bfd_byte *symbols;
- size_t symbols_size;
- size_t symbols_alloc;
- /* This is a list of hash table entries for the strings. */
- struct string_hash_entry *strings;
- /* The last string hash table entry. */
- struct string_hash_entry *last_string;
- /* The size of the strings. */
- size_t strings_size;
- /* This hash table eliminates duplicate strings. */
- struct string_hash_table strhash;
- /* The type stack. */
- struct stab_type_stack *type_stack;
- /* The next type index. */
- long type_index;
- /* The type cache. */
- struct stab_type_cache type_cache;
- /* A mapping from typedef names to type indices. */
- struct string_hash_table typedef_hash;
- /* If this is not -1, it is the offset to the most recent N_SO
- symbol, and the value of that symbol needs to be set. */
- long so_offset;
- /* If this is not -1, it is the offset to the most recent N_FUN
- symbol, and the value of that symbol needs to be set. */
- long fun_offset;
- /* The last text section address seen. */
- bfd_vma last_text_address;
- /* The block nesting depth. */
- unsigned int nesting;
- /* The function address. */
- bfd_vma fnaddr;
- /* A pending LBRAC symbol. */
- bfd_vma pending_lbrac;
- /* The current line number file name. */
- const char *lineno_filename;
-};
-
-static struct bfd_hash_entry *string_hash_newfunc
- (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
-static bfd_boolean stab_write_symbol
- (struct stab_write_handle *, int, int, bfd_vma, const char *);
-static bfd_boolean stab_push_string
- (struct stab_write_handle *, const char *, long, bfd_boolean, unsigned int);
-static bfd_boolean stab_push_defined_type
- (struct stab_write_handle *, long, unsigned int);
-static char *stab_pop_type (struct stab_write_handle *);
-static bfd_boolean stab_modify_type
- (struct stab_write_handle *, int, unsigned int, long **, size_t *);
-static long stab_get_struct_index
- (struct stab_write_handle *, const char *, unsigned int,
- enum debug_type_kind, unsigned int *);
-static bfd_boolean stab_class_method_var
- (struct stab_write_handle *, const char *, enum debug_visibility,
- bfd_boolean, bfd_boolean, bfd_boolean, bfd_vma, bfd_boolean);
-static bfd_boolean stab_start_compilation_unit (void *, const char *);
-static bfd_boolean stab_start_source (void *, const char *);
-static bfd_boolean stab_empty_type (void *);
-static bfd_boolean stab_void_type (void *);
-static bfd_boolean stab_int_type (void *, unsigned int, bfd_boolean);
-static bfd_boolean stab_float_type (void *, unsigned int);
-static bfd_boolean stab_complex_type (void *, unsigned int);
-static bfd_boolean stab_bool_type (void *, unsigned int);
-static bfd_boolean stab_enum_type
- (void *, const char *, const char **, bfd_signed_vma *);
-static bfd_boolean stab_pointer_type (void *);
-static bfd_boolean stab_function_type (void *, int, bfd_boolean);
-static bfd_boolean stab_reference_type (void *);
-static bfd_boolean stab_range_type (void *, bfd_signed_vma, bfd_signed_vma);
-static bfd_boolean stab_array_type
- (void *, bfd_signed_vma, bfd_signed_vma, bfd_boolean);
-static bfd_boolean stab_set_type (void *, bfd_boolean);
-static bfd_boolean stab_offset_type (void *);
-static bfd_boolean stab_method_type (void *, bfd_boolean, int, bfd_boolean);
-static bfd_boolean stab_const_type (void *);
-static bfd_boolean stab_volatile_type (void *);
-static bfd_boolean stab_start_struct_type
- (void *, const char *, unsigned int, bfd_boolean, unsigned int);
-static bfd_boolean stab_struct_field
- (void *, const char *, bfd_vma, bfd_vma, enum debug_visibility);
-static bfd_boolean stab_end_struct_type (void *);
-static bfd_boolean stab_start_class_type
- (void *, const char *, unsigned int, bfd_boolean, unsigned int,
- bfd_boolean, bfd_boolean);
-static bfd_boolean stab_class_static_member
- (void *, const char *, const char *, enum debug_visibility);
-static bfd_boolean stab_class_baseclass
- (void *, bfd_vma, bfd_boolean, enum debug_visibility);
-static bfd_boolean stab_class_start_method (void *, const char *);
-static bfd_boolean stab_class_method_variant
- (void *, const char *, enum debug_visibility, bfd_boolean, bfd_boolean,
- bfd_vma, bfd_boolean);
-static bfd_boolean stab_class_static_method_variant
- (void *, const char *, enum debug_visibility, bfd_boolean, bfd_boolean);
-static bfd_boolean stab_class_end_method (void *);
-static bfd_boolean stab_end_class_type (void *);
-static bfd_boolean stab_typedef_type (void *, const char *);
-static bfd_boolean stab_tag_type
- (void *, const char *, unsigned int, enum debug_type_kind);
-static bfd_boolean stab_typdef (void *, const char *);
-static bfd_boolean stab_tag (void *, const char *);
-static bfd_boolean stab_int_constant (void *, const char *, bfd_vma);
-static bfd_boolean stab_float_constant (void *, const char *, double);
-static bfd_boolean stab_typed_constant (void *, const char *, bfd_vma);
-static bfd_boolean stab_variable
- (void *, const char *, enum debug_var_kind, bfd_vma);
-static bfd_boolean stab_start_function (void *, const char *, bfd_boolean);
-static bfd_boolean stab_function_parameter
- (void *, const char *, enum debug_parm_kind, bfd_vma);
-static bfd_boolean stab_start_block (void *, bfd_vma);
-static bfd_boolean stab_end_block (void *, bfd_vma);
-static bfd_boolean stab_end_function (void *);
-static bfd_boolean stab_lineno (void *, const char *, unsigned long, bfd_vma);
-
-static const struct debug_write_fns stab_fns =
-{
- stab_start_compilation_unit,
- stab_start_source,
- stab_empty_type,
- stab_void_type,
- stab_int_type,
- stab_float_type,
- stab_complex_type,
- stab_bool_type,
- stab_enum_type,
- stab_pointer_type,
- stab_function_type,
- stab_reference_type,
- stab_range_type,
- stab_array_type,
- stab_set_type,
- stab_offset_type,
- stab_method_type,
- stab_const_type,
- stab_volatile_type,
- stab_start_struct_type,
- stab_struct_field,
- stab_end_struct_type,
- stab_start_class_type,
- stab_class_static_member,
- stab_class_baseclass,
- stab_class_start_method,
- stab_class_method_variant,
- stab_class_static_method_variant,
- stab_class_end_method,
- stab_end_class_type,
- stab_typedef_type,
- stab_tag_type,
- stab_typdef,
- stab_tag,
- stab_int_constant,
- stab_float_constant,
- stab_typed_constant,
- stab_variable,
- stab_start_function,
- stab_function_parameter,
- stab_start_block,
- stab_end_block,
- stab_end_function,
- stab_lineno
-};
-
-/* Routine to create an entry in a string hash table. */
-
-static struct bfd_hash_entry *
-string_hash_newfunc (struct bfd_hash_entry *entry,
- struct bfd_hash_table *table, const char *string)
-{
- struct string_hash_entry *ret = (struct string_hash_entry *) entry;
-
- /* Allocate the structure if it has not already been allocated by a
- subclass. */
- if (ret == (struct string_hash_entry *) NULL)
- ret = ((struct string_hash_entry *)
- bfd_hash_allocate (table, sizeof (struct string_hash_entry)));
- if (ret == (struct string_hash_entry *) NULL)
- return NULL;
-
- /* Call the allocation method of the superclass. */
- ret = ((struct string_hash_entry *)
- bfd_hash_newfunc ((struct bfd_hash_entry *) ret, table, string));
-
- if (ret)
- {
- /* Initialize the local fields. */
- ret->next = NULL;
- ret->index = -1;
- ret->size = 0;
- }
-
- return (struct bfd_hash_entry *) ret;
-}
-
-/* Look up an entry in a string hash table. */
-
-#define string_hash_lookup(t, string, create, copy) \
- ((struct string_hash_entry *) \
- bfd_hash_lookup (&(t)->table, (string), (create), (copy)))
-
-/* Add a symbol to the stabs debugging information we are building. */
-
-static bfd_boolean
-stab_write_symbol (struct stab_write_handle *info, int type, int desc,
- bfd_vma value, const char *string)
-{
- bfd_size_type strx;
- bfd_byte sym[STAB_SYMBOL_SIZE];
-
- if (string == NULL)
- strx = 0;
- else
- {
- struct string_hash_entry *h;
-
- h = string_hash_lookup (&info->strhash, string, TRUE, TRUE);
- if (h == NULL)
- {
- non_fatal (_("string_hash_lookup failed: %s"),
- bfd_errmsg (bfd_get_error ()));
- return FALSE;
- }
- if (h->index != -1)
- strx = h->index;
- else
- {
- strx = info->strings_size;
- h->index = strx;
- if (info->last_string == NULL)
- info->strings = h;
- else
- info->last_string->next = h;
- info->last_string = h;
- info->strings_size += strlen (string) + 1;
- }
- }
-
- /* This presumes 32 bit values. */
- bfd_put_32 (info->abfd, strx, sym);
- bfd_put_8 (info->abfd, type, sym + 4);
- bfd_put_8 (info->abfd, 0, sym + 5);
- bfd_put_16 (info->abfd, desc, sym + 6);
- bfd_put_32 (info->abfd, value, sym + 8);
-
- if (info->symbols_size + STAB_SYMBOL_SIZE > info->symbols_alloc)
- {
- info->symbols_alloc *= 2;
- info->symbols = (bfd_byte *) xrealloc (info->symbols,
- info->symbols_alloc);
- }
-
- memcpy (info->symbols + info->symbols_size, sym, STAB_SYMBOL_SIZE);
-
- info->symbols_size += STAB_SYMBOL_SIZE;
-
- return TRUE;
-}
-
-/* Push a string on to the type stack. */
-
-static bfd_boolean
-stab_push_string (struct stab_write_handle *info, const char *string,
- long index, bfd_boolean definition, unsigned int size)
-{
- struct stab_type_stack *s;
-
- s = (struct stab_type_stack *) xmalloc (sizeof *s);
- s->string = xstrdup (string);
- s->index = index;
- s->definition = definition;
- s->size = size;
-
- s->fields = NULL;
- s->baseclasses = NULL;
- s->methods = NULL;
- s->vtable = NULL;
-
- s->next = info->type_stack;
- info->type_stack = s;
-
- return TRUE;
-}
-
-/* Push a type index which has already been defined. */
-
-static bfd_boolean
-stab_push_defined_type (struct stab_write_handle *info, long index,
- unsigned int size)
-{
- char buf[20];
-
- sprintf (buf, "%ld", index);
- return stab_push_string (info, buf, index, FALSE, size);
-}
-
-/* Pop a type off the type stack. The caller is responsible for
- freeing the string. */
-
-static char *
-stab_pop_type (struct stab_write_handle *info)
-{
- struct stab_type_stack *s;
- char *ret;
-
- s = info->type_stack;
- assert (s != NULL);
-
- info->type_stack = s->next;
-
- ret = s->string;
-
- free (s);
-
- return ret;
-}
-
-/* The general routine to write out stabs in sections debugging
- information. This accumulates the stabs symbols and the strings in
- two obstacks. We can't easily write out the information as we go
- along, because we need to know the section sizes before we can
- write out the section contents. ABFD is the BFD and DHANDLE is the
- handle for the debugging information. This sets *PSYMS to point to
- the symbols, *PSYMSIZE the size of the symbols, *PSTRINGS to the
- strings, and *PSTRINGSIZE to the size of the strings. */
-
-bfd_boolean
-write_stabs_in_sections_debugging_info (bfd *abfd, void *dhandle,
- bfd_byte **psyms,
- bfd_size_type *psymsize,
- bfd_byte **pstrings,
- bfd_size_type *pstringsize)
-{
- struct stab_write_handle info;
- struct string_hash_entry *h;
- bfd_byte *p;
-
- info.abfd = abfd;
-
- info.symbols_size = 0;
- info.symbols_alloc = 500;
- info.symbols = (bfd_byte *) xmalloc (info.symbols_alloc);
-
- info.strings = NULL;
- info.last_string = NULL;
- /* Reserve 1 byte for a null byte. */
- info.strings_size = 1;
-
- if (!bfd_hash_table_init (&info.strhash.table, string_hash_newfunc,
- sizeof (struct string_hash_entry))
- || !bfd_hash_table_init (&info.typedef_hash.table, string_hash_newfunc,
- sizeof (struct string_hash_entry)))
- {
- non_fatal ("bfd_hash_table_init_failed: %s",
- bfd_errmsg (bfd_get_error ()));
- return FALSE;
- }
-
- info.type_stack = NULL;
- info.type_index = 1;
- memset (&info.type_cache, 0, sizeof info.type_cache);
- info.so_offset = -1;
- info.fun_offset = -1;
- info.last_text_address = 0;
- info.nesting = 0;
- info.fnaddr = 0;
- info.pending_lbrac = (bfd_vma) -1;
-
- /* The initial symbol holds the string size. */
- if (! stab_write_symbol (&info, 0, 0, 0, (const char *) NULL))
- return FALSE;
-
- /* Output an initial N_SO symbol. */
- info.so_offset = info.symbols_size;
- if (! stab_write_symbol (&info, N_SO, 0, 0, bfd_get_filename (abfd)))
- return FALSE;
-
- if (! debug_write (dhandle, &stab_fns, (void *) &info))
- return FALSE;
-
- assert (info.pending_lbrac == (bfd_vma) -1);
-
- /* Output a trailing N_SO. */
- if (! stab_write_symbol (&info, N_SO, 0, info.last_text_address,
- (const char *) NULL))
- return FALSE;
-
- /* Put the string size in the initial symbol. */
- bfd_put_32 (abfd, info.strings_size, info.symbols + 8);
-
- *psyms = info.symbols;
- *psymsize = info.symbols_size;
-
- *pstringsize = info.strings_size;
- *pstrings = (bfd_byte *) xmalloc (info.strings_size);
-
- p = *pstrings;
- *p++ = '\0';
- for (h = info.strings; h != NULL; h = h->next)
- {
- strcpy ((char *) p, h->root.string);
- p += strlen ((char *) p) + 1;
- }
-
- return TRUE;
-}
-
-/* Start writing out information for a compilation unit. */
-
-static bfd_boolean
-stab_start_compilation_unit (void *p, const char *filename)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- /* We would normally output an N_SO symbol here. However, that
- would force us to reset all of our type information. I think we
- will be better off just outputting an N_SOL symbol, and not
- worrying about splitting information between files. */
-
- info->lineno_filename = filename;
-
- return stab_write_symbol (info, N_SOL, 0, 0, filename);
-}
-
-/* Start writing out information for a particular source file. */
-
-static bfd_boolean
-stab_start_source (void *p, const char *filename)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- /* FIXME: The symbol's value is supposed to be the text section
- address. However, we would have to fill it in later, and gdb
- doesn't care, so we don't bother with it. */
-
- info->lineno_filename = filename;
-
- return stab_write_symbol (info, N_SOL, 0, 0, filename);
-}
-
-/* Push an empty type. This shouldn't normally happen. We just use a
- void type. */
-
-static bfd_boolean
-stab_empty_type (void *p)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- /* We don't call stab_void_type if the type is not yet defined,
- because that might screw up the typedef. */
-
- if (info->type_cache.void_type != 0)
- return stab_push_defined_type (info, info->type_cache.void_type, 0);
- else
- {
- long index;
- char buf[40];
-
- index = info->type_index;
- ++info->type_index;
-
- sprintf (buf, "%ld=%ld", index, index);
-
- return stab_push_string (info, buf, index, FALSE, 0);
- }
-}
-
-/* Push a void type. */
-
-static bfd_boolean
-stab_void_type (void *p)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- if (info->type_cache.void_type != 0)
- return stab_push_defined_type (info, info->type_cache.void_type, 0);
- else
- {
- long index;
- char buf[40];
-
- index = info->type_index;
- ++info->type_index;
-
- info->type_cache.void_type = index;
-
- sprintf (buf, "%ld=%ld", index, index);
-
- return stab_push_string (info, buf, index, TRUE, 0);
- }
-}
-
-/* Push an integer type. */
-
-static bfd_boolean
-stab_int_type (void *p, unsigned int size, bfd_boolean unsignedp)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- long *cache;
-
- if (size <= 0 || (size > sizeof (long) && size != 8))
- {
- non_fatal (_("stab_int_type: bad size %u"), size);
- return FALSE;
- }
-
- if (unsignedp)
- cache = info->type_cache.signed_integer_types;
- else
- cache = info->type_cache.unsigned_integer_types;
-
- if (cache[size - 1] != 0)
- return stab_push_defined_type (info, cache[size - 1], size);
- else
- {
- long index;
- char buf[100];
-
- index = info->type_index;
- ++info->type_index;
-
- cache[size - 1] = index;
-
- sprintf (buf, "%ld=r%ld;", index, index);
- if (unsignedp)
- {
- strcat (buf, "0;");
- if (size < sizeof (long))
- sprintf (buf + strlen (buf), "%ld;", ((long) 1 << (size * 8)) - 1);
- else if (size == sizeof (long))
- strcat (buf, "-1;");
- else if (size == 8)
- strcat (buf, "01777777777777777777777;");
- else
- abort ();
- }
- else
- {
- if (size <= sizeof (long))
- sprintf (buf + strlen (buf), "%ld;%ld;",
- (long) - ((unsigned long) 1 << (size * 8 - 1)),
- (long) (((unsigned long) 1 << (size * 8 - 1)) - 1));
- else if (size == 8)
- strcat (buf, "01000000000000000000000;0777777777777777777777;");
- else
- abort ();
- }
-
- return stab_push_string (info, buf, index, TRUE, size);
- }
-}
-
-/* Push a floating point type. */
-
-static bfd_boolean
-stab_float_type (void *p, unsigned int size)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- if (size > 0
- && size - 1 < (sizeof info->type_cache.float_types
- / sizeof info->type_cache.float_types[0])
- && info->type_cache.float_types[size - 1] != 0)
- return stab_push_defined_type (info,
- info->type_cache.float_types[size - 1],
- size);
- else
- {
- long index;
- char *int_type;
- char buf[50];
-
- /* Floats are defined as a subrange of int. */
- if (! stab_int_type (info, 4, FALSE))
- return FALSE;
- int_type = stab_pop_type (info);
-
- index = info->type_index;
- ++info->type_index;
-
- if (size > 0
- && size - 1 < (sizeof info->type_cache.float_types
- / sizeof info->type_cache.float_types[0]))
- info->type_cache.float_types[size - 1] = index;
-
- sprintf (buf, "%ld=r%s;%u;0;", index, int_type, size);
-
- free (int_type);
-
- return stab_push_string (info, buf, index, TRUE, size);
- }
-}
-
-/* Push a complex type. */
-
-static bfd_boolean
-stab_complex_type (void *p, unsigned int size)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- char buf[50];
- long index;
-
- index = info->type_index;
- ++info->type_index;
-
- sprintf (buf, "%ld=r%ld;%u;0;", index, index, size);
-
- return stab_push_string (info, buf, index, TRUE, size * 2);
-}
-
-/* Push a bfd_boolean type. We use an XCOFF predefined type, since gdb
- always recognizes them. */
-
-static bfd_boolean
-stab_bool_type (void *p, unsigned int size)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- long index;
-
- switch (size)
- {
- case 1:
- index = -21;
- break;
-
- case 2:
- index = -22;
- break;
-
- default:
- case 4:
- index = -16;
- break;
-
- case 8:
- index = -33;
- break;
- }
-
- return stab_push_defined_type (info, index, size);
-}
-
-/* Push an enum type. */
-
-static bfd_boolean
-stab_enum_type (void *p, const char *tag, const char **names,
- bfd_signed_vma *vals)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- size_t len;
- const char **pn;
- char *buf;
- long index = 0;
- bfd_signed_vma *pv;
-
- if (names == NULL)
- {
- assert (tag != NULL);
-
- buf = (char *) xmalloc (10 + strlen (tag));
- sprintf (buf, "xe%s:", tag);
- /* FIXME: The size is just a guess. */
- if (! stab_push_string (info, buf, 0, FALSE, 4))
- return FALSE;
- free (buf);
- return TRUE;
- }
-
- len = 10;
- if (tag != NULL)
- len += strlen (tag);
- for (pn = names; *pn != NULL; pn++)
- len += strlen (*pn) + 20;
-
- buf = (char *) xmalloc (len);
-
- if (tag == NULL)
- strcpy (buf, "e");
- else
- {
- index = info->type_index;
- ++info->type_index;
- sprintf (buf, "%s:T%ld=e", tag, index);
- }
-
- for (pn = names, pv = vals; *pn != NULL; pn++, pv++)
- sprintf (buf + strlen (buf), "%s:%ld,", *pn, (long) *pv);
- strcat (buf, ";");
-
- if (tag == NULL)
- {
- /* FIXME: The size is just a guess. */
- if (! stab_push_string (info, buf, 0, FALSE, 4))
- return FALSE;
- }
- else
- {
- /* FIXME: The size is just a guess. */
- if (! stab_write_symbol (info, N_LSYM, 0, 0, buf)
- || ! stab_push_defined_type (info, index, 4))
- return FALSE;
- }
-
- free (buf);
-
- return TRUE;
-}
-
-/* Push a modification of the top type on the stack. Cache the
- results in CACHE and CACHE_ALLOC. */
-
-static bfd_boolean
-stab_modify_type (struct stab_write_handle *info, int mod,
- unsigned int size, long **cache, size_t *cache_alloc)
-{
- long targindex;
- long index;
- char *s, *buf;
-
- assert (info->type_stack != NULL);
- targindex = info->type_stack->index;
-
- if (targindex <= 0
- || cache == NULL)
- {
- bfd_boolean definition;
-
- /* Either the target type has no index, or we aren't caching
- this modifier. Either way we have no way of recording the
- new type, so we don't bother to define one. */
- definition = info->type_stack->definition;
- s = stab_pop_type (info);
- buf = (char *) xmalloc (strlen (s) + 2);
- sprintf (buf, "%c%s", mod, s);
- free (s);
- if (! stab_push_string (info, buf, 0, definition, size))
- return FALSE;
- free (buf);
- }
- else
- {
- if ((size_t) targindex >= *cache_alloc)
- {
- size_t alloc;
-
- alloc = *cache_alloc;
- if (alloc == 0)
- alloc = 10;
- while ((size_t) targindex >= alloc)
- alloc *= 2;
- *cache = (long *) xrealloc (*cache, alloc * sizeof (long));
- memset (*cache + *cache_alloc, 0,
- (alloc - *cache_alloc) * sizeof (long));
- *cache_alloc = alloc;
- }
-
- index = (*cache)[targindex];
- if (index != 0 && ! info->type_stack->definition)
- {
- /* We have already defined a modification of this type, and
- the entry on the type stack is not a definition, so we
- can safely discard it (we may have a definition on the
- stack, even if we already defined a modification, if it
- is a struct which we did not define at the time it was
- referenced). */
- free (stab_pop_type (info));
- if (! stab_push_defined_type (info, index, size))
- return FALSE;
- }
- else
- {
- index = info->type_index;
- ++info->type_index;
-
- s = stab_pop_type (info);
- buf = (char *) xmalloc (strlen (s) + 20);
- sprintf (buf, "%ld=%c%s", index, mod, s);
- free (s);
-
- (*cache)[targindex] = index;
-
- if (! stab_push_string (info, buf, index, TRUE, size))
- return FALSE;
-
- free (buf);
- }
- }
-
- return TRUE;
-}
-
-/* Push a pointer type. */
-
-static bfd_boolean
-stab_pointer_type (void *p)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- /* FIXME: The size should depend upon the architecture. */
- return stab_modify_type (info, '*', 4, &info->type_cache.pointer_types,
- &info->type_cache.pointer_types_alloc);
-}
-
-/* Push a function type. */
-
-static bfd_boolean
-stab_function_type (void *p, int argcount,
- bfd_boolean varargs ATTRIBUTE_UNUSED)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- int i;
-
- /* We have no way to represent the argument types, so we just
- discard them. However, if they define new types, we must output
- them. We do this by producing empty typedefs. */
- for (i = 0; i < argcount; i++)
- {
- if (! info->type_stack->definition)
- free (stab_pop_type (info));
- else
- {
- char *s, *buf;
-
- s = stab_pop_type (info);
-
- buf = (char *) xmalloc (strlen (s) + 3);
- sprintf (buf, ":t%s", s);
- free (s);
-
- if (! stab_write_symbol (info, N_LSYM, 0, 0, buf))
- return FALSE;
-
- free (buf);
- }
- }
-
- return stab_modify_type (info, 'f', 0, &info->type_cache.function_types,
- &info->type_cache.function_types_alloc);
-}
-
-/* Push a reference type. */
-
-static bfd_boolean
-stab_reference_type (void *p)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- /* FIXME: The size should depend upon the architecture. */
- return stab_modify_type (info, '&', 4, &info->type_cache.reference_types,
- &info->type_cache.reference_types_alloc);
-}
-
-/* Push a range type. */
-
-static bfd_boolean
-stab_range_type (void *p, bfd_signed_vma low, bfd_signed_vma high)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- bfd_boolean definition;
- unsigned int size;
- char *s, *buf;
-
- definition = info->type_stack->definition;
- size = info->type_stack->size;
-
- s = stab_pop_type (info);
- buf = (char *) xmalloc (strlen (s) + 100);
- sprintf (buf, "r%s;%ld;%ld;", s, (long) low, (long) high);
- free (s);
-
- if (! stab_push_string (info, buf, 0, definition, size))
- return FALSE;
-
- free (buf);
-
- return TRUE;
-}
-
-/* Push an array type. */
-
-static bfd_boolean
-stab_array_type (void *p, bfd_signed_vma low, bfd_signed_vma high,
- bfd_boolean stringp)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- bfd_boolean definition;
- unsigned int element_size;
- char *range, *element, *buf;
- long index;
- unsigned int size;
-
- definition = info->type_stack->definition;
- range = stab_pop_type (info);
-
- definition = definition || info->type_stack->definition;
- element_size = info->type_stack->size;
- element = stab_pop_type (info);
-
- buf = (char *) xmalloc (strlen (range) + strlen (element) + 100);
-
- if (! stringp)
- {
- index = 0;
- *buf = '\0';
- }
- else
- {
- /* We need to define a type in order to include the string
- attribute. */
- index = info->type_index;
- ++info->type_index;
- definition = TRUE;
- sprintf (buf, "%ld=@S;", index);
- }
-
- sprintf (buf + strlen (buf), "ar%s;%ld;%ld;%s",
- range, (long) low, (long) high, element);
- free (range);
- free (element);
-
- if (high < low)
- size = 0;
- else
- size = element_size * ((high - low) + 1);
- if (! stab_push_string (info, buf, index, definition, size))
- return FALSE;
-
- free (buf);
-
- return TRUE;
-}
-
-/* Push a set type. */
-
-static bfd_boolean
-stab_set_type (void *p, bfd_boolean bitstringp)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- bfd_boolean definition;
- char *s, *buf;
- long index;
-
- definition = info->type_stack->definition;
-
- s = stab_pop_type (info);
- buf = (char *) xmalloc (strlen (s) + 30);
-
- if (! bitstringp)
- {
- *buf = '\0';
- index = 0;
- }
- else
- {
- /* We need to define a type in order to include the string
- attribute. */
- index = info->type_index;
- ++info->type_index;
- definition = TRUE;
- sprintf (buf, "%ld=@S;", index);
- }
-
- sprintf (buf + strlen (buf), "S%s", s);
- free (s);
-
- if (! stab_push_string (info, buf, index, definition, 0))
- return FALSE;
-
- free (buf);
-
- return TRUE;
-}
-
-/* Push an offset type. */
-
-static bfd_boolean
-stab_offset_type (void *p)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- bfd_boolean definition;
- char *target, *base, *buf;
-
- definition = info->type_stack->definition;
- target = stab_pop_type (info);
-
- definition = definition || info->type_stack->definition;
- base = stab_pop_type (info);
-
- buf = (char *) xmalloc (strlen (target) + strlen (base) + 3);
- sprintf (buf, "@%s,%s", base, target);
- free (base);
- free (target);
-
- if (! stab_push_string (info, buf, 0, definition, 0))
- return FALSE;
-
- free (buf);
-
- return TRUE;
-}
-
-/* Push a method type. */
-
-static bfd_boolean
-stab_method_type (void *p, bfd_boolean domainp, int argcount,
- bfd_boolean varargs)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- bfd_boolean definition;
- char *domain, *return_type, *buf;
- char **args;
- int i;
- size_t len;
-
- /* We don't bother with stub method types, because that would
- require a mangler for C++ argument types. This will waste space
- in the debugging output. */
-
- /* We need a domain. I'm not sure DOMAINP can ever be false,
- anyhow. */
- if (! domainp)
- {
- if (! stab_empty_type (p))
- return FALSE;
- }
-
- definition = info->type_stack->definition;
- domain = stab_pop_type (info);
-
- /* A non-varargs function is indicated by making the last parameter
- type be void. */
-
- if (argcount < 0)
- {
- args = NULL;
- argcount = 0;
- }
- else if (argcount == 0)
- {
- if (varargs)
- args = NULL;
- else
- {
- args = (char **) xmalloc (1 * sizeof (*args));
- if (! stab_empty_type (p))
- return FALSE;
- definition = definition || info->type_stack->definition;
- args[0] = stab_pop_type (info);
- argcount = 1;
- }
- }
- else
- {
- args = (char **) xmalloc ((argcount + 1) * sizeof (*args));
- for (i = argcount - 1; i >= 0; i--)
- {
- definition = definition || info->type_stack->definition;
- args[i] = stab_pop_type (info);
- }
- if (! varargs)
- {
- if (! stab_empty_type (p))
- return FALSE;
- definition = definition || info->type_stack->definition;
- args[argcount] = stab_pop_type (info);
- ++argcount;
- }
- }
-
- definition = definition || info->type_stack->definition;
- return_type = stab_pop_type (info);
-
- len = strlen (domain) + strlen (return_type) + 10;
- for (i = 0; i < argcount; i++)
- len += strlen (args[i]);
-
- buf = (char *) xmalloc (len);
-
- sprintf (buf, "#%s,%s", domain, return_type);
- free (domain);
- free (return_type);
- for (i = 0; i < argcount; i++)
- {
- strcat (buf, ",");
- strcat (buf, args[i]);
- free (args[i]);
- }
- strcat (buf, ";");
-
- if (args != NULL)
- free (args);
-
- if (! stab_push_string (info, buf, 0, definition, 0))
- return FALSE;
-
- free (buf);
-
- return TRUE;
-}
-
-/* Push a const version of a type. */
-
-static bfd_boolean
-stab_const_type (void *p)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- return stab_modify_type (info, 'k', info->type_stack->size,
- (long **) NULL, (size_t *) NULL);
-}
-
-/* Push a volatile version of a type. */
-
-static bfd_boolean
-stab_volatile_type (void *p)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- return stab_modify_type (info, 'B', info->type_stack->size,
- (long **) NULL, (size_t *) NULL);
-}
-
-/* Get the type index to use for a struct/union/class ID. This should
- return -1 if it fails. */
-
-static long
-stab_get_struct_index (struct stab_write_handle *info, const char *tag,
- unsigned int id, enum debug_type_kind kind,
- unsigned int *psize)
-{
- if (id >= info->type_cache.struct_types_alloc)
- {
- size_t alloc;
-
- alloc = info->type_cache.struct_types_alloc;
- if (alloc == 0)
- alloc = 10;
- while (id >= alloc)
- alloc *= 2;
- info->type_cache.struct_types =
- (struct stab_tag *) xrealloc (info->type_cache.struct_types,
- alloc * sizeof (struct stab_tag));
- memset ((info->type_cache.struct_types
- + info->type_cache.struct_types_alloc),
- 0,
- ((alloc - info->type_cache.struct_types_alloc)
- * sizeof (struct stab_tag)));
- info->type_cache.struct_types_alloc = alloc;
- }
-
- if (info->type_cache.struct_types[id].index == 0)
- {
- info->type_cache.struct_types[id].index = info->type_index;
- ++info->type_index;
- info->type_cache.struct_types[id].tag = tag;
- info->type_cache.struct_types[id].kind = kind;
- }
-
- if (kind == DEBUG_KIND_ILLEGAL)
- {
- /* This is a definition of the struct. */
- info->type_cache.struct_types[id].kind = kind;
- info->type_cache.struct_types[id].size = *psize;
- }
- else
- *psize = info->type_cache.struct_types[id].size;
-
- return info->type_cache.struct_types[id].index;
-}
-
-/* Start outputting a struct. We ignore the tag, and handle it in
- stab_tag. */
-
-static bfd_boolean
-stab_start_struct_type (void *p, const char *tag, unsigned int id,
- bfd_boolean structp, unsigned int size)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- long index;
- bfd_boolean definition;
- char *buf;
-
- buf = (char *) xmalloc (40);
-
- if (id == 0)
- {
- index = 0;
- *buf = '\0';
- definition = FALSE;
- }
- else
- {
- index = stab_get_struct_index (info, tag, id, DEBUG_KIND_ILLEGAL,
- &size);
- if (index < 0)
- return FALSE;
- sprintf (buf, "%ld=", index);
- definition = TRUE;
- }
-
- sprintf (buf + strlen (buf), "%c%u",
- structp ? 's' : 'u',
- size);
-
- if (! stab_push_string (info, buf, index, definition, size))
- return FALSE;
-
- info->type_stack->fields = (char *) xmalloc (1);
- info->type_stack->fields[0] = '\0';
-
- return TRUE;
-}
-
-/* Add a field to a struct. */
-
-static bfd_boolean
-stab_struct_field (void *p, const char *name, bfd_vma bitpos,
- bfd_vma bitsize, enum debug_visibility visibility)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- bfd_boolean definition;
- unsigned int size;
- char *s, *n;
- const char *vis;
-
- definition = info->type_stack->definition;
- size = info->type_stack->size;
- s = stab_pop_type (info);
-
- /* Add this field to the end of the current struct fields, which is
- currently on the top of the stack. */
-
- assert (info->type_stack->fields != NULL);
- n = (char *) xmalloc (strlen (info->type_stack->fields)
- + strlen (name)
- + strlen (s)
- + 50);
-
- switch (visibility)
- {
- default:
- abort ();
-
- case DEBUG_VISIBILITY_PUBLIC:
- vis = "";
- break;
-
- case DEBUG_VISIBILITY_PRIVATE:
- vis = "/0";
- break;
-
- case DEBUG_VISIBILITY_PROTECTED:
- vis = "/1";
- break;
- }
-
- if (bitsize == 0)
- {
- bitsize = size * 8;
- if (bitsize == 0)
- non_fatal (_("%s: warning: unknown size for field `%s' in struct"),
- bfd_get_filename (info->abfd), name);
- }
-
- sprintf (n, "%s%s:%s%s,%ld,%ld;", info->type_stack->fields, name, vis, s,
- (long) bitpos, (long) bitsize);
-
- free (info->type_stack->fields);
- info->type_stack->fields = n;
-
- if (definition)
- info->type_stack->definition = TRUE;
-
- return TRUE;
-}
-
-/* Finish up a struct. */
-
-static bfd_boolean
-stab_end_struct_type (void *p)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- bfd_boolean definition;
- long index;
- unsigned int size;
- char *fields, *first, *buf;
-
- assert (info->type_stack != NULL && info->type_stack->fields != NULL);
-
- definition = info->type_stack->definition;
- index = info->type_stack->index;
- size = info->type_stack->size;
- fields = info->type_stack->fields;
- first = stab_pop_type (info);
-
- buf = (char *) xmalloc (strlen (first) + strlen (fields) + 2);
- sprintf (buf, "%s%s;", first, fields);
- free (first);
- free (fields);
-
- if (! stab_push_string (info, buf, index, definition, size))
- return FALSE;
-
- free (buf);
-
- return TRUE;
-}
-
-/* Start outputting a class. */
-
-static bfd_boolean
-stab_start_class_type (void *p, const char *tag, unsigned int id, bfd_boolean structp, unsigned int size, bfd_boolean vptr, bfd_boolean ownvptr)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- bfd_boolean definition;
- char *vstring;
-
- if (! vptr || ownvptr)
- {
- definition = FALSE;
- vstring = NULL;
- }
- else
- {
- definition = info->type_stack->definition;
- vstring = stab_pop_type (info);
- }
-
- if (! stab_start_struct_type (p, tag, id, structp, size))
- return FALSE;
-
- if (vptr)
- {
- char *vtable;
-
- if (ownvptr)
- {
- assert (info->type_stack->index > 0);
- vtable = (char *) xmalloc (20);
- sprintf (vtable, "~%%%ld", info->type_stack->index);
- }
- else
- {
- vtable = (char *) xmalloc (strlen (vstring) + 3);
- sprintf (vtable, "~%%%s", vstring);
- free (vstring);
- }
-
- info->type_stack->vtable = vtable;
- }
-
- if (definition)
- info->type_stack->definition = TRUE;
-
- return TRUE;
-}
-
-/* Add a static member to the class on the type stack. */
-
-static bfd_boolean
-stab_class_static_member (void *p, const char *name, const char *physname,
- enum debug_visibility visibility)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- bfd_boolean definition;
- char *s, *n;
- const char *vis;
-
- definition = info->type_stack->definition;
- s = stab_pop_type (info);
-
- /* Add this field to the end of the current struct fields, which is
- currently on the top of the stack. */
-
- assert (info->type_stack->fields != NULL);
- n = (char *) xmalloc (strlen (info->type_stack->fields)
- + strlen (name)
- + strlen (s)
- + strlen (physname)
- + 10);
-
- switch (visibility)
- {
- default:
- abort ();
-
- case DEBUG_VISIBILITY_PUBLIC:
- vis = "";
- break;
-
- case DEBUG_VISIBILITY_PRIVATE:
- vis = "/0";
- break;
-
- case DEBUG_VISIBILITY_PROTECTED:
- vis = "/1";
- break;
- }
-
- sprintf (n, "%s%s:%s%s:%s;", info->type_stack->fields, name, vis, s,
- physname);
-
- free (info->type_stack->fields);
- info->type_stack->fields = n;
-
- if (definition)
- info->type_stack->definition = TRUE;
-
- return TRUE;
-}
-
-/* Add a base class to the class on the type stack. */
-
-static bfd_boolean
-stab_class_baseclass (void *p, bfd_vma bitpos, bfd_boolean virtual,
- enum debug_visibility visibility)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- bfd_boolean definition;
- char *s;
- char *buf;
- unsigned int c;
- char **baseclasses;
-
- definition = info->type_stack->definition;
- s = stab_pop_type (info);
-
- /* Build the base class specifier. */
-
- buf = (char *) xmalloc (strlen (s) + 25);
- buf[0] = virtual ? '1' : '0';
- switch (visibility)
- {
- default:
- abort ();
-
- case DEBUG_VISIBILITY_PRIVATE:
- buf[1] = '0';
- break;
-
- case DEBUG_VISIBILITY_PROTECTED:
- buf[1] = '1';
- break;
-
- case DEBUG_VISIBILITY_PUBLIC:
- buf[1] = '2';
- break;
- }
-
- sprintf (buf + 2, "%ld,%s;", (long) bitpos, s);
- free (s);
-
- /* Add the new baseclass to the existing ones. */
-
- assert (info->type_stack != NULL && info->type_stack->fields != NULL);
-
- if (info->type_stack->baseclasses == NULL)
- c = 0;
- else
- {
- c = 0;
- while (info->type_stack->baseclasses[c] != NULL)
- ++c;
- }
-
- baseclasses = (char **) xrealloc (info->type_stack->baseclasses,
- (c + 2) * sizeof (*baseclasses));
- baseclasses[c] = buf;
- baseclasses[c + 1] = NULL;
-
- info->type_stack->baseclasses = baseclasses;
-
- if (definition)
- info->type_stack->definition = TRUE;
-
- return TRUE;
-}
-
-/* Start adding a method to the class on the type stack. */
-
-static bfd_boolean
-stab_class_start_method (void *p, const char *name)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- char *m;
-
- assert (info->type_stack != NULL && info->type_stack->fields != NULL);
-
- if (info->type_stack->methods == NULL)
- {
- m = (char *) xmalloc (strlen (name) + 3);
- *m = '\0';
- }
- else
- {
- m = (char *) xrealloc (info->type_stack->methods,
- (strlen (info->type_stack->methods)
- + strlen (name)
- + 4));
- }
-
- sprintf (m + strlen (m), "%s::", name);
-
- info->type_stack->methods = m;
-
- return TRUE;
-}
-
-/* Add a variant, either static or not, to the current method. */
-
-static bfd_boolean
-stab_class_method_var (struct stab_write_handle *info, const char *physname,
- enum debug_visibility visibility,
- bfd_boolean staticp, bfd_boolean constp,
- bfd_boolean volatilep, bfd_vma voffset,
- bfd_boolean contextp)
-{
- bfd_boolean definition;
- char *type;
- char *context = NULL;
- char visc, qualc, typec;
-
- definition = info->type_stack->definition;
- type = stab_pop_type (info);
-
- if (contextp)
- {
- definition = definition || info->type_stack->definition;
- context = stab_pop_type (info);
- }
-
- assert (info->type_stack != NULL && info->type_stack->methods != NULL);
-
- switch (visibility)
- {
- default:
- abort ();
-
- case DEBUG_VISIBILITY_PRIVATE:
- visc = '0';
- break;
-
- case DEBUG_VISIBILITY_PROTECTED:
- visc = '1';
- break;
-
- case DEBUG_VISIBILITY_PUBLIC:
- visc = '2';
- break;
- }
-
- if (constp)
- {
- if (volatilep)
- qualc = 'D';
- else
- qualc = 'B';
- }
- else
- {
- if (volatilep)
- qualc = 'C';
- else
- qualc = 'A';
- }
-
- if (staticp)
- typec = '?';
- else if (! contextp)
- typec = '.';
- else
- typec = '*';
-
- info->type_stack->methods =
- (char *) xrealloc (info->type_stack->methods,
- (strlen (info->type_stack->methods)
- + strlen (type)
- + strlen (physname)
- + (contextp ? strlen (context) : 0)
- + 40));
-
- sprintf (info->type_stack->methods + strlen (info->type_stack->methods),
- "%s:%s;%c%c%c", type, physname, visc, qualc, typec);
- free (type);
-
- if (contextp)
- {
- sprintf (info->type_stack->methods + strlen (info->type_stack->methods),
- "%ld;%s;", (long) voffset, context);
- free (context);
- }
-
- if (definition)
- info->type_stack->definition = TRUE;
-
- return TRUE;
-}
-
-/* Add a variant to the current method. */
-
-static bfd_boolean
-stab_class_method_variant (void *p, const char *physname,
- enum debug_visibility visibility,
- bfd_boolean constp, bfd_boolean volatilep,
- bfd_vma voffset, bfd_boolean contextp)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- return stab_class_method_var (info, physname, visibility, FALSE, constp,
- volatilep, voffset, contextp);
-}
-
-/* Add a static variant to the current method. */
-
-static bfd_boolean
-stab_class_static_method_variant (void *p, const char *physname,
- enum debug_visibility visibility,
- bfd_boolean constp, bfd_boolean volatilep)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- return stab_class_method_var (info, physname, visibility, TRUE, constp,
- volatilep, 0, FALSE);
-}
-
-/* Finish up a method. */
-
-static bfd_boolean
-stab_class_end_method (void *p)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- assert (info->type_stack != NULL && info->type_stack->methods != NULL);
-
- /* We allocated enough room on info->type_stack->methods to add the
- trailing semicolon. */
- strcat (info->type_stack->methods, ";");
-
- return TRUE;
-}
-
-/* Finish up a class. */
-
-static bfd_boolean
-stab_end_class_type (void *p)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- size_t len;
- unsigned int i = 0;
- char *buf;
-
- assert (info->type_stack != NULL && info->type_stack->fields != NULL);
-
- /* Work out the size we need to allocate for the class definition. */
-
- len = (strlen (info->type_stack->string)
- + strlen (info->type_stack->fields)
- + 10);
- if (info->type_stack->baseclasses != NULL)
- {
- len += 20;
- for (i = 0; info->type_stack->baseclasses[i] != NULL; i++)
- len += strlen (info->type_stack->baseclasses[i]);
- }
- if (info->type_stack->methods != NULL)
- len += strlen (info->type_stack->methods);
- if (info->type_stack->vtable != NULL)
- len += strlen (info->type_stack->vtable);
-
- /* Build the class definition. */
-
- buf = (char *) xmalloc (len);
-
- strcpy (buf, info->type_stack->string);
-
- if (info->type_stack->baseclasses != NULL)
- {
- sprintf (buf + strlen (buf), "!%u,", i);
- for (i = 0; info->type_stack->baseclasses[i] != NULL; i++)
- {
- strcat (buf, info->type_stack->baseclasses[i]);
- free (info->type_stack->baseclasses[i]);
- }
- free (info->type_stack->baseclasses);
- info->type_stack->baseclasses = NULL;
- }
-
- strcat (buf, info->type_stack->fields);
- free (info->type_stack->fields);
- info->type_stack->fields = NULL;
-
- if (info->type_stack->methods != NULL)
- {
- strcat (buf, info->type_stack->methods);
- free (info->type_stack->methods);
- info->type_stack->methods = NULL;
- }
-
- strcat (buf, ";");
-
- if (info->type_stack->vtable != NULL)
- {
- strcat (buf, info->type_stack->vtable);
- free (info->type_stack->vtable);
- info->type_stack->vtable = NULL;
- }
-
- /* Replace the string on the top of the stack with the complete
- class definition. */
- free (info->type_stack->string);
- info->type_stack->string = buf;
-
- return TRUE;
-}
-
-/* Push a typedef which was previously defined. */
-
-static bfd_boolean
-stab_typedef_type (void *p, const char *name)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- struct string_hash_entry *h;
-
- h = string_hash_lookup (&info->typedef_hash, name, FALSE, FALSE);
- assert (h != NULL && h->index > 0);
-
- return stab_push_defined_type (info, h->index, h->size);
-}
-
-/* Push a struct, union or class tag. */
-
-static bfd_boolean
-stab_tag_type (void *p, const char *name, unsigned int id,
- enum debug_type_kind kind)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- long index;
- unsigned int size;
-
- index = stab_get_struct_index (info, name, id, kind, &size);
- if (index < 0)
- return FALSE;
-
- return stab_push_defined_type (info, index, size);
-}
-
-/* Define a typedef. */
-
-static bfd_boolean
-stab_typdef (void *p, const char *name)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- long index;
- unsigned int size;
- char *s, *buf;
- struct string_hash_entry *h;
-
- index = info->type_stack->index;
- size = info->type_stack->size;
- s = stab_pop_type (info);
-
- buf = (char *) xmalloc (strlen (name) + strlen (s) + 20);
-
- if (index > 0)
- sprintf (buf, "%s:t%s", name, s);
- else
- {
- index = info->type_index;
- ++info->type_index;
- sprintf (buf, "%s:t%ld=%s", name, index, s);
- }
-
- free (s);
-
- if (! stab_write_symbol (info, N_LSYM, 0, 0, buf))
- return FALSE;
-
- free (buf);
-
- h = string_hash_lookup (&info->typedef_hash, name, TRUE, FALSE);
- if (h == NULL)
- {
- non_fatal (_("string_hash_lookup failed: %s"),
- bfd_errmsg (bfd_get_error ()));
- return FALSE;
- }
-
- /* I don't think we care about redefinitions. */
-
- h->index = index;
- h->size = size;
-
- return TRUE;
-}
-
-/* Define a tag. */
-
-static bfd_boolean
-stab_tag (void *p, const char *tag)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- char *s, *buf;
-
- s = stab_pop_type (info);
-
- buf = (char *) xmalloc (strlen (tag) + strlen (s) + 3);
-
- sprintf (buf, "%s:T%s", tag, s);
- free (s);
-
- if (! stab_write_symbol (info, N_LSYM, 0, 0, buf))
- return FALSE;
-
- free (buf);
-
- return TRUE;
-}
-
-/* Define an integer constant. */
-
-static bfd_boolean
-stab_int_constant (void *p, const char *name, bfd_vma val)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- char *buf;
-
- buf = (char *) xmalloc (strlen (name) + 20);
- sprintf (buf, "%s:c=i%ld", name, (long) val);
-
- if (! stab_write_symbol (info, N_LSYM, 0, 0, buf))
- return FALSE;
-
- free (buf);
-
- return TRUE;
-}
-
-/* Define a floating point constant. */
-
-static bfd_boolean
-stab_float_constant (void *p, const char *name, double val)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- char *buf;
-
- buf = (char *) xmalloc (strlen (name) + 20);
- sprintf (buf, "%s:c=f%g", name, val);
-
- if (! stab_write_symbol (info, N_LSYM, 0, 0, buf))
- return FALSE;
-
- free (buf);
-
- return TRUE;
-}
-
-/* Define a typed constant. */
-
-static bfd_boolean
-stab_typed_constant (void *p, const char *name, bfd_vma val)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- char *s, *buf;
-
- s = stab_pop_type (info);
-
- buf = (char *) xmalloc (strlen (name) + strlen (s) + 20);
- sprintf (buf, "%s:c=e%s,%ld", name, s, (long) val);
- free (s);
-
- if (! stab_write_symbol (info, N_LSYM, 0, 0, buf))
- return FALSE;
-
- free (buf);
-
- return TRUE;
-}
-
-/* Record a variable. */
-
-static bfd_boolean
-stab_variable (void *p, const char *name, enum debug_var_kind kind,
- bfd_vma val)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- char *s, *buf;
- int stab_type;
- const char *kindstr;
-
- s = stab_pop_type (info);
-
- switch (kind)
- {
- default:
- abort ();
-
- case DEBUG_GLOBAL:
- stab_type = N_GSYM;
- kindstr = "G";
- break;
-
- case DEBUG_STATIC:
- stab_type = N_STSYM;
- kindstr = "S";
- break;
-
- case DEBUG_LOCAL_STATIC:
- stab_type = N_STSYM;
- kindstr = "V";
- break;
-
- case DEBUG_LOCAL:
- stab_type = N_LSYM;
- kindstr = "";
-
- /* Make sure that this is a type reference or definition. */
- if (! ISDIGIT (*s))
- {
- char *n;
- long index;
-
- index = info->type_index;
- ++info->type_index;
- n = (char *) xmalloc (strlen (s) + 20);
- sprintf (n, "%ld=%s", index, s);
- free (s);
- s = n;
- }
- break;
-
- case DEBUG_REGISTER:
- stab_type = N_RSYM;
- kindstr = "r";
- break;
- }
-
- buf = (char *) xmalloc (strlen (name) + strlen (s) + 3);
- sprintf (buf, "%s:%s%s", name, kindstr, s);
- free (s);
-
- if (! stab_write_symbol (info, stab_type, 0, val, buf))
- return FALSE;
-
- free (buf);
-
- return TRUE;
-}
-
-/* Start outputting a function. */
-
-static bfd_boolean
-stab_start_function (void *p, const char *name, bfd_boolean globalp)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- char *rettype, *buf;
-
- assert (info->nesting == 0 && info->fun_offset == -1);
-
- rettype = stab_pop_type (info);
-
- buf = (char *) xmalloc (strlen (name) + strlen (rettype) + 3);
- sprintf (buf, "%s:%c%s", name,
- globalp ? 'F' : 'f',
- rettype);
-
- /* We don't know the value now, so we set it in start_block. */
- info->fun_offset = info->symbols_size;
-
- if (! stab_write_symbol (info, N_FUN, 0, 0, buf))
- return FALSE;
-
- free (buf);
-
- return TRUE;
-}
-
-/* Output a function parameter. */
-
-static bfd_boolean
-stab_function_parameter (void *p, const char *name, enum debug_parm_kind kind, bfd_vma val)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
- char *s, *buf;
- int stab_type;
- char kindc;
-
- s = stab_pop_type (info);
-
- switch (kind)
- {
- default:
- abort ();
-
- case DEBUG_PARM_STACK:
- stab_type = N_PSYM;
- kindc = 'p';
- break;
-
- case DEBUG_PARM_REG:
- stab_type = N_RSYM;
- kindc = 'P';
- break;
-
- case DEBUG_PARM_REFERENCE:
- stab_type = N_PSYM;
- kindc = 'v';
- break;
-
- case DEBUG_PARM_REF_REG:
- stab_type = N_RSYM;
- kindc = 'a';
- break;
- }
-
- buf = (char *) xmalloc (strlen (name) + strlen (s) + 3);
- sprintf (buf, "%s:%c%s", name, kindc, s);
- free (s);
-
- if (! stab_write_symbol (info, stab_type, 0, val, buf))
- return FALSE;
-
- free (buf);
-
- return TRUE;
-}
-
-/* Start a block. */
-
-static bfd_boolean
-stab_start_block (void *p, bfd_vma addr)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- /* Fill in any slots which have been waiting for the first known
- text address. */
-
- if (info->so_offset != -1)
- {
- bfd_put_32 (info->abfd, addr, info->symbols + info->so_offset + 8);
- info->so_offset = -1;
- }
-
- if (info->fun_offset != -1)
- {
- bfd_put_32 (info->abfd, addr, info->symbols + info->fun_offset + 8);
- info->fun_offset = -1;
- }
-
- ++info->nesting;
-
- /* We will be called with a top level block surrounding the
- function, but stabs information does not output that block, so we
- ignore it. */
-
- if (info->nesting == 1)
- {
- info->fnaddr = addr;
- return TRUE;
- }
-
- /* We have to output the LBRAC symbol after any variables which are
- declared inside the block. We postpone the LBRAC until the next
- start_block or end_block. */
-
- /* If we have postponed an LBRAC, output it now. */
- if (info->pending_lbrac != (bfd_vma) -1)
- {
- if (! stab_write_symbol (info, N_LBRAC, 0, info->pending_lbrac,
- (const char *) NULL))
- return FALSE;
- }
-
- /* Remember the address and output it later. */
-
- info->pending_lbrac = addr - info->fnaddr;
-
- return TRUE;
-}
-
-/* End a block. */
-
-static bfd_boolean
-stab_end_block (void *p, bfd_vma addr)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- if (addr > info->last_text_address)
- info->last_text_address = addr;
-
- /* If we have postponed an LBRAC, output it now. */
- if (info->pending_lbrac != (bfd_vma) -1)
- {
- if (! stab_write_symbol (info, N_LBRAC, 0, info->pending_lbrac,
- (const char *) NULL))
- return FALSE;
- info->pending_lbrac = (bfd_vma) -1;
- }
-
- assert (info->nesting > 0);
-
- --info->nesting;
-
- /* We ignore the outermost block. */
- if (info->nesting == 0)
- return TRUE;
-
- return stab_write_symbol (info, N_RBRAC, 0, addr - info->fnaddr,
- (const char *) NULL);
-}
-
-/* End a function. */
-
-static bfd_boolean
-stab_end_function (void *p ATTRIBUTE_UNUSED)
-{
- return TRUE;
-}
-
-/* Output a line number. */
-
-static bfd_boolean
-stab_lineno (void *p, const char *file, unsigned long lineno, bfd_vma addr)
-{
- struct stab_write_handle *info = (struct stab_write_handle *) p;
-
- assert (info->lineno_filename != NULL);
-
- if (addr > info->last_text_address)
- info->last_text_address = addr;
-
- if (strcmp (file, info->lineno_filename) != 0)
- {
- if (! stab_write_symbol (info, N_SOL, 0, addr, file))
- return FALSE;
- info->lineno_filename = file;
- }
-
- return stab_write_symbol (info, N_SLINE, lineno, addr - info->fnaddr,
- (const char *) NULL);
-}