14320 lines
486 KiB
Diff
14320 lines
486 KiB
Diff
diff -rNU3 a/bfd/aoutx.h b/bfd/aoutx.h
|
||
--- a/bfd/aoutx.h 2021-03-30 23:12:40.087893265 -0300
|
||
+++ b/bfd/aoutx.h 2021-03-30 17:47:59.502219000 -0300
|
||
@@ -757,7 +757,7 @@
|
||
break;
|
||
|
||
case bfd_arch_arm:
|
||
- if (machine == 0)
|
||
+ if (machine == 0 || machine == 5)
|
||
arch_flags = M_ARM;
|
||
break;
|
||
|
||
diff -rNU3 a/bfd/archive.c b/bfd/archive.c
|
||
--- a/bfd/archive.c 2021-03-30 23:12:40.087893265 -0300
|
||
+++ b/bfd/archive.c 2021-03-30 17:47:59.502219000 -0300
|
||
@@ -162,6 +162,9 @@
|
||
#define ar_maxnamelen(abfd) ((abfd)->xvec->ar_max_namelen)
|
||
|
||
#define arch_eltdata(bfd) ((struct areltdata *) ((bfd)->arelt_data))
|
||
+
|
||
+static const char * normalize (bfd *, const char *);
|
||
+
|
||
#define arch_hdr(bfd) ((struct ar_hdr *) arch_eltdata (bfd)->arch_header)
|
||
|
||
/* True iff NAME designated a BSD 4.4 extended name. */
|
||
@@ -815,6 +818,16 @@
|
||
{
|
||
filestart = last_file->proxy_origin;
|
||
if (! bfd_is_thin_archive (archive))
|
||
+#if 0
|
||
+/* OLD CODE */
|
||
+ filestart += size;
|
||
+ /* Pad to an even boundary...
|
||
+ Note that last_file->origin can be odd in the case of
|
||
+ BSD-4.4-style element with a long odd size. */
|
||
+ if (!strncmp(arch_hdr (last_file)->ar_name, "#1/", 3))
|
||
+ size += strlen(normalize(last_file, last_file->filename));
|
||
+ filestart += size % 2;
|
||
+#endif
|
||
{
|
||
bfd_size_type size = arelt_size (last_file);
|
||
|
||
@@ -2175,11 +2188,22 @@
|
||
current = current->archive_next)
|
||
{
|
||
char buffer[DEFAULT_BUFFERSIZE];
|
||
- bfd_size_type remaining = arelt_size (current);
|
||
+ bfd_size_type saved_size = arelt_size (current);
|
||
+ bfd_size_type remaining = saved_size;
|
||
+ struct ar_hdr *hdr = arch_hdr (current);
|
||
|
||
/* Write ar header. */
|
||
if (!_bfd_write_ar_hdr (arch, current))
|
||
- return FALSE;
|
||
+ return FALSE;
|
||
+ /* Write filename if it is a 4.4BSD extended file, and add to size. */
|
||
+ if (!strncmp (hdr->ar_name, "#1/", 3))
|
||
+ {
|
||
+ const char *normal = normalize (current, current->filename);
|
||
+ unsigned int thislen = strlen (normal);
|
||
+ if (bfd_write (normal, 1, thislen, arch) != thislen)
|
||
+ return FALSE;
|
||
+ saved_size += thislen;
|
||
+ }
|
||
if (bfd_is_thin_archive (arch))
|
||
continue;
|
||
if (bfd_seek (current, (file_ptr) 0, SEEK_SET) != 0)
|
||
@@ -2510,11 +2534,19 @@
|
||
{
|
||
do
|
||
{
|
||
+#if 1
|
||
+ bfd_size_type size = arelt_size (current);
|
||
+ if (!strncmp(arch_hdr (current)->ar_name, "#1/", 3))
|
||
+ size += strlen(normalize(current, current->filename));
|
||
+ firstreal += size + sizeof (struct ar_hdr);
|
||
+ firstreal += size % 2;
|
||
+#else
|
||
struct areltdata *ared = arch_eltdata (current);
|
||
|
||
firstreal += (ared->parsed_size + ared->extra_size
|
||
+ sizeof (struct ar_hdr));
|
||
firstreal += firstreal % 2;
|
||
+#endif
|
||
current = current->archive_next;
|
||
}
|
||
while (current != map[count].u.abfd);
|
||
diff -rNU3 a/bfd/archures.c b/bfd/archures.c
|
||
--- a/bfd/archures.c 2021-03-30 23:12:40.087893265 -0300
|
||
+++ b/bfd/archures.c 2021-03-30 17:47:59.502219000 -0300
|
||
@@ -651,6 +651,7 @@
|
||
extern const bfd_arch_info_type bfd_nfp_arch;
|
||
extern const bfd_arch_info_type bfd_nios2_arch;
|
||
extern const bfd_arch_info_type bfd_ns32k_arch;
|
||
+extern const bfd_arch_info_type bfd_openrisc_arch;
|
||
extern const bfd_arch_info_type bfd_or1k_arch;
|
||
extern const bfd_arch_info_type bfd_pdp11_arch;
|
||
extern const bfd_arch_info_type bfd_pj_arch;
|
||
@@ -741,6 +742,7 @@
|
||
&bfd_nfp_arch,
|
||
&bfd_nios2_arch,
|
||
&bfd_ns32k_arch,
|
||
+ &bfd_openrisc_arch,
|
||
&bfd_or1k_arch,
|
||
&bfd_pdp11_arch,
|
||
&bfd_powerpc_arch,
|
||
diff -rNU3 a/bfd/coff-alpha.c b/bfd/coff-alpha.c
|
||
--- a/bfd/coff-alpha.c 2021-03-30 23:12:40.087893265 -0300
|
||
+++ b/bfd/coff-alpha.c 2021-03-30 17:47:59.512219000 -0300
|
||
@@ -640,7 +640,9 @@
|
||
case ALPHA_R_OP_STORE:
|
||
/* The STORE reloc needs the size and offset fields. We store
|
||
them in the addend. */
|
||
+#if 0
|
||
BFD_ASSERT (intern->r_offset <= 256);
|
||
+#endif
|
||
rptr->addend = (intern->r_offset << 8) + intern->r_size;
|
||
break;
|
||
|
||
diff -rNU3 a/bfd/config.bfd b/bfd/config.bfd
|
||
--- a/bfd/config.bfd 2021-03-30 23:12:40.087893265 -0300
|
||
+++ b/bfd/config.bfd 2021-03-30 17:47:59.522219000 -0300
|
||
@@ -179,6 +179,7 @@
|
||
i[3-7]86) targ_archs=bfd_i386_arch ;;
|
||
ia16) targ_archs=bfd_i386_arch ;;
|
||
lm32) targ_archs=bfd_lm32_arch ;;
|
||
+m5200|m5407) targ_archs=bfd_m68k_arch ;;
|
||
m6811*|m68hc11*) targ_archs="bfd_m68hc11_arch bfd_m68hc12_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;;
|
||
m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;;
|
||
m68*) targ_archs=bfd_m68k_arch ;;
|
||
@@ -252,12 +253,12 @@
|
||
targ_selvecs=aarch64_elf64_be_cloudabi_vec
|
||
want64=true
|
||
;;
|
||
- aarch64-*-linux*)
|
||
+ aarch64-*-linux* | aarch64-*-netbsd*)
|
||
targ_defvec=aarch64_elf64_le_vec
|
||
targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec"
|
||
want64=true
|
||
;;
|
||
- aarch64_be-*-linux*)
|
||
+ aarch64_be-*-linux* | aarch64_be-*-netbsd*)
|
||
targ_defvec=aarch64_elf64_be_vec
|
||
targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec"
|
||
want64=true
|
||
@@ -348,11 +349,11 @@
|
||
targ64_selvecs="x86_64_elf32_nacl_vec x86_64_elf64_nacl_vec"
|
||
targ_archs="$targ_archs bfd_i386_arch"
|
||
;;
|
||
- armeb-*-netbsdelf*)
|
||
+ arm*eb-*-netbsdelf*)
|
||
targ_defvec=arm_elf32_be_vec
|
||
targ_selvecs="arm_elf32_le_vec"
|
||
;;
|
||
- arm-*-netbsdelf*)
|
||
+ arm*-*-netbsdelf*)
|
||
targ_defvec=arm_elf32_le_vec
|
||
targ_selvecs="arm_elf32_be_vec"
|
||
;;
|
||
@@ -621,8 +622,8 @@
|
||
;;
|
||
i[3-7]86-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu)
|
||
targ_defvec=i386_elf32_vec
|
||
- targ_selvecs="iamcu_elf32_vec"
|
||
- targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec"
|
||
+ targ_selvecs="iamcu_elf32_vec i386_coff_vec i386_pei_vec i386_aout_bsd_vec i386_aout_nbsd_vec"
|
||
+ targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec x86_64_pei_vec"
|
||
;;
|
||
i[3-7]86-*-netbsdpe*)
|
||
targ_defvec=i386_pe_vec
|
||
@@ -685,7 +686,7 @@
|
||
;;
|
||
x86_64-*-netbsd* | x86_64-*-openbsd*)
|
||
targ_defvec=x86_64_elf64_vec
|
||
- targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec"
|
||
+ targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec i386_aout_bsd_vec i386_aout_nbsd_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec"
|
||
want64=true
|
||
;;
|
||
x86_64-*-linux-*)
|
||
@@ -850,14 +851,6 @@
|
||
;;
|
||
|
||
#ifdef BFD64
|
||
- mips*el-*-netbsd*)
|
||
- targ_defvec=mips_elf32_trad_le_vec
|
||
- targ_selvecs="mips_elf32_trad_be_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec mips_ecoff_le_vec mips_ecoff_be_vec"
|
||
- ;;
|
||
- mips*-*-netbsd*)
|
||
- targ_defvec=mips_elf32_trad_be_vec
|
||
- targ_selvecs="mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
|
||
- ;;
|
||
mips*-*-irix6*)
|
||
targ_defvec=mips_elf32_n_be_vec
|
||
targ_selvecs="mips_elf32_n_le_vec mips_elf32_be_vec mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
|
||
@@ -898,6 +891,22 @@
|
||
targ_defvec=mips_elf32_be_vec
|
||
targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
|
||
;;
|
||
+ mips64*el-*-netbsd*)
|
||
+ targ_defvec=mips_elf32_ntrad_le_vec
|
||
+ targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec mips_ecoff_le_vec mips_ecoff_be_vec"
|
||
+ ;;
|
||
+ mips64*-*-netbsd*)
|
||
+ targ_defvec=mips_elf32_ntrad_be_vec
|
||
+ targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
|
||
+ ;;
|
||
+ mips*el-*-netbsd*)
|
||
+ targ_defvec=mips_elf32_trad_le_vec
|
||
+ targ_selvecs="mips_elf32_trad_be_vec mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec mips_ecoff_le_vec mips_ecoff_be_vec"
|
||
+ ;;
|
||
+ mips*-*-netbsd*)
|
||
+ targ_defvec=mips_elf32_trad_be_vec
|
||
+ targ_selvecs="mips_elf32_trad_le_vec mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec mips_ecoff_be_vec mips_ecoff_le_vec"
|
||
+ ;;
|
||
mips64*-*-openbsd*)
|
||
targ_defvec=mips_elf64_trad_be_vec
|
||
targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec"
|
||
@@ -1029,7 +1038,7 @@
|
||
targ_selvecs=nios2_elf32_be_vec
|
||
;;
|
||
|
||
- or1k-*-elf | or1k-*-linux* | or1k-*-rtems*)
|
||
+ or1k-*-elf | or1k-*-linux* | or1k-*-rtems* | or1k*-*-netbsd*)
|
||
targ_defvec=or1k_elf32_vec
|
||
;;
|
||
|
||
@@ -1189,6 +1198,14 @@
|
||
targ_underscore=yes
|
||
;;
|
||
|
||
+#ifdef BFD64
|
||
+ riscv*-*-*)
|
||
+ targ_defvec=riscv_elf64_vec
|
||
+ targ_selvecs="riscv_elf32_vec riscv_elf64_vec"
|
||
+ want64=true
|
||
+ ;;
|
||
+#endif
|
||
+
|
||
rx-*-elf)
|
||
targ_defvec=rx_elf32_le_vec
|
||
targ_selvecs="rx_elf32_be_vec rx_elf32_le_vec rx_elf32_be_ns_vec"
|
||
@@ -1241,9 +1258,10 @@
|
||
targ_defvec=sh_elf32_nbsd_le_vec
|
||
targ_selvecs="sh_elf32_nbsd_vec sh_coff_vec sh_coff_le_vec"
|
||
;;
|
||
- sh*-*-netbsdelf*)
|
||
+ sh-*-netbsdelf*)
|
||
targ_defvec=sh_elf32_nbsd_vec
|
||
targ_selvecs="sh_elf32_nbsd_le_vec sh_coff_vec sh_coff_le_vec"
|
||
+ want64=true
|
||
;;
|
||
|
||
shl*-*-elf* | sh[1234]l*-*-elf* | sh3el*-*-elf* | shl*-*-kaos*)
|
||
@@ -1287,6 +1305,10 @@
|
||
targ_underscore=yes
|
||
;;
|
||
|
||
+ sparc-*-netbsdelf*)
|
||
+ targ_defvec=sparc_elf32_vec
|
||
+ want64=true
|
||
+ ;;
|
||
sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
|
||
targ_defvec=sparc_elf32_sol2_vec
|
||
;;
|
||
diff -rNU3 a/bfd/configure b/bfd/configure
|
||
--- a/bfd/configure 2021-03-30 23:12:40.094559932 -0300
|
||
+++ b/bfd/configure 2021-03-30 17:47:59.522219000 -0300
|
||
@@ -12461,7 +12461,7 @@
|
||
*) as_fn_error $? "bad value ${enableval} for secureplt option" "$LINENO" 5 ;;
|
||
esac
|
||
else
|
||
- use_secureplt=true
|
||
+ use_secureplt=false
|
||
fi
|
||
if test $use_secureplt = true; then
|
||
|
||
@@ -12523,10 +12523,10 @@
|
||
withval=$with_pkgversion; case "$withval" in
|
||
yes) as_fn_error $? "package version not specified" "$LINENO" 5 ;;
|
||
no) PKGVERSION= ;;
|
||
- *) PKGVERSION="($withval) " ;;
|
||
+ *) PKGVERSION="($withval)\ " ;;
|
||
esac
|
||
else
|
||
- PKGVERSION="(GNU Binutils) "
|
||
+ PKGVERSION="(GNU Binutils)\ "
|
||
|
||
fi
|
||
|
||
@@ -14752,6 +14752,7 @@
|
||
i386_aout_vec) tb="$tb i386aout.lo aout32.lo" ;;
|
||
i386_aout_bsd_vec) tb="$tb i386bsd.lo aout32.lo" ;;
|
||
i386_aout_lynx_vec) tb="$tb i386lynx.lo lynx-core.lo aout32.lo" ;;
|
||
+ i386_aout_nbsd_vec) tb="$tb i386netbsd.lo aout32.lo" ;;
|
||
i386_coff_vec) tb="$tb coff-i386.lo $coff" ;;
|
||
i386_coff_go32_vec) tb="$tb coff-go32.lo $coff" ;;
|
||
i386_coff_go32stubbed_vec) tb="$tb coff-stgo32.lo $coff" ;;
|
||
@@ -15119,6 +15120,7 @@
|
||
COREFILE=netbsd-core.lo
|
||
;;
|
||
arm-*-riscix) COREFILE=trad-core.lo ;;
|
||
+ arm*-*-netbsd*) COREFILE=netbsd-core.lo ;;
|
||
hppa*-*-hpux*) COREFILE=hpux-core.lo ;;
|
||
hppa*-*-hiux*) COREFILE=hpux-core.lo ;;
|
||
hppa*-*-mpeix*) COREFILE=hpux-core.lo ;;
|
||
diff -rNU3 a/bfd/configure.ac b/bfd/configure.ac
|
||
--- a/bfd/configure.ac 2021-03-30 23:12:40.097893265 -0300
|
||
+++ b/bfd/configure.ac 2021-03-30 17:47:59.522219000 -0300
|
||
@@ -86,7 +86,7 @@
|
||
yes) use_secureplt=true ;;
|
||
no) use_secureplt=false ;;
|
||
*) AC_MSG_ERROR(bad value ${enableval} for secureplt option) ;;
|
||
-esac],[use_secureplt=true])dnl
|
||
+esac],[use_secureplt=false])dnl
|
||
if test $use_secureplt = true; then
|
||
AC_DEFINE(USE_SECUREPLT, 1,
|
||
[Define if we should default to creating read-only plt entries])
|
||
@@ -488,6 +488,7 @@
|
||
i386_aout_vec) tb="$tb i386aout.lo aout32.lo" ;;
|
||
i386_aout_bsd_vec) tb="$tb i386bsd.lo aout32.lo" ;;
|
||
i386_aout_lynx_vec) tb="$tb i386lynx.lo lynx-core.lo aout32.lo" ;;
|
||
+ i386_aout_nbsd_vec) tb="$tb i386netbsd.lo aout32.lo" ;;
|
||
i386_coff_vec) tb="$tb coff-i386.lo $coff" ;;
|
||
i386_coff_go32_vec) tb="$tb coff-go32.lo $coff" ;;
|
||
i386_coff_go32stubbed_vec) tb="$tb coff-stgo32.lo $coff" ;;
|
||
diff -rNU3 a/bfd/configure.host b/bfd/configure.host
|
||
--- a/bfd/configure.host 2021-03-30 23:12:40.097893265 -0300
|
||
+++ b/bfd/configure.host 2021-03-30 17:47:59.532219000 -0300
|
||
@@ -72,6 +72,10 @@
|
||
mips*-*-sysv*) HDEFINES="-G 4" ;;
|
||
mips*-*-riscos*) HDEFINES="-G 4" ;;
|
||
|
||
+sparc64*-*-netbsd*) host64=true; HOST_64BIT_TYPE=long ;;
|
||
+
|
||
+x86_64*-*-netbsd*) host64=true; HOST_64BIT_TYPE=long ;;
|
||
+
|
||
# Some Solaris systems (osol0906 at least) have a libc that doesn't recognise
|
||
# the "MS-ANSI" code page name, so we define an override for CP_ACP (sets the
|
||
# default code page used by windres/windmc when not specified by a commandline
|
||
diff -rNU3 a/bfd/doc/Makefile.in b/bfd/doc/Makefile.in
|
||
--- a/bfd/doc/Makefile.in 2021-03-30 23:12:40.097893265 -0300
|
||
+++ b/bfd/doc/Makefile.in 2021-03-30 17:47:59.552219000 -0300
|
||
@@ -538,6 +538,8 @@
|
||
-rm -rf .libs _libs
|
||
|
||
bfd.info: bfd.texi $(bfd_TEXINFOS)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_bfd.info: bfd.texinfo $(bfd_TEXINFOS)
|
||
$(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
|
||
rm -rf $$backupdir && mkdir $$backupdir && \
|
||
if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
|
||
diff -rNU3 a/bfd/doc/reloc.texi b/bfd/doc/reloc.texi
|
||
--- a/bfd/doc/reloc.texi 2021-03-30 23:12:40.097893265 -0300
|
||
+++ b/bfd/doc/reloc.texi 2021-03-30 17:47:59.558886000 -0300
|
||
@@ -557,6 +557,12 @@
|
||
@deffnx {} BFD_RELOC_68K_TLS_LE8
|
||
Relocations used by 68K ELF.
|
||
@end deffn
|
||
+@deffn {} BFD_RELOC_VAX_GLOB_DAT
|
||
+@deffnx {} BFD_RELOC_VAX_GLOB_REF
|
||
+@deffnx {} BFD_RELOC_VAX_JMP_SLOT
|
||
+@deffnx {} BFD_RELOC_VAX_RELATIVE
|
||
+Relocations used by VAX ELF.
|
||
+@end deffn
|
||
@deffn {} BFD_RELOC_32_BASEREL
|
||
@deffnx {} BFD_RELOC_16_BASEREL
|
||
@deffnx {} BFD_RELOC_LO16_BASEREL
|
||
diff -rNU3 a/bfd/elf32-arm.c b/bfd/elf32-arm.c
|
||
--- a/bfd/elf32-arm.c 2021-03-30 23:12:40.111226599 -0300
|
||
+++ b/bfd/elf32-arm.c 2021-03-30 17:47:59.578886000 -0300
|
||
@@ -3488,6 +3488,7 @@
|
||
#endif
|
||
}
|
||
|
||
+#if !defined (__NetBSD__) || (__NetBSD_Version__ < 600000000)
|
||
static inline int
|
||
elf32_arm_popcount (unsigned int mask)
|
||
{
|
||
@@ -3506,6 +3507,7 @@
|
||
return sum;
|
||
#endif
|
||
}
|
||
+#endif
|
||
|
||
static void elf32_arm_add_dynreloc (bfd *output_bfd, struct bfd_link_info *info,
|
||
asection *sreloc, Elf_Internal_Rela *rel);
|
||
diff -rNU3 a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c
|
||
--- a/bfd/elf32-hppa.c 2021-03-30 23:12:40.111226599 -0300
|
||
+++ b/bfd/elf32-hppa.c 2021-03-30 17:47:59.598886000 -0300
|
||
@@ -2095,7 +2095,6 @@
|
||
info->callbacks->minfo
|
||
(_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"),
|
||
sec->owner, eh->root.root.string, sec);
|
||
-
|
||
/* Not an error, just cut short the traversal. */
|
||
return FALSE;
|
||
}
|
||
diff -rNU3 a/bfd/elf32-i386.c b/bfd/elf32-i386.c
|
||
--- a/bfd/elf32-i386.c 2021-03-30 23:12:40.114559932 -0300
|
||
+++ b/bfd/elf32-i386.c 2021-03-30 17:47:59.602219000 -0300
|
||
@@ -534,9 +534,14 @@
|
||
one of the last functions. */
|
||
|
||
/* The size in bytes of an entry in the lazy procedure linkage table. */
|
||
-
|
||
#define LAZY_PLT_ENTRY_SIZE 16
|
||
|
||
+/* The name of the dynamic interpreter. This is put in the .interp
|
||
+ section. */
|
||
+
|
||
+#define ELF_DYNAMIC_INTERPRETER "/libexec/ld.elf_so"
|
||
+
|
||
+
|
||
/* The size in bytes of an entry in the non-lazy procedure linkage
|
||
table. */
|
||
|
||
diff -rNU3 a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
|
||
--- a/bfd/elf32-m68k.c 2021-03-30 23:12:40.114559932 -0300
|
||
+++ b/bfd/elf32-m68k.c 2021-03-30 17:47:59.608886000 -0300
|
||
@@ -2486,7 +2486,7 @@
|
||
if (ind->got_entry_key != 0)
|
||
{
|
||
BFD_ASSERT (dir->got_entry_key == 0);
|
||
- /* Assert that GOTs aren't partioned yet. */
|
||
+ /* Assert that GOTs aren't partitioned yet. */
|
||
BFD_ASSERT (ind->glist == NULL);
|
||
|
||
dir->got_entry_key = ind->got_entry_key;
|
||
@@ -2743,7 +2743,13 @@
|
||
&& !(ELF32_R_TYPE (rel->r_info) == R_68K_PC8
|
||
|| ELF32_R_TYPE (rel->r_info) == R_68K_PC16
|
||
|| ELF32_R_TYPE (rel->r_info) == R_68K_PC32))
|
||
- info->flags |= DF_TEXTREL;
|
||
+ {
|
||
+ if (info->warn_shared_textrel)
|
||
+ (*_bfd_error_handler)
|
||
+ (_("warning: dynamic relocation to `%s' in readonly section `%s'"),
|
||
+ h->root.root.string, sec->name);
|
||
+ info->flags |= DF_TEXTREL;
|
||
+ }
|
||
|
||
sreloc->size += sizeof (Elf32_External_Rela);
|
||
|
||
@@ -2905,6 +2911,7 @@
|
||
/* Make sure we know what is going on here. */
|
||
BFD_ASSERT (dynobj != NULL
|
||
&& (h->needs_plt
|
||
+ || h->type == STT_GNU_IFUNC
|
||
|| h->is_weakalias
|
||
|| (h->def_dynamic
|
||
&& h->ref_regular
|
||
@@ -2913,7 +2920,7 @@
|
||
/* If this is a function, put it in the procedure linkage table. We
|
||
will fill in the contents of the procedure linkage table later,
|
||
when we know the address of the .got section. */
|
||
- if (h->type == STT_FUNC
|
||
+ if ((h->type == STT_FUNC || h->type == STT_GNU_IFUNC)
|
||
|| h->needs_plt)
|
||
{
|
||
if ((h->plt.refcount <= 0
|
||
@@ -3234,6 +3241,10 @@
|
||
s = s->next)
|
||
if ((s->section->flags & SEC_READONLY) != 0)
|
||
{
|
||
+ if (info->warn_shared_textrel)
|
||
+ (*_bfd_error_handler)
|
||
+ (_("warning: dynamic relocation to `%s' in readonly section `%s'"),
|
||
+ h->root.root.string, s->section->name);
|
||
info->flags |= DF_TEXTREL;
|
||
break;
|
||
}
|
||
diff -rNU3 a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
|
||
--- a/bfd/elf32-ppc.c 2021-03-30 23:12:40.117893266 -0300
|
||
+++ b/bfd/elf32-ppc.c 2021-03-30 17:47:59.625553000 -0300
|
||
@@ -3017,7 +3017,7 @@
|
||
sec->nomark_tls_get_addr = 1;
|
||
}
|
||
|
||
- switch (r_type)
|
||
+ switch ((int)r_type)
|
||
{
|
||
case R_PPC_TLSGD:
|
||
case R_PPC_TLSLD:
|
||
@@ -5438,9 +5438,16 @@
|
||
struct bfd_link_info *info = (struct bfd_link_info *) info_p;
|
||
|
||
info->flags |= DF_TEXTREL;
|
||
- info->callbacks->minfo
|
||
- (_("%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"),
|
||
- sec->owner, h->root.root.string, sec);
|
||
+ /* xgettext:c-format */
|
||
+ info->callbacks->minfo (_("%pB: dynamic relocation against `%pT' "
|
||
+ "in read-only section `%pA'\n"),
|
||
+ sec->owner, h->root.root.string, sec);
|
||
+ if ((info->warn_shared_textrel && bfd_link_pic (info))
|
||
+ || info->error_textrel)
|
||
+ /* xgettext:c-format */
|
||
+ info->callbacks->einfo (_("%P: %pB: warning: relocation against `%s' "
|
||
+ "in read-only section `%pA'\n"),
|
||
+ sec->owner, h->root.root.string, sec);
|
||
|
||
/* Not an error, just cut short the traversal. */
|
||
return FALSE;
|
||
diff -rNU3 a/bfd/elf32-sh.c b/bfd/elf32-sh.c
|
||
--- a/bfd/elf32-sh.c 2021-03-30 23:12:40.124559932 -0300
|
||
+++ b/bfd/elf32-sh.c 2021-03-30 17:47:59.638886000 -0300
|
||
@@ -2526,6 +2526,7 @@
|
||
/* Make sure we know what is going on here. */
|
||
BFD_ASSERT (htab->root.dynobj != NULL
|
||
&& (h->needs_plt
|
||
+ || h->type == STT_GNU_IFUNC
|
||
|| h->is_weakalias
|
||
|| (h->def_dynamic
|
||
&& h->ref_regular
|
||
@@ -2534,7 +2535,7 @@
|
||
/* If this is a function, put it in the procedure linkage table. We
|
||
will fill in the contents of the procedure linkage table later,
|
||
when we know the address of the .got section. */
|
||
- if (h->type == STT_FUNC
|
||
+ if ((h->type == STT_FUNC || h->type == STT_GNU_IFUNC)
|
||
|| h->needs_plt)
|
||
{
|
||
if (h->plt.refcount <= 0
|
||
diff -rNU3 a/bfd/elf32-vax.c b/bfd/elf32-vax.c
|
||
--- a/bfd/elf32-vax.c 2021-03-30 23:12:40.124559932 -0300
|
||
+++ b/bfd/elf32-vax.c 2021-03-30 17:47:59.642219000 -0300
|
||
@@ -497,6 +497,24 @@
|
||
return TRUE;
|
||
}
|
||
|
||
+/* Copy vax-specific data from one module to another */
|
||
+static bfd_boolean
|
||
+elf32_vax_copy_private_bfd_data (bfd *ibfd, bfd *obfd)
|
||
+{
|
||
+ flagword in_flags;
|
||
+
|
||
+ if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
|
||
+ || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
|
||
+ return TRUE;
|
||
+
|
||
+ in_flags = elf_elfheader (ibfd)->e_flags;
|
||
+
|
||
+ elf_elfheader (obfd)->e_flags = in_flags;
|
||
+ elf_flags_init (obfd) = TRUE;
|
||
+
|
||
+ return TRUE;
|
||
+}
|
||
+
|
||
/* Merge backend specific data from an object file to the output
|
||
object file when linking. */
|
||
static bfd_boolean
|
||
@@ -729,7 +747,13 @@
|
||
return FALSE;
|
||
|
||
if (sec->flags & SEC_READONLY)
|
||
- info->flags |= DF_TEXTREL;
|
||
+ {
|
||
+ if (info->warn_shared_textrel)
|
||
+ (*_bfd_error_handler)
|
||
+ (_("warning: dynamic relocation to `%s' in readonly section `%s'"),
|
||
+ h ? h->root.root.string : "?", sec->name);
|
||
+ info->flags |= DF_TEXTREL;
|
||
+ }
|
||
}
|
||
|
||
sreloc->size += sizeof (Elf32_External_Rela);
|
||
@@ -834,6 +858,7 @@
|
||
/* Make sure we know what is going on here. */
|
||
BFD_ASSERT (dynobj != NULL
|
||
&& (h->needs_plt
|
||
+ || h->type == STT_GNU_IFUNC
|
||
|| h->is_weakalias
|
||
|| (h->def_dynamic
|
||
&& h->ref_regular
|
||
@@ -842,7 +867,7 @@
|
||
/* If this is a function, put it in the procedure linkage table. We
|
||
will fill in the contents of the procedure linkage table later,
|
||
when we know the address of the .got section. */
|
||
- if (h->type == STT_FUNC
|
||
+ if ((h->type == STT_FUNC || h->type == STT_GNU_IFUNC)
|
||
|| h->needs_plt)
|
||
{
|
||
if (h->plt.refcount <= 0
|
||
@@ -1244,8 +1269,12 @@
|
||
}
|
||
|
||
/* Allocate space in the .got and .rela.got sections. */
|
||
- sgot->size += 4;
|
||
- srelgot->size += sizeof (Elf32_External_Rela);
|
||
+ if (bfd_link_pic (info) || WILL_CALL_FINISH_DYNAMIC_SYMBOL (
|
||
+ elf_hash_table (info)->dynamic_sections_created, 0, h))
|
||
+ {
|
||
+ sgot->size += 4;
|
||
+ srelgot->size += sizeof (Elf32_External_Rela);
|
||
+ }
|
||
}
|
||
|
||
return TRUE;
|
||
@@ -1515,9 +1544,9 @@
|
||
{
|
||
relocate = TRUE;
|
||
outrel.r_info = ELF32_R_INFO (0, R_VAX_RELATIVE);
|
||
- BFD_ASSERT (bfd_get_signed_32 (input_bfd,
|
||
- &contents[rel->r_offset]) == 0);
|
||
- outrel.r_addend = relocation + rel->r_addend;
|
||
+ outrel.r_addend = bfd_get_signed_32(input_bfd,
|
||
+ &contents[rel->r_offset])
|
||
+ + relocation + rel->r_addend;
|
||
}
|
||
else
|
||
{
|
||
@@ -1556,6 +1585,9 @@
|
||
}
|
||
}
|
||
|
||
+ if (input_section->flags & SEC_CODE)
|
||
+ info->flags |= DF_TEXTREL;
|
||
+
|
||
if ((input_section->flags & SEC_CODE) != 0
|
||
|| (ELF32_R_TYPE (outrel.r_info) != R_VAX_32
|
||
&& ELF32_R_TYPE (outrel.r_info) != R_VAX_RELATIVE
|
||
@@ -1905,12 +1937,15 @@
|
||
#define TARGET_LITTLE_SYM vax_elf32_vec
|
||
#define TARGET_LITTLE_NAME "elf32-vax"
|
||
#define ELF_MACHINE_CODE EM_VAX
|
||
-#define ELF_MAXPAGESIZE 0x1000
|
||
+#define ELF_MAXPAGESIZE 0x10000
|
||
|
||
#define elf_backend_create_dynamic_sections \
|
||
_bfd_elf_create_dynamic_sections
|
||
#define bfd_elf32_bfd_link_hash_table_create \
|
||
elf_vax_link_hash_table_create
|
||
+#define bfd_elf32_bfd_copy_private_bfd_data \
|
||
+ elf32_vax_copy_private_bfd_data
|
||
+
|
||
#define bfd_elf32_bfd_final_link bfd_elf_gc_common_final_link
|
||
|
||
#define elf_backend_check_relocs elf_vax_check_relocs
|
||
diff -rNU3 a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
|
||
--- a/bfd/elf64-alpha.c 2021-03-30 23:12:40.124559932 -0300
|
||
+++ b/bfd/elf64-alpha.c 2021-03-30 17:47:59.648886000 -0300
|
||
@@ -99,6 +99,11 @@
|
||
#define PLT_ENTRY_SIZE \
|
||
(elf64_alpha_use_secureplt ? NEW_PLT_ENTRY_SIZE : OLD_PLT_ENTRY_SIZE)
|
||
|
||
+/* ld --traditional-format uses this older format instead. */
|
||
+#define OLD_PLT_ENTRY_WORD1 0x279f0000 /* ldah $28, 0($31) */
|
||
+#define OLD_PLT_ENTRY_WORD2 0x239c0000 /* lda $28, 0($28) */
|
||
+#define OLD_PLT_ENTRY_WORD3 0xc3e00000 /* br $31, plt0 */
|
||
+
|
||
#define MAX_GOT_SIZE (64*1024)
|
||
|
||
#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so"
|
||
@@ -4857,6 +4862,32 @@
|
||
plt_index = ((gotent->plt_offset - NEW_PLT_HEADER_SIZE)
|
||
/ NEW_PLT_ENTRY_SIZE);
|
||
}
|
||
+ else if ((output_bfd->flags & BFD_TRADITIONAL_FORMAT) != 0)
|
||
+ {
|
||
+ long hi, lo;
|
||
+
|
||
+ /* decompose the reloc offset for the plt for ldah+lda */
|
||
+ hi = plt_index * sizeof(Elf64_External_Rela);
|
||
+ lo = ((hi & 0xffff) ^ 0x8000) - 0x8000;
|
||
+ hi = (hi - lo) >> 16;
|
||
+
|
||
+ insn = INSN_ABO (INSN_LDAH, 28, 31, hi);
|
||
+ bfd_put_32 (output_bfd, insn,
|
||
+ splt->contents + gotent->plt_offset);
|
||
+
|
||
+ insn = INSN_ABO (INSN_LDA, 28, 28, lo);
|
||
+ bfd_put_32 (output_bfd, insn,
|
||
+ splt->contents + gotent->plt_offset + 4);
|
||
+
|
||
+ disp = -(gotent->plt_offset + 12);
|
||
+ insn = INSN_AD (INSN_BR, 31, disp);
|
||
+
|
||
+ bfd_put_32 (output_bfd, insn,
|
||
+ splt->contents + gotent->plt_offset + 8);
|
||
+
|
||
+ plt_index = ((gotent->plt_offset - OLD_PLT_HEADER_SIZE)
|
||
+ / OLD_PLT_ENTRY_SIZE);
|
||
+ }
|
||
else
|
||
{
|
||
disp = -(gotent->plt_offset + 4);
|
||
diff -rNU3 a/bfd/elf64-mips.c b/bfd/elf64-mips.c
|
||
--- a/bfd/elf64-mips.c 2021-03-30 23:12:40.127893266 -0300
|
||
+++ b/bfd/elf64-mips.c 2021-03-30 17:47:59.652219000 -0300
|
||
@@ -111,6 +111,8 @@
|
||
(bfd *, asymbol *, bfd_boolean, char **, bfd_vma *);
|
||
static bfd_boolean mips_elf64_object_p
|
||
(bfd *);
|
||
+static bfd_boolean mips_elf64_is_local_label_name
|
||
+ (bfd *, const char *);
|
||
static irix_compat_t elf64_mips_irix_compat
|
||
(bfd *);
|
||
static bfd_boolean elf64_mips_grok_prstatus
|
||
@@ -4531,7 +4533,18 @@
|
||
bfd_default_set_arch_mach (abfd, bfd_arch_mips, mach);
|
||
return TRUE;
|
||
}
|
||
+
|
||
+/* MIPS ELF local labels start with "$L". */
|
||
+static bfd_boolean
|
||
+mips_elf64_is_local_label_name (bfd *abfd, const char *name)
|
||
+{
|
||
+ if (name[0] == '$' && name[1] == 'L')
|
||
+ return TRUE;
|
||
|
||
+ /* We accept the generic ELF local label syntax as well. */
|
||
+ return _bfd_elf_is_local_label_name (abfd, name);
|
||
+}
|
||
+
|
||
/* Depending on the target vector we generate some version of Irix
|
||
executables or "normal" MIPS ELF ABI executables. */
|
||
static irix_compat_t
|
||
@@ -4800,9 +4813,8 @@
|
||
#define elf_backend_write_section _bfd_mips_elf_write_section
|
||
#define elf_backend_sort_relocs_p _bfd_mips_elf_sort_relocs_p
|
||
|
||
-/* We don't set bfd_elf64_bfd_is_local_label_name because the 32-bit
|
||
- MIPS-specific function only applies to IRIX5, which had no 64-bit
|
||
- ABI. */
|
||
+#define bfd_elf64_bfd_is_local_label_name \
|
||
+ mips_elf64_is_local_label_name
|
||
#define bfd_elf64_bfd_is_target_special_symbol \
|
||
_bfd_mips_elf_is_target_special_symbol
|
||
#define bfd_elf64_find_nearest_line _bfd_mips_elf_find_nearest_line
|
||
diff -rNU3 a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
|
||
--- a/bfd/elf64-ppc.c 2021-03-30 23:12:40.131226599 -0300
|
||
+++ b/bfd/elf64-ppc.c 2021-03-30 17:47:59.662219000 -0300
|
||
@@ -9790,7 +9790,13 @@
|
||
srel = htab->elf.irelplt;
|
||
srel->size += p->count * sizeof (Elf64_External_Rela);
|
||
if ((p->sec->output_section->flags & SEC_READONLY) != 0)
|
||
- info->flags |= DF_TEXTREL;
|
||
+ {
|
||
+ if (info->warn_shared_textrel)
|
||
+ (*_bfd_error_handler)
|
||
+ (_("warning: dynamic relocation in readonly section `%s'"),
|
||
+ p->sec->output_section->name);
|
||
+ info->flags |= DF_TEXTREL;
|
||
+ }
|
||
}
|
||
}
|
||
}
|
||
@@ -15228,6 +15234,11 @@
|
||
can_plt_call = TRUE;
|
||
}
|
||
}
|
||
+ else
|
||
+ {
|
||
+ /* Tail calls don't need to worry about restoring TOC. */
|
||
+ can_plt_call = TRUE;
|
||
+ }
|
||
}
|
||
|
||
if (!can_plt_call && h != NULL)
|
||
@@ -15247,7 +15258,7 @@
|
||
}
|
||
}
|
||
|
||
- if (!can_plt_call)
|
||
+ if (!can_plt_call && h != NULL)
|
||
{
|
||
/* g++ as of 20130507 emits self-calls without a
|
||
following nop. This is arguably wrong since we
|
||
diff -rNU3 a/bfd/elf.c b/bfd/elf.c
|
||
--- a/bfd/elf.c 2021-03-30 23:12:40.104559932 -0300
|
||
+++ b/bfd/elf.c 2021-03-30 17:47:59.575553000 -0300
|
||
@@ -296,7 +296,8 @@
|
||
/* Allocate and clear an extra byte at the end, to prevent crashes
|
||
in case the string table is not terminated. */
|
||
if (shstrtabsize + 1 <= 1
|
||
- || shstrtabsize > bfd_get_file_size (abfd)
|
||
+ || (bfd_get_file_size (abfd) > 0 /* not a character device */
|
||
+ && shstrtabsize > bfd_get_file_size (abfd))
|
||
|| bfd_seek (abfd, offset, SEEK_SET) != 0
|
||
|| (shstrtab = (bfd_byte *) bfd_alloc (abfd, shstrtabsize + 1)) == NULL)
|
||
shstrtab = NULL;
|
||
@@ -4396,7 +4397,7 @@
|
||
get_program_header_size (bfd *abfd, struct bfd_link_info *info)
|
||
{
|
||
size_t segs;
|
||
- asection *s;
|
||
+ asection *s, *s2;
|
||
const struct elf_backend_data *bed;
|
||
|
||
/* Assume we will need exactly two PT_LOAD segments: one for text
|
||
@@ -4404,21 +4405,28 @@
|
||
segs = 2;
|
||
|
||
s = bfd_get_section_by_name (abfd, ".interp");
|
||
+ s2 = bfd_get_section_by_name (abfd, ".dynamic");
|
||
if (s != NULL && (s->flags & SEC_LOAD) != 0 && s->size != 0)
|
||
{
|
||
- /* If we have a loadable interpreter section, we need a
|
||
- PT_INTERP segment. In this case, assume we also need a
|
||
- PT_PHDR segment, although that may not be true for all
|
||
- targets. */
|
||
- segs += 2;
|
||
+ ++segs;
|
||
}
|
||
|
||
- if (bfd_get_section_by_name (abfd, ".dynamic") != NULL)
|
||
+ if (s2 != NULL && (s2->flags & SEC_LOAD) != 0)
|
||
{
|
||
/* We need a PT_DYNAMIC segment. */
|
||
++segs;
|
||
}
|
||
|
||
+ if ((s != NULL && (s->flags & SEC_LOAD) != 0) ||
|
||
+ (s2 != NULL && (s2->flags & SEC_LOAD) != 0))
|
||
+ {
|
||
+ /*
|
||
+ * If either a PT_INTERP or PT_DYNAMIC segment is created,
|
||
+ * also create a PT_PHDR segment.
|
||
+ */
|
||
+ ++segs;
|
||
+ }
|
||
+
|
||
if (info != NULL && info->relro)
|
||
{
|
||
/* We need a PT_GNU_RELRO segment. */
|
||
@@ -4744,7 +4752,14 @@
|
||
the program headers and a PT_INTERP segment for the .interp
|
||
section. */
|
||
s = bfd_get_section_by_name (abfd, ".interp");
|
||
+ if (s != NULL && (s->flags & SEC_LOAD) == 0)
|
||
if (s != NULL && (s->flags & SEC_LOAD) != 0 && s->size != 0)
|
||
+ s = NULL;
|
||
+ dynsec = bfd_get_section_by_name (abfd, ".dynamic");
|
||
+ if (dynsec != NULL && (dynsec->flags & SEC_LOAD) == 0)
|
||
+ dynsec = NULL;
|
||
+
|
||
+ if (s != NULL || dynsec != NULL)
|
||
{
|
||
amt = sizeof (struct elf_segment_map);
|
||
m = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
|
||
@@ -4758,7 +4773,10 @@
|
||
phdr_in_segment = TRUE;
|
||
*pm = m;
|
||
pm = &m->next;
|
||
+ }
|
||
|
||
+ if (s != NULL)
|
||
+ {
|
||
amt = sizeof (struct elf_segment_map);
|
||
m = (struct elf_segment_map *) bfd_zalloc (abfd, amt);
|
||
if (m == NULL)
|
||
@@ -4780,10 +4798,6 @@
|
||
hdr_index = 0;
|
||
writable = FALSE;
|
||
executable = FALSE;
|
||
- dynsec = bfd_get_section_by_name (abfd, ".dynamic");
|
||
- if (dynsec != NULL
|
||
- && (dynsec->flags & SEC_LOAD) == 0)
|
||
- dynsec = NULL;
|
||
|
||
if ((abfd->flags & D_PAGED) == 0)
|
||
phdr_in_segment = FALSE;
|
||
@@ -5934,7 +5948,11 @@
|
||
_bfd_error_handler (_("%pB: error: PHDR segment not covered"
|
||
" by LOAD segment"),
|
||
abfd);
|
||
- return FALSE;
|
||
+ if (link_info == NULL)
|
||
+ return FALSE;
|
||
+ /* Arrange for the linker to exit with an error, deleting
|
||
+ the output file unless --noinhibit-exec is given. */
|
||
+ link_info->callbacks->info ("%X");
|
||
}
|
||
|
||
/* Check that all sections are in a PT_LOAD segment.
|
||
@@ -10659,6 +10677,7 @@
|
||
note);
|
||
}
|
||
|
||
+
|
||
static bfd_boolean
|
||
elfcore_grok_netbsd_note (bfd *abfd, Elf_Internal_Note *note)
|
||
{
|
||
diff -rNU3 a/bfd/elflink.c b/bfd/elflink.c
|
||
--- a/bfd/elflink.c 2021-03-30 23:12:40.134559933 -0300
|
||
+++ b/bfd/elflink.c 2021-03-30 17:47:59.665553000 -0300
|
||
@@ -2913,6 +2913,8 @@
|
||
if (h->is_weakalias)
|
||
{
|
||
struct elf_link_hash_entry *def = weakdef (h);
|
||
+ while (def->root.type == bfd_link_hash_indirect)
|
||
+ def = (struct elf_link_hash_entry *) def->root.u.i.link;
|
||
|
||
/* If the real definition is defined by a regular object file,
|
||
don't do anything special. See the longer description in
|
||
@@ -11490,7 +11492,14 @@
|
||
if (bed->s->arch_size == 32)
|
||
irel[0].r_info = ELF32_R_INFO (indx, howto->type);
|
||
else
|
||
- irel[0].r_info = ELF64_R_INFO (indx, howto->type);
|
||
+#ifdef BFD64
|
||
+ {
|
||
+ bfd_uint64_t indx64 = indx;
|
||
+ irel[0].r_info = ELF64_R_INFO (indx64, howto->type);
|
||
+ }
|
||
+#else
|
||
+ BFD_FAIL();
|
||
+#endif
|
||
|
||
rel_hdr = reldata->hdr;
|
||
erel = rel_hdr->contents;
|
||
diff -rNU3 a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c
|
||
--- a/bfd/elfn32-mips.c 2021-03-30 23:12:40.134559933 -0300
|
||
+++ b/bfd/elfn32-mips.c 2021-03-30 17:47:59.665553000 -0300
|
||
@@ -78,6 +78,8 @@
|
||
(bfd *, Elf_Internal_Note *);
|
||
static bfd_boolean elf32_mips_grok_psinfo
|
||
(bfd *, Elf_Internal_Note *);
|
||
+static bfd_boolean mips_elf_n32_is_local_label_name
|
||
+ (bfd *, const char *);
|
||
static bfd_boolean elf_n32_mips_grok_freebsd_prstatus
|
||
(bfd *, Elf_Internal_Note *);
|
||
static irix_compat_t elf_n32_mips_irix_compat
|
||
@@ -4018,6 +4020,17 @@
|
||
}
|
||
}
|
||
|
||
+/* MIPS ELF local labels start with "$L". */
|
||
+static bfd_boolean
|
||
+mips_elf_n32_is_local_label_name (bfd *abfd, const char *name)
|
||
+{
|
||
+ if (name[0] == '$' && name[1] == 'L')
|
||
+ return TRUE;
|
||
+
|
||
+ /* We accept the generic ELF local label syntax as well. */
|
||
+ return _bfd_elf_is_local_label_name (abfd, name);
|
||
+}
|
||
+
|
||
/* Depending on the target vector we generate some version of Irix
|
||
executables or "normal" MIPS ELF ABI executables. */
|
||
static irix_compat_t
|
||
@@ -4162,6 +4175,9 @@
|
||
#define elf_backend_write_section _bfd_mips_elf_write_section
|
||
#define elf_backend_mips_irix_compat elf_n32_mips_irix_compat
|
||
#define elf_backend_mips_rtype_to_howto mips_elf_n32_rtype_to_howto
|
||
+
|
||
+#define bfd_elf32_bfd_is_local_label_name \
|
||
+ mips_elf_n32_is_local_label_name
|
||
#define bfd_elf32_bfd_is_target_special_symbol \
|
||
_bfd_mips_elf_is_target_special_symbol
|
||
#define bfd_elf32_find_nearest_line _bfd_mips_elf_find_nearest_line
|
||
diff -rNU3 a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
|
||
--- a/bfd/elfxx-mips.c 2021-03-30 23:12:40.144559933 -0300
|
||
+++ b/bfd/elfxx-mips.c 2021-03-30 17:47:59.678886000 -0300
|
||
@@ -9026,10 +9026,30 @@
|
||
reloc types into the output file as R_MIPS_REL32
|
||
relocs. Make room for this reloc in .rel(a).dyn. */
|
||
mips_elf_allocate_dynamic_relocations (dynobj, info, 1);
|
||
- if (MIPS_ELF_READONLY_SECTION (sec))
|
||
- /* We tell the dynamic linker that there are
|
||
- relocations against the text segment. */
|
||
- info->flags |= DF_TEXTREL;
|
||
+ /* In the N32 and 64-bit ABIs there may be multiple
|
||
+ consecutive relocations for the same offset. If we have
|
||
+ a R_MIPS_GPREL32 followed by a R_MIPS_64 then that
|
||
+ relocation is complete and needs no futher adjustment.
|
||
+
|
||
+ Silently ignore absolute relocations in the .eh_frame
|
||
+ section, they will be dropped latter.
|
||
+ */
|
||
+ if ((rel == relocs
|
||
+ || rel[-1].r_offset != rel->r_offset
|
||
+ || r_type != R_MIPS_64
|
||
+ || ELF_R_TYPE(abfd, rel[-1].r_info) != R_MIPS_GPREL32)
|
||
+ && MIPS_ELF_READONLY_SECTION (sec)
|
||
+ && !((r_type == R_MIPS_32 || r_type == R_MIPS_64)
|
||
+ && strcmp(sec->name, ".eh_frame") == 0))
|
||
+ {
|
||
+ /* We tell the dynamic linker that there are
|
||
+ relocations against the text segment. */
|
||
+ info->flags |= DF_TEXTREL;
|
||
+ info->callbacks->warning
|
||
+ (info,
|
||
+ _("relocation emitted against readonly section"),
|
||
+ NULL, abfd, sec, rel->r_offset);
|
||
+ }
|
||
}
|
||
else
|
||
{
|
||
@@ -9307,6 +9327,7 @@
|
||
/* Make sure we know what is going on here. */
|
||
BFD_ASSERT (dynobj != NULL
|
||
&& (h->needs_plt
|
||
+ || h->type == STT_GNU_IFUNC
|
||
|| h->is_weakalias
|
||
|| (h->def_dynamic
|
||
&& h->ref_regular
|
||
diff -rNU3 a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c
|
||
--- a/bfd/elfxx-sparc.c 2021-03-30 23:12:40.144559933 -0300
|
||
+++ b/bfd/elfxx-sparc.c 2021-03-30 17:47:59.682219000 -0300
|
||
@@ -3565,6 +3565,23 @@
|
||
tls_type = _bfd_sparc_elf_hash_entry (h)->tls_type;
|
||
else if (local_got_offsets)
|
||
tls_type = _bfd_sparc_elf_local_got_tls_type (input_bfd) [r_symndx];
|
||
+ else if (h != NULL)
|
||
+ {
|
||
+ tls_type = _bfd_sparc_elf_hash_entry(h)->tls_type;
|
||
+ if (!bfd_link_dll (info)
|
||
+ && h->dynindx == -1
|
||
+ && tls_type == GOT_TLS_IE)
|
||
+ switch (SPARC_ELF_R_TYPE (rel->r_info))
|
||
+ {
|
||
+ case R_SPARC_TLS_GD_HI22:
|
||
+ case R_SPARC_TLS_IE_HI22:
|
||
+ r_type = R_SPARC_TLS_LE_HIX22;
|
||
+ break;
|
||
+ default:
|
||
+ r_type = R_SPARC_TLS_LE_LOX10;
|
||
+ break;
|
||
+ }
|
||
+ }
|
||
else
|
||
tls_type = GOT_UNKNOWN;
|
||
if (tls_type == GOT_TLS_IE)
|
||
@@ -3746,6 +3763,8 @@
|
||
tls_type = _bfd_sparc_elf_hash_entry (h)->tls_type;
|
||
else if (local_got_offsets)
|
||
tls_type = _bfd_sparc_elf_local_got_tls_type (input_bfd) [r_symndx];
|
||
+ else if (h != NULL)
|
||
+ tls_type = _bfd_sparc_elf_hash_entry(h)->tls_type;
|
||
else
|
||
tls_type = GOT_UNKNOWN;
|
||
/* GD -> IE or LE */
|
||
diff -rNU3 a/bfd/i386netbsd.c b/bfd/i386netbsd.c
|
||
--- a/bfd/i386netbsd.c 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/bfd/i386netbsd.c 2021-03-30 17:47:59.688886000 -0300
|
||
@@ -0,0 +1,38 @@
|
||
+/* BFD back-end for NetBSD/386 a.out-ish binaries.
|
||
+ Copyright (C) 1990-2016 Free Software Foundation, Inc.
|
||
+
|
||
+ This file is part of BFD, the Binary File Descriptor library.
|
||
+
|
||
+ 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 3 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 BYTES_IN_WORD 4
|
||
+#undef TARGET_IS_BIG_ENDIAN_P
|
||
+
|
||
+#define TARGET_PAGE_SIZE 4096
|
||
+#define SEGMENT_SIZE TARGET_PAGE_SIZE
|
||
+
|
||
+#define DEFAULT_ARCH bfd_arch_i386
|
||
+#define DEFAULT_MID M_386_NETBSD
|
||
+
|
||
+/* Do not "beautify" the CONCAT* macro args. Traditional C will not
|
||
+ remove whitespace added here, and thus will fail to concatenate
|
||
+ the tokens. */
|
||
+#define MY(OP) CONCAT2 (i386_aout_nbsd_,OP)
|
||
+
|
||
+/* This needs to start with a.out so GDB knows it is an a.out variant. */
|
||
+#define TARGETNAME "a.out-i386-netbsd"
|
||
+
|
||
+#include "netbsd.h"
|
||
diff -rNU3 a/bfd/libbfd.h b/bfd/libbfd.h
|
||
--- a/bfd/libbfd.h 2021-03-30 23:12:40.144559933 -0300
|
||
+++ b/bfd/libbfd.h 2021-03-30 17:47:59.688886000 -0300
|
||
@@ -2721,6 +2721,7 @@
|
||
"BFD_RELOC_XC16X_SEG",
|
||
"BFD_RELOC_XC16X_SOF",
|
||
"BFD_RELOC_VAX_GLOB_DAT",
|
||
+ "BFD_RELOC_VAX_GLOB_REF",
|
||
"BFD_RELOC_VAX_JMP_SLOT",
|
||
"BFD_RELOC_VAX_RELATIVE",
|
||
"BFD_RELOC_MT_PC16",
|
||
diff -rNU3 a/bfd/Makefile.am b/bfd/Makefile.am
|
||
--- a/bfd/Makefile.am 2021-03-30 23:12:40.087893265 -0300
|
||
+++ b/bfd/Makefile.am 2021-03-30 17:47:59.498886000 -0300
|
||
@@ -363,6 +363,7 @@
|
||
i386bsd.lo \
|
||
i386lynx.lo \
|
||
i386msdos.lo \
|
||
+ i386netbsd.lo \
|
||
mach-o.lo \
|
||
mach-o-i386.lo \
|
||
mach-o-arm.lo \
|
||
@@ -499,6 +500,7 @@
|
||
i386bsd.c \
|
||
i386lynx.c \
|
||
i386msdos.c \
|
||
+ i386netbsd.c \
|
||
mach-o.c \
|
||
mach-o-i386.c \
|
||
mach-o-arm.c \
|
||
diff -rNU3 a/bfd/Makefile.in b/bfd/Makefile.in
|
||
--- a/bfd/Makefile.in 2021-03-30 23:12:40.087893265 -0300
|
||
+++ b/bfd/Makefile.in 2021-03-30 17:47:59.498886000 -0300
|
||
@@ -565,6 +565,7 @@
|
||
cpu-nfp.lo \
|
||
cpu-nios2.lo \
|
||
cpu-ns32k.lo \
|
||
+ cpu-openrisc.lo \
|
||
cpu-or1k.lo \
|
||
cpu-pdp11.lo \
|
||
cpu-pj.lo \
|
||
@@ -649,6 +650,7 @@
|
||
cpu-nds32.c \
|
||
cpu-nfp.c \
|
||
cpu-ns32k.c \
|
||
+ cpu-openrisc.c \
|
||
cpu-nios2.c \
|
||
cpu-or1k.c \
|
||
cpu-pdp11.c \
|
||
@@ -695,6 +697,7 @@
|
||
coff-go32.lo \
|
||
coff-i386.lo \
|
||
coff-mips.lo \
|
||
+ coff-or1k.lo \
|
||
coff-rs6000.lo \
|
||
coff-sh.lo \
|
||
coff-stgo32.lo \
|
||
@@ -758,6 +761,7 @@
|
||
elf32-mt.lo \
|
||
elf32-nds32.lo \
|
||
elf32-nios2.lo \
|
||
+ elf32-openrisc.lo \
|
||
elf32-or1k.lo \
|
||
elf32-pj.lo \
|
||
elf32-ppc.lo \
|
||
@@ -788,6 +792,7 @@
|
||
i386bsd.lo \
|
||
i386lynx.lo \
|
||
i386msdos.lo \
|
||
+ i386netbsd.lo \
|
||
mach-o.lo \
|
||
mach-o-i386.lo \
|
||
mach-o-arm.lo \
|
||
@@ -831,6 +836,7 @@
|
||
coff-go32.c \
|
||
coff-i386.c \
|
||
coff-mips.c \
|
||
+ coff-or1k.c \
|
||
coff-rs6000.c \
|
||
coff-sh.c \
|
||
coff-stgo32.c \
|
||
@@ -894,6 +900,7 @@
|
||
elf32-mt.c \
|
||
elf32-nds32.c \
|
||
elf32-nios2.c \
|
||
+ elf32-openrisc.c \
|
||
elf32-or1k.c \
|
||
elf32-pj.c \
|
||
elf32-ppc.c \
|
||
@@ -924,6 +931,7 @@
|
||
i386bsd.c \
|
||
i386lynx.c \
|
||
i386msdos.c \
|
||
+ i386netbsd.c \
|
||
mach-o.c \
|
||
mach-o-i386.c \
|
||
mach-o-arm.c \
|
||
@@ -1315,6 +1323,7 @@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-go32.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-i386.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-mips.Plo@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-or1k.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-rs6000.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-sh.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/coff-stgo32.Plo@am__quote@
|
||
@@ -1379,6 +1388,7 @@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nfp.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nios2.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-ns32k.Plo@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-openrisc.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-or1k.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-pdp11.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-pj.Plo@am__quote@
|
||
@@ -1465,8 +1475,10 @@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-moxie.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-msp430.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-mt.Plo@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-or1k.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-nds32.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-nios2.Plo@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-openrisc.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-or1k.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-pj.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32-ppc.Plo@am__quote@
|
||
@@ -1527,6 +1539,7 @@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386bsd.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386lynx.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386msdos.Plo@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/i386netbsd.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ihex.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/irix-core.Plo@am__quote@
|
||
diff -rNU3 a/bfd/reloc.c b/bfd/reloc.c
|
||
--- a/bfd/reloc.c 2021-03-30 23:12:40.144559933 -0300
|
||
+++ b/bfd/reloc.c 2021-03-30 17:47:59.782219000 -0300
|
||
@@ -1711,6 +1711,17 @@
|
||
Relocations used by 68K ELF.
|
||
|
||
ENUM
|
||
+ BFD_RELOC_VAX_GLOB_DAT
|
||
+ENUMX
|
||
+ BFD_RELOC_VAX_GLOB_REF
|
||
+ENUMX
|
||
+ BFD_RELOC_VAX_JMP_SLOT
|
||
+ENUMX
|
||
+ BFD_RELOC_VAX_RELATIVE
|
||
+ENUMDOC
|
||
+ Relocations used by VAX ELF.
|
||
+
|
||
+ENUM
|
||
BFD_RELOC_32_BASEREL
|
||
ENUMX
|
||
BFD_RELOC_16_BASEREL
|
||
diff -rNU3 a/bfd/targets.c b/bfd/targets.c
|
||
--- a/bfd/targets.c 2021-03-30 23:12:40.151226599 -0300
|
||
+++ b/bfd/targets.c 2021-03-30 17:47:59.782219000 -0300
|
||
@@ -727,6 +727,7 @@
|
||
extern const bfd_target i386_aout_vec;
|
||
extern const bfd_target i386_aout_bsd_vec;
|
||
extern const bfd_target i386_aout_lynx_vec;
|
||
+extern const bfd_target i386_aout_nbsd_vec;
|
||
extern const bfd_target i386_coff_vec;
|
||
extern const bfd_target i386_coff_go32_vec;
|
||
extern const bfd_target i386_coff_go32stubbed_vec;
|
||
diff -rNU3 a/binutils/bucomm.c b/binutils/bucomm.c
|
||
--- a/binutils/bucomm.c 2021-03-30 23:12:40.151226599 -0300
|
||
+++ b/binutils/bucomm.c 2021-03-30 17:47:59.825553000 -0300
|
||
@@ -619,7 +619,14 @@
|
||
else if (S_ISDIR (statbuf.st_mode))
|
||
non_fatal (_("Warning: '%s' is a directory"), file_name);
|
||
else if (! S_ISREG (statbuf.st_mode))
|
||
- non_fatal (_("Warning: '%s' is not an ordinary file"), file_name);
|
||
+ {
|
||
+ if (!S_ISCHR(statbuf.st_mode))
|
||
+ {
|
||
+ non_fatal (_("Warning: '%s' is not an ordinary file"), file_name);
|
||
+ return 0;
|
||
+ }
|
||
+ return statbuf.st_size ? statbuf.st_size : 1;
|
||
+ }
|
||
else if (statbuf.st_size < 0)
|
||
non_fatal (_("Warning: '%s' has negative size, probably it is too large"),
|
||
file_name);
|
||
diff -rNU3 a/binutils/doc/addr2line.1 b/binutils/doc/addr2line.1
|
||
--- a/binutils/doc/addr2line.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/addr2line.1 2021-03-30 17:47:59.835553000 -0300
|
||
@@ -0,0 +1,349 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.SH "NAME"
|
||
+addr2line \- convert addresses into file names and line numbers
|
||
+.SH "SYNOPSIS"
|
||
+.IX Header "SYNOPSIS"
|
||
+addr2line [\fB\-a\fR|\fB\-\-addresses\fR]
|
||
+ [\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
|
||
+ [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]]
|
||
+ [\fB\-r\fR|\fB\-\-no\-recurse\-limit\fR]
|
||
+ [\fB\-R\fR|\fB\-\-recurse\-limit\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\-p\fR|\fB\-\-pretty\-print\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. By default
|
||
+each input address generates one line of output.
|
||
+.PP
|
||
+Two options can generate additional lines before each
|
||
+\&\fB\s-1FILENAME:LINENO\s0\fR line (in that order).
|
||
+.PP
|
||
+If the \fB\-a\fR option is used then a line with the input address
|
||
+is displayed.
|
||
+.PP
|
||
+If the \fB\-f\fR option is used, then a line with the
|
||
+\&\fB\s-1FUNCTIONNAME\s0\fR is displayed. This is the name of the function
|
||
+containing the address.
|
||
+.PP
|
||
+One option can generate additional lines after the
|
||
+\&\fB\s-1FILENAME:LINENO\s0\fR line.
|
||
+.PP
|
||
+If the \fB\-i\fR option is used and the code at the given address is
|
||
+present there because of inlining by the compiler then additional
|
||
+lines are displayed afterwards. One or two extra lines (if the
|
||
+\&\fB\-f\fR option is used) are displayed for each inlined function.
|
||
+.PP
|
||
+Alternatively if the \fB\-p\fR option is used then each input
|
||
+address generates a single, long, output line containing the address,
|
||
+the function name, the file name and the line number. If the
|
||
+\&\fB\-i\fR option has also been used then any inlined functions will
|
||
+be displayed in the same manner, but on separate lines, and prefixed
|
||
+by the text \fB(inlined by)\fR.
|
||
+.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\-a\fR" 4
|
||
+.IX Item "-a"
|
||
+.PD 0
|
||
+.IP "\fB\-\-addresses\fR" 4
|
||
+.IX Item "--addresses"
|
||
+.PD
|
||
+Display the address before the function name, file and line number
|
||
+information. The address is printed with a \fB0x\fR prefix to easily
|
||
+identify it.
|
||
+.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\-p\fR" 4
|
||
+.IX Item "-p"
|
||
+.PD 0
|
||
+.IP "\fB\-\-pretty\-print\fR" 4
|
||
+.IX Item "--pretty-print"
|
||
+.PD
|
||
+Make the output more human friendly: each location are printed on one line.
|
||
+If option \fB\-i\fR is specified, lines for all enclosing scopes are
|
||
+prefixed with \fB(inlined by)\fR.
|
||
+.IP "\fB\-r\fR" 4
|
||
+.IX Item "-r"
|
||
+.PD 0
|
||
+.IP "\fB\-R\fR" 4
|
||
+.IX Item "-R"
|
||
+.IP "\fB\-\-recurse\-limit\fR" 4
|
||
+.IX Item "--recurse-limit"
|
||
+.IP "\fB\-\-no\-recurse\-limit\fR" 4
|
||
+.IX Item "--no-recurse-limit"
|
||
+.IP "\fB\-\-recursion\-limit\fR" 4
|
||
+.IX Item "--recursion-limit"
|
||
+.IP "\fB\-\-no\-recursion\-limit\fR" 4
|
||
+.IX Item "--no-recursion-limit"
|
||
+.PD
|
||
+Enables or disables a limit on the amount of recursion performed
|
||
+whilst demangling strings. Since the name mangling formats allow for
|
||
+an inifinite level of recursion it is possible to create strings whose
|
||
+decoding will exhaust the amount of stack space available on the host
|
||
+machine, triggering a memory fault. The limit tries to prevent this
|
||
+from happening by restricting recursion to 2048 levels of nesting.
|
||
+.Sp
|
||
+The default is for this limit to be enabled, but disabling it may be
|
||
+necessary in order to demangle truly complicated names. Note however
|
||
+that if the recursion limit is disabled then stack exhaustion is
|
||
+possible and any bug reports about such an event will be rejected.
|
||
+.Sp
|
||
+The \fB\-r\fR option is a synonym for the
|
||
+\&\fB\-\-no\-recurse\-limit\fR option. The \fB\-R\fR option is a
|
||
+synonym for the \fB\-\-recurse\-limit\fR option.
|
||
+.Sp
|
||
+Note this option is only effective if the \fB\-C\fR or
|
||
+\&\fB\-\-demangle\fR option has been enabled.
|
||
+.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\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/ar.1 b/binutils/doc/ar.1
|
||
--- a/binutils/doc/ar.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/ar.1 2021-03-30 17:47:59.835553000 -0300
|
||
@@ -0,0 +1,523 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.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] [\fB\-\-plugin\fR \fIname\fR] [\fB\-\-target\fR \fIbfdname\fR] [\fB\-\-output\fR \fIdirname\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 can optionally create a \fIthin\fR archive,
|
||
+which contains a symbol index and references to the original copies
|
||
+of the member files of the archive. This is useful for building
|
||
+libraries for use within a local build tree, where the relocatable
|
||
+objects are expected to remain available, and copying the contents of
|
||
+each object would only waste time and space.
|
||
+.PP
|
||
+An archive can either be \fIthin\fR or it can be normal. It cannot
|
||
+be both at the same time. Once an archive is created its format
|
||
+cannot be changed without first deleting it and then creating a new
|
||
+archive in its place.
|
||
+.PP
|
||
+Thin archives are also \fIflattened\fR, so that adding one thin
|
||
+archive to another thin archive does not nest it, as would happen with
|
||
+a normal archive. Instead the elements of the first archive are added
|
||
+individually to the second archive.
|
||
+.PP
|
||
+The paths to the elements of the archive are stored relative to the
|
||
+archive itself.
|
||
+.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, implementations of
|
||
+\&\fBar\fR have the option of not updating the archive's symbol
|
||
+table if one exists. Too many different systems however assume that
|
||
+symbol tables are always up-to-date, so \s-1GNU\s0 \fBar\fR will
|
||
+rebuild the table even with a quick append.
|
||
+.Sp
|
||
+Note \- \s-1GNU\s0 \fBar\fR treats the command \fBqs\fR as a
|
||
+synonym for \fBr\fR \- replacing already existing files in the
|
||
+archive and appending new ones at the end.
|
||
+.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 "\fBs\fR" 4
|
||
+.IX Item "s"
|
||
+Add an index to the archive, or update it if it already exists. Note
|
||
+this command is an exception to the rule that there can only be one
|
||
+command letter, as it is possible to use it as either a command or a
|
||
+modifier. In either case it does the same thing.
|
||
+.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, but if the modifier
|
||
+\&\fBO\fR is specified, then the corresponding offset of the member is also
|
||
+displayed. Finally, in order to see the modes (permissions), timestamp,
|
||
+owner, group, and size the \fBv\fR modifier should be included.
|
||
+.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.
|
||
+.Sp
|
||
+Files cannot be extracted from a thin archive, and there are
|
||
+restrictions on extracting from archives created with \fBP\fR: The
|
||
+paths must not be absolute, may not contain \f(CW\*(C`..\*(C'\fR, and any
|
||
+subdirectories in the paths must exist. If it is desired to avoid
|
||
+these restrictions then used the \fB\-\-output\fR option to specify
|
||
+an output directory.
|
||
+.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 "\fBD\fR" 4
|
||
+.IX Item "D"
|
||
+Operate in \fIdeterministic\fR mode. When adding files and the archive
|
||
+index use zero for UIDs, GIDs, timestamps, and use consistent file modes
|
||
+for all files. When this option is used, if \fBar\fR is used with
|
||
+identical options and identical input files, multiple runs will create
|
||
+identical output files regardless of the input files' owners, groups,
|
||
+file modes, or modification times.
|
||
+.Sp
|
||
+If \fIbinutils\fR was configured with
|
||
+\&\fB\-\-enable\-deterministic\-archives\fR, then this mode is on by default.
|
||
+It can be disabled with the \fBU\fR modifier, below.
|
||
+.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 "\fBO\fR" 4
|
||
+.IX Item "O"
|
||
+Display member offsets inside the archive. Use together with the \fBt\fR
|
||
+option.
|
||
+.IP "\fBP\fR" 4
|
||
+.IX Item "P"
|
||
+Use the full path name when matching or storing names in the archive.
|
||
+Archives created with full path names are not \s-1POSIX\s0 compliant, and
|
||
+thus may not work with tools other than up to date \s-1GNU\s0 tools.
|
||
+Modifying such archives with \s-1GNU\s0 \fBar\fR without using
|
||
+\&\fBP\fR will remove the full path names unless the archive is a
|
||
+thin archive. Note that \fBP\fR may be useful when adding files to
|
||
+a thin archive since \fBr\fR without \fBP\fR ignores the path
|
||
+when choosing which element to replace. Thus
|
||
+.Sp
|
||
+.Vb 1
|
||
+\& ar rcST archive.a subdir/file1 subdir/file2 file1
|
||
+.Ve
|
||
+.Sp
|
||
+will result in the first \f(CW\*(C`subdir/file1\*(C'\fR being replaced with
|
||
+\&\f(CW\*(C`file1\*(C'\fR from the current directory. Adding \fBP\fR will
|
||
+prevent this replacement.
|
||
+.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 "\fBT\fR" 4
|
||
+.IX Item "T"
|
||
+Make the specified \fIarchive\fR a \fIthin\fR archive. If it already
|
||
+exists and is a regular archive, the existing members must be present
|
||
+in the same directory as \fIarchive\fR.
|
||
+.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 "\fBU\fR" 4
|
||
+.IX Item "U"
|
||
+Do \fInot\fR operate in \fIdeterministic\fR mode. This is the inverse
|
||
+of the \fBD\fR modifier, above: added files and the archive index will
|
||
+get their actual \s-1UID, GID,\s0 timestamp, and file mode values.
|
||
+.Sp
|
||
+This is the default unless \fIbinutils\fR was configured with
|
||
+\&\fB\-\-enable\-deterministic\-archives\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
|
||
+The \fBar\fR program also supports some command-line options which
|
||
+are neither modifiers nor actions, but which do change its behaviour
|
||
+in specific ways:
|
||
+.IP "\fB\-\-help\fR" 4
|
||
+.IX Item "--help"
|
||
+Displays the list of command-line options supported by \fBar\fR
|
||
+and then exits.
|
||
+.IP "\fB\-\-version\fR" 4
|
||
+.IX Item "--version"
|
||
+Displays the version information of \fBar\fR and then exits.
|
||
+.IP "\fB\-X32_64\fR" 4
|
||
+.IX Item "-X32_64"
|
||
+\&\fBar\fR ignores an initial option spelled \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\-\-plugin\fR \fIname\fR" 4
|
||
+.IX Item "--plugin name"
|
||
+The optional command-line switch \fB\-\-plugin\fR \fIname\fR causes
|
||
+\&\fBar\fR to load the plugin called \fIname\fR which adds support
|
||
+for more file formats, including object files with link-time
|
||
+optimization information.
|
||
+.Sp
|
||
+This option is only available if the toolchain has been built with
|
||
+plugin support enabled.
|
||
+.Sp
|
||
+If \fB\-\-plugin\fR is not provided, but plugin support has been
|
||
+enabled then \fBar\fR iterates over the files in
|
||
+\&\fI${libdir}/bfd\-plugins\fR in alphabetic order and the first
|
||
+plugin that claims the object in question is used.
|
||
+.Sp
|
||
+Please note that this plugin search directory is \fInot\fR the one
|
||
+used by \fBld\fR's \fB\-plugin\fR option. In order to make
|
||
+\&\fBar\fR use the linker plugin it must be copied into the
|
||
+\&\fI${libdir}/bfd\-plugins\fR directory. For \s-1GCC\s0 based compilations
|
||
+the linker plugin is called \fIliblto_plugin.so.0.0.0\fR. For Clang
|
||
+based compilations it is called \fILLVMgold.so\fR. The \s-1GCC\s0 plugin
|
||
+is always backwards compatible with earlier versions, so it is
|
||
+sufficient to just copy the newest one.
|
||
+.IP "\fB\-\-target\fR \fItarget\fR" 4
|
||
+.IX Item "--target target"
|
||
+The optional command-line switch \fB\-\-target\fR \fIbfdname\fR
|
||
+specifies that the archive members are in an object code format
|
||
+different from your system's default format. See
|
||
+.IP "\fB\-\-output\fR \fIdirname\fR" 4
|
||
+.IX Item "--output dirname"
|
||
+The \fB\-\-output\fR option can be used to specify a path to a
|
||
+directory into which archive members should be extracted. If this
|
||
+option is not specified then the current directory will be used.
|
||
+.Sp
|
||
+Note \- although the presence of this option does imply a \fBx\fR
|
||
+extraction operation that option must still be included on the command
|
||
+line.
|
||
+.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"
|
||
+\&\fBnm\fR\|(1), \fBranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||
+.SH "COPYRIGHT"
|
||
+.IX Header "COPYRIGHT"
|
||
+Copyright (c) 1991\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/cxxfilt.man b/binutils/doc/cxxfilt.man
|
||
--- a/binutils/doc/cxxfilt.man 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/cxxfilt.man 2021-03-30 17:47:59.835553000 -0300
|
||
@@ -0,0 +1,376 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.SH "NAME"
|
||
+cxxfilt \- demangle C++ and Java symbols
|
||
+.SH "SYNOPSIS"
|
||
+.IX Header "SYNOPSIS"
|
||
+c++filt [\fB\-_\fR|\fB\-\-strip\-underscore\fR]
|
||
+ [\fB\-n\fR|\fB\-\-no\-strip\-underscore\fR]
|
||
+ [\fB\-p\fR|\fB\-\-no\-params\fR]
|
||
+ [\fB\-t\fR|\fB\-\-types\fR]
|
||
+ [\fB\-i\fR|\fB\-\-no\-verbose\fR]
|
||
+ [\fB\-r\fR|\fB\-\-no\-recurse\-limit\fR]
|
||
+ [\fB\-R\fR|\fB\-\-recurse\-limit\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 separate 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", i.e., 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. For example:
|
||
+.PP
|
||
+.Vb 1
|
||
+\& .type _Z1fv, @function
|
||
+.Ve
|
||
+.SH "OPTIONS"
|
||
+.IX Header "OPTIONS"
|
||
+.IP "\fB\-_\fR" 4
|
||
+.IX Item "-_"
|
||
+.PD 0
|
||
+.IP "\fB\-\-strip\-underscore\fR" 4
|
||
+.IX Item "--strip-underscore"
|
||
+.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\-n\fR" 4
|
||
+.IX Item "-n"
|
||
+.PD 0
|
||
+.IP "\fB\-\-no\-strip\-underscore\fR" 4
|
||
+.IX Item "--no-strip-underscore"
|
||
+.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. For example,
|
||
+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\-r\fR" 4
|
||
+.IX Item "-r"
|
||
+.PD 0
|
||
+.IP "\fB\-R\fR" 4
|
||
+.IX Item "-R"
|
||
+.IP "\fB\-\-recurse\-limit\fR" 4
|
||
+.IX Item "--recurse-limit"
|
||
+.IP "\fB\-\-no\-recurse\-limit\fR" 4
|
||
+.IX Item "--no-recurse-limit"
|
||
+.IP "\fB\-\-recursion\-limit\fR" 4
|
||
+.IX Item "--recursion-limit"
|
||
+.IP "\fB\-\-no\-recursion\-limit\fR" 4
|
||
+.IX Item "--no-recursion-limit"
|
||
+.PD
|
||
+Enables or disables a limit on the amount of recursion performed
|
||
+whilst demangling strings. Since the name mangling formats allow for
|
||
+an inifinite level of recursion it is possible to create strings whose
|
||
+decoding will exhaust the amount of stack space available on the host
|
||
+machine, triggering a memory fault. The limit tries to prevent this
|
||
+from happening by restricting recursion to 2048 levels of nesting.
|
||
+.Sp
|
||
+The default is for this limit to be enabled, but disabling it may be
|
||
+necessary in order to demangle truly complicated names. Note however
|
||
+that if the recursion limit is disabled then stack exhaustion is
|
||
+possible and any bug reports about such an event will be rejected.
|
||
+.Sp
|
||
+The \fB\-r\fR option is a synonym for the
|
||
+\&\fB\-\-no\-recurse\-limit\fR option. The \fB\-R\fR option is a
|
||
+synonym for the \fB\-\-recurse\-limit\fR option.
|
||
+.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 \*(C+\s0 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 \*(C+\s0 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\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/dlltool.1 b/binutils/doc/dlltool.1
|
||
--- a/binutils/doc/dlltool.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/dlltool.1 2021-03-30 17:47:59.838886000 -0300
|
||
@@ -0,0 +1,542 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.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\-y\fR|\fB\-\-output\-delaylib\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\-\-use\-nul\-prefixed\-import\-tables\fR]
|
||
+ [\fB\-I\fR|\fB\-\-identify\fR \fIlibrary-file-name\fR] [\fB\-\-identify\-strict\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]
|
||
+ [\fB\-\-no\-leading\-underscore\fR] [\fB\-\-leading\-underscore\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
|
||
+\&\fBasm()\fR operator:
|
||
+.PP
|
||
+.Vb 2
|
||
+\& asm (".section .drectve");
|
||
+\& asm (".ascii \e"\-export:my_func\e"");
|
||
+\&
|
||
+\& 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 (an `import
|
||
+library'). 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
|
||
+If the \fB\-y\fR option is specified, dlltool generates a delay-import
|
||
+library that can be used instead of the normal import library to allow
|
||
+a program to link to the dll only as soon as an imported function is
|
||
+called for the first time. The resulting executable will need to be
|
||
+linked to the static delayimp library containing _\|\fB_delayLoadHelper2()\fR,
|
||
+which in turn will import LoadLibraryA and GetProcAddress from kernel32.
|
||
+.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
|
||
+.PP
|
||
+\&\fBdlltool\fR may also be used to query an existing import library
|
||
+to determine the name of the \s-1DLL\s0 to which it is associated. See the
|
||
+description of the \fB\-I\fR or \fB\-\-identify\fR option.
|
||
+.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\-y\fR \fIfilename\fR" 4
|
||
+.IX Item "-y filename"
|
||
+.PD 0
|
||
+.IP "\fB\-\-output\-delaylib\fR \fIfilename\fR" 4
|
||
+.IX Item "--output-delaylib filename"
|
||
+.PD
|
||
+Specifies the name of the delay-import 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\-\-no\-leading\-underscore\fR" 4
|
||
+.IX Item "--no-leading-underscore"
|
||
+.PD 0
|
||
+.IP "\fB\-\-leading\-underscore\fR" 4
|
||
+.IX Item "--leading-underscore"
|
||
+.PD
|
||
+Specifies whether standard symbol should be forced to be prefixed, or
|
||
+not.
|
||
+.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 \fB@<number>\fR suffixes should be omitted from the names
|
||
+of stdcall functions that will be imported from the \s-1DLL.\s0 This is
|
||
+useful when creating an import library for a \s-1DLL\s0 which exports stdcall
|
||
+functions but without the usual \fB@<number>\fR symbol name suffix.
|
||
+.Sp
|
||
+This does not change the naming of symbols provided by the import library
|
||
+to programs linked against it, but only the entries in the import table
|
||
+(ie the .idata section).
|
||
+.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\-\-use\-nul\-prefixed\-import\-tables\fR" 4
|
||
+.IX Item "--use-nul-prefixed-import-tables"
|
||
+Specifies that when \fBdlltool\fR is creating the exports and library
|
||
+files it should prefix the \f(CW\*(C`.idata4\*(C'\fR and \f(CW\*(C`.idata5\*(C'\fR by zero an
|
||
+element. This emulates old gnu import library generation of
|
||
+\&\f(CW\*(C`dlltool\*(C'\fR. By default this option is turned off.
|
||
+.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 \fIfilename\fR" 4
|
||
+.IX Item "-I filename"
|
||
+.PD 0
|
||
+.IP "\fB\-\-identify\fR \fIfilename\fR" 4
|
||
+.IX Item "--identify filename"
|
||
+.PD
|
||
+Specifies that \fBdlltool\fR should inspect the import library
|
||
+indicated by \fIfilename\fR and report, on \f(CW\*(C`stdout\*(C'\fR, the name(s)
|
||
+of the associated \s-1DLL\s0(s). This can be performed in addition to any
|
||
+other operations indicated by the other options and arguments.
|
||
+\&\fBdlltool\fR fails if the import library does not exist or is not
|
||
+actually an import library. See also \fB\-\-identify\-strict\fR.
|
||
+.IP "\fB\-\-identify\-strict\fR" 4
|
||
+.IX Item "--identify-strict"
|
||
+Modifies the behavior of the \fB\-\-identify\fR option, such
|
||
+that an error is reported if \fIfilename\fR is associated with
|
||
+more than one \s-1DLL.\s0
|
||
+.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\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/elfedit.1 b/binutils/doc/elfedit.1
|
||
--- a/binutils/doc/elfedit.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/elfedit.1 2021-03-30 17:47:59.838886000 -0300
|
||
@@ -0,0 +1,260 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "ELFEDIT 1"
|
||
+.TH ELFEDIT 1 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.SH "NAME"
|
||
+elfedit \- update ELF header and program property of ELF files
|
||
+.SH "SYNOPSIS"
|
||
+.IX Header "SYNOPSIS"
|
||
+elfedit [\fB\-\-input\-mach=\fR\fImachine\fR]
|
||
+ [\fB\-\-input\-type=\fR\fItype\fR]
|
||
+ [\fB\-\-input\-osabi=\fR\fIosabi\fR]
|
||
+ \fB\-\-output\-mach=\fR\fImachine\fR
|
||
+ \fB\-\-output\-type=\fR\fItype\fR
|
||
+ \fB\-\-output\-osabi=\fR\fIosabi\fR
|
||
+ \fB\-\-enable\-x86\-feature=\fR\fIfeature\fR
|
||
+ \fB\-\-disable\-x86\-feature=\fR\fIfeature\fR
|
||
+ [\fB\-v\fR|\fB\-\-version\fR]
|
||
+ [\fB\-h\fR|\fB\-\-help\fR]
|
||
+ \fIelffile\fR...
|
||
+.SH "DESCRIPTION"
|
||
+.IX Header "DESCRIPTION"
|
||
+\&\fBelfedit\fR updates the \s-1ELF\s0 header and program property of \s-1ELF\s0
|
||
+files which have the matching \s-1ELF\s0 machine and file types. The options
|
||
+control how and which fields in the \s-1ELF\s0 header and program property
|
||
+should be updated.
|
||
+.PP
|
||
+\&\fIelffile\fR... are the \s-1ELF\s0 files to be updated. 32\-bit and
|
||
+64\-bit \s-1ELF\s0 files are supported, as are archives containing \s-1ELF\s0 files.
|
||
+.SH "OPTIONS"
|
||
+.IX Header "OPTIONS"
|
||
+The long and short forms of options, shown here as alternatives, are
|
||
+equivalent. At least one of the \fB\-\-output\-mach\fR,
|
||
+\&\fB\-\-output\-type\fR, \fB\-\-output\-osabi\fR,
|
||
+\&\fB\-\-enable\-x86\-feature\fR and \fB\-\-disable\-x86\-feature\fR
|
||
+options must be given.
|
||
+.IP "\fB\-\-input\-mach=\fR\fImachine\fR" 4
|
||
+.IX Item "--input-mach=machine"
|
||
+Set the matching input \s-1ELF\s0 machine type to \fImachine\fR. If
|
||
+\&\fB\-\-input\-mach\fR isn't specified, it will match any \s-1ELF\s0
|
||
+machine types.
|
||
+.Sp
|
||
+The supported \s-1ELF\s0 machine types are, \fIi386\fR, \fI\s-1IAMCU\s0\fR, \fIL1OM\fR,
|
||
+\&\fIK1OM\fR and \fIx86\-64\fR.
|
||
+.IP "\fB\-\-output\-mach=\fR\fImachine\fR" 4
|
||
+.IX Item "--output-mach=machine"
|
||
+Change the \s-1ELF\s0 machine type in the \s-1ELF\s0 header to \fImachine\fR. The
|
||
+supported \s-1ELF\s0 machine types are the same as \fB\-\-input\-mach\fR.
|
||
+.IP "\fB\-\-input\-type=\fR\fItype\fR" 4
|
||
+.IX Item "--input-type=type"
|
||
+Set the matching input \s-1ELF\s0 file type to \fItype\fR. If
|
||
+\&\fB\-\-input\-type\fR isn't specified, it will match any \s-1ELF\s0 file types.
|
||
+.Sp
|
||
+The supported \s-1ELF\s0 file types are, \fIrel\fR, \fIexec\fR and \fIdyn\fR.
|
||
+.IP "\fB\-\-output\-type=\fR\fItype\fR" 4
|
||
+.IX Item "--output-type=type"
|
||
+Change the \s-1ELF\s0 file type in the \s-1ELF\s0 header to \fItype\fR. The
|
||
+supported \s-1ELF\s0 types are the same as \fB\-\-input\-type\fR.
|
||
+.IP "\fB\-\-input\-osabi=\fR\fIosabi\fR" 4
|
||
+.IX Item "--input-osabi=osabi"
|
||
+Set the matching input \s-1ELF\s0 file \s-1OSABI\s0 to \fIosabi\fR. If
|
||
+\&\fB\-\-input\-osabi\fR isn't specified, it will match any \s-1ELF\s0 OSABIs.
|
||
+.Sp
|
||
+The supported \s-1ELF\s0 OSABIs are, \fInone\fR, \fI\s-1HPUX\s0\fR, \fINetBSD\fR,
|
||
+\&\fI\s-1GNU\s0\fR, \fILinux\fR (alias for \fI\s-1GNU\s0\fR),
|
||
+\&\fISolaris\fR, \fI\s-1AIX\s0\fR, \fIIrix\fR,
|
||
+\&\fIFreeBSD\fR, \fI\s-1TRU64\s0\fR, \fIModesto\fR, \fIOpenBSD\fR, \fIOpenVMS\fR,
|
||
+\&\fI\s-1NSK\s0\fR, \fI\s-1AROS\s0\fR and \fIFenixOS\fR.
|
||
+.IP "\fB\-\-output\-osabi=\fR\fIosabi\fR" 4
|
||
+.IX Item "--output-osabi=osabi"
|
||
+Change the \s-1ELF OSABI\s0 in the \s-1ELF\s0 header to \fIosabi\fR. The
|
||
+supported \s-1ELF OSABI\s0 are the same as \fB\-\-input\-osabi\fR.
|
||
+.IP "\fB\-\-enable\-x86\-feature=\fR\fIfeature\fR" 4
|
||
+.IX Item "--enable-x86-feature=feature"
|
||
+Set the \fIfeature\fR bit in program property in \fIexec\fR or \fIdyn\fR
|
||
+\&\s-1ELF\s0 files with machine types of \fIi386\fR or \fIx86\-64\fR. The
|
||
+supported features are, \fIibt\fR and \fIshstk\fR.
|
||
+.IP "\fB\-\-disable\-x86\-feature=\fR\fIfeature\fR" 4
|
||
+.IX Item "--disable-x86-feature=feature"
|
||
+Clear the \fIfeature\fR bit in program property in \fIexec\fR or
|
||
+\&\fIdyn\fR \s-1ELF\s0 files with machine types of \fIi386\fR or \fIx86\-64\fR.
|
||
+The supported features are the same as \fB\-\-enable\-x86\-feature\fR.
|
||
+.Sp
|
||
+Note: \fB\-\-enable\-x86\-feature\fR and \fB\-\-disable\-x86\-feature\fR
|
||
+are available only on hosts with \fBmmap\fR support.
|
||
+.IP "\fB\-v\fR" 4
|
||
+.IX Item "-v"
|
||
+.PD 0
|
||
+.IP "\fB\-\-version\fR" 4
|
||
+.IX Item "--version"
|
||
+.PD
|
||
+Display the version number of \fBelfedit\fR.
|
||
+.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 \fBelfedit\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"
|
||
+\&\fBreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||
+.SH "COPYRIGHT"
|
||
+.IX Header "COPYRIGHT"
|
||
+Copyright (c) 1991\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/Makefile.am b/binutils/doc/Makefile.am
|
||
--- a/binutils/doc/Makefile.am 2021-03-30 23:12:40.154559932 -0300
|
||
+++ b/binutils/doc/Makefile.am 2021-03-30 17:47:59.835553000 -0300
|
||
@@ -58,6 +58,8 @@
|
||
|
||
# Man page generation from texinfo
|
||
addr2line.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_addr2line.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Daddr2line < $(binutils_TEXI) > addr2line.pod
|
||
-($(POD2MAN) addr2line.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -65,6 +67,8 @@
|
||
rm -f addr2line.pod
|
||
|
||
ar.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_ar.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dar < $(binutils_TEXI) > ar.pod
|
||
-($(POD2MAN) ar.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -72,6 +76,8 @@
|
||
rm -f ar.pod
|
||
|
||
dlltool.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_dlltool.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Ddlltool < $(binutils_TEXI) > dlltool.pod
|
||
-($(POD2MAN) dlltool.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -79,6 +85,8 @@
|
||
rm -f dlltool.pod
|
||
|
||
nm.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_nm.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dnm < $(binutils_TEXI) > nm.pod
|
||
-($(POD2MAN) nm.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -86,6 +94,8 @@
|
||
rm -f nm.pod
|
||
|
||
objcopy.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_objcopy.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dobjcopy < $(binutils_TEXI) > objcopy.pod
|
||
-($(POD2MAN) objcopy.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -93,6 +103,8 @@
|
||
rm -f objcopy.pod
|
||
|
||
objdump.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_objdump.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dobjdump < $(binutils_TEXI) > objdump.pod
|
||
-($(POD2MAN) objdump.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -100,6 +112,8 @@
|
||
rm -f objdump.pod
|
||
|
||
ranlib.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_ranlib.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dranlib < $(binutils_TEXI) > ranlib.pod
|
||
-($(POD2MAN) ranlib.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -107,6 +121,8 @@
|
||
rm -f ranlib.pod
|
||
|
||
readelf.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_readelf.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dreadelf < $(binutils_TEXI) > readelf.pod
|
||
-($(POD2MAN) readelf.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -114,6 +130,8 @@
|
||
rm -f readelf.pod
|
||
|
||
size.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_size.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dsize < $(binutils_TEXI) > size.pod
|
||
-($(POD2MAN) size.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -121,6 +139,8 @@
|
||
rm -f size.pod
|
||
|
||
strings.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_strings.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dstrings < $(binutils_TEXI) > strings.pod
|
||
-($(POD2MAN) strings.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -128,6 +148,8 @@
|
||
rm -f strings.pod
|
||
|
||
strip.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_strip.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dstrip < $(binutils_TEXI) > strip.pod
|
||
-($(POD2MAN) strip.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -142,6 +164,8 @@
|
||
rm -f elfedit.pod
|
||
|
||
windres.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_windres.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dwindres < $(binutils_TEXI) > windres.pod
|
||
-($(POD2MAN) windres.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -149,6 +173,8 @@
|
||
rm -f windres.pod
|
||
|
||
windmc.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_windmc.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dwindmc < $(binutils_TEXI) > windmc.pod
|
||
-($(POD2MAN) windmc.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -156,6 +182,8 @@
|
||
rm -f windmc.pod
|
||
|
||
cxxfilt.man: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_cxxfilt.man:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dcxxfilt < $(binutils_TEXI) > $(DEMANGLER_NAME).pod
|
||
-($(POD2MAN) $(DEMANGLER_NAME).pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
diff -rNU3 a/binutils/doc/Makefile.in b/binutils/doc/Makefile.in
|
||
--- a/binutils/doc/Makefile.in 2021-03-30 23:12:40.154559932 -0300
|
||
+++ b/binutils/doc/Makefile.in 2021-03-30 17:47:59.835553000 -0300
|
||
@@ -370,6 +370,7 @@
|
||
libexecdir = @libexecdir@
|
||
localedir = @localedir@
|
||
localstatedir = @localstatedir@
|
||
+lt_ECHO = @lt_ECHO@
|
||
mandir = @mandir@
|
||
mkdir_p = @mkdir_p@
|
||
oldincludedir = @oldincludedir@
|
||
@@ -471,6 +472,8 @@
|
||
-rm -rf .libs _libs
|
||
|
||
binutils.info: binutils.texi
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_binutils.info: binutils.texi
|
||
$(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
|
||
rm -rf $$backupdir && mkdir $$backupdir && \
|
||
if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
|
||
@@ -908,6 +911,8 @@
|
||
|
||
# Man page generation from texinfo
|
||
addr2line.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_addr2line.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Daddr2line < $(binutils_TEXI) > addr2line.pod
|
||
-($(POD2MAN) addr2line.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -915,6 +920,8 @@
|
||
rm -f addr2line.pod
|
||
|
||
ar.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_ar.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dar < $(binutils_TEXI) > ar.pod
|
||
-($(POD2MAN) ar.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -922,6 +929,8 @@
|
||
rm -f ar.pod
|
||
|
||
dlltool.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_dlltool.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Ddlltool < $(binutils_TEXI) > dlltool.pod
|
||
-($(POD2MAN) dlltool.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -929,6 +938,8 @@
|
||
rm -f dlltool.pod
|
||
|
||
nm.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_nm.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dnm < $(binutils_TEXI) > nm.pod
|
||
-($(POD2MAN) nm.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -936,6 +947,8 @@
|
||
rm -f nm.pod
|
||
|
||
objcopy.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_objcopy.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dobjcopy < $(binutils_TEXI) > objcopy.pod
|
||
-($(POD2MAN) objcopy.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -943,6 +956,8 @@
|
||
rm -f objcopy.pod
|
||
|
||
objdump.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_objdump.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dobjdump < $(binutils_TEXI) > objdump.pod
|
||
-($(POD2MAN) objdump.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -950,6 +965,8 @@
|
||
rm -f objdump.pod
|
||
|
||
ranlib.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_ranlib.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dranlib < $(binutils_TEXI) > ranlib.pod
|
||
-($(POD2MAN) ranlib.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -957,6 +974,8 @@
|
||
rm -f ranlib.pod
|
||
|
||
readelf.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_readelf.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dreadelf < $(binutils_TEXI) > readelf.pod
|
||
-($(POD2MAN) readelf.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -964,6 +983,8 @@
|
||
rm -f readelf.pod
|
||
|
||
size.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_size.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dsize < $(binutils_TEXI) > size.pod
|
||
-($(POD2MAN) size.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -971,6 +992,8 @@
|
||
rm -f size.pod
|
||
|
||
strings.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_strings.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dstrings < $(binutils_TEXI) > strings.pod
|
||
-($(POD2MAN) strings.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -978,6 +1001,8 @@
|
||
rm -f strings.pod
|
||
|
||
strip.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_strip.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dstrip < $(binutils_TEXI) > strip.pod
|
||
-($(POD2MAN) strip.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -985,6 +1010,8 @@
|
||
rm -f strip.pod
|
||
|
||
elfedit.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_elfedit.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Delfedit < $(binutils_TEXI) > elfedit.pod
|
||
-($(POD2MAN) elfedit.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -992,6 +1019,8 @@
|
||
rm -f elfedit.pod
|
||
|
||
windres.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_windres.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dwindres < $(binutils_TEXI) > windres.pod
|
||
-($(POD2MAN) windres.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -999,6 +1028,8 @@
|
||
rm -f windres.pod
|
||
|
||
windmc.1: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_windmc.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dwindmc < $(binutils_TEXI) > windmc.pod
|
||
-($(POD2MAN) windmc.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
@@ -1006,6 +1037,8 @@
|
||
rm -f windmc.pod
|
||
|
||
cxxfilt.man: $(binutils_TEXI)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_cxxfilt.man:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) -Dcxxfilt < $(binutils_TEXI) > $(DEMANGLER_NAME).pod
|
||
-($(POD2MAN) $(DEMANGLER_NAME).pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
|
||
diff -rNU3 a/binutils/doc/nm.1 b/binutils/doc/nm.1
|
||
--- a/binutils/doc/nm.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/nm.1 2021-03-30 17:47:59.838886000 -0300
|
||
@@ -0,0 +1,602 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.SH "NAME"
|
||
+nm \- list symbols from object files
|
||
+.SH "SYNOPSIS"
|
||
+.IX Header "SYNOPSIS"
|
||
+nm [\fB\-A\fR|\fB\-o\fR|\fB\-\-print\-file\-name\fR] [\fB\-a\fR|\fB\-\-debug\-syms\fR]
|
||
+ [\fB\-B\fR|\fB\-\-format=bsd\fR] [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]]
|
||
+ [\fB\-D\fR|\fB\-\-dynamic\fR] [\fB\-f\fR\fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
|
||
+ [\fB\-g\fR|\fB\-\-extern\-only\fR] [\fB\-h\fR|\fB\-\-help\fR]
|
||
+ [\fB\-l\fR|\fB\-\-line\-numbers\fR] [\fB\-\-inlines\fR]
|
||
+ [\fB\-n\fR|\fB\-v\fR|\fB\-\-numeric\-sort\fR]
|
||
+ [\fB\-P\fR|\fB\-\-portability\fR] [\fB\-p\fR|\fB\-\-no\-sort\fR]
|
||
+ [\fB\-r\fR|\fB\-\-reverse\-sort\fR] [\fB\-S\fR|\fB\-\-print\-size\fR]
|
||
+ [\fB\-s\fR|\fB\-\-print\-armap\fR] [\fB\-t\fR \fIradix\fR|\fB\-\-radix=\fR\fIradix\fR]
|
||
+ [\fB\-u\fR|\fB\-\-undefined\-only\fR] [\fB\-V\fR|\fB\-\-version\fR]
|
||
+ [\fB\-X 32_64\fR] [\fB\-\-defined\-only\fR] [\fB\-\-no\-demangle\fR]
|
||
+ [\fB\-\-plugin\fR \fIname\fR]
|
||
+ [\fB\-\-no\-recurse\-limit\fR|\fB\-\-recurse\-limit\fR]]
|
||
+ [\fB\-\-size\-sort\fR] [\fB\-\-special\-syms\fR]
|
||
+ [\fB\-\-synthetic\fR] [\fB\-\-with\-symbol\-versions\fR] [\fB\-\-target=\fR\fIbfdname\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
|
||
+usually local; if uppercase, the symbol is global (external). There
|
||
+are however a few lowercase symbols that are shown for special global
|
||
+symbols (\f(CW\*(C`u\*(C'\fR, \f(CW\*(C`v\*(C'\fR and \f(CW\*(C`w\*(C'\fR).
|
||
+.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"
|
||
+.PD 0
|
||
+.ie n .IP """b""" 4
|
||
+.el .IP "\f(CWb\fR" 4
|
||
+.IX Item "b"
|
||
+.PD
|
||
+The symbol is in the \s-1BSS\s0 data section. This section typically
|
||
+contains zero-initialized or uninitialized data, although the exact
|
||
+behavior is system dependent.
|
||
+.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"
|
||
+.PD 0
|
||
+.ie n .IP """d""" 4
|
||
+.el .IP "\f(CWd\fR" 4
|
||
+.IX Item "d"
|
||
+.PD
|
||
+The symbol is in the initialized data section.
|
||
+.ie n .IP """G""" 4
|
||
+.el .IP "\f(CWG\fR" 4
|
||
+.IX Item "G"
|
||
+.PD 0
|
||
+.ie n .IP """g""" 4
|
||
+.el .IP "\f(CWg\fR" 4
|
||
+.IX Item "g"
|
||
+.PD
|
||
+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"
|
||
+For \s-1PE\s0 format files this indicates that the symbol is in a section
|
||
+specific to the implementation of DLLs. For \s-1ELF\s0 format files this
|
||
+indicates that the symbol is an indirect function. This is a \s-1GNU\s0
|
||
+extension to the standard set of \s-1ELF\s0 symbol types. It indicates a
|
||
+symbol which if referenced by a relocation does not evaluate to its
|
||
+address, but instead must be invoked at runtime. The runtime
|
||
+execution will then return the value to be used in the relocation.
|
||
+.ie n .IP """I""" 4
|
||
+.el .IP "\f(CWI\fR" 4
|
||
+.IX Item "I"
|
||
+The symbol is an indirect reference to another symbol.
|
||
+.ie n .IP """N""" 4
|
||
+.el .IP "\f(CWN\fR" 4
|
||
+.IX Item "N"
|
||
+The symbol is a debugging symbol.
|
||
+.ie n .IP """n""" 4
|
||
+.el .IP "\f(CWn\fR" 4
|
||
+.IX Item "n"
|
||
+The symbol is in the read-only data section.
|
||
+.ie n .IP """p""" 4
|
||
+.el .IP "\f(CWp\fR" 4
|
||
+.IX Item "p"
|
||
+The symbol is in a stack unwind section.
|
||
+.ie n .IP """R""" 4
|
||
+.el .IP "\f(CWR\fR" 4
|
||
+.IX Item "R"
|
||
+.PD 0
|
||
+.ie n .IP """r""" 4
|
||
+.el .IP "\f(CWr\fR" 4
|
||
+.IX Item "r"
|
||
+.PD
|
||
+The symbol is in a read only data section.
|
||
+.ie n .IP """S""" 4
|
||
+.el .IP "\f(CWS\fR" 4
|
||
+.IX Item "S"
|
||
+.PD 0
|
||
+.ie n .IP """s""" 4
|
||
+.el .IP "\f(CWs\fR" 4
|
||
+.IX Item "s"
|
||
+.PD
|
||
+The symbol is in an uninitialized or zero-initialized data section
|
||
+for small objects.
|
||
+.ie n .IP """T""" 4
|
||
+.el .IP "\f(CWT\fR" 4
|
||
+.IX Item "T"
|
||
+.PD 0
|
||
+.ie n .IP """t""" 4
|
||
+.el .IP "\f(CWt\fR" 4
|
||
+.IX Item "t"
|
||
+.PD
|
||
+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 """u""" 4
|
||
+.el .IP "\f(CWu\fR" 4
|
||
+.IX Item "u"
|
||
+The symbol is a unique global symbol. This is a \s-1GNU\s0 extension to the
|
||
+standard set of \s-1ELF\s0 symbol bindings. For such a symbol the dynamic linker
|
||
+will make sure that in the entire process there is just one symbol with
|
||
+this name and type in use.
|
||
+.ie n .IP """V""" 4
|
||
+.el .IP "\f(CWV\fR" 4
|
||
+.IX Item "V"
|
||
+.PD 0
|
||
+.ie n .IP """v""" 4
|
||
+.el .IP "\f(CWv\fR" 4
|
||
+.IX Item "v"
|
||
+.PD
|
||
+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. On some
|
||
+systems, uppercase indicates that a default value has been specified.
|
||
+.ie n .IP """W""" 4
|
||
+.el .IP "\f(CWW\fR" 4
|
||
+.IX Item "W"
|
||
+.PD 0
|
||
+.ie n .IP """w""" 4
|
||
+.el .IP "\f(CWw\fR" 4
|
||
+.IX Item "w"
|
||
+.PD
|
||
+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\-\-recurse\-limit\fR" 4
|
||
+.IX Item "--recurse-limit"
|
||
+.PD 0
|
||
+.IP "\fB\-\-no\-recurse\-limit\fR" 4
|
||
+.IX Item "--no-recurse-limit"
|
||
+.IP "\fB\-\-recursion\-limit\fR" 4
|
||
+.IX Item "--recursion-limit"
|
||
+.IP "\fB\-\-no\-recursion\-limit\fR" 4
|
||
+.IX Item "--no-recursion-limit"
|
||
+.PD
|
||
+Enables or disables a limit on the amount of recursion performed
|
||
+whilst demangling strings. Since the name mangling formats allow for
|
||
+an inifinite level of recursion it is possible to create strings whose
|
||
+decoding will exhaust the amount of stack space available on the host
|
||
+machine, triggering a memory fault. The limit tries to prevent this
|
||
+from happening by restricting recursion to 2048 levels of nesting.
|
||
+.Sp
|
||
+The default is for this limit to be enabled, but disabling it may be
|
||
+necessary in order to demangle truly complicated names. Note however
|
||
+that if the recursion limit is disabled then stack exhaustion is
|
||
+possible and any bug reports about such an event will be rejected.
|
||
+.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\-h\fR" 4
|
||
+.IX Item "-h"
|
||
+.PD 0
|
||
+.IP "\fB\-\-help\fR" 4
|
||
+.IX Item "--help"
|
||
+.PD
|
||
+Show a summary of the options to \fBnm\fR and exit.
|
||
+.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\-\-inlines\fR" 4
|
||
+.IX Item "--inlines"
|
||
+When option \fB\-l\fR is active, if the address belongs to a
|
||
+function that was inlined, then this option causes the source
|
||
+information for all enclosing scopes back to the first non-inlined
|
||
+function to be printed as well. 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\-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.2\s0 standard output format instead of the default format.
|
||
+Equivalent to \fB\-f posix\fR.
|
||
+.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\-S\fR" 4
|
||
+.IX Item "-S"
|
||
+.PD 0
|
||
+.IP "\fB\-\-print\-size\fR" 4
|
||
+.IX Item "--print-size"
|
||
+.PD
|
||
+Print both value and size of defined symbols for the \f(CW\*(C`bsd\*(C'\fR output style.
|
||
+This option has no effect for object formats that do not record symbol
|
||
+sizes, unless \fB\-\-size\-sort\fR is also used in which case a
|
||
+calculated size is displayed.
|
||
+.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\-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\-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\-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\-\-defined\-only\fR" 4
|
||
+.IX Item "--defined-only"
|
||
+Display only defined symbols for each object file.
|
||
+.IP "\fB\-\-plugin\fR \fIname\fR" 4
|
||
+.IX Item "--plugin name"
|
||
+Load the plugin called \fIname\fR to add support for extra target
|
||
+types. This option is only available if the toolchain has been built
|
||
+with plugin support enabled.
|
||
+.Sp
|
||
+If \fB\-\-plugin\fR is not provided, but plugin support has been
|
||
+enabled then \fBnm\fR iterates over the files in
|
||
+\&\fI${libdir}/bfd\-plugins\fR in alphabetic order and the first
|
||
+plugin that claims the object in question is used.
|
||
+.Sp
|
||
+Please note that this plugin search directory is \fInot\fR the one
|
||
+used by \fBld\fR's \fB\-plugin\fR option. In order to make
|
||
+\&\fBnm\fR use the linker plugin it must be copied into the
|
||
+\&\fI${libdir}/bfd\-plugins\fR directory. For \s-1GCC\s0 based compilations
|
||
+the linker plugin is called \fIliblto_plugin.so.0.0.0\fR. For Clang
|
||
+based compilations it is called \fILLVMgold.so\fR. The \s-1GCC\s0 plugin
|
||
+is always backwards compatible with earlier versions, so it is
|
||
+sufficient to just copy the newest one.
|
||
+.IP "\fB\-\-size\-sort\fR" 4
|
||
+.IX Item "--size-sort"
|
||
+Sort symbols by size. For \s-1ELF\s0 objects symbol sizes are read from the
|
||
+\&\s-1ELF,\s0 for other object types the symbol sizes are 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 in the normal symbol lists.
|
||
+For example for \s-1ARM\s0 targets this option would skip the mapping symbols
|
||
+used to mark transitions between \s-1ARM\s0 code, \s-1THUMB\s0 code and data.
|
||
+.IP "\fB\-\-synthetic\fR" 4
|
||
+.IX Item "--synthetic"
|
||
+Include synthetic symbols in the output. These are special symbols
|
||
+created by the linker for various purposes. They are not shown by
|
||
+default since they are not part of the binary's original source code.
|
||
+.IP "\fB\-\-with\-symbol\-versions\fR" 4
|
||
+.IX Item "--with-symbol-versions"
|
||
+Enables the display of symbol version information if any exists. The
|
||
+version string is displayed as a suffix to the symbol name, preceeded by
|
||
+an @ character. For example \fBfoo@VER_1\fR. If the version is
|
||
+the default version to be used when resolving unversioned references
|
||
+to the symbol then it is displayed as a suffix preceeded by two @
|
||
+characters. For example \fBfoo@@VER_2\fR.
|
||
+.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@\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"
|
||
+\&\fBar\fR\|(1), \fBobjdump\fR\|(1), \fBranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||
+.SH "COPYRIGHT"
|
||
+.IX Header "COPYRIGHT"
|
||
+Copyright (c) 1991\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/objcopy.1 b/binutils/doc/objcopy.1
|
||
--- a/binutils/doc/objcopy.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/objcopy.1 2021-03-30 17:47:59.838886000 -0300
|
||
@@ -0,0 +1,1233 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.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\-\-strip\-unneeded\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\-\-localize\-hidden\fR]
|
||
+ [\fB\-L\fR \fIsymbolname\fR|\fB\-\-localize\-symbol=\fR\fIsymbolname\fR]
|
||
+ [\fB\-\-globalize\-symbol=\fR\fIsymbolname\fR]
|
||
+ [\fB\-\-globalize\-symbols=\fR\fIfilename\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 [\fIbreadth\fR]|\fB\-\-interleave\fR[=\fIbreadth\fR]]
|
||
+ [\fB\-\-interleave\-width=\fR\fIwidth\fR]
|
||
+ [\fB\-j\fR \fIsectionpattern\fR|\fB\-\-only\-section=\fR\fIsectionpattern\fR]
|
||
+ [\fB\-R\fR \fIsectionpattern\fR|\fB\-\-remove\-section=\fR\fIsectionpattern\fR]
|
||
+ [\fB\-\-keep\-section=\fR\fIsectionpattern\fR]
|
||
+ [\fB\-\-remove\-relocations=\fR\fIsectionpattern\fR]
|
||
+ [\fB\-p\fR|\fB\-\-preserve\-dates\fR]
|
||
+ [\fB\-D\fR|\fB\-\-enable\-deterministic\-archives\fR]
|
||
+ [\fB\-U\fR|\fB\-\-disable\-deterministic\-archives\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 \fIsectionpattern\fR{=,+,\-}\fIval\fR]
|
||
+ [\fB\-\-change\-section\-lma\fR \fIsectionpattern\fR{=,+,\-}\fIval\fR]
|
||
+ [\fB\-\-change\-section\-vma\fR \fIsectionpattern\fR{=,+,\-}\fIval\fR]
|
||
+ [\fB\-\-change\-warnings\fR] [\fB\-\-no\-change\-warnings\fR]
|
||
+ [\fB\-\-set\-section\-flags\fR \fIsectionpattern\fR=\fIflags\fR]
|
||
+ [\fB\-\-set\-section\-alignment\fR \fIsectionpattern\fR=\fIalign\fR]
|
||
+ [\fB\-\-add\-section\fR \fIsectionname\fR=\fIfilename\fR]
|
||
+ [\fB\-\-dump\-section\fR \fIsectionname\fR=\fIfilename\fR]
|
||
+ [\fB\-\-update\-section\fR \fIsectionname\fR=\fIfilename\fR]
|
||
+ [\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR[,\fIflags\fR]]
|
||
+ [\fB\-\-long\-section\-names\fR {enable,disable,keep}]
|
||
+ [\fB\-\-change\-leading\-char\fR] [\fB\-\-remove\-leading\-char\fR]
|
||
+ [\fB\-\-reverse\-bytes=\fR\fInum\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\-\-weaken\-symbols=\fR\fIfilename\fR]
|
||
+ [\fB\-\-add\-symbol\fR \fIname\fR=[\fIsection\fR:]\fIvalue\fR[,\fIflags\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\-\-strip\-dwo\fR]
|
||
+ [\fB\-\-extract\-dwo\fR]
|
||
+ [\fB\-\-extract\-symbol\fR]
|
||
+ [\fB\-\-writable\-text\fR]
|
||
+ [\fB\-\-readonly\-text\fR]
|
||
+ [\fB\-\-pure\fR]
|
||
+ [\fB\-\-impure\fR]
|
||
+ [\fB\-\-file\-alignment=\fR\fInum\fR]
|
||
+ [\fB\-\-heap=\fR\fIsize\fR]
|
||
+ [\fB\-\-image\-base=\fR\fIaddress\fR]
|
||
+ [\fB\-\-section\-alignment=\fR\fInum\fR]
|
||
+ [\fB\-\-stack=\fR\fIsize\fR]
|
||
+ [\fB\-\-subsystem=\fR\fIwhich\fR:\fImajor\fR.\fIminor\fR]
|
||
+ [\fB\-\-compress\-debug\-sections\fR]
|
||
+ [\fB\-\-decompress\-debug\-sections\fR]
|
||
+ [\fB\-\-elf\-stt\-common=\fR\fIval\fR]
|
||
+ [\fB\-\-merge\-notes\fR]
|
||
+ [\fB\-\-no\-merge\-notes\fR]
|
||
+ [\fB\-\-verilog\-data\-width=\fR\fIval\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 BFD\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).
|
||
+(However, see the \fB\-\-reverse\-bytes\fR option.)
|
||
+.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 architecture-less 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 \fIsectionpattern\fR" 4
|
||
+.IX Item "-j sectionpattern"
|
||
+.PD 0
|
||
+.IP "\fB\-\-only\-section=\fR\fIsectionpattern\fR" 4
|
||
+.IX Item "--only-section=sectionpattern"
|
||
+.PD
|
||
+Copy only the indicated sections 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. Wildcard
|
||
+characters are accepted in \fIsectionpattern\fR.
|
||
+.Sp
|
||
+If the first character of \fIsectionpattern\fR is the exclamation
|
||
+point (!) then matching sections will not be copied, even if earlier
|
||
+use of \fB\-\-only\-section\fR on the same command line would
|
||
+otherwise copy it. For example:
|
||
+.Sp
|
||
+.Vb 1
|
||
+\& \-\-only\-section=.text.* \-\-only\-section=!.text.foo
|
||
+.Ve
|
||
+.Sp
|
||
+will copy all sectinos maching '.text.*' but not the section
|
||
+\&'.text.foo'.
|
||
+.IP "\fB\-R\fR \fIsectionpattern\fR" 4
|
||
+.IX Item "-R sectionpattern"
|
||
+.PD 0
|
||
+.IP "\fB\-\-remove\-section=\fR\fIsectionpattern\fR" 4
|
||
+.IX Item "--remove-section=sectionpattern"
|
||
+.PD
|
||
+Remove any section matching \fIsectionpattern\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. Wildcard
|
||
+characters are accepted in \fIsectionpattern\fR. Using both the
|
||
+\&\fB\-j\fR and \fB\-R\fR options together results in undefined
|
||
+behaviour.
|
||
+.Sp
|
||
+If the first character of \fIsectionpattern\fR is the exclamation
|
||
+point (!) then matching sections will not be removed even if an
|
||
+earlier use of \fB\-\-remove\-section\fR on the same command line
|
||
+would otherwise remove it. For example:
|
||
+.Sp
|
||
+.Vb 1
|
||
+\& \-\-remove\-section=.text.* \-\-remove\-section=!.text.foo
|
||
+.Ve
|
||
+.Sp
|
||
+will remove all sections matching the pattern '.text.*', but will not
|
||
+remove the section '.text.foo'.
|
||
+.IP "\fB\-\-keep\-section=\fR\fIsectionpattern\fR" 4
|
||
+.IX Item "--keep-section=sectionpattern"
|
||
+When removing sections from the output file, keep sections that match
|
||
+\&\fIsectionpattern\fR.
|
||
+.IP "\fB\-\-remove\-relocations=\fR\fIsectionpattern\fR" 4
|
||
+.IX Item "--remove-relocations=sectionpattern"
|
||
+Remove non-dynamic relocations from the output file for any section
|
||
+matching \fIsectionpattern\fR. This option may be given more than
|
||
+once. Note that using this option inappropriately may make the output
|
||
+file unusable, and attempting to remove a dynamic relocation section
|
||
+such as \fB.rela.plt\fR from an executable or shared library with
|
||
+\&\fB\-\-remove\-relocations=.plt\fR will not work. Wildcard characters
|
||
+are accepted in \fIsectionpattern\fR.
|
||
+For example:
|
||
+.Sp
|
||
+.Vb 1
|
||
+\& \-\-remove\-relocations=.text.*
|
||
+.Ve
|
||
+.Sp
|
||
+will remove the relocations for all sections matching the pattern
|
||
+\&'.text.*'.
|
||
+.Sp
|
||
+If the first character of \fIsectionpattern\fR is the exclamation
|
||
+point (!) then matching sections will not have their relocation
|
||
+removed even if an earlier use of \fB\-\-remove\-relocations\fR on the
|
||
+same command line would otherwise cause the relocations to be removed.
|
||
+For example:
|
||
+.Sp
|
||
+.Vb 1
|
||
+\& \-\-remove\-relocations=.text.* \-\-remove\-relocations=!.text.foo
|
||
+.Ve
|
||
+.Sp
|
||
+will remove all relocations for sections matching the pattern
|
||
+\&'.text.*', but will not remove relocations for the section
|
||
+\&'.text.foo'.
|
||
+.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. Note: this option cannot be used in
|
||
+conjunction with the \fB\-\-globalize\-symbol\fR or
|
||
+\&\fB\-\-globalize\-symbols\fR options.
|
||
+.IP "\fB\-\-localize\-hidden\fR" 4
|
||
+.IX Item "--localize-hidden"
|
||
+In an \s-1ELF\s0 object, mark all symbols that have hidden or internal visibility
|
||
+as local. This option applies on top of symbol-specific localization options
|
||
+such as \fB\-L\fR.
|
||
+.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
|
||
+Convert a global or weak symbol called \fIsymbolname\fR into a local
|
||
+symbol, so that it is not visible externally. This option may be
|
||
+given more than once. Note \- unique symbols are not converted.
|
||
+.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. Note: this option cannot be used in conjunction with
|
||
+the \fB\-G\fR or \fB\-\-keep\-global\-symbol\fR options.
|
||
+.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
|
||
+If interleaving has been enabled via the \fB\-\-interleave\fR option
|
||
+then start the range of bytes to keep at the \fIbyte\fRth byte.
|
||
+\&\fIbyte\fR can be in the range from 0 to \fIbreadth\fR\-1, where
|
||
+\&\fIbreadth\fR is the value given by the \fB\-\-interleave\fR option.
|
||
+.IP "\fB\-i [\fR\fIbreadth\fR\fB]\fR" 4
|
||
+.IX Item "-i [breadth]"
|
||
+.PD 0
|
||
+.IP "\fB\-\-interleave[=\fR\fIbreadth\fR\fB]\fR" 4
|
||
+.IX Item "--interleave[=breadth]"
|
||
+.PD
|
||
+Only copy a range out of every \fIbreadth\fR bytes. (Header data is
|
||
+not affected). Select which byte in the range begins the copy with
|
||
+the \fB\-\-byte\fR option. Select the width of the range with the
|
||
+\&\fB\-\-interleave\-width\fR option.
|
||
+.Sp
|
||
+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. Note that
|
||
+\&\fBobjcopy\fR will complain if you do not specify the
|
||
+\&\fB\-\-byte\fR option as well.
|
||
+.Sp
|
||
+The default interleave breadth is 4, so with \fB\-\-byte\fR set to 0,
|
||
+\&\fBobjcopy\fR would copy the first byte out of every four bytes
|
||
+from the input to the output.
|
||
+.IP "\fB\-\-interleave\-width=\fR\fIwidth\fR" 4
|
||
+.IX Item "--interleave-width=width"
|
||
+When used with the \fB\-\-interleave\fR option, copy \fIwidth\fR
|
||
+bytes at a time. The start of the range of bytes to be copied is set
|
||
+by the \fB\-\-byte\fR option, and the extent of the range is set with
|
||
+the \fB\-\-interleave\fR option.
|
||
+.Sp
|
||
+The default value for this option is 1. The value of \fIwidth\fR plus
|
||
+the \fIbyte\fR value set by the \fB\-\-byte\fR option must not exceed
|
||
+the interleave breadth set by the \fB\-\-interleave\fR option.
|
||
+.Sp
|
||
+This option can be used to create images for two 16\-bit flashes interleaved
|
||
+in a 32\-bit bus by passing \fB\-b 0 \-i 4 \-\-interleave\-width=2\fR
|
||
+and \fB\-b 2 \-i 4 \-\-interleave\-width=2\fR to two \fBobjcopy\fR
|
||
+commands. If the input was '12345678' then the outputs would be
|
||
+\&'1256' and '3478' respectively.
|
||
+.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\-D\fR" 4
|
||
+.IX Item "-D"
|
||
+.PD 0
|
||
+.IP "\fB\-\-enable\-deterministic\-archives\fR" 4
|
||
+.IX Item "--enable-deterministic-archives"
|
||
+.PD
|
||
+Operate in \fIdeterministic\fR mode. When copying archive members
|
||
+and writing the archive index, use zero for UIDs, GIDs, timestamps,
|
||
+and use consistent file modes for all files.
|
||
+.Sp
|
||
+If \fIbinutils\fR was configured with
|
||
+\&\fB\-\-enable\-deterministic\-archives\fR, then this mode is on by default.
|
||
+It can be disabled with the \fB\-U\fR option, below.
|
||
+.IP "\fB\-U\fR" 4
|
||
+.IX Item "-U"
|
||
+.PD 0
|
||
+.IP "\fB\-\-disable\-deterministic\-archives\fR" 4
|
||
+.IX Item "--disable-deterministic-archives"
|
||
+.PD
|
||
+Do \fInot\fR operate in \fIdeterministic\fR mode. This is the
|
||
+inverse of the \fB\-D\fR option, above: when copying archive members
|
||
+and writing the archive index, use their actual \s-1UID, GID,\s0 timestamp,
|
||
+and file mode values.
|
||
+.Sp
|
||
+This is the default unless \fIbinutils\fR was configured with
|
||
+\&\fB\-\-enable\-deterministic\-archives\fR.
|
||
+.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 \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4
|
||
+.IX Item "--change-section-address sectionpattern{=,+,-}val"
|
||
+.PD 0
|
||
+.IP "\fB\-\-adjust\-section\-vma\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4
|
||
+.IX Item "--adjust-section-vma sectionpattern{=,+,-}val"
|
||
+.PD
|
||
+Set or change both the \s-1VMA\s0 address and the \s-1LMA\s0 address of any section
|
||
+matching \fIsectionpattern\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 \fIsectionpattern\fR does not
|
||
+match any sections in the input file, a warning will be issued, unless
|
||
+\&\fB\-\-no\-change\-warnings\fR is used.
|
||
+.IP "\fB\-\-change\-section\-lma\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4
|
||
+.IX Item "--change-section-lma sectionpattern{=,+,-}val"
|
||
+Set or change the \s-1LMA\s0 address of any sections matching
|
||
+\&\fIsectionpattern\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
|
||
+\&\fIsectionpattern\fR does not match any sections in the input file, a
|
||
+warning will be issued, unless \fB\-\-no\-change\-warnings\fR is used.
|
||
+.IP "\fB\-\-change\-section\-vma\fR \fIsectionpattern\fR\fB{=,+,\-}\fR\fIval\fR" 4
|
||
+.IX Item "--change-section-vma sectionpattern{=,+,-}val"
|
||
+Set or change the \s-1VMA\s0 address of any section matching
|
||
+\&\fIsectionpattern\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 \fIsectionpattern\fR does not match any sections 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 section pattern does not
|
||
+match any sections, 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 section pattern does not match any sections.
|
||
+.IP "\fB\-\-set\-section\-flags\fR \fIsectionpattern\fR\fB=\fR\fIflags\fR" 4
|
||
+.IX Item "--set-section-flags sectionpattern=flags"
|
||
+Set the flags for any sections matching \fIsectionpattern\fR. 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\-\-set\-section\-alignment\fR \fIsectionpattern\fR\fB=\fR\fIalign\fR" 4
|
||
+.IX Item "--set-section-alignment sectionpattern=align"
|
||
+Set the alignment for any sections matching \fIsectionpattern\fR.
|
||
+\&\fIalign\fR specifies the alignment in bytes and must be a power of
|
||
+two, i.e. 1, 2, 4, 8....
|
||
+.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.
|
||
+Note \- it may be necessary to use the \fB\-\-set\-section\-flags\fR
|
||
+option to set the attributes of the newly created section.
|
||
+.IP "\fB\-\-dump\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4
|
||
+.IX Item "--dump-section sectionname=filename"
|
||
+Place the contents of section named \fIsectionname\fR into the file
|
||
+\&\fIfilename\fR, overwriting any contents that may have been there
|
||
+previously. This option is the inverse of \fB\-\-add\-section\fR.
|
||
+This option is similar to the \fB\-\-only\-section\fR option except
|
||
+that it does not create a formatted file, it just dumps the contents
|
||
+as raw binary data, without applying any relocations. The option can
|
||
+be specified more than once.
|
||
+.IP "\fB\-\-update\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4
|
||
+.IX Item "--update-section sectionname=filename"
|
||
+Replace the existing contents of a section named \fIsectionname\fR
|
||
+with the contents of file \fIfilename\fR. The size of the section
|
||
+will be adjusted to the size of the file. The section flags for
|
||
+\&\fIsectionname\fR will be unchanged. For \s-1ELF\s0 format files the section
|
||
+to segment mapping will also remain unchanged, something which is not
|
||
+possible using \fB\-\-remove\-section\fR followed by
|
||
+\&\fB\-\-add\-section\fR. The option can be specified more than once.
|
||
+.Sp
|
||
+Note \- it is possible to use \fB\-\-rename\-section\fR and
|
||
+\&\fB\-\-update\-section\fR to both update and rename a section from one
|
||
+command line. In this case, pass the original section name to
|
||
+\&\fB\-\-update\-section\fR, and the original and new section names to
|
||
+\&\fB\-\-rename\-section\fR.
|
||
+.IP "\fB\-\-add\-symbol\fR \fIname\fR\fB=[\fR\fIsection\fR\fB:]\fR\fIvalue\fR\fB[,\fR\fIflags\fR\fB]\fR" 4
|
||
+.IX Item "--add-symbol name=[section:]value[,flags]"
|
||
+Add a new symbol named \fIname\fR while copying the file. This option may be
|
||
+specified multiple times. If the \fIsection\fR is given, the symbol will be
|
||
+associated with and relative to that section, otherwise it will be an \s-1ABS\s0
|
||
+symbol. Specifying an undefined section will result in a fatal error. There
|
||
+is no check for the value, it will be taken as specified. Symbol flags can
|
||
+be specified and not all flags will be meaningful for all object file
|
||
+formats. By default, the symbol will be global. The special flag
|
||
+\&'before=\fIothersym\fR' will insert the new symbol in front of the specified
|
||
+\&\fIothersym\fR, otherwise the symbol(s) will be added at the end of the
|
||
+symbol table in the order they appear.
|
||
+.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 using 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\-\-long\-section\-names {enable,disable,keep}\fR" 4
|
||
+.IX Item "--long-section-names {enable,disable,keep}"
|
||
+Controls the handling of long section names when processing \f(CW\*(C`COFF\*(C'\fR
|
||
+and \f(CW\*(C`PE\-COFF\*(C'\fR object formats. The default behaviour, \fBkeep\fR,
|
||
+is to preserve long section names if any are present in the input file.
|
||
+The \fBenable\fR and \fBdisable\fR options forcibly enable or disable
|
||
+the use of long section names in the output object; when \fBdisable\fR
|
||
+is in effect, any long section names in the input object will be truncated.
|
||
+The \fBenable\fR option will only emit long section names if any are
|
||
+present in the inputs; this is mostly the same as \fBkeep\fR, but it
|
||
+is left undefined whether the \fBenable\fR option might force the
|
||
+creation of an empty string table in the output file.
|
||
+.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\-\-reverse\-bytes=\fR\fInum\fR" 4
|
||
+.IX Item "--reverse-bytes=num"
|
||
+Reverse the bytes in a section with output contents. A section length must
|
||
+be evenly divisible by the value given in order for the swap to be able to
|
||
+take place. Reversing takes place before the interleaving is performed.
|
||
+.Sp
|
||
+This option is used typically in generating \s-1ROM\s0 images for problematic
|
||
+target systems. For example, on some target boards, the 32\-bit words
|
||
+fetched from 8\-bit ROMs are re-assembled in little-endian byte order
|
||
+regardless of the \s-1CPU\s0 byte order. Depending on the programming model, the
|
||
+endianness of the \s-1ROM\s0 may need to be modified.
|
||
+.Sp
|
||
+Consider a simple file with a section containing the following eight
|
||
+bytes: \f(CW12345678\fR.
|
||
+.Sp
|
||
+Using \fB\-\-reverse\-bytes=2\fR for the above example, the bytes in the
|
||
+output file would be ordered \f(CW21436587\fR.
|
||
+.Sp
|
||
+Using \fB\-\-reverse\-bytes=4\fR for the above example, the bytes in the
|
||
+output file would be ordered \f(CW43218765\fR.
|
||
+.Sp
|
||
+By using \fB\-\-reverse\-bytes=2\fR for the above example, followed by
|
||
+\&\fB\-\-reverse\-bytes=4\fR on the output file, the bytes in the second
|
||
+output file would be ordered \f(CW34127856\fR.
|
||
+.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. Note: this option cannot be
|
||
+used in conjunction with the \fB\-G\fR or \fB\-\-keep\-global\-symbol\fR
|
||
+options.
|
||
+.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. Note: the file at
|
||
+\&\fIpath-to-file\fR must exist. Part of the process of adding the
|
||
+\&.gnu_debuglink section involves embedding a checksum of the contents
|
||
+of the debug info file into the section.
|
||
+.Sp
|
||
+If the debug info file is built in one location but it is going to be
|
||
+installed at a later time into a different location then do not use
|
||
+the path to the installed location. The \fB\-\-add\-gnu\-debuglink\fR
|
||
+option will fail because the installed file does not exist yet.
|
||
+Instead put the debug info file in the current directory and use the
|
||
+\&\fB\-\-add\-gnu\-debuglink\fR option without any directory components,
|
||
+like this:
|
||
+.Sp
|
||
+.Vb 1
|
||
+\& objcopy \-\-add\-gnu\-debuglink=foo.debug
|
||
+.Ve
|
||
+.Sp
|
||
+At debug time the debugger will attempt to look for the separate debug
|
||
+info file in a set of known locations. The exact set of these
|
||
+locations varies depending upon the distribution being used, but it
|
||
+typically includes:
|
||
+.RS 4
|
||
+.ie n .IP """* The same directory as the executable.""" 4
|
||
+.el .IP "\f(CW* The same directory as the executable.\fR" 4
|
||
+.IX Item "* The same directory as the executable."
|
||
+.PD 0
|
||
+.ie n .IP """* A sub\-directory of the directory containing the executable""" 4
|
||
+.el .IP "\f(CW* A sub\-directory of the directory containing the executable\fR" 4
|
||
+.IX Item "* A sub-directory of the directory containing the executable"
|
||
+.PD
|
||
+called .debug
|
||
+.ie n .IP """* A global debug directory such as /usr/lib/debug.""" 4
|
||
+.el .IP "\f(CW* A global debug directory such as /usr/lib/debug.\fR" 4
|
||
+.IX Item "* A global debug directory such as /usr/lib/debug."
|
||
+.RE
|
||
+.RS 4
|
||
+.Sp
|
||
+As long as the debug info file has been installed into one of these
|
||
+locations before the debugger is run everything should work
|
||
+correctly.
|
||
+.RE
|
||
+.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. In \s-1ELF\s0 files, this preserves all note sections in the output.
|
||
+.Sp
|
||
+Note \- the section headers of the stripped sections are preserved,
|
||
+including their sizes, but the contents of the section are discarded.
|
||
+The section headers are preserved so that other tools can match up the
|
||
+debuginfo file with the real executable, even if that executable has
|
||
+been relocated to a different address space.
|
||
+.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 it is called>" 4
|
||
+.IX Item "1.<Link the executable as normal. Assuming that it 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"" to ""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.
|
||
+.Sp
|
||
+Note\-\-\-this switch is only intended for use on fully linked files. It
|
||
+does not make sense to use it on object files where the debugging
|
||
+information may be incomplete. Besides the gnu_debuglink feature
|
||
+currently only supports the presence of one filename containing
|
||
+debugging information, not multiple filenames on a one-per-object-file
|
||
+basis.
|
||
+.RE
|
||
+.IP "\fB\-\-strip\-dwo\fR" 4
|
||
+.IX Item "--strip-dwo"
|
||
+Remove the contents of all \s-1DWARF\s0 .dwo sections, leaving the
|
||
+remaining debugging sections and all symbols intact.
|
||
+This option is intended for use by the compiler as part of
|
||
+the \fB\-gsplit\-dwarf\fR option, which splits debug information
|
||
+between the .o file and a separate .dwo file. The compiler
|
||
+generates all debug information in the same file, then uses
|
||
+the \fB\-\-extract\-dwo\fR option to copy the .dwo sections to
|
||
+the .dwo file, then the \fB\-\-strip\-dwo\fR option to remove
|
||
+those sections from the original .o file.
|
||
+.IP "\fB\-\-extract\-dwo\fR" 4
|
||
+.IX Item "--extract-dwo"
|
||
+Extract the contents of all \s-1DWARF\s0 .dwo sections. See the
|
||
+\&\fB\-\-strip\-dwo\fR option for more information.
|
||
+.IP "\fB\-\-file\-alignment\fR \fInum\fR" 4
|
||
+.IX Item "--file-alignment num"
|
||
+Specify the file alignment. Sections in the file will always begin at
|
||
+file offsets which are multiples of this number. This defaults to
|
||
+512.
|
||
+[This option is specific to \s-1PE\s0 targets.]
|
||
+.IP "\fB\-\-heap\fR \fIreserve\fR" 4
|
||
+.IX Item "--heap reserve"
|
||
+.PD 0
|
||
+.IP "\fB\-\-heap\fR \fIreserve\fR\fB,\fR\fIcommit\fR" 4
|
||
+.IX Item "--heap reserve,commit"
|
||
+.PD
|
||
+Specify the number of bytes of memory to reserve (and optionally commit)
|
||
+to be used as heap for this program.
|
||
+[This option is specific to \s-1PE\s0 targets.]
|
||
+.IP "\fB\-\-image\-base\fR \fIvalue\fR" 4
|
||
+.IX Item "--image-base value"
|
||
+Use \fIvalue\fR as the base address of your program or dll. This is
|
||
+the lowest memory location that will be used when your program or dll
|
||
+is loaded. To reduce the need to relocate and improve performance of
|
||
+your dlls, each should have a unique base address and not overlap any
|
||
+other dlls. The default is 0x400000 for executables, and 0x10000000
|
||
+for dlls.
|
||
+[This option is specific to \s-1PE\s0 targets.]
|
||
+.IP "\fB\-\-section\-alignment\fR \fInum\fR" 4
|
||
+.IX Item "--section-alignment num"
|
||
+Sets the section alignment field in the \s-1PE\s0 header. Sections in memory
|
||
+will always begin at addresses which are a multiple of this number.
|
||
+Defaults to 0x1000.
|
||
+[This option is specific to \s-1PE\s0 targets.]
|
||
+.IP "\fB\-\-stack\fR \fIreserve\fR" 4
|
||
+.IX Item "--stack reserve"
|
||
+.PD 0
|
||
+.IP "\fB\-\-stack\fR \fIreserve\fR\fB,\fR\fIcommit\fR" 4
|
||
+.IX Item "--stack reserve,commit"
|
||
+.PD
|
||
+Specify the number of bytes of memory to reserve (and optionally commit)
|
||
+to be used as stack for this program.
|
||
+[This option is specific to \s-1PE\s0 targets.]
|
||
+.IP "\fB\-\-subsystem\fR \fIwhich\fR" 4
|
||
+.IX Item "--subsystem which"
|
||
+.PD 0
|
||
+.IP "\fB\-\-subsystem\fR \fIwhich\fR\fB:\fR\fImajor\fR" 4
|
||
+.IX Item "--subsystem which:major"
|
||
+.IP "\fB\-\-subsystem\fR \fIwhich\fR\fB:\fR\fImajor\fR\fB.\fR\fIminor\fR" 4
|
||
+.IX Item "--subsystem which:major.minor"
|
||
+.PD
|
||
+Specifies the subsystem under which your program will execute. The
|
||
+legal values for \fIwhich\fR are \f(CW\*(C`native\*(C'\fR, \f(CW\*(C`windows\*(C'\fR,
|
||
+\&\f(CW\*(C`console\*(C'\fR, \f(CW\*(C`posix\*(C'\fR, \f(CW\*(C`efi\-app\*(C'\fR, \f(CW\*(C`efi\-bsd\*(C'\fR,
|
||
+\&\f(CW\*(C`efi\-rtd\*(C'\fR, \f(CW\*(C`sal\-rtd\*(C'\fR, and \f(CW\*(C`xbox\*(C'\fR. You may optionally set
|
||
+the subsystem version also. Numeric values are also accepted for
|
||
+\&\fIwhich\fR.
|
||
+[This option is specific to \s-1PE\s0 targets.]
|
||
+.IP "\fB\-\-extract\-symbol\fR" 4
|
||
+.IX Item "--extract-symbol"
|
||
+Keep the file's section flags and symbols but remove all section data.
|
||
+Specifically, the option:
|
||
+.RS 4
|
||
+.IP "*<removes the contents of all sections;>" 4
|
||
+.IX Item "*<removes the contents of all sections;>"
|
||
+.PD 0
|
||
+.IP "*<sets the size of every section to zero; and>" 4
|
||
+.IX Item "*<sets the size of every section to zero; and>"
|
||
+.IP "*<sets the file's start address to zero.>" 4
|
||
+.IX Item "*<sets the file's start address to zero.>"
|
||
+.RE
|
||
+.RS 4
|
||
+.PD
|
||
+.Sp
|
||
+This option is used to build a \fI.sym\fR file for a VxWorks kernel.
|
||
+It can also be a useful way of reducing the size of a \fB\-\-just\-symbols\fR
|
||
+linker input file.
|
||
+.RE
|
||
+.IP "\fB\-\-compress\-debug\-sections\fR" 4
|
||
+.IX Item "--compress-debug-sections"
|
||
+Compress \s-1DWARF\s0 debug sections using zlib with \s-1SHF_COMPRESSED\s0 from the
|
||
+\&\s-1ELF ABI.\s0 Note \- if compression would actually make a section
|
||
+\&\fIlarger\fR, then it is not compressed.
|
||
+.IP "\fB\-\-compress\-debug\-sections=none\fR" 4
|
||
+.IX Item "--compress-debug-sections=none"
|
||
+.PD 0
|
||
+.IP "\fB\-\-compress\-debug\-sections=zlib\fR" 4
|
||
+.IX Item "--compress-debug-sections=zlib"
|
||
+.IP "\fB\-\-compress\-debug\-sections=zlib\-gnu\fR" 4
|
||
+.IX Item "--compress-debug-sections=zlib-gnu"
|
||
+.IP "\fB\-\-compress\-debug\-sections=zlib\-gabi\fR" 4
|
||
+.IX Item "--compress-debug-sections=zlib-gabi"
|
||
+.PD
|
||
+For \s-1ELF\s0 files, these options control how \s-1DWARF\s0 debug sections are
|
||
+compressed. \fB\-\-compress\-debug\-sections=none\fR is equivalent
|
||
+to \fB\-\-decompress\-debug\-sections\fR.
|
||
+\&\fB\-\-compress\-debug\-sections=zlib\fR and
|
||
+\&\fB\-\-compress\-debug\-sections=zlib\-gabi\fR are equivalent to
|
||
+\&\fB\-\-compress\-debug\-sections\fR.
|
||
+\&\fB\-\-compress\-debug\-sections=zlib\-gnu\fR compresses \s-1DWARF\s0 debug
|
||
+sections using zlib. The debug sections are renamed to begin with
|
||
+\&\fB.zdebug\fR instead of \fB.debug\fR. Note \- if compression would
|
||
+actually make a section \fIlarger\fR, then it is not compressed nor
|
||
+renamed.
|
||
+.IP "\fB\-\-decompress\-debug\-sections\fR" 4
|
||
+.IX Item "--decompress-debug-sections"
|
||
+Decompress \s-1DWARF\s0 debug sections using zlib. The original section
|
||
+names of the compressed sections are restored.
|
||
+.IP "\fB\-\-elf\-stt\-common=yes\fR" 4
|
||
+.IX Item "--elf-stt-common=yes"
|
||
+.PD 0
|
||
+.IP "\fB\-\-elf\-stt\-common=no\fR" 4
|
||
+.IX Item "--elf-stt-common=no"
|
||
+.PD
|
||
+For \s-1ELF\s0 files, these options control whether common symbols should be
|
||
+converted to the \f(CW\*(C`STT_COMMON\*(C'\fR or \f(CW\*(C`STT_OBJECT\*(C'\fR type.
|
||
+\&\fB\-\-elf\-stt\-common=yes\fR converts common symbol type to
|
||
+\&\f(CW\*(C`STT_COMMON\*(C'\fR. \fB\-\-elf\-stt\-common=no\fR converts common symbol
|
||
+type to \f(CW\*(C`STT_OBJECT\*(C'\fR.
|
||
+.IP "\fB\-\-merge\-notes\fR" 4
|
||
+.IX Item "--merge-notes"
|
||
+.PD 0
|
||
+.IP "\fB\-\-no\-merge\-notes\fR" 4
|
||
+.IX Item "--no-merge-notes"
|
||
+.PD
|
||
+For \s-1ELF\s0 files, attempt (or do not attempt) to reduce the size of any
|
||
+\&\s-1SHT_NOTE\s0 type sections by removing duplicate notes.
|
||
+.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\-\-verilog\-data\-width=\fR\fIbytes\fR" 4
|
||
+.IX Item "--verilog-data-width=bytes"
|
||
+For Verilog output, this options controls the number of bytes
|
||
+converted for each output data element. The input target controls the
|
||
+endianness of the conversion.
|
||
+.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"
|
||
+\&\fBld\fR\|(1), \fBobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||
+.SH "COPYRIGHT"
|
||
+.IX Header "COPYRIGHT"
|
||
+Copyright (c) 1991\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/objdump.1 b/binutils/doc/objdump.1
|
||
--- a/binutils/doc/objdump.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/objdump.1 2021-03-30 17:47:59.838886000 -0300
|
||
@@ -0,0 +1,1310 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.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[=\fIsymbol\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\-F\fR|\fB\-\-file\-offsets\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\-\-source\-comment\fR[=\fItext\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\-P\fR \fIoptions\fR|\fB\-\-private=\fR\fIoptions\fR]
|
||
+ [\fB\-r\fR|\fB\-\-reloc\fR]
|
||
+ [\fB\-R\fR|\fB\-\-dynamic\-reloc\fR]
|
||
+ [\fB\-s\fR|\fB\-\-full\-contents\fR]
|
||
+ [\fB\-W[lLiaprmfFsoRtUuTgAckK]\fR|
|
||
+ \fB\-\-dwarf\fR[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow\-links]]
|
||
+ [\fB\-\-ctf=\fR\fIsection\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\-\-dwarf\-depth=\fR\fIn\fR]
|
||
+ [\fB\-\-dwarf\-start=\fR\fIn\fR]
|
||
+ [\fB\-\-ctf\-parent=\fR\fIsection\fR]
|
||
+ [\fB\-\-no\-recurse\-limit\fR|\fB\-\-recurse\-limit\fR]
|
||
+ [\fB\-\-special\-syms\fR]
|
||
+ [\fB\-\-prefix=\fR\fIprefix\fR]
|
||
+ [\fB\-\-prefix\-strip=\fR\fIlevel\fR]
|
||
+ [\fB\-\-insn\-width=\fR\fIwidth\fR]
|
||
+ [\fB\-\-visualize\-jumps[=color|=extended\-color|=off]\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,\-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\-\-recurse\-limit\fR" 4
|
||
+.IX Item "--recurse-limit"
|
||
+.PD 0
|
||
+.IP "\fB\-\-no\-recurse\-limit\fR" 4
|
||
+.IX Item "--no-recurse-limit"
|
||
+.IP "\fB\-\-recursion\-limit\fR" 4
|
||
+.IX Item "--recursion-limit"
|
||
+.IP "\fB\-\-no\-recursion\-limit\fR" 4
|
||
+.IX Item "--no-recursion-limit"
|
||
+.PD
|
||
+Enables or disables a limit on the amount of recursion performed
|
||
+whilst demangling strings. Since the name mangling formats allow for
|
||
+an inifinite level of recursion it is possible to create strings whose
|
||
+decoding will exhaust the amount of stack space available on the host
|
||
+machine, triggering a memory fault. The limit tries to prevent this
|
||
+from happening by restricting recursion to 2048 levels of nesting.
|
||
+.Sp
|
||
+The default is for this limit to be enabled, but disabling it may be
|
||
+necessary in order to demangle truly complicated names. Note however
|
||
+that if the recursion limit is disabled then stack exhaustion is
|
||
+possible and any bug reports about such an event will be rejected.
|
||
+.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 \s-1STABS\s0
|
||
+debugging format information stored in the file and print it out using
|
||
+a C like syntax. If no \s-1STABS\s0 debuging was found this option
|
||
+falls back on the \fB\-W\fR option to print any \s-1DWARF\s0 information in
|
||
+the file.
|
||
+.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"
|
||
+.IP "\fB\-\-disassemble=\fR\fIsymbol\fR" 4
|
||
+.IX Item "--disassemble=symbol"
|
||
+.PD
|
||
+Display the assembler mnemonics for the machine instructions from the
|
||
+input file. This option only disassembles those sections which are
|
||
+expected to contain instructions. If the optional \fIsymbol\fR
|
||
+argument is given, then display the assembler mnemonics starting at
|
||
+\&\fIsymbol\fR. If \fIsymbol\fR is a function name then disassembly
|
||
+will stop at the end of the function, otherwise it will stop when the
|
||
+next symbol is encountered. If there are no matches for \fIsymbol\fR
|
||
+then nothing will be displayed.
|
||
+.Sp
|
||
+Note if the \fB\-\-dwarf=follow\-links\fR option has also been enabled
|
||
+then any symbol tables in linked debug info files will be read in and
|
||
+used when disassembling.
|
||
+.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.
|
||
+.Sp
|
||
+This option also has a subtle effect on the disassembly of
|
||
+instructions in code sections. When option \fB\-d\fR is in effect
|
||
+objdump will assume that any symbols present in a code section occur
|
||
+on the boundary between instructions and it will refuse to disassemble
|
||
+across such a boundary. When option \fB\-D\fR is in effect however
|
||
+this assumption is supressed. This means that it is possible for the
|
||
+output of \fB\-d\fR and \fB\-D\fR to differ if, for example, data
|
||
+is stored in code sections.
|
||
+.Sp
|
||
+If the target is an \s-1ARM\s0 architecture this switch also has the effect
|
||
+of forcing the disassembler to decode pieces of data found in code
|
||
+sections as if they were instructions.
|
||
+.Sp
|
||
+Note if the \fB\-\-dwarf=follow\-links\fR option has also been enabled
|
||
+then any symbol tables in linked debug info files will be read in and
|
||
+used when disassembling.
|
||
+.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\-F\fR" 4
|
||
+.IX Item "-F"
|
||
+.PD 0
|
||
+.IP "\fB\-\-file\-offsets\fR" 4
|
||
+.IX Item "--file-offsets"
|
||
+.PD
|
||
+When disassembling sections, whenever a symbol is displayed, also
|
||
+display the file offset of the region of data that is about to be
|
||
+dumped. If zeroes are being skipped, then when disassembly resumes,
|
||
+tell the user how many zeroes were skipped and the file offset of the
|
||
+location from where the disassembly resumes. When dumping sections,
|
||
+display the file offset of the location from where the dump starts.
|
||
+.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.
|
||
+.Sp
|
||
+Note, in some cases it is possible for a section to have both the
|
||
+\&\s-1READONLY\s0 and the \s-1NOREAD\s0 attributes set. In such cases the \s-1NOREAD\s0
|
||
+attribute takes precedence, but \fBobjdump\fR will report both
|
||
+since the exact setting of the flag bits might be important.
|
||
+.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.
|
||
+.Sp
|
||
+If the target is an \s-1ARM\s0 architecture then this switch has an
|
||
+additional effect. It restricts the disassembly to only those
|
||
+instructions supported by the architecture specified by \fImachine\fR.
|
||
+If it is necessary to use this switch because the input file does not
|
||
+contain any architecture information, but it is also desired to
|
||
+disassemble all the instructions use \fB\-marm\fR.
|
||
+.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
|
||
+For \s-1ARC,\s0 \fBdsp\fR controls the printing of \s-1DSP\s0 instructions,
|
||
+\&\fBspfp\fR selects the printing of \s-1FPX\s0 single precision \s-1FP\s0
|
||
+instructions, \fBdpfp\fR selects the printing of \s-1FPX\s0 double
|
||
+precision \s-1FP\s0 instructions, \fBquarkse_em\fR selects the printing of
|
||
+special QuarkSE-EM instructions, \fBfpuda\fR selects the printing
|
||
+of double precision assist instructions, \fBfpus\fR selects the
|
||
+printing of \s-1FPU\s0 single precision \s-1FP\s0 instructions, while \fBfpud\fR
|
||
+selects the printing of \s-1FPU\s0 double precision \s-1FP\s0 instructions.
|
||
+Additionally, one can choose to have all the immediates printed in
|
||
+hexadecimal using \fBhex\fR. By default, the short immediates are
|
||
+printed using the decimal representation, while the long immediate
|
||
+values are printed as hexadecimal.
|
||
+.Sp
|
||
+\&\fBcpu=...\fR allows to enforce a particular \s-1ISA\s0 when disassembling
|
||
+instructions, overriding the \fB\-m\fR value or whatever is in the \s-1ELF\s0 file.
|
||
+This might be useful to select \s-1ARC EM\s0 or \s-1HS ISA,\s0 because architecture is same
|
||
+for those and disassembler relies on private \s-1ELF\s0 header data to decide if code
|
||
+is for \s-1EM\s0 or \s-1HS.\s0 This option might be specified multiple times \- only the
|
||
+latest value will be used. Valid values are same as for the assembler
|
||
+\&\fB\-mcpu=...\fR option.
|
||
+.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 AArch64 targets this switch can be used to set whether instructions are
|
||
+disassembled as the most general instruction using the \fB\-M no-aliases\fR
|
||
+option or whether instruction notes should be generated as comments in the
|
||
+disasssembly using \fB\-M notes\fR.
|
||
+.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.
|
||
+.RS 4
|
||
+.ie n .IP """x86\-64""" 4
|
||
+.el .IP "\f(CWx86\-64\fR" 4
|
||
+.IX Item "x86-64"
|
||
+.PD 0
|
||
+.ie n .IP """i386""" 4
|
||
+.el .IP "\f(CWi386\fR" 4
|
||
+.IX Item "i386"
|
||
+.ie n .IP """i8086""" 4
|
||
+.el .IP "\f(CWi8086\fR" 4
|
||
+.IX Item "i8086"
|
||
+.PD
|
||
+Select disassembly for the given architecture.
|
||
+.ie n .IP """intel""" 4
|
||
+.el .IP "\f(CWintel\fR" 4
|
||
+.IX Item "intel"
|
||
+.PD 0
|
||
+.ie n .IP """att""" 4
|
||
+.el .IP "\f(CWatt\fR" 4
|
||
+.IX Item "att"
|
||
+.PD
|
||
+Select between intel syntax mode and \s-1AT&T\s0 syntax mode.
|
||
+.ie n .IP """amd64""" 4
|
||
+.el .IP "\f(CWamd64\fR" 4
|
||
+.IX Item "amd64"
|
||
+.PD 0
|
||
+.ie n .IP """intel64""" 4
|
||
+.el .IP "\f(CWintel64\fR" 4
|
||
+.IX Item "intel64"
|
||
+.PD
|
||
+Select between \s-1AMD64 ISA\s0 and Intel64 \s-1ISA.\s0
|
||
+.ie n .IP """intel\-mnemonic""" 4
|
||
+.el .IP "\f(CWintel\-mnemonic\fR" 4
|
||
+.IX Item "intel-mnemonic"
|
||
+.PD 0
|
||
+.ie n .IP """att\-mnemonic""" 4
|
||
+.el .IP "\f(CWatt\-mnemonic\fR" 4
|
||
+.IX Item "att-mnemonic"
|
||
+.PD
|
||
+Select between intel mnemonic mode and \s-1AT&T\s0 mnemonic mode.
|
||
+Note: \f(CW\*(C`intel\-mnemonic\*(C'\fR implies \f(CW\*(C`intel\*(C'\fR and
|
||
+\&\f(CW\*(C`att\-mnemonic\*(C'\fR implies \f(CW\*(C`att\*(C'\fR.
|
||
+.ie n .IP """addr64""" 4
|
||
+.el .IP "\f(CWaddr64\fR" 4
|
||
+.IX Item "addr64"
|
||
+.PD 0
|
||
+.ie n .IP """addr32""" 4
|
||
+.el .IP "\f(CWaddr32\fR" 4
|
||
+.IX Item "addr32"
|
||
+.ie n .IP """addr16""" 4
|
||
+.el .IP "\f(CWaddr16\fR" 4
|
||
+.IX Item "addr16"
|
||
+.ie n .IP """data32""" 4
|
||
+.el .IP "\f(CWdata32\fR" 4
|
||
+.IX Item "data32"
|
||
+.ie n .IP """data16""" 4
|
||
+.el .IP "\f(CWdata16\fR" 4
|
||
+.IX Item "data16"
|
||
+.PD
|
||
+Specify the default address size and operand size. These five options
|
||
+will be overridden if \f(CW\*(C`x86\-64\*(C'\fR, \f(CW\*(C`i386\*(C'\fR or \f(CW\*(C`i8086\*(C'\fR
|
||
+appear later in the option string.
|
||
+.ie n .IP """suffix""" 4
|
||
+.el .IP "\f(CWsuffix\fR" 4
|
||
+.IX Item "suffix"
|
||
+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.
|
||
+.RE
|
||
+.RS 4
|
||
+.Sp
|
||
+For PowerPC, the \fB\-M\fR argument \fBraw\fR selects
|
||
+disasssembly of hardware insns rather than aliases. For example, you
|
||
+will see \f(CW\*(C`rlwinm\*(C'\fR rather than \f(CW\*(C`clrlwi\*(C'\fR, and \f(CW\*(C`addi\*(C'\fR
|
||
+rather than \f(CW\*(C`li\*(C'\fR. All of the \fB\-m\fR arguments for
|
||
+\&\fBgas\fR that select a \s-1CPU\s0 are supported. These are:
|
||
+\&\fB403\fR, \fB405\fR, \fB440\fR, \fB464\fR, \fB476\fR,
|
||
+\&\fB601\fR, \fB603\fR, \fB604\fR, \fB620\fR, \fB7400\fR,
|
||
+\&\fB7410\fR, \fB7450\fR, \fB7455\fR, \fB750cl\fR,
|
||
+\&\fB821\fR, \fB850\fR, \fB860\fR, \fBa2\fR, \fBbooke\fR,
|
||
+\&\fBbooke32\fR, \fBcell\fR, \fBcom\fR, \fBe200z4\fR,
|
||
+\&\fBe300\fR, \fBe500\fR, \fBe500mc\fR, \fBe500mc64\fR,
|
||
+\&\fBe500x2\fR, \fBe5500\fR, \fBe6500\fR, \fBefs\fR,
|
||
+\&\fBpower4\fR, \fBpower5\fR, \fBpower6\fR, \fBpower7\fR,
|
||
+\&\fBpower8\fR, \fBpower9\fR, \fBppc\fR, \fBppc32\fR,
|
||
+\&\fBppc64\fR, \fBppc64bridge\fR, \fBppcps\fR, \fBpwr\fR,
|
||
+\&\fBpwr2\fR, \fBpwr4\fR, \fBpwr5\fR, \fBpwr5x\fR,
|
||
+\&\fBpwr6\fR, \fBpwr7\fR, \fBpwr8\fR, \fBpwr9\fR,
|
||
+\&\fBpwrx\fR, \fBtitan\fR, and \fBvle\fR.
|
||
+\&\fB32\fR and \fB64\fR modify the default or a prior \s-1CPU\s0
|
||
+selection, disabling and enabling 64\-bit insns respectively. In
|
||
+addition, \fBaltivec\fR, \fBany\fR, \fBhtm\fR, \fBvsx\fR,
|
||
+and \fBspe\fR add capabilities to a previous \fIor later\fR \s-1CPU\s0
|
||
+selection. \fBany\fR will disassemble any opcode known to
|
||
+binutils, but in cases where an opcode has two different meanings or
|
||
+different arguments, you may not see the disassembly you expect.
|
||
+If you disassemble without giving a \s-1CPU\s0 selection, a default will be
|
||
+chosen from information gleaned by \s-1BFD\s0 from the object files headers,
|
||
+but the result again may not be as you expect.
|
||
+.Sp
|
||
+For \s-1MIPS,\s0 this option controls the printing of instruction mnemonic
|
||
+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:
|
||
+.ie n .IP """no\-aliases""" 4
|
||
+.el .IP "\f(CWno\-aliases\fR" 4
|
||
+.IX Item "no-aliases"
|
||
+Print the 'raw' instruction mnemonic instead of some pseudo
|
||
+instruction mnemonic. I.e., print 'daddu' or 'or' instead of 'move',
|
||
+\&'sll' instead of 'nop', etc.
|
||
+.ie n .IP """msa""" 4
|
||
+.el .IP "\f(CWmsa\fR" 4
|
||
+.IX Item "msa"
|
||
+Disassemble \s-1MSA\s0 instructions.
|
||
+.ie n .IP """virt""" 4
|
||
+.el .IP "\f(CWvirt\fR" 4
|
||
+.IX Item "virt"
|
||
+Disassemble the virtualization \s-1ASE\s0 instructions.
|
||
+.ie n .IP """xpa""" 4
|
||
+.el .IP "\f(CWxpa\fR" 4
|
||
+.IX Item "xpa"
|
||
+Disassemble the eXtended Physical Address (\s-1XPA\s0) \s-1ASE\s0 instructions.
|
||
+.ie n .IP """gpr\-names=\fIABI\fP""" 4
|
||
+.el .IP "\f(CWgpr\-names=\f(CIABI\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=\fIABI\fP""" 4
|
||
+.el .IP "\f(CWfpr\-names=\f(CIABI\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=\fIARCH\fP""" 4
|
||
+.el .IP "\f(CWcp0\-names=\f(CIARCH\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=\fIARCH\fP""" 4
|
||
+.el .IP "\f(CWhwr\-names=\f(CIARCH\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=\fIABI\fP""" 4
|
||
+.el .IP "\f(CWreg\-names=\f(CIABI\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=\fIARCH\fP""" 4
|
||
+.el .IP "\f(CWreg\-names=\f(CIARCH\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 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\-P\fR \fIoptions\fR" 4
|
||
+.IX Item "-P options"
|
||
+.PD 0
|
||
+.IP "\fB\-\-private=\fR\fIoptions\fR" 4
|
||
+.IX Item "--private=options"
|
||
+.PD
|
||
+Print information that is specific to the object file format. The
|
||
+argument \fIoptions\fR is a comma separated list that depends on the
|
||
+format (the lists of options is displayed with the help).
|
||
+.Sp
|
||
+For \s-1XCOFF,\s0 the available options are:
|
||
+.RS 4
|
||
+.ie n .IP """header""" 4
|
||
+.el .IP "\f(CWheader\fR" 4
|
||
+.IX Item "header"
|
||
+.PD 0
|
||
+.ie n .IP """aout""" 4
|
||
+.el .IP "\f(CWaout\fR" 4
|
||
+.IX Item "aout"
|
||
+.ie n .IP """sections""" 4
|
||
+.el .IP "\f(CWsections\fR" 4
|
||
+.IX Item "sections"
|
||
+.ie n .IP """syms""" 4
|
||
+.el .IP "\f(CWsyms\fR" 4
|
||
+.IX Item "syms"
|
||
+.ie n .IP """relocs""" 4
|
||
+.el .IP "\f(CWrelocs\fR" 4
|
||
+.IX Item "relocs"
|
||
+.ie n .IP """lineno,""" 4
|
||
+.el .IP "\f(CWlineno,\fR" 4
|
||
+.IX Item "lineno,"
|
||
+.ie n .IP """loader""" 4
|
||
+.el .IP "\f(CWloader\fR" 4
|
||
+.IX Item "loader"
|
||
+.ie n .IP """except""" 4
|
||
+.el .IP "\f(CWexcept\fR" 4
|
||
+.IX Item "except"
|
||
+.ie n .IP """typchk""" 4
|
||
+.el .IP "\f(CWtypchk\fR" 4
|
||
+.IX Item "typchk"
|
||
+.ie n .IP """traceback""" 4
|
||
+.el .IP "\f(CWtraceback\fR" 4
|
||
+.IX Item "traceback"
|
||
+.ie n .IP """toc""" 4
|
||
+.el .IP "\f(CWtoc\fR" 4
|
||
+.IX Item "toc"
|
||
+.ie n .IP """ldinfo""" 4
|
||
+.el .IP "\f(CWldinfo\fR" 4
|
||
+.IX Item "ldinfo"
|
||
+.RE
|
||
+.RS 4
|
||
+.PD
|
||
+.Sp
|
||
+Not all object formats support this option. In particular the \s-1ELF\s0
|
||
+format does not use it.
|
||
+.RE
|
||
+.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. As for \fB\-r\fR, if used with \fB\-d\fR or
|
||
+\&\fB\-D\fR, the relocations are printed interspersed with the
|
||
+disassembly.
|
||
+.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\-\-source\-comment[=\fR\fItxt\fR\fB]\fR" 4
|
||
+.IX Item "--source-comment[=txt]"
|
||
+Like the \fB\-S\fR option, but all source code lines are displayed
|
||
+with a prefix of \fItxt\fR. Typically \fItxt\fR will be a comment
|
||
+string which can be used to distinguish the assembler code from the
|
||
+source code. If \fItxt\fR is not provided then a default string of
|
||
+\&\fI\*(L"# \*(R"\fR (hash followed by a space), will be used.
|
||
+.IP "\fB\-\-prefix=\fR\fIprefix\fR" 4
|
||
+.IX Item "--prefix=prefix"
|
||
+Specify \fIprefix\fR to add to the absolute paths when used with
|
||
+\&\fB\-S\fR.
|
||
+.IP "\fB\-\-prefix\-strip=\fR\fIlevel\fR" 4
|
||
+.IX Item "--prefix-strip=level"
|
||
+Indicate how many initial directory names to strip off the hardwired
|
||
+absolute paths. It has no effect without \fB\-\-prefix=\fR\fIprefix\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\-\-insn\-width=\fR\fIwidth\fR" 4
|
||
+.IX Item "--insn-width=width"
|
||
+Display \fIwidth\fR bytes on a single line when disassembling
|
||
+instructions.
|
||
+.IP "\fB\-\-visualize\-jumps[=color|=extended\-color|=off]\fR" 4
|
||
+.IX Item "--visualize-jumps[=color|=extended-color|=off]"
|
||
+Visualize jumps that stay inside a function by drawing \s-1ASCII\s0 art between
|
||
+the start and target addresses. The optional \fB=color\fR argument
|
||
+adds color to the output using simple terminal colors. Alternatively
|
||
+the \fB=extended\-color\fR argument will add color using 8bit
|
||
+colors, but these might not work on all terminals.
|
||
+.Sp
|
||
+If it is necessary to disable the \fBvisualize-jumps\fR option
|
||
+after it has previously been enabled then use
|
||
+\&\fBvisualize\-jumps=off\fR.
|
||
+.IP "\fB\-W[lLiaprmfFsoRtUuTgAckK]\fR" 4
|
||
+.IX Item "-W[lLiaprmfFsoRtUuTgAckK]"
|
||
+.PD 0
|
||
+.IP "\fB\-\-dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow\-links]\fR" 4
|
||
+.IX Item "--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]"
|
||
+.PD
|
||
+Displays the contents of the \s-1DWARF\s0 debug sections in the file, if any
|
||
+are present. Compressed debug sections are automatically decompressed
|
||
+(temporarily) before they are displayed. If one or more of the
|
||
+optional letters or words follows the switch then only those type(s)
|
||
+of data will be dumped. The letters and words refer to the following
|
||
+information:
|
||
+.RS 4
|
||
+.ie n .IP """a""" 4
|
||
+.el .IP "\f(CWa\fR" 4
|
||
+.IX Item "a"
|
||
+.PD 0
|
||
+.ie n .IP """=abbrev""" 4
|
||
+.el .IP "\f(CW=abbrev\fR" 4
|
||
+.IX Item "=abbrev"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_abbrev\fR section.
|
||
+.ie n .IP """A""" 4
|
||
+.el .IP "\f(CWA\fR" 4
|
||
+.IX Item "A"
|
||
+.PD 0
|
||
+.ie n .IP """=addr""" 4
|
||
+.el .IP "\f(CW=addr\fR" 4
|
||
+.IX Item "=addr"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_addr\fR section.
|
||
+.ie n .IP """c""" 4
|
||
+.el .IP "\f(CWc\fR" 4
|
||
+.IX Item "c"
|
||
+.PD 0
|
||
+.ie n .IP """=cu_index""" 4
|
||
+.el .IP "\f(CW=cu_index\fR" 4
|
||
+.IX Item "=cu_index"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_cu_index\fR and/or
|
||
+\&\fB.debug_tu_index\fR sections.
|
||
+.ie n .IP """f""" 4
|
||
+.el .IP "\f(CWf\fR" 4
|
||
+.IX Item "f"
|
||
+.PD 0
|
||
+.ie n .IP """=frames""" 4
|
||
+.el .IP "\f(CW=frames\fR" 4
|
||
+.IX Item "=frames"
|
||
+.PD
|
||
+Display the raw contents of a \fB.debug_frame\fR section.
|
||
+.ie n .IP """F""" 4
|
||
+.el .IP "\f(CWF\fR" 4
|
||
+.IX Item "F"
|
||
+.PD 0
|
||
+.ie n .IP """=frame\-interp""" 4
|
||
+.el .IP "\f(CW=frame\-interp\fR" 4
|
||
+.IX Item "=frame-interp"
|
||
+.PD
|
||
+Display the interpreted contents of a \fB.debug_frame\fR section.
|
||
+.ie n .IP """g""" 4
|
||
+.el .IP "\f(CWg\fR" 4
|
||
+.IX Item "g"
|
||
+.PD 0
|
||
+.ie n .IP """=gdb_index""" 4
|
||
+.el .IP "\f(CW=gdb_index\fR" 4
|
||
+.IX Item "=gdb_index"
|
||
+.PD
|
||
+Displays the contents of the \fB.gdb_index\fR and/or
|
||
+\&\fB.debug_names\fR sections.
|
||
+.ie n .IP """i""" 4
|
||
+.el .IP "\f(CWi\fR" 4
|
||
+.IX Item "i"
|
||
+.PD 0
|
||
+.ie n .IP """=info""" 4
|
||
+.el .IP "\f(CW=info\fR" 4
|
||
+.IX Item "=info"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_info\fR section. Note: the
|
||
+output from this option can also be restricted by the use of the
|
||
+\&\fB\-\-dwarf\-depth\fR and \fB\-\-dwarf\-start\fR options.
|
||
+.ie n .IP """k""" 4
|
||
+.el .IP "\f(CWk\fR" 4
|
||
+.IX Item "k"
|
||
+.PD 0
|
||
+.ie n .IP """=links""" 4
|
||
+.el .IP "\f(CW=links\fR" 4
|
||
+.IX Item "=links"
|
||
+.PD
|
||
+Displays the contents of the \fB.gnu_debuglink\fR and/or
|
||
+\&\fB.gnu_debugaltlink\fR sections. Also displays any links to
|
||
+separate dwarf object files (dwo), if they are specified by the
|
||
+DW_AT_GNU_dwo_name or DW_AT_dwo_name attributes in the
|
||
+\&\fB.debug_info\fR section.
|
||
+.ie n .IP """K""" 4
|
||
+.el .IP "\f(CWK\fR" 4
|
||
+.IX Item "K"
|
||
+.PD 0
|
||
+.ie n .IP """=follow\-links""" 4
|
||
+.el .IP "\f(CW=follow\-links\fR" 4
|
||
+.IX Item "=follow-links"
|
||
+.PD
|
||
+Display the contents of any selected debug sections that are found in
|
||
+linked, separate debug info file(s). This can result in multiple
|
||
+versions of the same debug section being displayed if it exists in
|
||
+more than one file.
|
||
+.Sp
|
||
+In addition, when displaying \s-1DWARF\s0 attributes, if a form is found that
|
||
+references the separate debug info file, then the referenced contents
|
||
+will also be displayed.
|
||
+.ie n .IP """l""" 4
|
||
+.el .IP "\f(CWl\fR" 4
|
||
+.IX Item "l"
|
||
+.PD 0
|
||
+.ie n .IP """=rawline""" 4
|
||
+.el .IP "\f(CW=rawline\fR" 4
|
||
+.IX Item "=rawline"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_line\fR section in a raw
|
||
+format.
|
||
+.ie n .IP """L""" 4
|
||
+.el .IP "\f(CWL\fR" 4
|
||
+.IX Item "L"
|
||
+.PD 0
|
||
+.ie n .IP """=decodedline""" 4
|
||
+.el .IP "\f(CW=decodedline\fR" 4
|
||
+.IX Item "=decodedline"
|
||
+.PD
|
||
+Displays the interpreted contents of the \fB.debug_line\fR section.
|
||
+.ie n .IP """m""" 4
|
||
+.el .IP "\f(CWm\fR" 4
|
||
+.IX Item "m"
|
||
+.PD 0
|
||
+.ie n .IP """=macro""" 4
|
||
+.el .IP "\f(CW=macro\fR" 4
|
||
+.IX Item "=macro"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_macro\fR and/or
|
||
+\&\fB.debug_macinfo\fR sections.
|
||
+.ie n .IP """o""" 4
|
||
+.el .IP "\f(CWo\fR" 4
|
||
+.IX Item "o"
|
||
+.PD 0
|
||
+.ie n .IP """=loc""" 4
|
||
+.el .IP "\f(CW=loc\fR" 4
|
||
+.IX Item "=loc"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_loc\fR and/or
|
||
+\&\fB.debug_loclists\fR sections.
|
||
+.ie n .IP """p""" 4
|
||
+.el .IP "\f(CWp\fR" 4
|
||
+.IX Item "p"
|
||
+.PD 0
|
||
+.ie n .IP """=pubnames""" 4
|
||
+.el .IP "\f(CW=pubnames\fR" 4
|
||
+.IX Item "=pubnames"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_pubnames\fR and/or
|
||
+\&\fB.debug_gnu_pubnames\fR sections.
|
||
+.ie n .IP """r""" 4
|
||
+.el .IP "\f(CWr\fR" 4
|
||
+.IX Item "r"
|
||
+.PD 0
|
||
+.ie n .IP """=aranges""" 4
|
||
+.el .IP "\f(CW=aranges\fR" 4
|
||
+.IX Item "=aranges"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_aranges\fR section.
|
||
+.ie n .IP """R""" 4
|
||
+.el .IP "\f(CWR\fR" 4
|
||
+.IX Item "R"
|
||
+.PD 0
|
||
+.ie n .IP """=Ranges""" 4
|
||
+.el .IP "\f(CW=Ranges\fR" 4
|
||
+.IX Item "=Ranges"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_ranges\fR and/or
|
||
+\&\fB.debug_rnglists\fR sections.
|
||
+.ie n .IP """s""" 4
|
||
+.el .IP "\f(CWs\fR" 4
|
||
+.IX Item "s"
|
||
+.PD 0
|
||
+.ie n .IP """=str""" 4
|
||
+.el .IP "\f(CW=str\fR" 4
|
||
+.IX Item "=str"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_str\fR, \fB.debug_line_str\fR
|
||
+and/or \fB.debug_str_offsets\fR sections.
|
||
+.ie n .IP """t""" 4
|
||
+.el .IP "\f(CWt\fR" 4
|
||
+.IX Item "t"
|
||
+.PD 0
|
||
+.ie n .IP """=pubtype""" 4
|
||
+.el .IP "\f(CW=pubtype\fR" 4
|
||
+.IX Item "=pubtype"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_pubtypes\fR and/or
|
||
+\&\fB.debug_gnu_pubtypes\fR sections.
|
||
+.ie n .IP """T""" 4
|
||
+.el .IP "\f(CWT\fR" 4
|
||
+.IX Item "T"
|
||
+.PD 0
|
||
+.ie n .IP """=trace_aranges""" 4
|
||
+.el .IP "\f(CW=trace_aranges\fR" 4
|
||
+.IX Item "=trace_aranges"
|
||
+.PD
|
||
+Displays the contents of the \fB.trace_aranges\fR section.
|
||
+.ie n .IP """u""" 4
|
||
+.el .IP "\f(CWu\fR" 4
|
||
+.IX Item "u"
|
||
+.PD 0
|
||
+.ie n .IP """=trace_abbrev""" 4
|
||
+.el .IP "\f(CW=trace_abbrev\fR" 4
|
||
+.IX Item "=trace_abbrev"
|
||
+.PD
|
||
+Displays the contents of the \fB.trace_abbrev\fR section.
|
||
+.ie n .IP """U""" 4
|
||
+.el .IP "\f(CWU\fR" 4
|
||
+.IX Item "U"
|
||
+.PD 0
|
||
+.ie n .IP """=trace_info""" 4
|
||
+.el .IP "\f(CW=trace_info\fR" 4
|
||
+.IX Item "=trace_info"
|
||
+.PD
|
||
+Displays the contents of the \fB.trace_info\fR section.
|
||
+.RE
|
||
+.RS 4
|
||
+.Sp
|
||
+Note: displaying the contents of \fB.debug_static_funcs\fR,
|
||
+\&\fB.debug_static_vars\fR and \fBdebug_weaknames\fR sections is not
|
||
+currently supported.
|
||
+.RE
|
||
+.IP "\fB\-\-dwarf\-depth=\fR\fIn\fR" 4
|
||
+.IX Item "--dwarf-depth=n"
|
||
+Limit the dump of the \f(CW\*(C`.debug_info\*(C'\fR section to \fIn\fR children.
|
||
+This is only useful with \fB\-\-debug\-dump=info\fR. The default is
|
||
+to print all DIEs; the special value 0 for \fIn\fR will also have this
|
||
+effect.
|
||
+.Sp
|
||
+With a non-zero value for \fIn\fR, DIEs at or deeper than \fIn\fR
|
||
+levels will not be printed. The range for \fIn\fR is zero-based.
|
||
+.IP "\fB\-\-dwarf\-start=\fR\fIn\fR" 4
|
||
+.IX Item "--dwarf-start=n"
|
||
+Print only DIEs beginning with the \s-1DIE\s0 numbered \fIn\fR. This is only
|
||
+useful with \fB\-\-debug\-dump=info\fR.
|
||
+.Sp
|
||
+If specified, this option will suppress printing of any header
|
||
+information and all DIEs before the \s-1DIE\s0 numbered \fIn\fR. Only
|
||
+siblings and children of the specified \s-1DIE\s0 will be printed.
|
||
+.Sp
|
||
+This can be used in conjunction with \fB\-\-dwarf\-depth\fR.
|
||
+.IP "\fB\-\-dwarf\-check\fR" 4
|
||
+.IX Item "--dwarf-check"
|
||
+Enable additional checks for consistency of Dwarf information.
|
||
+.IP "\fB\-\-ctf=\fR\fIsection\fR" 4
|
||
+.IX Item "--ctf=section"
|
||
+Display the contents of the specified \s-1CTF\s0 section. \s-1CTF\s0 sections themselves
|
||
+contain many subsections, all of which are displayed in order.
|
||
+.IP "\fB\-\-ctf\-parent=\fR\fIsection\fR" 4
|
||
+.IX Item "--ctf-parent=section"
|
||
+Specify the name of another section from which the \s-1CTF\s0 dictionary can inherit
|
||
+types. (If none is specified, we assume the \s-1CTF\s0 dictionary inherits types
|
||
+from the default-named member of the archive contained within this section.)
|
||
+.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,
|
||
+although the display format is different. The format of the output
|
||
+depends upon the format of the file being dumped, but there are two main
|
||
+types. One looks like this:
|
||
+.Sp
|
||
+.Vb 2
|
||
+\& [ 4](sec 3)(fl 0x00)(ty 0)(scl 3) (nx 1) 0x00000000 .bss
|
||
+\& [ 6](sec 1)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 fred
|
||
+.Ve
|
||
+.Sp
|
||
+where the number inside the square brackets is the number of the entry
|
||
+in the symbol table, the \fIsec\fR number is the section number, the
|
||
+\&\fIfl\fR value are the symbol's flag bits, the \fIty\fR number is the
|
||
+symbol's type, the \fIscl\fR number is the symbol's storage class and
|
||
+the \fInx\fR value is the number of auxilary entries associated with
|
||
+the symbol. The last two fields are the symbol's value and its name.
|
||
+.Sp
|
||
+The other common output format, usually seen with \s-1ELF\s0 based files,
|
||
+looks like this:
|
||
+.Sp
|
||
+.Vb 2
|
||
+\& 00000000 l d .bss 00000000 .bss
|
||
+\& 00000000 g .text 00000000 fred
|
||
+.Ve
|
||
+.Sp
|
||
+Here the first number is the symbol's value (sometimes refered to as
|
||
+its address). The next field is actually a set of characters and
|
||
+spaces indicating the flag bits that are set on the symbol. These
|
||
+characters are described below. Next is the section with which the
|
||
+symbol is associated or \fI*ABS*\fR if the section is absolute (ie
|
||
+not connected with any section), or \fI*UND*\fR if the section is
|
||
+referenced in the file being dumped, but not defined there.
|
||
+.Sp
|
||
+After the section name comes another field, a number, which for common
|
||
+symbols is the alignment and for other symbol is the size. Finally
|
||
+the symbol's name is displayed.
|
||
+.Sp
|
||
+The flag characters are divided into 7 groups as follows:
|
||
+.RS 4
|
||
+.ie n .IP """l""" 4
|
||
+.el .IP "\f(CWl\fR" 4
|
||
+.IX Item "l"
|
||
+.PD 0
|
||
+.ie n .IP """g""" 4
|
||
+.el .IP "\f(CWg\fR" 4
|
||
+.IX Item "g"
|
||
+.ie n .IP """u""" 4
|
||
+.el .IP "\f(CWu\fR" 4
|
||
+.IX Item "u"
|
||
+.ie n .IP """!""" 4
|
||
+.el .IP "\f(CW!\fR" 4
|
||
+.IX Item "!"
|
||
+.PD
|
||
+The symbol is a local (l), global (g), unique global (u), neither
|
||
+global nor local (a space) or both global and local (!). A
|
||
+symbol can be neither local or global for a variety of reasons, e.g.,
|
||
+because it is used for debugging, but it is probably an indication of
|
||
+a bug if it is ever both local and global. Unique global symbols are
|
||
+a \s-1GNU\s0 extension to the standard set of \s-1ELF\s0 symbol bindings. For such
|
||
+a symbol the dynamic linker will make sure that in the entire process
|
||
+there is just one symbol with this name and type in use.
|
||
+.ie n .IP """w""" 4
|
||
+.el .IP "\f(CWw\fR" 4
|
||
+.IX Item "w"
|
||
+The symbol is weak (w) or strong (a space).
|
||
+.ie n .IP """C""" 4
|
||
+.el .IP "\f(CWC\fR" 4
|
||
+.IX Item "C"
|
||
+The symbol denotes a constructor (C) or an ordinary symbol (a space).
|
||
+.ie n .IP """W""" 4
|
||
+.el .IP "\f(CWW\fR" 4
|
||
+.IX Item "W"
|
||
+The symbol is a warning (W) or a normal symbol (a space). A warning
|
||
+symbol's name is a message to be displayed if the symbol following the
|
||
+warning symbol is ever referenced.
|
||
+.ie n .IP """I""" 4
|
||
+.el .IP "\f(CWI\fR" 4
|
||
+.IX Item "I"
|
||
+.PD 0
|
||
+.ie n .IP """i""" 4
|
||
+.el .IP "\f(CWi\fR" 4
|
||
+.IX Item "i"
|
||
+.PD
|
||
+The symbol is an indirect reference to another symbol (I), a function
|
||
+to be evaluated during reloc processing (i) or a normal symbol (a
|
||
+space).
|
||
+.ie n .IP """d""" 4
|
||
+.el .IP "\f(CWd\fR" 4
|
||
+.IX Item "d"
|
||
+.PD 0
|
||
+.ie n .IP """D""" 4
|
||
+.el .IP "\f(CWD\fR" 4
|
||
+.IX Item "D"
|
||
+.PD
|
||
+The symbol is a debugging symbol (d) or a dynamic symbol (D) or a
|
||
+normal symbol (a space).
|
||
+.ie n .IP """F""" 4
|
||
+.el .IP "\f(CWF\fR" 4
|
||
+.IX Item "F"
|
||
+.PD 0
|
||
+.ie n .IP """f""" 4
|
||
+.el .IP "\f(CWf\fR" 4
|
||
+.IX Item "f"
|
||
+.ie n .IP """O""" 4
|
||
+.el .IP "\f(CWO\fR" 4
|
||
+.IX Item "O"
|
||
+.PD
|
||
+The symbol is the name of a function (F) or a file (f) or an object
|
||
+(O) or just a normal symbol (a space).
|
||
+.RE
|
||
+.RS 4
|
||
+.RE
|
||
+.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.
|
||
+.Sp
|
||
+The output format is similar to that produced by the \fB\-\-syms\fR
|
||
+option, except that an extra field is inserted before the symbol's
|
||
+name, giving the version information associated with the symbol.
|
||
+If the version is the default version to be used when resolving
|
||
+unversioned references to the symbol then it's displayed as is,
|
||
+otherwise it's put into parentheses.
|
||
+.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"
|
||
+\&\fBnm\fR\|(1), \fBreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||
+.SH "COPYRIGHT"
|
||
+.IX Header "COPYRIGHT"
|
||
+Copyright (c) 1991\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/ranlib.1 b/binutils/doc/ranlib.1
|
||
--- a/binutils/doc/ranlib.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/ranlib.1 2021-03-30 17:47:59.838886000 -0300
|
||
@@ -0,0 +1,227 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.SH "NAME"
|
||
+ranlib \- generate an index to an archive
|
||
+.SH "SYNOPSIS"
|
||
+.IX Header "SYNOPSIS"
|
||
+ranlib [\fB\-\-plugin\fR \fIname\fR] [\fB\-DhHvVt\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\-h\fR" 4
|
||
+.IX Item "-h"
|
||
+.PD 0
|
||
+.IP "\fB\-H\fR" 4
|
||
+.IX Item "-H"
|
||
+.IP "\fB\-\-help\fR" 4
|
||
+.IX Item "--help"
|
||
+.PD
|
||
+Show usage information for \fBranlib\fR.
|
||
+.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\-D\fR" 4
|
||
+.IX Item "-D"
|
||
+Operate in \fIdeterministic\fR mode. The symbol map archive member's
|
||
+header will show zero for the \s-1UID, GID,\s0 and timestamp. When this
|
||
+option is used, multiple runs will produce identical output files.
|
||
+.Sp
|
||
+If \fIbinutils\fR was configured with
|
||
+\&\fB\-\-enable\-deterministic\-archives\fR, then this mode is on by
|
||
+default. It can be disabled with the \fB\-U\fR option, described
|
||
+below.
|
||
+.IP "\fB\-t\fR" 4
|
||
+.IX Item "-t"
|
||
+Update the timestamp of the symbol map of an archive.
|
||
+.IP "\fB\-U\fR" 4
|
||
+.IX Item "-U"
|
||
+Do \fInot\fR operate in \fIdeterministic\fR mode. This is the
|
||
+inverse of the \fB\-D\fR option, above: the archive index will get
|
||
+actual \s-1UID, GID,\s0 timestamp, and file mode values.
|
||
+.Sp
|
||
+If \fIbinutils\fR was configured \fIwithout\fR
|
||
+\&\fB\-\-enable\-deterministic\-archives\fR, then this mode is on by
|
||
+default.
|
||
+.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"
|
||
+\&\fBar\fR\|(1), \fBnm\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||
+.SH "COPYRIGHT"
|
||
+.IX Header "COPYRIGHT"
|
||
+Copyright (c) 1991\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/readelf.1 b/binutils/doc/readelf.1
|
||
--- a/binutils/doc/readelf.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/readelf.1 2021-03-30 17:47:59.838886000 -0300
|
||
@@ -0,0 +1,720 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.SH "NAME"
|
||
+readelf \- display 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\-\-dyn\-syms\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\-p\fR <number or name>|\fB\-\-string\-dump=\fR<number or name>]
|
||
+ [\fB\-R\fR <number or name>|\fB\-\-relocated\-dump=\fR<number or name>]
|
||
+ [\fB\-z\fR|\fB\-\-decompress\fR]
|
||
+ [\fB\-c\fR|\fB\-\-archive\-index\fR]
|
||
+ [\fB\-w[lLiaprmfFsoRtUuTgAckK]\fR|
|
||
+ \fB\-\-debug\-dump\fR[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow\-links]]
|
||
+ [\fB\-\-dwarf\-depth=\fR\fIn\fR]
|
||
+ [\fB\-\-dwarf\-start=\fR\fIn\fR]
|
||
+ [\fB\-\-ctf=\fR\fIsection\fR]
|
||
+ [\fB\-\-ctf\-parent=\fR\fIsection\fR]
|
||
+ [\fB\-\-ctf\-symbols=\fR\fIsection\fR]
|
||
+ [\fB\-\-ctf\-strings=\fR\fIsection\fR]
|
||
+ [\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 specifying \fB\-\-file\-header\fR,
|
||
+\&\fB\-\-program\-headers\fR, \fB\-\-sections\fR, \fB\-\-symbols\fR,
|
||
+\&\fB\-\-relocs\fR, \fB\-\-dynamic\fR, \fB\-\-notes\fR,
|
||
+\&\fB\-\-version\-info\fR, \fB\-\-arch\-specific\fR, \fB\-\-unwind\fR,
|
||
+\&\fB\-\-section\-groups\fR and \fB\-\-histogram\fR.
|
||
+.Sp
|
||
+Note \- this option does not enable \fB\-\-use\-dynamic\fR itself, so
|
||
+if that option is not present on the command line then dynamic symbols
|
||
+and dynamic relocs will not be displayed.
|
||
+.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.
|
||
+If a symbol has version information associated with it then this is
|
||
+displayed as well. The version string is displayed as a suffix to the
|
||
+symbol name, preceeded by an @ character. For example
|
||
+\&\fBfoo@VER_1\fR. If the version is the default version to be used
|
||
+when resolving unversioned references to the symbol then it is
|
||
+displayed as a suffix preceeded by two @ characters. For example
|
||
+\&\fBfoo@@VER_2\fR.
|
||
+.IP "\fB\-\-dyn\-syms\fR" 4
|
||
+.IX Item "--dyn-syms"
|
||
+Displays the entries in dynamic symbol table section of the file, if it
|
||
+has one. The output format is the same as the format used by the
|
||
+\&\fB\-\-syms\fR option.
|
||
+.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 ELF\s0 files, as well as \s-1ARM\s0 unwind tables
|
||
+(\f(CW\*(C`.ARM.exidx\*(C'\fR / \f(CW\*(C`.ARM.extab\*(C'\fR) are currently supported. If
|
||
+support is not yet implemented for your architecture you could try
|
||
+dumping the contents of the \fI.eh_frames\fR section using the
|
||
+\&\fB\-\-debug\-dump=frames\fR or \fB\-\-debug\-dump=frames\-interp\fR
|
||
+options.
|
||
+.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 hash tables in the file's dynamic section, rather than the
|
||
+symbol table sections.
|
||
+.Sp
|
||
+When displaying relocations, this option makes \fBreadelf\fR
|
||
+display the dynamic relocations rather than the static relocations.
|
||
+.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 bytes.
|
||
+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\-R <number or name>\fR" 4
|
||
+.IX Item "-R <number or name>"
|
||
+.PD 0
|
||
+.IP "\fB\-\-relocated\-dump=<number or name>\fR" 4
|
||
+.IX Item "--relocated-dump=<number or name>"
|
||
+.PD
|
||
+Displays the contents of the indicated section as a hexadecimal
|
||
+bytes. 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. The contents of the section will be relocated
|
||
+before they are displayed.
|
||
+.IP "\fB\-p <number or name>\fR" 4
|
||
+.IX Item "-p <number or name>"
|
||
+.PD 0
|
||
+.IP "\fB\-\-string\-dump=<number or name>\fR" 4
|
||
+.IX Item "--string-dump=<number or name>"
|
||
+.PD
|
||
+Displays the contents of the indicated section as printable strings.
|
||
+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\-z\fR" 4
|
||
+.IX Item "-z"
|
||
+.PD 0
|
||
+.IP "\fB\-\-decompress\fR" 4
|
||
+.IX Item "--decompress"
|
||
+.PD
|
||
+Requests that the section(s) being dumped by \fBx\fR, \fBR\fR or
|
||
+\&\fBp\fR options are decompressed before being displayed. If the
|
||
+section(s) are not compressed then they are displayed as is.
|
||
+.IP "\fB\-c\fR" 4
|
||
+.IX Item "-c"
|
||
+.PD 0
|
||
+.IP "\fB\-\-archive\-index\fR" 4
|
||
+.IX Item "--archive-index"
|
||
+.PD
|
||
+Displays the file symbol index information contained in the header part
|
||
+of binary archives. Performs the same function as the \fBt\fR
|
||
+command to \fBar\fR, but without using the \s-1BFD\s0 library.
|
||
+.IP "\fB\-w[lLiaprmfFsoRtUuTgAckK]\fR" 4
|
||
+.IX Item "-w[lLiaprmfFsoRtUuTgAckK]"
|
||
+.PD 0
|
||
+.IP "\fB\-\-debug\-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow\-links]\fR" 4
|
||
+.IX Item "--debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]"
|
||
+.PD
|
||
+Displays the contents of the \s-1DWARF\s0 debug sections in the file, if any
|
||
+are present. Compressed debug sections are automatically decompressed
|
||
+(temporarily) before they are displayed. If one or more of the
|
||
+optional letters or words follows the switch then only those type(s)
|
||
+of data will be dumped. The letters and words refer to the following
|
||
+information:
|
||
+.RS 4
|
||
+.ie n .IP """a""" 4
|
||
+.el .IP "\f(CWa\fR" 4
|
||
+.IX Item "a"
|
||
+.PD 0
|
||
+.ie n .IP """=abbrev""" 4
|
||
+.el .IP "\f(CW=abbrev\fR" 4
|
||
+.IX Item "=abbrev"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_abbrev\fR section.
|
||
+.ie n .IP """A""" 4
|
||
+.el .IP "\f(CWA\fR" 4
|
||
+.IX Item "A"
|
||
+.PD 0
|
||
+.ie n .IP """=addr""" 4
|
||
+.el .IP "\f(CW=addr\fR" 4
|
||
+.IX Item "=addr"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_addr\fR section.
|
||
+.ie n .IP """c""" 4
|
||
+.el .IP "\f(CWc\fR" 4
|
||
+.IX Item "c"
|
||
+.PD 0
|
||
+.ie n .IP """=cu_index""" 4
|
||
+.el .IP "\f(CW=cu_index\fR" 4
|
||
+.IX Item "=cu_index"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_cu_index\fR and/or
|
||
+\&\fB.debug_tu_index\fR sections.
|
||
+.ie n .IP """f""" 4
|
||
+.el .IP "\f(CWf\fR" 4
|
||
+.IX Item "f"
|
||
+.PD 0
|
||
+.ie n .IP """=frames""" 4
|
||
+.el .IP "\f(CW=frames\fR" 4
|
||
+.IX Item "=frames"
|
||
+.PD
|
||
+Display the raw contents of a \fB.debug_frame\fR section.
|
||
+.ie n .IP """F""" 4
|
||
+.el .IP "\f(CWF\fR" 4
|
||
+.IX Item "F"
|
||
+.PD 0
|
||
+.ie n .IP """=frame\-interp""" 4
|
||
+.el .IP "\f(CW=frame\-interp\fR" 4
|
||
+.IX Item "=frame-interp"
|
||
+.PD
|
||
+Display the interpreted contents of a \fB.debug_frame\fR section.
|
||
+.ie n .IP """g""" 4
|
||
+.el .IP "\f(CWg\fR" 4
|
||
+.IX Item "g"
|
||
+.PD 0
|
||
+.ie n .IP """=gdb_index""" 4
|
||
+.el .IP "\f(CW=gdb_index\fR" 4
|
||
+.IX Item "=gdb_index"
|
||
+.PD
|
||
+Displays the contents of the \fB.gdb_index\fR and/or
|
||
+\&\fB.debug_names\fR sections.
|
||
+.ie n .IP """i""" 4
|
||
+.el .IP "\f(CWi\fR" 4
|
||
+.IX Item "i"
|
||
+.PD 0
|
||
+.ie n .IP """=info""" 4
|
||
+.el .IP "\f(CW=info\fR" 4
|
||
+.IX Item "=info"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_info\fR section. Note: the
|
||
+output from this option can also be restricted by the use of the
|
||
+\&\fB\-\-dwarf\-depth\fR and \fB\-\-dwarf\-start\fR options.
|
||
+.ie n .IP """k""" 4
|
||
+.el .IP "\f(CWk\fR" 4
|
||
+.IX Item "k"
|
||
+.PD 0
|
||
+.ie n .IP """=links""" 4
|
||
+.el .IP "\f(CW=links\fR" 4
|
||
+.IX Item "=links"
|
||
+.PD
|
||
+Displays the contents of the \fB.gnu_debuglink\fR and/or
|
||
+\&\fB.gnu_debugaltlink\fR sections. Also displays any links to
|
||
+separate dwarf object files (dwo), if they are specified by the
|
||
+DW_AT_GNU_dwo_name or DW_AT_dwo_name attributes in the
|
||
+\&\fB.debug_info\fR section.
|
||
+.ie n .IP """K""" 4
|
||
+.el .IP "\f(CWK\fR" 4
|
||
+.IX Item "K"
|
||
+.PD 0
|
||
+.ie n .IP """=follow\-links""" 4
|
||
+.el .IP "\f(CW=follow\-links\fR" 4
|
||
+.IX Item "=follow-links"
|
||
+.PD
|
||
+Display the contents of any selected debug sections that are found in
|
||
+linked, separate debug info file(s). This can result in multiple
|
||
+versions of the same debug section being displayed if it exists in
|
||
+more than one file.
|
||
+.Sp
|
||
+In addition, when displaying \s-1DWARF\s0 attributes, if a form is found that
|
||
+references the separate debug info file, then the referenced contents
|
||
+will also be displayed.
|
||
+.ie n .IP """l""" 4
|
||
+.el .IP "\f(CWl\fR" 4
|
||
+.IX Item "l"
|
||
+.PD 0
|
||
+.ie n .IP """=rawline""" 4
|
||
+.el .IP "\f(CW=rawline\fR" 4
|
||
+.IX Item "=rawline"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_line\fR section in a raw
|
||
+format.
|
||
+.ie n .IP """L""" 4
|
||
+.el .IP "\f(CWL\fR" 4
|
||
+.IX Item "L"
|
||
+.PD 0
|
||
+.ie n .IP """=decodedline""" 4
|
||
+.el .IP "\f(CW=decodedline\fR" 4
|
||
+.IX Item "=decodedline"
|
||
+.PD
|
||
+Displays the interpreted contents of the \fB.debug_line\fR section.
|
||
+.ie n .IP """m""" 4
|
||
+.el .IP "\f(CWm\fR" 4
|
||
+.IX Item "m"
|
||
+.PD 0
|
||
+.ie n .IP """=macro""" 4
|
||
+.el .IP "\f(CW=macro\fR" 4
|
||
+.IX Item "=macro"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_macro\fR and/or
|
||
+\&\fB.debug_macinfo\fR sections.
|
||
+.ie n .IP """o""" 4
|
||
+.el .IP "\f(CWo\fR" 4
|
||
+.IX Item "o"
|
||
+.PD 0
|
||
+.ie n .IP """=loc""" 4
|
||
+.el .IP "\f(CW=loc\fR" 4
|
||
+.IX Item "=loc"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_loc\fR and/or
|
||
+\&\fB.debug_loclists\fR sections.
|
||
+.ie n .IP """p""" 4
|
||
+.el .IP "\f(CWp\fR" 4
|
||
+.IX Item "p"
|
||
+.PD 0
|
||
+.ie n .IP """=pubnames""" 4
|
||
+.el .IP "\f(CW=pubnames\fR" 4
|
||
+.IX Item "=pubnames"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_pubnames\fR and/or
|
||
+\&\fB.debug_gnu_pubnames\fR sections.
|
||
+.ie n .IP """r""" 4
|
||
+.el .IP "\f(CWr\fR" 4
|
||
+.IX Item "r"
|
||
+.PD 0
|
||
+.ie n .IP """=aranges""" 4
|
||
+.el .IP "\f(CW=aranges\fR" 4
|
||
+.IX Item "=aranges"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_aranges\fR section.
|
||
+.ie n .IP """R""" 4
|
||
+.el .IP "\f(CWR\fR" 4
|
||
+.IX Item "R"
|
||
+.PD 0
|
||
+.ie n .IP """=Ranges""" 4
|
||
+.el .IP "\f(CW=Ranges\fR" 4
|
||
+.IX Item "=Ranges"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_ranges\fR and/or
|
||
+\&\fB.debug_rnglists\fR sections.
|
||
+.ie n .IP """s""" 4
|
||
+.el .IP "\f(CWs\fR" 4
|
||
+.IX Item "s"
|
||
+.PD 0
|
||
+.ie n .IP """=str""" 4
|
||
+.el .IP "\f(CW=str\fR" 4
|
||
+.IX Item "=str"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_str\fR, \fB.debug_line_str\fR
|
||
+and/or \fB.debug_str_offsets\fR sections.
|
||
+.ie n .IP """t""" 4
|
||
+.el .IP "\f(CWt\fR" 4
|
||
+.IX Item "t"
|
||
+.PD 0
|
||
+.ie n .IP """=pubtype""" 4
|
||
+.el .IP "\f(CW=pubtype\fR" 4
|
||
+.IX Item "=pubtype"
|
||
+.PD
|
||
+Displays the contents of the \fB.debug_pubtypes\fR and/or
|
||
+\&\fB.debug_gnu_pubtypes\fR sections.
|
||
+.ie n .IP """T""" 4
|
||
+.el .IP "\f(CWT\fR" 4
|
||
+.IX Item "T"
|
||
+.PD 0
|
||
+.ie n .IP """=trace_aranges""" 4
|
||
+.el .IP "\f(CW=trace_aranges\fR" 4
|
||
+.IX Item "=trace_aranges"
|
||
+.PD
|
||
+Displays the contents of the \fB.trace_aranges\fR section.
|
||
+.ie n .IP """u""" 4
|
||
+.el .IP "\f(CWu\fR" 4
|
||
+.IX Item "u"
|
||
+.PD 0
|
||
+.ie n .IP """=trace_abbrev""" 4
|
||
+.el .IP "\f(CW=trace_abbrev\fR" 4
|
||
+.IX Item "=trace_abbrev"
|
||
+.PD
|
||
+Displays the contents of the \fB.trace_abbrev\fR section.
|
||
+.ie n .IP """U""" 4
|
||
+.el .IP "\f(CWU\fR" 4
|
||
+.IX Item "U"
|
||
+.PD 0
|
||
+.ie n .IP """=trace_info""" 4
|
||
+.el .IP "\f(CW=trace_info\fR" 4
|
||
+.IX Item "=trace_info"
|
||
+.PD
|
||
+Displays the contents of the \fB.trace_info\fR section.
|
||
+.RE
|
||
+.RS 4
|
||
+.Sp
|
||
+Note: displaying the contents of \fB.debug_static_funcs\fR,
|
||
+\&\fB.debug_static_vars\fR and \fBdebug_weaknames\fR sections is not
|
||
+currently supported.
|
||
+.RE
|
||
+.IP "\fB\-\-dwarf\-depth=\fR\fIn\fR" 4
|
||
+.IX Item "--dwarf-depth=n"
|
||
+Limit the dump of the \f(CW\*(C`.debug_info\*(C'\fR section to \fIn\fR children.
|
||
+This is only useful with \fB\-\-debug\-dump=info\fR. The default is
|
||
+to print all DIEs; the special value 0 for \fIn\fR will also have this
|
||
+effect.
|
||
+.Sp
|
||
+With a non-zero value for \fIn\fR, DIEs at or deeper than \fIn\fR
|
||
+levels will not be printed. The range for \fIn\fR is zero-based.
|
||
+.IP "\fB\-\-dwarf\-start=\fR\fIn\fR" 4
|
||
+.IX Item "--dwarf-start=n"
|
||
+Print only DIEs beginning with the \s-1DIE\s0 numbered \fIn\fR. This is only
|
||
+useful with \fB\-\-debug\-dump=info\fR.
|
||
+.Sp
|
||
+If specified, this option will suppress printing of any header
|
||
+information and all DIEs before the \s-1DIE\s0 numbered \fIn\fR. Only
|
||
+siblings and children of the specified \s-1DIE\s0 will be printed.
|
||
+.Sp
|
||
+This can be used in conjunction with \fB\-\-dwarf\-depth\fR.
|
||
+.IP "\fB\-\-ctf=\fR\fIsection\fR" 4
|
||
+.IX Item "--ctf=section"
|
||
+Display the contents of the specified \s-1CTF\s0 section. \s-1CTF\s0 sections themselves
|
||
+contain many subsections, all of which are displayed in order.
|
||
+.IP "\fB\-\-ctf\-parent=\fR\fIsection\fR" 4
|
||
+.IX Item "--ctf-parent=section"
|
||
+Specify the name of another section from which the \s-1CTF\s0 dictionary can inherit
|
||
+types. (If none is specified, we assume the \s-1CTF\s0 dictionary inherits types
|
||
+from the default-named member of the archive contained within this section.)
|
||
+.IP "\fB\-\-ctf\-symbols=\fR\fIsection\fR" 4
|
||
+.IX Item "--ctf-symbols=section"
|
||
+.PD 0
|
||
+.IP "\fB\-\-ctf\-strings=\fR\fIsection\fR" 4
|
||
+.IX Item "--ctf-strings=section"
|
||
+.PD
|
||
+Specify the name of another section from which the \s-1CTF\s0 file can inherit
|
||
+strings and symbols. By default, the \f(CW\*(C`.symtab\*(C'\fR and its linked
|
||
+string table are used.
|
||
+.Sp
|
||
+If either of \fB\-\-ctf\-symbols\fR or \fB\-\-ctf\-strings\fR is specified, the
|
||
+other must be specified as well.
|
||
+.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"
|
||
+\&\fBobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||
+.SH "COPYRIGHT"
|
||
+.IX Header "COPYRIGHT"
|
||
+Copyright (c) 1991\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/size.1 b/binutils/doc/size.1
|
||
--- a/binutils/doc/size.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/size.1 2021-03-30 17:47:59.838886000 -0300
|
||
@@ -0,0 +1,297 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.SH "NAME"
|
||
+size \- list section sizes and total size of binary files
|
||
+.SH "SYNOPSIS"
|
||
+.IX Header "SYNOPSIS"
|
||
+size [\fB\-A\fR|\fB\-B\fR|\fB\-G\fR|\fB\-\-format=\fR\fIcompatibility\fR]
|
||
+ [\fB\-\-help\fR]
|
||
+ [\fB\-d\fR|\fB\-o\fR|\fB\-x\fR|\fB\-\-radix=\fR\fInumber\fR]
|
||
+ [\fB\-\-common\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 binary files \fIobjfile\fR on its argument list.
|
||
+By default, one line of output is generated for each file or each
|
||
+module if the file is an archive.
|
||
+.PP
|
||
+\&\fIobjfile\fR... are the files to be examined. If none are
|
||
+specified, the file \f(CW\*(C`a.out\*(C'\fR will be used instead.
|
||
+.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\-G\fR" 4
|
||
+.IX Item "-G"
|
||
+.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. Alternatively, you can choose the \s-1GNU\s0 format output
|
||
+(using \fB\-G\fR, or \fB\-\-format=gnu\fR), this is similar to
|
||
+Berkeley's output format, but sizes are counted differently.
|
||
+.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
|
||
+The Berkeley style output counts read only data in the \f(CW\*(C`text\*(C'\fR
|
||
+column, not in the \f(CW\*(C`data\*(C'\fR column, the \f(CW\*(C`dec\*(C'\fR and \f(CW\*(C`hex\*(C'\fR
|
||
+columns both display the sum of the \f(CW\*(C`text\*(C'\fR, \f(CW\*(C`data\*(C'\fR, and
|
||
+\&\f(CW\*(C`bss\*(C'\fR columns in decimal and hexadecimal respectively.
|
||
+.Sp
|
||
+The \s-1GNU\s0 format counts read only data in the \f(CW\*(C`data\*(C'\fR column, not
|
||
+the \f(CW\*(C`text\*(C'\fR column, and only displays the sum of the \f(CW\*(C`text\*(C'\fR,
|
||
+\&\f(CW\*(C`data\*(C'\fR, and \f(CW\*(C`bss\*(C'\fR columns once, in the \f(CW\*(C`total\*(C'\fR column.
|
||
+The \fB\-\-radix\fR option can be used to change the number base for
|
||
+all columns. Here is the same data displayed with \s-1GNU\s0 conventions:
|
||
+.Sp
|
||
+.Vb 4
|
||
+\& $ size \-\-format=GNU ranlib size
|
||
+\& text data bss total filename
|
||
+\& 279880 96920 11592 388392 ranlib
|
||
+\& 279880 96920 11888 388688 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
|
||
+\&
|
||
+\&
|
||
+\& 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\-\-common\fR" 4
|
||
+.IX Item "--common"
|
||
+Print total size of common symbols in each file. When using Berkeley
|
||
+or \s-1GNU\s0 format these are included in the bss size.
|
||
+.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 or \s-1GNU\s0 format 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"
|
||
+\&\fBar\fR\|(1), \fBobjdump\fR\|(1), \fBreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
|
||
+.SH "COPYRIGHT"
|
||
+.IX Header "COPYRIGHT"
|
||
+Copyright (c) 1991\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/strings.1 b/binutils/doc/strings.1
|
||
--- a/binutils/doc/strings.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/strings.1 2021-03-30 17:47:59.838886000 -0300
|
||
@@ -0,0 +1,315 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.SH "NAME"
|
||
+strings \- print the sequences of printable characters in files
|
||
+.SH "SYNOPSIS"
|
||
+.IX Header "SYNOPSIS"
|
||
+strings [\fB\-afovV\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\-T\fR \fIbfdname\fR] [\fB\-\-target=\fR\fIbfdname\fR]
|
||
+ [\fB\-w\fR] [\fB\-\-include\-all\-whitespace\fR]
|
||
+ [\fB\-s\fR] [\fB\-\-output\-separator\fR\fIsep_string\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.
|
||
+.PP
|
||
+Depending upon how the strings program was configured it will default
|
||
+to either displaying all the printable sequences that it can find in
|
||
+each file, or only those sequences that are in loadable, initialized
|
||
+data sections. If the file type in unrecognizable, or if strings is
|
||
+reading from stdin then it will always display all of the printable
|
||
+sequences that it can find.
|
||
+.PP
|
||
+For backwards compatibility any file that occurs after a command-line
|
||
+option of just \fB\-\fR will also be scanned in full, regardless of
|
||
+the presence of any \fB\-d\fR option.
|
||
+.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
|
||
+Scan the whole file, regardless of what sections it contains or
|
||
+whether those sections are loaded or initialized. Normally this is
|
||
+the default behaviour, but strings can be configured so that the
|
||
+\&\fB\-d\fR is the default instead.
|
||
+.Sp
|
||
+The \fB\-\fR option is position dependent and forces strings to
|
||
+perform full scans of any file that is mentioned after the \fB\-\fR
|
||
+on the command line, even if the \fB\-d\fR option has been
|
||
+specified.
|
||
+.IP "\fB\-d\fR" 4
|
||
+.IX Item "-d"
|
||
+.PD 0
|
||
+.IP "\fB\-\-data\fR" 4
|
||
+.IX Item "--data"
|
||
+.PD
|
||
+Only print strings from initialized, loaded data sections in the
|
||
+file. This may reduce the amount of garbage in the output, but it
|
||
+also exposes the strings program to any security flaws that may be
|
||
+present in the \s-1BFD\s0 library used to scan and load sections. Strings
|
||
+can be configured so that this option is the default behaviour. In
|
||
+such cases the \fB\-a\fR option can be used to avoid using the \s-1BFD\s0
|
||
+library and instead just print all of the strings found in the file.
|
||
+.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, ISO 8859,\s0 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. (\fBl\fR
|
||
+and \fBb\fR apply to, for example, Unicode \s-1UTF\-16/UCS\-2\s0 encodings).
|
||
+.IP "\fB\-T\fR \fIbfdname\fR" 4
|
||
+.IX Item "-T bfdname"
|
||
+.PD 0
|
||
+.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
|
||
+.IX Item "--target=bfdname"
|
||
+.PD
|
||
+Specify an object code format other than your system's default format.
|
||
+.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
|
||
+Print the program version number on the standard output and exit.
|
||
+.IP "\fB\-w\fR" 4
|
||
+.IX Item "-w"
|
||
+.PD 0
|
||
+.IP "\fB\-\-include\-all\-whitespace\fR" 4
|
||
+.IX Item "--include-all-whitespace"
|
||
+.PD
|
||
+By default tab and space characters are included in the strings that
|
||
+are displayed, but other whitespace characters, such a newlines and
|
||
+carriage returns, are not. The \fB\-w\fR option changes this so
|
||
+that all whitespace characters are considered to be part of a string.
|
||
+.IP "\fB\-s\fR" 4
|
||
+.IX Item "-s"
|
||
+.PD 0
|
||
+.IP "\fB\-\-output\-separator\fR" 4
|
||
+.IX Item "--output-separator"
|
||
+.PD
|
||
+By default, output strings are delimited by a new-line. This option
|
||
+allows you to supply any string to be used as the output record
|
||
+separator. Useful with \-\-include\-all\-whitespace where strings
|
||
+may contain new-lines internally.
|
||
+.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"
|
||
+\&\fBar\fR\|(1), \fBnm\fR\|(1), \fBobjdump\fR\|(1), \fBranlib\fR\|(1), \fBreadelf\fR\|(1)
|
||
+and the Info entries for \fIbinutils\fR.
|
||
+.SH "COPYRIGHT"
|
||
+.IX Header "COPYRIGHT"
|
||
+Copyright (c) 1991\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/strip.1 b/binutils/doc/strip.1
|
||
--- a/binutils/doc/strip.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/strip.1 2021-03-30 17:47:59.838886000 -0300
|
||
@@ -0,0 +1,502 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.SH "NAME"
|
||
+strip \- discard symbols and other data 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\-\-strip\-dwo\fR]
|
||
+ [\fB\-K\fR \fIsymbolname\fR|\fB\-\-keep\-symbol=\fR\fIsymbolname\fR]
|
||
+ [\fB\-M\fR|\fB\-\-merge\-notes\fR][\fB\-\-no\-merge\-notes\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\-\-keep\-section=\fR\fIsectionpattern\fR]
|
||
+ [\fB\-\-remove\-relocations=\fR\fIsectionpattern\fR]
|
||
+ [\fB\-o\fR \fIfile\fR] [\fB\-p\fR|\fB\-\-preserve\-dates\fR]
|
||
+ [\fB\-D\fR|\fB\-\-enable\-deterministic\-archives\fR]
|
||
+ [\fB\-U\fR|\fB\-\-disable\-deterministic\-archives\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, in
|
||
+addition to whatever sections would otherwise be removed. This
|
||
+option may be given more than once. Note that using this option
|
||
+inappropriately may make the output file unusable. The wildcard
|
||
+character \fB*\fR may be given at the end of \fIsectionname\fR. If
|
||
+so, then any section starting with \fIsectionname\fR will be removed.
|
||
+.Sp
|
||
+If the first character of \fIsectionpattern\fR is the exclamation
|
||
+point (!) then matching sections will not be removed even if an
|
||
+earlier use of \fB\-\-remove\-section\fR on the same command line
|
||
+would otherwise remove it. For example:
|
||
+.Sp
|
||
+.Vb 1
|
||
+\& \-\-remove\-section=.text.* \-\-remove\-section=!.text.foo
|
||
+.Ve
|
||
+.Sp
|
||
+will remove all sections matching the pattern '.text.*', but will not
|
||
+remove the section '.text.foo'.
|
||
+.IP "\fB\-\-keep\-section=\fR\fIsectionpattern\fR" 4
|
||
+.IX Item "--keep-section=sectionpattern"
|
||
+When removing sections from the output file, keep sections that match
|
||
+\&\fIsectionpattern\fR.
|
||
+.IP "\fB\-\-remove\-relocations=\fR\fIsectionpattern\fR" 4
|
||
+.IX Item "--remove-relocations=sectionpattern"
|
||
+Remove relocations from the output file for any section matching
|
||
+\&\fIsectionpattern\fR. This option may be given more than once. Note
|
||
+that using this option inappropriately may make the output file
|
||
+unusable. Wildcard characters are accepted in \fIsectionpattern\fR.
|
||
+For example:
|
||
+.Sp
|
||
+.Vb 1
|
||
+\& \-\-remove\-relocations=.text.*
|
||
+.Ve
|
||
+.Sp
|
||
+will remove the relocations for all sections matching the patter
|
||
+\&'.text.*'.
|
||
+.Sp
|
||
+If the first character of \fIsectionpattern\fR is the exclamation
|
||
+point (!) then matching sections will not have their relocation
|
||
+removed even if an earlier use of \fB\-\-remove\-relocations\fR on the
|
||
+same command line would otherwise cause the relocations to be removed.
|
||
+For example:
|
||
+.Sp
|
||
+.Vb 1
|
||
+\& \-\-remove\-relocations=.text.* \-\-remove\-relocations=!.text.foo
|
||
+.Ve
|
||
+.Sp
|
||
+will remove all relocations for sections matching the pattern
|
||
+\&'.text.*', but will not remove relocations for the section
|
||
+\&'.text.foo'.
|
||
+.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\-dwo\fR" 4
|
||
+.IX Item "--strip-dwo"
|
||
+Remove the contents of all \s-1DWARF\s0 .dwo sections, leaving the
|
||
+remaining debugging sections and all symbols intact.
|
||
+See the description of this option in the \fBobjcopy\fR section
|
||
+for more information.
|
||
+.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\-M\fR" 4
|
||
+.IX Item "-M"
|
||
+.PD 0
|
||
+.IP "\fB\-\-merge\-notes\fR" 4
|
||
+.IX Item "--merge-notes"
|
||
+.IP "\fB\-\-no\-merge\-notes\fR" 4
|
||
+.IX Item "--no-merge-notes"
|
||
+.PD
|
||
+For \s-1ELF\s0 files, attempt (or do not attempt) to reduce the size of any
|
||
+\&\s-1SHT_NOTE\s0 type sections by removing duplicate notes. The default is to
|
||
+attempt this reduction unless stripping debug or \s-1DWO\s0 information.
|
||
+.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\-D\fR" 4
|
||
+.IX Item "-D"
|
||
+.PD 0
|
||
+.IP "\fB\-\-enable\-deterministic\-archives\fR" 4
|
||
+.IX Item "--enable-deterministic-archives"
|
||
+.PD
|
||
+Operate in \fIdeterministic\fR mode. When copying archive members
|
||
+and writing the archive index, use zero for UIDs, GIDs, timestamps,
|
||
+and use consistent file modes for all files.
|
||
+.Sp
|
||
+If \fIbinutils\fR was configured with
|
||
+\&\fB\-\-enable\-deterministic\-archives\fR, then this mode is on by default.
|
||
+It can be disabled with the \fB\-U\fR option, below.
|
||
+.IP "\fB\-U\fR" 4
|
||
+.IX Item "-U"
|
||
+.PD 0
|
||
+.IP "\fB\-\-disable\-deterministic\-archives\fR" 4
|
||
+.IX Item "--disable-deterministic-archives"
|
||
+.PD
|
||
+Do \fInot\fR operate in \fIdeterministic\fR mode. This is the
|
||
+inverse of the \fB\-D\fR option, above: when copying archive members
|
||
+and writing the archive index, use their actual \s-1UID, GID,\s0 timestamp,
|
||
+and file mode values.
|
||
+.Sp
|
||
+This is the default unless \fIbinutils\fR was configured with
|
||
+\&\fB\-\-enable\-deterministic\-archives\fR.
|
||
+.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, emptying the contents of any sections that would not be
|
||
+stripped by \fB\-\-strip\-debug\fR and leaving the debugging sections
|
||
+intact. In \s-1ELF\s0 files, this preserves all the note sections in the
|
||
+output as well.
|
||
+.Sp
|
||
+Note \- the section headers of the stripped sections are preserved,
|
||
+including their sizes, but the contents of the section are discarded.
|
||
+The section headers are preserved so that other tools can match up the
|
||
+debuginfo file with the real executable, even if that executable has
|
||
+been relocated to a different address space.
|
||
+.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 it is called>" 4
|
||
+.IX Item "1.<Link the executable as normal. Assuming that it 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"" to ""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
|
||
+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.
|
||
+.Sp
|
||
+Note\-\-\-this switch is only intended for use on fully linked files. It
|
||
+does not make sense to use it on object files where the debugging
|
||
+information may be incomplete. Besides the gnu_debuglink feature
|
||
+currently only supports the presence of one filename containing
|
||
+debugging information, not multiple filenames on a one-per-object-file
|
||
+basis.
|
||
+.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\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/windmc.1 b/binutils/doc/windmc.1
|
||
--- a/binutils/doc/windmc.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/windmc.1 2021-03-30 17:47:59.838886000 -0300
|
||
@@ -0,0 +1,360 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "WINDMC 1"
|
||
+.TH WINDMC 1 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.SH "NAME"
|
||
+windmc \- generates Windows message resources
|
||
+.SH "SYNOPSIS"
|
||
+.IX Header "SYNOPSIS"
|
||
+windmc [options] input-file
|
||
+.SH "DESCRIPTION"
|
||
+.IX Header "DESCRIPTION"
|
||
+\&\fBwindmc\fR reads message definitions from an input file (.mc) and
|
||
+translate them into a set of output files. The output files may be of
|
||
+four kinds:
|
||
+.ie n .IP """h""" 4
|
||
+.el .IP "\f(CWh\fR" 4
|
||
+.IX Item "h"
|
||
+A C header file containing the message definitions.
|
||
+.ie n .IP """rc""" 4
|
||
+.el .IP "\f(CWrc\fR" 4
|
||
+.IX Item "rc"
|
||
+A resource file compilable by the \fBwindres\fR tool.
|
||
+.ie n .IP """bin""" 4
|
||
+.el .IP "\f(CWbin\fR" 4
|
||
+.IX Item "bin"
|
||
+One or more binary files containing the resource data for a specific
|
||
+message language.
|
||
+.ie n .IP """dbg""" 4
|
||
+.el .IP "\f(CWdbg\fR" 4
|
||
+.IX Item "dbg"
|
||
+A C include file that maps message id's to their symbolic name.
|
||
+.PP
|
||
+The exact description of these different formats is available in
|
||
+documentation from Microsoft.
|
||
+.PP
|
||
+When \fBwindmc\fR converts from the \f(CW\*(C`mc\*(C'\fR format to the \f(CW\*(C`bin\*(C'\fR
|
||
+format, \f(CW\*(C`rc\*(C'\fR, \f(CW\*(C`h\*(C'\fR, and optional \f(CW\*(C`dbg\*(C'\fR it is acting like the
|
||
+Windows Message Compiler.
|
||
+.SH "OPTIONS"
|
||
+.IX Header "OPTIONS"
|
||
+.IP "\fB\-a\fR" 4
|
||
+.IX Item "-a"
|
||
+.PD 0
|
||
+.IP "\fB\-\-ascii_in\fR" 4
|
||
+.IX Item "--ascii_in"
|
||
+.PD
|
||
+Specifies that the input file specified is \s-1ASCII.\s0 This is the default
|
||
+behaviour.
|
||
+.IP "\fB\-A\fR" 4
|
||
+.IX Item "-A"
|
||
+.PD 0
|
||
+.IP "\fB\-\-ascii_out\fR" 4
|
||
+.IX Item "--ascii_out"
|
||
+.PD
|
||
+Specifies that messages in the output \f(CW\*(C`bin\*(C'\fR files should be in \s-1ASCII\s0
|
||
+format.
|
||
+.IP "\fB\-b\fR" 4
|
||
+.IX Item "-b"
|
||
+.PD 0
|
||
+.IP "\fB\-\-binprefix\fR" 4
|
||
+.IX Item "--binprefix"
|
||
+.PD
|
||
+Specifies that \f(CW\*(C`bin\*(C'\fR filenames should have to be prefixed by the
|
||
+basename of the source file.
|
||
+.IP "\fB\-c\fR" 4
|
||
+.IX Item "-c"
|
||
+.PD 0
|
||
+.IP "\fB\-\-customflag\fR" 4
|
||
+.IX Item "--customflag"
|
||
+.PD
|
||
+Sets the customer bit in all message id's.
|
||
+.IP "\fB\-C\fR \fIcodepage\fR" 4
|
||
+.IX Item "-C codepage"
|
||
+.PD 0
|
||
+.IP "\fB\-\-codepage_in\fR \fIcodepage\fR" 4
|
||
+.IX Item "--codepage_in codepage"
|
||
+.PD
|
||
+Sets the default codepage to be used to convert input file to \s-1UTF16.\s0 The
|
||
+default is ocdepage 1252.
|
||
+.IP "\fB\-d\fR" 4
|
||
+.IX Item "-d"
|
||
+.PD 0
|
||
+.IP "\fB\-\-decimal_values\fR" 4
|
||
+.IX Item "--decimal_values"
|
||
+.PD
|
||
+Outputs the constants in the header file in decimal. Default is using
|
||
+hexadecimal output.
|
||
+.IP "\fB\-e\fR \fIext\fR" 4
|
||
+.IX Item "-e ext"
|
||
+.PD 0
|
||
+.IP "\fB\-\-extension\fR \fIext\fR" 4
|
||
+.IX Item "--extension ext"
|
||
+.PD
|
||
+The extension for the header file. The default is .h extension.
|
||
+.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 bin file as 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 \fBwindmc\fR will use the default
|
||
+format, which is the first one listed by the \fB\-\-help\fR option.
|
||
+.IP "\fB\-h\fR \fIpath\fR" 4
|
||
+.IX Item "-h path"
|
||
+.PD 0
|
||
+.IP "\fB\-\-headerdir\fR \fIpath\fR" 4
|
||
+.IX Item "--headerdir path"
|
||
+.PD
|
||
+The target directory of the generated header file. The default is the
|
||
+current directory.
|
||
+.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\-m\fR \fIcharacters\fR" 4
|
||
+.IX Item "-m characters"
|
||
+.PD 0
|
||
+.IP "\fB\-\-maxlength\fR \fIcharacters\fR" 4
|
||
+.IX Item "--maxlength characters"
|
||
+.PD
|
||
+Instructs \fBwindmc\fR to generate a warning if the length
|
||
+of any message exceeds the number specified.
|
||
+.IP "\fB\-n\fR" 4
|
||
+.IX Item "-n"
|
||
+.PD 0
|
||
+.IP "\fB\-\-nullterminate\fR" 4
|
||
+.IX Item "--nullterminate"
|
||
+.PD
|
||
+Terminate message text in \f(CW\*(C`bin\*(C'\fR files by zero. By default they are
|
||
+terminated by \s-1CR/LF.\s0
|
||
+.IP "\fB\-o\fR" 4
|
||
+.IX Item "-o"
|
||
+.PD 0
|
||
+.IP "\fB\-\-hresult_use\fR" 4
|
||
+.IX Item "--hresult_use"
|
||
+.PD
|
||
+Not yet implemented. Instructs \f(CW\*(C`windmc\*(C'\fR to generate an \s-1OLE2\s0 header
|
||
+file, using \s-1HRESULT\s0 definitions. Status codes are used if the flag is not
|
||
+specified.
|
||
+.IP "\fB\-O\fR \fIcodepage\fR" 4
|
||
+.IX Item "-O codepage"
|
||
+.PD 0
|
||
+.IP "\fB\-\-codepage_out\fR \fIcodepage\fR" 4
|
||
+.IX Item "--codepage_out codepage"
|
||
+.PD
|
||
+Sets the default codepage to be used to output text files. The default
|
||
+is ocdepage 1252.
|
||
+.IP "\fB\-r\fR \fIpath\fR" 4
|
||
+.IX Item "-r path"
|
||
+.PD 0
|
||
+.IP "\fB\-\-rcdir\fR \fIpath\fR" 4
|
||
+.IX Item "--rcdir path"
|
||
+.PD
|
||
+The target directory for the generated \f(CW\*(C`rc\*(C'\fR script and the generated
|
||
+\&\f(CW\*(C`bin\*(C'\fR files that the resource compiler script includes. The default
|
||
+is the current directory.
|
||
+.IP "\fB\-u\fR" 4
|
||
+.IX Item "-u"
|
||
+.PD 0
|
||
+.IP "\fB\-\-unicode_in\fR" 4
|
||
+.IX Item "--unicode_in"
|
||
+.PD
|
||
+Specifies that the input file is \s-1UTF16.\s0
|
||
+.IP "\fB\-U\fR" 4
|
||
+.IX Item "-U"
|
||
+.PD 0
|
||
+.IP "\fB\-\-unicode_out\fR" 4
|
||
+.IX Item "--unicode_out"
|
||
+.PD
|
||
+Specifies that messages in the output \f(CW\*(C`bin\*(C'\fR file should be in \s-1UTF16\s0
|
||
+format. This is the default behaviour.
|
||
+.IP "\fB\-v\fR" 4
|
||
+.IX Item "-v"
|
||
+.PD 0
|
||
+.IP "\fB\-\-verbose\fR" 4
|
||
+.IX Item "--verbose"
|
||
+.PD
|
||
+Enable verbose mode.
|
||
+.IP "\fB\-V\fR" 4
|
||
+.IX Item "-V"
|
||
+.PD 0
|
||
+.IP "\fB\-\-version\fR" 4
|
||
+.IX Item "--version"
|
||
+.PD
|
||
+Prints the version number for \fBwindmc\fR.
|
||
+.IP "\fB\-x\fR \fIpath\fR" 4
|
||
+.IX Item "-x path"
|
||
+.PD 0
|
||
+.IP "\fB\-\-xdgb\fR \fIpath\fR" 4
|
||
+.IX Item "--xdgb path"
|
||
+.PD
|
||
+The path of the \f(CW\*(C`dbg\*(C'\fR C include file that maps message id's to the
|
||
+symbolic name. No such file is generated without specifying the switch.
|
||
+.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\-2020 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.3
|
||
+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 -rNU3 a/binutils/doc/windres.1 b/binutils/doc/windres.1
|
||
--- a/binutils/doc/windres.1 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/binutils/doc/windres.1 2021-03-30 17:47:59.838886000 -0300
|
||
@@ -0,0 +1,368 @@
|
||
+.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
|
||
+.\"
|
||
+.\" Standard preamble:
|
||
+.\" ========================================================================
|
||
+.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" ''
|
||
+. ds C`
|
||
+. ds C'
|
||
+'br\}
|
||
+.\"
|
||
+.\" Escape single quotes in literal strings from groff's Unicode transform.
|
||
+.ie \n(.g .ds Aq \(aq
|
||
+.el .ds Aq '
|
||
+.\"
|
||
+.\" If the F register is >0, we'll generate index entries on stderr for
|
||
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
|
||
+.\" entries marked with X<> in POD. Of course, you'll have to process the
|
||
+.\" output yourself in some meaningful fashion.
|
||
+.\"
|
||
+.\" Avoid warning from groff about undefined register 'F'.
|
||
+.de IX
|
||
+..
|
||
+.nr rF 0
|
||
+.if \n(.g .if rF .nr rF 1
|
||
+.if (\n(rF:(\n(.g==0)) \{\
|
||
+. if \nF \{\
|
||
+. de IX
|
||
+. tm Index:\\$1\t\\n%\t"\\$2"
|
||
+..
|
||
+. if !\nF==2 \{\
|
||
+. nr % 0
|
||
+. nr F 2
|
||
+. \}
|
||
+. \}
|
||
+.\}
|
||
+.rr rF
|
||
+.\"
|
||
+.\" 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 "2020-04-03" "binutils-2.34" "GNU Development Tools"
|
||
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
+.\" way too many mistakes in technical documents.
|
||
+.if n .ad l
|
||
+.nh
|
||
+.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 compatibility 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\-\-preprocessor\-arg\fR \fIoption\fR" 4
|
||
+.IX Item "--preprocessor-arg option"
|
||
+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 additional
|
||
+text to be passed to preprocessor on its command line.
|
||
+This option can be used multiple times to add multiple options to the
|
||
+preprocessor command line.
|
||
+.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 described 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\-c\fR \fIval\fR" 4
|
||
+.IX Item "-c val"
|
||
+.PD 0
|
||
+.IP "\fB\-\-codepage\fR \fIval\fR" 4
|
||
+.IX Item "--codepage val"
|
||
+.PD
|
||
+Specify the default codepage to use when reading an \f(CW\*(C`rc\*(C'\fR file.
|
||
+\&\fIval\fR should be a hexadecimal prefixed by \fB0x\fR or decimal
|
||
+codepage code. The valid range is from zero up to 0xffff, but the
|
||
+validity of the codepage is host and configuration dependent.
|
||
+.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\-2020 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.3
|
||
+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 -rNU3 a/binutils/Makefile.in b/binutils/Makefile.in
|
||
--- a/binutils/Makefile.in 2021-03-30 23:12:40.151226599 -0300
|
||
+++ b/binutils/Makefile.in 2021-03-30 17:47:59.815553000 -0300
|
||
@@ -171,7 +171,7 @@
|
||
am__EXEEXT_17 = $(am__EXEEXT_14) $(am__EXEEXT_15) $(am__EXEEXT_16)
|
||
am__EXEEXT_18 = bfdtest1$(EXEEXT)
|
||
am__EXEEXT_19 = bfdtest2$(EXEEXT)
|
||
-am__EXEEXT_20 = testsuite/gentestdlls$(EXEEXT)
|
||
+#am__EXEEXT_20 = testsuite/gentestdlls$(EXEEXT)
|
||
am__EXEEXT_21 = $(am__EXEEXT_18) $(am__EXEEXT_19) $(am__EXEEXT_20)
|
||
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
|
||
am__objects_1 = bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT)
|
||
@@ -347,8 +347,8 @@
|
||
$(nm_new_SOURCES) $(objcopy_SOURCES) $(objdump_SOURCES) \
|
||
$(EXTRA_objdump_SOURCES) $(ranlib_SOURCES) $(readelf_SOURCES) \
|
||
$(size_SOURCES) $(srconv_SOURCES) $(strings_SOURCES) \
|
||
- $(strip_new_SOURCES) $(sysdump_SOURCES) \
|
||
- testsuite/gentestdlls.c $(windmc_SOURCES) $(windres_SOURCES)
|
||
+ $(strip_new_SOURCES) $(sysdump_SOURCES)
|
||
+# testsuite/gentestdlls.c $(windmc_SOURCES) $(windres_SOURCES)
|
||
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
|
||
ctags-recursive dvi-recursive html-recursive info-recursive \
|
||
install-data-recursive install-dvi-recursive \
|
||
@@ -537,6 +537,7 @@
|
||
libexecdir = @libexecdir@
|
||
localedir = @localedir@
|
||
localstatedir = @localstatedir@
|
||
+lt_ECHO = @lt_ECHO@
|
||
mandir = @mandir@
|
||
mkdir_p = @mkdir_p@
|
||
oldincludedir = @oldincludedir@
|
||
@@ -605,7 +606,7 @@
|
||
EXTRA_SCRIPTS = embedspu
|
||
BFDTEST1_PROG = bfdtest1
|
||
BFDTEST2_PROG = bfdtest2
|
||
-GENTESTDLLS_PROG = testsuite/gentestdlls
|
||
+#GENTESTDLLS_PROG = testsuite/gentestdlls
|
||
TEST_PROGS = $(BFDTEST1_PROG) $(BFDTEST2_PROG) $(GENTESTDLLS_PROG)
|
||
RENAMED_PROGS = $(NM_PROG) $(STRIP_PROG) $(DEMANGLER_PROG)
|
||
|
||
diff -rNU3 a/binutils/po/sv.po b/binutils/po/sv.po
|
||
--- a/binutils/po/sv.po 2021-03-30 23:12:40.157893266 -0300
|
||
+++ b/binutils/po/sv.po 2021-03-30 17:47:59.962219000 -0300
|
||
@@ -5,7 +5,7 @@
|
||
# Tommy Pettersson <ptp@lysator.liu.se>, 2001, 2002, 2004.
|
||
# Göran Uddeborg <goeran@uddeborg.se>, 2013, 2014, 2016, 2017, 2018, 2019, 2020.
|
||
#
|
||
-# $Revision: 1.23 $
|
||
+# Revision: 1.23
|
||
#
|
||
msgid ""
|
||
msgstr ""
|
||
diff -rNU3 a/binutils/readelf.c b/binutils/readelf.c
|
||
--- a/binutils/readelf.c 2021-03-30 23:12:40.161226599 -0300
|
||
+++ b/binutils/readelf.c 2021-03-30 17:47:59.992219000 -0300
|
||
@@ -238,6 +238,7 @@
|
||
static Elf_Internal_Dyn * dynamic_section;
|
||
static elf_section_list * symtab_shndx_list;
|
||
static bfd_boolean show_name = FALSE;
|
||
+static bfd_boolean do_special_files = FALSE;
|
||
static bfd_boolean do_dynamic = FALSE;
|
||
static bfd_boolean do_syms = FALSE;
|
||
static bfd_boolean do_dyn_syms = FALSE;
|
||
@@ -4456,6 +4457,7 @@
|
||
{"relocs", no_argument, 0, 'r'},
|
||
{"notes", no_argument, 0, 'n'},
|
||
{"dynamic", no_argument, 0, 'd'},
|
||
+ {"special-files", no_argument, 0, 'f'},
|
||
{"arch-specific", no_argument, 0, 'A'},
|
||
{"version-info", no_argument, 0, 'V'},
|
||
{"use-dynamic", no_argument, 0, 'D'},
|
||
@@ -4508,6 +4510,7 @@
|
||
-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\
|
||
+ -f --special-files Process non-plain files too\n\
|
||
-V --version-info Display the version sections (if present)\n\
|
||
-A --arch-specific Display architecture specific information (if any)\n\
|
||
-c --archive-index Display the symbol/file index in an archive\n\
|
||
@@ -4639,7 +4642,7 @@
|
||
usage (stderr);
|
||
|
||
while ((c = getopt_long
|
||
- (argc, argv, "ADHINR:SVWacdeghi:lnp:rstuvw::x:z", options, NULL)) != EOF)
|
||
+ (argc, argv, "ADHINR:SVWacdefghi:lnp:rstuvw::x:z", options, NULL)) != EOF)
|
||
{
|
||
switch (c)
|
||
{
|
||
@@ -4689,6 +4692,9 @@
|
||
case 'u':
|
||
do_unwind = TRUE;
|
||
break;
|
||
+ case 'f':
|
||
+ do_special_files++;
|
||
+ break;
|
||
case 'h':
|
||
do_header = TRUE;
|
||
break;
|
||
@@ -5146,7 +5152,7 @@
|
||
if (filedata->file_header.e_phnum > 1)
|
||
printf (_("\nProgram Headers:\n"));
|
||
else
|
||
- printf (_("\nProgram Headers:\n"));
|
||
+ printf (_("\nProgram Header:\n"));
|
||
|
||
if (is_32bit_elf)
|
||
printf
|
||
@@ -18286,9 +18292,9 @@
|
||
switch (pnote->type)
|
||
{
|
||
case NT_NETBSD_IDENT:
|
||
- version = byte_get ((unsigned char *) pnote->descdata, sizeof (version));
|
||
+ version = byte_get((unsigned char *)pnote->descdata, sizeof(version));
|
||
if ((version / 10000) % 100)
|
||
- printf (" NetBSD\t\t0x%08lx\tIDENT %u (%u.%u%s%c)\n", pnote->descsz,
|
||
+ printf (" NetBSD\t0x%08lx\tIDENT %u (%u.%u%s%c)\n", pnote->descsz,
|
||
version, version / 100000000, (version / 1000000) % 100,
|
||
(version / 10000) % 100 > 26 ? "Z" : "",
|
||
'A' + (version / 10000) % 26);
|
||
@@ -20362,7 +20368,7 @@
|
||
return FALSE;
|
||
}
|
||
|
||
- if (! S_ISREG (statbuf.st_mode))
|
||
+ if (!do_special_files && ! S_ISREG (statbuf.st_mode))
|
||
{
|
||
error (_("'%s' is not an ordinary file\n"), file_name);
|
||
return FALSE;
|
||
diff -rNU3 a/config.guess b/config.guess
|
||
--- a/config.guess 2021-03-30 23:12:40.164559933 -0300
|
||
+++ b/config.guess 2021-03-30 17:48:00.025553000 -0300
|
||
@@ -184,6 +184,7 @@
|
||
"/usr/sbin/$sysctl" 2>/dev/null || \
|
||
echo unknown)`
|
||
case "$UNAME_MACHINE_ARCH" in
|
||
+ aarch64eb) machine=aarch64_be-unknown ;;
|
||
armeb) machine=armeb-unknown ;;
|
||
arm*) machine=arm-unknown ;;
|
||
sh3el) machine=shl-unknown ;;
|
||
diff -rNU3 a/gas/atof-generic.c b/gas/atof-generic.c
|
||
--- a/gas/atof-generic.c 2021-03-30 23:12:40.167893266 -0300
|
||
+++ b/gas/atof-generic.c 2021-03-30 17:48:00.152219000 -0300
|
||
@@ -120,6 +120,32 @@
|
||
|
||
switch (first_digit[0])
|
||
{
|
||
+ case 's':
|
||
+ case 'S':
|
||
+ if (!strncasecmp ("snan", first_digit, 4))
|
||
+ {
|
||
+ address_of_generic_floating_point_number->sign = 0;
|
||
+ address_of_generic_floating_point_number->exponent = 0;
|
||
+ address_of_generic_floating_point_number->leader =
|
||
+ address_of_generic_floating_point_number->low;
|
||
+ *address_of_string_pointer = first_digit + 4;
|
||
+ return 0;
|
||
+ }
|
||
+ break;
|
||
+
|
||
+ case 'q':
|
||
+ case 'Q':
|
||
+ if (!strncasecmp ("qnan", first_digit, 4))
|
||
+ {
|
||
+ address_of_generic_floating_point_number->sign = 0;
|
||
+ address_of_generic_floating_point_number->exponent = 0;
|
||
+ address_of_generic_floating_point_number->leader =
|
||
+ address_of_generic_floating_point_number->low;
|
||
+ *address_of_string_pointer = first_digit + 4;
|
||
+ return 0;
|
||
+ }
|
||
+ break;
|
||
+
|
||
case 'n':
|
||
case 'N':
|
||
if (!strncasecmp ("nan", first_digit, 3))
|
||
diff -rNU3 a/gas/config/atof-vax.c b/gas/config/atof-vax.c
|
||
--- a/gas/config/atof-vax.c 2021-03-30 23:12:40.167893266 -0300
|
||
+++ b/gas/config/atof-vax.c 2021-03-30 17:48:00.162219000 -0300
|
||
@@ -267,10 +267,27 @@
|
||
int exponent_skippage;
|
||
LITTLENUM_TYPE word1;
|
||
|
||
- /* JF: Deal with new Nan, +Inf and -Inf codes. */
|
||
if (f->sign != '-' && f->sign != '+')
|
||
{
|
||
- make_invalid_floating_point_number (words);
|
||
+ if (f->sign == 0)
|
||
+ {
|
||
+ /* All NaNs are 0. */
|
||
+ memset (words, 0x00, sizeof (LITTLENUM_TYPE) * precision);
|
||
+ }
|
||
+ else if (f->sign == 'P')
|
||
+ {
|
||
+ /* Positive Infinity. */
|
||
+ memset (words, 0xff, sizeof (LITTLENUM_TYPE) * precision);
|
||
+ words[0] &= 0x7fff;
|
||
+ }
|
||
+ else if (f->sign == 'N')
|
||
+ {
|
||
+ /* Negative Infinity. */
|
||
+ memset (words, 0x00, sizeof (LITTLENUM_TYPE) * precision);
|
||
+ words[0] = 0x0080;
|
||
+ }
|
||
+ else
|
||
+ make_invalid_floating_point_number (words);
|
||
return return_value;
|
||
}
|
||
|
||
diff -rNU3 a/gas/config/obj-elf.c b/gas/config/obj-elf.c
|
||
--- a/gas/config/obj-elf.c 2021-03-30 23:12:40.167893266 -0300
|
||
+++ b/gas/config/obj-elf.c 2021-03-30 17:48:00.168886000 -0300
|
||
@@ -2063,6 +2063,7 @@
|
||
|| strcmp (type_name, "10") == 0
|
||
|| strcmp (type_name, "STT_GNU_IFUNC") == 0)
|
||
{
|
||
+#if 0
|
||
struct elf_backend_data *bed;
|
||
|
||
bed = (struct elf_backend_data *) get_elf_backend_data (stdoutput);
|
||
@@ -2072,6 +2073,7 @@
|
||
&& bed->elf_osabi != ELFOSABI_FREEBSD)
|
||
as_bad (_("symbol type \"%s\" is supported only by GNU "
|
||
"and FreeBSD targets"), type_name);
|
||
+#endif
|
||
elf_tdata (stdoutput)->has_gnu_osabi |= elf_gnu_osabi_ifunc;
|
||
type = BSF_FUNCTION | BSF_GNU_INDIRECT_FUNCTION;
|
||
}
|
||
diff -rNU3 a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
|
||
--- a/gas/config/tc-aarch64.c 2021-03-30 23:12:40.171226600 -0300
|
||
+++ b/gas/config/tc-aarch64.c 2021-03-30 17:48:00.172219000 -0300
|
||
@@ -250,12 +250,6 @@
|
||
typedef struct
|
||
{
|
||
const char *template;
|
||
- unsigned long value;
|
||
-} asm_barrier_opt;
|
||
-
|
||
-typedef struct
|
||
-{
|
||
- const char *template;
|
||
uint32_t value;
|
||
} asm_nzcv;
|
||
|
||
@@ -3994,7 +3988,7 @@
|
||
parse_barrier (char **str)
|
||
{
|
||
char *p, *q;
|
||
- const asm_barrier_opt *o;
|
||
+ const struct aarch64_name_value_pair *o;
|
||
|
||
p = q = *str;
|
||
while (ISALPHA (*q))
|
||
diff -rNU3 a/gas/config/tc-arm.c b/gas/config/tc-arm.c
|
||
--- a/gas/config/tc-arm.c 2021-03-30 23:12:40.177893266 -0300
|
||
+++ b/gas/config/tc-arm.c 2021-03-30 17:48:00.185553000 -0300
|
||
@@ -23117,16 +23117,20 @@
|
||
asection *sect;
|
||
|
||
for (sect = stdoutput->sections; sect != NULL; sect = sect->next)
|
||
- if (seg_info (sect)->tc_segment_info_data.current_pred.state
|
||
- == MANUAL_PRED_BLOCK)
|
||
- {
|
||
- if (now_pred.type == SCALAR_PRED)
|
||
- as_warn (_("section '%s' finished with an open IT block."),
|
||
- sect->name);
|
||
- else
|
||
- as_warn (_("section '%s' finished with an open VPT/VPST block."),
|
||
+ {
|
||
+ segment_info_type *seginfo = seg_info (sect);
|
||
+
|
||
+ if (seginfo && seginfo->tc_segment_info_data.current_pred.state
|
||
+ == MANUAL_PRED_BLOCK)
|
||
+ {
|
||
+ if (now_pred.type == SCALAR_PRED)
|
||
+ as_warn (_("section '%s' finished with an open IT block."),
|
||
+ sect->name);
|
||
+ else
|
||
+ as_warn (_("section '%s' finished with an open VPT/VPST block."),
|
||
sect->name);
|
||
- }
|
||
+ }
|
||
+ }
|
||
#else
|
||
if (now_pred.state == MANUAL_PRED_BLOCK)
|
||
{
|
||
diff -rNU3 a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c
|
||
--- a/gas/config/tc-m68k.c 2021-03-30 23:12:40.184559933 -0300
|
||
+++ b/gas/config/tc-m68k.c 2021-03-30 17:48:00.222219000 -0300
|
||
@@ -7294,7 +7294,7 @@
|
||
{
|
||
if (arg[0] == 'm')
|
||
{
|
||
- if (arg[1] == '6')
|
||
+ if (arg[1] == '6' || arg[1] == '5')
|
||
arg += 1;
|
||
else if (arg[1] == 'c' && arg[2] == '6')
|
||
arg += 2;
|
||
diff -rNU3 a/gas/config/tc-mips.c b/gas/config/tc-mips.c
|
||
--- a/gas/config/tc-mips.c 2021-03-30 23:12:40.184559933 -0300
|
||
+++ b/gas/config/tc-mips.c 2021-03-30 17:48:00.228886000 -0300
|
||
@@ -933,6 +933,9 @@
|
||
NUM_FIX_VR4120_CLASSES
|
||
};
|
||
|
||
+/* ...likewise -mtrap-zero-jump. */
|
||
+static bfd_boolean mips_trap_zero_jump;
|
||
+
|
||
/* ...likewise -mfix-loongson2f-jump. */
|
||
static bfd_boolean mips_fix_loongson2f_jump;
|
||
|
||
@@ -976,6 +979,8 @@
|
||
|
||
static int mips_relax_branch;
|
||
|
||
+static int mips_fix_loongson2f_btb;
|
||
+
|
||
/* TRUE if checks are suppressed for invalid branches between ISA modes.
|
||
Needed for broken assembly produced by some GCC versions and some
|
||
sloppy code out there, where branches to data labels are present. */
|
||
@@ -1369,6 +1374,7 @@
|
||
static void mips16_macro_build
|
||
(expressionS *, const char *, const char *, va_list *);
|
||
static void load_register (int, expressionS *, int);
|
||
+static void macro_build (expressionS *, const char *, const char *, ...);
|
||
static void macro_start (void);
|
||
static void macro_end (void);
|
||
static void macro (struct mips_cl_insn *ip, char *str);
|
||
@@ -1573,6 +1579,8 @@
|
||
OPTION_NO_LOONGSON_EXT,
|
||
OPTION_LOONGSON_EXT2,
|
||
OPTION_NO_LOONGSON_EXT2,
|
||
+ OPTION_FIX_LOONGSON2F_BTB,
|
||
+ OPTION_NO_FIX_LOONGSON2F_BTB,
|
||
OPTION_END_OF_ENUM
|
||
};
|
||
|
||
@@ -1662,6 +1670,8 @@
|
||
{"mno-fix-loongson2f-jump", no_argument, NULL, OPTION_NO_FIX_LOONGSON2F_JUMP},
|
||
{"mfix-loongson2f-nop", no_argument, NULL, OPTION_FIX_LOONGSON2F_NOP},
|
||
{"mno-fix-loongson2f-nop", no_argument, NULL, OPTION_NO_FIX_LOONGSON2F_NOP},
|
||
+ {"mfix-loongson2f-btb", no_argument, NULL, OPTION_FIX_LOONGSON2F_BTB},
|
||
+ {"mno-fix-loongson2f-btb", no_argument, NULL, OPTION_NO_FIX_LOONGSON2F_BTB},
|
||
{"mfix-vr4120", no_argument, NULL, OPTION_FIX_VR4120},
|
||
{"mno-fix-vr4120", no_argument, NULL, OPTION_NO_FIX_VR4120},
|
||
{"mfix-vr4130", no_argument, NULL, OPTION_FIX_VR4130},
|
||
@@ -5619,6 +5629,8 @@
|
||
if ((reglist & 0x3f00ffff) != 0)
|
||
return FALSE;
|
||
|
||
+
|
||
+/* Fix NOP issue: Replace nops by "or at,at,zero". */
|
||
ra = (reglist >> 27) & 0x10;
|
||
sregs = ((reglist >> 22) & 0x100) | ((reglist >> 16) & 0xff);
|
||
}
|
||
@@ -5630,6 +5642,35 @@
|
||
return TRUE;
|
||
}
|
||
|
||
+static void
|
||
+trap_zero_jump (struct mips_cl_insn * ip)
|
||
+{
|
||
+ if (strcmp (ip->insn_mo->name, "j") == 0
|
||
+ || strcmp (ip->insn_mo->name, "jr") == 0
|
||
+ || strcmp (ip->insn_mo->name, "jalr") == 0)
|
||
+ {
|
||
+ int sreg;
|
||
+
|
||
+ if (mips_opts.warn_about_macros)
|
||
+ return;
|
||
+
|
||
+ sreg = EXTRACT_OPERAND (0, RS, *ip);
|
||
+ if (mips_opts.isa == ISA_MIPS32
|
||
+ || mips_opts.isa == ISA_MIPS32R2
|
||
+ || mips_opts.isa == ISA_MIPS64
|
||
+ || mips_opts.isa == ISA_MIPS64R2)
|
||
+ {
|
||
+ expressionS ep;
|
||
+ ep.X_op = O_constant;
|
||
+ ep.X_add_number = 4096;
|
||
+ macro_build (&ep, "tltiu", "s,j", sreg, BFD_RELOC_LO16);
|
||
+ }
|
||
+ else if (mips_opts.isa != ISA_UNKNOWN
|
||
+ && mips_opts.isa != ISA_MIPS1)
|
||
+ macro_build (NULL, "teq", "s,t", sreg, 0);
|
||
+ }
|
||
+}
|
||
+
|
||
/* OP_ENTRY_EXIT_LIST matcher. */
|
||
|
||
static unsigned int
|
||
@@ -5843,6 +5884,13 @@
|
||
}
|
||
frame_size /= 8;
|
||
|
||
+ /* If the branch is itself the target of a branch, we can not swap.
|
||
+ We cheat on this; all we check for is whether there is a label on
|
||
+ this instruction. If there are any branches to anything other than
|
||
+ a label, users must use .set noreorder. */
|
||
+ if (seg_info (now_seg)->label_list)
|
||
+ return FALSE;
|
||
+
|
||
/* Finally build the instruction. */
|
||
if (mips_opts.mips16)
|
||
opcode |= mips16_encode_save_restore (arg_mask, num_sregs, ra, s0, s1,
|
||
@@ -7044,6 +7092,11 @@
|
||
if (mips_opts.mips16 && history[0].fixp[0])
|
||
return FALSE;
|
||
|
||
+ if (mips_fix_loongson2f)
|
||
+ fix_loongson2f (ip);
|
||
+ if (mips_trap_zero_jump)
|
||
+ trap_zero_jump (ip);
|
||
+
|
||
/* If the branch is itself the target of a branch, we can not swap.
|
||
We cheat on this; all we check for is whether there is a label on
|
||
this instruction. If there are any branches to anything other than
|
||
@@ -7192,6 +7245,45 @@
|
||
return TRUE;
|
||
}
|
||
|
||
+/* Fix jump through register issue on loongson2f processor for kernel code:
|
||
+ force a BTB clear before the jump to prevent it from being incorrectly
|
||
+ prefetched by the branch prediction engine. */
|
||
+
|
||
+static void
|
||
+macro_build_jrpatch (expressionS *ep, unsigned int sreg)
|
||
+{
|
||
+ if (!mips_fix_loongson2f_btb)
|
||
+ return;
|
||
+
|
||
+ if (sreg == ZERO || sreg == KT0 || sreg == KT1 || sreg == AT)
|
||
+ return;
|
||
+
|
||
+ if (!mips_opts.at)
|
||
+ {
|
||
+ as_warn (_("unable to apply loongson2f BTB workaround when .set noat"));
|
||
+ return;
|
||
+ }
|
||
+
|
||
+ /* li $at, COP_0_BTB_CLEAR | COP_0_RAS_DISABLE */
|
||
+ ep->X_op = O_constant;
|
||
+ ep->X_add_number = 3;
|
||
+ macro_build (ep, "ori", "t,r,i", AT, ZERO, BFD_RELOC_LO16);
|
||
+
|
||
+ /* dmtc0 $at, COP_0_DIAG */
|
||
+ macro_build (NULL, "dmtc0", "t,G", AT, 22);
|
||
+
|
||
+ /* Hide these two instructions to avoid getting a ``macro expanded into
|
||
+ multiple instructions'' warning. */
|
||
+ if (mips_relax.sequence != 2) {
|
||
+ mips_macro_warning.sizes[0] -= 2 * 4;
|
||
+ mips_macro_warning.insns[0] -= 2;
|
||
+ }
|
||
+ if (mips_relax.sequence != 1) {
|
||
+ mips_macro_warning.sizes[1] -= 2 * 4;
|
||
+ mips_macro_warning.insns[1] -= 2;
|
||
+ }
|
||
+}
|
||
+
|
||
/* Decide how we should add IP to the instruction stream.
|
||
ADDRESS_EXPR is an operand of the instruction to be used with
|
||
RELOC_TYPE. */
|
||
@@ -11552,6 +11644,26 @@
|
||
macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t", op[0], tempreg, breg);
|
||
break;
|
||
|
||
+ case M_JR_S:
|
||
+ macro_build_jrpatch (&expr1, op[2]);
|
||
+ macro_build (NULL, "jr", "s", op[2]);
|
||
+ return; /* didn't modify $at */
|
||
+
|
||
+ case M_J_S:
|
||
+ macro_build_jrpatch (&expr1, op[2]);
|
||
+ macro_build (NULL, "j", "s", op[2]);
|
||
+ return; /* didn't modify $at */
|
||
+
|
||
+ case M_JALR_S:
|
||
+ macro_build_jrpatch (&expr1, op[2]);
|
||
+ macro_build (NULL, "jalr", "s", op[2]);
|
||
+ return; /* didn't modify $at */
|
||
+
|
||
+ case M_JALR_DS:
|
||
+ macro_build_jrpatch (&expr1, op[2]);
|
||
+ macro_build (NULL, "jalr", "d,s", op[0], op[2]);
|
||
+ return; /* didn't modify $at */
|
||
+
|
||
case M_MSGSND:
|
||
gas_assert (!mips_opts.micromips);
|
||
macro_build (NULL, "c2", "C", (op[0] << 16) | 0x01);
|
||
@@ -14993,6 +15105,14 @@
|
||
mips_fix_vr4130 = 0;
|
||
break;
|
||
|
||
+ case OPTION_FIX_LOONGSON2F_BTB:
|
||
+ mips_fix_loongson2f_btb = 1;
|
||
+ break;
|
||
+
|
||
+ case OPTION_NO_FIX_LOONGSON2F_BTB:
|
||
+ mips_fix_loongson2f_btb = 0;
|
||
+ break;
|
||
+
|
||
case OPTION_FIX_CN63XXP1:
|
||
mips_fix_cn63xxp1 = TRUE;
|
||
break;
|
||
@@ -20422,6 +20542,7 @@
|
||
fprintf (stream, _("\
|
||
-mfix-loongson2f-jump work around Loongson2F JUMP instructions\n\
|
||
-mfix-loongson2f-nop work around Loongson2F NOP errata\n\
|
||
+-mfix-loongson2f-btb work around Loongson2F BTB errata\n\
|
||
-mfix-loongson3-llsc work around Loongson3 LL/SC errata\n\
|
||
-mno-fix-loongson3-llsc disable work around Loongson3 LL/SC errata\n\
|
||
-mfix-vr4120 work around certain VR4120 errata\n\
|
||
diff -rNU3 a/gas/config/tc-mips.h b/gas/config/tc-mips.h
|
||
--- a/gas/config/tc-mips.h 2021-03-30 23:12:40.184559933 -0300
|
||
+++ b/gas/config/tc-mips.h 2021-03-30 17:48:00.228886000 -0300
|
||
@@ -187,7 +187,7 @@
|
||
#define DWARF2_ADDR_SIZE(bfd) mips_dwarf2_addr_size ()
|
||
#define DWARF2_FDE_RELOC_SIZE (compact_eh ? 4 : mips_dwarf2_addr_size ())
|
||
#define DWARF2_FDE_RELOC_ENCODING(enc) \
|
||
- (enc | (compact_eh ? DW_EH_PE_pcrel : 0))
|
||
+ (compact_eh ? (enc)|DW_EH_PE_pcrel : DW_EH_PE_absptr)
|
||
|
||
#define TARGET_USE_CFIPOP 1
|
||
|
||
diff -rNU3 a/gas/config/tc-vax.c b/gas/config/tc-vax.c
|
||
--- a/gas/config/tc-vax.c 2021-03-30 23:12:40.184559933 -0300
|
||
+++ b/gas/config/tc-vax.c 2021-03-30 17:48:00.278886000 -0300
|
||
@@ -22,6 +22,7 @@
|
||
|
||
#include "vax-inst.h"
|
||
#include "obstack.h" /* For FRAG_APPEND_1_CHAR macro in "frags.h" */
|
||
+#include "dw2gencfi.h"
|
||
#include "subsegs.h"
|
||
#include "safe-ctype.h"
|
||
|
||
@@ -396,6 +397,9 @@
|
||
&& (PLT_symbol == NULL || fragP->fr_symbol != PLT_symbol)
|
||
&& fragP->fr_symbol != NULL
|
||
&& flag_want_pic
|
||
+#ifdef OBJ_ELF
|
||
+ && ELF_ST_VISIBILITY (S_GET_OTHER (fragP->fr_symbol)) != STV_HIDDEN
|
||
+#endif
|
||
&& (!S_IS_DEFINED (fragP->fr_symbol)
|
||
|| S_IS_WEAK (fragP->fr_symbol)
|
||
|| S_IS_EXTERNAL (fragP->fr_symbol)))
|
||
@@ -1077,6 +1081,154 @@
|
||
return retval;
|
||
}
|
||
|
||
+#ifdef OBJ_AOUT
|
||
+#ifndef BFD_ASSEMBLER
|
||
+void
|
||
+tc_aout_fix_to_chars (where, fixP, segment_address_in_file)
|
||
+ char *where;
|
||
+ fixS *fixP;
|
||
+ relax_addressT segment_address_in_file;
|
||
+{
|
||
+ /*
|
||
+ * In: length of relocation (or of address) in chars: 1, 2 or 4.
|
||
+ * Out: GNU LD relocation length code: 0, 1, or 2.
|
||
+ */
|
||
+
|
||
+ static const unsigned char nbytes_r_length[] = {42, 0, 1, 42, 2};
|
||
+ int r_symbolnum;
|
||
+ int r_flags;
|
||
+
|
||
+ know (fixP->fx_addsy != NULL);
|
||
+
|
||
+ md_number_to_chars (where,
|
||
+ fixP->fx_frag->fr_address + fixP->fx_where - segment_address_in_file,
|
||
+ 4);
|
||
+
|
||
+ r_symbolnum = (S_IS_DEFINED (fixP->fx_addsy)
|
||
+ ? S_GET_TYPE (fixP->fx_addsy)
|
||
+ : fixP->fx_addsy->sy_number);
|
||
+ r_flags = (fixP->fx_pcrel ? 1 : 0)
|
||
+ | (!S_IS_DEFINED (fixP->fx_addsy) ? 8 : 0) /* extern */
|
||
+ | ((nbytes_r_length[fixP->fx_size] & 3) << 1);
|
||
+
|
||
+#if 0
|
||
+ r_flags |= ((!S_IS_DEFINED(fixP->fx_addsy)
|
||
+ && fixP->fx_pcrel
|
||
+ && fixP->fx_addsy != GOT_symbol
|
||
+ && fixP->fx_addsy != PLT_symbol
|
||
+ && flags_want_pic) ? 0x10 : 0);
|
||
+#endif
|
||
+
|
||
+ switch (fixP->fx_r_type) {
|
||
+ case NO_RELOC:
|
||
+ break;
|
||
+ case NO_RELOC2:
|
||
+ if (r_flags & 8)
|
||
+ r_flags |= 0x80; /* setting the copy bit */
|
||
+ /* says we can convert */
|
||
+ /* to gotslot if needed */
|
||
+ break;
|
||
+ case RELOC_32:
|
||
+ if (flag_want_pic && S_IS_EXTERNAL(fixP->fx_addsy)) {
|
||
+ r_symbolnum = fixP->fx_addsy->sy_number;
|
||
+ r_flags |= 8; /* set extern bit */
|
||
+ }
|
||
+ break;
|
||
+ case RELOC_JMP_SLOT:
|
||
+ if (flag_want_pic) {
|
||
+ r_flags |= 0x20; /* set jmptable */
|
||
+ r_flags &= ~0x08; /* clear extern bit */
|
||
+ }
|
||
+ break;
|
||
+ case RELOC_JMP_TBL:
|
||
+ if (flag_want_pic) {
|
||
+ r_flags |= 0x20; /* set jmptable */
|
||
+ r_flags |= 0x08; /* set extern bit */
|
||
+ }
|
||
+ break;
|
||
+ case RELOC_GLOB_DAT:
|
||
+ if (flag_want_pic) {
|
||
+ r_flags |= 0x10; /* set baserel bit */
|
||
+ r_symbolnum = fixP->fx_addsy->sy_number;
|
||
+ if (S_IS_EXTERNAL(fixP->fx_addsy))
|
||
+ r_flags |= 8; /* set extern bit */
|
||
+ }
|
||
+ break;
|
||
+ }
|
||
+
|
||
+ where[4] = (r_symbolnum >> 0) & 0xff;
|
||
+ where[5] = (r_symbolnum >> 8) & 0xff;
|
||
+ where[6] = (r_symbolnum >> 16) & 0xff;
|
||
+ where[7] = r_flags;
|
||
+}
|
||
+#endif /* !BFD_ASSEMBLER */
|
||
+#endif /* OBJ_AOUT */
|
||
+
|
||
+/*
|
||
+ * BUGS, GRIPES, APOLOGIA, etc.
|
||
+ *
|
||
+ * The opcode table 'votstrs' needs to be sorted on opcode frequency.
|
||
+ * That is, AFTER we hash it with hash_...(), we want most-used opcodes
|
||
+ * to come out of the hash table faster.
|
||
+ *
|
||
+ * I am sorry to inflict yet another VAX assembler on the world, but
|
||
+ * RMS says we must do everything from scratch, to prevent pin-heads
|
||
+ * restricting this software.
|
||
+ */
|
||
+
|
||
+/*
|
||
+ * This is a vaguely modular set of routines in C to parse VAX
|
||
+ * assembly code using DEC mnemonics. It is NOT un*x specific.
|
||
+ *
|
||
+ * The idea here is that the assembler has taken care of all:
|
||
+ * labels
|
||
+ * macros
|
||
+ * listing
|
||
+ * pseudo-ops
|
||
+ * line continuation
|
||
+ * comments
|
||
+ * condensing any whitespace down to exactly one space
|
||
+ * and all we have to do is parse 1 line into a vax instruction
|
||
+ * partially formed. We will accept a line, and deliver:
|
||
+ * an error message (hopefully empty)
|
||
+ * a skeleton VAX instruction (tree structure)
|
||
+ * textual pointers to all the operand expressions
|
||
+ * a warning message that notes a silly operand (hopefully empty)
|
||
+ */
|
||
+
|
||
+/*
|
||
+ * E D I T H I S T O R Y
|
||
+ *
|
||
+ * 17may86 Dean Elsner. Bug if line ends immediately after opcode.
|
||
+ * 30apr86 Dean Elsner. New vip_op() uses arg block so change call.
|
||
+ * 6jan86 Dean Elsner. Crock vip_begin() to call vip_op_defaults().
|
||
+ * 2jan86 Dean Elsner. Invent synthetic opcodes.
|
||
+ * Widen vax_opcodeT to 32 bits. Use a bit for VIT_OPCODE_SYNTHETIC,
|
||
+ * which means this is not a real opcode, it is like a macro; it will
|
||
+ * be relax()ed into 1 or more instructions.
|
||
+ * Use another bit for VIT_OPCODE_SPECIAL if the op-code is not optimised
|
||
+ * like a regular branch instruction. Option added to vip_begin():
|
||
+ * exclude synthetic opcodes. Invent synthetic_votstrs[].
|
||
+ * 31dec85 Dean Elsner. Invent vit_opcode_nbytes.
|
||
+ * Also make vit_opcode into a char[]. We now have n-byte vax opcodes,
|
||
+ * so caller's don't have to know the difference between a 1-byte & a
|
||
+ * 2-byte op-code. Still need vax_opcodeT concept, so we know how
|
||
+ * big an object must be to hold an op.code.
|
||
+ * 30dec85 Dean Elsner. Widen typedef vax_opcodeT in "vax-inst.h"
|
||
+ * because vax opcodes may be 16 bits. Our crufty C compiler was
|
||
+ * happily initialising 8-bit vot_codes with 16-bit numbers!
|
||
+ * (Wouldn't the 'phone company like to compress data so easily!)
|
||
+ * 29dec85 Dean Elsner. New static table vax_operand_width_size[].
|
||
+ * Invented so we know hw many bytes a "I^#42" needs in its immediate
|
||
+ * operand. Revised struct vop in "vax-inst.h": explicitly include
|
||
+ * byte length of each operand, and it's letter-code datum type.
|
||
+ * 17nov85 Dean Elsner. Name Change.
|
||
+ * Due to ar(1) truncating names, we learned the hard way that
|
||
+ * "vax-inst-parse.c" -> "vax-inst-parse." dropping the "o" off
|
||
+ * the archived object name. SO... we shortened the name of this
|
||
+ * source file, and changed the makefile.
|
||
+ */
|
||
+
|
||
/* Parse a vax operand in DEC assembler notation.
|
||
For speed, expect a string of whitespace to be reduced to a single ' '.
|
||
This is the case for GNU AS, and is easy for other DEC-compatible
|
||
@@ -3156,7 +3308,7 @@
|
||
if (flag_want_pic && operandP->vop_mode == 8
|
||
&& this_add_symbol != NULL)
|
||
{
|
||
- as_warn (_("Symbol %s used as immediate operand in PIC mode."),
|
||
+ as_warn (_("Symbol '%s' used as immediate operand in PIC mode."),
|
||
S_GET_NAME (this_add_symbol));
|
||
}
|
||
#endif
|
||
@@ -3232,7 +3384,15 @@
|
||
length = 4;
|
||
}
|
||
}
|
||
+#ifdef OBJ_ELF
|
||
+ if (flag_want_pic && this_add_symbol != NULL)
|
||
+ {
|
||
+ as_warn (_("Symbol '%s' used as displacement in PIC mode."),
|
||
+ S_GET_NAME (this_add_symbol));
|
||
+ }
|
||
+#endif
|
||
p = frag_more (1 + length);
|
||
+ know (operandP->vop_reg != 0xf);
|
||
know (operandP->vop_reg >= 0);
|
||
p[0] = operandP->vop_reg
|
||
| ((at | "?\12\14?\16"[length]) << 4);
|
||
@@ -3410,3 +3570,36 @@
|
||
{
|
||
return vax_md_atof (type, litP, sizeP);
|
||
}
|
||
+
|
||
+void
|
||
+vax_cfi_frame_initial_instructions (void)
|
||
+{
|
||
+ cfi_add_CFA_def_cfa (14, 0);
|
||
+}
|
||
+
|
||
+int
|
||
+tc_vax_regname_to_dw2regnum (char *regname)
|
||
+{
|
||
+ unsigned int i;
|
||
+ static const struct { char *name; int dw2regnum; } regnames[] =
|
||
+ {
|
||
+ { "r0", 0 }, { "r1", 1 }, { "r2", 2 }, { "r3", 3 },
|
||
+ { "r4", 4 }, { "r5", 5 }, { "r6", 6 }, { "r7", 7 },
|
||
+ { "r8", 8 }, { "r9", 9 }, { "r10", 10 }, { "r11", 11 },
|
||
+ { "ap", 12 }, { "fp", 13 }, { "sp", 14 }, { "pc", 15 },
|
||
+ { "psw", 16 },
|
||
+ };
|
||
+
|
||
+ for (i = 0; i < ARRAY_SIZE (regnames); ++i)
|
||
+ if (strcmp (regnames[i].name, regname) == 0)
|
||
+ return regnames[i].dw2regnum;
|
||
+
|
||
+ return -1;
|
||
+}
|
||
+
|
||
+void
|
||
+vax_cfi_emit_pcrel_expr (expressionS *expP, unsigned int nbytes)
|
||
+{
|
||
+ expP->X_add_number += nbytes;
|
||
+ emit_expr (expP, nbytes);
|
||
+}
|
||
diff -rNU3 a/gas/config/tc-vax.h b/gas/config/tc-vax.h
|
||
--- a/gas/config/tc-vax.h 2021-03-30 23:12:40.184559933 -0300
|
||
+++ b/gas/config/tc-vax.h 2021-03-30 17:48:00.282219000 -0300
|
||
@@ -71,9 +71,17 @@
|
||
== S_GET_SEGMENT ((FIX)->fx_addsy))) \
|
||
|| S_IS_LOCAL ((FIX)->fx_addsy)))
|
||
|
||
-/*
|
||
- * Local Variables:
|
||
- * comment-column: 0
|
||
- * fill-column: 131
|
||
- * End:
|
||
- */
|
||
+#define TARGET_USE_CFIPOP 1
|
||
+
|
||
+#define tc_cfi_frame_initial_instructions vax_cfi_frame_initial_instructions
|
||
+extern void vax_cfi_frame_initial_instructions (void);
|
||
+
|
||
+#define tc_regname_to_dw2regnum tc_vax_regname_to_dw2regnum
|
||
+extern int tc_vax_regname_to_dw2regnum (char *);
|
||
+
|
||
+#define tc_cfi_emit_pcrel_expr vax_cfi_emit_pcrel_expr
|
||
+extern void vax_cfi_emit_pcrel_expr (expressionS *, unsigned int);
|
||
+
|
||
+#define DWARF2_LINE_MIN_INSN_LENGTH 1
|
||
+#define DWARF2_DEFAULT_RETURN_COLUMN 15
|
||
+#define DWARF2_CIE_DATA_ALIGNMENT -4
|
||
diff -rNU3 a/gas/config/te-armnbsdeabi.h b/gas/config/te-armnbsdeabi.h
|
||
--- a/gas/config/te-armnbsdeabi.h 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/gas/config/te-armnbsdeabi.h 2021-03-30 17:48:00.292219000 -0300
|
||
@@ -0,0 +1,25 @@
|
||
+/* Copyright 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
|
||
+
|
||
+ This file is part of GAS, the GNU Assembler.
|
||
+
|
||
+ GAS 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 3,
|
||
+ or (at your option) any later version.
|
||
+
|
||
+ GAS 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 GAS; see the file COPYING. If not, write to the Free
|
||
+ Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
|
||
+ 02110-1301, USA. */
|
||
+
|
||
+#include "te-nbsd.h"
|
||
+
|
||
+/* The EABI requires the use of VFP. */
|
||
+#define CPU_DEFAULT ARM_ARCH_V5TEJ
|
||
+#define FPU_DEFAULT FPU_ARCH_VFP
|
||
+#define EABI_DEFAULT EF_ARM_EABI_VER5
|
||
diff -rNU3 a/gas/config/te-armnbsdeabihf.h b/gas/config/te-armnbsdeabihf.h
|
||
--- a/gas/config/te-armnbsdeabihf.h 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/gas/config/te-armnbsdeabihf.h 2021-03-30 17:48:00.292219000 -0300
|
||
@@ -0,0 +1,25 @@
|
||
+/* Copyright 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
|
||
+
|
||
+ This file is part of GAS, the GNU Assembler.
|
||
+
|
||
+ GAS 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 3,
|
||
+ or (at your option) any later version.
|
||
+
|
||
+ GAS 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 GAS; see the file COPYING. If not, write to the Free
|
||
+ Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
|
||
+ 02110-1301, USA. */
|
||
+
|
||
+#include "te-nbsd.h"
|
||
+
|
||
+/* The EABI requires the use of VFP. */
|
||
+#define CPU_DEFAULT ARM_ARCH_V5TEJ
|
||
+#define FPU_DEFAULT FPU_ARCH_VFP_V2
|
||
+#define EABI_DEFAULT EF_ARM_EABI_VER5
|
||
diff -rNU3 a/gas/config/te-armnbsd.h b/gas/config/te-armnbsd.h
|
||
--- a/gas/config/te-armnbsd.h 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/gas/config/te-armnbsd.h 2021-03-30 17:48:00.292219000 -0300
|
||
@@ -0,0 +1,22 @@
|
||
+/* Copyright 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
|
||
+
|
||
+ This file is part of GAS, the GNU Assembler.
|
||
+
|
||
+ GAS 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 3,
|
||
+ or (at your option) any later version.
|
||
+
|
||
+ GAS 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 GAS; see the file COPYING. If not, write to the Free
|
||
+ Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
|
||
+ 02110-1301, USA. */
|
||
+
|
||
+#include "te-nbsd.h"
|
||
+
|
||
+#define CPU_DEFAULT ARM_ARCH_V4
|
||
diff -rNU3 a/gas/config/vax-inst.h b/gas/config/vax-inst.h
|
||
--- a/gas/config/vax-inst.h 2021-03-30 23:12:40.184559933 -0300
|
||
+++ b/gas/config/vax-inst.h 2021-03-30 17:48:00.298886000 -0300
|
||
@@ -65,6 +65,8 @@
|
||
#define VAX_WIDEN_WORD (0x20) /* Add this to byte branch to get word br. */
|
||
#define VAX_WIDEN_LONG (0x6) /* Add this to byte branch to get long jmp.*/
|
||
/* Needs VAX_PC_RELATIVE_MODE byte after it*/
|
||
+#define VAX_CALLS (0xFB) /* Call with arg list on stack */
|
||
+#define VAX_CALLG (0xFA) /* Call with arg list in memory */
|
||
|
||
struct vit /* vax instruction tree */
|
||
{
|
||
diff -rNU3 a/gas/configure.tgt b/gas/configure.tgt
|
||
--- a/gas/configure.tgt 2021-03-30 23:12:40.191226600 -0300
|
||
+++ b/gas/configure.tgt 2021-03-30 17:48:00.308886000 -0300
|
||
@@ -70,7 +70,7 @@
|
||
m32c) cpu_type=m32c endian=little ;;
|
||
m32r) cpu_type=m32r endian=big ;;
|
||
m32rle) cpu_type=m32r endian=little ;;
|
||
- m5200) cpu_type=m68k ;;
|
||
+ m5200|m5407) cpu_type=m68k ;;
|
||
m68008) cpu_type=m68k ;;
|
||
m680[012346]0) cpu_type=m68k ;;
|
||
m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
|
||
@@ -123,6 +123,7 @@
|
||
case ${generic_target} in
|
||
aarch64*-*-elf*) fmt=elf;;
|
||
aarch64*-*-fuchsia*) fmt=elf;;
|
||
+ aarch64*-*-netbsd*) fmt=elf em=nbsd ;;
|
||
aarch64*-*-linux*) fmt=elf em=linux
|
||
case ${cpu}-${os} in
|
||
aarch64*-linux-gnu_ilp32) arch=aarch64:32 ;;
|
||
@@ -139,6 +140,8 @@
|
||
|
||
arm-*-phoenix*) fmt=elf ;;
|
||
arm-*-elf) fmt=elf ;;
|
||
+ arm-*-netbsdelf*-*eabihf*) fmt=elf em=armnbsdeabihf ;;
|
||
+ arm-*-netbsdelf*-*eabi*) fmt=elf em=armnbsdeabi ;;
|
||
arm-*-eabi* | arm-*-rtems*) fmt=elf em=armeabi ;;
|
||
arm-*-symbianelf*) fmt=elf em=symbian ;;
|
||
arm-*-kaos*) fmt=elf ;;
|
||
@@ -152,7 +155,7 @@
|
||
arm-*-uclinux*eabi*) fmt=elf em=armlinuxeabi ;;
|
||
arm-*-uclinux*) fmt=elf em=linux ;;
|
||
arm-*-nacl*) fmt=elf em=nacl ;;
|
||
- arm-*-netbsdelf*) fmt=elf em=nbsd ;;
|
||
+ arm-*-netbsdelf*) fmt=elf em=armnbsd ;;
|
||
arm-*-nto*) fmt=elf ;;
|
||
arm-wince-pe | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*)
|
||
fmt=coff em=wince-pe ;;
|
||
@@ -343,6 +346,7 @@
|
||
|
||
or1k*-*-elf | or1k*-*-rtems*) fmt=elf endian=big ;;
|
||
or1k*-*-linux*) fmt=elf em=linux endian=big ;;
|
||
+ or1k-*-netbsd*) fmt=elf em=nbsd ;;
|
||
|
||
pj*) fmt=elf ;;
|
||
|
||
diff -rNU3 a/gas/doc/c-mips.texi b/gas/doc/c-mips.texi
|
||
--- a/gas/doc/c-mips.texi 2021-03-30 23:12:40.191226600 -0300
|
||
+++ b/gas/doc/c-mips.texi 2021-03-30 17:48:00.332219000 -0300
|
||
@@ -325,6 +325,14 @@
|
||
@itemx -mno-fix-vr4130
|
||
Insert nops to work around the VR4130 @samp{mflo}/@samp{mfhi} errata.
|
||
|
||
+@item -mfix-loongson2f-btb
|
||
+@itemx -mno-fix-loongson2f-btb
|
||
+Clear the Branch Target Buffer before any jump through a register. This
|
||
+option is intended to be used on kernel code for the Loongson 2F processor
|
||
+only; userland code compiled with this option will fault, and kernel code
|
||
+compiled with this option run on another processor than Loongson 2F will
|
||
+yield unpredictable results.
|
||
+
|
||
@item -mfix-24k
|
||
@itemx -mno-fix-24k
|
||
Insert nops to work around the 24K @samp{eret}/@samp{deret} errata.
|
||
diff -rNU3 a/gas/doc/Makefile.am b/gas/doc/Makefile.am
|
||
--- a/gas/doc/Makefile.am 2021-03-30 23:12:40.191226600 -0300
|
||
+++ b/gas/doc/Makefile.am 2021-03-30 17:48:00.308886000 -0300
|
||
@@ -41,6 +41,8 @@
|
||
-I "$(top_srcdir)/../bfd/doc" -I ../../bfd/doc
|
||
|
||
asconfig.texi: $(CONFIG).texi
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_asconfig.text:
|
||
rm -f asconfig.texi
|
||
cp $(srcdir)/$(CONFIG).texi ./asconfig.texi
|
||
chmod u+w ./asconfig.texi
|
||
@@ -124,6 +126,8 @@
|
||
# The sed command removes the no-adjust Nroff command so that
|
||
# the man output looks standard.
|
||
as.1: $(srcdir)/as.texi asconfig.texi $(CPU_DOCS)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_as.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) < $(srcdir)/as.texi > as.pod
|
||
-($(POD2MAN) as.pod | \
|
||
diff -rNU3 a/gas/doc/Makefile.in b/gas/doc/Makefile.in
|
||
--- a/gas/doc/Makefile.in 2021-03-30 23:12:40.191226600 -0300
|
||
+++ b/gas/doc/Makefile.in 2021-03-30 17:48:00.308886000 -0300
|
||
@@ -504,6 +504,8 @@
|
||
-rm -rf .libs _libs
|
||
|
||
as.info: as.texi $(as_TEXINFOS)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_as.info: as.texinfo $(as_TEXINFOS)
|
||
$(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
|
||
rm -rf $$backupdir && mkdir $$backupdir && \
|
||
if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
|
||
@@ -940,6 +942,8 @@
|
||
|
||
|
||
asconfig.texi: $(CONFIG).texi
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_asconfig.texi:
|
||
rm -f asconfig.texi
|
||
cp $(srcdir)/$(CONFIG).texi ./asconfig.texi
|
||
chmod u+w ./asconfig.texi
|
||
@@ -957,6 +961,8 @@
|
||
# The sed command removes the no-adjust Nroff command so that
|
||
# the man output looks standard.
|
||
as.1: $(srcdir)/as.texi asconfig.texi $(CPU_DOCS)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_as.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) < $(srcdir)/as.texi > as.pod
|
||
-($(POD2MAN) as.pod | \
|
||
diff -rNU3 a/gas/remap.c b/gas/remap.c
|
||
--- a/gas/remap.c 2021-03-30 23:12:40.191226600 -0300
|
||
+++ b/gas/remap.c 2021-03-30 17:48:00.495553000 -0300
|
||
@@ -76,10 +76,13 @@
|
||
|
||
for (map = debug_prefix_maps; map; map = map->next)
|
||
if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
|
||
- {
|
||
- const char *name = filename + map->old_len;
|
||
- return concat (map->new_prefix, name, NULL);
|
||
- }
|
||
-
|
||
- return xstrdup (filename);
|
||
+ break;
|
||
+ if (!map)
|
||
+ return xstrdup (filename);
|
||
+ const char *name = filename + map->old_len;
|
||
+ size_t name_len = strlen (name) + 1;
|
||
+ char *s = (char *) xmalloc (name_len + map->new_len);
|
||
+ memcpy (s, map->new_prefix, map->new_len);
|
||
+ memcpy (s + map->new_len, name, name_len);
|
||
+ return s;
|
||
}
|
||
diff -rNU3 a/gold/Makefile.am b/gold/Makefile.am
|
||
--- a/gold/Makefile.am 2021-03-30 23:12:40.191226600 -0300
|
||
+++ b/gold/Makefile.am 2021-03-30 17:48:00.518886000 -0300
|
||
@@ -19,7 +19,7 @@
|
||
|
||
AUTOMAKE_OPTIONS = foreign
|
||
|
||
-SUBDIRS = po testsuite
|
||
+SUBDIRS = po # testsuite
|
||
|
||
tooldir = $(exec_prefix)/$(target_alias)
|
||
|
||
Os arquivos binários a/gold/po/ja.gmo e b/gold/po/ja.gmo são diferentes
|
||
diff -rNU3 a/gold/po/ja.po b/gold/po/ja.po
|
||
--- a/gold/po/ja.po 2021-03-30 23:12:40.194559933 -0300
|
||
+++ b/gold/po/ja.po 1969-12-31 21:00:00.000000000 -0300
|
||
@@ -1,2241 +0,0 @@
|
||
-# Japanese messages for GNU binutils gold.
|
||
-# Copyright (C) 2010 Free Software Foundation, Inc.
|
||
-# This file is distributed under the same license as the binutils package.
|
||
-# Yasuaki Taniguchi <yasuakit@gmail.com>, 2010.
|
||
-#
|
||
-msgid ""
|
||
-msgstr ""
|
||
-"Project-Id-Version: gold 2.20.90\n"
|
||
-"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
|
||
-"POT-Creation-Date: 2010-03-03 15:08+0100\n"
|
||
-"PO-Revision-Date: 2010-12-18 16:06+0900\n"
|
||
-"Last-Translator: Yasuaki Taniguchi <yasuakit@gmail.com>\n"
|
||
-"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
|
||
-"X-Bugs: Report translation errors to the Language-Team address.\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"
|
||
-
|
||
-#: archive.cc:119
|
||
-#, c-format
|
||
-msgid "%s: no archive symbol table (run ranlib)"
|
||
-msgstr "%s: 書庫シンボル表がありません (ranlib を実行してください)"
|
||
-
|
||
-#: archive.cc:204
|
||
-#, c-format
|
||
-msgid "%s: bad archive symbol table names"
|
||
-msgstr "%s: 誤った書庫シンボル表名です"
|
||
-
|
||
-#: archive.cc:236
|
||
-#, c-format
|
||
-msgid "%s: malformed archive header at %zu"
|
||
-msgstr "%s: 誤った形式の書庫ヘッダが %zu にあります"
|
||
-
|
||
-#: archive.cc:256
|
||
-#, c-format
|
||
-msgid "%s: malformed archive header size at %zu"
|
||
-msgstr "%s: 誤った形式の書庫ヘッダサイズが %zu にあります"
|
||
-
|
||
-#: archive.cc:267
|
||
-#, c-format
|
||
-msgid "%s: malformed archive header name at %zu"
|
||
-msgstr "%s: 誤った形式の書庫ヘッダ名が %zu にあります"
|
||
-
|
||
-#: archive.cc:297
|
||
-#, c-format
|
||
-msgid "%s: bad extended name index at %zu"
|
||
-msgstr "%s: 誤った拡張名索引が %zu にあります"
|
||
-
|
||
-#: archive.cc:307
|
||
-#, c-format
|
||
-msgid "%s: bad extended name entry at header %zu"
|
||
-msgstr "%s: 誤った拡張名エントリが %zu にあります"
|
||
-
|
||
-#: archive.cc:404
|
||
-#, c-format
|
||
-msgid "%s: short archive header at %zu"
|
||
-msgstr "%s: 短い書庫ヘッダが %zu にあります"
|
||
-
|
||
-#: archive.cc:560
|
||
-#, c-format
|
||
-msgid "%s: member at %zu is not an ELF object"
|
||
-msgstr "%s: %zu にあるメンバは ELF オブジェクトではありません"
|
||
-
|
||
-#: archive.cc:879
|
||
-#, c-format
|
||
-msgid "%s: archive libraries: %u\n"
|
||
-msgstr "%s: 書庫ライブラリ: %u\n"
|
||
-
|
||
-#: archive.cc:881
|
||
-#, c-format
|
||
-msgid "%s: total archive members: %u\n"
|
||
-msgstr "%s: 書庫メンバ総数: %u\n"
|
||
-
|
||
-#: archive.cc:883
|
||
-#, c-format
|
||
-msgid "%s: loaded archive members: %u\n"
|
||
-msgstr "%s: ロードされた書庫メンバ数: %u\n"
|
||
-
|
||
-#: arm.cc:1149 i386.cc:536 sparc.cc:1087 x86_64.cc:565
|
||
-msgid "** PLT"
|
||
-msgstr ""
|
||
-
|
||
-#: arm.cc:1364 i386.cc:880 powerpc.cc:1014 sparc.cc:1502 x86_64.cc:955
|
||
-#: x86_64.cc:1265
|
||
-#, c-format
|
||
-msgid "%s: unsupported reloc %u against local symbol"
|
||
-msgstr "%s: 局所シンボルに対するサポートされない再配置 %u です"
|
||
-
|
||
-#: arm.cc:1404 powerpc.cc:1105 sparc.cc:1592 x86_64.cc:992
|
||
-msgid "requires unsupported dynamic reloc; recompile with -fPIC"
|
||
-msgstr "サポートされていない動的再配置が必要になりました。 -fPIC を付けて再コンパイルしてください"
|
||
-
|
||
-#. These are relocations which should only be seen by the
|
||
-#. dynamic linker, and should never be seen here.
|
||
-#: arm.cc:1519 arm.cc:1739 arm.cc:2354 i386.cc:1002 i386.cc:1334
|
||
-#: powerpc.cc:1223 powerpc.cc:1432 sparc.cc:1877 sparc.cc:2238 x86_64.cc:1145
|
||
-#: x86_64.cc:1453
|
||
-#, c-format
|
||
-msgid "%s: unexpected reloc %u in object file"
|
||
-msgstr "%s: オブジェクトファイル内で予期しない再配置 %u です"
|
||
-
|
||
-#: arm.cc:1538 i386.cc:1171 powerpc.cc:1242 sparc.cc:1896 x86_64.cc:1279
|
||
-#: x86_64.cc:1571
|
||
-#, c-format
|
||
-msgid "%s: unsupported reloc %u against global symbol %s"
|
||
-msgstr "%1$s: 大域シンボル %3$s に対するサポートされない再配置 %2$u です"
|
||
-
|
||
-#: arm.cc:1804 i386.cc:1542
|
||
-#, c-format
|
||
-msgid "%s: unsupported RELA reloc section"
|
||
-msgstr "%s: サポートされない RELA 再配置セクションです"
|
||
-
|
||
-#: arm.cc:2047
|
||
-msgid "relocation R_ARM_MOVW_ABS_NC cannot be used when makinga shared object; recompile with -fPIC"
|
||
-msgstr ""
|
||
-
|
||
-#: arm.cc:2056
|
||
-msgid "relocation R_ARM_MOVT_ABS cannot be used when makinga shared object; recompile with -fPIC"
|
||
-msgstr ""
|
||
-
|
||
-#: arm.cc:2067
|
||
-msgid "relocation R_ARM_THM_MOVW_ABS_NC cannot be used whenmaking a shared object; recompile with -fPIC"
|
||
-msgstr ""
|
||
-
|
||
-#: arm.cc:2077
|
||
-msgid "relocation R_ARM_THM_MOVT_ABS cannot be used whenmaking a shared object; recompile with -fPIC"
|
||
-msgstr ""
|
||
-
|
||
-#: arm.cc:2141
|
||
-msgid "cannot find origin of R_ARM_BASE_PREL"
|
||
-msgstr ""
|
||
-
|
||
-#: arm.cc:2169
|
||
-msgid "cannot find origin of R_ARM_BASE_ABS"
|
||
-msgstr ""
|
||
-
|
||
-#: arm.cc:2230 i386.cc:1820 i386.cc:2521 powerpc.cc:1798 sparc.cc:2711
|
||
-#: x86_64.cc:1935 x86_64.cc:2518
|
||
-#, c-format
|
||
-msgid "unexpected reloc %u in object file"
|
||
-msgstr "オブジェクトファイル内で予期しない再配置 %u です"
|
||
-
|
||
-#: arm.cc:2236 i386.cc:1852 i386.cc:1931 i386.cc:1983 i386.cc:2014
|
||
-#: i386.cc:2076 powerpc.cc:1804 sparc.cc:2717 sparc.cc:2900 sparc.cc:2961
|
||
-#: sparc.cc:3068 x86_64.cc:1956 x86_64.cc:2039 x86_64.cc:2094 x86_64.cc:2119
|
||
-#, c-format
|
||
-msgid "unsupported reloc %u"
|
||
-msgstr "サポートされない再配置 %u です"
|
||
-
|
||
-#: arm.cc:2248
|
||
-#, c-format
|
||
-msgid "relocation overflow in relocation %u"
|
||
-msgstr "再配置 %u で再配置オーバーフローが発生しました"
|
||
-
|
||
-#: arm.cc:2256
|
||
-#, c-format
|
||
-msgid "unexpected opcode while processing relocation %u"
|
||
-msgstr "再配置 %u を処理中に予期しないオペコードです"
|
||
-
|
||
-#: arm.cc:2359 i386.cc:2535
|
||
-#, c-format
|
||
-msgid "unsupported reloc %u in object file"
|
||
-msgstr "オブジェクトファイル内でサポートされない再配置 %u です"
|
||
-
|
||
-#: binary.cc:129
|
||
-#, c-format
|
||
-msgid "cannot open %s: %s:"
|
||
-msgstr "%s を開けません: %s:"
|
||
-
|
||
-#: compressed_output.cc:128
|
||
-msgid "not compressing section data: zlib error"
|
||
-msgstr "セクションデータを圧縮しません: zlib エラー"
|
||
-
|
||
-#: cref.cc:244
|
||
-#, c-format
|
||
-msgid "cannot open symbol count file %s: %s"
|
||
-msgstr "シンボルカウントファイル %s を開けません: %s"
|
||
-
|
||
-#: descriptors.cc:116
|
||
-#, c-format
|
||
-msgid "file %s was removed during the link"
|
||
-msgstr "ファイル %s がリンク中に削除されました"
|
||
-
|
||
-#: descriptors.cc:169
|
||
-msgid "out of file descriptors and couldn't close any"
|
||
-msgstr "ファイル記述子が足りなくなり、どれも閉じることが出来ませんでした"
|
||
-
|
||
-#: descriptors.cc:190 descriptors.cc:226
|
||
-#, c-format
|
||
-msgid "while closing %s: %s"
|
||
-msgstr "%s を閉じている間: %s"
|
||
-
|
||
-#: dirsearch.cc:71
|
||
-#, c-format
|
||
-msgid "%s: can not read directory: %s"
|
||
-msgstr "%s: ディレクトリを読み込めません: %s"
|
||
-
|
||
-#: dwarf_reader.cc:53 dwarf_reader.cc:84
|
||
-msgid "Unusually large LEB128 decoded, debug information may be corrupted"
|
||
-msgstr "通常ではない大きな LEB128 デコードです。デバッグ情報が壊れているかもしれません"
|
||
-
|
||
-#: dynobj.cc:164
|
||
-#, c-format
|
||
-msgid "unexpected duplicate type %u section: %u, %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:200
|
||
-#, c-format
|
||
-msgid "unexpected link in section %u header: %u != %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:236
|
||
-#, c-format
|
||
-msgid "DYNAMIC section %u link out of range: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:244
|
||
-#, c-format
|
||
-msgid "DYNAMIC section %u link %u is not a strtab"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:273
|
||
-#, c-format
|
||
-msgid "DT_SONAME value out of range: %lld >= %lld"
|
||
-msgstr "DT_SONAME の値が範囲外です: %lld >= %lld"
|
||
-
|
||
-#: dynobj.cc:285
|
||
-#, c-format
|
||
-msgid "DT_NEEDED value out of range: %lld >= %lld"
|
||
-msgstr "DT_NEEDED の値が範囲外です: %lld >= %lld"
|
||
-
|
||
-#: dynobj.cc:298
|
||
-msgid "missing DT_NULL in dynamic segment"
|
||
-msgstr "動的セグメント内に DT_NULL がありません"
|
||
-
|
||
-#: dynobj.cc:344
|
||
-#, c-format
|
||
-msgid "invalid dynamic symbol table name index: %u"
|
||
-msgstr "無効な動的シンボル表名索引です: %u"
|
||
-
|
||
-#: dynobj.cc:351
|
||
-#, c-format
|
||
-msgid "dynamic symbol table name section has wrong type: %u"
|
||
-msgstr "動的シンボルテーブル名セクションの型が誤っています: %u"
|
||
-
|
||
-#: dynobj.cc:438 object.cc:463 object.cc:1106
|
||
-#, c-format
|
||
-msgid "bad section name offset for section %u: %lu"
|
||
-msgstr "セクション %u に対する誤ったセクション名オフセットです: %lu"
|
||
-
|
||
-#: dynobj.cc:468
|
||
-#, c-format
|
||
-msgid "duplicate definition for version %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:497
|
||
-#, c-format
|
||
-msgid "unexpected verdef version %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:513
|
||
-#, c-format
|
||
-msgid "verdef vd_cnt field too small: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:521
|
||
-#, c-format
|
||
-msgid "verdef vd_aux field out of range: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:532
|
||
-#, c-format
|
||
-msgid "verdaux vda_name field out of range: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:542
|
||
-#, c-format
|
||
-msgid "verdef vd_next field out of range: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:576
|
||
-#, c-format
|
||
-msgid "unexpected verneed version %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:585
|
||
-#, c-format
|
||
-msgid "verneed vn_aux field out of range: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:599
|
||
-#, c-format
|
||
-msgid "vernaux vna_name field out of range: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:610
|
||
-#, c-format
|
||
-msgid "verneed vna_next field out of range: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:621
|
||
-#, c-format
|
||
-msgid "verneed vn_next field out of range: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: dynobj.cc:670
|
||
-msgid "size of dynamic symbols is not multiple of symbol size"
|
||
-msgstr "動的シンボルのサイズがシンボルサイズの倍数ではありません"
|
||
-
|
||
-#: dynobj.cc:1435
|
||
-#, c-format
|
||
-msgid "symbol %s has undefined version %s"
|
||
-msgstr ""
|
||
-
|
||
-#: ehframe.h:82
|
||
-msgid "** eh_frame_hdr"
|
||
-msgstr ""
|
||
-
|
||
-#: ehframe.h:353
|
||
-msgid "** eh_frame"
|
||
-msgstr ""
|
||
-
|
||
-#: errors.cc:81
|
||
-#, c-format
|
||
-msgid "%s: fatal error: "
|
||
-msgstr "%s: 致命的エラー: "
|
||
-
|
||
-#: errors.cc:92
|
||
-#, c-format
|
||
-msgid "%s: error: "
|
||
-msgstr "%s: エラー: "
|
||
-
|
||
-#: errors.cc:104
|
||
-#, c-format
|
||
-msgid "%s: warning: "
|
||
-msgstr "%s: 警告: "
|
||
-
|
||
-#: errors.cc:128
|
||
-#, c-format
|
||
-msgid "%s: %s: error: "
|
||
-msgstr "%s: %s: エラー: "
|
||
-
|
||
-#: errors.cc:144
|
||
-#, c-format
|
||
-msgid "%s: %s: warning: "
|
||
-msgstr "%s: %s: 警告: "
|
||
-
|
||
-#: errors.cc:167
|
||
-#, c-format
|
||
-msgid "%s: %s: error: undefined reference to '%s'\n"
|
||
-msgstr "%s: %s: エラー: '%s' への未定義の参照です\n"
|
||
-
|
||
-#: errors.cc:172
|
||
-#, c-format
|
||
-msgid "%s: %s: error: undefined reference to '%s', version '%s'\n"
|
||
-msgstr "%s: %s: error: '%s', バージョン '%s' への未定義の参照です\n"
|
||
-
|
||
-#: errors.cc:182
|
||
-#, c-format
|
||
-msgid "%s: "
|
||
-msgstr "%s: "
|
||
-
|
||
-#: expression.cc:172
|
||
-#, c-format
|
||
-msgid "undefined symbol '%s' referenced in expression"
|
||
-msgstr "式内で未定義シンボル '%s' が参照されました"
|
||
-
|
||
-#: expression.cc:209
|
||
-msgid "invalid reference to dot symbol outside of SECTIONS clause"
|
||
-msgstr ""
|
||
-
|
||
-#. Handle unary operators. We use a preprocessor macro as a hack to
|
||
-#. capture the C operator.
|
||
-#: expression.cc:278
|
||
-msgid "unary "
|
||
-msgstr "単項演算子 "
|
||
-
|
||
-#. Handle binary operators. We use a preprocessor macro as a hack to
|
||
-#. capture the C operator. KEEP_LEFT means that if the left operand
|
||
-#. is section relative and the right operand is not, the result uses
|
||
-#. the same section as the left operand. KEEP_RIGHT is the same with
|
||
-#. left and right swapped. IS_DIV means that we need to give an error
|
||
-#. if the right operand is zero. WARN means that we should warn if
|
||
-#. used on section relative values in a relocatable link. We always
|
||
-#. warn if used on values in different sections in a relocatable link.
|
||
-#: expression.cc:400
|
||
-msgid "binary "
|
||
-msgstr "二項演算子 "
|
||
-
|
||
-#: expression.cc:404
|
||
-msgid " by zero"
|
||
-msgstr ""
|
||
-
|
||
-#: expression.cc:575
|
||
-msgid "max applied to section relative value"
|
||
-msgstr ""
|
||
-
|
||
-#: expression.cc:610
|
||
-msgid "min applied to section relative value"
|
||
-msgstr ""
|
||
-
|
||
-#: expression.cc:740
|
||
-msgid "aligning to section relative value"
|
||
-msgstr ""
|
||
-
|
||
-#: expression.cc:895
|
||
-#, c-format
|
||
-msgid "unknown constant %s"
|
||
-msgstr "不明な定数 %s"
|
||
-
|
||
-#: expression.cc:1126
|
||
-msgid "SEGMENT_START not implemented"
|
||
-msgstr "SEGMENT_START は実装されていません"
|
||
-
|
||
-#: expression.cc:1135
|
||
-msgid "ORIGIN not implemented"
|
||
-msgstr "ORIGIN は実装されていません"
|
||
-
|
||
-#: expression.cc:1141
|
||
-msgid "LENGTH not implemented"
|
||
-msgstr "LENGTH は実装されていません"
|
||
-
|
||
-#: fileread.cc:65
|
||
-#, c-format
|
||
-msgid "munmap failed: %s"
|
||
-msgstr "munmap に失敗しました: %s"
|
||
-
|
||
-#: fileread.cc:129
|
||
-#, c-format
|
||
-msgid "%s: fstat failed: %s"
|
||
-msgstr "%s: fstat に失敗しました: %s"
|
||
-
|
||
-#: fileread.cc:169
|
||
-#, c-format
|
||
-msgid "could not reopen file %s"
|
||
-msgstr "ファイル %s を再度開くことが出来ませんでした"
|
||
-
|
||
-#: fileread.cc:302
|
||
-#, c-format
|
||
-msgid "%s: pread failed: %s"
|
||
-msgstr "%s: pread に失敗しました: %s"
|
||
-
|
||
-#: fileread.cc:308
|
||
-#, c-format
|
||
-msgid "%s: file too short: read only %lld of %lld bytes at %lld"
|
||
-msgstr "%1$s: ファイルが短すぎます。位置 %4$lld で %3$lld バイト中 %2$lld バイトしか読み込めませんでした"
|
||
-
|
||
-#: fileread.cc:372
|
||
-#, c-format
|
||
-msgid "%s: attempt to map %lld bytes at offset %lld exceeds size of file; the file may be corrupt"
|
||
-msgstr "%1$s: オフセット %3$lld で %2$lld バイト分マップを試みましたがファイルサイズを超過しています。ファイルが壊れているかもしれません"
|
||
-
|
||
-#: fileread.cc:402
|
||
-#, c-format
|
||
-msgid "%s: mmap offset %lld size %lld failed: %s"
|
||
-msgstr "%s: オフセット %lld、サイズ %lld の mmap に失敗しました: %s"
|
||
-
|
||
-#: fileread.cc:548
|
||
-#, c-format
|
||
-msgid "%s: lseek failed: %s"
|
||
-msgstr "%s: lseek に失敗しました: %s"
|
||
-
|
||
-#: fileread.cc:554
|
||
-#, c-format
|
||
-msgid "%s: readv failed: %s"
|
||
-msgstr "%s: readv に失敗しました: %s"
|
||
-
|
||
-#: fileread.cc:557
|
||
-#, c-format
|
||
-msgid "%s: file too short: read only %zd of %zd bytes at %lld"
|
||
-msgstr "%1$s: ファイルが短すぎます。位置 %4$lld で %3$zd バイト中 %2$zd バイトしか読み込めませんでした"
|
||
-
|
||
-#: fileread.cc:706
|
||
-#, c-format
|
||
-msgid "%s: total bytes mapped for read: %llu\n"
|
||
-msgstr ""
|
||
-
|
||
-#: fileread.cc:708
|
||
-#, c-format
|
||
-msgid "%s: maximum bytes mapped for read at one time: %llu\n"
|
||
-msgstr ""
|
||
-
|
||
-#: fileread.cc:791
|
||
-#, c-format
|
||
-msgid "%s: stat failed: %s"
|
||
-msgstr "%s: stat に失敗しました: %s"
|
||
-
|
||
-#: fileread.cc:849
|
||
-#, c-format
|
||
-msgid "cannot find %s%s"
|
||
-msgstr "%s%s が見つかりません"
|
||
-
|
||
-#: fileread.cc:880
|
||
-#, c-format
|
||
-msgid "cannot find %s"
|
||
-msgstr "%s が見つかりません"
|
||
-
|
||
-#: fileread.cc:904
|
||
-#, c-format
|
||
-msgid "cannot open %s: %s"
|
||
-msgstr "%s を開けません: %s"
|
||
-
|
||
-#: gold-threads.cc:103
|
||
-#, c-format
|
||
-msgid "pthead_mutextattr_init failed: %s"
|
||
-msgstr "pthead_mutextattr_init に失敗しました: %s"
|
||
-
|
||
-#: gold-threads.cc:107
|
||
-#, c-format
|
||
-msgid "pthread_mutextattr_settype failed: %s"
|
||
-msgstr "pthread_mutextattr_settype に失敗しました: %s"
|
||
-
|
||
-#: gold-threads.cc:112
|
||
-#, c-format
|
||
-msgid "pthread_mutex_init failed: %s"
|
||
-msgstr "pthread_mutex_init に失敗しました: %s"
|
||
-
|
||
-#: gold-threads.cc:116
|
||
-#, c-format
|
||
-msgid "pthread_mutexattr_destroy failed: %s"
|
||
-msgstr "pthread_mutexattr_destroy に失敗しました: %s"
|
||
-
|
||
-#: gold-threads.cc:123
|
||
-#, c-format
|
||
-msgid "pthread_mutex_destroy failed: %s"
|
||
-msgstr "pthread_mutex_destroy に失敗しました: %s"
|
||
-
|
||
-#: gold-threads.cc:131 gold-threads.cc:382
|
||
-#, c-format
|
||
-msgid "pthread_mutex_lock failed: %s"
|
||
-msgstr "pthread_mutex_lock に失敗しました: %s"
|
||
-
|
||
-#: gold-threads.cc:139 gold-threads.cc:394
|
||
-#, c-format
|
||
-msgid "pthread_mutex_unlock failed: %s"
|
||
-msgstr "pthread_mutex_unlock に失敗しました: %s"
|
||
-
|
||
-#: gold-threads.cc:220
|
||
-#, c-format
|
||
-msgid "pthread_cond_init failed: %s"
|
||
-msgstr "pthread_cond_init に失敗しました: %s"
|
||
-
|
||
-#: gold-threads.cc:227
|
||
-#, c-format
|
||
-msgid "pthread_cond_destroy failed: %s"
|
||
-msgstr "pthread_cond_destroy に失敗しました: %s"
|
||
-
|
||
-#: gold-threads.cc:236
|
||
-#, c-format
|
||
-msgid "pthread_cond_wait failed: %s"
|
||
-msgstr "pthread_cond_wait に失敗しました: %s"
|
||
-
|
||
-#: gold-threads.cc:244
|
||
-#, c-format
|
||
-msgid "pthread_cond_signal failed: %s"
|
||
-msgstr "pthread_cond_signal に失敗しました: %s"
|
||
-
|
||
-#: gold-threads.cc:252
|
||
-#, c-format
|
||
-msgid "pthread_cond_broadcast failed: %s"
|
||
-msgstr "pthread_cond_broadcast に失敗しました: %s"
|
||
-
|
||
-#: gold-threads.cc:388
|
||
-#, c-format
|
||
-msgid "pthread_once failed: %s"
|
||
-msgstr "pthread_once に失敗しました: %s"
|
||
-
|
||
-#: gold.cc:91
|
||
-#, c-format
|
||
-msgid "%s: internal error in %s, at %s:%d\n"
|
||
-msgstr "%s: %s の中の位置 %s で内部エラーが発生しました:%d\n"
|
||
-
|
||
-#: gold.cc:173
|
||
-msgid "no input files"
|
||
-msgstr "入力ファイルがありません"
|
||
-
|
||
-#: gold.cc:226
|
||
-msgid "cannot mix -r with --gc-sections or --icf"
|
||
-msgstr "-r と --gc-sections 、--icf は同時に使用できません"
|
||
-
|
||
-#: gold.cc:407
|
||
-#, c-format
|
||
-msgid "cannot mix -static with dynamic object %s"
|
||
-msgstr "-static と動的オブジェクト %s は同時に使用できません"
|
||
-
|
||
-#: gold.cc:411
|
||
-#, c-format
|
||
-msgid "cannot mix -r with dynamic object %s"
|
||
-msgstr "-r と動的オブジェクト %s は同時に使用できません"
|
||
-
|
||
-#: gold.cc:415
|
||
-#, c-format
|
||
-msgid "cannot use non-ELF output format with dynamic object %s"
|
||
-msgstr "動的オブジェクト %s を使用すると非 ELF 出力形式を使用できません"
|
||
-
|
||
-#: gold.cc:427
|
||
-#, c-format
|
||
-msgid "cannot mix split-stack '%s' and non-split-stack '%s' when using -r"
|
||
-msgstr "-r を使用しているときはスタック分割 '%s' と非スタック分割 '%s' を同時に使用できません"
|
||
-
|
||
-#. FIXME: This needs to specify the location somehow.
|
||
-#: i386.cc:232 i386.cc:1669 sparc.cc:234 sparc.cc:2395 x86_64.cc:237
|
||
-#: x86_64.cc:1732
|
||
-msgid "missing expected TLS relocation"
|
||
-msgstr "予期される TLS 再配置がありません"
|
||
-
|
||
-#: i386.cc:944 x86_64.cc:1068
|
||
-#, c-format
|
||
-msgid "section symbol %u has bad shndx %u"
|
||
-msgstr ""
|
||
-
|
||
-#: i386.cc:1036 i386.cc:1060 sparc.cc:1777 x86_64.cc:1176 x86_64.cc:1204
|
||
-#, c-format
|
||
-msgid "local symbol %u has bad shndx %u"
|
||
-msgstr ""
|
||
-
|
||
-#: i386.cc:1991
|
||
-msgid "both SUN and GNU model TLS relocations"
|
||
-msgstr "SUN と GNU モデルの TLS 再配置が両方あります"
|
||
-
|
||
-#: i386.cc:2730 x86_64.cc:2719
|
||
-#, c-format
|
||
-msgid "failed to match split-stack sequence at section %u offset %0zx"
|
||
-msgstr ""
|
||
-
|
||
-#: icf.cc:616
|
||
-#, c-format
|
||
-msgid "%s: ICF Converged after %u iteration(s)"
|
||
-msgstr ""
|
||
-
|
||
-#: icf.cc:619
|
||
-#, c-format
|
||
-msgid "%s: ICF stopped after %u iteration(s)"
|
||
-msgstr ""
|
||
-
|
||
-#: icf.cc:633
|
||
-#, c-format
|
||
-msgid "Could not find symbol %s to unfold\n"
|
||
-msgstr ""
|
||
-
|
||
-#: incremental.cc:242
|
||
-#, c-format
|
||
-msgid "the link might take longer: cannot perform incremental link: %s"
|
||
-msgstr "リンクに時間がかかるかもしれません: 増分リンクを実行できません: %s"
|
||
-
|
||
-#: incremental.cc:302
|
||
-msgid "no incremental data from previous build"
|
||
-msgstr "前回のビルドからの増分データがありません"
|
||
-
|
||
-#: incremental.cc:309 incremental.cc:332
|
||
-msgid "invalid incremental build data"
|
||
-msgstr "無効な増分ビルドデータです"
|
||
-
|
||
-#: incremental.cc:321
|
||
-msgid "different version of incremental build data"
|
||
-msgstr "異なるバージョンの増分ビルドデータです"
|
||
-
|
||
-#: incremental.cc:338
|
||
-msgid "command line changed"
|
||
-msgstr "コマンドラインに変更がありました"
|
||
-
|
||
-#: incremental.cc:362
|
||
-#, c-format
|
||
-msgid "unsupported ELF machine number %d"
|
||
-msgstr "サポートされていない ELF マシン番号 %d です"
|
||
-
|
||
-#: incremental.cc:387
|
||
-msgid "output is not an ELF file."
|
||
-msgstr "出力が ELF ファイルではありません。"
|
||
-
|
||
-#: incremental.cc:410
|
||
-msgid "unsupported file: 32-bit, big-endian"
|
||
-msgstr "サポートされていないファイルです: 32-ビット、ビッグエンディアン"
|
||
-
|
||
-#: incremental.cc:419
|
||
-msgid "unsupported file: 32-bit, little-endian"
|
||
-msgstr "サポートされていないファイルです: 32-ビット、リトルエンディアン"
|
||
-
|
||
-#: incremental.cc:431
|
||
-msgid "unsupported file: 64-bit, big-endian"
|
||
-msgstr "サポートされていないファイルです: 64-ビット、ビッグエンディアン"
|
||
-
|
||
-#: incremental.cc:440
|
||
-msgid "unsupported file: 64-bit, little-endian"
|
||
-msgstr "サポートされていないファイルです: 64-ビット、リトルエンディアン"
|
||
-
|
||
-#: layout.cc:1887
|
||
-#, c-format
|
||
-msgid "--build-id=uuid failed: could not open /dev/urandom: %s"
|
||
-msgstr "--build-id=uuid に失敗しました: /dev/urandom を開けませんでした: %s"
|
||
-
|
||
-#: layout.cc:1894
|
||
-#, c-format
|
||
-msgid "/dev/urandom: read failed: %s"
|
||
-msgstr "/dev/urandom: 読み込みに失敗しました: %s"
|
||
-
|
||
-#: layout.cc:1896
|
||
-#, c-format
|
||
-msgid "/dev/urandom: expected %zu bytes, got %zd bytes"
|
||
-msgstr ""
|
||
-
|
||
-#: layout.cc:1918
|
||
-#, c-format
|
||
-msgid "--build-id argument '%s' not a valid hex number"
|
||
-msgstr "--build-id の引数 '%s' が有効な十六進数ではありません"
|
||
-
|
||
-#: layout.cc:1924
|
||
-#, c-format
|
||
-msgid "unrecognized --build-id argument '%s'"
|
||
-msgstr "認識できない --build-id の引数 '%s' です"
|
||
-
|
||
-#: layout.cc:2337
|
||
-#, c-format
|
||
-msgid "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"
|
||
-msgstr "ロードセグメントが重なり合っています [0x%llx -> 0x%llx] および [0x%llx -> 0x%llx]"
|
||
-
|
||
-#: mapfile.cc:70
|
||
-#, c-format
|
||
-msgid "cannot open map file %s: %s"
|
||
-msgstr "マップファイル %s を開けません: %s"
|
||
-
|
||
-#: mapfile.cc:84
|
||
-#, c-format
|
||
-msgid "cannot close map file: %s"
|
||
-msgstr "マップファイルを閉じられません: %s"
|
||
-
|
||
-#: mapfile.cc:116
|
||
-#, c-format
|
||
-msgid ""
|
||
-"Archive member included because of file (symbol)\n"
|
||
-"\n"
|
||
-msgstr ""
|
||
-
|
||
-#: mapfile.cc:159
|
||
-#, c-format
|
||
-msgid ""
|
||
-"\n"
|
||
-"Allocating common symbols\n"
|
||
-msgstr ""
|
||
-
|
||
-#: mapfile.cc:161
|
||
-#, c-format
|
||
-msgid ""
|
||
-"Common symbol size file\n"
|
||
-"\n"
|
||
-msgstr ""
|
||
-
|
||
-#: mapfile.cc:195
|
||
-#, c-format
|
||
-msgid ""
|
||
-"\n"
|
||
-"Memory map\n"
|
||
-"\n"
|
||
-msgstr ""
|
||
-"\n"
|
||
-"メモリマップ\n"
|
||
-"\n"
|
||
-
|
||
-#: mapfile.cc:361
|
||
-#, c-format
|
||
-msgid ""
|
||
-"\n"
|
||
-"Discarded input sections\n"
|
||
-"\n"
|
||
-msgstr ""
|
||
-"\n"
|
||
-"破棄された入力セクション\n"
|
||
-"\n"
|
||
-
|
||
-#: merge.cc:455
|
||
-#, c-format
|
||
-msgid "%s: %s merged constants size: %lu; input: %zu; output: %zu\n"
|
||
-msgstr ""
|
||
-
|
||
-#: merge.cc:478
|
||
-msgid "mergeable string section length not multiple of character size"
|
||
-msgstr ""
|
||
-
|
||
-#: merge.cc:494
|
||
-#, c-format
|
||
-msgid "%s: last entry in mergeable string section '%s' not null terminated"
|
||
-msgstr ""
|
||
-
|
||
-#: merge.cc:613
|
||
-#, c-format
|
||
-msgid "%s: %s input: %zu\n"
|
||
-msgstr ""
|
||
-
|
||
-#: merge.h:300
|
||
-msgid "** merge constants"
|
||
-msgstr ""
|
||
-
|
||
-#: merge.h:422
|
||
-msgid "** merge strings"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:75
|
||
-msgid "missing SHT_SYMTAB_SHNDX section"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:119
|
||
-#, c-format
|
||
-msgid "symbol %u out of range for SHT_SYMTAB_SHNDX section"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:126
|
||
-#, c-format
|
||
-msgid "extended index for symbol %u out of range: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:148 object.cc:2331 output.cc:4052
|
||
-#, c-format
|
||
-msgid "%s: %s"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:190
|
||
-#, c-format
|
||
-msgid "section name section has wrong type: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:546
|
||
-#, c-format
|
||
-msgid "invalid symbol table name index: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:552
|
||
-#, c-format
|
||
-msgid "symbol table name section has wrong type: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:641
|
||
-#, c-format
|
||
-msgid "section group %u info %u out of range"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:660
|
||
-#, c-format
|
||
-msgid "symbol %u name offset %u out of range"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:678
|
||
-#, c-format
|
||
-msgid "symbol %u invalid section index %u"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:723
|
||
-#, c-format
|
||
-msgid "section %u in section group %u out of range"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:731
|
||
-#, c-format
|
||
-msgid "invalid section group %u refers to earlier section %u"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:1037 reloc.cc:271 reloc.cc:838
|
||
-#, c-format
|
||
-msgid "relocation section %u has bad info %u"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:1231
|
||
-#, c-format
|
||
-msgid "%s: removing unused section from '%s' in file '%s'"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:1257
|
||
-#, c-format
|
||
-msgid "%s: ICF folding section '%s' in file '%s'into '%s' in file '%s'"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:1454
|
||
-msgid "size of symbols is not multiple of symbol size"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:1563
|
||
-#, c-format
|
||
-msgid "local symbol %u section name out of range: %u >= %u"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:1652
|
||
-#, c-format
|
||
-msgid "unknown section index %u for local symbol %u"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:1661
|
||
-#, c-format
|
||
-msgid "local symbol %u section index %u out of range"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:2169
|
||
-#, c-format
|
||
-msgid "%s is not supported but is required for %s in %s"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:2273
|
||
-#, c-format
|
||
-msgid "%s: unsupported ELF machine number %d"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:2283
|
||
-#, c-format
|
||
-msgid "%s: incompatible target"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:2347 plugin.cc:1019
|
||
-#, c-format
|
||
-msgid "%s: not configured to support 32-bit big-endian object"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:2363 plugin.cc:1028
|
||
-#, c-format
|
||
-msgid "%s: not configured to support 32-bit little-endian object"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:2382 plugin.cc:1040
|
||
-#, c-format
|
||
-msgid "%s: not configured to support 64-bit big-endian object"
|
||
-msgstr ""
|
||
-
|
||
-#: object.cc:2398 plugin.cc:1049
|
||
-#, c-format
|
||
-msgid "%s: not configured to support 64-bit little-endian object"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:156
|
||
-#, c-format
|
||
-msgid ""
|
||
-"Usage: %s [options] file...\n"
|
||
-"Options:\n"
|
||
-msgstr ""
|
||
-"使用法: %s [options] file...\n"
|
||
-"オプション:\n"
|
||
-
|
||
-#. config.guess and libtool.m4 look in ld --help output for the
|
||
-#. string "supported targets".
|
||
-#: options.cc:164
|
||
-#, c-format
|
||
-msgid "%s: supported targets:"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:176
|
||
-#, c-format
|
||
-msgid "Report bugs to %s\n"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:193 options.cc:203 options.cc:213
|
||
-#, c-format
|
||
-msgid "%s: invalid option value (expected an integer): %s"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:223
|
||
-#, c-format
|
||
-msgid "%s: invalid option value (expected a floating point number): %s"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:232
|
||
-#, c-format
|
||
-msgid "%s: must take a non-empty argument"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:273
|
||
-#, c-format
|
||
-msgid "%s: must take one of the following arguments: %s"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:300
|
||
-#, c-format
|
||
-msgid " Supported targets:\n"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:409
|
||
-#, c-format
|
||
-msgid "unable to parse script file %s"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:417
|
||
-#, c-format
|
||
-msgid "unable to parse version script file %s"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:425
|
||
-#, c-format
|
||
-msgid "unable to parse dynamic-list script file %s"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:522
|
||
-#, c-format
|
||
-msgid "format '%s' not supported; treating as elf (supported formats: elf, binary)"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:538
|
||
-#, c-format
|
||
-msgid "%s: use the --help option for usage information\n"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:547
|
||
-#, c-format
|
||
-msgid "%s: %s: %s\n"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:651
|
||
-msgid "unexpected argument"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:664 options.cc:725
|
||
-msgid "missing argument"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:736
|
||
-msgid "unknown -z option"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:935
|
||
-#, c-format
|
||
-msgid "ignoring --threads: %s was compiled without thread support"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:942
|
||
-#, c-format
|
||
-msgid "ignoring --thread-count: %s was compiled without thread support"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:981
|
||
-#, c-format
|
||
-msgid "unable to open -retain-symbols-file file %s: %s"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:1003
|
||
-msgid "-shared and -static are incompatible"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:1005
|
||
-msgid "-shared and -pie are incompatible"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:1008
|
||
-msgid "-shared and -r are incompatible"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:1010
|
||
-msgid "-pie and -r are incompatible"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:1014
|
||
-msgid "-retain-symbols-file does not yet work with -r"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:1020
|
||
-msgid "binary output format not compatible with -shared or -pie or -r"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:1026
|
||
-#, c-format
|
||
-msgid "--hash-bucket-empty-fraction value %g out of range [0.0, 1.0)"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:1031
|
||
-msgid "Options --incremental-changed, --incremental-unchanged, --incremental-unknown require the use of --incremental"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:1097
|
||
-msgid "May not nest groups"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:1109
|
||
-msgid "Group end without group start"
|
||
-msgstr ""
|
||
-
|
||
-#. I guess it's neither a long option nor a short option.
|
||
-#: options.cc:1174
|
||
-msgid "unknown option"
|
||
-msgstr ""
|
||
-
|
||
-#: options.cc:1201
|
||
-#, c-format
|
||
-msgid "%s: missing group end\n"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:571
|
||
-msgid "Report usage information"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:573
|
||
-msgid "Report version information"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:575
|
||
-msgid "Report version and target information"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:584 options.h:635
|
||
-msgid "Not supported"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:585 options.h:636
|
||
-msgid "Do not copy DT_NEEDED tags from shared libraries"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:588
|
||
-msgid "Allow unresolved references in shared libraries"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:589
|
||
-msgid "Do not allow unresolved references in shared libraries"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:592
|
||
-msgid "Only set DT_NEEDED for shared libraries if used"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:593
|
||
-msgid "Always DT_NEEDED for shared libraries"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:600
|
||
-msgid "Set input format"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:603
|
||
-msgid "-l searches for shared libraries"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:605
|
||
-msgid "-l does not search for shared libraries"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:609
|
||
-msgid "Bind defined symbols locally"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:612
|
||
-msgid "Bind defined function symbols locally"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:615
|
||
-msgid "Generate build ID note"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:616 options.h:655
|
||
-msgid "[=STYLE]"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:619
|
||
-msgid "Check segment addresses for overlaps (default)"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:620
|
||
-msgid "Do not check segment addresses for overlaps"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:624 options.h:629
|
||
-msgid "Compress .debug_* sections in the output file"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:630
|
||
-msgid "[none]"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:639
|
||
-msgid "Define common symbols"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:640
|
||
-msgid "Do not define common symbols"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:642 options.h:644
|
||
-msgid "Alias for -d"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:647
|
||
-msgid "Turn on debugging"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:648
|
||
-msgid "[all,files,script,task][,...]"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:651
|
||
-msgid "Define a symbol"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:651
|
||
-msgid "SYMBOL=EXPRESSION"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:654
|
||
-msgid "Demangle C++ symbols in log messages"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:658
|
||
-msgid "Do not demangle C++ symbols in log messages"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:662
|
||
-msgid "Try to detect violations of the One Definition Rule"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:666
|
||
-msgid "Delete all temporary local symbols"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:669
|
||
-msgid "Add data symbols to dynamic symbols"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:672
|
||
-msgid "Add C++ operator new/delete to dynamic symbols"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:675
|
||
-msgid "Add C++ typeinfo to dynamic symbols"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:678
|
||
-msgid "Read a list of dynamic symbols"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:678 options.h:732 options.h:766 options.h:893 options.h:921
|
||
-msgid "FILE"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:681
|
||
-msgid "Set program start address"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:681 options.h:908 options.h:910 options.h:912
|
||
-msgid "ADDRESS"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:684
|
||
-msgid "Exclude libraries from automatic export"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:688
|
||
-msgid "Export all dynamic symbols"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:689
|
||
-msgid "Do not export all dynamic symbols (default)"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:692
|
||
-msgid "Create exception frame header"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:695
|
||
-msgid "Treat warnings as errors"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:696
|
||
-msgid "Do not treat warnings as errors"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:699
|
||
-msgid "Call SYMBOL at unload-time"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:699 options.h:729 options.h:873 options.h:915 options.h:936
|
||
-#: options.h:939
|
||
-msgid "SYMBOL"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:702
|
||
-msgid "Set shared library name"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:702 options.h:792
|
||
-msgid "FILENAME"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:705
|
||
-msgid "Min fraction of empty buckets in dynamic hash"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:706
|
||
-msgid "FRACTION"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:709
|
||
-msgid "Dynamic hash style"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:709
|
||
-msgid "[sysv,gnu,both]"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:713
|
||
-msgid "Set dynamic linker path"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:713
|
||
-msgid "PROGRAM"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:716
|
||
-msgid "Work in progress; do not use"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:717
|
||
-msgid "Do a full build"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:720
|
||
-msgid "Assume files changed"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:723
|
||
-msgid "Assume files didn't change"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:726
|
||
-msgid "Use timestamps to check files (default)"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:729
|
||
-msgid "Call SYMBOL at load-time"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:732
|
||
-msgid "Read only symbol values from FILE"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:735
|
||
-msgid "Search for library LIBNAME"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:735
|
||
-msgid "LIBNAME"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:738
|
||
-msgid "Add directory to search path"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:738 options.h:813 options.h:816 options.h:820 options.h:887
|
||
-msgid "DIR"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:741
|
||
-msgid "Ignored for compatibility"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:741
|
||
-msgid "EMULATION"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:744
|
||
-msgid "Write map file on standard output"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:745
|
||
-msgid "Write map file"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:746
|
||
-msgid "MAPFILENAME"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:749
|
||
-msgid "Do not page align data"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:751
|
||
-msgid "Do not page align data, do not make text readonly"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:752
|
||
-msgid "Page align data, make text readonly"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:755
|
||
-msgid "Enable use of DT_RUNPATH and DT_FLAGS"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:756
|
||
-msgid "Disable use of DT_RUNPATH and DT_FLAGS"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:759
|
||
-msgid "Create an output file even if errors occur"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:762 options.h:958
|
||
-msgid "Report undefined symbols (even with --shared)"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:766
|
||
-msgid "Set output file name"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:769
|
||
-msgid "Optimize output file size"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:769
|
||
-msgid "LEVEL"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:772
|
||
-msgid "Set output format"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:772
|
||
-msgid "[binary]"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:775 options.h:777
|
||
-msgid "Create a position independent executable"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:782
|
||
-msgid "Load a plugin library"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:782
|
||
-msgid "PLUGIN"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:784
|
||
-msgid "Pass an option to the plugin"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:784
|
||
-msgid "OPTION"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:788
|
||
-msgid "Preread archive symbols when multi-threaded"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:791
|
||
-msgid "Print symbols defined and used for each input"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:795
|
||
-msgid "Ignored for SVR4 compatibility"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:798
|
||
-msgid "Generate relocations in output"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:801
|
||
-msgid "Generate relocatable output"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:804
|
||
-msgid "Relax branches on certain targets"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:807
|
||
-msgid "keep only symbols listed in this file"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:807
|
||
-msgid "[file]"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:813 options.h:816
|
||
-msgid "Add DIR to runtime search path"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:819
|
||
-msgid "Add DIR to link time shared library search path"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:823
|
||
-msgid "Strip all symbols"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:825
|
||
-msgid "Strip debugging information"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:827
|
||
-msgid "Emit only debug line number information"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:829
|
||
-msgid "Strip debug symbols that are unused by gdb (at least versions <= 6.7)"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:832
|
||
-msgid "Strip LTO intermediate code sections"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:835
|
||
-msgid "(ARM only) The maximum distance from instructions in a group of sections to their stubs. Negative values mean stubs are always after the group. 1 means using default size.\n"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:838 options.h:852 options.h:956 options.h:975
|
||
-msgid "SIZE"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:841
|
||
-msgid "Use less memory and more disk I/O (included only for compatibility with GNU ld)"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:845 options.h:848
|
||
-msgid "Generate shared library"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:851
|
||
-msgid "Stack size when -fsplit-stack function calls non-split"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:857
|
||
-msgid "Do not link against shared libraries"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:860
|
||
-msgid "Identical Code Folding. '--icf=safe' folds only ctors and dtors."
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:866
|
||
-msgid "Number of iterations of ICF (default 2)"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:866 options.h:899 options.h:901 options.h:903 options.h:905
|
||
-msgid "COUNT"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:869
|
||
-msgid "List folded identical sections on stderr"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:870
|
||
-msgid "Do not list folded identical sections"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:873
|
||
-msgid "Do not fold this symbol during ICF"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:876
|
||
-msgid "Remove unused sections"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:877
|
||
-msgid "Don't remove unused sections (default)"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:880
|
||
-msgid "List removed unused sections on stderr"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:881
|
||
-msgid "Do not list removed unused sections"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:884
|
||
-msgid "Print resource usage statistics"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:887
|
||
-msgid "Set target system root directory"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:890
|
||
-msgid "Print the name of each input file"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:893
|
||
-msgid "Read linker script"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:896
|
||
-msgid "Run the linker multi-threaded"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:897
|
||
-msgid "Do not run the linker multi-threaded"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:899
|
||
-msgid "Number of threads to use"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:901
|
||
-msgid "Number of threads to use in initial pass"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:903
|
||
-msgid "Number of threads to use in middle pass"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:905
|
||
-msgid "Number of threads to use in final pass"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:908
|
||
-msgid "Set the address of the bss segment"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:910
|
||
-msgid "Set the address of the data segment"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:912
|
||
-msgid "Set the address of the text segment"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:915
|
||
-msgid "Create undefined reference to SYMBOL"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:918
|
||
-msgid "Synonym for --debug=files"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:921
|
||
-msgid "Read version script"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:924
|
||
-msgid "Warn about duplicate common symbols"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:925
|
||
-msgid "Do not warn about duplicate common symbols (default)"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:928
|
||
-msgid "Warn when skipping an incompatible library"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:929
|
||
-msgid "Don't warn when skipping an incompatible library"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:932
|
||
-msgid "Include all archive contents"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:933
|
||
-msgid "Include only needed archive contents"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:936
|
||
-msgid "Use wrapper functions for SYMBOL"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:939
|
||
-msgid "Trace references to symbol"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:942
|
||
-msgid "Default search path for Solaris compatibility"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:943
|
||
-msgid "PATH"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:946
|
||
-msgid "Start a library search group"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:948
|
||
-msgid "End a library search group"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:953
|
||
-msgid "Sort dynamic relocs"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:954
|
||
-msgid "Do not sort dynamic relocs"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:956
|
||
-msgid "Set common page size to SIZE"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:961
|
||
-msgid "Mark output as requiring executable stack"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:963
|
||
-msgid "Mark DSO to be initialized first at runtime"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:966
|
||
-msgid "Mark object to interpose all DSOs but executable"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:969
|
||
-msgid "Mark object for lazy runtime binding (default)"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:972
|
||
-msgid "Mark object requiring immediate process"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:975
|
||
-msgid "Set maximum page size to SIZE"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:978
|
||
-msgid "Do not create copy relocs"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:980
|
||
-msgid "Mark object not to use default search paths"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:983
|
||
-msgid "Mark DSO non-deletable at runtime"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:986
|
||
-msgid "Mark DSO not available to dlopen"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:989
|
||
-msgid "Mark DSO not available to dldump"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:992
|
||
-msgid "Mark output as not requiring executable stack"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:994
|
||
-msgid "Mark object for immediate function binding"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:997
|
||
-msgid "Mark DSO to indicate that needs immediate $ORIGIN processing at runtime"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:1000
|
||
-msgid "Where possible mark variables read-only after relocation"
|
||
-msgstr ""
|
||
-
|
||
-#: options.h:1001
|
||
-msgid "Don't mark variables read-only after relocation"
|
||
-msgstr ""
|
||
-
|
||
-#: output.cc:1132
|
||
-msgid "section group retained but group element discarded"
|
||
-msgstr ""
|
||
-
|
||
-#: output.cc:1860
|
||
-#, c-format
|
||
-msgid "invalid alignment %lu for section \"%s\""
|
||
-msgstr ""
|
||
-
|
||
-#: output.cc:3573
|
||
-#, c-format
|
||
-msgid "dot moves backward in linker script from 0x%llx to 0x%llx"
|
||
-msgstr ""
|
||
-
|
||
-#: output.cc:3576
|
||
-#, c-format
|
||
-msgid "address of section '%s' moves backward from 0x%llx to 0x%llx"
|
||
-msgstr ""
|
||
-
|
||
-#: output.cc:3755
|
||
-#, c-format
|
||
-msgid "nobits section %s may not precede progbits section %s in same segment"
|
||
-msgstr ""
|
||
-
|
||
-#: output.cc:3907 output.cc:3975
|
||
-#, c-format
|
||
-msgid "%s: open: %s"
|
||
-msgstr ""
|
||
-
|
||
-#: output.cc:3996
|
||
-#, c-format
|
||
-msgid "%s: mremap: %s"
|
||
-msgstr ""
|
||
-
|
||
-#: output.cc:4005
|
||
-#, c-format
|
||
-msgid "%s: mmap: %s"
|
||
-msgstr ""
|
||
-
|
||
-#: output.cc:4085
|
||
-#, c-format
|
||
-msgid "%s: mmap: failed to allocate %lu bytes for output file: %s"
|
||
-msgstr ""
|
||
-
|
||
-#: output.cc:4096
|
||
-#, c-format
|
||
-msgid "%s: munmap: %s"
|
||
-msgstr ""
|
||
-
|
||
-#: output.cc:4115
|
||
-#, c-format
|
||
-msgid "%s: write: unexpected 0 return-value"
|
||
-msgstr ""
|
||
-
|
||
-#: output.cc:4117
|
||
-#, c-format
|
||
-msgid "%s: write: %s"
|
||
-msgstr ""
|
||
-
|
||
-#: output.cc:4132
|
||
-#, c-format
|
||
-msgid "%s: close: %s"
|
||
-msgstr ""
|
||
-
|
||
-#: output.h:520
|
||
-msgid "** section headers"
|
||
-msgstr ""
|
||
-
|
||
-#: output.h:565
|
||
-msgid "** segment headers"
|
||
-msgstr ""
|
||
-
|
||
-#: output.h:613
|
||
-msgid "** file header"
|
||
-msgstr ""
|
||
-
|
||
-#: output.h:833
|
||
-msgid "** fill"
|
||
-msgstr ""
|
||
-
|
||
-#: output.h:987
|
||
-msgid "** string table"
|
||
-msgstr ""
|
||
-
|
||
-#: output.h:1300
|
||
-msgid "** dynamic relocs"
|
||
-msgstr ""
|
||
-
|
||
-#: output.h:1301 output.h:1637
|
||
-msgid "** relocs"
|
||
-msgstr ""
|
||
-
|
||
-#: output.h:1662
|
||
-msgid "** group"
|
||
-msgstr ""
|
||
-
|
||
-#: output.h:1774
|
||
-msgid "** GOT"
|
||
-msgstr ""
|
||
-
|
||
-#: output.h:1916
|
||
-msgid "** dynamic"
|
||
-msgstr ""
|
||
-
|
||
-#: output.h:2039
|
||
-msgid "** symtab xindex"
|
||
-msgstr ""
|
||
-
|
||
-#: parameters.cc:172
|
||
-#, c-format
|
||
-msgid "unrecognized output format %s"
|
||
-msgstr ""
|
||
-
|
||
-#: plugin.cc:106
|
||
-#, c-format
|
||
-msgid "%s: could not load plugin library"
|
||
-msgstr ""
|
||
-
|
||
-#: plugin.cc:116
|
||
-#, c-format
|
||
-msgid "%s: could not find onload entry point"
|
||
-msgstr ""
|
||
-
|
||
-#: plugin.cc:426
|
||
-msgid "Input files added by plug-ins in --incremental mode not supported yet.\n"
|
||
-msgstr ""
|
||
-
|
||
-#: powerpc.cc:1502 sparc.cc:2307 x86_64.cc:1632
|
||
-#, c-format
|
||
-msgid "%s: unsupported REL reloc section"
|
||
-msgstr ""
|
||
-
|
||
-#: readsyms.cc:191
|
||
-#, c-format
|
||
-msgid "%s: file is empty"
|
||
-msgstr ""
|
||
-
|
||
-#. Here we have to handle any other input file types we need.
|
||
-#: readsyms.cc:575
|
||
-#, c-format
|
||
-msgid "%s: not an object or archive"
|
||
-msgstr ""
|
||
-
|
||
-#: reduced_debug_output.cc:236
|
||
-msgid "Debug abbreviations extend beyond .debug_abbrev section; failed to reduce debug abbreviations"
|
||
-msgstr ""
|
||
-
|
||
-#: reduced_debug_output.cc:322
|
||
-msgid "Extremely large compile unit in debug info; failed to reduce debug info"
|
||
-msgstr ""
|
||
-
|
||
-#: reduced_debug_output.cc:330
|
||
-msgid "Debug info extends beyond .debug_info section;failed to reduce debug info"
|
||
-msgstr ""
|
||
-
|
||
-#: reduced_debug_output.cc:350 reduced_debug_output.cc:392
|
||
-msgid "Invalid DIE in debug info; failed to reduce debug info"
|
||
-msgstr ""
|
||
-
|
||
-#: reduced_debug_output.cc:373
|
||
-msgid "Debug info extends beyond .debug_info section; failed to reduce debug info"
|
||
-msgstr ""
|
||
-
|
||
-#: reloc.cc:297 reloc.cc:858
|
||
-#, c-format
|
||
-msgid "relocation section %u uses unexpected symbol table %u"
|
||
-msgstr ""
|
||
-
|
||
-#: reloc.cc:312 reloc.cc:875
|
||
-#, c-format
|
||
-msgid "unexpected entsize for reloc section %u: %lu != %u"
|
||
-msgstr ""
|
||
-
|
||
-#: reloc.cc:321 reloc.cc:884
|
||
-#, c-format
|
||
-msgid "reloc section %u size %lu uneven"
|
||
-msgstr ""
|
||
-
|
||
-#: reloc.cc:1203
|
||
-#, c-format
|
||
-msgid "could not convert call to '%s' to '%s'"
|
||
-msgstr ""
|
||
-
|
||
-#: reloc.cc:1343
|
||
-#, c-format
|
||
-msgid "reloc section size %zu is not a multiple of reloc size %d\n"
|
||
-msgstr ""
|
||
-
|
||
-#. We should only see externally visible symbols in the symbol
|
||
-#. table.
|
||
-#: resolve.cc:191
|
||
-msgid "invalid STB_LOCAL symbol in external symbols"
|
||
-msgstr ""
|
||
-
|
||
-#. Any target which wants to handle STB_LOOS, etc., needs to
|
||
-#. define a resolve method.
|
||
-#: resolve.cc:197
|
||
-msgid "unsupported symbol binding"
|
||
-msgstr ""
|
||
-
|
||
-#. A dynamic object cannot reference a hidden or internal symbol
|
||
-#. defined in another object.
|
||
-#: resolve.cc:266
|
||
-#, c-format
|
||
-msgid "%s symbol '%s' in %s is referenced by DSO %s"
|
||
-msgstr ""
|
||
-
|
||
-#: resolve.cc:326
|
||
-#, c-format
|
||
-msgid "common of '%s' overriding smaller common"
|
||
-msgstr ""
|
||
-
|
||
-#: resolve.cc:331
|
||
-#, c-format
|
||
-msgid "common of '%s' overidden by larger common"
|
||
-msgstr ""
|
||
-
|
||
-#: resolve.cc:336
|
||
-#, c-format
|
||
-msgid "multiple common of '%s'"
|
||
-msgstr ""
|
||
-
|
||
-#: resolve.cc:442
|
||
-#, c-format
|
||
-msgid "multiple definition of '%s'"
|
||
-msgstr ""
|
||
-
|
||
-#: resolve.cc:481
|
||
-#, c-format
|
||
-msgid "definition of '%s' overriding common"
|
||
-msgstr ""
|
||
-
|
||
-#: resolve.cc:516
|
||
-#, c-format
|
||
-msgid "definition of '%s' overriding dynamic common definition"
|
||
-msgstr ""
|
||
-
|
||
-#: resolve.cc:636
|
||
-#, c-format
|
||
-msgid "common '%s' overridden by previous definition"
|
||
-msgstr ""
|
||
-
|
||
-#: resolve.cc:766 resolve.cc:778
|
||
-msgid "command line"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:690
|
||
-msgid "dot may not move backward"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:757
|
||
-msgid "** expression"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:941
|
||
-msgid "fill value is not absolute"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:1913
|
||
-#, c-format
|
||
-msgid "alignment of section %s is not absolute"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:1957
|
||
-#, c-format
|
||
-msgid "subalign of section %s is not absolute"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:1972
|
||
-#, c-format
|
||
-msgid "fill of section %s is not absolute"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:2048
|
||
-msgid "SPECIAL constraints are not implemented"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:2090
|
||
-msgid "mismatched definition for constrained sections"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:2634
|
||
-msgid "DATA_SEGMENT_ALIGN may only appear once in a linker script"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:2649
|
||
-msgid "DATA_SEGMENT_RELRO_END may only appear once in a linker script"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:2654
|
||
-msgid "DATA_SEGMENT_RELRO_END must follow DATA_SEGMENT_ALIGN"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:2826
|
||
-msgid "no matching section constraint"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:3151
|
||
-msgid "TLS sections are not adjacent"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:3280
|
||
-msgid "allocated section not in any segment"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:3309
|
||
-#, c-format
|
||
-msgid "no segment %s"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:3323
|
||
-msgid "section in two PT_LOAD segments"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:3330
|
||
-msgid "allocated section not in any PT_LOAD segment"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:3358
|
||
-msgid "may only specify load address for PT_LOAD segment"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:3382
|
||
-#, c-format
|
||
-msgid "PHDRS load address overrides section %s load address"
|
||
-msgstr ""
|
||
-
|
||
-#. We could support this if we wanted to.
|
||
-#: script-sections.cc:3393
|
||
-msgid "using only one of FILEHDR and PHDRS is not currently supported"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:3408
|
||
-msgid "sections loaded on first page without room for file and program headers are not supported"
|
||
-msgstr ""
|
||
-
|
||
-#: script-sections.cc:3414
|
||
-msgid "using FILEHDR and PHDRS on more than one PT_LOAD segment is not currently supported"
|
||
-msgstr ""
|
||
-
|
||
-#: script.cc:1072
|
||
-msgid "invalid use of PROVIDE for dot symbol"
|
||
-msgstr ""
|
||
-
|
||
-#: script.cc:2132
|
||
-#, c-format
|
||
-msgid "%s:%d:%d: %s"
|
||
-msgstr ""
|
||
-
|
||
-#. There are some options that we could handle here--e.g.,
|
||
-#. -lLIBRARY. Should we bother?
|
||
-#: script.cc:2297
|
||
-#, c-format
|
||
-msgid "%s:%d:%d: ignoring command OPTION; OPTION is only valid for scripts specified via -T/--script"
|
||
-msgstr ""
|
||
-
|
||
-#: script.cc:2362
|
||
-#, c-format
|
||
-msgid "%s:%d:%d: ignoring SEARCH_DIR; SEARCH_DIR is only valid for scripts specified via -T/--script"
|
||
-msgstr ""
|
||
-
|
||
-#: script.cc:2606 script.cc:2620
|
||
-#, c-format
|
||
-msgid "%s:%d:%d: DATA_SEGMENT_ALIGN not in SECTIONS clause"
|
||
-msgstr ""
|
||
-
|
||
-#: script.cc:2739
|
||
-msgid "unknown PHDR type (try integer)"
|
||
-msgstr ""
|
||
-
|
||
-#: stringpool.cc:528
|
||
-#, c-format
|
||
-msgid "%s: %s entries: %zu; buckets: %zu\n"
|
||
-msgstr ""
|
||
-
|
||
-#: stringpool.cc:532
|
||
-#, c-format
|
||
-msgid "%s: %s entries: %zu\n"
|
||
-msgstr ""
|
||
-
|
||
-#: stringpool.cc:535
|
||
-#, c-format
|
||
-msgid "%s: %s Stringdata structures: %zu\n"
|
||
-msgstr ""
|
||
-
|
||
-#: symtab.cc:857
|
||
-#, c-format
|
||
-msgid "%s: reference to %s"
|
||
-msgstr ""
|
||
-
|
||
-#: symtab.cc:859
|
||
-#, c-format
|
||
-msgid "%s: definition of %s"
|
||
-msgstr ""
|
||
-
|
||
-#: symtab.cc:1052
|
||
-#, c-format
|
||
-msgid "bad global symbol name offset %u at %zu"
|
||
-msgstr ""
|
||
-
|
||
-#: symtab.cc:1278
|
||
-msgid "--just-symbols does not make sense with a shared object"
|
||
-msgstr ""
|
||
-
|
||
-#: symtab.cc:1284
|
||
-msgid "too few symbol versions"
|
||
-msgstr ""
|
||
-
|
||
-#: symtab.cc:1333
|
||
-#, c-format
|
||
-msgid "bad symbol name offset %u at %zu"
|
||
-msgstr ""
|
||
-
|
||
-#: symtab.cc:1396
|
||
-#, c-format
|
||
-msgid "versym for symbol %zu out of range: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: symtab.cc:1404
|
||
-#, c-format
|
||
-msgid "versym for symbol %zu has no name: %u"
|
||
-msgstr ""
|
||
-
|
||
-#: symtab.cc:2549 symtab.cc:2681
|
||
-#, c-format
|
||
-msgid "%s: unsupported symbol section 0x%x"
|
||
-msgstr ""
|
||
-
|
||
-#: symtab.cc:2933
|
||
-#, c-format
|
||
-msgid "%s: symbol table entries: %zu; buckets: %zu\n"
|
||
-msgstr ""
|
||
-
|
||
-#: symtab.cc:2936
|
||
-#, c-format
|
||
-msgid "%s: symbol table entries: %zu\n"
|
||
-msgstr ""
|
||
-
|
||
-#: symtab.cc:3007
|
||
-#, c-format
|
||
-msgid "while linking %s: symbol '%s' defined in multiple places (possible ODR violation):"
|
||
-msgstr ""
|
||
-
|
||
-#: target-reloc.h:259
|
||
-msgid "relocation refers to discarded comdat section"
|
||
-msgstr "再配置が破棄された domdat セクションを参照しています"
|
||
-
|
||
-#: target-reloc.h:298
|
||
-#, c-format
|
||
-msgid "reloc has bad offset %zu"
|
||
-msgstr "再配置に誤ったオフセット %zu があります"
|
||
-
|
||
-#: target.cc:90
|
||
-#, c-format
|
||
-msgid "%s: unsupported ELF file type %d"
|
||
-msgstr "%s: サポートされていない ELF ファイル型 %d です"
|
||
-
|
||
-#: target.cc:157
|
||
-#, c-format
|
||
-msgid "linker does not include stack split support required by %s"
|
||
-msgstr "リンカは %s で必要となるスタック分割をサポートしていません"
|
||
-
|
||
-#: tls.h:59
|
||
-msgid "TLS relocation out of range"
|
||
-msgstr "TLS 再配置が範囲外です"
|
||
-
|
||
-#: tls.h:73
|
||
-msgid "TLS relocation against invalid instruction"
|
||
-msgstr "無効な命令に対する TLS 再配置です"
|
||
-
|
||
-#. This output is intended to follow the GNU standards.
|
||
-#: version.cc:65
|
||
-#, c-format
|
||
-msgid "Copyright 2008 Free Software Foundation, Inc.\n"
|
||
-msgstr "Copyright 2008 Free Software Foundation, Inc.\n"
|
||
-
|
||
-#: version.cc:66
|
||
-#, c-format
|
||
-msgid ""
|
||
-"This program is free software; you may redistribute it under the terms of\n"
|
||
-"the GNU General Public License version 3 or (at your option) a later version.\n"
|
||
-"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 version 3 or (at your option) a later version.\n"
|
||
-"This program has absolutely no warranty.\n"
|
||
-
|
||
-#: workqueue-threads.cc:106
|
||
-#, c-format
|
||
-msgid "%s failed: %s"
|
||
-msgstr "%s に失敗しました: %s"
|
||
-
|
||
-#: x86_64.cc:2184
|
||
-#, c-format
|
||
-msgid "unsupported reloc type %u"
|
||
-msgstr "サポートされていない再配置型 %u です"
|
||
-
|
||
-#: x86_64.cc:2524
|
||
-#, c-format
|
||
-msgid "unsupported reloc %u against local symbol"
|
||
-msgstr "サポートされていない局所シンボルに対する再配置 %u です"
|
||
diff -rNU3 a/gprof/corefile.c b/gprof/corefile.c
|
||
--- a/gprof/corefile.c 2021-03-30 23:12:40.197893267 -0300
|
||
+++ b/gprof/corefile.c 2021-03-30 17:48:00.645553000 -0300
|
||
@@ -30,6 +30,8 @@
|
||
#include "safe-ctype.h"
|
||
#include <limits.h> /* For UINT_MAX. */
|
||
|
||
+#include <stdlib.h>
|
||
+
|
||
bfd *core_bfd;
|
||
static int core_num_syms;
|
||
static asymbol **core_syms;
|
||
diff -rNU3 a/gprof/gprof.c b/gprof/gprof.c
|
||
--- a/gprof/gprof.c 2021-03-30 23:12:40.197893267 -0300
|
||
+++ b/gprof/gprof.c 2021-03-30 17:48:00.645553000 -0300
|
||
@@ -47,6 +47,8 @@
|
||
|
||
static void usage (FILE *, int) ATTRIBUTE_NORETURN;
|
||
|
||
+#include <stdlib.h>
|
||
+
|
||
const char * whoami;
|
||
const char * function_mapping_file;
|
||
static const char * external_symbol_table;
|
||
diff -rNU3 a/include/elf/common.h b/include/elf/common.h
|
||
--- a/include/elf/common.h 2021-03-30 23:12:40.197893267 -0300
|
||
+++ b/include/elf/common.h 2021-03-30 17:48:00.692219000 -0300
|
||
@@ -686,6 +686,7 @@
|
||
must start with "NetBSD-CORE". */
|
||
|
||
#define NT_NETBSDCORE_PROCINFO 1 /* Has a struct procinfo */
|
||
+#define NT_NETBSDCORE_AUXV 2 /* Has ELF Auxiliary vector */
|
||
#define NT_NETBSDCORE_FIRSTMACH 32 /* start of machdep note types */
|
||
|
||
|
||
@@ -862,6 +863,15 @@
|
||
#define NT_NETBSD_IDENT 1
|
||
#define NT_NETBSD_MARCH 5
|
||
|
||
+/* Values for NetBSD .note.netbsd.ident notes. Note name is "PaX". */
|
||
+#define NT_NETBSD_PAX 3
|
||
+#define NT_NETBSD_PAX_MPROTECT 0x01 /* Force enable Mprotect */
|
||
+#define NT_NETBSD_PAX_NOMPROTECT 0x02 /* Force disable Mprotect */
|
||
+#define NT_NETBSD_PAX_GUARD 0x04 /* Force enable Segvguard */
|
||
+#define NT_NETBSD_PAX_NOGUARD 0x08 /* Force disable Segvguard */
|
||
+#define NT_NETBSD_PAX_ASLR 0x10 /* Force enable ASLR */
|
||
+#define NT_NETBSD_PAX_NOASLR 0x20 /* Force disable ASLR */
|
||
+
|
||
/* Values for OpenBSD .note.openbsd.ident notes. Note name is "OpenBSD". */
|
||
|
||
#define NT_OPENBSD_IDENT 1
|
||
diff -rNU3 a/include/opcode/mips.h b/include/opcode/mips.h
|
||
--- a/include/opcode/mips.h 2021-03-30 23:12:40.201226600 -0300
|
||
+++ b/include/opcode/mips.h 2021-03-30 17:48:00.728886000 -0300
|
||
@@ -1595,7 +1595,11 @@
|
||
M_DSUB_I,
|
||
M_DSUBU_I,
|
||
M_DSUBU_I_2,
|
||
+ M_JR_S,
|
||
+ M_J_S,
|
||
M_J_A,
|
||
+ M_JALR_S,
|
||
+ M_JALR_DS,
|
||
M_JAL_1,
|
||
M_JAL_2,
|
||
M_JAL_A,
|
||
diff -rNU3 a/ld/configdoc.texi b/ld/configdoc.texi
|
||
--- a/ld/configdoc.texi 2021-03-30 23:12:40.201226600 -0300
|
||
+++ b/ld/configdoc.texi 1969-12-31 21:00:00.000000000 -0300
|
||
@@ -1,35 +0,0 @@
|
||
-@c Copyright (C) 2012-2020 Free Software Foundation, Inc.
|
||
-@c For copying conditions, see the file ld.texi.
|
||
-
|
||
-@c ------------------------------ CONFIGURATION VARS:
|
||
-@c 1. Inclusiveness of this manual
|
||
-@set GENERIC
|
||
-
|
||
-@c 2. Specific target machines
|
||
-@set ARM
|
||
-@set C6X
|
||
-@set CSKY
|
||
-@set H8300
|
||
-@set HPPA
|
||
-@set I960
|
||
-@set M68HC11
|
||
-@set M68K
|
||
-@set MIPS
|
||
-@set MMIX
|
||
-@set MSP430
|
||
-@set NDS32
|
||
-@set NIOSII
|
||
-@set POWERPC
|
||
-@set POWERPC64
|
||
-@set Renesas
|
||
-@set S/390
|
||
-@set SPU
|
||
-@set TICOFF
|
||
-@set WIN32
|
||
-@set XTENSA
|
||
-
|
||
-@c 3. Properties of this configuration
|
||
-@clear SingleFormat
|
||
-@set UsesEnvVars
|
||
-@c ------------------------------ end CONFIGURATION VARS
|
||
-
|
||
diff -rNU3 a/ld/configure.tgt b/ld/configure.tgt
|
||
--- a/ld/configure.tgt 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/configure.tgt 2021-03-30 17:48:00.818886000 -0300
|
||
@@ -77,6 +77,12 @@
|
||
targ_extra_libpath="aarch64linuxb aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
|
||
targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb $targ_extra_libpath"
|
||
;;
|
||
+aarch64_be-*-netbsd*) targ_emul=aarch64nbsdb
|
||
+ targ_extra_emuls="aarch64nbsd aarch64elfb aarch64elf armelfb_nbsd_eabihf armelf_nbsd_eabihf armelfb_nbsd_eabi armelf_nbsd_eabi armelfb_nbsd armelf_nbsd armelf armelfb"
|
||
+ ;;
|
||
+aarch64-*-netbsd*) targ_emul=aarch64nbsd
|
||
+ targ_extra_emuls="aarch64nbsdb aarch64elf aarch64elfb armelf_nbsd_eabihf armelfb_nbsd_eabihf armelf_nbsd_eabi armelfb_nbsd_eabi armelf_nbsd armelfb_nbsd armelf armelfb"
|
||
+ ;;
|
||
alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
|
||
targ_emul=elf64alpha_fbsd
|
||
targ_extra_emuls="elf64alpha alpha"
|
||
@@ -133,11 +139,21 @@
|
||
;;
|
||
arm*-*-freebsd* | arm-*-kfreebsd*-gnu)
|
||
targ_emul=armelf_fbsd
|
||
- targ_extra_emuls="armelfb_fbsd armelf"
|
||
- ;;
|
||
-armeb-*-netbsdelf*) targ_emul=armelfb_nbsd;
|
||
- targ_extra_emuls="armelf_nbsd armelf"
|
||
- ;;
|
||
+ targ_extra_emuls="armelfb_fbsd armelf" ;;
|
||
+arm*eb-*-netbsdelf*-*eabihf*)
|
||
+ targ_emul=armelfb_nbsd_eabihf;
|
||
+ targ_extra_emuls="armelf_nbsd_eabihf armelf_nbsd_eabi armelfb_nbsd_eabi armelf_nbsd armelfb_nbsd armelf" ;;
|
||
+arm*eb-*-netbsdelf*-*eabi*)
|
||
+ targ_emul=armelfb_nbsd_eabi;
|
||
+ targ_extra_emuls="armelf_nbsd_eabi armelf_nbsd_eabihf armelfb_nbsd_eabihf armelf_nbsd armelfb_nbsd armelf" ;;
|
||
+arm*-*-netbsdelf*-*eabihf*)
|
||
+ targ_emul=armelf_nbsd_eabihf;
|
||
+ targ_extra_emuls="armelfb_nbsd_eabihf armelf_nbsd_eabi armelfb_nbsd_eabi armelf_nbsd armelfb_nbsd armelf" ;;
|
||
+arm*-*-netbsdelf*-*eabi*)
|
||
+ targ_emul=armelf_nbsd_eabi;
|
||
+ targ_extra_emuls="armelfb_nbsd_eabi armelf_nbsd_eabihf armelfb_nbsd_eabihf armelf_nbsd armelfb_nbsd armelf" ;;
|
||
+arm*eb-*-netbsdelf*) targ_emul=armelfb_nbsd;
|
||
+ targ_extra_emuls="armelf_nbsd armelf" ;;
|
||
arm-*-netbsdelf*) targ_emul=armelf_nbsd;
|
||
targ_extra_emuls="armelfb_nbsd armelf"
|
||
;;
|
||
@@ -486,8 +502,15 @@
|
||
;;
|
||
mips*-sgi-irix6*) targ_emul=elf32bmipn32
|
||
targ_extra_emuls="elf32bsmip elf64bmip"
|
||
+ targ_extra_libpath=$targ_extra_emuls ;;
|
||
+mips64*el-*-netbsd*) targ_emul=elf32ltsmipn32
|
||
+ targ_extra_emuls="elf64btsmip elf64ltsmip elf32ltsmip elf32btsmipn32 elf32btsmip"
|
||
+ targ_extra_libpath=$targ_extra_emuls
|
||
+ ;;
|
||
+mips64*-*-netbsd*) targ_emul=elf32btsmipn32
|
||
+ targ_extra_emuls="elf64ltsmip elf64btsmip elf32btsmip elf32ltsmipn32 elf32ltsmip"
|
||
targ_extra_libpath=$targ_extra_emuls
|
||
- ;;
|
||
+ ;;
|
||
mips*el-*-netbsd*) targ_emul=elf32ltsmip
|
||
targ_extra_emuls="elf32btsmip elf64ltsmip elf64btsmip"
|
||
;;
|
||
@@ -646,6 +669,21 @@
|
||
tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
|
||
tdir_elf32ppc_fbsd=$tdir_elf32ppc
|
||
;;
|
||
+powerpc-*-netbsd*)
|
||
+ targ_emul=elf32ppc_nbsd
|
||
+ targ_extra_emuls="elf32ppc elf32ppcsim"
|
||
+ targ_extra_libpath=elf32ppc;
|
||
+ tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'`
|
||
+ targ64_extra_emuls=elf64ppc
|
||
+ targ64_extra_libpath=elf64ppc
|
||
+ ;;
|
||
+powerpc64-*-netbsd*)
|
||
+ targ_emul=elf64ppc
|
||
+ targ_extra_emuls="elf32ppc elf32ppc_nbsd elf32ppcsim"
|
||
+ targ_extra_libpath="elf32ppc_nbsd elf32ppc"
|
||
+ tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
|
||
+ tdir_elf32ppc_fbsd=$tdir_elf32ppc
|
||
+ ;;
|
||
powerpc-*-vxworks*)
|
||
targ_emul=elf32ppcvxworks
|
||
targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim"
|
||
@@ -750,7 +788,8 @@
|
||
;;
|
||
pru*-*-*) targ_emul=pruelf
|
||
;;
|
||
-riscv32*-*-linux*) targ_emul=elf32lriscv
|
||
+riscv32*-*-linux* | riscv-*-netbsd* | riscv32*-*-netbsd*)
|
||
+ targ_emul=elf32lriscv
|
||
targ_extra_emuls="elf32lriscv_ilp32f elf32lriscv_ilp32 elf64lriscv elf64lriscv_lp64f elf64lriscv_lp64"
|
||
targ_extra_libpath=$targ_extra_emuls
|
||
;;
|
||
@@ -759,7 +798,8 @@
|
||
targ_extra_emuls="elf64lriscv"
|
||
targ_extra_libpath=$targ_extra_emuls
|
||
;;
|
||
-riscv64*-*-linux*) targ_emul=elf64lriscv
|
||
+riscv64*-*-linux* | riscv64*-*-netbsd*)
|
||
+ targ_emul=elf64lriscv
|
||
targ_extra_emuls="elf64lriscv_lp64f elf64lriscv_lp64 elf32lriscv elf32lriscv_ilp32f elf32lriscv_ilp32"
|
||
targ_extra_libpath=$targ_extra_emuls
|
||
;;
|
||
@@ -864,6 +904,16 @@
|
||
targ_extra_libpath=elf64_sparc
|
||
tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`
|
||
;;
|
||
+sparc64-*-netbsd*) targ_emul=elf64_sparc
|
||
+ targ_extra_emuls="elf32_sparc"
|
||
+ ;;
|
||
+sparc64-*-openbsd*) targ_emul=elf64_sparc
|
||
+ targ_extra_emuls="elf32_sparc"
|
||
+ ;;
|
||
+sparc*-*-netbsd*elf*) targ_emul=elf32_sparc
|
||
+ ;;
|
||
+sparc*-*-netbsd*) targ_emul=sparcnbsd
|
||
+ ;;
|
||
sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
|
||
targ_emul=elf32_sparc_sol2
|
||
targ_extra_emuls=elf32_sparc
|
||
diff -rNU3 a/ld/emulparams/aarch64nbsdb.sh b/ld/emulparams/aarch64nbsdb.sh
|
||
--- a/ld/emulparams/aarch64nbsdb.sh 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/ld/emulparams/aarch64nbsdb.sh 2021-03-30 17:48:00.828886000 -0300
|
||
@@ -0,0 +1,2 @@
|
||
+. ${srcdir}/emulparams/aarch64nbsd.sh
|
||
+OUTPUT_FORMAT="elf64-bigaarch64"
|
||
diff -rNU3 a/ld/emulparams/aarch64nbsd.sh b/ld/emulparams/aarch64nbsd.sh
|
||
--- a/ld/emulparams/aarch64nbsd.sh 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/ld/emulparams/aarch64nbsd.sh 2021-03-30 17:48:00.828886000 -0300
|
||
@@ -0,0 +1,37 @@
|
||
+ARCH=aarch64
|
||
+MACHINE=
|
||
+NOP=0
|
||
+
|
||
+SCRIPT_NAME=elf
|
||
+ELFSIZE=64
|
||
+OUTPUT_FORMAT="elf64-littleaarch64"
|
||
+BIG_OUTPUT_FORMAT="elf64-bigaarch64"
|
||
+LITTLE_OUTPUT_FORMAT="elf64-littleaarch64"
|
||
+NO_REL_RELOCS=yes
|
||
+
|
||
+TEMPLATE_NAME=elf
|
||
+EXTRA_EM_FILE=aarch64elf
|
||
+
|
||
+GENERATE_SHLIB_SCRIPT=yes
|
||
+GENERATE_PIE_SCRIPT=yes
|
||
+
|
||
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
|
||
+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
|
||
+SEPARATE_GOTPLT=24
|
||
+IREL_IN_PLT=
|
||
+
|
||
+TEXT_START_ADDR=0x200100000
|
||
+
|
||
+DATA_START_SYMBOLS='PROVIDE (__data_start = .);';
|
||
+
|
||
+# AArch64 does not support .s* sections.
|
||
+NO_SMALL_DATA=yes
|
||
+
|
||
+OTHER_BSS_SYMBOLS='__bss_start__ = .;'
|
||
+OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ;'
|
||
+OTHER_END_SYMBOLS='__end__ = . ;'
|
||
+
|
||
+OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'
|
||
+ATTRS_SECTIONS='.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }'
|
||
+# Ensure each PLT entry is aligned to a cache line.
|
||
+PLT=".plt ${RELOCATING-0} : ALIGN(16) { *(.plt)${IREL_IN_PLT+ *(.iplt)} }"
|
||
diff -rNU3 a/ld/emulparams/armelfb_nbsd_eabihf.sh b/ld/emulparams/armelfb_nbsd_eabihf.sh
|
||
--- a/ld/emulparams/armelfb_nbsd_eabihf.sh 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/ld/emulparams/armelfb_nbsd_eabihf.sh 2021-03-30 17:48:00.838886000 -0300
|
||
@@ -0,0 +1,2 @@
|
||
+. ${srcdir}/emulparams/armelf_nbsd_eabihf.sh
|
||
+OUTPUT_FORMAT="elf32-bigarm"
|
||
diff -rNU3 a/ld/emulparams/armelfb_nbsd_eabi.sh b/ld/emulparams/armelfb_nbsd_eabi.sh
|
||
--- a/ld/emulparams/armelfb_nbsd_eabi.sh 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/ld/emulparams/armelfb_nbsd_eabi.sh 2021-03-30 17:48:00.838886000 -0300
|
||
@@ -0,0 +1,2 @@
|
||
+. ${srcdir}/emulparams/armelf_nbsd_eabi.sh
|
||
+OUTPUT_FORMAT="elf32-bigarm"
|
||
diff -rNU3 a/ld/emulparams/armelf_nbsd_eabihf.sh b/ld/emulparams/armelf_nbsd_eabihf.sh
|
||
--- a/ld/emulparams/armelf_nbsd_eabihf.sh 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/ld/emulparams/armelf_nbsd_eabihf.sh 2021-03-30 17:48:00.838886000 -0300
|
||
@@ -0,0 +1,20 @@
|
||
+. ${srcdir}/emulparams/armelf_nbsd.sh
|
||
+
|
||
+# Use the ARM ABI-compliant exception-handling sections.
|
||
+OTHER_READONLY_SECTIONS="
|
||
+ .ARM.extab ${RELOCATING-0} : { *(.ARM.extab${RELOCATING+* .gnu.linkonce.armextab.*}) }
|
||
+ ${RELOCATING+ PROVIDE_HIDDEN (__exidx_start = .); }
|
||
+ .ARM.exidx ${RELOCATING-0} : { *(.ARM.exidx${RELOCATING+* .gnu.linkonce.armexidx.*}) }
|
||
+ ${RELOCATING+ PROVIDE_HIDDEN (__exidx_end = .); }"
|
||
+
|
||
+case "$target" in
|
||
+ arm*-*-netbsdelf*-*eabihf*)
|
||
+ ;;
|
||
+ aarch64*-*-netbsd* | arm*-*-netbsdelf*)
|
||
+ case "$EMULATION_NAME" in
|
||
+ *armelf*eabihf)
|
||
+ LIB_PATH='=/usr/lib/eabihf'
|
||
+ ;;
|
||
+ esac
|
||
+ ;;
|
||
+esac
|
||
diff -rNU3 a/ld/emulparams/armelf_nbsd_eabi.sh b/ld/emulparams/armelf_nbsd_eabi.sh
|
||
--- a/ld/emulparams/armelf_nbsd_eabi.sh 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/ld/emulparams/armelf_nbsd_eabi.sh 2021-03-30 17:48:00.838886000 -0300
|
||
@@ -0,0 +1,27 @@
|
||
+. ${srcdir}/emulparams/armelf_nbsd.sh
|
||
+
|
||
+# Use the ARM ABI-compliant exception-handling sections.
|
||
+OTHER_READONLY_SECTIONS="
|
||
+ .ARM.extab ${RELOCATING-0} : { *(.ARM.extab${RELOCATING+* .gnu.linkonce.armextab.*}) }
|
||
+ ${RELOCATING+ PROVIDE_HIDDEN (__exidx_start = .); }
|
||
+ .ARM.exidx ${RELOCATING-0} : { *(.ARM.exidx${RELOCATING+* .gnu.linkonce.armexidx.*}) }
|
||
+ ${RELOCATING+ PROVIDE_HIDDEN (__exidx_end = .); }"
|
||
+
|
||
+case "$target" in
|
||
+ arm*-*-netbsdelf*-*eabihf*)
|
||
+ case "$EMULATION_NAME" in
|
||
+ *armelf*eabi)
|
||
+ LIB_PATH='=/usr/lib/eabi'
|
||
+ ;;
|
||
+ esac
|
||
+ ;;
|
||
+ arm*-*-netbsdelf*-*eabi*)
|
||
+ ;;
|
||
+ aarch64*-*-netbsd* | arm*-*-netbsdelf*)
|
||
+ case "$EMULATION_NAME" in
|
||
+ *armelf*eabi)
|
||
+ LIB_PATH='=/usr/lib/eabi'
|
||
+ ;;
|
||
+ esac
|
||
+ ;;
|
||
+esac
|
||
diff -rNU3 a/ld/emulparams/armelf_nbsd.sh b/ld/emulparams/armelf_nbsd.sh
|
||
--- a/ld/emulparams/armelf_nbsd.sh 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/emulparams/armelf_nbsd.sh 2021-03-30 17:48:00.838886000 -0300
|
||
@@ -1,7 +1,19 @@
|
||
source_sh ${srcdir}/emulparams/armelf.sh
|
||
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
|
||
-TEXT_START_ADDR=0x00008000
|
||
+TEXT_START_ADDR=0x00010000
|
||
TARGET2_TYPE=got-rel
|
||
+GENERATE_PIE_SCRIPT=yes
|
||
|
||
+unset DATA_START_SYMBOLS
|
||
unset STACK_ADDR
|
||
unset EMBEDDED
|
||
+
|
||
+case "$target" in
|
||
+ aarch64*-*-netbsd* | arm*-*-netbsdelf*-*eabi*)
|
||
+ case "$EMULATION_NAME" in
|
||
+ armelf*_nbsd)
|
||
+ LIB_PATH='=/usr/lib/oabi'
|
||
+ ;;
|
||
+ esac
|
||
+ ;;
|
||
+esac
|
||
diff -rNU3 a/ld/emulparams/elf32bmipn32-defs.sh b/ld/emulparams/elf32bmipn32-defs.sh
|
||
--- a/ld/emulparams/elf32bmipn32-defs.sh 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/emulparams/elf32bmipn32-defs.sh 2021-03-30 17:48:00.845553000 -0300
|
||
@@ -6,6 +6,7 @@
|
||
|
||
# Handle both big- and little-ended 32-bit MIPS objects.
|
||
ARCH=mips
|
||
+MACHINE=
|
||
OUTPUT_FORMAT="elf32-bigmips"
|
||
BIG_OUTPUT_FORMAT="elf32-bigmips"
|
||
LITTLE_OUTPUT_FORMAT="elf32-littlemips"
|
||
@@ -77,7 +78,7 @@
|
||
"
|
||
|
||
# Magic symbols.
|
||
-TEXT_START_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_ftext = .${CREATE_SHLIB+)};"
|
||
+TEXT_START_SYMBOLS="PROVIDE_HIDDEN (__eprol = .); ${CREATE_SHLIB+PROVIDE (}_ftext = .${CREATE_SHLIB+)};"
|
||
DATA_START_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_fdata = .${CREATE_SHLIB+)};"
|
||
OTHER_BSS_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_fbss = .${CREATE_SHLIB+)};"
|
||
|
||
diff -rNU3 a/ld/emulparams/elf32bmip.sh b/ld/emulparams/elf32bmip.sh
|
||
--- a/ld/emulparams/elf32bmip.sh 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/emulparams/elf32bmip.sh 2021-03-30 17:48:00.845553000 -0300
|
||
@@ -56,7 +56,7 @@
|
||
.lit8 ${RELOCATING-0} : { *(.lit8) }
|
||
.lit4 ${RELOCATING-0} : { *(.lit4) }
|
||
"
|
||
-TEXT_START_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_ftext = .${CREATE_SHLIB+)};"
|
||
+TEXT_START_SYMBOLS="PROVIDE_HIDDEN (__eprol = .); ${CREATE_SHLIB+PROVIDE (}_ftext = .${CREATE_SHLIB+)};"
|
||
DATA_START_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_fdata = .${CREATE_SHLIB+)};"
|
||
OTHER_BSS_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_fbss = .${CREATE_SHLIB+)};"
|
||
OTHER_SECTIONS="
|
||
diff -rNU3 a/ld/emulparams/elf32lriscv_ilp32f.sh b/ld/emulparams/elf32lriscv_ilp32f.sh
|
||
--- a/ld/emulparams/elf32lriscv_ilp32f.sh 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/emulparams/elf32lriscv_ilp32f.sh 2021-03-30 17:48:00.848886000 -0300
|
||
@@ -11,4 +11,13 @@
|
||
LIBPATH_SUFFIX="32/ilp32f 32" ;;
|
||
esac
|
||
;;
|
||
+ # NetBSD puts ILP32 libraries in rv32 subdirectory.
|
||
+ # XXX d vs f vs ""
|
||
+ riscv64-*-netbsd*)
|
||
+ case "$EMULATION_NAME" in
|
||
+ *32*)
|
||
+ LIB_PATH='=/usr/lib/rv32'
|
||
+ ;;
|
||
+ esac
|
||
+ ;;
|
||
esac
|
||
diff -rNU3 a/ld/emulparams/elf32lriscv_ilp32.sh b/ld/emulparams/elf32lriscv_ilp32.sh
|
||
--- a/ld/emulparams/elf32lriscv_ilp32.sh 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/emulparams/elf32lriscv_ilp32.sh 2021-03-30 17:48:00.848886000 -0300
|
||
@@ -11,4 +11,13 @@
|
||
LIBPATH_SUFFIX="32/ilp32 32" ;;
|
||
esac
|
||
;;
|
||
+ # NetBSD puts ILP32 libraries in rv32 subdirectory.
|
||
+ # XXX d vs f vs ""
|
||
+ riscv64-*-netbsd*)
|
||
+ case "$EMULATION_NAME" in
|
||
+ *32*)
|
||
+ LIB_PATH='=/usr/lib/rv32'
|
||
+ ;;
|
||
+ esac
|
||
+ ;;
|
||
esac
|
||
diff -rNU3 a/ld/emulparams/elf32lriscv.sh b/ld/emulparams/elf32lriscv.sh
|
||
--- a/ld/emulparams/elf32lriscv.sh 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/emulparams/elf32lriscv.sh 2021-03-30 17:48:00.848886000 -0300
|
||
@@ -12,4 +12,13 @@
|
||
LIBPATH_SUFFIX="32/ilp32d 32" ;;
|
||
esac
|
||
;;
|
||
+ # NetBSD puts ILP32 libraries in rv32 subdirectory.
|
||
+ # XXX d vs f vs ""
|
||
+ riscv64-*-netbsd*)
|
||
+ case "$EMULATION_NAME" in
|
||
+ *32*)
|
||
+ LIB_PATH='=/usr/lib/rv32'
|
||
+ ;;
|
||
+ esac
|
||
+ ;;
|
||
esac
|
||
diff -rNU3 a/ld/emulparams/elf32or1k_nbsd.sh b/ld/emulparams/elf32or1k_nbsd.sh
|
||
--- a/ld/emulparams/elf32or1k_nbsd.sh 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/ld/emulparams/elf32or1k_nbsd.sh 2021-03-30 17:48:00.852219000 -0300
|
||
@@ -0,0 +1,6 @@
|
||
+. ${srcdir}/emulparams/elf32or1k.sh
|
||
+unset EMBEDDED
|
||
+GENERATE_SHLIB_SCRIPT=yes
|
||
+GENERATE_PIE_SCRIPT=yes
|
||
+GENERATE_COMBRELOC_SCRIPT=yes
|
||
+TEXT_START_ADDR=0x00002000
|
||
diff -rNU3 a/ld/emulparams/elf32ppc_nbsd.sh b/ld/emulparams/elf32ppc_nbsd.sh
|
||
--- a/ld/emulparams/elf32ppc_nbsd.sh 1969-12-31 21:00:00.000000000 -0300
|
||
+++ b/ld/emulparams/elf32ppc_nbsd.sh 2021-03-30 17:48:00.852219000 -0300
|
||
@@ -0,0 +1,10 @@
|
||
+. ${srcdir}/emulparams/elf32ppc.sh
|
||
+
|
||
+case "$target" in
|
||
+ powerpc64*-*-netbsd*)
|
||
+ case "$EMULATION_NAME" in
|
||
+ *32*)
|
||
+ LIB_PATH='=/usr/lib/powerpc'
|
||
+ ;;
|
||
+ esac
|
||
+esac
|
||
diff -rNU3 a/ld/emulparams/elf32_sparc.sh b/ld/emulparams/elf32_sparc.sh
|
||
--- a/ld/emulparams/elf32_sparc.sh 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/emulparams/elf32_sparc.sh 2021-03-30 17:48:00.842219000 -0300
|
||
@@ -13,6 +13,17 @@
|
||
TEMPLATE_NAME=elf
|
||
DATA_PLT=
|
||
GENERATE_SHLIB_SCRIPT=yes
|
||
+#ELFSIZE=32
|
||
GENERATE_PIE_SCRIPT=yes
|
||
NOP=0x01000000
|
||
NO_SMALL_DATA=yes
|
||
+
|
||
+case "$target" in
|
||
+ sparc64-*-netbsd*)
|
||
+ case "$EMULATION_NAME" in
|
||
+ *32*)
|
||
+ LIB_PATH='=/usr/lib/sparc'
|
||
+ ;;
|
||
+ esac
|
||
+ ;;
|
||
+esac
|
||
diff -rNU3 a/ld/emulparams/elf64alpha_nbsd.sh b/ld/emulparams/elf64alpha_nbsd.sh
|
||
--- a/ld/emulparams/elf64alpha_nbsd.sh 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/emulparams/elf64alpha_nbsd.sh 2021-03-30 17:48:00.855553000 -0300
|
||
@@ -1,2 +1,8 @@
|
||
source_sh ${srcdir}/emulparams/elf64alpha.sh
|
||
ENTRY=__start
|
||
+
|
||
+NOP=0x47ff041f
|
||
+# XXX binutils 2.13
|
||
+# Note that the number is always big-endian, thus we have to
|
||
+# reverse the digit string.
|
||
+#NOP=0x0000fe2f1f04ff47 # unop; nop
|
||
diff -rNU3 a/ld/emulparams/elf_i386.sh b/ld/emulparams/elf_i386.sh
|
||
--- a/ld/emulparams/elf_i386.sh 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/emulparams/elf_i386.sh 2021-03-30 17:48:00.858886000 -0300
|
||
@@ -14,10 +14,22 @@
|
||
TEMPLATE_NAME=elf
|
||
EXTRA_EM_FILE="elf-x86"
|
||
GENERATE_SHLIB_SCRIPT=yes
|
||
+#ELFSIZE=32
|
||
GENERATE_PIE_SCRIPT=yes
|
||
NO_SMALL_DATA=yes
|
||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 12 ? 12 : 0"
|
||
IREL_IN_PLT=
|
||
+
|
||
+case "$target" in
|
||
+ x86_64-*-netbsd*)
|
||
+ case "$EMULATION_NAME" in
|
||
+ *i386*)
|
||
+ LIB_PATH='=/usr/lib/i386'
|
||
+ ;;
|
||
+ esac
|
||
+ ;;
|
||
+esac
|
||
+
|
||
# These sections are placed right after .plt section.
|
||
OTHER_PLT_SECTIONS="
|
||
.plt.got ${RELOCATING-0} : { *(.plt.got) }
|
||
diff -rNU3 a/ld/emulparams/hppalinux.sh b/ld/emulparams/hppalinux.sh
|
||
--- a/ld/emulparams/hppalinux.sh 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/emulparams/hppalinux.sh 2021-03-30 17:48:00.862219000 -0300
|
||
@@ -1,5 +1,5 @@
|
||
# If you change this file, please also look at files which source this one:
|
||
-# hppanbsd.sh
|
||
+# hppanbsd.sh hppaobsd.sh
|
||
|
||
SCRIPT_NAME=elf
|
||
ELFSIZE=32
|
||
diff -rNU3 a/ld/emulparams/m68kelfnbsd.sh b/ld/emulparams/m68kelfnbsd.sh
|
||
--- a/ld/emulparams/m68kelfnbsd.sh 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/emulparams/m68kelfnbsd.sh 2021-03-30 17:48:00.865553000 -0300
|
||
@@ -1,4 +1,4 @@
|
||
source_sh ${srcdir}/emulparams/m68kelf.sh
|
||
TEXT_START_ADDR=0x2000
|
||
TARGET_PAGE_SIZE=0x2000
|
||
-MACHINE=
|
||
+NONPAGED_TEXT_START_ADDR=${TEXT_START_ADDR}
|
||
diff -rNU3 a/ld/emulparams/m68kelf.sh b/ld/emulparams/m68kelf.sh
|
||
--- a/ld/emulparams/m68kelf.sh 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/emulparams/m68kelf.sh 2021-03-30 17:48:00.865553000 -0300
|
||
@@ -10,5 +10,6 @@
|
||
TEMPLATE_NAME=elf
|
||
EXTRA_EM_FILE=m68kelf
|
||
GENERATE_SHLIB_SCRIPT=yes
|
||
+ELFSIZE=32
|
||
GENERATE_PIE_SCRIPT=yes
|
||
NO_SMALL_DATA=yes
|
||
diff -rNU3 a/ld/emulparams/shelf_nbsd.sh b/ld/emulparams/shelf_nbsd.sh
|
||
--- a/ld/emulparams/shelf_nbsd.sh 2021-03-30 23:12:40.211226601 -0300
|
||
+++ b/ld/emulparams/shelf_nbsd.sh 2021-03-30 17:48:00.868886000 -0300
|
||
@@ -9,7 +9,12 @@
|
||
|
||
DATA_START_SYMBOLS='PROVIDE (__data_start = .);';
|
||
|
||
-ENTRY=_start
|
||
+ENTRY=__start
|
||
|
||
unset EMBEDDED
|
||
+unset OTHER_SECTIONS
|
||
+
|
||
+OTHER_READWRITE_SECTIONS='
|
||
+ .note.ABI-tag : { *(.note.ABI-tag) }
|
||
+'
|
||
unset STACK_ADDR
|
||
diff -rNU3 a/ld/emulparams/sh.sh b/ld/emulparams/sh.sh
|
||
--- a/ld/emulparams/sh.sh 2021-03-30 23:12:40.207893267 -0300
|
||
+++ b/ld/emulparams/sh.sh 2021-03-30 17:48:00.868886000 -0300
|
||
@@ -3,6 +3,6 @@
|
||
|
||
SCRIPT_NAME=sh
|
||
OUTPUT_FORMAT="coff-sh"
|
||
-TEXT_START_ADDR=0x8000
|
||
-TARGET_PAGE_SIZE=128
|
||
+TEXT_START_ADDR=0x1000
|
||
+TARGET_PAGE_SIZE=0x1000
|
||
ARCH=sh
|
||
diff -rNU3 a/ld/emultempl/aarch64elf.em b/ld/emultempl/aarch64elf.em
|
||
--- a/ld/emultempl/aarch64elf.em 2021-03-30 23:12:40.211226601 -0300
|
||
+++ b/ld/emultempl/aarch64elf.em 2021-03-30 17:48:00.872219000 -0300
|
||
@@ -44,6 +44,7 @@
|
||
ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
|
||
#endif /* not TARGET_ */
|
||
input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
|
||
+ input_flags.add_DT_NEEDED_for_dynamic = TRUE;
|
||
config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
|
||
config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
|
||
link_info.check_relocs_after_open_input = TRUE;
|
||
diff -rNU3 a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em
|
||
--- a/ld/emultempl/armelf.em 2021-03-30 23:12:40.211226601 -0300
|
||
+++ b/ld/emultempl/armelf.em 2021-03-30 17:48:00.875553000 -0300
|
||
@@ -57,6 +57,7 @@
|
||
ldfile_set_output_arch ("`echo ${ARCH}`", bfd_arch_unknown);
|
||
#endif /* not TARGET_ */
|
||
input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
|
||
+ input_flags.add_DT_NEEDED_for_dynamic = TRUE;
|
||
config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
|
||
config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
|
||
link_info.check_relocs_after_open_input = TRUE;
|
||
diff -rNU3 a/ld/emultempl/elf.em b/ld/emultempl/elf.em
|
||
--- a/ld/emultempl/elf.em 2021-03-30 23:12:40.211226601 -0300
|
||
+++ b/ld/emultempl/elf.em 2021-03-30 17:48:00.875553000 -0300
|
||
@@ -79,6 +79,7 @@
|
||
{
|
||
ldfile_set_output_arch ("${OUTPUT_ARCH}", bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`);
|
||
input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
|
||
+ input_flags.add_DT_NEEDED_for_dynamic = TRUE;
|
||
config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
|
||
config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
|
||
link_info.check_relocs_after_open_input = TRUE;
|
||
diff -rNU3 a/ld/genscripts.sh b/ld/genscripts.sh
|
||
--- a/ld/genscripts.sh 2021-03-30 23:12:40.211226601 -0300
|
||
+++ b/ld/genscripts.sh 2021-03-30 17:48:00.895553000 -0300
|
||
@@ -257,7 +257,8 @@
|
||
done
|
||
libs="${exec_prefix}/${TOOL_LIB}/lib ${libs}"
|
||
fi
|
||
- append_to_lib_path ${libs}
|
||
+ #NetBSD: don't spam linker scripts like this.
|
||
+ #append_to_lib_path ${libs}
|
||
fi
|
||
|
||
if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then
|
||
diff -rNU3 a/ld/ldlex.l b/ld/ldlex.l
|
||
--- a/ld/ldlex.l 2021-03-30 23:12:40.211226601 -0300
|
||
+++ b/ld/ldlex.l 2021-03-30 17:48:00.918886000 -0300
|
||
@@ -58,10 +58,6 @@
|
||
#undef YY_INPUT
|
||
#define YY_INPUT(buf,result,max_size) result = yy_input (buf, max_size)
|
||
|
||
-#ifndef YY_NO_UNPUT
|
||
-#define YY_NO_UNPUT
|
||
-#endif
|
||
-
|
||
#define MAX_INCLUDE_DEPTH 10
|
||
static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
|
||
static const char *file_name_stack[MAX_INCLUDE_DEPTH];
|
||
@@ -89,6 +85,8 @@
|
||
|
||
%}
|
||
|
||
+%option nounput
|
||
+
|
||
%a 4000
|
||
%o 5000
|
||
|
||
diff -rNU3 a/ld/lexsup.c b/ld/lexsup.c
|
||
--- a/ld/lexsup.c 2021-03-30 23:12:40.211226601 -0300
|
||
+++ b/ld/lexsup.c 2021-03-30 17:48:00.918886000 -0300
|
||
@@ -427,7 +427,7 @@
|
||
ONE_DASH },
|
||
{ {"shared", no_argument, NULL, OPTION_SHARED},
|
||
'\0', NULL, N_("Create a shared library"), ONE_DASH },
|
||
- { {"Bshareable", no_argument, NULL, OPTION_SHARED }, /* FreeBSD. */
|
||
+ { {"Bshareable", no_argument, NULL, OPTION_SHARED }, /* FreeBSD, NetBSD. */
|
||
'\0', NULL, NULL, ONE_DASH },
|
||
{ {"pie", no_argument, NULL, OPTION_PIE},
|
||
'\0', NULL, N_("Create a position independent executable"), ONE_DASH },
|
||
@@ -527,6 +527,8 @@
|
||
{ {"whole-archive", no_argument, NULL, OPTION_WHOLE_ARCHIVE},
|
||
'\0', NULL, N_("Include all objects from following archives"),
|
||
TWO_DASHES },
|
||
+ { {"Bforcearchive", no_argument, NULL, OPTION_WHOLE_ARCHIVE},
|
||
+ '\0', NULL, NULL, TWO_DASHES }, /* NetBSD. */
|
||
{ {"wrap", required_argument, NULL, OPTION_WRAP},
|
||
'\0', N_("SYMBOL"), N_("Use wrapper functions for SYMBOL"), TWO_DASHES },
|
||
{ {"ignore-unresolved-symbol", required_argument, NULL,
|
||
diff -rNU3 a/ld/Makefile.am b/ld/Makefile.am
|
||
--- a/ld/Makefile.am 2021-03-30 23:12:40.201226600 -0300
|
||
+++ b/ld/Makefile.am 2021-03-30 17:48:00.812219000 -0300
|
||
@@ -181,6 +181,8 @@
|
||
earmelf_linux_fdpiceabi.c \
|
||
earmelf_nacl.c \
|
||
earmelf_nbsd.c \
|
||
+ earmelf_nbsd_eabi.c \
|
||
+ earmelf_nbsd_eabihf.c \
|
||
earmelf_phoenix.c \
|
||
earmelf_vxworks.c \
|
||
earmelfb.c \
|
||
@@ -191,6 +193,9 @@
|
||
earmelfb_linux_fdpiceabi.c \
|
||
earmelfb_nacl.c \
|
||
earmelfb_nbsd.c \
|
||
+ earmelfb_nbsd_eabi.c \
|
||
+ earmelfb_nbsd_eabihf.c \
|
||
+ earmnbsd.c \
|
||
earmnto.c \
|
||
earmpe.c \
|
||
earmsymbian.c \
|
||
@@ -252,6 +257,12 @@
|
||
eelf32lppclinux.c \
|
||
eelf32lppcnto.c \
|
||
eelf32lppcsim.c \
|
||
+ eelf32lriscv.c \
|
||
+ eelf32lsmip.c \
|
||
+ eelf32ltsmip.c \
|
||
+ eelf32ltsmip_fbsd.c \
|
||
+ eelf32ltsmipn32.c \
|
||
+ eelf32ltsmipn32_fbsd.c \
|
||
eelf32m32c.c \
|
||
eelf32mb_linux.c \
|
||
eelf32mbel_linux.c \
|
||
@@ -265,8 +276,10 @@
|
||
eelf32mt.c \
|
||
eelf32or1k.c \
|
||
eelf32or1k_linux.c \
|
||
+ eelf32or1k_nbsd.c \
|
||
eelf32ppc.c \
|
||
eelf32ppc_fbsd.c \
|
||
+ eelf32ppc_nbsd.c \
|
||
eelf32ppclinux.c \
|
||
eelf32ppcnto.c \
|
||
eelf32ppcsim.c \
|
||
@@ -400,6 +413,8 @@
|
||
eaarch64fbsdb.c \
|
||
eaarch64linux.c \
|
||
eaarch64linuxb.c \
|
||
+ eaarch64nbsd.c \
|
||
+ eaarch64nbsdb.c \
|
||
eaarch64linux32.c \
|
||
eaarch64linux32b.c \
|
||
eelf32_x86_64.c \
|
||
@@ -1017,6 +1032,8 @@
|
||
# because almost all configs use "gen" version of manual.
|
||
# Set DOCVER above to change.
|
||
configdoc.texi: ${DOCVER}-doc.texi
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_configdoc.texi:
|
||
cp ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi
|
||
chmod u+w ./configdoc.texi
|
||
|
||
@@ -1024,6 +1041,8 @@
|
||
# The sed command removes the no-adjust Nroff command so that
|
||
# the man output looks standard.
|
||
ld.1: $(srcdir)/ld.texi configdoc.texi
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_ld.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) < $(srcdir)/ld.texi > ld.pod
|
||
-($(POD2MAN) ld.pod | \
|
||
diff -rNU3 a/ld/Makefile.in b/ld/Makefile.in
|
||
--- a/ld/Makefile.in 2021-03-30 23:12:40.201226600 -0300
|
||
+++ b/ld/Makefile.in 2021-03-30 17:48:00.815553000 -0300
|
||
@@ -671,6 +671,8 @@
|
||
earmelf_linux_fdpiceabi.c \
|
||
earmelf_nacl.c \
|
||
earmelf_nbsd.c \
|
||
+ earmelf_nbsd_eabi.c \
|
||
+ earmelf_nbsd_eabihf.c \
|
||
earmelf_phoenix.c \
|
||
earmelf_vxworks.c \
|
||
earmelfb.c \
|
||
@@ -681,6 +683,9 @@
|
||
earmelfb_linux_fdpiceabi.c \
|
||
earmelfb_nacl.c \
|
||
earmelfb_nbsd.c \
|
||
+ earmelfb_nbsd_eabi.c \
|
||
+ earmelfb_nbsd_eabihf.c \
|
||
+ earmnbsd.c \
|
||
earmnto.c \
|
||
earmpe.c \
|
||
earmsymbian.c \
|
||
@@ -742,6 +747,12 @@
|
||
eelf32lppclinux.c \
|
||
eelf32lppcnto.c \
|
||
eelf32lppcsim.c \
|
||
+ eelf32lriscv.c \
|
||
+ eelf32lsmip.c \
|
||
+ eelf32ltsmip.c \
|
||
+ eelf32ltsmip_fbsd.c \
|
||
+ eelf32ltsmipn32.c \
|
||
+ eelf32ltsmipn32_fbsd.c \
|
||
eelf32m32c.c \
|
||
eelf32mb_linux.c \
|
||
eelf32mbel_linux.c \
|
||
@@ -755,8 +766,10 @@
|
||
eelf32mt.c \
|
||
eelf32or1k.c \
|
||
eelf32or1k_linux.c \
|
||
+ eelf32or1k_nbsd.c \
|
||
eelf32ppc.c \
|
||
eelf32ppc_fbsd.c \
|
||
+ eelf32ppc_nbsd.c \
|
||
eelf32ppclinux.c \
|
||
eelf32ppcnto.c \
|
||
eelf32ppcsim.c \
|
||
@@ -889,6 +902,8 @@
|
||
eaarch64fbsdb.c \
|
||
eaarch64linux.c \
|
||
eaarch64linuxb.c \
|
||
+ eaarch64nbsd.c \
|
||
+ eaarch64nbsdb.c \
|
||
eaarch64linux32.c \
|
||
eaarch64linux32b.c \
|
||
eelf32_x86_64.c \
|
||
@@ -1206,6 +1221,8 @@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32b.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linuxb.Po@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64nbsd.Po@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64nbsdb.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaix5ppc.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaix5rs6.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaixppc.Po@am__quote@
|
||
@@ -1226,6 +1243,8 @@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_linux_fdpiceabi.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_nacl.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_nbsd.Po@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_nbsd_eabi.Po@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_nbsd_eabihf.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_phoenix.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_vxworks.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb.Po@am__quote@
|
||
@@ -1236,6 +1255,9 @@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_linux_fdpiceabi.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_nacl.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_nbsd.Po@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_nbsd_eabi.Po@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_nbsd_eabihf.Po@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmnbsd.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmnto.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmpe.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmsymbian.Po@am__quote@
|
||
@@ -1313,6 +1335,7 @@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lppclinux.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lppcnto.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lppcsim.Po@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lriscv.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lr5900.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lr5900n32.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32lriscv.Po@am__quote@
|
||
@@ -1336,8 +1359,10 @@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32mt.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32or1k.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32or1k_linux.Po@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32or1k_nbsd.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ppc.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ppc_fbsd.Po@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ppc_nbsd.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ppclinux.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ppcnto.Po@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf32ppcsim.Po@am__quote@
|
||
@@ -1586,6 +1611,8 @@
|
||
-rm -f libtool config.lt
|
||
|
||
ld.info: ld.texi $(ld_TEXINFOS)
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_ld.info: ld.texinfo $(ld_TEXINFOS)
|
||
$(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
|
||
rm -rf $$backupdir && mkdir $$backupdir && \
|
||
if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
|
||
@@ -2582,6 +2609,8 @@
|
||
# because almost all configs use "gen" version of manual.
|
||
# Set DOCVER above to change.
|
||
configdoc.texi: ${DOCVER}-doc.texi
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_configdoc.texi:
|
||
cp ${srcdir}/${DOCVER}-doc.texi ./configdoc.texi
|
||
chmod u+w ./configdoc.texi
|
||
|
||
@@ -2589,6 +2618,8 @@
|
||
# The sed command removes the no-adjust Nroff command so that
|
||
# the man output looks standard.
|
||
ld.1: $(srcdir)/ld.texi configdoc.texi
|
||
+ @echo "NOT REBUILDING $@"
|
||
+NetBSD_DISABLED_ld.1:
|
||
touch $@
|
||
-$(TEXI2POD) $(MANCONF) < $(srcdir)/ld.texi > ld.pod
|
||
-($(POD2MAN) ld.pod | \
|
||
diff -rNU3 a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
|
||
--- a/ld/scripttempl/elf.sc 2021-03-30 23:12:40.211226601 -0300
|
||
+++ b/ld/scripttempl/elf.sc 2021-03-30 17:48:00.995553000 -0300
|
||
@@ -103,6 +103,8 @@
|
||
#
|
||
# Each of these can also have corresponding .rel.* and .rela.* sections.
|
||
|
||
+test -z "$TEXT_START_SYMBOLS" && TEXT_START_SYMBOLS="PROVIDE_HIDDEN (__eprol = .);"
|
||
+test -z "$ENTRY" && ENTRY=_start
|
||
if test -n "$NOP"; then
|
||
FILL="=$NOP"
|
||
else
|
||
@@ -510,6 +512,7 @@
|
||
.text ${RELOCATING-0} :
|
||
{
|
||
${RELOCATING+${TEXT_START_SYMBOLS}}
|
||
+ *(.text)
|
||
${RELOCATING+*(.text.unlikely .text.*_unlikely .text.unlikely.*)}
|
||
${RELOCATING+*(.text.exit .text.exit.*)}
|
||
${RELOCATING+*(.text.startup .text.startup.*)}
|
||
diff -rNU3 a/ld/scripttempl/sh.sc b/ld/scripttempl/sh.sc
|
||
--- a/ld/scripttempl/sh.sc 2021-03-30 23:12:40.211226601 -0300
|
||
+++ b/ld/scripttempl/sh.sc 2021-03-30 17:48:01.002219000 -0300
|
||
@@ -23,6 +23,7 @@
|
||
|
||
OUTPUT_FORMAT("${OUTPUT_FORMAT}")
|
||
OUTPUT_ARCH(${ARCH})
|
||
+${LIB_SEARCH_DIRS}
|
||
|
||
EOF
|
||
|
||
@@ -42,9 +43,9 @@
|
||
*(.text)
|
||
*(.strings)
|
||
${RELOCATING+ _etext = . ; }
|
||
- } ${RELOCATING+ > ram}
|
||
+ }
|
||
${CONSTRUCTING+${TORS}}
|
||
- .data :
|
||
+ .data ${RELOCATING+ ALIGN(${TARGET_PAGE_SIZE})} :
|
||
{
|
||
*(.data)
|
||
${RELOCATING+*(.gcc_exc*)}
|
||
@@ -53,19 +54,19 @@
|
||
${RELOCATING+___EH_FRAME_END__ = . ;}
|
||
${RELOCATING+LONG(0);}
|
||
${RELOCATING+ _edata = . ; }
|
||
- } ${RELOCATING+ > ram}
|
||
- .bss :
|
||
+ }
|
||
+ .bss ${RELOCATING+ ALIGN(${TARGET_PAGE_SIZE})} :
|
||
{
|
||
${RELOCATING+ _bss_start = . ; }
|
||
*(.bss)
|
||
*(COMMON)
|
||
${RELOCATING+ _end = . ; }
|
||
- } ${RELOCATING+ > ram}
|
||
- .stack ${RELOCATING+ 0x30000 } :
|
||
+ }
|
||
+ .stack :
|
||
{
|
||
${RELOCATING+ _stack = . ; }
|
||
*(.stack)
|
||
- } ${RELOCATING+ > ram}
|
||
+ }
|
||
.stab 0 ${RELOCATING+(NOLOAD)} :
|
||
{
|
||
*(.stab)
|
||
diff -rNU3 a/libiberty/configure b/libiberty/configure
|
||
--- a/libiberty/configure 2021-03-30 23:12:40.214559934 -0300
|
||
+++ b/libiberty/configure 2021-03-30 17:48:01.032219000 -0300
|
||
@@ -7471,7 +7471,7 @@
|
||
|
||
|
||
# We need multilib support, but only if configuring for the target.
|
||
-ac_config_files="$ac_config_files Makefile testsuite/Makefile"
|
||
+ac_config_files="$ac_config_files Makefile" # testsuite/Makefile
|
||
|
||
ac_config_commands="$ac_config_commands default"
|
||
|
||
diff -rNU3 a/libiberty/configure.ac b/libiberty/configure.ac
|
||
--- a/libiberty/configure.ac 2021-03-30 23:12:40.214559934 -0300
|
||
+++ b/libiberty/configure.ac 2021-03-30 17:48:01.032219000 -0300
|
||
@@ -728,7 +728,7 @@
|
||
AC_SUBST(htmldir)
|
||
|
||
# We need multilib support, but only if configuring for the target.
|
||
-AC_CONFIG_FILES([Makefile testsuite/Makefile])
|
||
+AC_CONFIG_FILES([Makefile])
|
||
AC_CONFIG_COMMANDS([default],
|
||
[[test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
|
||
if test -n "$CONFIG_FILES"; then
|
||
diff -rNU3 a/libiberty/floatformat.c b/libiberty/floatformat.c
|
||
--- a/libiberty/floatformat.c 2021-03-30 23:12:40.214559934 -0300
|
||
+++ b/libiberty/floatformat.c 2021-03-30 17:48:01.045553000 -0300
|
||
@@ -498,7 +498,11 @@
|
||
if (nan)
|
||
dto = NAN;
|
||
else
|
||
+#ifdef __vax__
|
||
+ dto = HUGE_VAL;
|
||
+#else
|
||
dto = INFINITY;
|
||
+#endif
|
||
|
||
if (get_field (ufrom, fmt->byteorder, fmt->totalsize, fmt->sign_start, 1))
|
||
dto = -dto;
|
||
diff -rNU3 a/libiberty/Makefile.in b/libiberty/Makefile.in
|
||
--- a/libiberty/Makefile.in 2021-03-30 23:12:40.214559934 -0300
|
||
+++ b/libiberty/Makefile.in 2021-03-30 17:48:01.028886000 -0300
|
||
@@ -97,7 +97,7 @@
|
||
"tooldir=$(tooldir)"
|
||
|
||
# Subdirectories to recurse into. We need to override this during cleaning
|
||
-SUBDIRS = testsuite
|
||
+SUBDIRS = # testsuite
|
||
|
||
# FIXME: add @BUILD_INFO@ once we're sure it works for everyone.
|
||
all: stamp-picdir stamp-noasandir $(TARGETLIB) required-list all-subdir
|
||
diff -rNU3 a/libiberty/make-temp-file.c b/libiberty/make-temp-file.c
|
||
--- a/libiberty/make-temp-file.c 2021-03-30 23:12:40.214559934 -0300
|
||
+++ b/libiberty/make-temp-file.c 2021-03-30 17:48:01.048886000 -0300
|
||
@@ -129,10 +129,10 @@
|
||
base = try_dir (P_tmpdir, base);
|
||
#endif
|
||
|
||
- /* Try /var/tmp, /usr/tmp, then /tmp. */
|
||
+ /* Try /tmp, /var/tmp, then /usr/tmp. */
|
||
+ base = try_dir (tmp, base);
|
||
base = try_dir (vartmp, base);
|
||
base = try_dir (usrtmp, base);
|
||
- base = try_dir (tmp, base);
|
||
|
||
/* If all else fails, use the current directory! */
|
||
if (base == 0)
|
||
diff -rNU3 a/libiberty/strerror.c b/libiberty/strerror.c
|
||
--- a/libiberty/strerror.c 2021-03-30 23:12:40.214559934 -0300
|
||
+++ b/libiberty/strerror.c 2021-03-30 17:48:01.072219000 -0300
|
||
@@ -347,7 +347,7 @@
|
||
ENTRY(EPROTOTYPE, "EPROTOTYPE", "Protocol wrong type for socket"),
|
||
#endif
|
||
#if defined (ENOPROTOOPT)
|
||
- ENTRY(ENOPROTOOPT, "ENOPROTOOPT", "Protocol not available"),
|
||
+ ENTRY(ENOPROTOOPT, "ENOPROTOOPT", "Protocol option not available"),
|
||
#endif
|
||
#if defined (EPROTONOSUPPORT)
|
||
ENTRY(EPROTONOSUPPORT, "EPROTONOSUPPORT", "Protocol not supported"),
|
||
diff -rNU3 a/libiberty/strsignal.c b/libiberty/strsignal.c
|
||
--- a/libiberty/strsignal.c 2021-03-30 23:12:40.214559934 -0300
|
||
+++ b/libiberty/strsignal.c 2021-03-30 17:48:01.075553000 -0300
|
||
@@ -551,7 +551,7 @@
|
||
#ifndef HAVE_PSIGNAL
|
||
|
||
void
|
||
-psignal (int signo, char *message)
|
||
+psignal (int signo, const char *message)
|
||
{
|
||
if (signal_names == NULL)
|
||
{
|
||
diff -rNU3 a/opcodes/cgen.sh b/opcodes/cgen.sh
|
||
--- a/opcodes/cgen.sh 2021-03-30 23:12:40.217893267 -0300
|
||
+++ b/opcodes/cgen.sh 2021-03-30 17:48:01.238886000 -0300
|
||
@@ -61,6 +61,7 @@
|
||
shift ; extrafiles=$9
|
||
|
||
rootdir=${srcdir}/..
|
||
+move_if_change="${CONFIG_SHELL:-/bin/sh} ${rootdir}/move-if-change"
|
||
|
||
# $arch is $6, as passed on the command line.
|
||
# $ARCH is the same argument but in all uppercase.
|
||
diff -rNU3 a/opcodes/configure b/opcodes/configure
|
||
--- a/opcodes/configure 2021-03-30 23:12:40.221226601 -0300
|
||
+++ b/opcodes/configure 2021-03-30 17:48:01.242219000 -0300
|
||
@@ -12919,6 +12919,7 @@
|
||
bfd_powerpc_64_arch) ta="$ta ppc-dis.lo ppc-opc.lo" ;;
|
||
bfd_pru_arch) ta="$ta pru-dis.lo pru-opc.lo" ;;
|
||
bfd_pyramid_arch) ;;
|
||
+ bfd_riscv_arch) ta="$ta riscv-dis.lo riscv-opc.lo" ;;
|
||
bfd_romp_arch) ;;
|
||
bfd_riscv_arch) ta="$ta riscv-dis.lo riscv-opc.lo" ;;
|
||
bfd_rs6000_arch) ta="$ta ppc-dis.lo ppc-opc.lo" ;;
|
||
@@ -12926,7 +12927,29 @@
|
||
bfd_rx_arch) ta="$ta rx-dis.lo rx-decode.lo";;
|
||
bfd_s390_arch) ta="$ta s390-dis.lo s390-opc.lo" ;;
|
||
bfd_score_arch) ta="$ta score-dis.lo score7-dis.lo" ;;
|
||
- bfd_sh_arch) ta="$ta sh-dis.lo cgen-bitset.lo" ;;
|
||
+ bfd_sh_arch)
|
||
+ # We can't decide what we want just from the CPU family.
|
||
+ # We want SH5 support unless a specific version of sh is
|
||
+ # specified, as in sh3-elf, sh3b-linux-gnu, etc.
|
||
+ # Include it just for ELF targets, since the SH5 bfd:s are ELF only.
|
||
+ for t in $target $canon_targets; do
|
||
+ # For NetBSD we do NOT want SH5 support unless sh5 or sh64
|
||
+ # is specified
|
||
+ case $t in
|
||
+ sh5*-* | sh64*-*) # let the case below handle it
|
||
+ ;;
|
||
+ sh*-*-netbsd* | sh*l*-*-netbsd*)
|
||
+ continue ;;
|
||
+ esac
|
||
+ case $t in
|
||
+ all | sh5*-* | sh64*-* | sh-*-*elf* | shl*-*-*elf* | \
|
||
+ sh-*-linux* | shl-*-linux*)
|
||
+ ta="$ta sh64-dis.lo sh64-opc.lo"
|
||
+ archdefs="$archdefs -DINCLUDE_SHMEDIA"
|
||
+ break;;
|
||
+ esac;
|
||
+ done
|
||
+ ta="$ta sh-dis.lo cgen-bitset.lo" ;;
|
||
bfd_sparc_arch) ta="$ta sparc-dis.lo sparc-opc.lo" ;;
|
||
bfd_spu_arch) ta="$ta spu-dis.lo spu-opc.lo" ;;
|
||
bfd_tic30_arch) ta="$ta tic30-dis.lo" ;;
|
||
diff -rNU3 a/opcodes/Makefile.am b/opcodes/Makefile.am
|
||
--- a/opcodes/Makefile.am 2021-03-30 23:12:40.217893267 -0300
|
||
+++ b/opcodes/Makefile.am 2021-03-30 17:48:01.165553000 -0300
|
||
@@ -78,6 +78,7 @@
|
||
mep-desc.h mep-opc.h \
|
||
microblaze-opc.h \
|
||
mt-desc.h mt-opc.h \
|
||
+ or1k-desc.h or1k-opc.h \
|
||
score-opc.h \
|
||
sh-opc.h \
|
||
sysdep.h \
|
||
diff -rNU3 a/opcodes/Makefile.in b/opcodes/Makefile.in
|
||
--- a/opcodes/Makefile.in 2021-03-30 23:12:40.217893267 -0300
|
||
+++ b/opcodes/Makefile.in 2021-03-30 17:48:01.168886000 -0300
|
||
@@ -1019,6 +1019,7 @@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/or1k-dis.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/or1k-ibld.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/or1k-opc.Plo@am__quote@
|
||
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/or1k-opinst.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pdp11-dis.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pdp11-opc.Plo@am__quote@
|
||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pj-dis.Plo@am__quote@
|
||
diff -rNU3 a/zlib/adler32.c b/zlib/adler32.c
|
||
--- a/zlib/adler32.c 2021-03-30 23:12:40.221226601 -0300
|
||
+++ b/zlib/adler32.c 2021-03-30 17:48:01.618886000 -0300
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id: adler32.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
|
||
+/* @(#) Id: adler32.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp */
|
||
|
||
#include "zutil.h"
|
||
|
||
diff -rNU3 a/zlib/ChangeLog b/zlib/ChangeLog
|
||
--- a/zlib/ChangeLog 2021-03-30 23:12:40.221226601 -0300
|
||
+++ b/zlib/ChangeLog 2021-03-30 17:48:01.615553000 -0300
|
||
@@ -1259,7 +1259,7 @@
|
||
- use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau)
|
||
- added makelcc.bat for lcc-win32 (Tom St Denis)
|
||
- in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe)
|
||
-- Avoid expanded $Id: ChangeLog,v 1.5 2002/05/08 04:38:00 aoliva Exp $. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion.
|
||
+- Avoid expanded Id: ChangeLog,v 1.5 2002/05/08 04:38:00 aoliva Exp . Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion.
|
||
- check for unistd.h in configure (for off_t)
|
||
- remove useless check parameter in inflate_blocks_free
|
||
- avoid useless assignment of s->check to itself in inflate_blocks_new
|
||
diff -rNU3 a/zlib/compress.c b/zlib/compress.c
|
||
--- a/zlib/compress.c 2021-03-30 23:12:40.221226601 -0300
|
||
+++ b/zlib/compress.c 2021-03-30 17:48:01.618886000 -0300
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id: compress.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
|
||
+/* @(#) Id: compress.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp */
|
||
|
||
#define ZLIB_INTERNAL
|
||
#include "zlib.h"
|
||
diff -rNU3 a/zlib/contrib/ada/buffer_demo.adb b/zlib/contrib/ada/buffer_demo.adb
|
||
--- a/zlib/contrib/ada/buffer_demo.adb 2021-03-30 23:12:40.221226601 -0300
|
||
+++ b/zlib/contrib/ada/buffer_demo.adb 2021-03-30 17:48:01.625553000 -0300
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
--
|
||
--- $Id: buffer_demo.adb,v 1.3 2004/09/06 06:55:35 vagul Exp $
|
||
+-- Id: buffer_demo.adb,v 1.3 2004/09/06 06:55:35 vagul Exp
|
||
|
||
-- This demo program provided by Dr Steve Sangwine <sjs@essex.ac.uk>
|
||
--
|
||
diff -rNU3 a/zlib/contrib/ada/mtest.adb b/zlib/contrib/ada/mtest.adb
|
||
--- a/zlib/contrib/ada/mtest.adb 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/contrib/ada/mtest.adb 2021-03-30 17:48:01.625553000 -0300
|
||
@@ -8,7 +8,7 @@
|
||
-- Continuous test for ZLib multithreading. If the test would fail
|
||
-- we should provide thread safe allocation routines for the Z_Stream.
|
||
--
|
||
--- $Id: mtest.adb,v 1.4 2004/07/23 07:49:54 vagul Exp $
|
||
+-- Id: mtest.adb,v 1.4 2004/07/23 07:49:54 vagul Exp
|
||
|
||
with ZLib;
|
||
with Ada.Streams;
|
||
diff -rNU3 a/zlib/contrib/ada/read.adb b/zlib/contrib/ada/read.adb
|
||
--- a/zlib/contrib/ada/read.adb 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/contrib/ada/read.adb 2021-03-30 17:48:01.625553000 -0300
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: read.adb,v 1.8 2004/05/31 10:53:40 vagul Exp $
|
||
+-- Id: read.adb,v 1.8 2004/05/31 10:53:40 vagul Exp
|
||
|
||
-- Test/demo program for the generic read interface.
|
||
|
||
diff -rNU3 a/zlib/contrib/ada/test.adb b/zlib/contrib/ada/test.adb
|
||
--- a/zlib/contrib/ada/test.adb 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/contrib/ada/test.adb 2021-03-30 17:48:01.625553000 -0300
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: test.adb,v 1.17 2003/08/12 12:13:30 vagul Exp $
|
||
+-- Id: test.adb,v 1.17 2003/08/12 12:13:30 vagul Exp
|
||
|
||
-- The program has a few aims.
|
||
-- 1. Test ZLib.Ada95 thick binding functionality.
|
||
diff -rNU3 a/zlib/contrib/ada/zlib.adb b/zlib/contrib/ada/zlib.adb
|
||
--- a/zlib/contrib/ada/zlib.adb 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/contrib/ada/zlib.adb 2021-03-30 17:48:01.628886000 -0300
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: zlib.adb,v 1.31 2004/09/06 06:53:19 vagul Exp $
|
||
+-- Id: zlib.adb,v 1.31 2004/09/06 06:53:19 vagul Exp
|
||
|
||
with Ada.Exceptions;
|
||
with Ada.Unchecked_Conversion;
|
||
diff -rNU3 a/zlib/contrib/ada/zlib.ads b/zlib/contrib/ada/zlib.ads
|
||
--- a/zlib/contrib/ada/zlib.ads 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/contrib/ada/zlib.ads 2021-03-30 17:48:01.628886000 -0300
|
||
@@ -25,7 +25,7 @@
|
||
-- covered by the GNU Public License. --
|
||
------------------------------------------------------------------------------
|
||
|
||
--- $Id: zlib.ads,v 1.26 2004/09/06 06:53:19 vagul Exp $
|
||
+-- Id: zlib.ads,v 1.26 2004/09/06 06:53:19 vagul Exp
|
||
|
||
with Ada.Streams;
|
||
|
||
diff -rNU3 a/zlib/contrib/ada/zlib-streams.adb b/zlib/contrib/ada/zlib-streams.adb
|
||
--- a/zlib/contrib/ada/zlib-streams.adb 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/contrib/ada/zlib-streams.adb 2021-03-30 17:48:01.625553000 -0300
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: zlib-streams.adb,v 1.10 2004/05/31 10:53:40 vagul Exp $
|
||
+-- Id: zlib-streams.adb,v 1.10 2004/05/31 10:53:40 vagul Exp
|
||
|
||
with Ada.Unchecked_Deallocation;
|
||
|
||
diff -rNU3 a/zlib/contrib/ada/zlib-streams.ads b/zlib/contrib/ada/zlib-streams.ads
|
||
--- a/zlib/contrib/ada/zlib-streams.ads 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/contrib/ada/zlib-streams.ads 2021-03-30 17:48:01.625553000 -0300
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: zlib-streams.ads,v 1.12 2004/05/31 10:53:40 vagul Exp $
|
||
+-- Id: zlib-streams.ads,v 1.12 2004/05/31 10:53:40 vagul Exp
|
||
|
||
package ZLib.Streams is
|
||
|
||
diff -rNU3 a/zlib/contrib/ada/zlib-thin.adb b/zlib/contrib/ada/zlib-thin.adb
|
||
--- a/zlib/contrib/ada/zlib-thin.adb 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/contrib/ada/zlib-thin.adb 2021-03-30 17:48:01.625553000 -0300
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: zlib-thin.adb,v 1.8 2003/12/14 18:27:31 vagul Exp $
|
||
+-- Id: zlib-thin.adb,v 1.8 2003/12/14 18:27:31 vagul Exp
|
||
|
||
package body ZLib.Thin is
|
||
|
||
diff -rNU3 a/zlib/contrib/ada/zlib-thin.ads b/zlib/contrib/ada/zlib-thin.ads
|
||
--- a/zlib/contrib/ada/zlib-thin.ads 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/contrib/ada/zlib-thin.ads 2021-03-30 17:48:01.625553000 -0300
|
||
@@ -6,7 +6,7 @@
|
||
-- Open source license information is in the zlib.ads file. --
|
||
----------------------------------------------------------------
|
||
|
||
--- $Id: zlib-thin.ads,v 1.11 2004/07/23 06:33:11 vagul Exp $
|
||
+-- Id: zlib-thin.ads,v 1.11 2004/07/23 06:33:11 vagul Exp
|
||
|
||
with Interfaces.C.Strings;
|
||
|
||
diff -rNU3 a/zlib/contrib/iostream2/zstream.h b/zlib/contrib/iostream2/zstream.h
|
||
--- a/zlib/contrib/iostream2/zstream.h 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/contrib/iostream2/zstream.h 2021-03-30 17:48:01.635553000 -0300
|
||
@@ -21,7 +21,7 @@
|
||
|
||
/*
|
||
* zstream.h - C++ interface to the 'zlib' general purpose compression library
|
||
- * $Id: zstream.h,v 1.1 1999/05/04 19:30:27 tromey Exp $
|
||
+ * Id: zstream.h,v 1.1 1999/05/04 19:30:27 tromey Exp
|
||
*/
|
||
|
||
#include <strstream.h>
|
||
Os arquivos binários a/zlib/contrib/masmx64/gvmat64.obj e b/zlib/contrib/masmx64/gvmat64.obj são diferentes
|
||
Os arquivos binários a/zlib/contrib/masmx64/inffasx64.obj e b/zlib/contrib/masmx64/inffasx64.obj são diferentes
|
||
Os arquivos binários a/zlib/contrib/masmx86/gvmat32.obj e b/zlib/contrib/masmx86/gvmat32.obj são diferentes
|
||
Os arquivos binários a/zlib/contrib/masmx86/inffas32.obj e b/zlib/contrib/masmx86/inffas32.obj são diferentes
|
||
diff -rNU3 a/zlib/crc32.c b/zlib/crc32.c
|
||
--- a/zlib/crc32.c 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/crc32.c 2021-03-30 17:48:01.658886000 -0300
|
||
@@ -9,7 +9,7 @@
|
||
* factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3.
|
||
*/
|
||
|
||
-/* @(#) $Id: crc32.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
|
||
+/* @(#) Id: crc32.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp */
|
||
|
||
/*
|
||
Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore
|
||
diff -rNU3 a/zlib/deflate.c b/zlib/deflate.c
|
||
--- a/zlib/deflate.c 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/deflate.c 2021-03-30 17:48:01.662219000 -0300
|
||
@@ -47,7 +47,7 @@
|
||
*
|
||
*/
|
||
|
||
-/* @(#) $Id: deflate.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
|
||
+/* @(#) Id: deflate.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp */
|
||
|
||
#include "deflate.h"
|
||
|
||
diff -rNU3 a/zlib/deflate.h b/zlib/deflate.h
|
||
--- a/zlib/deflate.h 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/deflate.h 2021-03-30 17:48:01.662219000 -0300
|
||
@@ -8,7 +8,7 @@
|
||
subject to change. Applications should only use zlib.h.
|
||
*/
|
||
|
||
-/* @(#) $Id: deflate.h,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
|
||
+/* @(#) Id: deflate.h,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp */
|
||
|
||
#ifndef DEFLATE_H
|
||
#define DEFLATE_H
|
||
diff -rNU3 a/zlib/example.c b/zlib/example.c
|
||
--- a/zlib/example.c 2021-03-30 23:12:40.224559934 -0300
|
||
+++ b/zlib/example.c 2021-03-30 17:48:01.662219000 -0300
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id: example.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp $ */
|
||
+/* @(#) Id: example.c,v 1.1.1.2 2002/03/11 21:53:23 tromey Exp */
|
||
|
||
#include "zlib.h"
|
||
#include <stdio.h>
|
||
diff -rNU3 a/zlib/minigzip.c b/zlib/minigzip.c
|
||
--- a/zlib/minigzip.c 2021-03-30 23:12:40.227893268 -0300
|
||
+++ b/zlib/minigzip.c 2021-03-30 17:48:01.668886000 -0300
|
||
@@ -13,7 +13,7 @@
|
||
* or in pipe mode.
|
||
*/
|
||
|
||
-/* @(#) $Id: minigzip.c,v 1.1.1.2 2002/03/11 21:53:26 tromey Exp $ */
|
||
+/* @(#) Id: minigzip.c,v 1.1.1.2 2002/03/11 21:53:26 tromey Exp */
|
||
|
||
#include "zlib.h"
|
||
#include <stdio.h>
|
||
diff -rNU3 a/zlib/test/example.c b/zlib/test/example.c
|
||
--- a/zlib/test/example.c 2021-03-30 23:12:40.227893268 -0300
|
||
+++ b/zlib/test/example.c 2021-03-30 17:48:01.672219000 -0300
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id$ */
|
||
+/* @(#) Id */
|
||
|
||
#include "zlib.h"
|
||
#include <stdio.h>
|
||
diff -rNU3 a/zlib/test/minigzip.c b/zlib/test/minigzip.c
|
||
--- a/zlib/test/minigzip.c 2021-03-30 23:12:40.227893268 -0300
|
||
+++ b/zlib/test/minigzip.c 2021-03-30 17:48:01.672219000 -0300
|
||
@@ -13,7 +13,7 @@
|
||
* or in pipe mode.
|
||
*/
|
||
|
||
-/* @(#) $Id$ */
|
||
+/* @(#) Id */
|
||
|
||
#include "zlib.h"
|
||
#include <stdio.h>
|
||
diff -rNU3 a/zlib/trees.c b/zlib/trees.c
|
||
--- a/zlib/trees.c 2021-03-30 23:12:40.227893268 -0300
|
||
+++ b/zlib/trees.c 2021-03-30 17:48:01.672219000 -0300
|
||
@@ -30,7 +30,7 @@
|
||
* Addison-Wesley, 1983. ISBN 0-201-06672-6.
|
||
*/
|
||
|
||
-/* @(#) $Id: trees.c,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp $ */
|
||
+/* @(#) Id: trees.c,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp */
|
||
|
||
/* #define GEN_TREES_H */
|
||
|
||
diff -rNU3 a/zlib/uncompr.c b/zlib/uncompr.c
|
||
--- a/zlib/uncompr.c 2021-03-30 23:12:40.227893268 -0300
|
||
+++ b/zlib/uncompr.c 2021-03-30 17:48:01.672219000 -0300
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id: uncompr.c,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp $ */
|
||
+/* @(#) Id: uncompr.c,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp */
|
||
|
||
#define ZLIB_INTERNAL
|
||
#include "zlib.h"
|
||
diff -rNU3 a/zlib/zconf.h b/zlib/zconf.h
|
||
--- a/zlib/zconf.h 2021-03-30 23:12:40.227893268 -0300
|
||
+++ b/zlib/zconf.h 2021-03-30 17:48:01.675553000 -0300
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id: zconf.h,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp $ */
|
||
+/* @(#) Id: zconf.h,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp */
|
||
|
||
#ifndef ZCONF_H
|
||
#define ZCONF_H
|
||
diff -rNU3 a/zlib/zconf.h.cmakein b/zlib/zconf.h.cmakein
|
||
--- a/zlib/zconf.h.cmakein 2021-03-30 23:12:40.227893268 -0300
|
||
+++ b/zlib/zconf.h.cmakein 2021-03-30 17:48:01.675553000 -0300
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id$ */
|
||
+/* @(#) Id */
|
||
|
||
#ifndef ZCONF_H
|
||
#define ZCONF_H
|
||
diff -rNU3 a/zlib/zconf.h.in b/zlib/zconf.h.in
|
||
--- a/zlib/zconf.h.in 2021-03-30 23:12:40.227893268 -0300
|
||
+++ b/zlib/zconf.h.in 2021-03-30 17:48:01.675553000 -0300
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id$ */
|
||
+/* @(#) Id */
|
||
|
||
#ifndef ZCONF_H
|
||
#define ZCONF_H
|
||
diff -rNU3 a/zlib/zutil.c b/zlib/zutil.c
|
||
--- a/zlib/zutil.c 2021-03-30 23:12:40.227893268 -0300
|
||
+++ b/zlib/zutil.c 2021-03-30 17:48:01.675553000 -0300
|
||
@@ -3,7 +3,7 @@
|
||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||
*/
|
||
|
||
-/* @(#) $Id: zutil.c,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp $ */
|
||
+/* @(#) Id: zutil.c,v 1.1.1.2 2002/03/11 21:53:27 tromey Exp */
|
||
|
||
#include "zutil.h"
|
||
#ifndef Z_SOLO
|
||
diff -rNU3 a/zlib/zutil.h b/zlib/zutil.h
|
||
--- a/zlib/zutil.h 2021-03-30 23:12:40.227893268 -0300
|
||
+++ b/zlib/zutil.h 2021-03-30 17:48:01.675553000 -0300
|
||
@@ -8,7 +8,7 @@
|
||
subject to change. Applications should only use zlib.h.
|
||
*/
|
||
|
||
-/* @(#) $Id: zutil.h,v 1.1.1.2 2002/03/11 21:53:28 tromey Exp $ */
|
||
+/* @(#) Id: zutil.h,v 1.1.1.2 2002/03/11 21:53:28 tromey Exp */
|
||
|
||
#ifndef ZUTIL_H
|
||
#define ZUTIL_H
|